[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:
Tobias Grosser 2017-02-09 08:06:15 +00:00
parent 114f6d6ff5
commit 26fb7d7517
6 changed files with 9 additions and 9 deletions

View File

@ -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)

View File

@ -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++)

View File

@ -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

View File

@ -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);
;

View File

@ -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: }

View File

@ -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: }