forked from OSchip/llvm-project
[IslAst] Print the ScopArray name to mark reductions
Before this change we used the name of the base pointer to mark reductions. This is imprecise as the canonical reference is the ScopArray itself and not the basepointer of a reduction. Using the base pointer of reductions is problematic in cases where a single ScopArray is referenced through two different base pointers. This change removes unnecessary uses of MemoryAddress::getBaseAddr() in preparation for https://reviews.llvm.org/D28518. llvm-svn: 294568
This commit is contained in:
parent
114f6d6ff5
commit
26fb7d7517
|
@ -124,7 +124,7 @@ static const std::string getBrokenReductionsStr(__isl_keep isl_ast_node *Node) {
|
|||
for (MemoryAccess *MA : *BrokenReductions)
|
||||
if (MA->isWrite())
|
||||
Clauses[MA->getReductionType()] +=
|
||||
", " + MA->getBaseAddr()->getName().str();
|
||||
", " + MA->getScopArrayInfo()->getName();
|
||||
|
||||
// Now print the reductions sorted by type. Each type will cause a clause
|
||||
// like: reduction (+ : sum0, sum1, sum2)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
; RUN: opt %loadPolly -polly-ast -polly-ast-detect-parallel -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polyhedral-info -polly-check-parallel -analyze < %s | FileCheck %s -check-prefix=PINFO
|
||||
;
|
||||
; CHECK: #pragma known-parallel reduction (^ : sum)
|
||||
; CHECK: #pragma known-parallel reduction (^ : MemRef_sum)
|
||||
; void f(int N, int M, int P, int sum[P][M]) {
|
||||
; PINFO: for.cond: Loop is not parallel.
|
||||
; for (int i = 0; i < N; i++)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
; RUN: opt %loadPolly -polly-ast -polly-ast-detect-parallel -analyze < %s | FileCheck %s
|
||||
;
|
||||
; CHECK: #pragma known-parallel reduction (^ : sum)
|
||||
; CHECK: #pragma known-parallel reduction (^ : MemRef_sum)
|
||||
; void f(int N, int M, int *sum) {
|
||||
; for (int i = 0; i < N; i++)
|
||||
; CHECK: #pragma simd
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
; RUN: opt %loadPolly -basicaa -polly-ast -polly-ast-detect-parallel -analyze < %s | FileCheck %s
|
||||
;
|
||||
; CHECK: #pragma simd reduction (+ : sum{{[1,2]}}, sum{{[1,2]}}) reduction (* : prod) reduction (| : or) reduction (& : and)
|
||||
; CHECK: #pragma known-parallel reduction (+ : sum{{[1,2]}}, sum{{[1,2]}}) reduction (* : prod) reduction (| : or) reduction (& : and)
|
||||
; CHECK: #pragma simd reduction (+ : MemRef_sum{{[1,2]}}, MemRef_sum{{[1,2]}}) reduction (* : MemRef_prod) reduction (| : MemRef_or) reduction (& : MemRef_and)
|
||||
; CHECK: #pragma known-parallel reduction (+ : MemRef_sum{{[1,2]}}, MemRef_sum{{[1,2]}}) reduction (* : MemRef_prod) reduction (| : MemRef_or) reduction (& : MemRef_and)
|
||||
; CHECK: for (int c0 = 0; c0 < N; c0 += 1)
|
||||
; CHECK: Stmt_for_body(c0);
|
||||
;
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
; RUN: opt %loadPolly -polly-import-jscop-dir=%S -polly-import-jscop -polly-ast -polly-ast-detect-parallel -analyze < %s | FileCheck %s
|
||||
;
|
||||
; CHECK: #pragma known-parallel reduction (+ : A)
|
||||
; CHECK: #pragma known-parallel reduction (+ : MemRef_A)
|
||||
; CHECK-NEXT: for (int c0 = 0; c0 <= 2; c0 += 1) {
|
||||
; CHECK-NEXT: if (c0 == 1) {
|
||||
; CHECK-NEXT: #pragma simd
|
||||
; CHECK-NEXT: for (int c1 = 0; c1 < 2 * n; c1 += 1)
|
||||
; CHECK-NEXT: Stmt_S1(c1);
|
||||
; CHECK-NEXT: } else
|
||||
; CHECK-NEXT: #pragma simd reduction (+ : A)
|
||||
; CHECK-NEXT: #pragma simd reduction (+ : MemRef_A)
|
||||
; CHECK-NEXT: for (int c1 = (-c0 / 2) + 2; c1 <= 2 * n; c1 += 2)
|
||||
; CHECK-NEXT: Stmt_S0(2 * n - c1);
|
||||
; CHECK-NEXT: }
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
; RUN: opt %loadPolly -polly-import-jscop-dir=%S -polly-import-jscop -polly-ast -polly-ast-detect-parallel -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polyhedral-info -polly-check-parallel -analyze < %s | FileCheck %s -check-prefix=PINFO
|
||||
;
|
||||
; CHECK: #pragma known-parallel reduction (+ : A)
|
||||
; CHECK: #pragma known-parallel reduction (+ : MemRef_A)
|
||||
; CHECK-NEXT: for (int c0 = 0; c0 <= 2; c0 += 1) {
|
||||
; CHECK-NEXT: if (c0 == 1) {
|
||||
; CHECK-NEXT: #pragma simd
|
||||
; CHECK-NEXT: for (int c1 = 0; c1 < 2 * n; c1 += 1)
|
||||
; CHECK-NEXT: Stmt_S1(c1);
|
||||
; CHECK-NEXT: } else
|
||||
; CHECK-NEXT: #pragma simd reduction (+ : A)
|
||||
; CHECK-NEXT: #pragma simd reduction (+ : MemRef_A)
|
||||
; CHECK-NEXT: for (int c1 = c0 / 2; c1 < 2 * n; c1 += 2)
|
||||
; CHECK-NEXT: Stmt_S0(c1);
|
||||
; CHECK-NEXT: }
|
||||
|
|
Loading…
Reference in New Issue