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
- public VLIWResourceModel(const llvm::TargetSubtargetInfo & STI, const llvm::TargetSchedModel * SM)
- protected virtual llvm::DFAPacketizer * createPacketizer(const llvm::TargetSubtargetInfo & STI) const
- public size_t getPacketInstCount() const
- public unsigned int getTotalPackets() const
- public virtual bool hasDependence(const llvm::SUnit * SUd, const llvm::SUnit * SUu)
- public bool isInPacket(llvm::SUnit * SU) const
- public virtual bool isResourceAvailable(llvm::SUnit * SU, bool IsTop)
- public virtual bool reserveResources(llvm::SUnit * SU, bool IsTop)
- public virtual void reset()
- public virtual ~VLIWResourceModel()
Methods
¶VLIWResourceModel(
const llvm::TargetSubtargetInfo& STI,
const llvm::TargetSchedModel* SM)
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
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
size_t getPacketInstCount() const
Declared at: llvm/include/llvm/CodeGen/VLIWMachineScheduler.h:60
¶unsigned int getTotalPackets() const
unsigned int getTotalPackets() const
Declared at: llvm/include/llvm/CodeGen/VLIWMachineScheduler.h:59
¶virtual bool hasDependence(const llvm::SUnit* SUd,
const llvm::SUnit* SUu)
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
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)
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)
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()
virtual void reset()
Declared at: llvm/include/llvm/CodeGen/VLIWMachineScheduler.h:54
¶virtual ~VLIWResourceModel()
virtual ~VLIWResourceModel()
Declared at: llvm/include/llvm/CodeGen/VLIWMachineScheduler.h:52