class VLIWResourceModel

Declaration

class VLIWResourceModel { /* full declaration omitted */ };

Declared at: llvm/include/llvm/CodeGen/VLIWMachineScheduler.h:31

Member Variables

protected const llvm::TargetInstrInfo* TII
protected llvm::DFAPacketizer* ResourcesModel
ResourcesModel - Represents VLIW state. Not limited to VLIW targets per se, but assumes definition of resource model by a target.
protected const llvm::TargetSchedModel* SchedModel
protected SmallVector<llvm::SUnit*> Packet
Local packet/bundle model. Purely internal to the MI scheduler at the time.
protected unsigned int TotalPackets = 0
Total packets created.

Method Overview

Methods

VLIWResourceModel(
    const llvm::TargetSubtargetInfo& STI,
    const llvm::TargetSchedModel* SM)

Declared at: llvm/include/llvm/CodeGen/VLIWMachineScheduler.h:50

Parameters

const llvm::TargetSubtargetInfo& STI
const llvm::TargetSchedModel* SM

virtual llvm::DFAPacketizer* createPacketizer(
    const llvm::TargetSubtargetInfo& STI) const

Declared at: llvm/include/llvm/CodeGen/VLIWMachineScheduler.h:64

Parameters

const llvm::TargetSubtargetInfo& STI

size_t getPacketInstCount() const

Declared at: llvm/include/llvm/CodeGen/VLIWMachineScheduler.h:60

unsigned int getTotalPackets() const

Declared at: llvm/include/llvm/CodeGen/VLIWMachineScheduler.h:59

virtual bool hasDependence(const llvm::SUnit* SUd,
                           const llvm::SUnit* SUu)

Description

Return true if there is a dependence between SUd and SUu.

Declared at: llvm/include/llvm/CodeGen/VLIWMachineScheduler.h:56

Parameters

const llvm::SUnit* SUd
const llvm::SUnit* SUu

bool isInPacket(llvm::SUnit* SU) const

Declared at: llvm/include/llvm/CodeGen/VLIWMachineScheduler.h:61

Parameters

llvm::SUnit* SU

virtual bool isResourceAvailable(llvm::SUnit* SU,
                                 bool IsTop)

Description

Check if scheduling of this SU is possible in the current packet. It is _not_ precise (statefull), it is more like another heuristic. Many corner cases are figured empirically.

Declared at: llvm/include/llvm/CodeGen/VLIWMachineScheduler.h:57

Parameters

llvm::SUnit* SU
bool IsTop

virtual bool reserveResources(llvm::SUnit* SU,
                              bool IsTop)

Description

Keep track of available resources.

Declared at: llvm/include/llvm/CodeGen/VLIWMachineScheduler.h:58

Parameters

llvm::SUnit* SU
bool IsTop

virtual void reset()

Declared at: llvm/include/llvm/CodeGen/VLIWMachineScheduler.h:54

virtual ~VLIWResourceModel()

Declared at: llvm/include/llvm/CodeGen/VLIWMachineScheduler.h:52