<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jul 24, 2015, at 2:22 PM, David Blaikie <<a href="mailto:dblaikie@gmail.com" class="">dblaikie@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><br class=""><div class="gmail_extra"><br class=""><div class="gmail_quote">On Fri, Jul 24, 2015 at 2:13 PM, Pete Cooper <span dir="ltr" class=""><<a href="mailto:peter_cooper@apple.com" target="_blank" class="">peter_cooper@apple.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: pete<br class="">
Date: Fri Jul 24 16:13:43 2015<br class="">
New Revision: 243163<br class="">
<br class="">
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D243163-26view-3Drev&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=iwUOZqV7zo12Cqhh86N-Dq1saNmSe-bKAo5NyeZAYfs&s=r8cI-N9iR-c2__CHkEgvIREXX6kijlu9Lr1iXVRQnFE&e=" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project?rev=243163&view=rev</a><br class="">
Log:<br class="">
Use make_range(rbegin(), rend()) to allow foreach loops.  NFC.<br class="">
<br class="">
Instead of the pattern<br class="">
<br class="">
for (auto I = x.rbegin(), E = x.end(); I != E; ++I)<br class="">
<br class="">
we can use make_range to construct the reverse range and iterate using<br class="">
that instead.<br class=""></blockquote><div class=""><br class=""></div><div class="">Could have some range adapters here:<br class=""></div></div></div></div></div></blockquote>Not a bad idea.  There’s more than a few of these as you can see.  I haven’t even fixed them all.<br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="gmail_extra"><div class="gmail_quote"><div class=""><br class="">  for (... : reverse(x))<br class=""><br class="">Which, if it's extra smart - would use rbegin/rend if available, otherwise would construct std::reverse_iterators around the begin/end.</div></div></div></div></div></blockquote>Yeah, sounds good.  I think thats how foreach works on begin/end anyway, so i see where you got the idea from.</div><div><br class=""></div><div>Will follow up with that in another patch, probably sometime next week at this point, unless i find time this afternoon.</div><div><br class=""></div><div>Pete<br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="gmail_extra"><div class="gmail_quote"><div class=""> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br class="">
Modified:<br class="">
    llvm/trunk/lib/CodeGen/AsmPrinter/ARMException.cpp<br class="">
    llvm/trunk/lib/CodeGen/AsmPrinter/DwarfUnit.cpp<br class="">
    llvm/trunk/lib/CodeGen/AsmPrinter/EHStreamer.cpp<br class="">
    llvm/trunk/lib/CodeGen/DeadMachineInstructionElim.cpp<br class="">
    llvm/trunk/lib/CodeGen/ExecutionDepsFix.cpp<br class="">
    llvm/trunk/lib/IR/AsmWriter.cpp<br class="">
    llvm/trunk/lib/Target/AArch64/AArch64A53Fix835769.cpp<br class="">
    llvm/trunk/lib/Transforms/Scalar/Float2Int.cpp<br class="">
    llvm/trunk/lib/Transforms/Scalar/LoopDistribute.cpp<br class="">
    llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp<br class="">
<br class="">
Modified: llvm/trunk/lib/CodeGen/AsmPrinter/ARMException.cpp<br class="">
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_CodeGen_AsmPrinter_ARMException.cpp-3Frev-3D243163-26r1-3D243162-26r2-3D243163-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=iwUOZqV7zo12Cqhh86N-Dq1saNmSe-bKAo5NyeZAYfs&s=y9Ud13KjeLlqk_0qiWvE3M5WJdiAMUhEi3qko7GrSxs&e=" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/ARMException.cpp?rev=243163&r1=243162&r2=243163&view=diff</a><br class="">
==============================================================================<br class="">
--- llvm/trunk/lib/CodeGen/AsmPrinter/ARMException.cpp (original)<br class="">
+++ llvm/trunk/lib/CodeGen/AsmPrinter/ARMException.cpp Fri Jul 24 16:13:43 2015<br class="">
@@ -115,9 +115,8 @@ void ARMException::emitTypeInfos(unsigne<br class="">
     Entry = TypeInfos.size();<br class="">
   }<br class="">
<br class="">
-  for (std::vector<const GlobalValue *>::const_reverse_iterator<br class="">
-         I = TypeInfos.rbegin(), E = TypeInfos.rend(); I != E; ++I) {<br class="">
-    const GlobalValue *GV = *I;<br class="">
+  for (const GlobalValue *GV : make_range(TypeInfos.rbegin(),<br class="">
+                                          TypeInfos.rend())) {<br class="">
     if (VerboseAsm)<br class="">
       Asm->OutStreamer->AddComment("TypeInfo " + Twine(Entry--));<br class="">
     Asm->EmitTTypeReference(GV, TTypeEncoding);<br class="">
<br class="">
Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfUnit.cpp<br class="">
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_CodeGen_AsmPrinter_DwarfUnit.cpp-3Frev-3D243163-26r1-3D243162-26r2-3D243163-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=iwUOZqV7zo12Cqhh86N-Dq1saNmSe-bKAo5NyeZAYfs&s=rcQaQFbDy0uqHpJaz2UMiA65UDQ8P4lB3iE6bponNfo&e=" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfUnit.cpp?rev=243163&r1=243162&r2=243163&view=diff</a><br class="">
==============================================================================<br class="">
--- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfUnit.cpp (original)<br class="">
+++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfUnit.cpp Fri Jul 24 16:13:43 2015<br class="">
@@ -804,8 +804,7 @@ std::string DwarfUnit::getParentContextS<br class="">
<br class="">
   // Reverse iterate over our list to go from the outermost construct to the<br class="">
   // innermost.<br class="">
-  for (auto I = Parents.rbegin(), E = Parents.rend(); I != E; ++I) {<br class="">
-    const DIScope *Ctx = *I;<br class="">
+  for (const DIScope *Ctx : make_range(Parents.rbegin(), Parents.rend())) {<br class="">
     StringRef Name = Ctx->getName();<br class="">
     if (Name.empty() && isa<DINamespace>(Ctx))<br class="">
       Name = "(anonymous namespace)";<br class="">
<br class="">
Modified: llvm/trunk/lib/CodeGen/AsmPrinter/EHStreamer.cpp<br class="">
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_CodeGen_AsmPrinter_EHStreamer.cpp-3Frev-3D243163-26r1-3D243162-26r2-3D243163-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=iwUOZqV7zo12Cqhh86N-Dq1saNmSe-bKAo5NyeZAYfs&s=BeV1e1ZVEv4mZlsc7b-tX8ScUHWtazMCze8LY-ZIFoE&e=" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/EHStreamer.cpp?rev=243163&r1=243162&r2=243163&view=diff</a><br class="">
==============================================================================<br class="">
--- llvm/trunk/lib/CodeGen/AsmPrinter/EHStreamer.cpp (original)<br class="">
+++ llvm/trunk/lib/CodeGen/AsmPrinter/EHStreamer.cpp Fri Jul 24 16:13:43 2015<br class="">
@@ -662,9 +662,8 @@ void EHStreamer::emitTypeInfos(unsigned<br class="">
     Entry = TypeInfos.size();<br class="">
   }<br class="">
<br class="">
-  for (std::vector<const GlobalValue *>::const_reverse_iterator<br class="">
-         I = TypeInfos.rbegin(), E = TypeInfos.rend(); I != E; ++I) {<br class="">
-    const GlobalValue *GV = *I;<br class="">
+  for (const GlobalValue *GV : make_range(TypeInfos.rbegin(),<br class="">
+                                          TypeInfos.rend())) {<br class="">
     if (VerboseAsm)<br class="">
       Asm->OutStreamer->AddComment("TypeInfo " + Twine(Entry--));<br class="">
     Asm->EmitTTypeReference(GV, TTypeEncoding);<br class="">
<br class="">
Modified: llvm/trunk/lib/CodeGen/DeadMachineInstructionElim.cpp<br class="">
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_CodeGen_DeadMachineInstructionElim.cpp-3Frev-3D243163-26r1-3D243162-26r2-3D243163-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=iwUOZqV7zo12Cqhh86N-Dq1saNmSe-bKAo5NyeZAYfs&s=6egLyNAmGcwl7y0y0e3O8Ux-SabCjrDzJ1hyETh4q0s&e=" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/DeadMachineInstructionElim.cpp?rev=243163&r1=243162&r2=243163&view=diff</a><br class="">
==============================================================================<br class="">
--- llvm/trunk/lib/CodeGen/DeadMachineInstructionElim.cpp (original)<br class="">
+++ llvm/trunk/lib/CodeGen/DeadMachineInstructionElim.cpp Fri Jul 24 16:13:43 2015<br class="">
@@ -101,26 +101,23 @@ bool DeadMachineInstructionElim::runOnMa<br class="">
   // Loop over all instructions in all blocks, from bottom to top, so that it's<br class="">
   // more likely that chains of dependent but ultimately dead instructions will<br class="">
   // be cleaned up.<br class="">
-  for (MachineFunction::reverse_iterator I = MF.rbegin(), E = MF.rend();<br class="">
-       I != E; ++I) {<br class="">
-    MachineBasicBlock *MBB = &*I;<br class="">
-<br class="">
+  for (MachineBasicBlock &MBB : make_range(MF.rbegin(), MF.rend())) {<br class="">
     // Start out assuming that reserved registers are live out of this block.<br class="">
     LivePhysRegs = MRI->getReservedRegs();<br class="">
<br class="">
     // Add live-ins from sucessors to LivePhysRegs. Normally, physregs are not<br class="">
     // live across blocks, but some targets (x86) can have flags live out of a<br class="">
     // block.<br class="">
-    for (MachineBasicBlock::succ_iterator S = MBB->succ_begin(),<br class="">
-           E = MBB->succ_end(); S != E; S++)<br class="">
+    for (MachineBasicBlock::succ_iterator S = MBB.succ_begin(),<br class="">
+           E = MBB.succ_end(); S != E; S++)<br class="">
       for (MachineBasicBlock::livein_iterator LI = (*S)->livein_begin();<br class="">
            LI != (*S)->livein_end(); LI++)<br class="">
         LivePhysRegs.set(*LI);<br class="">
<br class="">
     // Now scan the instructions and delete dead ones, tracking physreg<br class="">
     // liveness as we go.<br class="">
-    for (MachineBasicBlock::reverse_iterator MII = MBB->rbegin(),<br class="">
-         MIE = MBB->rend(); MII != MIE; ) {<br class="">
+    for (MachineBasicBlock::reverse_iterator MII = MBB.rbegin(),<br class="">
+         MIE = MBB.rend(); MII != MIE; ) {<br class="">
       MachineInstr *MI = &*MII;<br class="">
<br class="">
       // If the instruction is dead, delete it!<br class="">
@@ -132,7 +129,7 @@ bool DeadMachineInstructionElim::runOnMa<br class="">
         MI->eraseFromParentAndMarkDBGValuesForRemoval();<br class="">
         AnyChanges = true;<br class="">
         ++NumDeletes;<br class="">
-        MIE = MBB->rend();<br class="">
+        MIE = MBB.rend();<br class="">
         // MII is now pointing to the next instruction to process,<br class="">
         // so don't increment it.<br class="">
         continue;<br class="">
<br class="">
Modified: llvm/trunk/lib/CodeGen/ExecutionDepsFix.cpp<br class="">
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_CodeGen_ExecutionDepsFix.cpp-3Frev-3D243163-26r1-3D243162-26r2-3D243163-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=iwUOZqV7zo12Cqhh86N-Dq1saNmSe-bKAo5NyeZAYfs&s=G99dkLJKHVWI_5pyssDdJjrAqEOJvHvZqLvqfj2Qx0E&e=" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/ExecutionDepsFix.cpp?rev=243163&r1=243162&r2=243163&view=diff</a><br class="">
==============================================================================<br class="">
--- llvm/trunk/lib/CodeGen/ExecutionDepsFix.cpp (original)<br class="">
+++ llvm/trunk/lib/CodeGen/ExecutionDepsFix.cpp Fri Jul 24 16:13:43 2015<br class="">
@@ -559,12 +559,11 @@ void ExeDepsFix::processUndefReads(Machi<br class="">
   MachineInstr *UndefMI = UndefReads.back().first;<br class="">
   unsigned OpIdx = UndefReads.back().second;<br class="">
<br class="">
-  for (MachineBasicBlock::reverse_iterator I = MBB->rbegin(), E = MBB->rend();<br class="">
-       I != E; ++I) {<br class="">
+  for (MachineInstr &I : make_range(MBB->rbegin(), MBB->rend())) {<br class="">
     // Update liveness, including the current instruction's defs.<br class="">
-    LiveRegSet.stepBackward(*I);<br class="">
+    LiveRegSet.stepBackward(I);<br class="">
<br class="">
-    if (UndefMI == &*I) {<br class="">
+    if (UndefMI == &I) {<br class="">
       if (!LiveRegSet.contains(UndefMI->getOperand(OpIdx).getReg()))<br class="">
         TII->breakPartialRegDependency(UndefMI, OpIdx, TRI);<br class="">
<br class="">
<br class="">
Modified: llvm/trunk/lib/IR/AsmWriter.cpp<br class="">
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_IR_AsmWriter.cpp-3Frev-3D243163-26r1-3D243162-26r2-3D243163-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=iwUOZqV7zo12Cqhh86N-Dq1saNmSe-bKAo5NyeZAYfs&s=mwucHWQ6Jm3m5vlzceOvu0hCMLojCaMr84c9YaWCmgI&e=" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/AsmWriter.cpp?rev=243163&r1=243162&r2=243163&view=diff</a><br class="">
==============================================================================<br class="">
--- llvm/trunk/lib/IR/AsmWriter.cpp (original)<br class="">
+++ llvm/trunk/lib/IR/AsmWriter.cpp Fri Jul 24 16:13:43 2015<br class="">
@@ -232,8 +232,7 @@ static UseListOrderStack predictUseListO<br class="">
   // We want to visit the functions backward now so we can list function-local<br class="">
   // constants in the last Function they're used in.  Module-level constants<br class="">
   // have already been visited above.<br class="">
-  for (auto I = M->rbegin(), E = M->rend(); I != E; ++I) {<br class="">
-    const Function &F = *I;<br class="">
+  for (const Function &F : make_range(M->rbegin(), M->rend())) {<br class="">
     if (F.isDeclaration())<br class="">
       continue;<br class="">
     for (const BasicBlock &BB : F)<br class="">
<br class="">
Modified: llvm/trunk/lib/Target/AArch64/AArch64A53Fix835769.cpp<br class="">
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_Target_AArch64_AArch64A53Fix835769.cpp-3Frev-3D243163-26r1-3D243162-26r2-3D243163-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=iwUOZqV7zo12Cqhh86N-Dq1saNmSe-bKAo5NyeZAYfs&s=ezP7aWd8yFZAZcGUsRthaUFCeDCkH8szVUQxba1qeWk&e=" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64A53Fix835769.cpp?rev=243163&r1=243162&r2=243163&view=diff</a><br class="">
==============================================================================<br class="">
--- llvm/trunk/lib/Target/AArch64/AArch64A53Fix835769.cpp (original)<br class="">
+++ llvm/trunk/lib/Target/AArch64/AArch64A53Fix835769.cpp Fri Jul 24 16:13:43 2015<br class="">
@@ -151,10 +151,9 @@ static MachineInstr *getLastNonPseudo(Ma<br class="">
   // If there is no non-pseudo in the current block, loop back around and try<br class="">
   // the previous block (if there is one).<br class="">
   while ((FMBB = getBBFallenThrough(FMBB, TII))) {<br class="">
-    for (auto I = FMBB->rbegin(), E = FMBB->rend(); I != E; ++I) {<br class="">
-      if (!I->isPseudo())<br class="">
-        return &*I;<br class="">
-    }<br class="">
+    for (MachineInstr &I : make_range(FMBB->rbegin(), FMBB->rend()))<br class="">
+      if (!I.isPseudo())<br class="">
+        return &I;<br class="">
   }<br class="">
<br class="">
   // There was no previous non-pseudo in the fallen through blocks<br class="">
<br class="">
Modified: llvm/trunk/lib/Transforms/Scalar/Float2Int.cpp<br class="">
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_Transforms_Scalar_Float2Int.cpp-3Frev-3D243163-26r1-3D243162-26r2-3D243163-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=iwUOZqV7zo12Cqhh86N-Dq1saNmSe-bKAo5NyeZAYfs&s=ZZt0fEMKZazQic1zPpkXCi0CLGLiEXuAKV0Ft1-oDIo&e=" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/Float2Int.cpp?rev=243163&r1=243162&r2=243163&view=diff</a><br class="">
==============================================================================<br class="">
--- llvm/trunk/lib/Transforms/Scalar/Float2Int.cpp (original)<br class="">
+++ llvm/trunk/lib/Transforms/Scalar/Float2Int.cpp Fri Jul 24 16:13:43 2015<br class="">
@@ -242,11 +242,11 @@ void Float2Int::walkBackwards(const Smal<br class="">
 // Walk forwards down the list of seen instructions, so we visit defs before<br class="">
 // uses.<br class="">
 void Float2Int::walkForwards() {<br class="">
-  for (auto It = SeenInsts.rbegin(), E = SeenInsts.rend(); It != E; ++It) {<br class="">
-    if (It->second != unknownRange())<br class="">
+  for (auto &It : make_range(SeenInsts.rbegin(), SeenInsts.rend())) {<br class="">
+    if (It.second != unknownRange())<br class="">
       continue;<br class="">
<br class="">
-    Instruction *I = It->first;<br class="">
+    Instruction *I = It.first;<br class="">
     std::function<ConstantRange(ArrayRef<ConstantRange>)> Op;<br class="">
     switch (I->getOpcode()) {<br class="">
       // FIXME: Handle select and phi nodes.<br class="">
@@ -507,9 +507,8 @@ Value *Float2Int::convert(Instruction *I<br class="">
<br class="">
 // Perform dead code elimination on the instructions we just modified.<br class="">
 void Float2Int::cleanup() {<br class="">
-  for (auto I = ConvertedInsts.rbegin(), E = ConvertedInsts.rend();<br class="">
-       I != E; ++I)<br class="">
-    I->first->eraseFromParent();<br class="">
+  for (auto &I : make_range(ConvertedInsts.rbegin(), ConvertedInsts.rend()))<br class="">
+    I.first->eraseFromParent();<br class="">
 }<br class="">
<br class="">
 bool Float2Int::runOnFunction(Function &F) {<br class="">
<br class="">
Modified: llvm/trunk/lib/Transforms/Scalar/LoopDistribute.cpp<br class="">
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_Transforms_Scalar_LoopDistribute.cpp-3Frev-3D243163-26r1-3D243162-26r2-3D243163-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=iwUOZqV7zo12Cqhh86N-Dq1saNmSe-bKAo5NyeZAYfs&s=lYwcKxxXBOonSXv4ivBDN5M_j66iEB33lPdTuFxlgBw&e=" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/LoopDistribute.cpp?rev=243163&r1=243162&r2=243163&view=diff</a><br class="">
==============================================================================<br class="">
--- llvm/trunk/lib/Transforms/Scalar/LoopDistribute.cpp (original)<br class="">
+++ llvm/trunk/lib/Transforms/Scalar/LoopDistribute.cpp Fri Jul 24 16:13:43 2015<br class="">
@@ -164,9 +164,7 @@ public:<br class="">
<br class="">
     // Delete the instructions backwards, as it has a reduced likelihood of<br class="">
     // having to update as many def-use and use-def chains.<br class="">
-    for (auto I = Unused.rbegin(), E = Unused.rend(); I != E; ++I) {<br class="">
-      auto *Inst = *I;<br class="">
-<br class="">
+    for (auto *Inst : make_range(Unused.rbegin(), Unused.rend())) {<br class="">
       if (!Inst->use_empty())<br class="">
         Inst->replaceAllUsesWith(UndefValue::get(Inst->getType()));<br class="">
       Inst->eraseFromParent();<br class="">
<br class="">
Modified: llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp<br class="">
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_Transforms_Utils_InlineFunction.cpp-3Frev-3D243163-26r1-3D243162-26r2-3D243163-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=iwUOZqV7zo12Cqhh86N-Dq1saNmSe-bKAo5NyeZAYfs&s=gLAakaKFXT881mT7C5w2BgzFQsUD3uOkLlcuo4Vm3jQ&e=" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp?rev=243163&r1=243162&r2=243163&view=diff</a><br class="">
==============================================================================<br class="">
--- llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp (original)<br class="">
+++ llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp Fri Jul 24 16:13:43 2015<br class="">
@@ -851,9 +851,8 @@ updateInlinedAtInfo(DebugLoc DL, DILocat<br class="">
   // Starting from the top, rebuild the nodes to point to the new inlined-at<br class="">
   // location (then rebuilding the rest of the chain behind it) and update the<br class="">
   // map of already-constructed inlined-at nodes.<br class="">
-  for (auto I = InlinedAtLocations.rbegin(), E = InlinedAtLocations.rend();<br class="">
-       I != E; ++I) {<br class="">
-    const DILocation *MD = *I;<br class="">
+  for (const DILocation *MD : make_range(InlinedAtLocations.rbegin(),<br class="">
+                                         InlinedAtLocations.rend())) {<br class="">
     Last = IANodes[MD] = DILocation::getDistinct(<br class="">
         Ctx, MD->getLine(), MD->getColumn(), MD->getScope(), Last);<br class="">
   }<br class="">
<br class="">
<br class="">
_______________________________________________<br class="">
llvm-commits mailing list<br class="">
<a href="mailto:llvm-commits@cs.uiuc.edu" class="">llvm-commits@cs.uiuc.edu</a><br class="">
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank" class="">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br class="">
</blockquote></div><br class=""></div></div>
</div></blockquote></div><br class=""></body></html>