15 #ifndef LLVM_MC_MCSCHEDULE_H
16 #define LLVM_MC_MCSCHEDULE_H
18 #include "llvm/Support/DataTypes.h"
23 struct InstrItinerary;
183 unsigned NumProcResourceKinds;
184 unsigned NumSchedClasses;
200 ProcID(0), ProcResourceTable(0), SchedClassTable(0),
201 NumProcResourceKinds(0), NumSchedClasses(0),
202 InstrItineraries(0) {
203 (void)NumProcResourceKinds;
204 (void)NumSchedClasses;
214 ProcResourceTable(pr), SchedClassTable(sc), NumProcResourceKinds(npr),
215 NumSchedClasses(nsc), InstrItineraries(ii) {}
227 return NumProcResourceKinds;
233 assert(ProcResourceIdx < NumProcResourceKinds &&
"bad proc resource idx");
234 return &ProcResourceTable[ProcResourceIdx];
240 assert(SchedClassIdx < NumSchedClasses &&
"bad scheduling class idx");
241 return &SchedClassTable[SchedClassIdx];
bool operator==(const MCWriteLatencyEntry &Other) const
unsigned NumWriteProcResEntries
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 MispredictPenalty
unsigned short NumMicroOps
static MCSchedModel DefaultSchedModel
bool operator==(const MCWriteProcResEntry &Other) const
static const unsigned DefaultIssueWidth
static const unsigned short VariantNumMicroOps
bool operator==(const MCReadAdvanceEntry &Other) const
unsigned NumReadAdvanceEntries
unsigned NumWriteLatencyEntries
bool operator==(const MCProcResourceDesc &Other) const
const MCProcResourceDesc * getProcResource(unsigned ProcResourceIdx) const
static const unsigned DefaultMicroOpBufferSize
unsigned getNumProcResourceKinds() const
static const unsigned DefaultHighLatency
static const unsigned short InvalidNumMicroOps
Define a kind of processor resource that will be modeled by the scheduler.
unsigned MicroOpBufferSize
bool hasInstrSchedModel() const
Does this machine model include instruction-level scheduling.
const MCSchedClassDesc * getSchedClassDesc(unsigned SchedClassIdx) const
static const unsigned DefaultMispredictPenalty
static const unsigned DefaultLoadLatency
unsigned getProcessorID() const