LLVM API Documentation
#include <ScheduleDAG.h>
Definition at line 417 of file ScheduleDAG.h.
| ScheduleDAG::ScheduleDAG | ( | MachineFunction & | mf | ) | [explicit] |
Definition at line 25 of file ScheduleDAG.cpp.
| ScheduleDAG::~ScheduleDAG | ( | ) | [virtual] |
Definition at line 34 of file ScheduleDAG.cpp.
| void ScheduleDAG::viewGraph | ( | ) |
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'.
Definition at line 83 of file ScheduleDAGPrinter.cpp.
References BB, llvm::cerr(), llvm::MachineBasicBlock::getBasicBlock(), llvm::MachineFunction::getFunction(), llvm::Value::getName(), MF, and llvm::ViewGraph().
| void ScheduleDAG::Run | ( | SelectionDAG * | dag, | |
| MachineBasicBlock * | bb, | |||
| MachineBasicBlock::iterator | begin, | |||
| MachineBasicBlock::iterator | end | |||
| ) |
Run - perform scheduling.
Definition at line 49 of file ScheduleDAG.cpp.
References BB, Begin, DAG, DEBUG, DOUT, dumpSchedule(), End, Schedule(), Sequence, and SUnits.
| virtual void llvm::ScheduleDAG::BuildSchedGraph | ( | ) | [pure virtual] |
BuildSchedGraph - Build SUnits and set up their Preds and Succs to form the scheduling dependency graph.
Implemented in llvm::ScheduleDAGInstrs, and llvm::ScheduleDAGSDNodes.
| virtual void llvm::ScheduleDAG::ComputeLatency | ( | SUnit * | SU | ) | [pure virtual] |
ComputeLatency - Compute node latency.
Implemented in llvm::ScheduleDAGInstrs, and llvm::ScheduleDAGSDNodes.
| void ScheduleDAG::EmitNoop | ( | ) | [protected] |
EmitNoop - Emit a noop instruction.
Definition at line 35 of file ScheduleDAGEmit.cpp.
References BB, End, llvm::TargetInstrInfo::insertNoop(), and TII.
Referenced by llvm::ScheduleDAGSDNodes::EmitSchedule(), and llvm::ScheduleDAGInstrs::EmitSchedule().
| virtual MachineBasicBlock* llvm::ScheduleDAG::EmitSchedule | ( | ) | [pure virtual] |
Implemented in llvm::ScheduleDAGInstrs, and llvm::ScheduleDAGSDNodes.
| void ScheduleDAG::dumpSchedule | ( | ) | const |
dump - dump the schedule.
Definition at line 37 of file ScheduleDAG.cpp.
References llvm::cerr(), and Sequence.
Referenced by Run().
| virtual void llvm::ScheduleDAG::Schedule | ( | ) | [pure virtual] |
Schedule - Order nodes according to selected style, filling in the Sequence member.
Implemented in llvm::ScheduleDAGInstrs, and llvm::ScheduleDAGSDNodes.
Referenced by Run().
| virtual void llvm::ScheduleDAG::dumpNode | ( | const SUnit * | SU | ) | const [pure virtual] |
Implemented in llvm::ScheduleDAGInstrs, and llvm::ScheduleDAGSDNodes.
Referenced by llvm::SUnit::dump().
| 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.
| virtual void llvm::ScheduleDAG::addCustomGraphFeatures | ( | GraphWriter< ScheduleDAG * > & | ) | const [inline, virtual] |
addCustomGraphFeatures - Add custom features for a visualization of the ScheduleDAG.
Definition at line 481 of file ScheduleDAG.h.
Referenced by llvm::DOTGraphTraits< ScheduleDAG * >::addCustomGraphFeatures().
| void ScheduleDAG::VerifySchedule | ( | bool | isBottomUp | ) |
VerifySchedule - Verify that all SUnits were scheduled and that their state is consistent.
VerifySchedule - Verify that all SUnits were scheduled and that their state is consistent.
Definition at line 316 of file ScheduleDAG.cpp.
References llvm::cerr(), llvm::SUnit::getHeight(), isBottomUp, llvm::SUnit::isScheduled, llvm::SUnit::NumPreds, llvm::SUnit::NumPredsLeft, llvm::SUnit::NumSuccs, llvm::SUnit::NumSuccsLeft, and SUnits.
| void ScheduleDAG::AddMemOperand | ( | MachineInstr * | MI, | |
| const MachineMemOperand & | MO | |||
| ) | [protected] |
Definition at line 31 of file ScheduleDAGEmit.cpp.
References llvm::MachineInstr::addMemOperand(), and MF.
Referenced by llvm::ScheduleDAGSDNodes::EmitNode().
| void ScheduleDAG::EmitPhysRegCopy | ( | SUnit * | SU, | |
| DenseMap< SUnit *, unsigned > & | VRBaseMap | |||
| ) | [protected] |
Definition at line 39 of file ScheduleDAGEmit.cpp.
References BB, llvm::SUnit::CopyDstRC, llvm::TargetInstrInfo::copyRegToReg(), llvm::SUnit::CopySrcRC, llvm::MachineRegisterInfo::createVirtualRegister(), E, End, llvm::DenseMap< KeyT, ValueT, KeyInfoT, ValueInfoT >::end(), llvm::DenseMap< KeyT, ValueT, KeyInfoT, ValueInfoT >::find(), II, llvm::DenseMap< KeyT, ValueT, KeyInfoT, ValueInfoT >::insert(), MRI, llvm::SUnit::Preds, Reg, llvm::SUnit::Succs, and TII.
Referenced by llvm::ScheduleDAGSDNodes::EmitSchedule().
| virtual bool llvm::ScheduleDAG::ForceUnitLatencies | ( | ) | const [inline, protected, virtual] |
ForceUnitLatencies - Return true if all scheduling edges should be given a latency value of one. The default is to return false; schedulers may override this as needed.
Definition at line 497 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::BuildSchedGraph().
Definition at line 419 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGSDNodes::dumpNode(), llvm::ScheduleDAGSDNodes::EmitNode(), llvm::ScheduleDAGSDNodes::getCustomGraphFeatures(), llvm::ScheduleDAGSDNodes::getDAG(), llvm::ScheduleDAGSDNodes::getGraphNodeLabel(), and Run().
Definition at line 420 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::BuildSchedGraph(), llvm::ScheduleDAGSDNodes::EmitNode(), EmitNoop(), EmitPhysRegCopy(), llvm::ScheduleDAGSDNodes::EmitSchedule(), llvm::ScheduleDAGInstrs::EmitSchedule(), Run(), and viewGraph().
Definition at line 421 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::BuildSchedGraph(), llvm::ScheduleDAGSDNodes::EmitNode(), llvm::ScheduleDAGInstrs::EmitSchedule(), and Run().
Definition at line 422 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::BuildSchedGraph(), llvm::ScheduleDAGSDNodes::EmitNode(), EmitNoop(), EmitPhysRegCopy(), llvm::ScheduleDAGInstrs::EmitSchedule(), and Run().
Definition at line 423 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::BuildSchedGraph(), llvm::ScheduleDAGSDNodes::ComputeLatency(), and llvm::ScheduleDAGInstrs::ComputeLatency().
Definition at line 424 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::BuildSchedGraph(), llvm::ScheduleDAGSDNodes::ComputeLatency(), llvm::ScheduleDAGSDNodes::EmitNode(), EmitNoop(), and EmitPhysRegCopy().
Definition at line 425 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::BuildSchedGraph(), and llvm::ScheduleDAGSDNodes::EmitNode().
Definition at line 427 of file ScheduleDAG.h.
Referenced by AddMemOperand(), llvm::ScheduleDAGSDNodes::EmitNode(), llvm::DOTGraphTraits< ScheduleDAG * >::getGraphName(), and viewGraph().
Definition at line 428 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGSDNodes::EmitNode(), and EmitPhysRegCopy().
Definition at line 429 of file ScheduleDAG.h.
| std::vector<SUnit*> llvm::ScheduleDAG::Sequence |
Definition at line 430 of file ScheduleDAG.h.
Referenced by dumpSchedule(), llvm::ScheduleDAGSDNodes::EmitSchedule(), llvm::ScheduleDAGInstrs::EmitSchedule(), and Run().
| std::vector<SUnit> llvm::ScheduleDAG::SUnits |
Definition at line 432 of file ScheduleDAG.h.
Referenced by llvm::ScheduleDAGInstrs::BuildSchedGraph(), llvm::ScheduleDAGSDNodes::getCustomGraphFeatures(), llvm::ScheduleDAGSDNodes::NewSUnit(), llvm::ScheduleDAGInstrs::NewSUnit(), llvm::GraphTraits< ScheduleDAG * >::nodes_begin(), llvm::GraphTraits< ScheduleDAG * >::nodes_end(), and Run().