LLVM API Documentation
#include <MCInstrItineraries.h>
Instruction itinerary Data - Itinerary data supplied by a subtarget to be used by a target.
Definition at line 111 of file MCInstrItineraries.h.
llvm::InstrItineraryData::InstrItineraryData | ( | ) | [inline] |
Ctors.
Definition at line 121 of file MCInstrItineraries.h.
llvm::InstrItineraryData::InstrItineraryData | ( | const MCSchedModel & | SM, |
const InstrStage * | S, | ||
const unsigned * | OS, | ||
const unsigned * | F | ||
) | [inline] |
Definition at line 125 of file MCInstrItineraries.h.
const InstrStage* llvm::InstrItineraryData::beginStage | ( | unsigned | ItinClassIndx | ) | const [inline] |
beginStage - Return the first stage of the itinerary.
Definition at line 144 of file MCInstrItineraries.h.
References llvm::InstrItinerary::FirstStage, Itineraries, and Stages.
Referenced by llvm::DFAPacketizer::canReserveResources(), llvm::ScoreboardHazardRecognizer::EmitInstruction(), llvm::ScoreboardHazardRecognizer::getHazardType(), getStageLatency(), llvm::HexagonMCInst::getUnits(), llvm::DFAPacketizer::reserveResources(), and llvm::ScoreboardHazardRecognizer::ScoreboardHazardRecognizer().
const InstrStage* llvm::InstrItineraryData::endStage | ( | unsigned | ItinClassIndx | ) | const [inline] |
endStage - Return the last+1 stage of the itinerary.
Definition at line 151 of file MCInstrItineraries.h.
References Itineraries, llvm::InstrItinerary::LastStage, and Stages.
Referenced by llvm::ScoreboardHazardRecognizer::EmitInstruction(), llvm::ScoreboardHazardRecognizer::getHazardType(), getStageLatency(), and llvm::ScoreboardHazardRecognizer::ScoreboardHazardRecognizer().
int llvm::InstrItineraryData::getNumMicroOps | ( | unsigned | ItinClassIndx | ) | const [inline] |
getNumMicroOps - Return the number of micro-ops that the given class decodes to. Return -1 for classes that require dynamic lookup via TargetInstrInfo.
Definition at line 242 of file MCInstrItineraries.h.
References isEmpty(), Itineraries, and llvm::InstrItinerary::NumMicroOps.
Referenced by llvm::TargetSchedModel::getNumMicroOps(), llvm::ARMBaseInstrInfo::getNumMicroOps(), and getNumMicroOpsSwiftLdSt().
int llvm::InstrItineraryData::getOperandCycle | ( | unsigned | ItinClassIndx, |
unsigned | OperandIdx | ||
) | const [inline] |
getOperandCycle - Return the cycle for the given class and operand. Return -1 if no cycle is specified for the operand.
Definition at line 180 of file MCInstrItineraries.h.
References llvm::InstrItinerary::FirstOperandCycle, isEmpty(), Itineraries, llvm::InstrItinerary::LastOperandCycle, and OperandCycles.
Referenced by llvm::TargetSchedModel::computeOperandLatency(), llvm::TargetInstrInfo::computeOperandLatency(), getItineraryLatency(), getOperandLatency(), llvm::ARMBaseInstrInfo::getOperandLatency(), llvm::TargetInstrInfo::getOperandLatency(), llvm::ARMTargetLowering::getSchedulingPreference(), and llvm::TargetInstrInfo::hasLowDefLatency().
int llvm::InstrItineraryData::getOperandLatency | ( | unsigned | DefClass, |
unsigned | DefIdx, | ||
unsigned | UseClass, | ||
unsigned | UseIdx | ||
) | const [inline] |
getOperandLatency - 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.
Definition at line 218 of file MCInstrItineraries.h.
References getOperandCycle(), hasPipelineForwarding(), and isEmpty().
Referenced by llvm::TargetInstrInfo::getOperandLatency().
unsigned llvm::InstrItineraryData::getStageLatency | ( | unsigned | ItinClassIndx | ) | const [inline] |
getStageLatency - 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.
Definition at line 161 of file MCInstrItineraries.h.
References beginStage(), endStage(), and isEmpty().
Referenced by llvm::TargetInstrInfo::getInstrLatency().
bool llvm::InstrItineraryData::hasPipelineForwarding | ( | unsigned | DefClass, |
unsigned | DefIdx, | ||
unsigned | UseClass, | ||
unsigned | UseIdx | ||
) | const [inline] |
hasPipelineForwarding - 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.
Definition at line 197 of file MCInstrItineraries.h.
References llvm::InstrItinerary::FirstOperandCycle, Forwardings, Itineraries, and llvm::InstrItinerary::LastOperandCycle.
Referenced by getOperandLatency().
bool llvm::InstrItineraryData::isEmpty | ( | ) | const [inline] |
isEmpty - Returns true if there are no itineraries.
Definition at line 132 of file MCInstrItineraries.h.
References Itineraries.
Referenced by llvm::TargetInstrInfo::computeDefOperandLatency(), llvm::ScheduleDAGSDNodes::computeLatency(), llvm::TargetInstrInfo::computeOperandLatency(), llvm::ScoreboardHazardRecognizer::EmitInstruction(), llvm::ScoreboardHazardRecognizer::getHazardType(), llvm::TargetInstrInfo::getInstrLatency(), getNumMicroOps(), llvm::ARMBaseInstrInfo::getNumMicroOps(), llvm::TargetInstrInfo::getNumMicroOps(), getOperandCycle(), getOperandLatency(), llvm::ARMBaseInstrInfo::getOperandLatency(), llvm::TargetInstrInfo::getOperandLatency(), llvm::ARMTargetLowering::getSchedulingPreference(), getStageLatency(), llvm::TargetSchedModel::hasInstrItineraries(), llvm::TargetInstrInfo::hasLowDefLatency(), and llvm::ScoreboardHazardRecognizer::ScoreboardHazardRecognizer().
bool llvm::InstrItineraryData::isEndMarker | ( | unsigned | ItinClassIndx | ) | const [inline] |
isEndMarker - Returns true if the index is for the end marker itinerary.
Definition at line 137 of file MCInstrItineraries.h.
References Itineraries.
Referenced by llvm::ScoreboardHazardRecognizer::ScoreboardHazardRecognizer().
Array of pipeline forwarding pathes.
Definition at line 116 of file MCInstrItineraries.h.
Referenced by hasPipelineForwarding().
Array of itineraries selected.
Definition at line 117 of file MCInstrItineraries.h.
Referenced by beginStage(), endStage(), getNumMicroOps(), llvm::TargetInstrInfo::getNumMicroOps(), getOperandCycle(), hasPipelineForwarding(), isEmpty(), and isEndMarker().
Array of operand cycles selected.
Definition at line 115 of file MCInstrItineraries.h.
Referenced by getOperandCycle().
Basic machine properties.
Definition at line 113 of file MCInstrItineraries.h.
Referenced by llvm::TargetInstrInfo::computeDefOperandLatency(), llvm::TargetInstrInfo::computeOperandLatency(), llvm::ResourcePriorityQueue::reserveResources(), and llvm::ScoreboardHazardRecognizer::ScoreboardHazardRecognizer().
Array of stages selected.
Definition at line 114 of file MCInstrItineraries.h.
Referenced by beginStage(), and endStage().