LLVM 21.0.0git
Classes | Macros | Functions | Variables
AMDGPURegBankLegalize.cpp File Reference
#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 RegBankLegalizeRulesgetRules (const GCNSubtarget &ST, MachineRegisterInfo &MRI)
 
static Register getAnySgprS1 (const MachineRegisterInfo &MRI)
 

Variables

 DEBUG_TYPE
 
AMDGPU Register Bank Legalize
 
AMDGPU Register Bank false
 

Macro Definition Documentation

◆ DEBUG_TYPE

#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.

Function Documentation

◆ getAnySgprS1()

static Register getAnySgprS1 ( const MachineRegisterInfo MRI)
static

◆ getRules()

◆ INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( AMDGPURegBankLegalize  ,
DEBUG_TYPE  ,
"AMDGPU Register Bank Legalize"  ,
false  ,
false   
)

Variable Documentation

◆ DEBUG_TYPE

DEBUG_TYPE

Definition at line 75 of file AMDGPURegBankLegalize.cpp.

◆ false

AMDGPU Register Bank false

Definition at line 76 of file AMDGPURegBankLegalize.cpp.

◆ Legalize

AMDGPU Register Bank Legalize

Definition at line 76 of file AMDGPURegBankLegalize.cpp.