|
LLVM 23.0.0git
|
This file implements the GCNRegPressure class. More...
#include "GCNRegPressure.h"#include "AMDGPU.h"#include "SIMachineFunctionInfo.h"#include "llvm/CodeGen/MachineLoopInfo.h"#include "llvm/CodeGen/RegisterPressure.h"Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "machine-scheduler" |
| #define | PFX " " |
Variables | |
| static cl::opt< bool > | UseDownwardTracker ("amdgpu-print-rp-downward", cl::desc("Use GCNDownwardRPTracker for GCNRegPressurePrinter pass"), cl::init(false), cl::Hidden) |
This file implements the GCNRegPressure class.
Definition in file GCNRegPressure.cpp.
| #define DEBUG_TYPE "machine-scheduler" |
Definition at line 22 of file GCNRegPressure.cpp.
| #define PFX " " |
Referenced by llvm::GCNRegPressurePrinter::runOnMachineFunction(), and llvm::AMDGPULibFunc::setPrefix().
|
static |
Definition at line 279 of file GCNRegPressure.cpp.
References llvm::SmallVectorImpl< T >::emplace_back(), llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::find_if(), llvm::SlotIndex::getBaseIndex(), llvm::LiveIntervals::getInstructionIndex(), llvm::LiveIntervals::getInterval(), llvm::getLiveLaneMask(), llvm::MachineRegisterInfo::getMaxLaneMaskForVReg(), llvm::LaneBitmask::getNone(), llvm::MachineRegisterInfo::getTargetRegisterInfo(), I, MI, P, Reg, and TRI.
Referenced by llvm::GCNUpwardRPTracker::recede().
|
static |
Mostly copy/paste from CodeGen/RegisterPressure.cpp Helper to find a vreg use between two indices {PriorUseIdx, NextUseIdx}.
The query starts with a lane bitmask which gets lanes/bits removed for every use we find.
Definition at line 345 of file GCNRegPressure.cpp.
References llvm::LiveIntervals::getInstructionIndex(), llvm::LaneBitmask::getNone(), llvm::SlotIndex::getRegSlot(), InRange(), MI, llvm::LaneBitmask::none(), Reg, TRI, and llvm::MachineRegisterInfo::use_nodbg_operands().
|
static |
Definition at line 266 of file GCNRegPressure.cpp.
References assert(), llvm::MachineRegisterInfo::getMaxLaneMaskForVReg(), llvm::MachineOperand::getReg(), llvm::MachineOperand::getSubReg(), llvm::TargetRegisterInfo::getSubRegIndexLaneMask(), llvm::MachineRegisterInfo::getTargetRegisterInfo(), llvm::MachineOperand::isDef(), llvm::MachineOperand::isReg(), and llvm::Register::isVirtual().
Referenced by llvm::GCNDownwardRPTracker::advanceToNext(), and llvm::GCNUpwardRPTracker::recede().
|
static |
Mostly copy/paste from CodeGen/RegisterPressure.cpp.
Definition at line 321 of file GCNRegPressure.cpp.
References assert(), llvm::LiveIntervals::getInterval(), llvm::LiveInterval::hasSubRanges(), Reg, and llvm::LiveInterval::subranges().
|
static |
Definition at line 877 of file GCNRegPressure.cpp.
References const, llvm::LiveRange::Segment::contains(), getRegLiveThroughMask(), llvm::LiveRange::getSegmentContaining(), llvm::LiveInterval::hasSubRanges(), and Reg.
Referenced by getRegLiveThroughMask(), and llvm::GCNRegPressurePrinter::runOnMachineFunction().
|
static |
Referenced by llvm::GCNRegPressurePrinter::runOnMachineFunction().