LLVM API Documentation

llvm::ScheduleDAGInstrs Class Reference

#include <ScheduleDAGInstrs.h>

Inheritance diagram for llvm::ScheduleDAGInstrs:
[legend]
Collaboration diagram for llvm::ScheduleDAGInstrs:
[legend]

List of all members.

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


Detailed Description

Definition at line 25 of file ScheduleDAGInstrs.h.


Constructor & Destructor Documentation

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.


Member Function Documentation

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]

MachineBasicBlock * ScheduleDAGInstrs::EmitSchedule (  )  [virtual]

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().


The documentation for this class was generated from the following files: