<div dir="ltr">Some random comments:<div><br></div><div>1. Looks like the comment at the top of the file is copypasta from opt.</div><div><br></div><div>2. The comment at the top of this file should describe the purpose of this tool. From skimming the code it looks like some sort of fuzzer.</div>
<div><br></div><div>3. The name is incredibly ambiguous; could it at least have a verb in it? It seems like it is a fuzzer that verifies that use-lists correctly round-trip through bitcode. Is there a better name? Maybe something with "verify" in it? (a long-ish name for a specialized tool like this wouldn't seem that out of place).</div>
<div><br></div><div>-- Sean Silva</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Jul 28, 2014 at 5:25 PM, Duncan P. N. Exon Smith <span dir="ltr"><<a href="mailto:dexonsmith@apple.com" target="_blank">dexonsmith@apple.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: dexonsmith<br>
Date: Mon Jul 28 18:25:21 2014<br>
New Revision: 214144<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=214144&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=214144&view=rev</a><br>
Log:<br>
llvm-uselistorder: Add -num-shuffles option<br>
<br>
Modified:<br>
    llvm/trunk/test/Bitcode/use-list-order.ll<br>
    llvm/trunk/tools/llvm-uselistorder/llvm-uselistorder.cpp<br>
<br>
Modified: llvm/trunk/test/Bitcode/use-list-order.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Bitcode/use-list-order.ll?rev=214144&r1=214143&r2=214144&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Bitcode/use-list-order.ll?rev=214144&r1=214143&r2=214144&view=diff</a><br>

==============================================================================<br>
--- llvm/trunk/test/Bitcode/use-list-order.ll (original)<br>
+++ llvm/trunk/test/Bitcode/use-list-order.ll Mon Jul 28 18:25:21 2014<br>
@@ -1,4 +1,4 @@<br>
-; RUN: llvm-uselistorder < %s -preserve-bc-use-list-order<br>
+; RUN: llvm-uselistorder < %s -preserve-bc-use-list-order -num-shuffles=5<br>
<br>
 @a = global [4 x i1] [i1 0, i1 1, i1 0, i1 1]<br>
 @b = alias i1* getelementptr ([4 x i1]* @a, i64 0, i64 2)<br>
<br>
Modified: llvm/trunk/tools/llvm-uselistorder/llvm-uselistorder.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-uselistorder/llvm-uselistorder.cpp?rev=214144&r1=214143&r2=214144&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-uselistorder/llvm-uselistorder.cpp?rev=214144&r1=214143&r2=214144&view=diff</a><br>

==============================================================================<br>
--- llvm/trunk/tools/llvm-uselistorder/llvm-uselistorder.cpp (original)<br>
+++ llvm/trunk/tools/llvm-uselistorder/llvm-uselistorder.cpp Mon Jul 28 18:25:21 2014<br>
@@ -43,6 +43,11 @@ static cl::opt<std::string> InputFilenam<br>
 static cl::opt<bool> SaveTemps("save-temps", cl::desc("Save temp files"),<br>
                                cl::init(false));<br>
<br>
+static cl::opt<unsigned><br>
+    NumShuffles("num-shuffles",<br>
+                cl::desc("Number of times to shuffle and verify use-lists"),<br>
+                cl::init(1));<br>
+<br>
 namespace {<br>
<br>
 struct TempFile {<br>
@@ -370,13 +375,19 @@ int main(int argc, char **argv) {<br>
     return 0;<br>
   }<br>
<br>
-  shuffleUseLists(*M);<br>
-  if (!verifyBitcodeUseListOrder(*M))<br>
-    report_fatal_error("bitcode use-list order changed");<br>
-<br>
-  if (shouldPreserveAssemblyUseListOrder())<br>
-    if (!verifyAssemblyUseListOrder(*M))<br>
-      report_fatal_error("assembly use-list order changed");<br>
+  for (unsigned I = 0, E = NumShuffles; I != E; ++I) {<br>
+    DEBUG(dbgs() << "*** iteration: " << I << " ***\n");<br>
+<br>
+    // Shuffle with a different seed each time so that use-lists that aren't<br>
+    // modified the first time are likely to be modified the next time.<br>
+    shuffleUseLists(*M, I);<br>
+    if (!verifyBitcodeUseListOrder(*M))<br>
+      report_fatal_error("bitcode use-list order changed");<br>
+<br>
+    if (shouldPreserveAssemblyUseListOrder())<br>
+      if (!verifyAssemblyUseListOrder(*M))<br>
+        report_fatal_error("assembly use-list order changed");<br>
+  }<br>
<br>
   return 0;<br>
 }<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>