21#define DEBUG_TYPE "regbankselect"
31 return "AMDGPURegBankSelect";
42 "AMDGPU Register Bank Select",
false,
false)
50 if (MF.getProperties().hasProperty(
54 LLVM_DEBUG(
dbgs() <<
"Assign register banks for: " << MF.getName() <<
'\n');
56 Mode SaveOptMode = OptMode;
61 assert(checkFunctionIsLegal(MF));
65 getAnalysis<MachineCycleInfoWrapperPass>().getCycleInfo();
67 getAnalysis<MachineDominatorTreeWrapperPass>().getDomTree();
71 !ST.isSingleLaneExecution(
F));
74 assignRegisterBanks(MF);
76 OptMode = SaveOptMode;
amdgpu AMDGPU Register Bank Select
AMD GCN specific subclass of TargetSubtarget.
#define INITIALIZE_PASS_DEPENDENCY(depName)
#define INITIALIZE_PASS_END(passName, arg, name, cfg, analysis)
#define INITIALIZE_PASS_BEGIN(passName, arg, name, cfg, analysis)
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - This function should be overriden by passes that need analysis information to do t...
StringRef getPassName() const override
getPassName - Return a nice clean name for a pass.
AMDGPURegBankSelect(Mode RunningMode=Fast)
Represent the analysis usage information of a pass.
AnalysisUsage & addRequired()
Legacy analysis pass which computes a MachineCycleInfo.
Analysis pass which computes a MachineDominatorTree.
DominatorTree Class - Concrete subclass of DominatorTreeBase that is used to compute a normal dominat...
MachineDominatorTree & getBase()
This pass implements the reg bank selector pass used in the GlobalISel pipeline.
Mode
List of the modes supported by the RegBankSelect pass.
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - This function should be overriden by passes that need analysis information to do t...
Wrapper class representing virtual and physical registers.
StringRef - Represent a constant reference to a string, i.e.
This is an optimization pass for GlobalISel generic memory operations.
raw_ostream & dbgs()
dbgs() - This returns a reference to a raw_ostream for debugging messages.
MachineUniformityInfo computeMachineUniformityInfo(MachineFunction &F, const MachineCycleInfo &cycleInfo, const MachineDominatorTree &domTree, bool HasBranchDivergence)
Compute uniformity information for a Machine IR function.