LLVM API Documentation
#include <ScheduleDAGInstrs.h>
Public Member Functions | |
| ScheduleDAGInstrs (MachineFunction &mf, const MachineLoopInfo &mli, const MachineDominatorTree &mdt) | |
| virtual | ~ScheduleDAGInstrs () |
| SUnit * | NewSUnit (MachineInstr *MI) |
| virtual void | BuildSchedGraph () |
| virtual void | ComputeLatency (SUnit *SU) |
| virtual MachineBasicBlock * | EmitSchedule () |
| virtual void | Schedule ()=0 |
| virtual void | dumpNode (const SUnit *SU) const |
| virtual std::string | getGraphNodeLabel (const SUnit *SU) const |
Definition at line 25 of file ScheduleDAGInstrs.h.
| ScheduleDAGInstrs::ScheduleDAGInstrs | ( | MachineFunction & | mf, | |
| const MachineLoopInfo & | mli, | |||
| const MachineDominatorTree & | mdt | |||
| ) | [explicit] |
Definition at line 94 of file ScheduleDAGInstrs.cpp.
| virtual llvm::ScheduleDAGInstrs::~ScheduleDAGInstrs | ( | ) | [inline, virtual] |
Definition at line 46 of file ScheduleDAGInstrs.h.
| SUnit* llvm::ScheduleDAGInstrs::NewSUnit | ( | MachineInstr * | MI | ) | [inline] |
NewSUnit - Creates a new SUnit and return a ptr to it.
Definition at line 50 of file ScheduleDAGInstrs.h.
References llvm::ScheduleDAG::SUnits.
Referenced by BuildSchedGraph().
| void ScheduleDAGInstrs::BuildSchedGraph | ( | ) | [virtual] |
BuildSchedGraph - Build SUnits from the MachineBasicBlock that we are input.
Implements llvm::ScheduleDAG.
Definition at line 175 of file ScheduleDAGInstrs.cpp.
References llvm::SUnit::addPred(), llvm::SDep::Anti, llvm::ScheduleDAG::BB, llvm::ScheduleDAG::Begin, ComputeLatency(), llvm::SDep::Data, E, llvm::ScheduleDAG::End, llvm::MachineInstr::findRegisterUseOperandIdx(), llvm::ScheduleDAG::ForceUnitLatencies(), llvm::TargetRegisterInfo::getAliasSet(), llvm::MachineInstr::getDesc(), llvm::SUnit::getInstr(), llvm::MachineLoopInfo::getLoopFor(), llvm::TargetInstrDesc::getNumOperands(), llvm::MachineInstr::getNumOperands(), llvm::TargetRegisterInfo::getNumRegs(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::MachineOperand::getParent(), llvm::MachineOperand::getReg(), llvm::TargetMachine::getSubtarget(), getUnderlyingObjectForInstr(), llvm::MachineInstr::hasOneMemOperand(), llvm::TargetInstrDesc::hasUnmodeledSideEffects(), llvm::MachineInstr::hasVolatileMemoryRef(), llvm::SmallSet< T, N >::insert(), llvm::TargetInstrDesc::isCall(), llvm::MachineOperand::isDead(), llvm::MachineOperand::isDef(), llvm::TargetInstrInfo::isInvariantLoad(), llvm::MachineInstr::isLabel(), llvm::TargetOperandInfo::isLookupPtrRegClass(), llvm::TargetRegisterInfo::isPhysicalRegister(), llvm::MachineOperand::isReg(), llvm::SUnit::isScheduleHigh, llvm::MachineMemOperand::isStore(), llvm::TargetInstrDesc::isTerminator(), llvm::MachineOperand::isUse(), llvm::MachineMemOperand::isVolatile(), Kind, llvm::SUnit::Latency, llvm::MachineBasicBlock::livein_begin(), llvm::MachineBasicBlock::livein_end(), llvm::TargetInstrDesc::mayLoad(), llvm::TargetInstrDesc::mayStore(), llvm::MachineInstr::memoperands_begin(), NewSUnit(), llvm::TargetInstrDesc::OpInfo, llvm::SDep::Order, llvm::SDep::Output, llvm::prior(), Reg, llvm::MachineInstr::registerDefIsDead(), llvm::MachineBasicBlock::size(), llvm::SUnit::Succs, llvm::ScheduleDAG::SUnits, llvm::TID::Terminator, llvm::ScheduleDAG::TII, llvm::ScheduleDAG::TM, llvm::ScheduleDAG::TRI, and V.
| void ScheduleDAGInstrs::ComputeLatency | ( | SUnit * | SU | ) | [virtual] |
ComputeLatency - Compute node latency.
Implements llvm::ScheduleDAG.
Definition at line 486 of file ScheduleDAGInstrs.cpp.
References llvm::MachineInstr::getDesc(), llvm::SUnit::getInstr(), llvm::TargetMachine::getInstrItineraryData(), llvm::InstrItineraryData::getLatency(), llvm::TargetInstrDesc::getSchedClass(), llvm::InstrItineraryData::isEmpty(), llvm::SUnit::Latency, llvm::TargetInstrDesc::mayLoad(), and llvm::ScheduleDAG::TM.
Referenced by BuildSchedGraph().
| MachineBasicBlock * ScheduleDAGInstrs::EmitSchedule | ( | ) | [virtual] |
Implements llvm::ScheduleDAG.
Definition at line 513 of file ScheduleDAGInstrs.cpp.
References llvm::ScheduleDAG::BB, llvm::ScheduleDAG::Begin, llvm::ScheduleDAG::EmitNoop(), llvm::ScheduleDAG::End, llvm::SUnit::getInstr(), llvm::MachineBasicBlock::insert(), llvm::MachineBasicBlock::remove(), and llvm::ScheduleDAG::Sequence.
| virtual void llvm::ScheduleDAGInstrs::Schedule | ( | ) | [pure virtual] |
Schedule - Order nodes according to selected style, filling in the Sequence member.
Implements llvm::ScheduleDAG.
| void ScheduleDAGInstrs::dumpNode | ( | const SUnit * | SU | ) | const [virtual] |
Implements llvm::ScheduleDAG.
Definition at line 501 of file ScheduleDAGInstrs.cpp.
References llvm::MachineInstr::dump(), and llvm::SUnit::getInstr().
| std::string ScheduleDAGInstrs::getGraphNodeLabel | ( | const SUnit * | SU | ) | const [virtual] |
getGraphNodeLabel - Return a label for an SUnit node in a visualization of the ScheduleDAG.
Implements llvm::ScheduleDAG.
Definition at line 505 of file ScheduleDAGInstrs.cpp.
References llvm::SUnit::getInstr(), llvm::MachineInstr::print(), and llvm::raw_string_ostream::str().