LLVM 21.0.0git
|
#include "AMDGPU.h"
#include "AMDGPUGlobalISelUtils.h"
#include "AMDGPURegBankLegalizeHelper.h"
#include "GCNSubtarget.h"
#include "llvm/CodeGen/GlobalISel/CSEInfo.h"
#include "llvm/CodeGen/GlobalISel/CSEMIRBuilder.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineUniformityAnalysis.h"
#include "llvm/CodeGen/TargetPassConfig.h"
#include "llvm/InitializePasses.h"
Go to the source code of this file.
Classes | |
class | AMDGPURegBankLegalizeCombiner |
Macros | |
#define | DEBUG_TYPE "amdgpu-regbanklegalize" |
Lower G_ instructions that can't be inst-selected with register bank assignment from AMDGPURegBankSelect based on machine uniformity info. | |
Functions | |
INITIALIZE_PASS_BEGIN (AMDGPURegBankLegalize, DEBUG_TYPE, "AMDGPU Register Bank Legalize", false, false) INITIALIZE_PASS_END(AMDGPURegBankLegalize | |
const RegBankLegalizeRules & | getRules (const GCNSubtarget &ST, MachineRegisterInfo &MRI) |
static Register | getAnySgprS1 (const MachineRegisterInfo &MRI) |
Variables | |
DEBUG_TYPE | |
AMDGPU Register Bank | Legalize |
AMDGPU Register Bank | false |
#define DEBUG_TYPE "amdgpu-regbanklegalize" |
Lower G_ instructions that can't be inst-selected with register bank assignment from AMDGPURegBankSelect based on machine uniformity info.
Given types on all operands, some register bank assignments require lowering while others do not. Note: cases where all register bank assignments would require lowering are lowered in legalizer. For example vgpr S64 G_AND requires lowering to S32 while sgpr S64 does not. Eliminate sgpr S1 by lowering to sgpr S32.
Definition at line 31 of file AMDGPURegBankLegalize.cpp.
|
static |
Definition at line 237 of file AMDGPURegBankLegalize.cpp.
References llvm::dbgs(), llvm::dump(), llvm::RegisterBank::getID(), llvm::Register::index2VirtReg(), LLVM_DEBUG, MRI, S1, and llvm::LLT::scalar().
const RegBankLegalizeRules & getRules | ( | const GCNSubtarget & | ST, |
MachineRegisterInfo & | MRI | ||
) |
Definition at line 86 of file AMDGPURegBankLegalize.cpp.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::contains(), and MRI.
INITIALIZE_PASS_BEGIN | ( | AMDGPURegBankLegalize | , |
DEBUG_TYPE | , | ||
"AMDGPU Register Bank Legalize" | , | ||
false | , | ||
false | |||
) |
DEBUG_TYPE |
Definition at line 75 of file AMDGPURegBankLegalize.cpp.
AMDGPU Register Bank false |
Definition at line 76 of file AMDGPURegBankLegalize.cpp.
AMDGPU Register Bank Legalize |
Definition at line 76 of file AMDGPURegBankLegalize.cpp.