LLVM  3.7.0
Public Member Functions | Public Attributes | List of all members
llvm::ScheduleDAG Class Referenceabstract

#include <ScheduleDAG.h>

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

Public Member Functions

 ScheduleDAG (MachineFunction &mf)
 
virtual ~ScheduleDAG ()
 
void clearDAG ()
 clearDAG - clear the DAG state (between regions). More...
 
const MCInstrDescgetInstrDesc (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 TargetMachineTM
 
const TargetInstrInfoTII
 
const TargetRegisterInfoTRI
 
MachineFunctionMF
 
MachineRegisterInfoMRI
 
std::vector< SUnitSUnits
 
SUnit EntrySU
 
SUnit ExitSU
 
bool StressSched
 

Detailed Description

Definition at line 558 of file ScheduleDAG.h.

Constructor & Destructor Documentation

ScheduleDAG::ScheduleDAG ( MachineFunction mf)
explicit

Definition at line 38 of file ScheduleDAG.cpp.

References StressSched, and StressSchedOpt.

ScheduleDAG::~ScheduleDAG ( )
virtual

Definition at line 47 of file ScheduleDAG.cpp.

Member Function Documentation

virtual void llvm::ScheduleDAG::addCustomGraphFeatures ( GraphWriter< ScheduleDAG * > &  ) const
inlinevirtual

addCustomGraphFeatures - Add custom features for a visualization of the ScheduleDAG.

Definition at line 606 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().

virtual void llvm::ScheduleDAG::dumpNode ( const SUnit SU) const
pure virtual
virtual std::string llvm::ScheduleDAG::getDAGName ( ) const
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().

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.

Referenced by llvm::DOTGraphTraits< ScheduleDAGMI * >::getNodeDescription().

const MCInstrDesc* llvm::ScheduleDAG::getInstrDesc ( const SUnit SU) const
inline
unsigned ScheduleDAG::VerifyScheduledDAG ( bool  isBottomUp)

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 383 of file ScheduleDAG.cpp.

References llvm::dbgs(), and SUnits.

Referenced by llvm::ScheduleDAGSDNodes::VerifyScheduledSequence().

void ScheduleDAG::viewGraph ( const Twine Name,
const Twine Title 
)
virtual

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 85 of file ScheduleDAGPrinter.cpp.

References llvm::errs(), and llvm::ViewGraph().

void ScheduleDAG::viewGraph ( )
virtual

Out-of-line implementation with no arguments is handy for gdb.

Reimplemented in llvm::ScheduleDAGMI.

Definition at line 96 of file ScheduleDAGPrinter.cpp.

References getDAGName().

Member Data Documentation

SUnit llvm::ScheduleDAG::EntrySU
SUnit llvm::ScheduleDAG::ExitSU
MachineFunction& llvm::ScheduleDAG::MF
MachineRegisterInfo& llvm::ScheduleDAG::MRI
bool llvm::ScheduleDAG::StressSched

Definition at line 572 of file ScheduleDAG.h.

Referenced by ScheduleDAG().

std::vector<SUnit> llvm::ScheduleDAG::SUnits
const TargetInstrInfo* llvm::ScheduleDAG::TII
const TargetMachine& llvm::ScheduleDAG::TM

Definition at line 560 of file ScheduleDAG.h.

Referenced by llvm::ScheduleDAGInstrs::buildSchedGraph().

const TargetRegisterInfo* llvm::ScheduleDAG::TRI

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