LLVM 20.0.0git
|
#include "llvm/CodeGen/MachinePipeliner.h"
Public Member Functions | |
ResourceManager (const TargetSubtargetInfo *ST, ScheduleDAGInstrs *DAG) | |
void | initProcResourceVectors (const MCSchedModel &SM, SmallVectorImpl< uint64_t > &Masks) |
bool | canReserveResources (SUnit &SU, int Cycle) |
Check if the resources occupied by a machine instruction are available in the current state. | |
void | reserveResources (SUnit &SU, int Cycle) |
Reserve the resources occupied by a machine instruction and change the current state to reflect that change. | |
int | calculateResMII () const |
void | init (int II) |
Initialize resources with the initiation interval II. | |
Definition at line 485 of file MachinePipeliner.h.
|
inline |
Definition at line 535 of file MachinePipeliner.h.
References initProcResourceVectors(), llvm::SwpForceIssueWidth, and TII.
int ResourceManager::calculateResMII | ( | ) | const |
Definition at line 3668 of file MachinePipeliner.cpp.
References llvm::dbgs(), llvm::ScheduleDAGInstrs::dumpNode(), llvm::SUnit::getInstr(), llvm::MCSchedModel::getNumProcResourceKinds(), llvm::MachineInstr::getOpcode(), llvm::MCSchedModel::getProcResource(), llvm::ScheduleDAGInstrs::getSchedClass(), llvm::MCSubtargetInfo::getWriteProcResBegin(), llvm::MCSubtargetInfo::getWriteProcResEnd(), I, llvm::MCSchedClassDesc::isValid(), llvm::TargetInstrInfo::isZeroCost(), LLVM_DEBUG, llvm::make_range(), llvm::MCSchedClassDesc::NumMicroOps, llvm::ScheduleDAG::SUnits, and SwpDebugResource.
Check if the resources occupied by a machine instruction are available in the current state.
Definition at line 3513 of file MachinePipeliner.cpp.
References llvm::dbgs(), llvm::MachineInstr::getDesc(), llvm::SUnit::getInstr(), llvm::ScheduleDAGInstrs::getSchedClass(), llvm::MachineInstr::isPseudo(), llvm::MCSchedClassDesc::isValid(), LLVM_DEBUG, and SwpDebugResource.
Referenced by llvm::SMSchedule::insert().
void ResourceManager::init | ( | int | II | ) |
Initialize resources with the initiation interval II.
Definition at line 3743 of file MachinePipeliner.cpp.
References llvm::SmallVectorImpl< T >::clear(), llvm::MCSchedModel::getNumProcResourceKinds(), I, II, and llvm::SmallVectorImpl< T >::resize().
Referenced by llvm::SMSchedule::setInitiationInterval().
void ResourceManager::initProcResourceVectors | ( | const MCSchedModel & | SM, |
SmallVectorImpl< uint64_t > & | Masks | ||
) |
Definition at line 3471 of file MachinePipeliner.cpp.
References assert(), llvm::dbgs(), llvm::format(), llvm::MCSchedModel::getNumProcResourceKinds(), llvm::MCSchedModel::getProcResource(), I, LLVM_DEBUG, llvm::MCProcResourceDesc::Name, llvm::MCProcResourceDesc::NumUnits, llvm::SmallVectorImpl< T >::resize(), and SwpShowResMask.
Referenced by ResourceManager().
void ResourceManager::reserveResources | ( | SUnit & | SU, |
int | Cycle | ||
) |
Reserve the resources occupied by a machine instruction and change the current state to reflect that change.
Definition at line 3539 of file MachinePipeliner.cpp.
References llvm::dbgs(), llvm::MachineInstr::getDesc(), llvm::SUnit::getInstr(), llvm::ScheduleDAGInstrs::getSchedClass(), llvm::MachineInstr::isPseudo(), llvm::MCSchedClassDesc::isValid(), LLVM_DEBUG, and SwpDebugResource.