LLVM API Documentation
#include <MCSchedule.h>
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 136 of file MCSchedule.h.
static MCSchedModel llvm::MCSchedModel::GetDefaultSchedModel | ( | ) | [inline, static] |
Definition at line 228 of file MCSchedule.h.
References DefaultHighLatency, DefaultIssueWidth, DefaultLoadLatency, DefaultLoopMicroOpBufferSize, DefaultMicroOpBufferSize, DefaultMispredictPenalty, and llvm::MipsISD::Ret.
Referenced by llvm::MCSubtargetInfo::getSchedModelForCPU(), and llvm::MCSubtargetInfo::InitCPUSchedModel().
unsigned llvm::MCSchedModel::getNumProcResourceKinds | ( | ) | const [inline] |
Definition at line 209 of file MCSchedule.h.
References NumProcResourceKinds.
Referenced by llvm::TargetSchedModel::getNumProcResourceKinds(), and llvm::TargetSchedModel::init().
unsigned llvm::MCSchedModel::getProcessorID | ( | ) | const [inline] |
Definition at line 200 of file MCSchedule.h.
References ProcID.
Referenced by llvm::TargetSchedModel::getProcessorID().
const MCProcResourceDesc* llvm::MCSchedModel::getProcResource | ( | unsigned | ProcResourceIdx | ) | const [inline] |
Definition at line 213 of file MCSchedule.h.
References hasInstrSchedModel(), NumProcResourceKinds, and ProcResourceTable.
Referenced by llvm::TargetSchedModel::computeOutputLatency(), llvm::TargetSchedModel::getProcResource(), llvm::TargetSchedModel::getResourceBufferSize(), llvm::TargetSchedModel::getResourceName(), and llvm::TargetSchedModel::init().
const MCSchedClassDesc* llvm::MCSchedModel::getSchedClassDesc | ( | unsigned | SchedClassIdx | ) | const [inline] |
Definition at line 220 of file MCSchedule.h.
References hasInstrSchedModel(), NumSchedClasses, and SchedClassTable.
Referenced by llvm::TargetSchedModel::computeInstrLatency(), getLatency(), and llvm::TargetSchedModel::resolveSchedClass().
bool llvm::MCSchedModel::hasInstrSchedModel | ( | ) | const [inline] |
Does this machine model include instruction-level scheduling.
Definition at line 203 of file MCSchedule.h.
References SchedClassTable.
Referenced by getLatency(), getProcResource(), getSchedClassDesc(), and llvm::TargetSchedModel::hasInstrSchedModel().
bool llvm::MCSchedModel::isComplete | ( | ) | const [inline] |
Return true if this machine model data for all instructions with a scheduling class (itinerary class or SchedRW list).
Definition at line 207 of file MCSchedule.h.
References CompleteModel.
Referenced by llvm::TargetSchedModel::computeOperandLatency().
friend class InstrItineraryData [friend] |
Definition at line 197 of file MCSchedule.h.
Definition at line 189 of file MCSchedule.h.
Referenced by isComplete().
const unsigned llvm::MCSchedModel::DefaultHighLatency = 10 [static] |
Definition at line 180 of file MCSchedule.h.
Referenced by GetDefaultSchedModel().
const unsigned llvm::MCSchedModel::DefaultIssueWidth = 1 [static] |
Definition at line 140 of file MCSchedule.h.
Referenced by GetDefaultSchedModel().
const unsigned llvm::MCSchedModel::DefaultLoadLatency = 4 [static] |
Definition at line 172 of file MCSchedule.h.
Referenced by GetDefaultSchedModel().
Definition at line 165 of file MCSchedule.h.
Referenced by GetDefaultSchedModel().
const unsigned llvm::MCSchedModel::DefaultMicroOpBufferSize = 0 [static] |
Definition at line 157 of file MCSchedule.h.
Referenced by GetDefaultSchedModel().
const unsigned llvm::MCSchedModel::DefaultMispredictPenalty = 10 [static] |
Definition at line 185 of file MCSchedule.h.
Referenced by GetDefaultSchedModel().
Definition at line 179 of file MCSchedule.h.
Referenced by llvm::TargetInstrInfo::defaultDefLatency().
Definition at line 198 of file MCSchedule.h.
Definition at line 139 of file MCSchedule.h.
Referenced by llvm::TargetSchedModel::getIssueWidth(), llvm::TargetSchedModel::init(), llvm::ResourcePriorityQueue::reserveResources(), and llvm::ScoreboardHazardRecognizer::ScoreboardHazardRecognizer().
Definition at line 171 of file MCSchedule.h.
Referenced by llvm::TargetInstrInfo::defaultDefLatency().
Definition at line 164 of file MCSchedule.h.
Definition at line 156 of file MCSchedule.h.
Referenced by llvm::TargetSchedModel::computeOutputLatency(), and llvm::TargetSchedModel::getMicroOpBufferSize().
Definition at line 184 of file MCSchedule.h.
Referenced by llvm::ARMSubtarget::getMispredictionPenalty().
Definition at line 194 of file MCSchedule.h.
Referenced by getNumProcResourceKinds(), and getProcResource().
Definition at line 195 of file MCSchedule.h.
Referenced by getSchedClassDesc().
Definition at line 187 of file MCSchedule.h.
Referenced by llvm::TargetSubtargetInfo::enablePostMachineScheduler().
Definition at line 191 of file MCSchedule.h.
Referenced by getProcessorID().
Definition at line 192 of file MCSchedule.h.
Referenced by getProcResource().
Definition at line 193 of file MCSchedule.h.
Referenced by getSchedClassDesc(), and hasInstrSchedModel().