14 #ifndef LLVM_MC_MCSUBTARGET_H
15 #define LLVM_MC_MCSUBTARGET_H
30 std::string TargetTriple;
42 const unsigned *OperandCycles;
43 const unsigned *ForwardingPaths;
57 const unsigned *
OC,
const unsigned *FP,
58 unsigned NF,
unsigned NP);
106 unsigned DefIdx)
const {
107 assert(DefIdx < SC->NumWriteLatencyEntries &&
108 "MachineModel does not specify a WriteResource for DefIdx");
114 unsigned WriteResID)
const {
120 if (
I->UseIdx < UseIdx)
122 if (
I->UseIdx > UseIdx)
125 if (!
I->WriteResourceID ||
I->WriteResourceID == WriteResID) {
unsigned NumWriteProcResEntries
InstrItineraryData getInstrItineraryForCPU(StringRef CPU) const
const MCWriteProcResEntry * getWriteProcResBegin(const MCSchedClassDesc *SC) const
const MCSchedModel * getSchedModel() const
void InitCPUSchedModel(StringRef CPU)
InitCPUSchedModel - Recompute scheduling model based on CPU.
void initInstrItins(InstrItineraryData &InstrItins) const
Initialize an InstrItineraryData instance.
const MCWriteProcResEntry * getWriteProcResEnd(const MCSchedClassDesc *SC) const
int getReadAdvanceCycles(const MCSchedClassDesc *SC, unsigned UseIdx, unsigned WriteResID) const
uint64_t ToggleFeature(uint64_t FB)
void InitMCProcessorInfo(StringRef CPU, StringRef FS)
unsigned NumReadAdvanceEntries
const MCWriteLatencyEntry * getWriteLatencyEntry(const MCSchedClassDesc *SC, unsigned DefIdx) const
StringRef getTargetTriple() const
getTargetTriple - Return the target triple string.
void InitMCSubtargetInfo(StringRef TT, StringRef CPU, StringRef FS, const SubtargetFeatureKV *PF, const SubtargetFeatureKV *PD, const SubtargetInfoKV *ProcSched, const MCWriteProcResEntry *WPR, const MCWriteLatencyEntry *WL, const MCReadAdvanceEntry *RA, const InstrStage *IS, const unsigned *OC, const unsigned *FP, unsigned NF, unsigned NP)
uint64_t getFeatureBits() const
const MCSchedModel * getSchedModelForCPU(StringRef CPU) const