diff --git a/llvm/lib/CodeGen/CodeGenPrepare.cpp b/llvm/lib/CodeGen/CodeGenPrepare.cpp index 1bbd1b6f71b14..0cc9fb88b4293 100644 --- a/llvm/lib/CodeGen/CodeGenPrepare.cpp +++ b/llvm/lib/CodeGen/CodeGenPrepare.cpp @@ -834,9 +834,8 @@ bool CodeGenPrepare::eliminateFallThrough(Function &F, DominatorTree *DT) { // Scan all of the blocks in the function, except for the entry block. // Use a temporary array to avoid iterator being invalidated when // deleting blocks. - SmallVector Blocks; - for (auto &Block : llvm::drop_begin(F)) - Blocks.push_back(&Block); + SmallVector Blocks( + llvm::make_pointer_range(llvm::drop_begin(F))); SmallSet Preds; for (auto &Block : Blocks) { diff --git a/llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp b/llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp index dbc838a3782ca..333f0c17bacc5 100644 --- a/llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp +++ b/llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp @@ -867,9 +867,8 @@ void CombinerHelper::applyCombineExtendingLoads( // Rewrite all the uses to fix up the types. auto &LoadValue = MI.getOperand(0); - SmallVector Uses; - for (auto &UseMO : MRI.use_operands(LoadValue.getReg())) - Uses.push_back(&UseMO); + SmallVector Uses( + llvm::make_pointer_range(MRI.use_operands(LoadValue.getReg()))); for (auto *UseMO : Uses) { MachineInstr *UseMI = UseMO->getParent(); diff --git a/llvm/lib/CodeGen/MachineInstr.cpp b/llvm/lib/CodeGen/MachineInstr.cpp index 7e4a32f67fe6a..33910d0ec6aeb 100644 --- a/llvm/lib/CodeGen/MachineInstr.cpp +++ b/llvm/lib/CodeGen/MachineInstr.cpp @@ -2442,9 +2442,8 @@ static const DIExpression *computeExprForSpill( static const DIExpression *computeExprForSpill(const MachineInstr &MI, Register SpillReg) { assert(MI.hasDebugOperandForReg(SpillReg) && "Spill Reg is not used in MI."); - SmallVector SpillOperands; - for (const MachineOperand &Op : MI.getDebugOperandsForReg(SpillReg)) - SpillOperands.push_back(&Op); + SmallVector SpillOperands( + llvm::make_pointer_range(MI.getDebugOperandsForReg(SpillReg))); return computeExprForSpill(MI, SpillOperands); } diff --git a/llvm/lib/CodeGen/RegAllocFast.cpp b/llvm/lib/CodeGen/RegAllocFast.cpp index 857cf85a8acbc..bb118dd9e1867 100644 --- a/llvm/lib/CodeGen/RegAllocFast.cpp +++ b/llvm/lib/CodeGen/RegAllocFast.cpp @@ -1733,9 +1733,8 @@ void RegAllocFastImpl::handleDebugValue(MachineInstr &MI) { // See if this virtual register has already been allocated to a physical // register or spilled to a stack slot. LiveRegMap::iterator LRI = findLiveVirtReg(Reg); - SmallVector DbgOps; - for (MachineOperand &Op : MI.getDebugOperandsForReg(Reg)) - DbgOps.push_back(&Op); + SmallVector DbgOps( + llvm::make_pointer_range(MI.getDebugOperandsForReg(Reg))); if (LRI != LiveVirtRegs.end() && LRI->PhysReg) { // Update every use of Reg within MI. diff --git a/llvm/lib/CodeGen/RegisterUsageInfo.cpp b/llvm/lib/CodeGen/RegisterUsageInfo.cpp index 6a3e34be6d391..7a4628a6e91d4 100644 --- a/llvm/lib/CodeGen/RegisterUsageInfo.cpp +++ b/llvm/lib/CodeGen/RegisterUsageInfo.cpp @@ -72,11 +72,9 @@ PhysicalRegisterUsageInfo::getRegUsageInfo(const Function &FP) { void PhysicalRegisterUsageInfo::print(raw_ostream &OS, const Module *M) const { using FuncPtrRegMaskPair = std::pair>; - SmallVector FPRMPairVector; - // Create a vector of pointer to RegMasks entries - for (const auto &RegMask : RegMasks) - FPRMPairVector.push_back(&RegMask); + SmallVector FPRMPairVector( + llvm::make_pointer_range(RegMasks)); // sort the vector to print analysis in alphabatic order of function name. llvm::sort(