|
LLVM 22.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/GlobalISel/GenericMachineInstrs.h"#include "llvm/CodeGen/GlobalISel/MIPatternMatch.h"#include "llvm/CodeGen/GlobalISel/Utils.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 34 of file AMDGPURegBankLegalize.cpp.
|
static |
Definition at line 366 of file AMDGPURegBankLegalize.cpp.
References llvm::dbgs(), llvm::dump(), llvm::RegisterBank::getID(), llvm::Register::index2VirtReg(), LLVM_DEBUG, MRI, Reg, S1, and llvm::LLT::scalar().
| const RegBankLegalizeRules & getRules | ( | const GCNSubtarget & | ST, |
| MachineRegisterInfo & | MRI ) |
Definition at line 94 of file AMDGPURegBankLegalize.cpp.
References MRI, and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::try_emplace().
| INITIALIZE_PASS_BEGIN | ( | AMDGPURegBankLegalize | , |
| DEBUG_TYPE | , | ||
| "AMDGPU Register Bank Legalize" | , | ||
| false | , | ||
| false | ) |
References DEBUG_TYPE, and INITIALIZE_PASS_DEPENDENCY.
| DEBUG_TYPE |
Definition at line 83 of file AMDGPURegBankLegalize.cpp.
| AMDGPU Register Bank false |
Definition at line 84 of file AMDGPURegBankLegalize.cpp.
| AMDGPU Register Bank Legalize |
Definition at line 84 of file AMDGPURegBankLegalize.cpp.