diff options
Diffstat (limited to 'contrib/llvm-project/llvm/lib/Target/AMDGPU/SILowerI1Copies.cpp')
-rw-r--r-- | contrib/llvm-project/llvm/lib/Target/AMDGPU/SILowerI1Copies.cpp | 38 |
1 files changed, 13 insertions, 25 deletions
diff --git a/contrib/llvm-project/llvm/lib/Target/AMDGPU/SILowerI1Copies.cpp b/contrib/llvm-project/llvm/lib/Target/AMDGPU/SILowerI1Copies.cpp index 236a24a02ece..9570680ad9cb 100644 --- a/contrib/llvm-project/llvm/lib/Target/AMDGPU/SILowerI1Copies.cpp +++ b/contrib/llvm-project/llvm/lib/Target/AMDGPU/SILowerI1Copies.cpp @@ -22,20 +22,13 @@ //===----------------------------------------------------------------------===// #include "AMDGPU.h" -#include "AMDGPUSubtarget.h" +#include "GCNSubtarget.h" #include "MCTargetDesc/AMDGPUMCTargetDesc.h" -#include "SIInstrInfo.h" #include "llvm/CodeGen/MachineDominators.h" #include "llvm/CodeGen/MachineFunctionPass.h" -#include "llvm/CodeGen/MachineInstrBuilder.h" #include "llvm/CodeGen/MachinePostDominators.h" -#include "llvm/CodeGen/MachineRegisterInfo.h" #include "llvm/CodeGen/MachineSSAUpdater.h" -#include "llvm/IR/Function.h" -#include "llvm/IR/LLVMContext.h" #include "llvm/InitializePasses.h" -#include "llvm/Support/Debug.h" -#include "llvm/Target/TargetMachine.h" #define DEBUG_TYPE "si-i1-copies" @@ -89,16 +82,15 @@ private: void lowerCopiesFromI1(); void lowerPhis(); void lowerCopiesToI1(); - bool isConstantLaneMask(unsigned Reg, bool &Val) const; + bool isConstantLaneMask(Register Reg, bool &Val) const; void buildMergeLaneMasks(MachineBasicBlock &MBB, MachineBasicBlock::iterator I, const DebugLoc &DL, unsigned DstReg, unsigned PrevReg, unsigned CurReg); MachineBasicBlock::iterator getSaluInsertionAtEnd(MachineBasicBlock &MBB) const; - bool isVreg1(unsigned Reg) const { - return Register::isVirtualRegister(Reg) && - MRI->getRegClass(Reg) == &AMDGPU::VReg_1RegClass; + bool isVreg1(Register Reg) const { + return Reg.isVirtual() && MRI->getRegClass(Reg) == &AMDGPU::VReg_1RegClass; } bool isLaneMaskReg(unsigned Reg) const { @@ -185,10 +177,8 @@ public: } } - if (Divergent && PDT.dominates(&DefBlock, MBB)) { - for (MachineBasicBlock *Succ : MBB->successors()) - Stack.push_back(Succ); - } + if (Divergent && PDT.dominates(&DefBlock, MBB)) + append_range(Stack, MBB->successors()); } while (!Stack.empty()) { @@ -197,8 +187,7 @@ public: continue; ReachableOrdered.push_back(MBB); - for (MachineBasicBlock *Succ : MBB->successors()) - Stack.push_back(Succ); + append_range(Stack, MBB->successors()); } for (MachineBasicBlock *MBB : ReachableOrdered) { @@ -214,7 +203,7 @@ public: ReachableMap[MBB] = true; if (HaveReachablePred) { for (MachineBasicBlock *UnreachablePred : Stack) { - if (llvm::find(Predecessors, UnreachablePred) == Predecessors.end()) + if (!llvm::is_contained(Predecessors, UnreachablePred)) Predecessors.push_back(UnreachablePred); } } @@ -348,7 +337,7 @@ private: if (DomIt != Visited.end() && DomIt->second <= LoopLevel) return true; - if (llvm::find(Blocks, &MBB) != Blocks.end()) + if (llvm::is_contained(Blocks, &MBB)) return true; return false; @@ -658,7 +647,7 @@ void SILowerI1Copies::lowerPhis() { } } - unsigned NewReg = SSAUpdater.GetValueInMiddleOfBlock(&MBB); + Register NewReg = SSAUpdater.GetValueInMiddleOfBlock(&MBB); if (NewReg != DstReg) { MRI->replaceRegWith(NewReg, DstReg); MI->eraseFromParent(); @@ -703,8 +692,7 @@ void SILowerI1Copies::lowerCopiesToI1() { Register SrcReg = MI.getOperand(1).getReg(); assert(!MI.getOperand(1).getSubReg()); - if (!Register::isVirtualRegister(SrcReg) || - (!isLaneMaskReg(SrcReg) && !isVreg1(SrcReg))) { + if (!SrcReg.isVirtual() || (!isLaneMaskReg(SrcReg) && !isVreg1(SrcReg))) { assert(TII->getRegisterInfo().getRegSizeInBits(SrcReg, *MRI) == 32); unsigned TmpReg = createLaneMaskReg(*MF); BuildMI(MBB, MI, DL, TII->get(AMDGPU::V_CMP_NE_U32_e64), TmpReg) @@ -740,7 +728,7 @@ void SILowerI1Copies::lowerCopiesToI1() { } } -bool SILowerI1Copies::isConstantLaneMask(unsigned Reg, bool &Val) const { +bool SILowerI1Copies::isConstantLaneMask(Register Reg, bool &Val) const { const MachineInstr *MI; for (;;) { MI = MRI->getUniqueVRegDef(Reg); @@ -748,7 +736,7 @@ bool SILowerI1Copies::isConstantLaneMask(unsigned Reg, bool &Val) const { break; Reg = MI->getOperand(1).getReg(); - if (!Register::isVirtualRegister(Reg)) + if (!Reg.isVirtual()) return false; if (!isLaneMaskReg(Reg)) return false; |