LLVM 22.0.0git
|
#include "SILowerSGPRSpills.h"
#include "AMDGPU.h"
#include "GCNSubtarget.h"
#include "MCTargetDesc/AMDGPUMCTargetDesc.h"
#include "SIMachineFunctionInfo.h"
#include "llvm/CodeGen/LiveIntervals.h"
#include "llvm/CodeGen/MachineDominators.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/RegisterScavenging.h"
#include "llvm/InitializePasses.h"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "si-lower-sgpr-spills" |
Typedefs | |
using | MBBVector = SmallVector<MachineBasicBlock *, 4> |
Functions | |
INITIALIZE_PASS_BEGIN (SILowerSGPRSpillsLegacy, DEBUG_TYPE, "SI lower SGPR spill instructions", false, false) INITIALIZE_PASS_END(SILowerSGPRSpillsLegacy | |
static bool | isLiveIntoMBB (MCRegister Reg, MachineBasicBlock &MBB, const TargetRegisterInfo *TRI) |
static void | insertCSRSaves (MachineBasicBlock &SaveBlock, ArrayRef< CalleeSavedInfo > CSI, SlotIndexes *Indexes, LiveIntervals *LIS) |
Insert spill code for the callee-saved registers used in the function. | |
static void | insertCSRRestores (MachineBasicBlock &RestoreBlock, MutableArrayRef< CalleeSavedInfo > CSI, SlotIndexes *Indexes, LiveIntervals *LIS) |
Insert restore code for the callee-saved registers used in the function. | |
static void | updateLiveness (MachineFunction &MF, ArrayRef< CalleeSavedInfo > CSI) |
Variables | |
DEBUG_TYPE | |
SI lower SGPR spill | instructions |
SI lower SGPR spill | false |
#define DEBUG_TYPE "si-lower-sgpr-spills" |
Definition at line 31 of file SILowerSGPRSpills.cpp.
using MBBVector = SmallVector<MachineBasicBlock *, 4> |
Definition at line 33 of file SILowerSGPRSpills.cpp.
INITIALIZE_PASS_BEGIN | ( | SILowerSGPRSpillsLegacy | , |
DEBUG_TYPE | , | ||
"SI lower SGPR spill instructions" | , | ||
false | , | ||
false | ) |
References DEBUG_TYPE, and INITIALIZE_PASS_DEPENDENCY.
|
static |
Insert restore code for the callee-saved registers used in the function.
Definition at line 163 of file SILowerSGPRSpills.cpp.
References llvm::MachineBasicBlock::begin(), llvm::MachineBasicBlock::getFirstTerminator(), llvm::TargetSubtargetInfo::getFrameLowering(), llvm::TargetSubtargetInfo::getInstrInfo(), llvm::MachineBasicBlock::getParent(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), I, llvm::SlotIndexes::insertMachineInstrInMaps(), llvm::LiveIntervals::removeAllRegUnitsForPhysReg(), llvm::SlotIndexes::repairIndexesInRange(), llvm::TargetFrameLowering::restoreCalleeSavedRegister(), llvm::TargetFrameLowering::restoreCalleeSavedRegisters(), llvm::reverse(), TII, and TRI.
|
static |
Insert spill code for the callee-saved registers used in the function.
Definition at line 114 of file SILowerSGPRSpills.cpp.
References assert(), llvm::MachineBasicBlock::begin(), llvm::MachineInstrSpan::begin(), llvm::TargetSubtargetInfo::getFrameLowering(), llvm::TargetSubtargetInfo::getInstrInfo(), llvm::MachineBasicBlock::getParent(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), I, llvm::SlotIndexes::insertMachineInstrInMaps(), isLiveIntoMBB(), Reg, llvm::LiveIntervals::removeAllRegUnitsForPhysReg(), llvm::SlotIndexes::repairIndexesInRange(), llvm::TargetFrameLowering::spillCalleeSavedRegisters(), TII, and TRI.
|
static |
Definition at line 103 of file SILowerSGPRSpills.cpp.
References const, isLiveIntoMBB(), MBB, Reg, and TRI.
Referenced by insertCSRSaves(), and isLiveIntoMBB().
|
static |
Definition at line 240 of file SILowerSGPRSpills.cpp.
References llvm::MachineBasicBlock::addLiveIn(), llvm::MachineFunction::front(), and llvm::MachineBasicBlock::sortUniqueLiveIns().
DEBUG_TYPE |
Definition at line 98 of file SILowerSGPRSpills.cpp.
SI lower SGPR spill false |
Definition at line 99 of file SILowerSGPRSpills.cpp.
SI lower SGPR spill instructions |
Definition at line 99 of file SILowerSGPRSpills.cpp.