<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>