<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Feb 12, 2015 at 6:45 PM, Chandler Carruth <span dir="ltr"><<a href="mailto:chandlerc@gmail.com" target="_blank">chandlerc@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: chandlerc<br>
Date: Thu Feb 12 20:45:17 2015<br>
New Revision: 229033<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=229033&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=229033&view=rev</a><br>
Log:<br>
[unroll] Make range based for loops a bit more explicit and more<br>
readable.<br>
<br>
The biggest thing that was causing me problems is recognizing the<br>
references vs. poniters here. </blockquote><div><br>Yeah, we do have a style guide point about using * explicitly even when using auto (doesn't help as much for unique_ptr, of course) - but don't have good clang-tidy integration, or a clang-tidy check for this particular rule I don't think. :(<br> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I also found that for maps naming the loop<br>
variable as KeyValue helps make it obvious why you don't actually use it<br>
directly. Finally, using 'auto' instead of 'User *' doesn't seem like<br>
a good tradeoff. Much like with the other cases, I like to know its<br>
a pointer, and 'User' is just as long and tells the reader a lot more.<br>
<br>
Modified:<br>
    llvm/trunk/lib/Transforms/Scalar/LoopUnrollPass.cpp<br>
<br>
Modified: llvm/trunk/lib/Transforms/Scalar/LoopUnrollPass.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/LoopUnrollPass.cpp?rev=229033&r1=229032&r2=229033&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/LoopUnrollPass.cpp?rev=229033&r1=229032&r2=229033&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Transforms/Scalar/LoopUnrollPass.cpp (original)<br>
+++ llvm/trunk/lib/Transforms/Scalar/LoopUnrollPass.cpp Thu Feb 12 20:45:17 2015<br>
@@ -461,13 +461,13 @@ public:<br>
     NumberOfOptimizedInstructions = 0;<br>
<br>
     // We start by adding all loads to the worklist.<br>
-    for (auto LoadDescr : LoadBaseAddresses) {<br>
+    for (auto &LoadDescr : LoadBaseAddresses) {<br>
       LoadInst *LI = LoadDescr.first;<br>
       SimplifiedValues[LI] = computeLoadValue(LI, Iteration);<br>
       if (CountedInstructions.insert(LI).second)<br>
         NumberOfOptimizedInstructions += TTI.getUserCost(LI);<br>
<br>
-      for (auto U : LI->users()) {<br>
+      for (User *U : LI->users()) {<br>
         Instruction *UI = dyn_cast<Instruction>(U);<br>
         if (!UI)<br>
           continue;<br>
@@ -484,7 +484,7 @@ public:<br>
       Instruction *I = Worklist.pop_back_val();<br>
       if (!visit(I))<br>
         continue;<br>
-      for (auto U : I->users()) {<br>
+      for (User *U : I->users()) {<br>
         Instruction *UI = dyn_cast<Instruction>(U);<br>
         if (!UI)<br>
           continue;<br>
@@ -504,8 +504,8 @@ public:<br>
     SmallPtrSet<Instruction *, 16> DeadInstructions;<br>
<br>
     // Start by initializing worklist with simplified instructions.<br>
-    for (auto Folded : SimplifiedValues)<br>
-      if (auto FoldedInst = dyn_cast<Instruction>(Folded.first)) {<br>
+    for (auto &FoldedKeyValue : SimplifiedValues)<br>
+      if (auto *FoldedInst = dyn_cast<Instruction>(FoldedKeyValue.first)) {<br>
         Worklist.push_back(FoldedInst);<br>
         DeadInstructions.insert(FoldedInst);<br>
       }<br>
@@ -516,7 +516,7 @@ public:<br>
     while (!Worklist.empty()) {<br>
       Instruction *FoldedInst = Worklist.pop_back_val();<br>
       for (Value *Op : FoldedInst->operands()) {<br>
-        if (auto I = dyn_cast<Instruction>(Op)) {<br>
+        if (auto *I = dyn_cast<Instruction>(Op)) {<br>
           if (!L->contains(I))<br>
             continue;<br>
           if (SimplifiedValues[I])<br>
@@ -524,7 +524,7 @@ public:<br>
           if (I->getNumUses() == 0)<br>
             continue;<br>
           bool AllUsersFolded = true;<br>
-          for (auto U : I->users()) {<br>
+          for (User *U : I->users()) {<br>
             Instruction *UI = dyn_cast<Instruction>(U);<br>
             if (!SimplifiedValues[UI] && !DeadInstructions.count(UI)) {<br>
               AllUsersFolded = false;<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div></div>