|
LLVM
4.0.0
|
#include <ScheduleDAG.h>
Public Member Functions | |
| ScheduleDAG (MachineFunction &mf) | |
| virtual | ~ScheduleDAG () |
| void | clearDAG () |
| clearDAG - clear the DAG state (between regions). More... | |
| const MCInstrDesc * | getInstrDesc (const SUnit *SU) const |
| getInstrDesc - Return the MCInstrDesc of this SUnit. More... | |
| virtual void | viewGraph (const Twine &Name, const Twine &Title) |
| viewGraph - Pop up a GraphViz/gv window with the ScheduleDAG rendered using 'dot'. More... | |
| virtual void | viewGraph () |
| Out-of-line implementation with no arguments is handy for gdb. More... | |
| virtual void | dumpNode (const SUnit *SU) const =0 |
| virtual std::string | getGraphNodeLabel (const SUnit *SU) const =0 |
| getGraphNodeLabel - Return a label for an SUnit node in a visualization of the ScheduleDAG. More... | |
| virtual std::string | getDAGName () const =0 |
| getDAGLabel - Return a label for the region of code covered by the DAG. More... | |
| virtual void | addCustomGraphFeatures (GraphWriter< ScheduleDAG * > &) const |
| addCustomGraphFeatures - Add custom features for a visualization of the ScheduleDAG. More... | |
| unsigned | VerifyScheduledDAG (bool isBottomUp) |
| VerifyScheduledDAG - Verify that all SUnits were scheduled and that their state is consistent. More... | |
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 576 of file ScheduleDAG.h.
|
explicit |
Definition at line 38 of file ScheduleDAG.cpp.
References StressSched, and StressSchedOpt.
|
virtual |
Definition at line 47 of file ScheduleDAG.cpp.
|
inlinevirtual |
addCustomGraphFeatures - Add custom features for a visualization of the ScheduleDAG.
Definition at line 624 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().
Implemented in llvm::ScheduleDAGInstrs, and llvm::ScheduleDAGSDNodes.
Referenced by llvm::SUnit::dump(), llvm::PPCDispatchGroupSBHazardRecognizer::EmitInstruction(), and llvm::ScoreboardHazardRecognizer::getHazardType().
|
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().
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().
|
inline |
getInstrDesc - Return the MCInstrDesc of this SUnit.
Return NULL for SDNodes without a machine opcode.
Definition at line 602 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().
VerifyScheduledDAG - Verify that all SUnits were scheduled and that their state is consistent.
Return the number of scheduled SUnits.
Return the number of scheduled nodes.
Definition at line 391 of file ScheduleDAG.cpp.
References assert(), llvm::dbgs(), i, 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().
|
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().
| SUnit llvm::ScheduleDAG::EntrySU |
Definition at line 584 of file ScheduleDAG.h.
Referenced by clearDAG(), llvm::SIScheduleDAGMI::getEntrySU(), llvm::ScheduleDAGMI::initQueues(), llvm::SUnit::print(), llvm::ScheduleDAGMI::releasePred(), llvm::ScheduleDAGMI::schedule(), and llvm::ScheduleDAGMILive::schedule().
| SUnit llvm::ScheduleDAG::ExitSU |
Definition at line 585 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGMI::addEdge(), llvm::ScheduleDAGInstrs::addPhysRegDeps(), llvm::ScheduleDAGInstrs::addSchedBarrierDeps(), llvm::ScheduleDAGInstrs::buildSchedGraph(), llvm::ScheduleDAGMI::canAddEdge(), clearDAG(), llvm::ScheduleDAGMILive::computeCyclicCriticalPath(), llvm::ScheduleDAGMI::findRootsAndBiasEdges(), llvm::SIScheduleDAGMI::getExitSU(), llvm::ScheduleDAGMI::initQueues(), llvm::SUnit::print(), llvm::GenericScheduler::registerRoots(), llvm::PostGenericScheduler::registerRoots(), llvm::ScheduleDAGMI::releaseSucc(), llvm::ScheduleDAGMI::schedule(), llvm::ScheduleDAGMILive::schedule(), and llvm::ScheduleDAGMILive::updatePressureDiffs().
| MachineFunction& llvm::ScheduleDAG::MF |
Definition at line 581 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::addChainDependency(), llvm::ScheduleDAGInstrs::addPhysRegDataDeps(), llvm::ScheduleDAGInstrs::addVRegDefDeps(), llvm::ScheduleDAGInstrs::buildSchedGraph(), llvm::PPCInstrInfo::CreateTargetPostRAHazardRecognizer(), llvm::HexagonInstrInfo::CreateTargetPostRAHazardRecognizer(), llvm::SIInstrInfo::CreateTargetPostRAHazardRecognizer(), llvm::PPCDispatchGroupSBHazardRecognizer::EmitNoop(), llvm::DOTGraphTraits< ScheduleDAG * >::getGraphName(), llvm::DOTGraphTraits< ScheduleDAGMI * >::getGraphName(), llvm::ConvergingVLIWScheduler::initialize(), llvm::PostGenericScheduler::initialize(), llvm::SIScheduleDAGMI::initRPTracker(), llvm::ConvergingVLIWScheduler::pickNodeFromQueue(), llvm::PPCDispatchGroupSBHazardRecognizer::PreEmitNoops(), llvm::ConvergingVLIWScheduler::SchedulingCost(), and llvm::GenericScheduler::tryCandidate().
| MachineRegisterInfo& llvm::ScheduleDAG::MRI |
Definition at line 582 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::addPhysRegDeps(), llvm::ScheduleDAGInstrs::addVRegDefDeps(), llvm::ScheduleDAGInstrs::buildSchedGraph(), llvm::ScheduleDAGInstrs::getLaneMaskForMO(), llvm::SIScheduleDAGMI::getMRI(), llvm::ScheduleDAGMILive::initRegPressure(), llvm::ScheduleDAGMILive::scheduleMI(), and llvm::ScheduleDAGMILive::updatePressureDiffs().
| bool llvm::ScheduleDAG::StressSched |
Definition at line 590 of file ScheduleDAG.h.
Referenced by ScheduleDAG().
| std::vector<SUnit> llvm::ScheduleDAG::SUnits |
Definition at line 583 of file ScheduleDAG.h.
Referenced by llvm::HexagonSubtarget::HexagonDAGMutation::apply(), llvm::ScheduleDAGInstrs::buildSchedGraph(), clearDAG(), llvm::ScheduleDAGMILive::computeDFSResult(), llvm::ScheduleDAGMI::findRootsAndBiasEdges(), llvm::ScheduleDAGSDNodes::getCustomGraphFeatures(), llvm::SchedRemainder::init(), llvm::ScheduleDAGMILive::initRegPressure(), llvm::ScheduleDAGInstrs::initSUnits(), llvm::SIScheduleBlockCreator::isSUInBlock(), llvm::ScheduleDAGSDNodes::newSUnit(), llvm::ScheduleDAGInstrs::newSUnit(), llvm::GraphTraits< ScheduleDAG * >::nodes_begin(), llvm::GraphTraits< ScheduleDAG * >::nodes_end(), llvm::VLIWPacketizerList::PacketizeMIs(), llvm::R600SchedStrategy::pickNode(), llvm::VLIWMachineScheduler::schedule(), llvm::ScheduleDAGMI::schedule(), llvm::SIScheduleDAGMI::schedule(), llvm::ScheduleDAGMILive::schedule(), and VerifyScheduledDAG().
| const TargetInstrInfo* llvm::ScheduleDAG::TII |
Definition at line 579 of file ScheduleDAG.h.
Referenced by llvm::HexagonSubtarget::HexagonDAGMutation::apply(), llvm::ScheduleDAGSDNodes::computeLatency(), llvm::ScheduleDAGSDNodes::computeOperandLatency(), createGCNMaxOccupancyMachineScheduler(), llvm::createGenericSchedLive(), llvm::PPCInstrInfo::CreateTargetPostRAHazardRecognizer(), llvm::ScoreboardHazardRecognizer::EmitInstruction(), llvm::ScheduleDAGSDNodes::EmitSchedule(), llvm::ScheduleDAGInstrs::ScheduleDAGInstrs(), and llvm::SIScheduleDAGMI::SIScheduleDAGMI().
| const TargetMachine& llvm::ScheduleDAG::TM |
Definition at line 578 of file ScheduleDAG.h.
| const TargetRegisterInfo* llvm::ScheduleDAG::TRI |
Definition at line 580 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::addPhysRegDataDeps(), llvm::ScheduleDAGInstrs::addPhysRegDeps(), llvm::ScheduleDAGInstrs::buildSchedGraph(), llvm::ScheduleDAGMILive::computeCyclicCriticalPath(), createGCNMaxOccupancyMachineScheduler(), llvm::createGenericSchedLive(), llvm::SUnit::dumpAll(), llvm::ScheduleDAGInstrs::getLaneMaskForMO(), llvm::SIScheduleDAGMI::getTRI(), llvm::PostGenericScheduler::initialize(), llvm::ScheduleDAGMILive::initRegPressure(), llvm::SIScheduleDAGMI::schedule(), llvm::ScheduleDAGMILive::schedule(), llvm::ScheduleDAGMILive::scheduleMI(), llvm::SIScheduleDAGMI::SIScheduleDAGMI(), llvm::ConvergingVLIWScheduler::traceCandidate(), llvm::ScheduleDAGMILive::updatePressureDiffs(), and llvm::ScheduleDAGMILive::updateScheduledPressure().
1.8.6