LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | List of all members
llvm::DefaultVLIWScheduler Class Reference
Inheritance diagram for llvm::DefaultVLIWScheduler:
Inheritance graph
[legend]
Collaboration diagram for llvm::DefaultVLIWScheduler:
Collaboration graph
[legend]

Public Member Functions

 DefaultVLIWScheduler (MachineFunction &MF, MachineLoopInfo &MLI, MachineDominatorTree &MDT, bool IsPostRA)
 
void schedule ()
 
- Public Member Functions inherited from llvm::ScheduleDAGInstrs
 ScheduleDAGInstrs (MachineFunction &mf, const MachineLoopInfo &mli, const MachineDominatorTree &mdt, bool IsPostRAFlag, LiveIntervals *LIS=0)
 
virtual ~ScheduleDAGInstrs ()
 
LiveIntervalsgetLIS () const
 Expose LiveIntervals for use in DAG mutators and such. More...
 
const TargetSchedModelgetSchedModel () const
 Get the machine model for instruction scheduling. More...
 
const MCSchedClassDescgetSchedClass (SUnit *SU) const
 Resolve and cache a resolved scheduling class for an SUnit. More...
 
MachineBasicBlock::iterator begin () const
 begin - Return an iterator to the top of the current scheduling region. More...
 
MachineBasicBlock::iterator end () const
 end - Return an iterator to the bottom of the current scheduling region. More...
 
SUnitnewSUnit (MachineInstr *MI)
 newSUnit - Creates a new SUnit and return a ptr to it. More...
 
SUnitgetSUnit (MachineInstr *MI) const
 getSUnit - Return an existing SUnit for this MI, or NULL. More...
 
virtual void startBlock (MachineBasicBlock *BB)
 startBlock - Prepare to perform scheduling in the given block. More...
 
virtual void finishBlock ()
 finishBlock - Clean up after scheduling in the given block. More...
 
virtual void enterRegion (MachineBasicBlock *bb, MachineBasicBlock::iterator begin, MachineBasicBlock::iterator end, unsigned regioninstrs)
 Initialize the scheduler state for the next scheduling region. More...
 
virtual void exitRegion ()
 Notify that the scheduler has finished scheduling the current region. More...
 
void buildSchedGraph (AliasAnalysis *AA, RegPressureTracker *RPTracker=0, PressureDiffs *PDiffs=0)
 
void addSchedBarrierDeps ()
 
virtual void finalizeSchedule ()
 
virtual void dumpNode (const SUnit *SU) const
 
virtual std::string getGraphNodeLabel (const SUnit *SU) const
 Return a label for a DAG node that points to an instruction. More...
 
virtual std::string getDAGName () const
 Return a label for the region of code covered by the DAG. More...
 
- Public Member Functions inherited from llvm::ScheduleDAG
 ScheduleDAG (MachineFunction &mf)
 
virtual ~ScheduleDAG ()
 
void clearDAG ()
 clearDAG - clear the DAG state (between regions). More...
 
const MCInstrDescgetInstrDesc (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. More...
 
virtual void addCustomGraphFeatures (GraphWriter< ScheduleDAG * > &) const
 
unsigned VerifyScheduledDAG (bool isBottomUp)
 

Additional Inherited Members

- Public Attributes inherited from llvm::ScheduleDAG
const TargetMachineTM
 
const TargetInstrInfoTII
 
const TargetRegisterInfoTRI
 
MachineFunctionMF
 
MachineRegisterInfoMRI
 
std::vector< SUnitSUnits
 
SUnit EntrySU
 
SUnit ExitSU
 
bool StressSched
 
- Protected Types inherited from llvm::ScheduleDAGInstrs
typedef std::vector< std::pair
< MachineInstr *, MachineInstr * > > 
DbgValueVector
 
- Protected Member Functions inherited from llvm::ScheduleDAGInstrs
void initSUnits ()
 
void addPhysRegDataDeps (SUnit *SU, unsigned OperIdx)
 
void addPhysRegDeps (SUnit *SU, unsigned OperIdx)
 
void addVRegDefDeps (SUnit *SU, unsigned OperIdx)
 
void addVRegUseDeps (SUnit *SU, unsigned OperIdx)
 
- Protected Attributes inherited from llvm::ScheduleDAGInstrs
const MachineLoopInfoMLI
 
const MachineDominatorTreeMDT
 
const MachineFrameInfoMFI
 
LiveIntervalsLIS
 Live Intervals provides reaching defs in preRA scheduling. More...
 
TargetSchedModel SchedModel
 TargetSchedModel provides an interface to the machine model. More...
 
bool IsPostRA
 isPostRA flag indicates vregs cannot be present. More...
 
bool CanHandleTerminators
 
MachineBasicBlockBB
 The block in which to insert instructions. More...
 
MachineBasicBlock::iterator RegionBegin
 The beginning of the range to be scheduled. More...
 
MachineBasicBlock::iterator RegionEnd
 The end of the range to be scheduled. More...
 
unsigned NumRegionInstrs
 Instructions in this region (distance(RegionBegin, RegionEnd)). More...
 
DenseMap< MachineInstr *, SUnit * > MISUnitMap
 
VReg2UseMap VRegUses
 
Reg2SUnitsMap Defs
 
Reg2SUnitsMap Uses
 
VReg2SUnitMap VRegDefs
 Track the last instruction in this region defining each virtual register. More...
 
std::vector< SUnit * > PendingLoads
 
DbgValueVector DbgValues
 
MachineInstrFirstDbgValue
 

Detailed Description

Definition at line 106 of file DFAPacketizer.cpp.

Constructor & Destructor Documentation

DefaultVLIWScheduler::DefaultVLIWScheduler ( MachineFunction MF,
MachineLoopInfo MLI,
MachineDominatorTree MDT,
bool  IsPostRA 
)

Definition at line 115 of file DFAPacketizer.cpp.

References llvm::ScheduleDAGInstrs::CanHandleTerminators.

Member Function Documentation

void DefaultVLIWScheduler::schedule ( )
virtual

schedule - Order nodes according to selected style, filling in the Sequence member.

Typically, a scheduling algorithm will implement schedule() without overriding enterRegion() or exitRegion().

Implements llvm::ScheduleDAGInstrs.

Definition at line 122 of file DFAPacketizer.cpp.

References llvm::ScheduleDAGInstrs::buildSchedGraph().

Referenced by llvm::VLIWPacketizerList::PacketizeMIs().


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