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 552 of file ScheduleDAG.h.
ScheduleDAG::ScheduleDAG | ( | MachineFunction & | mf | ) | [explicit] |
Definition at line 38 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 600 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::buildSchedGraph(), 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(), llvm::PPCDispatchGroupSBHazardRecognizer::EmitInstruction(), 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 578 of file ScheduleDAG.h.
References llvm::MachineInstr::getDesc(), llvm::SUnit::getInstr(), llvm::SUnit::getNode(), and llvm::SUnit::isInstr().
Referenced by llvm::PPCDispatchGroupSBHazardRecognizer::EmitInstruction(), llvm::ScoreboardHazardRecognizer::EmitInstruction(), llvm::ScoreboardHazardRecognizer::getHazardType(), and llvm::PPCDispatchGroupSBHazardRecognizer::ShouldPreferAnother().
unsigned ScheduleDAG::VerifyScheduledDAG | ( | bool | isBottomUp | ) |
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().
void ScheduleDAG::viewGraph | ( | const Twine & | Name, |
const Twine & | Title | ||
) | [virtual] |
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 86 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 97 of file ScheduleDAGPrinter.cpp.
References getDAGName().
Definition at line 560 of file ScheduleDAG.h.
Referenced by clearDAG(), llvm::ScheduleDAGInstrs::getGraphNodeLabel(), llvm::ScheduleDAGMI::initQueues(), and llvm::ScheduleDAGMI::releasePred().
Definition at line 561 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::ScheduleDAGMILive::computeCyclicCriticalPath(), llvm::ScheduleDAGMI::findRootsAndBiasEdges(), llvm::ScheduleDAGInstrs::getGraphNodeLabel(), llvm::ScheduleDAGMI::initQueues(), llvm::GenericScheduler::registerRoots(), llvm::PostGenericScheduler::registerRoots(), llvm::ScheduleDAGMI::releaseSucc(), and llvm::ScheduleDAGMILive::updatePressureDiffs().
Definition at line 557 of file ScheduleDAG.h.
Referenced by llvm::DOTGraphTraits< ScheduleDAG * >::getGraphName(), llvm::DOTGraphTraits< ScheduleDAGMI * >::getGraphName(), llvm::ConvergingVLIWScheduler::initialize(), llvm::PostGenericScheduler::initialize(), and llvm::ScheduleDAGInstrs::toggleKillFlag().
Definition at line 558 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::addVRegDefDeps(), llvm::ScheduleDAGInstrs::buildSchedGraph(), llvm::ScheduleDAGInstrs::fixupKills(), llvm::ScheduleDAGInstrs::ScheduleDAGInstrs(), and llvm::ScheduleDAGMILive::updatePressureDiffs().
Definition at line 566 of file ScheduleDAG.h.
Referenced by ScheduleDAG().
std::vector<SUnit> llvm::ScheduleDAG::SUnits |
Definition at line 559 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::buildSchedGraph(), clearDAG(), llvm::ScheduleDAGMILive::computeDFSResult(), llvm::ScheduleDAGMI::findRootsAndBiasEdges(), llvm::ScheduleDAGSDNodes::getCustomGraphFeatures(), llvm::SchedRemainder::init(), 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(), llvm::ScheduleDAGMILive::schedule(), and VerifyScheduledDAG().
Definition at line 555 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGSDNodes::computeLatency(), llvm::ScheduleDAGSDNodes::computeOperandLatency(), createGenericSchedLive(), llvm::PPCInstrInfo::CreateTargetPostRAHazardRecognizer(), llvm::ScoreboardHazardRecognizer::EmitInstruction(), llvm::ScheduleDAGSDNodes::EmitSchedule(), and llvm::ScheduleDAGInstrs::ScheduleDAGInstrs().
Definition at line 554 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::addPhysRegDataDeps(), llvm::ScheduleDAGInstrs::addVRegUseDeps(), llvm::ScheduleDAGInstrs::buildSchedGraph(), llvm::PPCInstrInfo::CreateTargetPostRAHazardRecognizer(), llvm::PPCDispatchGroupSBHazardRecognizer::EmitNoop(), llvm::ScheduleDAGInstrs::getGraphNodeLabel(), llvm::PPCDispatchGroupSBHazardRecognizer::PreEmitNoops(), and llvm::ScheduleDAGInstrs::ScheduleDAGInstrs().
Definition at line 556 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::addPhysRegDataDeps(), llvm::ScheduleDAGInstrs::addPhysRegDeps(), llvm::ScheduleDAGInstrs::addSchedBarrierDeps(), llvm::ScheduleDAGInstrs::buildSchedGraph(), llvm::ScheduleDAGMILive::computeCyclicCriticalPath(), createGenericSchedLive(), llvm::SUnit::dumpAll(), llvm::ScheduleDAGInstrs::fixupKills(), llvm::PostGenericScheduler::initialize(), llvm::ScheduleDAGMILive::initRegPressure(), llvm::ScheduleDAGInstrs::startBlockForKills(), llvm::ScheduleDAGInstrs::toggleKillFlag(), llvm::ConvergingVLIWScheduler::traceCandidate(), llvm::ScheduleDAGMILive::updatePressureDiffs(), and llvm::ScheduleDAGMILive::updateScheduledPressure().