LLVM  6.0.0svn
Classes | Public Member Functions | Public Attributes | List of all members
llvm::SIScheduleBlock Class Reference

#include "Target/AMDGPU/SIMachineScheduler.h"

Collaboration diagram for llvm::SIScheduleBlock:
Collaboration graph
[legend]

Public Member Functions

 SIScheduleBlock (SIScheduleDAGMI *DAG, SIScheduleBlockCreator *BC, unsigned ID)
 
 ~SIScheduleBlock ()=default
 
unsigned getID () const
 
void addUnit (SUnit *SU)
 Functions for Block construction. More...
 
void finalizeUnits ()
 
void addPred (SIScheduleBlock *Pred)
 
void addSucc (SIScheduleBlock *Succ, SIScheduleBlockLinkKind Kind)
 
const std::vector< SIScheduleBlock * > & getPreds () const
 
ArrayRef< std::pair< SIScheduleBlock *, SIScheduleBlockLinkKind > > getSuccs () const
 
unsigned getNumHighLatencySuccessors () const
 
bool isHighLatencyBlock ()
 
int getCost ()
 
void fastSchedule ()
 
std::vector< SUnit * > getScheduledUnits ()
 
void schedule (MachineBasicBlock::iterator BeginBlock, MachineBasicBlock::iterator EndBlock)
 
bool isScheduled ()
 
std::vector< unsigned > & getInternalAdditionnalRegUsage ()
 
std::set< unsigned > & getInRegs ()
 
std::set< unsigned > & getOutRegs ()
 
void printDebug (bool Full)
 

Public Attributes

unsigned Height
 
unsigned Depth
 

Detailed Description

Definition at line 62 of file SIMachineScheduler.h.

Constructor & Destructor Documentation

◆ SIScheduleBlock()

llvm::SIScheduleBlock::SIScheduleBlock ( SIScheduleDAGMI DAG,
SIScheduleBlockCreator BC,
unsigned  ID 
)
inline

Definition at line 105 of file SIMachineScheduler.h.

◆ ~SIScheduleBlock()

llvm::SIScheduleBlock::~SIScheduleBlock ( )
default

Member Function Documentation

◆ addPred()

void SIScheduleBlock::addPred ( SIScheduleBlock Pred)

Definition at line 531 of file SIMachineScheduler.cpp.

References assert(), getID(), llvm::none_of(), and P.

◆ addSucc()

void SIScheduleBlock::addSucc ( SIScheduleBlock Succ,
SIScheduleBlockLinkKind  Kind 
)

◆ addUnit()

void SIScheduleBlock::addUnit ( SUnit SU)

◆ fastSchedule()

void SIScheduleBlock::fastSchedule ( )

Definition at line 282 of file SIMachineScheduler.cpp.

Referenced by nextIfDebug(), and schedule().

◆ finalizeUnits()

void SIScheduleBlock::finalizeUnits ( )

◆ getCost()

int llvm::SIScheduleBlock::getCost ( )
inline

Definition at line 139 of file SIMachineScheduler.h.

◆ getID()

unsigned llvm::SIScheduleBlock::getID ( ) const
inline

◆ getInRegs()

std::set<unsigned>& llvm::SIScheduleBlock::getInRegs ( )
inline

◆ getInternalAdditionnalRegUsage()

std::vector<unsigned>& llvm::SIScheduleBlock::getInternalAdditionnalRegUsage ( )
inline

Definition at line 160 of file SIMachineScheduler.h.

◆ getNumHighLatencySuccessors()

unsigned llvm::SIScheduleBlock::getNumHighLatencySuccessors ( ) const
inline

Definition at line 130 of file SIMachineScheduler.h.

◆ getOutRegs()

std::set<unsigned>& llvm::SIScheduleBlock::getOutRegs ( )
inline

◆ getPreds()

const std::vector<SIScheduleBlock*>& llvm::SIScheduleBlock::getPreds ( ) const
inline

◆ getScheduledUnits()

std::vector<SUnit*> llvm::SIScheduleBlock::getScheduledUnits ( )
inline

Definition at line 146 of file SIMachineScheduler.h.

Referenced by nextIfDebug(), and llvm::SIScheduler::scheduleVariant().

◆ getSuccs()

ArrayRef<std::pair<SIScheduleBlock*, SIScheduleBlockLinkKind> > llvm::SIScheduleBlock::getSuccs ( ) const
inline

◆ isHighLatencyBlock()

bool llvm::SIScheduleBlock::isHighLatencyBlock ( )
inline

◆ isScheduled()

bool llvm::SIScheduleBlock::isScheduled ( )
inline

Definition at line 156 of file SIMachineScheduler.h.

◆ printDebug()

void SIScheduleBlock::printDebug ( bool  Full)

◆ schedule()

void SIScheduleBlock::schedule ( MachineBasicBlock::iterator  BeginBlock,
MachineBasicBlock::iterator  EndBlock 
)

Member Data Documentation

◆ Depth

unsigned llvm::SIScheduleBlock::Depth

Definition at line 128 of file SIMachineScheduler.h.

Referenced by nextIfDebug().

◆ Height

unsigned llvm::SIScheduleBlock::Height

Definition at line 127 of file SIMachineScheduler.h.

Referenced by nextIfDebug().


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