mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-11-27 15:41:46 +00:00
[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.
This commit is contained in:
parent
ec273d3e3a
commit
bb90d7ee39
@ -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;
|
||||
|
60
polly/test/Support/exportjson.ll
Normal file
60
polly/test/Support/exportjson.ll
Normal file
@ -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: }
|
Loading…
Reference in New Issue
Block a user