LLVM API Documentation

llvm::SchedulingManager Class Reference

Collaboration diagram for llvm::SchedulingManager:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 SchedulingManager (const TargetMachine &_target, const SchedGraph *graph, SchedPriorities &schedPrio)
 ~SchedulingManager ()
const TargetInstrInfogetInstrInfo () const
CycleCount_t getTime () const
CycleCount_t getEarliestIssueTime () const
CycleCount_t getEarliestStartTimeForOp (MachineOpCode opCode) const
void updateTime (CycleCount_t c)
unsigned int getNumChoices () const
unsigned getNumChoicesInClass (const InstrSchedClass &sc) const
const SchedGraphNodegetChoice (unsigned int i) const
hash_set< const SchedGraphNode * > & getChoicesForSlot (unsigned slotNum)
void addChoice (const SchedGraphNode *node)
void addChoiceToSlot (unsigned int slotNum, const SchedGraphNode *node)
void resetChoices ()
unsigned int getNumScheduled () const
unsigned int getNumUnscheduled () const
bool isScheduled (const SchedGraphNode *node) const
void scheduleInstr (const SchedGraphNode *node, unsigned int slotNum, CycleCount_t cycle)
DelaySlotInfogetDelaySlotInfoForInstr (const SchedGraphNode *bn, bool createIfMissing=false)

Public Attributes

const unsigned nslots
const TargetSchedInfoschedInfo
SchedPrioritiesschedPrio
InstrSchedule isched

Detailed Description

Definition at line 339 of file InstrScheduling.cpp.


Constructor & Destructor Documentation

llvm::SchedulingManager::SchedulingManager ( const TargetMachine _target,
const SchedGraph graph,
SchedPriorities schedPrio 
)

Definition at line 517 of file InstrScheduling.cpp.

References nslots, and updateTime().

llvm::SchedulingManager::~SchedulingManager (  )  [inline]

Definition at line 363 of file InstrScheduling.cpp.

References E, and I.


Member Function Documentation

void llvm::SchedulingManager::addChoice ( const SchedGraphNode node  )  [inline]

Definition at line 428 of file InstrScheduling.cpp.

References llvm::SchedGraphNode::getOpcode(), llvm::TargetSchedInfo::getSchedClass(), and schedInfo.

Referenced by llvm::FindSlotChoices().

void llvm::SchedulingManager::addChoiceToSlot ( unsigned int  slotNum,
const SchedGraphNode node 
) [inline]

Definition at line 437 of file InstrScheduling.cpp.

References nslots.

Referenced by llvm::FindSlotChoices().

const SchedGraphNode* llvm::SchedulingManager::getChoice ( unsigned int  i  )  const [inline]

Definition at line 418 of file InstrScheduling.cpp.

Referenced by llvm::FindSlotChoices().

hash_set<const SchedGraphNode*>& llvm::SchedulingManager::getChoicesForSlot ( unsigned  slotNum  )  [inline]

Definition at line 423 of file InstrScheduling.cpp.

References nslots.

DelaySlotInfo* llvm::SchedulingManager::getDelaySlotInfoForInstr ( const SchedGraphNode bn,
bool  createIfMissing = false 
) [inline]

Definition at line 495 of file InstrScheduling.cpp.

References getInstrInfo(), llvm::SchedGraphNode::getOpcode(), and I.

Referenced by llvm::FindSlotChoices(), and llvm::MarkNodeForDelaySlot().

CycleCount_t llvm::SchedulingManager::getEarliestIssueTime (  )  const [inline]

Definition at line 386 of file InstrScheduling.cpp.

Referenced by llvm::ForwardListSchedule().

CycleCount_t llvm::SchedulingManager::getEarliestStartTimeForOp ( MachineOpCode  opCode  )  const [inline]

Definition at line 390 of file InstrScheduling.cpp.

Referenced by llvm::ViolatesMinimumGap().

const TargetInstrInfo& llvm::SchedulingManager::getInstrInfo (  )  const [inline]

Definition at line 374 of file InstrScheduling.cpp.

References llvm::TargetSchedInfo::getInstrInfo(), and schedInfo.

Referenced by llvm::ChooseInstructionsForDelaySlots(), llvm::FindSlotChoices(), llvm::FindUsefulInstructionsForDelaySlots(), getDelaySlotInfoForInstr(), llvm::NodeCanFillDelaySlot(), and llvm::ReplaceNopsWithUsefulInstr().

unsigned int llvm::SchedulingManager::getNumChoices (  )  const [inline]

Definition at line 409 of file InstrScheduling.cpp.

Referenced by llvm::ConflictsWithChoices(), and llvm::FindSlotChoices().

unsigned llvm::SchedulingManager::getNumChoicesInClass ( const InstrSchedClass sc  )  const [inline]

Definition at line 413 of file InstrScheduling.cpp.

Referenced by llvm::ConflictsWithChoices().

unsigned int llvm::SchedulingManager::getNumScheduled (  )  const [inline]

Definition at line 456 of file InstrScheduling.cpp.

References llvm::InstrSchedule::getNumInstructions(), and isched.

unsigned int llvm::SchedulingManager::getNumUnscheduled (  )  const [inline]

Definition at line 460 of file InstrScheduling.cpp.

References llvm::InstrSchedule::getNumInstructions(), and isched.

CycleCount_t llvm::SchedulingManager::getTime (  )  const [inline]

Definition at line 382 of file InstrScheduling.cpp.

Referenced by llvm::ChooseOneGroup(), llvm::FindSlotChoices(), llvm::ForwardListSchedule(), and llvm::instrIsFeasible().

bool llvm::SchedulingManager::isScheduled ( const SchedGraphNode node  )  const [inline]

Definition at line 464 of file InstrScheduling.cpp.

References llvm::SchedGraphNodeCommon::getNodeId(), llvm::InstrSchedule::getStartTime(), and isched.

Referenced by llvm::MarkSuccessorsReady(), llvm::DelaySlotInfo::scheduleDelayedNode(), and scheduleInstr().

void llvm::SchedulingManager::resetChoices (  )  [inline]

Definition at line 444 of file InstrScheduling.cpp.

References c, and nslots.

Referenced by llvm::FindSlotChoices().

void llvm::SchedulingManager::scheduleInstr ( const SchedGraphNode node,
unsigned int  slotNum,
CycleCount_t  cycle 
) [inline]

Definition at line 468 of file InstrScheduling.cpp.

References llvm::TargetSchedInfo::getSchedClass(), isched, isScheduled(), nslots, schedInfo, and llvm::InstrSchedule::scheduleInstr().

Referenced by llvm::DelaySlotInfo::scheduleDelayedNode().

void llvm::SchedulingManager::updateTime ( CycleCount_t  c  )  [inline]

Definition at line 396 of file InstrScheduling.cpp.

References schedPrio, and llvm::SchedPriorities::updateTime().

Referenced by llvm::ChooseOneGroup(), llvm::ForwardListSchedule(), and SchedulingManager().


Member Data Documentation

InstrSchedule llvm::SchedulingManager::isched

Definition at line 346 of file InstrScheduling.cpp.

Referenced by llvm::ChooseOneGroup(), llvm::FindSlotChoices(), llvm::ForwardListSchedule(), getNumScheduled(), getNumUnscheduled(), isScheduled(), llvm::RecordSchedule(), llvm::DelaySlotInfo::scheduleDelayedNode(), and scheduleInstr().

const unsigned llvm::SchedulingManager::nslots

Definition at line 343 of file InstrScheduling.cpp.

Referenced by addChoiceToSlot(), llvm::ChooseOneGroup(), llvm::FindSlotChoices(), llvm::ForwardListSchedule(), getChoicesForSlot(), resetChoices(), llvm::DelaySlotInfo::scheduleDelayedNode(), scheduleInstr(), and SchedulingManager().

const TargetSchedInfo& llvm::SchedulingManager::schedInfo

Definition at line 344 of file InstrScheduling.cpp.

Referenced by addChoice(), llvm::ConflictsWithChoices(), llvm::FindSlotChoices(), getInstrInfo(), llvm::NodeCanFillDelaySlot(), llvm::RecordSchedule(), llvm::DelaySlotInfo::scheduleDelayedNode(), and scheduleInstr().

SchedPriorities& llvm::SchedulingManager::schedPrio

Definition at line 345 of file InstrScheduling.cpp.

Referenced by llvm::ChooseOneGroup(), llvm::FindSlotChoices(), llvm::ForwardListSchedule(), llvm::MarkSuccessorsReady(), and updateTime().


The documentation for this class was generated from the following file: