LLVM API Documentation
#include <MCSchedule.h>
Public Member Functions | |
MCSchedModel () | |
MCSchedModel (unsigned iw, int mbs, unsigned ll, unsigned hl, unsigned mp, bool cm, unsigned pi, const MCProcResourceDesc *pr, const MCSchedClassDesc *sc, unsigned npr, unsigned nsc, const InstrItinerary *ii) | |
unsigned | getProcessorID () const |
bool | hasInstrSchedModel () const |
Does this machine model include instruction-level scheduling. More... | |
bool | isComplete () const |
unsigned | getNumProcResourceKinds () const |
const MCProcResourceDesc * | getProcResource (unsigned ProcResourceIdx) const |
const MCSchedClassDesc * | getSchedClassDesc (unsigned SchedClassIdx) const |
Public Attributes | |
unsigned | IssueWidth |
unsigned | MicroOpBufferSize |
unsigned | LoadLatency |
unsigned | HighLatency |
unsigned | MispredictPenalty |
bool | CompleteModel |
Static Public Attributes | |
static MCSchedModel | DefaultSchedModel |
static const unsigned | DefaultIssueWidth = 1 |
static const unsigned | DefaultMicroOpBufferSize = 0 |
static const unsigned | DefaultLoadLatency = 4 |
static const unsigned | DefaultHighLatency = 10 |
static const unsigned | DefaultMispredictPenalty = 10 |
Friends | |
class | InstrItineraryData |
Machine model for scheduling, bundling, and heuristics.
The machine model directly provides basic information about the microarchitecture to the scheduler in the form of properties. It also optionally refers to scheduler resource tables and itinerary tables. Scheduler resource tables model the latency and cost for each instruction type. Itinerary tables are an independent mechanism that provides a detailed reservation table describing each cycle of instruction execution. Subtargets may define any or all of the above categories of data depending on the type of CPU and selected scheduler.
Definition at line 131 of file MCSchedule.h.
|
inline |
Definition at line 194 of file MCSchedule.h.
|
inline |
Definition at line 208 of file MCSchedule.h.
|
inline |
Definition at line 226 of file MCSchedule.h.
Referenced by llvm::TargetSchedModel::getNumProcResourceKinds(), and llvm::TargetSchedModel::init().
|
inline |
Definition at line 217 of file MCSchedule.h.
Referenced by llvm::TargetSchedModel::getProcessorID().
|
inline |
Definition at line 230 of file MCSchedule.h.
References hasInstrSchedModel().
Referenced by llvm::TargetSchedModel::computeOutputLatency(), llvm::TargetSchedModel::getProcResource(), llvm::TargetSchedModel::getResourceBufferSize(), and llvm::TargetSchedModel::init().
|
inline |
Definition at line 237 of file MCSchedule.h.
References hasInstrSchedModel().
Referenced by getLatency(), and llvm::TargetSchedModel::resolveSchedClass().
|
inline |
Does this machine model include instruction-level scheduling.
Definition at line 220 of file MCSchedule.h.
Referenced by getLatency(), getProcResource(), getSchedClassDesc(), and llvm::TargetSchedModel::hasInstrSchedModel().
|
inline |
Return true if this machine model data for all instructions with a scheduling class (itinerary class or SchedRW list).
Definition at line 224 of file MCSchedule.h.
References CompleteModel.
Referenced by llvm::TargetSchedModel::computeOperandLatency().
|
friend |
Definition at line 186 of file MCSchedule.h.
bool llvm::MCSchedModel::CompleteModel |
Definition at line 177 of file MCSchedule.h.
Referenced by isComplete().
|
static |
Definition at line 170 of file MCSchedule.h.
|
static |
Definition at line 138 of file MCSchedule.h.
|
static |
Definition at line 162 of file MCSchedule.h.
|
static |
Definition at line 155 of file MCSchedule.h.
|
static |
Definition at line 175 of file MCSchedule.h.
|
static |
Definition at line 133 of file MCSchedule.h.
Referenced by llvm::MCSubtargetInfo::getSchedModelForCPU(), and llvm::MCSubtargetInfo::InitCPUSchedModel().
unsigned llvm::MCSchedModel::HighLatency |
Definition at line 169 of file MCSchedule.h.
Referenced by llvm::TargetInstrInfo::defaultDefLatency().
unsigned llvm::MCSchedModel::IssueWidth |
Definition at line 137 of file MCSchedule.h.
Referenced by llvm::TargetSchedModel::getIssueWidth(), llvm::TargetSchedModel::init(), llvm::ResourcePriorityQueue::reserveResources(), and llvm::ScoreboardHazardRecognizer::ScoreboardHazardRecognizer().
unsigned llvm::MCSchedModel::LoadLatency |
Definition at line 161 of file MCSchedule.h.
Referenced by llvm::TargetInstrInfo::defaultDefLatency().
unsigned llvm::MCSchedModel::MicroOpBufferSize |
Definition at line 154 of file MCSchedule.h.
Referenced by llvm::TargetSchedModel::computeOutputLatency(), and llvm::TargetSchedModel::getMicroOpBufferSize().
unsigned llvm::MCSchedModel::MispredictPenalty |
Definition at line 174 of file MCSchedule.h.
Referenced by llvm::ARMSubtarget::getMispredictionPenalty().