LLVM API Documentation
#include <ScheduleDAG.h>
Definition at line 221 of file ScheduleDAG.h.
| typedef SmallVector<SDep, 4>::iterator llvm::SUnit::pred_iterator |
Definition at line 234 of file ScheduleDAG.h.
| typedef SmallVector<SDep, 4>::iterator llvm::SUnit::succ_iterator |
Definition at line 235 of file ScheduleDAG.h.
| typedef SmallVector<SDep, 4>::const_iterator llvm::SUnit::const_pred_iterator |
Definition at line 236 of file ScheduleDAG.h.
| typedef SmallVector<SDep, 4>::const_iterator llvm::SUnit::const_succ_iterator |
Definition at line 237 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 265 of file ScheduleDAG.h.
| llvm::SUnit::SUnit | ( | MachineInstr * | instr, | |
| unsigned | nodenum | |||
| ) | [inline] |
SUnit - Construct an SUnit for post-regalloc scheduling to represent a MachineInstr.
Definition at line 276 of file ScheduleDAG.h.
| void llvm::SUnit::setNode | ( | SDNode * | N | ) | [inline] |
setNode - Assign the representative SDNode for this SUnit. This may be used during pre-regalloc scheduling.
Definition at line 287 of file ScheduleDAG.h.
| SDNode* llvm::SUnit::getNode | ( | ) | const [inline] |
getNode - Return the representative SDNode for this SUnit. This may be used during pre-regalloc scheduling.
Definition at line 294 of file ScheduleDAG.h.
Referenced by canClobberPhysRegDefs(), llvm::ScheduleDAGSDNodes::Clone(), llvm::ScheduleDAGSDNodes::ComputeLatency(), llvm::ScheduleDAGSDNodes::dumpNode(), llvm::PPCHazardRecognizer970::EmitInstruction(), llvm::ScheduleDAGSDNodes::EmitSchedule(), llvm::ScheduleDAGSDNodes::getGraphNodeLabel(), llvm::SPUHazardRecognizer::getHazardType(), llvm::PPCHazardRecognizer970::getHazardType(), hasCopyToRegUse(), and isCopyFromLiveIn().
| void llvm::SUnit::setInstr | ( | MachineInstr * | MI | ) | [inline] |
setInstr - Assign the instruction for the SUnit. This may be used during post-regalloc scheduling.
Definition at line 301 of file ScheduleDAG.h.
| MachineInstr* llvm::SUnit::getInstr | ( | ) | const [inline] |
getInstr - Return the representative MachineInstr for this SUnit. This may be used during post-regalloc scheduling.
Definition at line 308 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::BuildSchedGraph(), llvm::ScheduleDAGInstrs::ComputeLatency(), llvm::ScheduleDAGInstrs::dumpNode(), llvm::ScheduleDAGInstrs::EmitSchedule(), and llvm::ScheduleDAGInstrs::getGraphNodeLabel().
| void SUnit::addPred | ( | const SDep & | D | ) |
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.
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 72 of file ScheduleDAG.cpp.
References llvm::SDep::Data, llvm::SDep::getKind(), llvm::SDep::getLatency(), llvm::SDep::getSUnit(), isScheduled, NumPreds, NumPredsLeft, NumSuccs, NumSuccsLeft, Preds, setDepthDirty(), setHeightDirty(), llvm::SDep::setSUnit(), and Succs.
Referenced by llvm::ScheduleDAGInstrs::BuildSchedGraph().
| 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.
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 101 of file ScheduleDAG.cpp.
References llvm::SDep::Data, E, llvm::SDep::getKind(), llvm::SDep::getLatency(), llvm::SDep::getSUnit(), II, isScheduled, NumPreds, NumPredsLeft, NumSuccs, NumSuccsLeft, Preds, setDepthDirty(), setHeightDirty(), llvm::SDep::setSUnit(), and Succs.
| unsigned llvm::SUnit::getDepth | ( | ) | const [inline] |
getDepth - Return the depth of this node, which is the length of the maximum path up to any node with has no predecessors.
Definition at line 325 of file ScheduleDAG.h.
Referenced by CriticalPathStep(), and setDepthToAtLeast().
| unsigned llvm::SUnit::getHeight | ( | ) | const [inline] |
getHeight - Return the height of this node, which is the length of the maximum path down to any node with has no successors.
Definition at line 332 of file ScheduleDAG.h.
Referenced by setHeightToAtLeast(), and llvm::ScheduleDAG::VerifySchedule().
| 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 172 of file ScheduleDAG.cpp.
References getDepth(), and setDepthDirty().
| 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 183 of file ScheduleDAG.cpp.
References getHeight(), and setHeightDirty().
| 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 137 of file ScheduleDAG.cpp.
References E, llvm::SmallVectorImpl< T >::empty(), isDepthCurrent, llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorImpl< T >::push_back(), Succs, and WorkList.
Referenced by addPred(), removePred(), and setDepthToAtLeast().
| 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 153 of file ScheduleDAG.cpp.
References E, llvm::SmallVectorImpl< T >::empty(), isHeightCurrent, llvm::SmallVectorImpl< T >::pop_back_val(), Preds, llvm::SmallVectorImpl< T >::push_back(), and WorkList.
Referenced by addPred(), removePred(), and setHeightToAtLeast().
| bool llvm::SUnit::isPred | ( | SUnit * | N | ) | [inline] |
isPred - Test if node N is a predecessor of this node.
Definition at line 358 of file ScheduleDAG.h.
References Preds.
| bool llvm::SUnit::isSucc | ( | SUnit * | N | ) | [inline] |
isSucc - Test if node N is a successor of this node.
Definition at line 366 of file ScheduleDAG.h.
References Succs.
| 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 259 of file ScheduleDAG.cpp.
References llvm::cerr(), llvm::ScheduleDAG::dumpNode(), and NodeNum.
Referenced by dumpAll().
| void SUnit::dumpAll | ( | const ScheduleDAG * | G | ) | const |
Definition at line 264 of file ScheduleDAG.cpp.
References llvm::SDep::Anti, llvm::cerr(), llvm::SDep::Data, dump(), E, Latency, NumPredsLeft, NumSuccsLeft, llvm::SDep::Order, llvm::SDep::Output, Preds, and Succs.
| void llvm::SUnit::print | ( | raw_ostream & | O, | |
| const ScheduleDAG * | G | |||
| ) | const |
Definition at line 226 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGSDNodes::Clone(), and llvm::ScheduleDAGSDNodes::EmitSchedule().
Definition at line 231 of file ScheduleDAG.h.
Referenced by addPred(), calcMaxScratches(), CalcNodeSethiUllmanNumber(), CriticalPathStep(), dumpAll(), llvm::ScheduleDAG::EmitPhysRegCopy(), llvm::SUnitIterator::end(), llvm::SUnitIterator::getSDep(), llvm::ScheduleDAGTopologicalSort::InitDAGTopologicalSorting(), isPred(), LimitedSumOfUnscheduledPredsOfSuccs(), llvm::SUnitIterator::operator*(), removePred(), setHeightDirty(), and llvm::ScheduleDAGTopologicalSort::WillCreateCycle().
Definition at line 232 of file ScheduleDAG.h.
Referenced by addPred(), llvm::ScheduleDAGInstrs::BuildSchedGraph(), calcMaxScratches(), closestSucc(), dumpAll(), llvm::ScheduleDAG::EmitPhysRegCopy(), hasCopyToRegUse(), llvm::ScheduleDAGTopologicalSort::InitDAGTopologicalSorting(), isSucc(), LimitedSumOfUnscheduledPredsOfSuccs(), llvm::LatencyPriorityQueue::push_impl(), removePred(), llvm::LatencyPriorityQueue::ScheduledNode(), and setDepthDirty().
Definition at line 239 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGTopologicalSort::AddPred(), CalcNodeSethiUllmanNumber(), dump(), llvm::ScheduleDAGSDNodes::getGraphNodeLabel(), llvm::ScheduleDAGTopologicalSort::InitDAGTopologicalSorting(), llvm::ScheduleDAGTopologicalSort::IsReachable(), llvm::latency_sort::operator()(), and llvm::LatencyPriorityQueue::push_impl().
Definition at line 240 of file ScheduleDAG.h.
| unsigned short llvm::SUnit::Latency |
Definition at line 241 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::BuildSchedGraph(), llvm::ScheduleDAGSDNodes::Clone(), llvm::ScheduleDAGSDNodes::ComputeLatency(), llvm::ScheduleDAGInstrs::ComputeLatency(), and dumpAll().
| short llvm::SUnit::NumPreds |
Definition at line 242 of file ScheduleDAG.h.
Referenced by addPred(), removePred(), and llvm::ScheduleDAG::VerifySchedule().
| short llvm::SUnit::NumSuccs |
Definition at line 243 of file ScheduleDAG.h.
Referenced by addPred(), removePred(), and llvm::ScheduleDAG::VerifySchedule().
Definition at line 244 of file ScheduleDAG.h.
Referenced by addPred(), dumpAll(), removePred(), and llvm::ScheduleDAG::VerifySchedule().
Definition at line 245 of file ScheduleDAG.h.
Referenced by addPred(), dumpAll(), removePred(), and llvm::ScheduleDAG::VerifySchedule().
Definition at line 249 of file ScheduleDAG.h.
Definition at line 250 of file ScheduleDAG.h.
Definition at line 251 of file ScheduleDAG.h.
Referenced by addPred(), LimitedSumOfUnscheduledPredsOfSuccs(), removePred(), and llvm::ScheduleDAG::VerifySchedule().
Definition at line 252 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::BuildSchedGraph(), and llvm::latency_sort::operator()().
Definition at line 253 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGSDNodes::Clone(), and llvm::ScheduleDAGSDNodes::EmitSchedule().