|
LLVM
3.7.0
|
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 - Construct an SUnit for pre-regalloc scheduling to represent an SDNode and any nodes flagged to it. More... | |
| SUnit (MachineInstr *instr, unsigned nodenum) | |
| SUnit - Construct an SUnit for post-regalloc scheduling to represent a MachineInstr. More... | |
| 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) |
| setNode - Assign the representative SDNode for this SUnit. More... | |
| SDNode * | getNode () const |
| getNode - Return the representative SDNode for this SUnit. More... | |
| bool | isInstr () const |
| isInstr - Return true if this SUnit refers to a machine instruction as opposed to an SDNode. More... | |
| void | setInstr (MachineInstr *MI) |
| setInstr - Assign the instruction for the SUnit. More... | |
| MachineInstr * | getInstr () const |
| getInstr - Return the representative MachineInstr for this SUnit. More... | |
| bool | addPred (const SDep &D, bool Required=true) |
| addPred - This adds the specified edge as a pred of the current node if not already. More... | |
| void | removePred (const SDep &D) |
| removePred - This removes the specified edge as a pred of the current node if it exists. More... | |
| unsigned | getDepth () const |
| getDepth - Return the depth of this node, which is the length of the maximum path up to any node which has no predecessors. More... | |
| unsigned | getHeight () const |
| getHeight - Return the height of this node, which is the length of the maximum path down to any node which has no successors. More... | |
| void | setDepthToAtLeast (unsigned NewDepth) |
| setDepthToAtLeast - If NewDepth is greater than this node's depth value, set it to be the new depth value. More... | |
| void | setHeightToAtLeast (unsigned NewHeight) |
| setDepthToAtLeast - If NewDepth is greater than this node's depth value, set it to be the new height value. More... | |
| void | setDepthDirty () |
| setDepthDirty - Set a flag in this node to indicate that its stored Depth value will require recomputation the next time getDepth() is called. More... | |
| void | setHeightDirty () |
| setHeightDirty - Set a flag in this node to indicate that its stored Height value will require recomputation the next time getHeight() is called. More... | |
| 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 |
| SUnit - Scheduling unit. More... | |
| 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 |
| bool | isUnbuffered: 1 |
| bool | hasReservedResource: 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 261 of file ScheduleDAG.h.
| typedef SmallVectorImpl<SDep>::const_iterator llvm::SUnit::const_pred_iterator |
Definition at line 280 of file ScheduleDAG.h.
| typedef SmallVectorImpl<SDep>::const_iterator llvm::SUnit::const_succ_iterator |
Definition at line 281 of file ScheduleDAG.h.
| typedef SmallVectorImpl<SDep>::iterator llvm::SUnit::pred_iterator |
Definition at line 278 of file ScheduleDAG.h.
| typedef SmallVectorImpl<SDep>::iterator llvm::SUnit::succ_iterator |
Definition at line 279 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 325 of file ScheduleDAG.h.
|
inline |
SUnit - Construct an SUnit for post-regalloc scheduling to represent a MachineInstr.
Definition at line 341 of file ScheduleDAG.h.
|
inline |
SUnit - Construct a placeholder SUnit.
Definition at line 356 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, 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 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 423 of file ScheduleDAG.h.
Referenced by llvm::CriticalAntiDepBreaker::BreakAntiDependencies(), llvm::AggressiveAntiDepBreaker::BreakAntiDependencies(), BUCompareLatency(), llvm::SchedBoundary::bumpNode(), BURRSort(), llvm::ScheduleDAGMILive::computeCyclicCriticalPath(), CriticalPathStep(), dumpAll(), llvm::SchedDFSResult::getILP(), llvm::SchedBoundary::getUnscheduledLatency(), llvm::GenericScheduler::registerRoots(), llvm::PostGenericScheduler::registerRoots(), llvm::ConvergingVLIWScheduler::SchedulingCost(), setDepthToAtLeast(), llvm::GenericSchedulerBase::traceCandidate(), and tryLatency().
|
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 431 of file ScheduleDAG.h.
Referenced by BUCompareLatency(), llvm::SchedBoundary::bumpNode(), BURRSort(), llvm::ScheduleDAGMILive::computeCyclicCriticalPath(), dumpAll(), llvm::SchedBoundary::getUnscheduledLatency(), llvm::ConvergingVLIWScheduler::SchedulingCost(), setHeightToAtLeast(), llvm::ResourcePriorityQueue::SUSchedulingCost(), llvm::GenericSchedulerBase::traceCandidate(), and tryLatency().
|
inline |
getInstr - Return the representative MachineInstr for this SUnit.
This may be used during post-regalloc scheduling.
Definition at line 406 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::SchedBoundary::bumpNode(), llvm::SchedBoundary::checkHazard(), 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::GenericScheduler::pickNode(), llvm::PostGenericScheduler::pickNode(), llvm::R600SchedStrategy::releaseBottomNode(), llvm::ConvergingVLIWScheduler::releaseBottomNode(), llvm::SchedBoundary::releaseNode(), llvm::GenericScheduler::reschedulePhysRegCopies(), llvm::VLIWResourceModel::reserveResources(), llvm::R600SchedStrategy::schedNode(), llvm::ScheduleDAGMILive::scheduleMI(), llvm::GenericScheduler::tryCandidate(), llvm::ScheduleDAGMILive::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 388 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 476 of file ScheduleDAG.h.
References NumSuccsLeft.
Referenced by llvm::ConvergingVLIWScheduler::pickNode(), llvm::GenericScheduler::pickNode(), and llvm::ScheduleDAGMILive::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 377 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 395 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAG::getInstrDesc().
isPred - Test if node N is a predecessor of this node.
Definition at line 458 of file ScheduleDAG.h.
isSucc - Test if node N is a successor of this node.
Definition at line 466 of file ScheduleDAG.h.
Referenced by iterateChainSucc().
|
inline |
Definition at line 473 of file ScheduleDAG.h.
References NumPredsLeft.
Referenced by llvm::ConvergingVLIWScheduler::pickNode(), llvm::GenericScheduler::pickNode(), and llvm::ScheduleDAGMILive::scheduleMI().
| void llvm::SUnit::print | ( | raw_ostream & | O, |
| const ScheduleDAG * | G | ||
| ) | const |
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.
setDepthToAtLeast - Update this node's successors to reflect the fact that this node's depth just increased.
This also recursively marks successor nodes dirty.
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.
setHeightToAtLeast - Update this node's predecessors to reflect the fact that this node's height just increased.
This also recursively marks predecessor nodes dirty.
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 399 of file ScheduleDAG.h.
References llvm::AArch64CC::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 381 of file ScheduleDAG.h.
References N.
| unsigned llvm::SUnit::BotReadyCycle |
Definition at line 318 of file ScheduleDAG.h.
Referenced by llvm::SchedBoundary::bumpNode(), llvm::SchedBoundary::getLatencyStallCycles(), llvm::ConvergingVLIWScheduler::releaseBottomNode(), llvm::SchedBoundary::releaseBottomNode(), llvm::SchedBoundary::releasePending(), llvm::ScheduleDAGMI::releasePred(), llvm::ConvergingVLIWScheduler::schedNode(), and llvm::GenericScheduler::schedNode().
| const TargetRegisterClass* llvm::SUnit::CopyDstRC |
Definition at line 320 of file ScheduleDAG.h.
| const TargetRegisterClass* llvm::SUnit::CopySrcRC |
Definition at line 321 of file ScheduleDAG.h.
| bool llvm::SUnit::hasPhysRegClobbers |
Definition at line 300 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGSDNodes::Clone().
| bool llvm::SUnit::hasPhysRegDefs |
Definition at line 299 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::addPhysRegDataDeps(), BURRSort(), llvm::ScheduleDAGSDNodes::Clone(), and llvm::GenericScheduler::schedNode().
| bool llvm::SUnit::hasPhysRegUses |
Definition at line 298 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::addPhysRegDeps(), and llvm::GenericScheduler::schedNode().
| bool llvm::SUnit::hasReservedResource |
Definition at line 308 of file ScheduleDAG.h.
Referenced by llvm::SchedBoundary::bumpNode(), llvm::SchedBoundary::checkHazard(), and llvm::ScheduleDAGInstrs::initSUnits().
| bool llvm::SUnit::isAvailable |
Definition at line 302 of file ScheduleDAG.h.
| bool llvm::SUnit::isCall |
Definition at line 294 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::addPhysRegDeps(), llvm::SchedBoundary::bumpNode(), BURRSort(), llvm::ScheduleDAGSDNodes::Clone(), and llvm::ScheduleDAGInstrs::initSUnits().
| bool llvm::SUnit::isCallOp |
Definition at line 295 of file ScheduleDAG.h.
Referenced by BURRSort(), and llvm::ScheduleDAGSDNodes::Clone().
| bool llvm::SUnit::isCloned |
Definition at line 306 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGSDNodes::Clone(), and llvm::ScheduleDAGSDNodes::EmitSchedule().
| bool llvm::SUnit::isCommutable |
Definition at line 297 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGSDNodes::Clone(), and llvm::ScheduleDAGInstrs::initSUnits().
| bool llvm::SUnit::isPending |
Definition at line 301 of file ScheduleDAG.h.
| bool llvm::SUnit::isScheduled |
Definition at line 303 of file ScheduleDAG.h.
Referenced by addPred(), getSingleUnscheduledPred(), getSingleUnscheduledSucc(), llvm::R600SchedStrategy::pickNode(), llvm::GenericScheduler::pickNode(), llvm::PostGenericScheduler::pickNode(), llvm::ConvergingVLIWScheduler::releaseBottomNode(), llvm::SchedBoundary::releaseBottomNode(), llvm::ConvergingVLIWScheduler::releaseTopNode(), llvm::SchedBoundary::releaseTopNode(), removePred(), llvm::ConvergingVLIWScheduler::SchedulingCost(), llvm::ResourcePriorityQueue::SUSchedulingCost(), llvm::ScheduleDAGMILive::updatePressureDiffs(), and llvm::ScheduleDAGMI::updateQueues().
| bool llvm::SUnit::isScheduleHigh |
Definition at line 304 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 305 of file ScheduleDAG.h.
Referenced by checkSpecialNodes(), and llvm::ScheduleDAGSDNodes::Clone().
| bool llvm::SUnit::isTwoAddress |
Definition at line 296 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGSDNodes::Clone().
| bool llvm::SUnit::isUnbuffered |
Definition at line 307 of file ScheduleDAG.h.
Referenced by llvm::SchedBoundary::bumpNode(), llvm::SchedBoundary::getLatencyStallCycles(), and llvm::ScheduleDAGInstrs::initSUnits().
| bool llvm::SUnit::isVRegCycle |
Definition at line 293 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGSDNodes::Clone(), hasVRegCycleUse(), initVRegCycle(), and resetVRegCycle().
| unsigned short llvm::SUnit::Latency |
Definition at line 292 of file ScheduleDAG.h.
Referenced by llvm::CriticalAntiDepBreaker::BreakAntiDependencies(), llvm::AggressiveAntiDepBreaker::BreakAntiDependencies(), BUCompareLatency(), llvm::ScheduleDAGInstrs::buildSchedGraph(), llvm::ScheduleDAGSDNodes::Clone(), llvm::ScheduleDAGMILive::computeCyclicCriticalPath(), llvm::ScheduleDAGSDNodes::computeLatency(), dumpAll(), and llvm::ScheduleDAGInstrs::initSUnits().
| unsigned llvm::SUnit::NodeNum |
Definition at line 283 of file ScheduleDAG.h.
Referenced by addChainDependency(), llvm::ScheduleDAGTopologicalSort::AddPred(), BUCompareLatency(), llvm::ScheduleDAGInstrs::buildSchedGraph(), llvm::SchedBoundary::bumpNode(), BURRSort(), CalcNodeSethiUllmanNumber(), llvm::SchedBoundary::checkHazard(), llvm::ScheduleDAGMILive::computeCyclicCriticalPath(), dump(), llvm::PPCDispatchGroupSBHazardRecognizer::EmitInstruction(), llvm::SchedBoundary::findMaxLatency(), llvm::ScheduleDAGSDNodes::getGraphNodeLabel(), llvm::ScoreboardHazardRecognizer::getHazardType(), llvm::SchedDFSResult::getILP(), llvm::DOTGraphTraits< ScheduleDAGMI * >::getNodeLabel(), llvm::SchedDFSResult::getNumInstrs(), llvm::ScheduleDAGMILive::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::GenericScheduler::pickNode(), llvm::PostGenericScheduler::pickNode(), llvm::LatencyPriorityQueue::push(), llvm::ResourcePriorityQueue::push(), llvm::ResourcePriorityQueue::SUSchedulingCost(), llvm::GenericSchedulerBase::traceCandidate(), llvm::GenericScheduler::tryCandidate(), llvm::PostGenericScheduler::tryCandidate(), llvm::ScheduleDAGMILive::updatePressureDiffs(), llvm::SchedDFSImpl::visitPostorderEdge(), llvm::SchedDFSImpl::visitPostorderNode(), and llvm::SchedDFSImpl::visitPreorder().
| unsigned llvm::SUnit::NodeQueueId |
Definition at line 284 of file ScheduleDAG.h.
Referenced by BURRSort(), llvm::ResourcePriorityQueue::initNodes(), llvm::ReadyQueue::isInQueue(), and llvm::ReadyQueue::push().
| unsigned llvm::SUnit::NumPreds |
Definition at line 285 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 287 of file ScheduleDAG.h.
Referenced by addPred(), biasPhysRegCopy(), dumpAll(), isTopReady(), llvm::ScheduleDAGMI::releaseSucc(), and removePred().
| unsigned short llvm::SUnit::NumRegDefsLeft |
Definition at line 291 of file ScheduleDAG.h.
Referenced by dumpAll(), llvm::ScheduleDAGSDNodes::InitNumRegDefsLeft(), llvm::ResourcePriorityQueue::initNumRegDefsLeft(), and llvm::ResourcePriorityQueue::scheduledNode().
| unsigned llvm::SUnit::NumSuccs |
Definition at line 286 of file ScheduleDAG.h.
Referenced by addPred(), llvm::ScheduleDAGInstrs::buildSchedGraph(), canEnableCoalescing(), llvm::DOTGraphTraits< ScheduleDAG * >::isNodeHidden(), and removePred().
| unsigned llvm::SUnit::NumSuccsLeft |
Definition at line 288 of file ScheduleDAG.h.
Referenced by addPred(), biasPhysRegCopy(), dumpAll(), isBottomReady(), llvm::ScheduleDAGMI::releasePred(), and removePred().
| SUnit* llvm::SUnit::OrigNode |
Definition at line 268 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGSDNodes::Clone(), and llvm::ScheduleDAGSDNodes::EmitSchedule().
| SmallVector<SDep, 4> llvm::SUnit::Preds |
Definition at line 275 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(), llvm::GenericScheduler::reschedulePhysRegCopies(), resetVRegCycle(), llvm::ResourcePriorityQueue::scheduledNode(), llvm::ConvergingVLIWScheduler::SchedulingCost(), setHeightDirty(), llvm::SchedDFSImpl::visitPostorderNode(), and llvm::ScheduleDAGTopologicalSort::WillCreateCycle().
| const MCSchedClassDesc* llvm::SUnit::SchedClass |
Definition at line 272 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::getSchedClass().
| Sched::Preference llvm::SUnit::SchedulingPref |
Definition at line 309 of file ScheduleDAG.h.
Referenced by BUCompareLatency(), llvm::ScheduleDAGSDNodes::Clone(), and llvm::ScheduleDAGSDNodes::newSUnit().
| SmallVector<SDep, 4> llvm::SUnit::Succs |
Definition at line 276 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::GenericScheduler::reschedulePhysRegCopies(), llvm::LatencyPriorityQueue::scheduledNode(), llvm::ResourcePriorityQueue::scheduledNode(), llvm::ConvergingVLIWScheduler::SchedulingCost(), and setDepthDirty().
| unsigned llvm::SUnit::TopReadyCycle |
Definition at line 317 of file ScheduleDAG.h.
Referenced by llvm::SchedBoundary::bumpNode(), llvm::SchedBoundary::getLatencyStallCycles(), llvm::SchedBoundary::releasePending(), llvm::ScheduleDAGMI::releaseSucc(), llvm::ConvergingVLIWScheduler::releaseTopNode(), llvm::SchedBoundary::releaseTopNode(), llvm::ConvergingVLIWScheduler::schedNode(), llvm::GenericScheduler::schedNode(), and llvm::PostGenericScheduler::schedNode().
| unsigned llvm::SUnit::WeakPredsLeft |
Definition at line 289 of file ScheduleDAG.h.
Referenced by addPred(), dumpAll(), getWeakLeft(), llvm::ScheduleDAGMI::releaseSucc(), and removePred().
| unsigned llvm::SUnit::WeakSuccsLeft |
Definition at line 290 of file ScheduleDAG.h.
Referenced by addPred(), dumpAll(), getWeakLeft(), llvm::ScheduleDAGMI::releasePred(), and removePred().
1.8.6