|
LLVM
4.0.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... | |
| bool | isOutOfOrder () const |
| Return true if machine supports out of order execution. 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 227 of file MCSchedule.h.
References Default.
Referenced by llvm::MCSubtargetInfo::getSchedModelForCPU(), and llvm::MCSubtargetInfo::InitMCProcessorInfo().
|
inline |
Definition at line 208 of file MCSchedule.h.
References NumProcResourceKinds.
Referenced by llvm::TargetSchedModel::getNumProcResourceKinds(), and llvm::TargetSchedModel::init().
|
inline |
Definition at line 196 of file MCSchedule.h.
References ProcID.
Referenced by llvm::TargetSchedModel::getProcessorID().
|
inline |
Definition at line 212 of file MCSchedule.h.
References assert(), 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 219 of file MCSchedule.h.
References assert(), 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 199 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 203 of file MCSchedule.h.
References CompleteModel.
Referenced by llvm::TargetSchedModel::computeOperandLatency().
|
inline |
Return true if machine supports out of order execution.
Definition at line 206 of file MCSchedule.h.
References MicroOpBufferSize.
Referenced by llvm::TargetSchedModel::computeOutputLatency().
|
friend |
Definition at line 193 of file MCSchedule.h.
| bool llvm::MCSchedModel::CompleteModel |
Definition at line 185 of file MCSchedule.h.
Referenced by isComplete().
|
static |
Definition at line 228 of file MCSchedule.h.
Referenced by GetDefaultSchedModel().
Definition at line 176 of file MCSchedule.h.
Definition at line 140 of file MCSchedule.h.
Definition at line 169 of file MCSchedule.h.
Definition at line 165 of file MCSchedule.h.
Definition at line 157 of file MCSchedule.h.
Definition at line 181 of file MCSchedule.h.
| unsigned llvm::MCSchedModel::HighLatency |
Definition at line 175 of file MCSchedule.h.
Referenced by llvm::TargetInstrInfo::defaultDefLatency().
| const InstrItinerary* llvm::MCSchedModel::InstrItineraries |
Definition at line 194 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 168 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::getMicroOpBufferSize(), and isOutOfOrder().
| unsigned llvm::MCSchedModel::MispredictPenalty |
Definition at line 180 of file MCSchedule.h.
Referenced by llvm::ARMSubtarget::getMispredictionPenalty().
| unsigned llvm::MCSchedModel::NumProcResourceKinds |
Definition at line 190 of file MCSchedule.h.
Referenced by getNumProcResourceKinds(), and getProcResource().
| unsigned llvm::MCSchedModel::NumSchedClasses |
Definition at line 191 of file MCSchedule.h.
Referenced by getSchedClassDesc().
| bool llvm::MCSchedModel::PostRAScheduler |
Definition at line 183 of file MCSchedule.h.
Referenced by llvm::TargetSubtargetInfo::enablePostRAScheduler().
| unsigned llvm::MCSchedModel::ProcID |
Definition at line 187 of file MCSchedule.h.
Referenced by getProcessorID().
| const MCProcResourceDesc* llvm::MCSchedModel::ProcResourceTable |
Definition at line 188 of file MCSchedule.h.
Referenced by getProcResource().
| const MCSchedClassDesc* llvm::MCSchedModel::SchedClassTable |
Definition at line 189 of file MCSchedule.h.
Referenced by getSchedClassDesc(), and hasInstrSchedModel().
1.8.6