[PATCH] D40247: IR printing improvement for loop passes - handle -print-module-scope

Fedor Sergeev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 1 10:34:41 PST 2017


This revision was automatically updated to reflect the committed changes.
Closed by commit rL319566: IR printing improvement for loop passes - handle -print-module-scope (authored by fedor.sergeev).

Repository:
  rL LLVM

https://reviews.llvm.org/D40247

Files:
  llvm/trunk/lib/Analysis/LoopInfo.cpp
  llvm/trunk/test/Other/loop-pass-printer.ll


Index: llvm/trunk/test/Other/loop-pass-printer.ll
===================================================================
--- llvm/trunk/test/Other/loop-pass-printer.ll
+++ llvm/trunk/test/Other/loop-pass-printer.ll
@@ -7,7 +7,9 @@
 ; RUN: opt < %s 2>&1 -disable-output \
 ; RUN: 	   -loop-unroll -print-after=loop-unroll -filter-print-funcs=bar \
 ; RUN:	   | FileCheck %s -check-prefix=BAR
-;
+; RUN: opt < %s 2>&1 -disable-output \
+; RUN: 	   -loop-unroll -print-after=loop-unroll -filter-print-funcs=foo -print-module-scope \
+; RUN:	   | FileCheck %s -check-prefix=FOO-MODULE
 
 ; DEL:	    IR Dump Before
 ; DEL-SAME: dead loops
@@ -35,9 +37,17 @@
 ; BAR-NEXT:  loop:
 ; BAR:	    ; Exit blocks
 ; BAR:	     end:
-; BAR-NOT: IR Dump Before
+; BAR-NOT: IR Dump
 ; BAR-NOT:  ; Loop
 
+; FOO-MODULE: IR Dump After
+; FOO-MODULE-SAME: Unroll
+; FOO-MODULE-SAME: loop: %loop
+; FOO-MODULE-NEXT: ModuleID =
+; FOO-MODULE: define void @foo
+; FOO-MODULE: define void @bar
+; FOO-MODULE-NOT: IR Dump
+
 define void @foo(){
   %idx = alloca i32, align 4
   store i32 0, i32* %idx, align 4
Index: llvm/trunk/lib/Analysis/LoopInfo.cpp
===================================================================
--- llvm/trunk/lib/Analysis/LoopInfo.cpp
+++ llvm/trunk/lib/Analysis/LoopInfo.cpp
@@ -731,6 +731,18 @@
 }
 
 void llvm::printLoop(Loop &L, raw_ostream &OS, const std::string &Banner) {
+
+  if (forcePrintModuleIR()) {
+    // handling -print-module-scope
+    OS << Banner << " (loop: ";
+    L.getHeader()->printAsOperand(OS, false);
+    OS << ")\n";
+
+    // printing whole module
+    OS << *L.getHeader()->getModule();
+    return;
+  }
+
   OS << Banner;
 
   auto *PreHeader = L.getLoopPreheader();


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D40247.125173.patch
Type: text/x-patch
Size: 1700 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171201/ad9b0c92/attachment.bin>


More information about the llvm-commits mailing list