31 #define DEBUG_TYPE "si-fix-cf-live-intervals"
46 const char *getPassName()
const override {
47 return "SI Fix CF Live Intervals";
60 "SI Fix CF Live Intervals",
false,
false)
65 char SIFixControlFlowLiveIntervals::
ID = 0;
70 return new SIFixControlFlowLiveIntervals();
73 bool SIFixControlFlowLiveIntervals::runOnMachineFunction(
MachineFunction &MF) {
78 switch (
MI.getOpcode()) {
81 case AMDGPU::SI_BREAK:
82 case AMDGPU::SI_IF_BREAK:
83 case AMDGPU::SI_ELSE_BREAK:
84 case AMDGPU::SI_END_CF: {
85 unsigned Reg =
MI.getOperand(0).getReg();
Interface definition for SIRegisterInfo.
static PassRegistry * getPassRegistry()
getPassRegistry - Access the global registry object, which is automatically initialized at applicatio...
AnalysisUsage & addRequired()
#define INITIALIZE_PASS_DEPENDENCY(depName)
MachineFunctionPass - This class adapts the FunctionPass interface to allow convenient creation of pa...
#define INITIALIZE_PASS_END(passName, arg, name, cfg, analysis)
Reg
All possible values of the reg field in the ModR/M byte.
char & SIFixControlFlowLiveIntervalsID
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - Subclasses that override getAnalysisUsage must call this.
Represent the analysis usage information of a pass.
FunctionPass class - This class is used to implement most global optimizations.
INITIALIZE_PASS_BEGIN(SIFixControlFlowLiveIntervals, DEBUG_TYPE,"SI Fix CF Live Intervals", false, false) INITIALIZE_PASS_END(SIFixControlFlowLiveIntervals
void markNotSpillable()
markNotSpillable - Mark interval as not spillable
LiveInterval & getInterval(unsigned Reg)
void setPreservesAll()
Set by analyses that do not transform their input at all.
Representation of each machine instruction.
Interface definition for SIInstrInfo.
void initializeSIFixControlFlowLiveIntervalsPass(PassRegistry &)
FunctionPass * createSIFixControlFlowLiveIntervalsPass()