-; RUN: llvm-uselistorder < %s -preserve-bc-use-list-order
+; RUN: llvm-uselistorder < %s -preserve-bc-use-list-order -num-shuffles=5
@a = global [4 x i1] [i1 0, i1 1, i1 0, i1 1]
@b = alias i1* getelementptr ([4 x i1]* @a, i64 0, i64 2)
static cl::opt<bool> SaveTemps("save-temps", cl::desc("Save temp files"),
cl::init(false));
+static cl::opt<unsigned>
+ NumShuffles("num-shuffles",
+ cl::desc("Number of times to shuffle and verify use-lists"),
+ cl::init(1));
+
namespace {
struct TempFile {
return 0;
}
- shuffleUseLists(*M);
- if (!verifyBitcodeUseListOrder(*M))
- report_fatal_error("bitcode use-list order changed");
+ for (unsigned I = 0, E = NumShuffles; I != E; ++I) {
+ DEBUG(dbgs() << "*** iteration: " << I << " ***\n");
+
+ // Shuffle with a different seed each time so that use-lists that aren't
+ // modified the first time are likely to be modified the next time.
+ shuffleUseLists(*M, I);
+ if (!verifyBitcodeUseListOrder(*M))
+ report_fatal_error("bitcode use-list order changed");
- if (shouldPreserveAssemblyUseListOrder())
- if (!verifyAssemblyUseListOrder(*M))
- report_fatal_error("assembly use-list order changed");
+ if (shouldPreserveAssemblyUseListOrder())
+ if (!verifyAssemblyUseListOrder(*M))
+ report_fatal_error("assembly use-list order changed");
+ }
return 0;
}