[polly] bb90d7e - [Polly] Add support for -polly-export with NPM.

Michael Kruse via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 26 15:21:47 PDT 2022


Author: Michael Kruse
Date: 2022-10-26T17:21:34-05:00
New Revision: bb90d7ee3943ac8482d509d5224d24f1c9a5ac5c

URL: https://github.com/llvm/llvm-project/commit/bb90d7ee3943ac8482d509d5224d24f1c9a5ac5c
DIFF: https://github.com/llvm/llvm-project/commit/bb90d7ee3943ac8482d509d5224d24f1c9a5ac5c.diff

LOG: [Polly] Add support for -polly-export with NPM.

The JSONExporter pass was already ported to the NPM, the pass builder
jsut had to add it to the pass pipeline when requested.

Added: 
    polly/test/Support/exportjson.ll

Modified: 
    polly/lib/Support/RegisterPasses.cpp

Removed: 
    


################################################################################
diff  --git a/polly/lib/Support/RegisterPasses.cpp b/polly/lib/Support/RegisterPasses.cpp
index 2c81f946c742b..e21789b559cc7 100644
--- a/polly/lib/Support/RegisterPasses.cpp
+++ b/polly/lib/Support/RegisterPasses.cpp
@@ -550,8 +550,7 @@ static void buildCommonPollyPipeline(FunctionPassManager &PM,
   }
 
   if (ExportJScop)
-    llvm::report_fatal_error("Option -polly-export not supported with NPM",
-                             false);
+    SPM.addPass(JSONExportPass());
 
   if (!EnableForOpt)
     return;

diff  --git a/polly/test/Support/exportjson.ll b/polly/test/Support/exportjson.ll
new file mode 100644
index 0000000000000..dc20999573c5f
--- /dev/null
+++ b/polly/test/Support/exportjson.ll
@@ -0,0 +1,60 @@
+; RUN: rm -rf %t
+; RUN: mkdir -p %t
+; RUN: opt %loadNPMPolly -polly-import-jscop-dir=%t -enable-new-pm=1 -polly -O2 -polly-export -S < %s
+; RUN: FileCheck %s -input-file %t/exportjson___%entry.split---%return.jscop
+;
+; for (int j = 0; j < n; j += 1) {
+;   A[0] = 42.0;
+; }
+;
+define void @exportjson(i32 %n, double* noalias nonnull %A) {
+entry:
+  br label %for
+
+for:
+  %j = phi i32 [0, %entry], [%j.inc, %inc]
+  %j.cmp = icmp slt i32 %j, %n
+  br i1 %j.cmp, label %body, label %exit
+
+    body:
+      store double 42.0, double* %A
+      br label %inc
+
+inc:
+  %j.inc = add nuw nsw i32 %j, 1
+  br label %for
+
+exit:
+  br label %return
+
+return:
+  ret void
+}
+
+
+; CHECK:      {
+; CHECK-NEXT:    "arrays": [
+; CHECK-NEXT:       {
+; CHECK-NEXT:          "name": "MemRef_A",
+; CHECK-NEXT:          "sizes": [
+; CHECK-NEXT:             "*"
+; CHECK-NEXT:          ],
+; CHECK-NEXT:          "type": "double"
+; CHECK-NEXT:       }
+; CHECK-NEXT:    ],
+; CHECK-NEXT:    "context": "[n] -> {  : -2147483648 <= n <= 2147483647 }",
+; CHECK-NEXT:    "name": "%entry.split---%return",
+; CHECK-NEXT:    "statements": [
+; CHECK-NEXT:       {
+; CHECK-NEXT:          "accesses": [
+; CHECK-NEXT:             {
+; CHECK-NEXT:                "kind": "write",
+; CHECK-NEXT:                "relation": "[n] -> { Stmt_body_lr_ph[] -> MemRef_A[0] }"
+; CHECK-NEXT:             }
+; CHECK-NEXT:          ],
+; CHECK-NEXT:          "domain": "[n] -> { Stmt_body_lr_ph[] : n > 0 }",
+; CHECK-NEXT:          "name": "Stmt_body_lr_ph",
+; CHECK-NEXT:          "schedule": "[n] -> { Stmt_body_lr_ph[] -> [] }"
+; CHECK-NEXT:       }
+; CHECK-NEXT:    ]
+; CHECK-NEXT: }


        


More information about the llvm-commits mailing list