This class represents the scheduled code. The main data structure is a map from scheduled cycle to instructions. During scheduling, the data structure explicitly represents all stages/iterations. When the algorithm finshes, the schedule is collapsed into a single stage, which represents instructions from different loop iterations.

Synopsis

Declared in <llvm/CodeGen/MachinePipeliner.h>

class SMSchedule;

Description

The SMS algorithm allows negative values for cycles, so the first cycle in the schedule is the smallest cycle value.

Type Aliases

Name

Description

const_sched_iterator

sched_iterator

Iterators for the cycle to instruction map.

Member Functions

Name

Description

SMSchedule [constructor]

Constructor

computeStart

computeUnpipelineableNodes

cycleScheduled

Return the cycle for a scheduled instruction. This function normalizes the first cycle to be 0.

dump

finalizeSchedule

getFinalCycle

Return the last cycle in the finalized schedule.

getFirstCycle

Return the first cycle in the completed schedule. This can be a negative value.

getInitiationInterval

Return the initiation interval for this schedule.

getInstructions

Return the instructions that are scheduled at the specified cycle.

getMaxStageCount

Return the maximum stage count needed for this schedule.

insert

isLoopCarried

isLoopCarriedDefOfUse

isScheduledAtStage

Return true if the instruction is scheduled at the specified stage.

isValidSchedule

normalizeNonPipelinedInstructions

onlyHasLoopCarriedOutputOrOrderPreds

orderDependence

print

reorderInstructions

reset

setInitiationInterval

Set the initiation interval for this schedule.

stageScheduled

Return the stage for a scheduled instruction. Return ‐1 if the instruction has not been scheduled.

Created with MrDocs