LLVM
8.0.1
|
#include "Target/AMDGPU/SIMachineScheduler.h"
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 |
Definition at line 62 of file SIMachineScheduler.h.
|
inline |
Definition at line 105 of file SIMachineScheduler.h.
|
default |
void SIScheduleBlock::addPred | ( | SIScheduleBlock * | Pred | ) |
Definition at line 538 of file SIMachineScheduler.cpp.
References assert(), getID(), llvm::none_of(), and P.
void SIScheduleBlock::addSucc | ( | SIScheduleBlock * | Succ, |
SIScheduleBlockLinkKind | Kind | ||
) |
Definition at line 556 of file SIMachineScheduler.cpp.
References assert(), llvm::Data, getID(), isHighLatencyBlock(), Kind, llvm::NoData, llvm::none_of(), and P.
void SIScheduleBlock::addUnit | ( | SUnit * | SU | ) |
Functions for Block construction.
Definition at line 198 of file SIMachineScheduler.cpp.
References llvm::dbgs(), llvm::Depth, getReasonStr(), llvm::NoCand, llvm::SUnit::NodeNum, llvm::NodeOrder, llvm::RegUsage, llvm::SISched::tryGreater(), and llvm::SISched::tryLess().
void SIScheduleBlock::fastSchedule | ( | ) |
Definition at line 289 of file SIMachineScheduler.cpp.
void SIScheduleBlock::finalizeUnits | ( | ) |
Definition at line 527 of file SIMachineScheduler.cpp.
References llvm::SUnit::NodeNum.
Referenced by hasDataDependencyPred().
|
inline |
Definition at line 139 of file SIMachineScheduler.h.
|
inline |
Definition at line 111 of file SIMachineScheduler.h.
References Kind.
Referenced by addPred(), addSucc(), and llvm::SIScheduleBlockScheduler::SIScheduleBlockScheduler().
|
inline |
Definition at line 164 of file SIMachineScheduler.h.
Referenced by llvm::SIScheduleBlockScheduler::SIScheduleBlockScheduler().
|
inline |
Definition at line 160 of file SIMachineScheduler.h.
|
inline |
Definition at line 130 of file SIMachineScheduler.h.
|
inline |
Definition at line 165 of file SIMachineScheduler.h.
References assert(), llvm::JumpTable::Full, llvm::NoCand, and llvm::SISchedulerCandidate::Reason.
Referenced by llvm::SIScheduleBlockScheduler::SIScheduleBlockScheduler().
|
inline |
Definition at line 123 of file SIMachineScheduler.h.
Referenced by llvm::SIScheduleBlockScheduler::SIScheduleBlockScheduler().
|
inline |
Definition at line 146 of file SIMachineScheduler.h.
Referenced by llvm::SIScheduler::scheduleVariant().
|
inline |
Definition at line 125 of file SIMachineScheduler.h.
Referenced by llvm::SIScheduleBlockScheduler::SIScheduleBlockScheduler().
|
inline |
Definition at line 134 of file SIMachineScheduler.h.
Referenced by addSucc(), and llvm::SIScheduleBlockScheduler::SIScheduleBlockScheduler().
|
inline |
Definition at line 156 of file SIMachineScheduler.h.
void SIScheduleBlock::printDebug | ( | bool | Full | ) |
Definition at line 579 of file SIMachineScheduler.cpp.
References llvm::Data, llvm::dbgs(), P, llvm::printVRegOrUnit(), and Reg.
Referenced by hasDataDependencyPred().
void SIScheduleBlock::schedule | ( | MachineBasicBlock::iterator | BeginBlock, |
MachineBasicBlock::iterator | EndBlock | ||
) |
Definition at line 399 of file SIMachineScheduler.cpp.
References assert(), llvm::dbgs(), llvm::find(), llvm::SUnit::getInstr(), llvm::SDep::getSUnit(), I, llvm::SUnit::isScheduled, llvm::SDep::isWeak(), llvm_unreachable, llvm::SUnit::NodeNum, llvm::SUnit::NumPredsLeft, llvm::SUnit::Succs, and llvm::SUnit::WeakPredsLeft.
unsigned llvm::SIScheduleBlock::Depth |
Definition at line 128 of file SIMachineScheduler.h.
unsigned llvm::SIScheduleBlock::Height |
Definition at line 127 of file SIMachineScheduler.h.