class InstrItineraryData
Declaration
class InstrItineraryData { /* full declaration omitted */ };
Description
Itinerary data supplied by a subtarget to be used by a target.
Declared at: llvm/include/llvm/MC/MCInstrItineraries.h:106
Member Variables
- public llvm::MCSchedModel SchedModel = MCSchedModel::GetDefaultSchedModel()
- public const llvm::InstrStage* Stages = nullptr
- Array of stages selected
- public const unsigned int* OperandCycles = nullptr
- Array of operand cycles selected
- public const unsigned int* Forwardings = nullptr
- Array of pipeline forwarding paths
- public const llvm::InstrItinerary* Itineraries = nullptr
Method Overview
- public InstrItineraryData()
- public InstrItineraryData(const llvm::MCSchedModel & SM, const llvm::InstrStage * S, const unsigned int * OS, const unsigned int * F)
- public const llvm::InstrStage * beginStage(unsigned int ItinClassIndx) const
- public const llvm::InstrStage * endStage(unsigned int ItinClassIndx) const
- public int getNumMicroOps(unsigned int ItinClassIndx) const
- public int getOperandCycle(unsigned int ItinClassIndx, unsigned int OperandIdx) const
- public int getOperandLatency(unsigned int DefClass, unsigned int DefIdx, unsigned int UseClass, unsigned int UseIdx) const
- public unsigned int getStageLatency(unsigned int ItinClassIndx) const
- public bool hasPipelineForwarding(unsigned int DefClass, unsigned int DefIdx, unsigned int UseClass, unsigned int UseIdx) const
- public bool isEmpty() const
- public bool isEndMarker(unsigned int ItinClassIndx) const
Methods
¶InstrItineraryData()
InstrItineraryData()
Declared at: llvm/include/llvm/MC/MCInstrItineraries.h:116
¶InstrItineraryData(const llvm::MCSchedModel& SM,
const llvm::InstrStage* S,
const unsigned int* OS,
const unsigned int* F)
InstrItineraryData(const llvm::MCSchedModel& SM,
const llvm::InstrStage* S,
const unsigned int* OS,
const unsigned int* F)
Declared at: llvm/include/llvm/MC/MCInstrItineraries.h:117
Parameters
- const llvm::MCSchedModel& SM
- const llvm::InstrStage* S
- const unsigned int* OS
- const unsigned int* F
¶const llvm::InstrStage* beginStage(
unsigned int ItinClassIndx) const
const llvm::InstrStage* beginStage(
unsigned int ItinClassIndx) const
Description
Return the first stage of the itinerary.
Declared at: llvm/include/llvm/MC/MCInstrItineraries.h:132
Parameters
- unsigned int ItinClassIndx
¶const llvm::InstrStage* endStage(
unsigned int ItinClassIndx) const
const llvm::InstrStage* endStage(
unsigned int ItinClassIndx) const
Description
Return the last+1 stage of the itinerary.
Declared at: llvm/include/llvm/MC/MCInstrItineraries.h:138
Parameters
- unsigned int ItinClassIndx
¶int getNumMicroOps(
unsigned int ItinClassIndx) const
int getNumMicroOps(
unsigned int ItinClassIndx) const
Description
Return the number of micro-ops that the given class decodes to. Return -1 for classes that require dynamic lookup via TargetInstrInfo.
Declared at: llvm/include/llvm/MC/MCInstrItineraries.h:225
Parameters
- unsigned int ItinClassIndx
¶int getOperandCycle(unsigned int ItinClassIndx,
unsigned int OperandIdx) const
int getOperandCycle(unsigned int ItinClassIndx,
unsigned int OperandIdx) const
Description
Return the cycle for the given class and operand. Return -1 if no cycle is specified for the operand.
Declared at: llvm/include/llvm/MC/MCInstrItineraries.h:164
Parameters
- unsigned int ItinClassIndx
- unsigned int OperandIdx
¶int getOperandLatency(unsigned int DefClass,
unsigned int DefIdx,
unsigned int UseClass,
unsigned int UseIdx) const
int getOperandLatency(unsigned int DefClass,
unsigned int DefIdx,
unsigned int UseClass,
unsigned int UseIdx) const
Description
Compute and return the use operand latency of a given itinerary class and operand index if the value is produced by an instruction of the specified itinerary class and def operand index.
Declared at: llvm/include/llvm/MC/MCInstrItineraries.h:202
Parameters
- unsigned int DefClass
- unsigned int DefIdx
- unsigned int UseClass
- unsigned int UseIdx
¶unsigned int getStageLatency(
unsigned int ItinClassIndx) const
unsigned int getStageLatency(
unsigned int ItinClassIndx) const
Description
Return the total stage latency of the given class. The latency is the maximum completion time for any stage in the itinerary. If no stages exist, it defaults to one cycle.
Declared at: llvm/include/llvm/MC/MCInstrItineraries.h:146
Parameters
- unsigned int ItinClassIndx
¶bool hasPipelineForwarding(
unsigned int DefClass,
unsigned int DefIdx,
unsigned int UseClass,
unsigned int UseIdx) const
bool hasPipelineForwarding(
unsigned int DefClass,
unsigned int DefIdx,
unsigned int UseClass,
unsigned int UseIdx) const
Description
Return true if there is a pipeline forwarding between instructions of itinerary classes DefClass and UseClasses so that value produced by an instruction of itinerary class DefClass, operand index DefIdx can be bypassed when it's read by an instruction of itinerary class UseClass, operand index UseIdx.
Declared at: llvm/include/llvm/MC/MCInstrItineraries.h:181
Parameters
- unsigned int DefClass
- unsigned int DefIdx
- unsigned int UseClass
- unsigned int UseIdx
¶bool isEmpty() const
bool isEmpty() const
Description
Returns true if there are no itineraries.
Declared at: llvm/include/llvm/MC/MCInstrItineraries.h:123
¶bool isEndMarker(unsigned int ItinClassIndx) const
bool isEndMarker(unsigned int ItinClassIndx) const
Description
Returns true if the index is for the end marker itinerary.
Declared at: llvm/include/llvm/MC/MCInstrItineraries.h:126
Parameters
- unsigned int ItinClassIndx