|
LLVM
4.0.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... | |
| bool | addPredBarrier (SUnit *SU) |
| addPredBarrier - This adds a barrier edge to SU by calling addPred(), with latency 0 generally or latency 1 for a store followed by a load. 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 244 of file ScheduleDAG.h.
| typedef SmallVectorImpl<SDep>::const_iterator llvm::SUnit::const_pred_iterator |
Definition at line 263 of file ScheduleDAG.h.
| typedef SmallVectorImpl<SDep>::const_iterator llvm::SUnit::const_succ_iterator |
Definition at line 264 of file ScheduleDAG.h.
| typedef SmallVectorImpl<SDep>::iterator llvm::SUnit::pred_iterator |
Definition at line 261 of file ScheduleDAG.h.
| typedef SmallVectorImpl<SDep>::iterator llvm::SUnit::succ_iterator |
Definition at line 262 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 308 of file ScheduleDAG.h.
|
inline |
SUnit - Construct an SUnit for post-regalloc scheduling to represent a MachineInstr.
Definition at line 324 of file ScheduleDAG.h.
|
inline |
SUnit - Construct a placeholder SUnit.
Definition at line 339 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 assert(), D, llvm::SDep::Data, E, 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 llvm::ScheduleDAGInstrs::addChainDependency(), llvm::ScheduleDAGMI::addEdge(), llvm::ScheduleDAGInstrs::addPhysRegDataDeps(), llvm::ScheduleDAGInstrs::addPhysRegDeps(), addPredBarrier(), llvm::ScheduleDAGInstrs::addVRegDefDeps(), llvm::ScheduleDAGInstrs::buildSchedGraph(), and swapAntiDependences().
addPredBarrier - This adds a barrier edge to SU by calling addPred(), with latency 0 generally or latency 1 for a store followed by a load.
Definition at line 402 of file ScheduleDAG.h.
References addPred(), llvm::SDep::Barrier, getInstr(), llvm::MachineInstr::mayLoad(), llvm::MachineInstr::mayStore(), and llvm::SDep::setLatency().
Referenced by llvm::ScheduleDAGInstrs::buildSchedGraph(), and llvm::ScheduleDAGInstrs::reduceHugeMemNodeMaps().
| void SUnit::biasCriticalPath | ( | ) |
Order this node's predecessor edges such that the critical path edge occurs first.
Definition at line 297 of file ScheduleDAG.cpp.
References llvm::SDep::Data, E, 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 324 of file ScheduleDAG.cpp.
References llvm::dbgs(), llvm::ScheduleDAG::dumpNode(), and print().
Referenced by dumpAll(), llvm::ScheduleDAGSDNodes::dumpSchedule(), llvm::R600SchedStrategy::pickNode(), llvm::ConvergingVLIWScheduler::pickNode(), llvm::SIScheduleBlock::printDebug(), 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 330 of file ScheduleDAG.cpp.
References llvm::SDep::Anti, llvm::SDep::Data, llvm::dbgs(), dump(), E, getDepth(), getHeight(), I, Latency, NumPredsLeft, NumRegDefsLeft, NumSuccsLeft, llvm::SDep::Order, llvm::SDep::Output, Preds, llvm::PrintReg(), Succs, llvm::ScheduleDAG::TRI, WeakPredsLeft, and WeakSuccsLeft.
Referenced by llvm::VLIWPacketizerList::PacketizeMIs(), llvm::ScheduleDAGMI::schedule(), llvm::SIScheduleDAGMI::schedule(), and llvm::ScheduleDAGMILive::schedule().
|
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 417 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 425 of file ScheduleDAG.h.
Referenced by BUCompareLatency(), llvm::SchedBoundary::bumpNode(), BURRSort(), closestSucc(), llvm::ScheduleDAGMILive::computeCyclicCriticalPath(), dumpAll(), llvm::HexagonHazardRecognizer::EmitInstruction(), 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 389 of file ScheduleDAG.h.
References assert().
Referenced by llvm::ScheduleDAGInstrs::addChainDependency(), llvm::ScheduleDAGInstrs::addPhysRegDataDeps(), llvm::ScheduleDAGInstrs::addPhysRegDeps(), addPredBarrier(), llvm::ScheduleDAGInstrs::addVRegDefDeps(), llvm::ScheduleDAGInstrs::addVRegUseDeps(), llvm::HexagonSubtarget::adjustSchedDependency(), biasPhysRegCopy(), llvm::CriticalAntiDepBreaker::BreakAntiDependencies(), llvm::AggressiveAntiDepBreaker::BreakAntiDependencies(), llvm::SchedBoundary::bumpNode(), llvm::HexagonPacketizerList::canPromoteToDotCur(), llvm::HexagonPacketizerList::canPromoteToDotNew(), llvm::HexagonPacketizerList::canPromoteToNewValue(), llvm::HexagonPacketizerList::canPromoteToNewValueStore(), llvm::SchedBoundary::checkHazard(), llvm::ScheduleDAGMILive::collectVRegUses(), llvm::ScheduleDAGMILive::computeCyclicCriticalPath(), computeLiveOuts(), llvm::ScheduleDAGInstrs::dumpNode(), llvm::SystemZHazardRecognizer::dumpSU(), llvm::ARMHazardRecognizer::EmitInstruction(), llvm::GCNHazardRecognizer::EmitInstruction(), llvm::HexagonHazardRecognizer::EmitInstruction(), llvm::PPCHazardRecognizer970::EmitInstruction(), llvm::SystemZHazardRecognizer::EmitInstruction(), llvm::ScheduleDAGInstrs::getGraphNodeLabel(), llvm::ARMHazardRecognizer::getHazardType(), llvm::HexagonHazardRecognizer::getHazardType(), llvm::GCNHazardRecognizer::getHazardType(), llvm::PPCHazardRecognizer970::getHazardType(), llvm::ScheduleDAG::getInstrDesc(), llvm::ScheduleDAGInstrs::getSchedClass(), llvm::GenericScheduler::initCandidate(), llvm::ScheduleDAGInstrs::initSUnits(), llvm::HexagonPacketizerList::isLegalToPacketizeTogether(), llvm::HexagonPacketizerList::isLegalToPruneDependencies(), llvm::VLIWResourceModel::isResourceAvailable(), llvm::VLIWPacketizerList::PacketizeMIs(), llvm::GCNMaxOccupancySchedStrategy::pickNode(), llvm::GenericScheduler::pickNode(), llvm::PostGenericScheduler::pickNode(), llvm::GCNHazardRecognizer::PreEmitNoops(), llvm::R600SchedStrategy::releaseBottomNode(), llvm::ConvergingVLIWScheduler::releaseBottomNode(), llvm::SchedBoundary::releaseNode(), llvm::GenericScheduler::reschedulePhysRegCopies(), llvm::VLIWResourceModel::reserveResources(), llvm::R600SchedStrategy::schedNode(), llvm::SIScheduleBlock::schedule(), llvm::ScheduleDAGMI::schedule(), llvm::SIScheduleDAGMI::schedule(), llvm::ScheduleDAGMILive::schedule(), llvm::ScheduleDAGMILive::scheduleMI(), llvm::ConvergingVLIWScheduler::SchedulingCost(), 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 371 of file ScheduleDAG.h.
References assert().
Referenced by BURRSort(), canClobberPhysRegDefs(), canClobberReachingPhysRegUse(), canEnableCoalescing(), llvm::ScheduleDAGSDNodes::Clone(), closestSucc(), llvm::ScheduleDAGSDNodes::computeLatency(), llvm::ScheduleDAGSDNodes::dumpNode(), llvm::ScheduleDAGSDNodes::EmitSchedule(), llvm::ScheduleDAGSDNodes::getGraphNodeLabel(), llvm::ScheduleDAG::getInstrDesc(), hasOnlyLiveInOpers(), hasOnlyLiveOutUses(), hasVRegCycleUse(), 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 470 of file ScheduleDAG.h.
References NumSuccsLeft.
Referenced by llvm::GCNMaxOccupancySchedStrategy::pickNode(), llvm::ConvergingVLIWScheduler::pickNode(), llvm::GenericScheduler::pickNode(), llvm::ScheduleDAGMI::schedule(), 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 360 of file ScheduleDAG.h.
References NodeNum.
Referenced by llvm::SchedDFSResult::compute(), computePath(), llvm::ScheduleDAGMI::findRootsAndBiasEdges(), and hasDataSucc().
|
inline |
isInstr - Return true if this SUnit refers to a machine instruction as opposed to an SDNode.
Definition at line 378 of file ScheduleDAG.h.
Referenced by llvm::HexagonSubtarget::adjustSchedDependency(), llvm::ScheduleDAG::getInstrDesc(), and llvm::ConvergingVLIWScheduler::SchedulingCost().
isPred - Test if node N is a predecessor of this node.
Definition at line 452 of file ScheduleDAG.h.
isSucc - Test if node N is a successor of this node.
Definition at line 460 of file ScheduleDAG.h.
Referenced by llvm::HexagonPacketizerList::arePredicatesComplements(), llvm::HexagonPacketizerList::isLegalToPacketizeTogether(), and llvm::HexagonPacketizerList::restrictingDepExistInPacket().
|
inline |
Definition at line 467 of file ScheduleDAG.h.
References NumPredsLeft.
Referenced by llvm::GCNMaxOccupancySchedStrategy::pickNode(), llvm::ConvergingVLIWScheduler::pickNode(), llvm::GenericScheduler::pickNode(), llvm::ScheduleDAGMI::schedule(), and llvm::ScheduleDAGMILive::scheduleMI().
| void SUnit::print | ( | raw_ostream & | O, |
| const ScheduleDAG * | G | ||
| ) | const |
Definition at line 313 of file ScheduleDAG.cpp.
References llvm::ScheduleDAG::EntrySU, llvm::ScheduleDAG::ExitSU, and NodeNum.
Referenced by dump().
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 assert(), D, llvm::SDep::Data, E, llvm::find(), 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.
Referenced by swapAntiDependences().
| 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 177 of file ScheduleDAG.cpp.
References E, 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 212 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 193 of file ScheduleDAG.cpp.
References E, 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 223 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 382 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::addSchedBarrierDeps().
|
inline |
| unsigned llvm::SUnit::BotReadyCycle |
Definition at line 301 of file ScheduleDAG.h.
Referenced by llvm::SchedBoundary::bumpNode(), llvm::SchedBoundary::getLatencyStallCycles(), llvm::ConvergingVLIWScheduler::releaseBottomNode(), llvm::GenericScheduler::releaseBottomNode(), llvm::SchedBoundary::releasePending(), llvm::ScheduleDAGMI::releasePred(), llvm::ConvergingVLIWScheduler::schedNode(), and llvm::GenericScheduler::schedNode().
| const TargetRegisterClass* llvm::SUnit::CopyDstRC |
Definition at line 303 of file ScheduleDAG.h.
| const TargetRegisterClass* llvm::SUnit::CopySrcRC |
Definition at line 304 of file ScheduleDAG.h.
| bool llvm::SUnit::hasPhysRegClobbers |
Definition at line 283 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGSDNodes::Clone().
| bool llvm::SUnit::hasPhysRegDefs |
Definition at line 282 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::addPhysRegDataDeps(), BURRSort(), llvm::ScheduleDAGSDNodes::Clone(), and llvm::GenericScheduler::schedNode().
| bool llvm::SUnit::hasPhysRegUses |
Definition at line 281 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::addPhysRegDeps(), and llvm::GenericScheduler::schedNode().
| bool llvm::SUnit::hasReservedResource |
Definition at line 291 of file ScheduleDAG.h.
Referenced by llvm::SchedBoundary::bumpNode(), llvm::SchedBoundary::checkHazard(), and llvm::ScheduleDAGInstrs::initSUnits().
| bool llvm::SUnit::isAvailable |
Definition at line 285 of file ScheduleDAG.h.
| bool llvm::SUnit::isCall |
Definition at line 277 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 278 of file ScheduleDAG.h.
Referenced by BURRSort(), and llvm::ScheduleDAGSDNodes::Clone().
| bool llvm::SUnit::isCloned |
Definition at line 289 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGSDNodes::Clone(), and llvm::ScheduleDAGSDNodes::EmitSchedule().
| bool llvm::SUnit::isCommutable |
Definition at line 280 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGSDNodes::Clone(), and llvm::ScheduleDAGInstrs::initSUnits().
| bool llvm::SUnit::isPending |
Definition at line 284 of file ScheduleDAG.h.
| bool llvm::SUnit::isScheduled |
Definition at line 286 of file ScheduleDAG.h.
Referenced by addPred(), getSingleUnscheduledPred(), getSingleUnscheduledSucc(), llvm::GCNMaxOccupancySchedStrategy::pickNode(), llvm::R600SchedStrategy::pickNode(), llvm::GenericScheduler::pickNode(), llvm::PostGenericScheduler::pickNode(), llvm::ConvergingVLIWScheduler::releaseBottomNode(), llvm::GenericScheduler::releaseBottomNode(), llvm::ConvergingVLIWScheduler::releaseTopNode(), llvm::GenericScheduler::releaseTopNode(), llvm::PostGenericScheduler::releaseTopNode(), removePred(), llvm::ScheduleDAGMI::schedule(), llvm::ScheduleDAGMILive::schedule(), llvm::ConvergingVLIWScheduler::SchedulingCost(), llvm::ResourcePriorityQueue::SUSchedulingCost(), llvm::ScheduleDAGMILive::updatePressureDiffs(), and llvm::ScheduleDAGMI::updateQueues().
| bool llvm::SUnit::isScheduleHigh |
Definition at line 287 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGSDNodes::Clone(), llvm::latency_sort::operator()(), llvm::resource_sort::operator()(), llvm::SystemZPostRASchedStrategy::releaseTopNode(), llvm::ConvergingVLIWScheduler::SchedulingCost(), and llvm::ResourcePriorityQueue::SUSchedulingCost().
| bool llvm::SUnit::isScheduleLow |
Definition at line 288 of file ScheduleDAG.h.
Referenced by checkSpecialNodes(), and llvm::ScheduleDAGSDNodes::Clone().
| bool llvm::SUnit::isTwoAddress |
Definition at line 279 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGSDNodes::Clone().
| bool llvm::SUnit::isUnbuffered |
Definition at line 290 of file ScheduleDAG.h.
Referenced by llvm::SchedBoundary::bumpNode(), llvm::SystemZHazardRecognizer::dumpSU(), llvm::SystemZHazardRecognizer::EmitInstruction(), llvm::SchedBoundary::getLatencyStallCycles(), llvm::ScheduleDAGInstrs::initSUnits(), llvm::SystemZPostRASchedStrategy::releaseTopNode(), and llvm::SystemZHazardRecognizer::resourcesCost().
| bool llvm::SUnit::isVRegCycle |
Definition at line 276 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGSDNodes::Clone(), hasVRegCycleUse(), initVRegCycle(), and resetVRegCycle().
| unsigned short llvm::SUnit::Latency |
Definition at line 275 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 266 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGTopologicalSort::AddPred(), llvm::SIScheduleBlock::addUnit(), BUCompareLatency(), llvm::ScheduleDAGInstrs::buildSchedGraph(), llvm::SchedBoundary::bumpNode(), BURRSort(), CalcNodeSethiUllmanNumber(), llvm::SchedBoundary::checkHazard(), llvm::ScheduleDAGMILive::computeCyclicCriticalPath(), llvm::SystemZHazardRecognizer::dumpSU(), llvm::PPCDispatchGroupSBHazardRecognizer::EmitInstruction(), llvm::SIScheduleBlock::finalizeUnits(), 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::GenericScheduler::initCandidate(), llvm::ScheduleDAGTopologicalSort::InitDAGTopologicalSorting(), initVRegCycle(), llvm::ScheduleDAGInstrs::insertBarrierChain(), isBoundaryNode(), llvm::ScheduleDAGTopologicalSort::IsReachable(), llvm::SIScheduleBlockCreator::isSUInBlock(), llvm::SchedDFSImpl::isVisited(), llvm::SchedDFSImpl::joinPredSubtree(), llvm::latency_sort::operator()(), llvm::resource_sort::operator()(), llvm::GCNMaxOccupancySchedStrategy::pickNode(), llvm::GenericScheduler::pickNode(), llvm::PostGenericScheduler::pickNode(), print(), llvm::LatencyPriorityQueue::push(), llvm::ResourcePriorityQueue::push(), llvm::SystemZPostRASchedStrategy::schedNode(), llvm::SIScheduleDAGMI::schedule(), llvm::SIScheduler::scheduleVariant(), 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 267 of file ScheduleDAG.h.
Referenced by BURRSort(), llvm::ResourcePriorityQueue::initNodes(), llvm::ReadyQueue::isInQueue(), and llvm::ReadyQueue::push().
| unsigned llvm::SUnit::NumPreds |
Definition at line 268 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 270 of file ScheduleDAG.h.
Referenced by addPred(), biasPhysRegCopy(), dumpAll(), isTopReady(), llvm::ScheduleDAGMI::releaseSucc(), and removePred().
| unsigned short llvm::SUnit::NumRegDefsLeft |
Definition at line 274 of file ScheduleDAG.h.
Referenced by dumpAll(), llvm::ScheduleDAGSDNodes::InitNumRegDefsLeft(), llvm::ResourcePriorityQueue::initNumRegDefsLeft(), and llvm::ResourcePriorityQueue::scheduledNode().
| unsigned llvm::SUnit::NumSuccs |
Definition at line 269 of file ScheduleDAG.h.
Referenced by addPred(), llvm::HexagonSubtarget::adjustSchedDependency(), llvm::ScheduleDAGInstrs::buildSchedGraph(), canEnableCoalescing(), llvm::DOTGraphTraits< ScheduleDAG * >::isNodeHidden(), and removePred().
| unsigned llvm::SUnit::NumSuccsLeft |
Definition at line 271 of file ScheduleDAG.h.
Referenced by addPred(), biasPhysRegCopy(), dumpAll(), isBottomReady(), llvm::ScheduleDAGMI::releasePred(), and removePred().
| SUnit* llvm::SUnit::OrigNode |
Definition at line 251 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGSDNodes::Clone(), and llvm::ScheduleDAGSDNodes::EmitSchedule().
| SmallVector<SDep, 4> llvm::SUnit::Preds |
Definition at line 258 of file ScheduleDAG.h.
Referenced by addPred(), AntiDepEdges(), biasCriticalPath(), llvm::CriticalAntiDepBreaker::BreakAntiDependencies(), llvm::AggressiveAntiDepBreaker::BreakAntiDependencies(), calcMaxScratches(), CalcNodeSethiUllmanNumber(), canClobberReachingPhysRegUse(), computePath(), CriticalPathStep(), dumpAll(), llvm::SUnitIterator::end(), llvm::SUnitIterator::getSDep(), getSingleUnscheduledPred(), hasOnlyLiveInOpers(), hasVRegCycleUse(), llvm::ScheduleDAGTopologicalSort::InitDAGTopologicalSorting(), initVRegCycle(), llvm::DOTGraphTraits< ScheduleDAGMI * >::isNodeHidden(), isPred(), multipleIterations(), numberCtrlPredInSU(), llvm::SUnitIterator::operator*(), llvm::ScheduleDAGMI::releasePredecessors(), llvm::ConvergingVLIWScheduler::releaseTopNode(), removePred(), llvm::GenericScheduler::reschedulePhysRegCopies(), resetVRegCycle(), llvm::ResourcePriorityQueue::scheduledNode(), llvm::ConvergingVLIWScheduler::SchedulingCost(), setHeightDirty(), swapAntiDependences(), llvm::SchedDFSImpl::visitPostorderNode(), and llvm::ScheduleDAGTopologicalSort::WillCreateCycle().
| const MCSchedClassDesc* llvm::SUnit::SchedClass |
Definition at line 255 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::getSchedClass().
| Sched::Preference llvm::SUnit::SchedulingPref |
Definition at line 292 of file ScheduleDAG.h.
Referenced by BUCompareLatency(), llvm::ScheduleDAGSDNodes::Clone(), and llvm::ScheduleDAGSDNodes::newSUnit().
| SmallVector<SDep, 4> llvm::SUnit::Succs |
Definition at line 259 of file ScheduleDAG.h.
Referenced by addPred(), llvm::HexagonSubtarget::adjustSchedDependency(), llvm::HexagonPacketizerList::arePredicatesComplements(), llvm::AggressiveAntiDepBreaker::BreakAntiDependencies(), canClobberReachingPhysRegUse(), closestSucc(), computePath(), dumpAll(), llvm::HexagonHazardRecognizer::EmitInstruction(), getSingleUnscheduledSucc(), hasDataDependence(), hasDataSucc(), hasOnlyLiveOutUses(), llvm::ScheduleDAGTopologicalSort::InitDAGTopologicalSorting(), llvm::HexagonPacketizerList::isLegalToPacketizeTogether(), llvm::DOTGraphTraits< ScheduleDAGMI * >::isNodeHidden(), isSucc(), isSuccOrder(), numberCtrlDepsInSU(), llvm::LatencyPriorityQueue::push(), llvm::ResourcePriorityQueue::push(), llvm::ConvergingVLIWScheduler::releaseBottomNode(), llvm::ScheduleDAGMI::releaseSuccessors(), removePred(), llvm::GenericScheduler::reschedulePhysRegCopies(), llvm::HexagonPacketizerList::restrictingDepExistInPacket(), llvm::LatencyPriorityQueue::scheduledNode(), llvm::ResourcePriorityQueue::scheduledNode(), llvm::ConvergingVLIWScheduler::SchedulingCost(), and setDepthDirty().
| unsigned llvm::SUnit::TopReadyCycle |
Definition at line 300 of file ScheduleDAG.h.
Referenced by llvm::SchedBoundary::bumpNode(), llvm::SchedBoundary::getLatencyStallCycles(), llvm::SchedBoundary::releasePending(), llvm::ScheduleDAGMI::releaseSucc(), llvm::ConvergingVLIWScheduler::releaseTopNode(), llvm::GenericScheduler::releaseTopNode(), llvm::PostGenericScheduler::releaseTopNode(), llvm::ConvergingVLIWScheduler::schedNode(), llvm::GenericScheduler::schedNode(), and llvm::PostGenericScheduler::schedNode().
| unsigned llvm::SUnit::WeakPredsLeft |
Definition at line 272 of file ScheduleDAG.h.
Referenced by addPred(), dumpAll(), getWeakLeft(), llvm::ScheduleDAGMI::releaseSucc(), and removePred().
| unsigned llvm::SUnit::WeakSuccsLeft |
Definition at line 273 of file ScheduleDAG.h.
Referenced by addPred(), dumpAll(), getWeakLeft(), llvm::ScheduleDAGMI::releasePred(), and removePred().
1.8.6