Provide an instruction scheduling machine model to CodeGen passes.

Synopsis

Declared in <llvm/CodeGen/TargetSchedule.h>

class TargetSchedModel;

Type Aliases

Name

Description

ProcResIter

Iterator over processor resources written by a scheduling class.

Member Functions

Name

Description

TargetSchedModel [constructor]

Construct a target schedule model with the default MCSchedModel.

computeInstrLatency

computeInstrLatency overloads

computeOperandLatency

Compute operand latency based on the available machine model.

computeOutputLatency

Output dependency latency of a pair of defs of the same register.

computeReciprocalThroughput

computeReciprocalThroughput overloads

enableIntervals

Return true if resource interval tracking is enabled for this model.

getInstrInfo

TargetInstrInfo getter.

getInstrItineraries

Return itinerary data if this model has itineraries, otherwise nullptr.

getIssueWidth

Maximum number of micro‐ops that may be scheduled per cycle.

getLatencyFactor

Multiply cycle count by this factor to normalize it relative to other resources. This is the number of resource units per cycle.

getMCSchedModel

Return the underlying MCSchedModel for this processor.

getMicroOpBufferSize

Number of micro‐ops that may be buffered for OOO execution.

getMicroOpFactor

Multiply number of micro‐ops by this factor to normalize it relative to other resources.

getNumMicroOps

Return the number of issue slots required for this MI.

getNumProcResourceKinds

Get the number of kinds of resources for this target.

getProcResource

Get a processor resource by ID for convenience.

getProcessorID

Identify the processor corresponding to the current subtarget.

getResourceBufferSize

Return the original buffer size for a processor resource.

getResourceFactor

Multiply the number of units consumed for a resource by this factor to normalize it relative to other resources.

getResourceName

Return the name of the processor resource with the given index.

getSubtargetInfo

TargetSubtargetInfo getter.

getWriteProcResBegin

Get an iterator to the first processor resource consumed by this scheduling class.

getWriteProcResEnd

Get an iterator past the last processor resource consumed by this scheduling class.

hasInstrItineraries

Return true if this machine model includes cycle‐to‐cycle itinerary data.

hasInstrSchedModel

Return true if this machine model includes an instruction‐level scheduling model.

hasInstrSchedModelOrItineraries

Return true if this machine model includes an instruction‐level scheduling model or cycle‐to‐cycle itinerary data.

init

Initialize the machine model for instruction scheduling.

mustBeginGroup

Return true if new group must begin.

mustEndGroup

Return true if current group must end.

resolveSchedClass

Return the MCSchedClassDesc for this instruction.

Created with MrDocs