[PATCH] D112651: [llvm-reduce] Add flag to start at finer granularity

Arthur Eubanks via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 9 10:16:04 PST 2021


This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rGfbfd327fdf1e: [llvm-reduce] Add flag to start at finer granularity (authored by dwightguth, committed by aeubanks).

Changed prior to commit:
  https://reviews.llvm.org/D112651?vs=382750&id=385875#toc

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D112651/new/

https://reviews.llvm.org/D112651

Files:
  llvm/test/tools/llvm-reduce/granularity-level.ll
  llvm/tools/llvm-reduce/deltas/Delta.cpp


Index: llvm/tools/llvm-reduce/deltas/Delta.cpp
===================================================================
--- llvm/tools/llvm-reduce/deltas/Delta.cpp
+++ llvm/tools/llvm-reduce/deltas/Delta.cpp
@@ -27,6 +27,10 @@
     "abort-on-invalid-reduction",
     cl::desc("Abort if any reduction results in invalid IR"));
 
+static cl::opt<unsigned int> StartingGranularityLevel(
+    "starting-granularity-level",
+    cl::desc("Number of times to divide chunks prior to first test"));
+
 void writeOutput(ReducerWorkItem &M, llvm::StringRef Message);
 
 bool isReduced(ReducerWorkItem &M, TestRunner &Test,
@@ -118,6 +122,10 @@
   std::vector<Chunk> ChunksStillConsideredInteresting = {{1, Targets}};
   std::unique_ptr<ReducerWorkItem> ReducedProgram;
 
+  for (unsigned int Level = 0; Level < StartingGranularityLevel; Level++) {
+    increaseGranularity(ChunksStillConsideredInteresting);
+  }
+
   bool FoundAtLeastOneNewUninterestingChunkWithCurrentGranularity;
   do {
     FoundAtLeastOneNewUninterestingChunkWithCurrentGranularity = false;
Index: llvm/test/tools/llvm-reduce/granularity-level.ll
===================================================================
--- /dev/null
+++ llvm/test/tools/llvm-reduce/granularity-level.ll
@@ -0,0 +1,30 @@
+; Test that llvm-reduce produces the same output when starting at a higher granularity level.
+;
+; RUN: llvm-reduce --delta-passes=functions,instructions --starting-granularity-level=2 --test FileCheck --test-arg --check-prefixes=CHECK-ALL,CHECK-INTERESTINGNESS --test-arg %s --test-arg --input-file %s -o %t
+; RUN: cat %t | FileCheck -implicit-check-not=uninteresting --check-prefixes=CHECK-ALL,CHECK-FINAL %s
+
+define i32 @uninteresting1() {
+entry:
+  ret i32 0
+}
+
+; CHECK-ALL-LABEL: interesting()
+define i32 @interesting() {
+entry:
+  ; CHECK-INTERESTINGNESS: call i32 @interesting()
+  %call2 = call i32 @interesting()
+  %call = call i32 @uninteresting1()
+  ret i32 5
+}
+
+; CHECK-FINAL-NEXT: entry:
+; CHECK-FINAL-NEXT:   %call2 = call i32 @interesting()
+; CHECK-FINAL-NEXT:   ret i32 5
+; CHECK-FINAL-NEXT: }
+
+define i32 @uninteresting2() {
+entry:
+  ret i32 0
+}
+
+declare void @uninteresting3()


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D112651.385875.patch
Type: text/x-patch
Size: 2178 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20211109/ce024b7a/attachment.bin>


More information about the llvm-commits mailing list