Changeset View
Changeset View
Standalone View
Standalone View
llvm/include/llvm/CodeGen/ReachingDefAnalysis.h
Show First 20 Lines • Show All 104 Lines • ▼ Show 20 Lines | public: | ||||
/// Return whether A and B use the same def of PhysReg. | /// Return whether A and B use the same def of PhysReg. | ||||
bool hasSameReachingDef(MachineInstr *A, MachineInstr *B, int PhysReg); | bool hasSameReachingDef(MachineInstr *A, MachineInstr *B, int PhysReg); | ||||
/// Return whether the given register is used after MI, whether it's a local | /// Return whether the given register is used after MI, whether it's a local | ||||
/// use or a live out. | /// use or a live out. | ||||
bool isRegUsedAfter(MachineInstr *MI, int PhysReg); | bool isRegUsedAfter(MachineInstr *MI, int PhysReg); | ||||
/// Provides the first instruction before MI that uses PhysReg | |||||
MachineInstr *getInstWithUseBefore(MachineInstr *MI, int PhysReg); | |||||
/// Provides all instructions before MI that uses PhysReg | |||||
void getAllInstWithUseBefore(MachineInstr *MI, int PhysReg, | |||||
SmallVectorImpl<MachineInstr*> &Uses); | |||||
/// Provides the clearance - the number of instructions since the closest | /// Provides the clearance - the number of instructions since the closest | ||||
/// reaching def instuction of PhysReg that reaches MI. | /// reaching def instuction of PhysReg that reaches MI. | ||||
int getClearance(MachineInstr *MI, MCPhysReg PhysReg); | int getClearance(MachineInstr *MI, MCPhysReg PhysReg); | ||||
/// Provides the uses, in the same block as MI, of register that MI defines. | /// Provides the uses, in the same block as MI, of register that MI defines. | ||||
/// This does not consider live-outs. | /// This does not consider live-outs. | ||||
void getReachingLocalUses(MachineInstr *MI, int PhysReg, | void getReachingLocalUses(MachineInstr *MI, int PhysReg, | ||||
SmallVectorImpl<MachineInstr*> &Uses); | SmallVectorImpl<MachineInstr*> &Uses); | ||||
Show All 23 Lines |