LLVM
13.0.0git
|
#include "AMDGPU.h"
#include "GCNSubtarget.h"
#include "MCTargetDesc/AMDGPUMCTargetDesc.h"
#include "SIMachineFunctionInfo.h"
#include "llvm/CodeGen/LiveIntervals.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 (SILowerSGPRSpills, DEBUG_TYPE, "SI lower SGPR spill instructions", false, false) INITIALIZE_PASS_END(SILowerSGPRSpills | |
static void | insertCSRSaves (MachineBasicBlock &SaveBlock, ArrayRef< CalleeSavedInfo > CSI, LiveIntervals *LIS) |
Insert restore code for the callee-saved registers used in the function. More... | |
static void | insertCSRRestores (MachineBasicBlock &RestoreBlock, MutableArrayRef< CalleeSavedInfo > CSI, LiveIntervals *LIS) |
Insert restore code for the callee-saved registers used in the function. More... | |
static void | updateLiveness (MachineFunction &MF, ArrayRef< CalleeSavedInfo > CSI) |
static bool | lowerShiftReservedVGPR (MachineFunction &MF, const GCNSubtarget &ST) |
Variables | |
DEBUG_TYPE | |
SI lower SGPR spill | instructions |
SI lower SGPR spill | false |
#define DEBUG_TYPE "si-lower-sgpr-spills" |
Definition at line 28 of file SILowerSGPRSpills.cpp.
using MBBVector = SmallVector<MachineBasicBlock *, 4> |
Definition at line 30 of file SILowerSGPRSpills.cpp.
INITIALIZE_PASS_BEGIN | ( | SILowerSGPRSpills | , |
DEBUG_TYPE | , | ||
"SI lower SGPR spill instructions" | , | ||
false | , | ||
false | |||
) |
|
static |
Insert restore code for the callee-saved registers used in the function.
Definition at line 121 of file SILowerSGPRSpills.cpp.
References assert(), llvm::MachineBasicBlock::begin(), llvm::MachineBasicBlock::getFirstTerminator(), llvm::TargetSubtargetInfo::getFrameLowering(), llvm::TargetSubtargetInfo::getInstrInfo(), llvm::TargetRegisterInfo::getMinimalPhysRegClass(), llvm::MachineBasicBlock::getParent(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), I, llvm::MVT::i32, llvm::LiveIntervals::InsertMachineInstrInMaps(), llvm::HexagonInstrInfo::loadRegFromStackSlot(), Reg, llvm::LiveIntervals::removeAllRegUnitsForPhysReg(), llvm::TargetFrameLowering::restoreCalleeSavedRegisters(), llvm::reverse(), TII, and TRI.
|
static |
Insert restore code for the callee-saved registers used in the function.
Definition at line 81 of file SILowerSGPRSpills.cpp.
References assert(), llvm::MachineInstrSpan::begin(), llvm::TargetSubtargetInfo::getFrameLowering(), llvm::TargetSubtargetInfo::getInstrInfo(), llvm::TargetRegisterInfo::getMinimalPhysRegClass(), llvm::MachineFunction::getRegInfo(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), I, llvm::MVT::i32, llvm::MachineRegisterInfo::isLiveIn(), MRI, Reg, llvm::TargetFrameLowering::spillCalleeSavedRegisters(), llvm::HexagonInstrInfo::storeRegToStackSlot(), TII, and TRI.
|
static |
Definition at line 249 of file SILowerSGPRSpills.cpp.
References llvm::MachineBasicBlock::addLiveIn(), assert(), llvm::MachineFrameInfo::CreateSpillStackObject(), llvm::find_if(), llvm::MachineRegisterInfo::getCalleeSavedRegs(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getInfo(), llvm::MachineFunction::getRegInfo(), llvm::SIMachineFunctionInfo::getSGPRSpillVGPRs(), Index, llvm::SIMachineFunctionInfo::isCalleeSavedReg(), llvm::Register::isValid(), MBB, llvm::SIMachineFunctionInfo::setSGPRSpillVGPRs(), llvm::MachineBasicBlock::sortUniqueLiveIns(), llvm::ARM_MB::ST, TRI, and llvm::SIMachineFunctionInfo::VGPRReservedForSGPRSpill.
|
static |
Definition at line 189 of file SILowerSGPRSpills.cpp.
References llvm::MachineBasicBlock::addLiveIn(), llvm::MachineFunction::front(), and llvm::MachineBasicBlock::sortUniqueLiveIns().
DEBUG_TYPE |
Definition at line 75 of file SILowerSGPRSpills.cpp.
Definition at line 76 of file SILowerSGPRSpills.cpp.
Definition at line 76 of file SILowerSGPRSpills.cpp.