LLVM API Documentation
#include <ScheduleDAG.h>


Public Member Functions | |
| ScheduleDAG (MachineFunction &mf) | |
| virtual | ~ScheduleDAG () |
| void | clearDAG () |
| clearDAG - clear the DAG state (between regions). | |
| const MCInstrDesc * | getInstrDesc (const SUnit *SU) const |
| virtual void | viewGraph (const Twine &Name, const Twine &Title) |
| virtual void | viewGraph () |
| Out-of-line implementation with no arguments is handy for gdb. | |
| virtual void | dumpNode (const SUnit *SU) const =0 |
| virtual std::string | getGraphNodeLabel (const SUnit *SU) const =0 |
| virtual std::string | getDAGName () const =0 |
| getDAGLabel - Return a label for the region of code covered by the DAG. | |
| virtual void | addCustomGraphFeatures (GraphWriter< ScheduleDAG * > &) const |
| unsigned | VerifyScheduledDAG (bool isBottomUp) |
Public Attributes | |
| const TargetMachine & | TM |
| const TargetInstrInfo * | TII |
| const TargetRegisterInfo * | TRI |
| MachineFunction & | MF |
| MachineRegisterInfo & | MRI |
| std::vector< SUnit > | SUnits |
| SUnit | EntrySU |
| SUnit | ExitSU |
| bool | StressSched |
Definition at line 557 of file ScheduleDAG.h.
| ScheduleDAG::ScheduleDAG | ( | MachineFunction & | mf | ) | [explicit] |
Definition at line 36 of file ScheduleDAG.cpp.
References StressSched, and StressSchedOpt.
| ScheduleDAG::~ScheduleDAG | ( | ) | [virtual] |
Definition at line 47 of file ScheduleDAG.cpp.
| virtual void llvm::ScheduleDAG::addCustomGraphFeatures | ( | GraphWriter< ScheduleDAG * > & | ) | const [inline, virtual] |
addCustomGraphFeatures - Add custom features for a visualization of the ScheduleDAG.
Definition at line 605 of file ScheduleDAG.h.
Referenced by llvm::DOTGraphTraits< ScheduleDAG * >::addCustomGraphFeatures().
| void ScheduleDAG::clearDAG | ( | ) |
clearDAG - clear the DAG state (between regions).
Clear the DAG state (e.g. between scheduling regions).
Definition at line 50 of file ScheduleDAG.cpp.
References EntrySU, ExitSU, and SUnits.
Referenced by llvm::ScheduleDAGInstrs::enterRegion(), and llvm::ScheduleDAGSDNodes::Run().
| virtual void llvm::ScheduleDAG::dumpNode | ( | const SUnit * | SU | ) | const [pure virtual] |
Implemented in llvm::ScheduleDAGInstrs, and llvm::ScheduleDAGSDNodes.
Referenced by llvm::SUnit::dump(), and llvm::ScoreboardHazardRecognizer::getHazardType().
| virtual std::string llvm::ScheduleDAG::getDAGName | ( | ) | const [pure virtual] |
getDAGLabel - Return a label for the region of code covered by the DAG.
Implemented in llvm::ScheduleDAGInstrs, and llvm::ScheduleDAGSDNodes.
Referenced by viewGraph().
| virtual std::string llvm::ScheduleDAG::getGraphNodeLabel | ( | const SUnit * | SU | ) | const [pure virtual] |
getGraphNodeLabel - Return a label for an SUnit node in a visualization of the ScheduleDAG.
Implemented in llvm::ScheduleDAGInstrs, and llvm::ScheduleDAGSDNodes.
Referenced by llvm::DOTGraphTraits< ScheduleDAGMI * >::getNodeDescription().
| const MCInstrDesc* llvm::ScheduleDAG::getInstrDesc | ( | const SUnit * | SU | ) | const [inline] |
getInstrDesc - Return the MCInstrDesc of this SUnit. Return NULL for SDNodes without a machine opcode.
Definition at line 583 of file ScheduleDAG.h.
References llvm::MachineInstr::getDesc(), llvm::SUnit::getInstr(), llvm::SUnit::getNode(), and llvm::SUnit::isInstr().
Referenced by llvm::PPCScoreboardHazardRecognizer::EmitInstruction(), llvm::ScoreboardHazardRecognizer::EmitInstruction(), and llvm::ScoreboardHazardRecognizer::getHazardType().
VerifyScheduledDAG - Verify that all SUnits were scheduled and that their state is consistent. Return the number of scheduled SUnits.
VerifyScheduledDAG - Verify that all SUnits were scheduled and that their state is consistent. Return the number of scheduled nodes.
Definition at line 383 of file ScheduleDAG.cpp.
References llvm::dbgs(), and SUnits.
Referenced by llvm::ScheduleDAGSDNodes::VerifyScheduledSequence().
viewGraph - Pop up a GraphViz/gv window with the ScheduleDAG rendered using 'dot'.
viewGraph - Pop up a ghostview window with the reachable parts of the DAG rendered using 'dot'.
Reimplemented in llvm::ScheduleDAGMI.
Definition at line 87 of file ScheduleDAGPrinter.cpp.
References llvm::errs(), and llvm::ViewGraph().
| void ScheduleDAG::viewGraph | ( | ) | [virtual] |
Out-of-line implementation with no arguments is handy for gdb.
Reimplemented in llvm::ScheduleDAGMI.
Definition at line 98 of file ScheduleDAGPrinter.cpp.
References getDAGName().
Definition at line 565 of file ScheduleDAG.h.
Referenced by clearDAG(), llvm::ScheduleDAGInstrs::getGraphNodeLabel(), llvm::ScheduleDAGMI::initQueues(), and llvm::ScheduleDAGMI::releasePred().
Definition at line 566 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGMI::addEdge(), llvm::ScheduleDAGInstrs::addPhysRegDeps(), llvm::ScheduleDAGInstrs::addSchedBarrierDeps(), llvm::ScheduleDAGInstrs::addVRegDefDeps(), llvm::ScheduleDAGInstrs::buildSchedGraph(), llvm::ScheduleDAGMI::canAddEdge(), clearDAG(), llvm::ScheduleDAGMI::findRootsAndBiasEdges(), llvm::ScheduleDAGInstrs::getGraphNodeLabel(), llvm::ScheduleDAGMI::initQueues(), and llvm::ScheduleDAGMI::releaseSucc().
Definition at line 562 of file ScheduleDAG.h.
Referenced by llvm::DOTGraphTraits< ScheduleDAG * >::getGraphName(), llvm::DOTGraphTraits< ScheduleDAGMI * >::getGraphName(), and llvm::ConvergingVLIWScheduler::initialize().
Definition at line 563 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::addVRegDefDeps(), llvm::ScheduleDAGInstrs::buildSchedGraph(), llvm::R600SchedStrategy::initialize(), and llvm::ScheduleDAGInstrs::ScheduleDAGInstrs().
Definition at line 571 of file ScheduleDAG.h.
Referenced by ScheduleDAG().
| std::vector<SUnit> llvm::ScheduleDAG::SUnits |
Definition at line 564 of file ScheduleDAG.h.
Referenced by clearDAG(), llvm::ScheduleDAGMI::computeDFSResult(), llvm::ScheduleDAGMI::findRootsAndBiasEdges(), llvm::ScheduleDAGSDNodes::getCustomGraphFeatures(), llvm::ScheduleDAGInstrs::initSUnits(), llvm::ScheduleDAGSDNodes::newSUnit(), llvm::ScheduleDAGInstrs::newSUnit(), llvm::GraphTraits< ScheduleDAG * >::nodes_begin(), llvm::GraphTraits< ScheduleDAG * >::nodes_end(), llvm::VLIWPacketizerList::PacketizeMIs(), llvm::R600SchedStrategy::pickNode(), llvm::VLIWMachineScheduler::postprocessDAG(), llvm::VLIWMachineScheduler::schedule(), llvm::ScheduleDAGMI::schedule(), and VerifyScheduledDAG().
Definition at line 560 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGSDNodes::computeLatency(), llvm::ScheduleDAGSDNodes::computeOperandLatency(), createConvergingSched(), llvm::ScoreboardHazardRecognizer::EmitInstruction(), llvm::ScheduleDAGSDNodes::EmitSchedule(), llvm::R600SchedStrategy::initialize(), and llvm::ScheduleDAGInstrs::ScheduleDAGInstrs().
Definition at line 559 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::addPhysRegDataDeps(), llvm::ScheduleDAGInstrs::addVRegUseDeps(), llvm::ScheduleDAGInstrs::getGraphNodeLabel(), llvm::R600SchedStrategy::initialize(), and llvm::ScheduleDAGInstrs::ScheduleDAGInstrs().
Definition at line 561 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::addPhysRegDataDeps(), llvm::ScheduleDAGInstrs::addPhysRegDeps(), llvm::ScheduleDAGInstrs::addSchedBarrierDeps(), llvm::ScheduleDAGInstrs::buildSchedGraph(), createConvergingSched(), llvm::SUnit::dumpAll(), llvm::R600SchedStrategy::initialize(), llvm::ConvergingVLIWScheduler::initialize(), llvm::ScheduleDAGMI::initRegPressure(), and llvm::ScheduleDAGMI::updateScheduledPressure().