LLVM 20.0.0git
|
#include "llvm/CodeGen/VLIWMachineScheduler.h"
Public Member Functions | |
VLIWResourceModel (const TargetSubtargetInfo &STI, const TargetSchedModel *SM) | |
VLIWResourceModel & | operator= (const VLIWResourceModel &other)=delete |
VLIWResourceModel (const VLIWResourceModel &other)=delete | |
virtual | ~VLIWResourceModel () |
virtual void | reset () |
virtual bool | hasDependence (const SUnit *SUd, const SUnit *SUu) |
Return true if there is a dependence between SUd and SUu. | |
virtual bool | isResourceAvailable (SUnit *SU, bool IsTop) |
Check if scheduling of this SU is possible in the current packet. | |
virtual bool | reserveResources (SUnit *SU, bool IsTop) |
Keep track of available resources. | |
unsigned | getTotalPackets () const |
size_t | getPacketInstCount () const |
bool | isInPacket (SUnit *SU) const |
Protected Member Functions | |
virtual DFAPacketizer * | createPacketizer (const TargetSubtargetInfo &STI) const |
Protected Attributes | |
const TargetInstrInfo * | TII |
DFAPacketizer * | ResourcesModel |
ResourcesModel - Represents VLIW state. | |
const TargetSchedModel * | SchedModel |
SmallVector< SUnit * > | Packet |
Local packet/bundle model. | |
unsigned | TotalPackets = 0 |
Total packets created. | |
Definition at line 31 of file VLIWMachineScheduler.h.
VLIWResourceModel::VLIWResourceModel | ( | const TargetSubtargetInfo & | STI, |
const TargetSchedModel * | SM | ||
) |
Definition at line 65 of file VLIWMachineScheduler.cpp.
References assert(), llvm::DFAPacketizer::clearResources(), createPacketizer(), llvm::TargetSchedModel::getIssueWidth(), Packet, ResourcesModel, and SchedModel.
|
delete |
|
virtual |
Definition at line 84 of file VLIWMachineScheduler.cpp.
References ResourcesModel.
|
protectedvirtual |
Definition at line 194 of file VLIWMachineScheduler.cpp.
References llvm::TargetInstrInfo::CreateTargetScheduleState(), and llvm::TargetSubtargetInfo::getInstrInfo().
Referenced by VLIWResourceModel().
|
inline |
Definition at line 61 of file VLIWMachineScheduler.h.
References Packet.
|
inline |
Definition at line 60 of file VLIWMachineScheduler.h.
References TotalPackets.
Referenced by llvm::ConvergingVLIWScheduler::reportPackets().
Return true if there is a dependence between SUd and SUu.
Reimplemented in llvm::HexagonVLIWResourceModel.
Definition at line 87 of file VLIWMachineScheduler.cpp.
References llvm::SUnit::Succs.
Referenced by llvm::HexagonVLIWResourceModel::hasDependence(), and isResourceAvailable().
Definition at line 62 of file VLIWMachineScheduler.h.
References llvm::is_contained(), and Packet.
Referenced by llvm::ConvergingVLIWScheduler::SchedulingCost().
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.
Definition at line 108 of file VLIWMachineScheduler.cpp.
References llvm::DFAPacketizer::canReserveResources(), llvm::SUnit::getInstr(), llvm::MachineInstr::getOpcode(), hasDependence(), Packet, and ResourcesModel.
Referenced by reserveResources(), llvm::ConvergingVLIWScheduler::SchedulingCost(), and llvm::HexagonConvergingVLIWScheduler::SchedulingCost().
|
delete |
Keep track of available resources.
Definition at line 145 of file VLIWMachineScheduler.cpp.
References llvm::dbgs(), llvm::dump(), llvm::SUnit::getInstr(), llvm::TargetSchedModel::getIssueWidth(), llvm::MachineInstr::getOpcode(), isResourceAvailable(), LLVM_DEBUG, Packet, llvm::DFAPacketizer::reserveResources(), reset(), ResourcesModel, SchedModel, and TotalPackets.
|
virtual |
Definition at line 79 of file VLIWMachineScheduler.cpp.
References llvm::DFAPacketizer::clearResources(), Packet, and ResourcesModel.
Referenced by reserveResources().
|
protected |
Local packet/bundle model.
Purely internal to the MI scheduler at the time.
Definition at line 44 of file VLIWMachineScheduler.h.
Referenced by getPacketInstCount(), isInPacket(), isResourceAvailable(), reserveResources(), reset(), and VLIWResourceModel().
|
protected |
ResourcesModel - Represents VLIW state.
Not limited to VLIW targets per se, but assumes definition of resource model by a target.
Definition at line 38 of file VLIWMachineScheduler.h.
Referenced by isResourceAvailable(), reserveResources(), reset(), VLIWResourceModel(), and ~VLIWResourceModel().
|
protected |
Definition at line 40 of file VLIWMachineScheduler.h.
Referenced by reserveResources(), and VLIWResourceModel().
|
protected |
Definition at line 33 of file VLIWMachineScheduler.h.
Referenced by llvm::HexagonVLIWResourceModel::hasDependence().
|
protected |
Total packets created.
Definition at line 47 of file VLIWMachineScheduler.h.
Referenced by getTotalPackets(), and reserveResources().