[PATCH] D97499: [PM] Show the pass argument in pre/post-pass IR dumps

Nicolas Guillemot via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 25 13:54:45 PST 2021


nlguillemot created this revision.
nlguillemot added reviewers: jroelofs, thegameg, dsanders.
Herald added subscribers: dexonsmith, hiraditya.
nlguillemot requested review of this revision.
Herald added projects: clang, LLVM.
Herald added subscribers: llvm-commits, cfe-commits.

This patch adds each pass' pass argument in the header for IR dumps.
For example:

Before:

  *** IR Dump Before InstructionSelect ***

After:

  *** IR Dump Before InstructionSelect (instruction-select) ***

The goal is to make it easier to know what argument to pass to
command line options like `debug-only` or `run-pass` to further
investigate a given pass.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D97499

Files:
  clang/test/Misc/pr32207.c
  llvm/lib/IR/LegacyPassManager.cpp
  llvm/test/CodeGen/SystemZ/frame-26.mir
  llvm/test/Transforms/Inline/null-function.ll


Index: llvm/test/Transforms/Inline/null-function.ll
===================================================================
--- llvm/test/Transforms/Inline/null-function.ll
+++ llvm/test/Transforms/Inline/null-function.ll
@@ -5,5 +5,5 @@
   ret i32 0
 }
 
-; CHECK: *** IR Dump Before Inliner for always_inline functions ***
+; CHECK: *** IR Dump Before Inliner for always_inline functions (always-inline) ***
 ; CHECK: Printing <null> Function
Index: llvm/test/CodeGen/SystemZ/frame-26.mir
===================================================================
--- llvm/test/CodeGen/SystemZ/frame-26.mir
+++ llvm/test/CodeGen/SystemZ/frame-26.mir
@@ -5,7 +5,7 @@
 # Test that R6 when used for an argument is modelled as being live throughout
 # the function when not saved in the prologue..
 
-# CHECK:      # *** IR Dump After Prologue/Epilogue Insertion & Frame Finalization ***:
+# CHECK:      # *** IR Dump After Prologue/Epilogue Insertion & Frame Finalization (prologepilog) ***:
 # CHECK-NEXT: # Machine code for function fun0:
 # CHECK-LABEL: bb.0:
 # CHECK: liveins:{{.*}} $r6d
Index: llvm/lib/IR/LegacyPassManager.cpp
===================================================================
--- llvm/lib/IR/LegacyPassManager.cpp
+++ llvm/lib/IR/LegacyPassManager.cpp
@@ -745,8 +745,10 @@
   }
 
   if (PI && !PI->isAnalysis() && shouldPrintBeforePass(PI->getPassArgument())) {
-    Pass *PP = P->createPrinterPass(
-        dbgs(), ("*** IR Dump Before " + P->getPassName() + " ***").str());
+    Pass *PP =
+        P->createPrinterPass(dbgs(), ("*** IR Dump Before " + P->getPassName() +
+                                      " (" + PI->getPassArgument() + ") ***")
+                                         .str());
     PP->assignPassManager(activeStack, getTopLevelPassManagerType());
   }
 
@@ -754,8 +756,10 @@
   P->assignPassManager(activeStack, getTopLevelPassManagerType());
 
   if (PI && !PI->isAnalysis() && shouldPrintAfterPass(PI->getPassArgument())) {
-    Pass *PP = P->createPrinterPass(
-        dbgs(), ("*** IR Dump After " + P->getPassName() + " ***").str());
+    Pass *PP =
+        P->createPrinterPass(dbgs(), ("*** IR Dump After " + P->getPassName() +
+                                      " (" + PI->getPassArgument() + ") ***")
+                                         .str());
     PP->assignPassManager(activeStack, getTopLevelPassManagerType());
   }
 }
Index: clang/test/Misc/pr32207.c
===================================================================
--- clang/test/Misc/pr32207.c
+++ clang/test/Misc/pr32207.c
@@ -1,4 +1,4 @@
 // test for r305179
 // RUN: %clang_cc1 -emit-llvm -O2 -fno-experimental-new-pass-manager -mllvm -print-after-all %s -o %t 2>&1 | FileCheck %s
-// CHECK: *** IR Dump After Function Integration/Inlining ***
+// CHECK: *** IR Dump After Function Integration/Inlining (inline) ***
 void foo() {}


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D97499.326489.patch
Type: text/x-patch
Size: 2860 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210225/dfa24f4a/attachment-0001.bin>


More information about the llvm-commits mailing list