+ if (verifyModule(M, &errs()))
+ report_fatal_error("verification failed");
+}
+
+static void shuffleUseLists(Module &M, unsigned SeedOffset) {
+ errs() << "*** shuffle-use-lists ***\n";
+ std::minstd_rand0 Gen(std::minstd_rand0::default_seed + SeedOffset);
+ DenseSet<Value *> Seen;
+ changeUseLists(M, [&](Value *V) { shuffleValueUseLists(V, Gen, Seen); });
+ DEBUG(dbgs() << "\n");
+}
+
+static void reverseUseLists(Module &M) {
+ errs() << "*** reverse-use-lists ***\n";
+ DenseSet<Value *> Seen;
+ changeUseLists(M, [&](Value *V) { reverseValueUseLists(V, Seen); });