LLVM API Documentation

Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

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
cycles_t getTime () const
cycles_t getEarliestIssueTime () const
cycles_t getEarliestStartTimeForOp (MachineOpCode opCode) const
void updateTime (cycles_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, cycles_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().

cycles_t llvm::SchedulingManager::getEarliestIssueTime  )  const [inline]
 

Definition at line 386 of file InstrScheduling.cpp.

Referenced by llvm::ForwardListSchedule().

cycles_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.

cycles_t llvm::SchedulingManager::getTime  )  const [inline]
 

Definition at line 382 of file InstrScheduling.cpp.

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

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 nslots.

Referenced by llvm::FindSlotChoices().

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

Definition at line 468 of file InstrScheduling.cpp.

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

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

void llvm::SchedulingManager::updateTime cycles_t  c  )  [inline]
 

Definition at line 396 of file InstrScheduling.cpp.

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

Referenced by llvm::ChooseOneGroup(), llvm::ForwardListSchedule(), llvm::DelaySlotInfo::scheduleDelayedNode(), 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: