|
LLVM
3.7.0
|
Machine model for scheduling, bundling, and heuristics. More...
#include <MCSchedule.h>
Public Member Functions | |
| unsigned | getProcessorID () const |
| bool | hasInstrSchedModel () const |
| Does this machine model include instruction-level scheduling. More... | |
| bool | isComplete () const |
| Return true if this machine model data for all instructions with a scheduling class (itinerary class or SchedRW list). More... | |
| unsigned | getNumProcResourceKinds () const |
| const MCProcResourceDesc * | getProcResource (unsigned ProcResourceIdx) const |
| const MCSchedClassDesc * | getSchedClassDesc (unsigned SchedClassIdx) const |
Static Public Member Functions | |
| static const MCSchedModel & | GetDefaultSchedModel () |
| Returns the default initialized model. More... | |
Static Public Attributes | |
| static const unsigned | DefaultIssueWidth = 1 |
| static const unsigned | DefaultMicroOpBufferSize = 0 |
| static const unsigned | DefaultLoopMicroOpBufferSize = 0 |
| static const unsigned | DefaultLoadLatency = 4 |
| static const unsigned | DefaultHighLatency = 10 |
| static const unsigned | DefaultMispredictPenalty = 10 |
| static const MCSchedModel | Default |
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 136 of file MCSchedule.h.
|
inlinestatic |
Returns the default initialized model.
Definition at line 228 of file MCSchedule.h.
References Default.
Referenced by llvm::MCSubtargetInfo::getSchedModelForCPU(), and llvm::MCSubtargetInfo::InitMCProcessorInfo().
|
inline |
Definition at line 209 of file MCSchedule.h.
References NumProcResourceKinds.
Referenced by llvm::TargetSchedModel::getNumProcResourceKinds(), and llvm::TargetSchedModel::init().
|
inline |
Definition at line 200 of file MCSchedule.h.
References ProcID.
Referenced by llvm::TargetSchedModel::getProcessorID().
|
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().
|
inline |
Definition at line 220 of file MCSchedule.h.
References hasInstrSchedModel(), NumSchedClasses, and SchedClassTable.
Referenced by llvm::TargetSchedModel::computeInstrLatency(), getLatency(), and llvm::TargetSchedModel::resolveSchedClass().
|
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().
|
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 |
Definition at line 197 of file MCSchedule.h.
| bool llvm::MCSchedModel::CompleteModel |
Definition at line 189 of file MCSchedule.h.
Referenced by isComplete().
|
static |
Definition at line 229 of file MCSchedule.h.
Referenced by GetDefaultSchedModel().
Definition at line 180 of file MCSchedule.h.
Definition at line 140 of file MCSchedule.h.
Definition at line 172 of file MCSchedule.h.
Definition at line 165 of file MCSchedule.h.
Definition at line 157 of file MCSchedule.h.
Definition at line 185 of file MCSchedule.h.
| unsigned llvm::MCSchedModel::HighLatency |
Definition at line 179 of file MCSchedule.h.
Referenced by llvm::TargetInstrInfo::defaultDefLatency().
| const InstrItinerary* llvm::MCSchedModel::InstrItineraries |
Definition at line 198 of file MCSchedule.h.
Referenced by llvm::HexagonMCInstrInfo::getUnits().
| unsigned llvm::MCSchedModel::IssueWidth |
Definition at line 139 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 171 of file MCSchedule.h.
Referenced by llvm::TargetInstrInfo::defaultDefLatency().
| unsigned llvm::MCSchedModel::LoopMicroOpBufferSize |
Definition at line 164 of file MCSchedule.h.
Referenced by llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getUnrollingPreferences().
| unsigned llvm::MCSchedModel::MicroOpBufferSize |
Definition at line 156 of file MCSchedule.h.
Referenced by llvm::TargetSchedModel::computeOutputLatency(), and llvm::TargetSchedModel::getMicroOpBufferSize().
| unsigned llvm::MCSchedModel::MispredictPenalty |
Definition at line 184 of file MCSchedule.h.
Referenced by llvm::ARMSubtarget::getMispredictionPenalty().
| unsigned llvm::MCSchedModel::NumProcResourceKinds |
Definition at line 194 of file MCSchedule.h.
Referenced by getNumProcResourceKinds(), and getProcResource().
| unsigned llvm::MCSchedModel::NumSchedClasses |
Definition at line 195 of file MCSchedule.h.
Referenced by getSchedClassDesc().
| bool llvm::MCSchedModel::PostRAScheduler |
Definition at line 187 of file MCSchedule.h.
Referenced by llvm::TargetSubtargetInfo::enablePostRAScheduler().
| unsigned llvm::MCSchedModel::ProcID |
Definition at line 191 of file MCSchedule.h.
Referenced by getProcessorID().
| const MCProcResourceDesc* llvm::MCSchedModel::ProcResourceTable |
Definition at line 192 of file MCSchedule.h.
Referenced by getProcResource().
| const MCSchedClassDesc* llvm::MCSchedModel::SchedClassTable |
Definition at line 193 of file MCSchedule.h.
Referenced by getSchedClassDesc(), and hasInstrSchedModel().
1.8.6