LLVM API Documentation
SUnit - Scheduling unit. This is a node in the scheduling DAG. More...
#include <ScheduleDAG.h>
Public Types | |
typedef SmallVectorImpl< SDep > ::iterator | pred_iterator |
typedef SmallVectorImpl< SDep > ::iterator | succ_iterator |
typedef SmallVectorImpl< SDep > ::const_iterator | const_pred_iterator |
typedef SmallVectorImpl< SDep > ::const_iterator | const_succ_iterator |
Public Member Functions | |
SUnit (SDNode *node, unsigned nodenum) | |
SUnit (MachineInstr *instr, unsigned nodenum) | |
SUnit () | |
SUnit - Construct a placeholder SUnit. More... | |
bool | isBoundaryNode () const |
Boundary nodes are placeholders for the boundary of the scheduling region. More... | |
void | setNode (SDNode *N) |
SDNode * | getNode () const |
bool | isInstr () const |
void | setInstr (MachineInstr *MI) |
MachineInstr * | getInstr () const |
bool | addPred (const SDep &D, bool Required=true) |
void | removePred (const SDep &D) |
unsigned | getDepth () const |
unsigned | getHeight () const |
void | setDepthToAtLeast (unsigned NewDepth) |
void | setHeightToAtLeast (unsigned NewHeight) |
void | setDepthDirty () |
void | setHeightDirty () |
bool | isPred (SUnit *N) |
isPred - Test if node N is a predecessor of this node. More... | |
bool | isSucc (SUnit *N) |
isSucc - Test if node N is a successor of this node. More... | |
bool | isTopReady () const |
bool | isBottomReady () const |
void | biasCriticalPath () |
Order this node's predecessor edges such that the critical path edge occurs first. More... | |
void | dump (const ScheduleDAG *G) const |
void | dumpAll (const ScheduleDAG *G) const |
void | print (raw_ostream &O, const ScheduleDAG *G) const |
Public Attributes | |
SUnit * | OrigNode |
const MCSchedClassDesc * | SchedClass |
SmallVector< SDep, 4 > | Preds |
SmallVector< SDep, 4 > | Succs |
unsigned | NodeNum |
unsigned | NodeQueueId |
unsigned | NumPreds |
unsigned | NumSuccs |
unsigned | NumPredsLeft |
unsigned | NumSuccsLeft |
unsigned | WeakPredsLeft |
unsigned | WeakSuccsLeft |
unsigned short | NumRegDefsLeft |
unsigned short | Latency |
bool | isVRegCycle: 1 |
bool | isCall: 1 |
bool | isCallOp: 1 |
bool | isTwoAddress: 1 |
bool | isCommutable: 1 |
bool | hasPhysRegUses: 1 |
bool | hasPhysRegDefs: 1 |
bool | hasPhysRegClobbers: 1 |
bool | isPending: 1 |
bool | isAvailable: 1 |
bool | isScheduled: 1 |
bool | isScheduleHigh: 1 |
bool | isScheduleLow: 1 |
bool | isCloned: 1 |
Sched::Preference | SchedulingPref |
unsigned | TopReadyCycle |
unsigned | BotReadyCycle |
const TargetRegisterClass * | CopyDstRC |
const TargetRegisterClass * | CopySrcRC |
SUnit - Scheduling unit. This is a node in the scheduling DAG.
Definition at line 249 of file ScheduleDAG.h.
typedef SmallVectorImpl<SDep>::const_iterator llvm::SUnit::const_pred_iterator |
Definition at line 268 of file ScheduleDAG.h.
typedef SmallVectorImpl<SDep>::const_iterator llvm::SUnit::const_succ_iterator |
Definition at line 269 of file ScheduleDAG.h.
typedef SmallVectorImpl<SDep>::iterator llvm::SUnit::pred_iterator |
Definition at line 266 of file ScheduleDAG.h.
typedef SmallVectorImpl<SDep>::iterator llvm::SUnit::succ_iterator |
Definition at line 267 of file ScheduleDAG.h.
SUnit - Construct an SUnit for pre-regalloc scheduling to represent an SDNode and any nodes flagged to it.
Definition at line 311 of file ScheduleDAG.h.
|
inline |
SUnit - Construct an SUnit for post-regalloc scheduling to represent a MachineInstr.
Definition at line 325 of file ScheduleDAG.h.
|
inline |
SUnit - Construct a placeholder SUnit.
Definition at line 338 of file ScheduleDAG.h.
addPred - This adds the specified edge as a pred of the current node if not already. It also adds the current node as a successor of the specified node.
Definition at line 65 of file ScheduleDAG.cpp.
References llvm::SDep::Data, llvm::SDep::getKind(), llvm::SDep::getLatency(), llvm::SDep::getSUnit(), I, isScheduled, llvm::SDep::isWeak(), N, NumPreds, NumPredsLeft, NumSuccs, NumSuccsLeft, P, Preds, setDepthDirty(), setHeightDirty(), llvm::SDep::setSUnit(), Succs, WeakPredsLeft, and WeakSuccsLeft.
Referenced by addChainDependency(), llvm::ScheduleDAGMI::addEdge(), llvm::ScheduleDAGInstrs::addPhysRegDataDeps(), llvm::ScheduleDAGInstrs::addPhysRegDeps(), llvm::ScheduleDAGInstrs::addVRegDefDeps(), llvm::ScheduleDAGInstrs::addVRegUseDeps(), llvm::ScheduleDAGInstrs::buildSchedGraph(), and iterateChainSucc().
void SUnit::biasCriticalPath | ( | ) |
Order this node's predecessor edges such that the critical path edge occurs first.
Definition at line 298 of file ScheduleDAG.cpp.
References llvm::SDep::Data, I, MaxDepth, llvm::next(), NumPreds, Preds, and std::swap().
Referenced by llvm::ScheduleDAGMI::findRootsAndBiasEdges().
void SUnit::dump | ( | const ScheduleDAG * | G | ) | const |
SUnit - Scheduling unit. It's an wrapper around either a single SDNode or a group of nodes flagged together.
Definition at line 316 of file ScheduleDAG.cpp.
References llvm::dbgs(), llvm::ScheduleDAG::dumpNode(), and NodeNum.
Referenced by llvm::LatencyPriorityQueue::dump(), llvm::ResourcePriorityQueue::dump(), dumpAll(), llvm::ScheduleDAGSDNodes::dumpSchedule(), llvm::R600SchedStrategy::pickNode(), llvm::ConvergingVLIWScheduler::pickNode(), llvm::R600SchedStrategy::releaseBottomNode(), llvm::ScheduleDAGMI::releasePred(), llvm::ScheduleDAGMI::releaseSucc(), llvm::R600SchedStrategy::releaseTopNode(), and llvm::ConvergingVLIWScheduler::traceCandidate().
void SUnit::dumpAll | ( | const ScheduleDAG * | G | ) | const |
Definition at line 321 of file ScheduleDAG.cpp.
References llvm::SDep::Anti, llvm::SDep::Data, llvm::dbgs(), dump(), getDepth(), getHeight(), I, Latency, NumPredsLeft, NumRegDefsLeft, NumSuccsLeft, llvm::SDep::Order, llvm::SDep::Output, Preds, Succs, llvm::ScheduleDAG::TRI, WeakPredsLeft, and WeakSuccsLeft.
|
inline |
getDepth - Return the depth of this node, which is the length of the maximum path up to any node which has no predecessors.
Definition at line 403 of file ScheduleDAG.h.
Referenced by llvm::CriticalAntiDepBreaker::BreakAntiDependencies(), llvm::AggressiveAntiDepBreaker::BreakAntiDependencies(), BUCompareLatency(), BURRSort(), llvm::ScheduleDAGMI::computeCyclicCriticalPath(), CriticalPathStep(), dumpAll(), llvm::SchedDFSResult::getILP(), llvm::ConvergingVLIWScheduler::SchedulingCost(), and setDepthToAtLeast().
|
inline |
getHeight - Return the height of this node, which is the length of the maximum path down to any node which has no successors.
Definition at line 411 of file ScheduleDAG.h.
Referenced by BUCompareLatency(), BURRSort(), llvm::ScheduleDAGMI::computeCyclicCriticalPath(), llvm::LatencyPriorityQueue::dump(), llvm::ResourcePriorityQueue::dump(), dumpAll(), llvm::ConvergingVLIWScheduler::SchedulingCost(), setHeightToAtLeast(), and llvm::ResourcePriorityQueue::SUSchedulingCost().
|
inline |
getInstr - Return the representative MachineInstr for this SUnit. This may be used during post-regalloc scheduling.
Definition at line 386 of file ScheduleDAG.h.
Referenced by addChainDependency(), llvm::ScheduleDAGInstrs::addPhysRegDataDeps(), llvm::ScheduleDAGInstrs::addPhysRegDeps(), llvm::ScheduleDAGInstrs::addVRegDefDeps(), llvm::ScheduleDAGInstrs::addVRegUseDeps(), adjustChainDeps(), biasPhysRegCopy(), llvm::CriticalAntiDepBreaker::BreakAntiDependencies(), llvm::AggressiveAntiDepBreaker::BreakAntiDependencies(), llvm::ScheduleDAGInstrs::dumpNode(), llvm::ARMHazardRecognizer::EmitInstruction(), llvm::PPCHazardRecognizer970::EmitInstruction(), llvm::ScheduleDAGInstrs::getGraphNodeLabel(), llvm::ARMHazardRecognizer::getHazardType(), llvm::PPCHazardRecognizer970::getHazardType(), llvm::ScheduleDAG::getInstrDesc(), llvm::ScheduleDAGInstrs::getSchedClass(), llvm::ScheduleDAGInstrs::initSUnits(), llvm::VLIWResourceModel::isResourceAvailable(), iterateChainSucc(), llvm::VLIWPacketizerList::PacketizeMIs(), llvm::R600SchedStrategy::releaseBottomNode(), llvm::ConvergingVLIWScheduler::releaseBottomNode(), llvm::VLIWResourceModel::reserveResources(), llvm::R600SchedStrategy::schedNode(), llvm::ScheduleDAGMI::scheduleMI(), llvm::ScheduleDAGMI::updatePressureDiffs(), llvm::SchedDFSImpl::visitPostorderNode(), and llvm::SchedDFSImpl::visitPreorder().
|
inline |
getNode - Return the representative SDNode for this SUnit. This may be used during pre-regalloc scheduling.
Definition at line 368 of file ScheduleDAG.h.
Referenced by BURRSort(), canClobberPhysRegDefs(), canClobberReachingPhysRegUse(), canEnableCoalescing(), llvm::ScheduleDAGSDNodes::Clone(), llvm::ScheduleDAGSDNodes::computeLatency(), llvm::ScheduleDAGSDNodes::dumpNode(), llvm::ScheduleDAGSDNodes::EmitSchedule(), llvm::ScheduleDAGSDNodes::getGraphNodeLabel(), llvm::ScheduleDAG::getInstrDesc(), hasOnlyLiveInOpers(), hasOnlyLiveOutUses(), llvm::ResourcePriorityQueue::initNumRegDefsLeft(), isOperandOf(), llvm::ResourcePriorityQueue::isResourceAvailable(), llvm::ResourcePriorityQueue::rawRegPressureDelta(), llvm::ResourcePriorityQueue::regPressureDelta(), llvm::ResourcePriorityQueue::reserveResources(), resetVRegCycle(), llvm::ResourcePriorityQueue::scheduledNode(), and llvm::ResourcePriorityQueue::SUSchedulingCost().
|
inline |
Definition at line 456 of file ScheduleDAG.h.
References NumSuccsLeft.
Referenced by llvm::ConvergingVLIWScheduler::pickNode(), and llvm::ScheduleDAGMI::scheduleMI().
|
inline |
Boundary nodes are placeholders for the boundary of the scheduling region.
BoundaryNodes can have DAG edges, including Data edges, but they do not correspond to schedulable entities (e.g. instructions) and do not have a valid ID. Consequently, always check for boundary nodes before accessing an assoicative data structure keyed on node ID.
Definition at line 357 of file ScheduleDAG.h.
References NodeNum.
Referenced by llvm::SchedDFSResult::compute(), and llvm::ScheduleDAGMI::findRootsAndBiasEdges().
|
inline |
isInstr - Return true if this SUnit refers to a machine instruction as opposed to an SDNode.
Definition at line 375 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAG::getInstrDesc().
isPred - Test if node N is a predecessor of this node.
Definition at line 438 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::buildSchedGraph().
isSucc - Test if node N is a successor of this node.
Definition at line 446 of file ScheduleDAG.h.
Referenced by iterateChainSucc().
|
inline |
Definition at line 453 of file ScheduleDAG.h.
References NumPredsLeft.
Referenced by llvm::ConvergingVLIWScheduler::pickNode(), and llvm::ScheduleDAGMI::scheduleMI().
void llvm::SUnit::print | ( | raw_ostream & | O, |
const ScheduleDAG * | G | ||
) | const |
void SUnit::removePred | ( | const SDep & | D | ) |
removePred - This removes the specified edge as a pred of the current node if it exists. It also removes the current node as a successor of the specified node.
Definition at line 133 of file ScheduleDAG.cpp.
References llvm::SDep::Data, llvm::SDep::getKind(), llvm::SDep::getSUnit(), I, isScheduled, llvm::SDep::isWeak(), N, NumPreds, NumPredsLeft, NumSuccs, NumSuccsLeft, P, Preds, setDepthDirty(), llvm::SDep::setSUnit(), Succs, WeakPredsLeft, and WeakSuccsLeft.
void SUnit::setDepthDirty | ( | ) |
setDepthDirty - Set a flag in this node to indicate that its stored Depth value will require recomputation the next time getDepth() is called.
Definition at line 178 of file ScheduleDAG.cpp.
References llvm::SmallVectorBase::empty(), I, llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), and Succs.
Referenced by addPred(), removePred(), and setDepthToAtLeast().
void SUnit::setDepthToAtLeast | ( | unsigned | NewDepth | ) |
setDepthToAtLeast - If NewDepth is greater than this node's depth value, set it to be the new depth value. This also recursively marks successor nodes dirty.
setDepthToAtLeast - Update this node's successors to reflect the fact that this node's depth just increased.
Definition at line 213 of file ScheduleDAG.cpp.
References getDepth(), and setDepthDirty().
void SUnit::setHeightDirty | ( | ) |
setHeightDirty - Set a flag in this node to indicate that its stored Height value will require recomputation the next time getHeight() is called.
Definition at line 194 of file ScheduleDAG.cpp.
References llvm::SmallVectorBase::empty(), I, llvm::SmallVectorImpl< T >::pop_back_val(), Preds, and llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back().
Referenced by addPred(), and setHeightToAtLeast().
void SUnit::setHeightToAtLeast | ( | unsigned | NewHeight | ) |
setDepthToAtLeast - If NewDepth is greater than this node's depth value, set it to be the new height value. This also recursively marks predecessor nodes dirty.
setHeightToAtLeast - Update this node's predecessors to reflect the fact that this node's height just increased.
Definition at line 224 of file ScheduleDAG.cpp.
References getHeight(), and setHeightDirty().
|
inline |
setInstr - Assign the instruction for the SUnit. This may be used during post-regalloc scheduling.
Definition at line 379 of file ScheduleDAG.h.
References llvm::A64CC::MI.
Referenced by llvm::ScheduleDAGInstrs::addSchedBarrierDeps().
|
inline |
setNode - Assign the representative SDNode for this SUnit. This may be used during pre-regalloc scheduling.
Definition at line 361 of file ScheduleDAG.h.
References N.
unsigned llvm::SUnit::BotReadyCycle |
Definition at line 304 of file ScheduleDAG.h.
Referenced by llvm::ConvergingVLIWScheduler::releaseBottomNode(), and llvm::ConvergingVLIWScheduler::schedNode().
const TargetRegisterClass* llvm::SUnit::CopyDstRC |
Definition at line 306 of file ScheduleDAG.h.
const TargetRegisterClass* llvm::SUnit::CopySrcRC |
Definition at line 307 of file ScheduleDAG.h.
bool llvm::SUnit::hasPhysRegClobbers |
Definition at line 288 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGSDNodes::Clone().
bool llvm::SUnit::hasPhysRegDefs |
Definition at line 287 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::addPhysRegDataDeps(), BURRSort(), and llvm::ScheduleDAGSDNodes::Clone().
bool llvm::SUnit::hasPhysRegUses |
Definition at line 286 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::addPhysRegDeps().
bool llvm::SUnit::isAvailable |
Definition at line 290 of file ScheduleDAG.h.
bool llvm::SUnit::isCall |
Definition at line 282 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::addPhysRegDeps(), BURRSort(), llvm::ScheduleDAGSDNodes::Clone(), and llvm::ScheduleDAGInstrs::initSUnits().
bool llvm::SUnit::isCallOp |
Definition at line 283 of file ScheduleDAG.h.
Referenced by BURRSort(), and llvm::ScheduleDAGSDNodes::Clone().
bool llvm::SUnit::isCloned |
Definition at line 294 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGSDNodes::Clone(), and llvm::ScheduleDAGSDNodes::EmitSchedule().
bool llvm::SUnit::isCommutable |
Definition at line 285 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGSDNodes::Clone(), and llvm::ScheduleDAGInstrs::initSUnits().
bool llvm::SUnit::isPending |
Definition at line 289 of file ScheduleDAG.h.
bool llvm::SUnit::isScheduled |
Definition at line 291 of file ScheduleDAG.h.
Referenced by addPred(), getSingleUnscheduledPred(), getSingleUnscheduledSucc(), llvm::R600SchedStrategy::pickNode(), llvm::ConvergingVLIWScheduler::releaseBottomNode(), llvm::ConvergingVLIWScheduler::releaseTopNode(), removePred(), llvm::ConvergingVLIWScheduler::SchedulingCost(), llvm::ResourcePriorityQueue::SUSchedulingCost(), llvm::ScheduleDAGMI::updatePressureDiffs(), and llvm::ScheduleDAGMI::updateQueues().
bool llvm::SUnit::isScheduleHigh |
Definition at line 292 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGSDNodes::Clone(), llvm::latency_sort::operator()(), llvm::resource_sort::operator()(), llvm::ConvergingVLIWScheduler::SchedulingCost(), and llvm::ResourcePriorityQueue::SUSchedulingCost().
bool llvm::SUnit::isScheduleLow |
Definition at line 293 of file ScheduleDAG.h.
Referenced by checkSpecialNodes(), and llvm::ScheduleDAGSDNodes::Clone().
bool llvm::SUnit::isTwoAddress |
Definition at line 284 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGSDNodes::Clone().
bool llvm::SUnit::isVRegCycle |
Definition at line 281 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGSDNodes::Clone(), hasVRegCycleUse(), initVRegCycle(), and resetVRegCycle().
unsigned short llvm::SUnit::Latency |
Definition at line 280 of file ScheduleDAG.h.
Referenced by llvm::CriticalAntiDepBreaker::BreakAntiDependencies(), llvm::AggressiveAntiDepBreaker::BreakAntiDependencies(), BUCompareLatency(), llvm::ScheduleDAGInstrs::buildSchedGraph(), llvm::ScheduleDAGSDNodes::Clone(), llvm::ScheduleDAGMI::computeCyclicCriticalPath(), llvm::ScheduleDAGSDNodes::computeLatency(), dumpAll(), and llvm::ScheduleDAGInstrs::initSUnits().
unsigned llvm::SUnit::NodeNum |
Definition at line 271 of file ScheduleDAG.h.
Referenced by addChainDependency(), llvm::ScheduleDAGTopologicalSort::AddPred(), BUCompareLatency(), llvm::ScheduleDAGInstrs::buildSchedGraph(), BURRSort(), CalcNodeSethiUllmanNumber(), llvm::ScheduleDAGMI::computeCyclicCriticalPath(), dump(), llvm::ScheduleDAGSDNodes::getGraphNodeLabel(), llvm::ScoreboardHazardRecognizer::getHazardType(), llvm::SchedDFSResult::getILP(), llvm::DOTGraphTraits< ScheduleDAGMI * >::getNodeLabel(), llvm::SchedDFSResult::getNumInstrs(), llvm::ScheduleDAGMI::getPressureDiff(), llvm::SchedDFSResult::getSubtreeID(), hasVRegCycleUse(), llvm::ScheduleDAGTopologicalSort::InitDAGTopologicalSorting(), initVRegCycle(), isBoundaryNode(), llvm::ScheduleDAGTopologicalSort::IsReachable(), llvm::SchedDFSImpl::isVisited(), llvm::SchedDFSImpl::joinPredSubtree(), llvm::latency_sort::operator()(), llvm::resource_sort::operator()(), llvm::LatencyPriorityQueue::push(), llvm::ResourcePriorityQueue::push(), llvm::ResourcePriorityQueue::SUSchedulingCost(), llvm::ScheduleDAGMI::updatePressureDiffs(), llvm::SchedDFSImpl::visitPostorderEdge(), llvm::SchedDFSImpl::visitPostorderNode(), and llvm::SchedDFSImpl::visitPreorder().
unsigned llvm::SUnit::NodeQueueId |
Definition at line 272 of file ScheduleDAG.h.
Referenced by BURRSort(), llvm::ResourcePriorityQueue::initNodes(), llvm::ReadyQueue::isInQueue(), and llvm::ReadyQueue::push().
unsigned llvm::SUnit::NumPreds |
Definition at line 273 of file ScheduleDAG.h.
Referenced by addPred(), biasCriticalPath(), canEnableCoalescing(), llvm::DOTGraphTraits< ScheduleDAG * >::isNodeHidden(), removePred(), and llvm::ResourcePriorityQueue::scheduledNode().
unsigned llvm::SUnit::NumPredsLeft |
Definition at line 275 of file ScheduleDAG.h.
Referenced by addPred(), biasPhysRegCopy(), dumpAll(), isTopReady(), llvm::ScheduleDAGMI::releaseSucc(), and removePred().
unsigned short llvm::SUnit::NumRegDefsLeft |
Definition at line 279 of file ScheduleDAG.h.
Referenced by dumpAll(), llvm::ScheduleDAGSDNodes::InitNumRegDefsLeft(), llvm::ResourcePriorityQueue::initNumRegDefsLeft(), and llvm::ResourcePriorityQueue::scheduledNode().
unsigned llvm::SUnit::NumSuccs |
Definition at line 274 of file ScheduleDAG.h.
Referenced by addPred(), llvm::ScheduleDAGInstrs::buildSchedGraph(), canEnableCoalescing(), llvm::DOTGraphTraits< ScheduleDAG * >::isNodeHidden(), and removePred().
unsigned llvm::SUnit::NumSuccsLeft |
Definition at line 276 of file ScheduleDAG.h.
Referenced by addPred(), biasPhysRegCopy(), dumpAll(), isBottomReady(), llvm::ScheduleDAGMI::releasePred(), and removePred().
SUnit* llvm::SUnit::OrigNode |
Definition at line 256 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGSDNodes::Clone(), and llvm::ScheduleDAGSDNodes::EmitSchedule().
SmallVector<SDep, 4> llvm::SUnit::Preds |
Definition at line 263 of file ScheduleDAG.h.
Referenced by addPred(), AntiDepEdges(), biasCriticalPath(), llvm::CriticalAntiDepBreaker::BreakAntiDependencies(), llvm::AggressiveAntiDepBreaker::BreakAntiDependencies(), calcMaxScratches(), CalcNodeSethiUllmanNumber(), canClobberReachingPhysRegUse(), CriticalPathStep(), dumpAll(), llvm::SUnitIterator::end(), llvm::SUnitIterator::getSDep(), getSingleUnscheduledPred(), hasOnlyLiveInOpers(), hasVRegCycleUse(), llvm::ScheduleDAGTopologicalSort::InitDAGTopologicalSorting(), initVRegCycle(), llvm::DOTGraphTraits< ScheduleDAGMI * >::isNodeHidden(), isPred(), numberCtrlPredInSU(), llvm::SUnitIterator::operator*(), llvm::ScheduleDAGMI::releasePredecessors(), llvm::ConvergingVLIWScheduler::releaseTopNode(), removePred(), resetVRegCycle(), llvm::ResourcePriorityQueue::scheduledNode(), llvm::ConvergingVLIWScheduler::SchedulingCost(), setHeightDirty(), llvm::SchedDFSImpl::visitPostorderNode(), and llvm::ScheduleDAGTopologicalSort::WillCreateCycle().
const MCSchedClassDesc* llvm::SUnit::SchedClass |
Definition at line 260 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::getSchedClass().
Sched::Preference llvm::SUnit::SchedulingPref |
Definition at line 295 of file ScheduleDAG.h.
Referenced by BUCompareLatency(), llvm::ScheduleDAGSDNodes::Clone(), and llvm::ScheduleDAGSDNodes::newSUnit().
SmallVector<SDep, 4> llvm::SUnit::Succs |
Definition at line 264 of file ScheduleDAG.h.
Referenced by addPred(), canClobberReachingPhysRegUse(), closestSucc(), dumpAll(), getSingleUnscheduledSucc(), hasDataSucc(), hasOnlyLiveOutUses(), llvm::ScheduleDAGTopologicalSort::InitDAGTopologicalSorting(), llvm::DOTGraphTraits< ScheduleDAGMI * >::isNodeHidden(), isSucc(), iterateChainSucc(), numberCtrlDepsInSU(), llvm::LatencyPriorityQueue::push(), llvm::ResourcePriorityQueue::push(), llvm::ConvergingVLIWScheduler::releaseBottomNode(), llvm::ScheduleDAGMI::releaseSuccessors(), removePred(), llvm::LatencyPriorityQueue::scheduledNode(), llvm::ResourcePriorityQueue::scheduledNode(), llvm::ConvergingVLIWScheduler::SchedulingCost(), and setDepthDirty().
unsigned llvm::SUnit::TopReadyCycle |
Definition at line 303 of file ScheduleDAG.h.
Referenced by llvm::ConvergingVLIWScheduler::releaseTopNode(), and llvm::ConvergingVLIWScheduler::schedNode().
unsigned llvm::SUnit::WeakPredsLeft |
Definition at line 277 of file ScheduleDAG.h.
Referenced by addPred(), dumpAll(), getWeakLeft(), llvm::ScheduleDAGMI::releaseSucc(), and removePred().
unsigned llvm::SUnit::WeakSuccsLeft |
Definition at line 278 of file ScheduleDAG.h.
Referenced by addPred(), dumpAll(), getWeakLeft(), llvm::ScheduleDAGMI::releasePred(), and removePred().