[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