LLVM API Documentation

Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Friends
llvm::MCSchedModel Struct Reference

#include <MCSchedule.h>

Collaboration diagram for llvm::MCSchedModel:
Collaboration graph
[legend]

List of all members.

Public Member Functions

unsigned getProcessorID () const
bool hasInstrSchedModel () const
 Does this machine model include instruction-level scheduling.
bool isComplete () const
unsigned getNumProcResourceKinds () const
const MCProcResourceDescgetProcResource (unsigned ProcResourceIdx) const
const MCSchedClassDescgetSchedClassDesc (unsigned SchedClassIdx) const

Static Public Member Functions

static MCSchedModel GetDefaultSchedModel ()

Public Attributes

unsigned IssueWidth
unsigned MicroOpBufferSize
unsigned LoopMicroOpBufferSize
unsigned LoadLatency
unsigned HighLatency
unsigned MispredictPenalty
bool PostRAScheduler
bool CompleteModel
unsigned ProcID
const MCProcResourceDescProcResourceTable
const MCSchedClassDescSchedClassTable
unsigned NumProcResourceKinds
unsigned NumSchedClasses
const InstrItineraryInstrItineraries

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

Friends

class InstrItineraryData

Detailed Description

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.


Member Function Documentation

Definition at line 200 of file MCSchedule.h.

References ProcID.

Referenced by llvm::TargetSchedModel::getProcessorID().

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().

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().


Friends And Related Function Documentation

friend class InstrItineraryData [friend]

Definition at line 197 of file MCSchedule.h.


Member Data Documentation

Definition at line 189 of file MCSchedule.h.

Referenced by isComplete().

Definition at line 180 of file MCSchedule.h.

Referenced by GetDefaultSchedModel().

Definition at line 140 of file MCSchedule.h.

Referenced by GetDefaultSchedModel().

Definition at line 172 of file MCSchedule.h.

Referenced by GetDefaultSchedModel().

Definition at line 165 of file MCSchedule.h.

Referenced by GetDefaultSchedModel().

Definition at line 157 of file MCSchedule.h.

Referenced by GetDefaultSchedModel().

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 171 of file MCSchedule.h.

Referenced by llvm::TargetInstrInfo::defaultDefLatency().

Definition at line 164 of file MCSchedule.h.

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().


The documentation for this struct was generated from the following file: