LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Public Attributes | List of all members
llvm::ScheduleDAG Class Referenceabstract

#include <ScheduleDAG.h>

Inheritance diagram for llvm::ScheduleDAG:
Inheritance graph
[legend]
Collaboration diagram for llvm::ScheduleDAG:
Collaboration graph
[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
 
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 dumpNode (const SUnit *SU) const =0
 
virtual std::string getGraphNodeLabel (const SUnit *SU) const =0
 
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
 
unsigned VerifyScheduledDAG (bool isBottomUp)
 

Public Attributes

const TargetMachineTM
 
const TargetInstrInfoTII
 
const TargetRegisterInfoTRI
 
MachineFunctionMF
 
MachineRegisterInfoMRI
 
std::vector< SUnitSUnits
 
SUnit EntrySU
 
SUnit ExitSU
 
bool StressSched
 

Detailed Description

Definition at line 538 of file ScheduleDAG.h.

Constructor & Destructor Documentation

ScheduleDAG::ScheduleDAG ( MachineFunction mf)
explicit

Definition at line 36 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 586 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.

VerifyScheduledDAG - Verify that all SUnits were scheduled and that their state is consistent. 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 87 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 98 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 552 of file ScheduleDAG.h.

Referenced by ScheduleDAG().

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

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