[polly] r214486 - Change the printing of reduction types
Johannes Doerfert
jdoerfert at codeaurora.org
Fri Aug 1 01:13:26 PDT 2014
Author: jdoerfert
Date: Fri Aug 1 03:13:25 2014
New Revision: 214486
URL: http://llvm.org/viewvc/llvm-project?rev=214486&view=rev
Log:
Change the printing of reduction types
We use the C operator representation when applicable.
+ Update all the test cases accordingly.
Modified:
polly/trunk/include/polly/ScopInfo.h
polly/trunk/lib/Analysis/ScopInfo.cpp
polly/trunk/test/ScopInfo/reduction_chain_partially_outside_the_scop.ll
polly/trunk/test/ScopInfo/reduction_disabled_multiplicative.ll
polly/trunk/test/ScopInfo/reduction_invalid_different_operators.ll
polly/trunk/test/ScopInfo/reduction_invalid_overlapping_accesses.ll
polly/trunk/test/ScopInfo/reduction_multiple_loops_array_sum.ll
polly/trunk/test/ScopInfo/reduction_multiple_loops_array_sum_1.ll
polly/trunk/test/ScopInfo/reduction_multiple_simple_binary.ll
polly/trunk/test/ScopInfo/reduction_non_overlapping_chains.ll
polly/trunk/test/ScopInfo/reduction_only_reduction_like_access.ll
polly/trunk/test/ScopInfo/reduction_simple_fp.ll
polly/trunk/test/ScopInfo/reduction_simple_w_constant.ll
polly/trunk/test/ScopInfo/reduction_simple_w_iv.ll
polly/trunk/test/ScopInfo/reduction_two_identical_reads.ll
Modified: polly/trunk/include/polly/ScopInfo.h
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/include/polly/ScopInfo.h?rev=214486&r1=214485&r2=214486&view=diff
==============================================================================
--- polly/trunk/include/polly/ScopInfo.h (original)
+++ polly/trunk/include/polly/ScopInfo.h Fri Aug 1 03:13:25 2014
@@ -186,6 +186,12 @@ public:
/// @brief Get the base array isl_id for this access.
__isl_give isl_id *getArrayId() const;
+ /// @brief Return a string representation of the accesse's reduction type.
+ const std::string getReductionOperatorStr() const;
+
+ /// @brief Return a string representation of the reduction type @p RT.
+ static const std::string getReductionOperatorStr(ReductionType RT);
+
const std::string &getBaseName() const { return BaseName; }
const Instruction *getAccessInstruction() const { return Inst; }
Modified: polly/trunk/lib/Analysis/ScopInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Analysis/ScopInfo.cpp?rev=214486&r1=214485&r2=214486&view=diff
==============================================================================
--- polly/trunk/lib/Analysis/ScopInfo.cpp (original)
+++ polly/trunk/lib/Analysis/ScopInfo.cpp Fri Aug 1 03:13:25 2014
@@ -272,6 +272,27 @@ int SCEVAffinator::getLoopDepth(const Lo
return L->getLoopDepth() - outerLoop->getLoopDepth();
}
+const std::string
+MemoryAccess::getReductionOperatorStr(MemoryAccess::ReductionType RT) {
+ switch (RT) {
+ case MemoryAccess::RT_NONE:
+ llvm_unreachable("Requested a reduction operator string for a memory "
+ "access which isn't a reduction");
+ case MemoryAccess::RT_ADD:
+ return "+";
+ case MemoryAccess::RT_MUL:
+ return "*";
+ case MemoryAccess::RT_BOR:
+ return "|";
+ case MemoryAccess::RT_BXOR:
+ return "^";
+ case MemoryAccess::RT_BAND:
+ return "&";
+ }
+ llvm_unreachable("Unknown reduction type");
+ return "";
+}
+
/// @brief Return the reduction type for a given binary operator
static MemoryAccess::ReductionType getReductionType(const BinaryOperator *BinOp,
const Instruction *Load) {
@@ -461,28 +482,16 @@ void MemoryAccess::realignParams() {
AccessRelation = isl_map_align_params(AccessRelation, ParamSpace);
}
+const std::string MemoryAccess::getReductionOperatorStr() const {
+ return MemoryAccess::getReductionOperatorStr(getReductionType());
+}
+
raw_ostream &polly::operator<<(raw_ostream &OS,
MemoryAccess::ReductionType RT) {
- switch (RT) {
- case MemoryAccess::RT_NONE:
+ if (RT == MemoryAccess::RT_NONE)
OS << "NONE";
- break;
- case MemoryAccess::RT_ADD:
- OS << "ADD";
- break;
- case MemoryAccess::RT_MUL:
- OS << "MUL";
- break;
- case MemoryAccess::RT_BOR:
- OS << "BOR";
- break;
- case MemoryAccess::RT_BXOR:
- OS << "BXOR";
- break;
- case MemoryAccess::RT_BAND:
- OS << "BAND";
- break;
- }
+ else
+ OS << MemoryAccess::getReductionOperatorStr(RT);
return OS;
}
Modified: polly/trunk/test/ScopInfo/reduction_chain_partially_outside_the_scop.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/reduction_chain_partially_outside_the_scop.ll?rev=214486&r1=214485&r2=214486&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/reduction_chain_partially_outside_the_scop.ll (original)
+++ polly/trunk/test/ScopInfo/reduction_chain_partially_outside_the_scop.ll Fri Aug 1 03:13:25 2014
@@ -1,6 +1,6 @@
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
;
-; CHECK-NOT: Reduction like: 1
+; CHECK: Reduction Type: NONE
;
; int c, d;
; void f(int *sum) {
Modified: polly/trunk/test/ScopInfo/reduction_disabled_multiplicative.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/reduction_disabled_multiplicative.ll?rev=214486&r1=214485&r2=214486&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/reduction_disabled_multiplicative.ll (original)
+++ polly/trunk/test/ScopInfo/reduction_disabled_multiplicative.ll Fri Aug 1 03:13:25 2014
@@ -1,8 +1,8 @@
; RUN: opt -basicaa %loadPolly -polly-scops -analyze -polly-disable-multiplicative-reductions < %s | FileCheck %s
;
-; CHECK: ReadAccess := [Reduction Type: ADD
+; CHECK: ReadAccess := [Reduction Type: +
; CHECK: { Stmt_for_body[i0] -> MemRef_sum[0] };
-; CHECK: MustWriteAccess := [Reduction Type: ADD
+; CHECK: MustWriteAccess := [Reduction Type: +
; CHECK: { Stmt_for_body[i0] -> MemRef_sum[0] };
; CHECK: ReadAccess := [Reduction Type: NONE
; CHECK: { Stmt_for_body[i0] -> MemRef_prod[0] };
Modified: polly/trunk/test/ScopInfo/reduction_invalid_different_operators.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/reduction_invalid_different_operators.ll?rev=214486&r1=214485&r2=214486&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/reduction_invalid_different_operators.ll (original)
+++ polly/trunk/test/ScopInfo/reduction_invalid_different_operators.ll Fri Aug 1 03:13:25 2014
@@ -10,8 +10,8 @@
; return sum + sth;
; }
;
-; CHECK-NOT: Reduction Type: ADD
-; CHECK-NOT: Reduction Type: MUL
+; CHECK-NOT: Reduction Type: +
+; CHECK-NOT: Reduction Type: *
target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-n32-S64"
define i32 @f() {
Modified: polly/trunk/test/ScopInfo/reduction_invalid_overlapping_accesses.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/reduction_invalid_overlapping_accesses.ll?rev=214486&r1=214485&r2=214486&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/reduction_invalid_overlapping_accesses.ll (original)
+++ polly/trunk/test/ScopInfo/reduction_invalid_overlapping_accesses.ll Fri Aug 1 03:13:25 2014
@@ -10,8 +10,8 @@
; }
; }
;
-; CHECK-NOT: Reduction Type: ADD
-; CHECK-NOT: Reduction Type: MUL
+; CHECK-NOT: Reduction Type: +
+; CHECK-NOT: Reduction Type: *
target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-n32-S64"
define void @f(i32* %sums) {
Modified: polly/trunk/test/ScopInfo/reduction_multiple_loops_array_sum.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/reduction_multiple_loops_array_sum.ll?rev=214486&r1=214485&r2=214486&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/reduction_multiple_loops_array_sum.ll (original)
+++ polly/trunk/test/ScopInfo/reduction_multiple_loops_array_sum.ll Fri Aug 1 03:13:25 2014
@@ -1,21 +1,21 @@
; RUN: opt -basicaa %loadPolly -polly-scops -analyze < %s | FileCheck %s
;
; CHECK: Stmt_for_body
-; CHECK: Reduction Type: MUL
+; CHECK: Reduction Type: *
; CHECK: MemRef_sum
-; CHECK: Reduction Type: MUL
+; CHECK: Reduction Type: *
; CHECK: MemRef_sum
; CHECK: Stmt_for_body3
; CHECK: Reduction Type: NONE
; CHECK: MemRef_A
-; CHECK: Reduction Type: ADD
+; CHECK: Reduction Type: +
; CHECK: MemRef_sum
-; CHECK: Reduction Type: ADD
+; CHECK: Reduction Type: +
; CHECK: MemRef_sum
; CHECK: Stmt_for_end
-; CHECK: Reduction Type: MUL
+; CHECK: Reduction Type: *
; CHECK: MemRef_sum
-; CHECK: Reduction Type: MUL
+; CHECK: Reduction Type: *
; CHECK: MemRef_sum
;
; void f(int *restrict A, int *restrict sum) {
Modified: polly/trunk/test/ScopInfo/reduction_multiple_loops_array_sum_1.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/reduction_multiple_loops_array_sum_1.ll?rev=214486&r1=214485&r2=214486&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/reduction_multiple_loops_array_sum_1.ll (original)
+++ polly/trunk/test/ScopInfo/reduction_multiple_loops_array_sum_1.ll Fri Aug 1 03:13:25 2014
@@ -6,11 +6,11 @@
; CHECK: Reduction Type: NONE
; CHECK: MemRef_sum_12
; CHECK: Stmt_for_inc
-; CHECK: Reduction Type: ADD
+; CHECK: Reduction Type: +
; CHECK: MemRef_sum_12
; CHECK: Reduction Type: NONE
; CHECK: MemRef_A
-; CHECK: Reduction Type: ADD
+; CHECK: Reduction Type: +
; CHECK: MemRef_sum_12
; CHECK: Stmt_for_inc5
; CHECK: Reduction Type: NONE
Modified: polly/trunk/test/ScopInfo/reduction_multiple_simple_binary.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/reduction_multiple_simple_binary.ll?rev=214486&r1=214485&r2=214486&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/reduction_multiple_simple_binary.ll (original)
+++ polly/trunk/test/ScopInfo/reduction_multiple_simple_binary.ll Fri Aug 1 03:13:25 2014
@@ -6,9 +6,9 @@
; CHECK: { Stmt_for_body[i0] -> MemRef_A[i0] };
; CHECK: MustWriteAccess := [Reduction Type: NONE
; CHECK: { Stmt_for_body[i0] -> MemRef_first[0] };
-; CHECK: ReadAccess := [Reduction Type: ADD
+; CHECK: ReadAccess := [Reduction Type: +
; CHECK: { Stmt_for_body[i0] -> MemRef_sum[0] };
-; CHECK: MustWriteAccess := [Reduction Type: ADD
+; CHECK: MustWriteAccess := [Reduction Type: +
; CHECK: { Stmt_for_body[i0] -> MemRef_sum[0] };
; CHECK: ReadAccess := [Reduction Type: NONE
; CHECK: { Stmt_for_body[i0] -> MemRef_A[-1 + i0] };
@@ -16,9 +16,9 @@
; CHECK: { Stmt_for_body[i0] -> MemRef_A[i0] };
; CHECK: MustWriteAccess := [Reduction Type: NONE
; CHECK: { Stmt_for_body[i0] -> MemRef_middle[0] };
-; CHECK: ReadAccess := [Reduction Type: MUL
+; CHECK: ReadAccess := [Reduction Type: *
; CHECK: { Stmt_for_body[i0] -> MemRef_prod[0] };
-; CHECK: MustWriteAccess := [Reduction Type: MUL
+; CHECK: MustWriteAccess := [Reduction Type: *
; CHECK: { Stmt_for_body[i0] -> MemRef_prod[0] };
; CHECK: ReadAccess := [Reduction Type: NONE
; CHECK: { Stmt_for_body[i0] -> MemRef_A[-1 + i0] };
Modified: polly/trunk/test/ScopInfo/reduction_non_overlapping_chains.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/reduction_non_overlapping_chains.ll?rev=214486&r1=214485&r2=214486&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/reduction_non_overlapping_chains.ll (original)
+++ polly/trunk/test/ScopInfo/reduction_non_overlapping_chains.ll Fri Aug 1 03:13:25 2014
@@ -1,9 +1,9 @@
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
;
-; CHECK: Reduction Type: ADD
-; CHECK: Reduction Type: ADD
-; CHECK: Reduction Type: MUL
-; CHECK: Reduction Type: MUL
+; CHECK: Reduction Type: +
+; CHECK: Reduction Type: +
+; CHECK: Reduction Type: *
+; CHECK: Reduction Type: *
;
; void f(int *sums) {
; for (int i = 0; i < 1024; i++) {
Modified: polly/trunk/test/ScopInfo/reduction_only_reduction_like_access.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/reduction_only_reduction_like_access.ll?rev=214486&r1=214485&r2=214486&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/reduction_only_reduction_like_access.ll (original)
+++ polly/trunk/test/ScopInfo/reduction_only_reduction_like_access.ll Fri Aug 1 03:13:25 2014
@@ -1,6 +1,6 @@
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
;
-; CHECK: Reduction Type: ADD
+; CHECK: Reduction Type: +
;
; void f(int *sum) {
; for (int i = 0; i < 100; i++)
Modified: polly/trunk/test/ScopInfo/reduction_simple_fp.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/reduction_simple_fp.ll?rev=214486&r1=214485&r2=214486&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/reduction_simple_fp.ll (original)
+++ polly/trunk/test/ScopInfo/reduction_simple_fp.ll Fri Aug 1 03:13:25 2014
@@ -3,7 +3,7 @@
; CHECK: Function: f_no_fast_math
; CHECK: Reduction Type: NONE
; CHECK: Function: f_fast_math
-; CHECK: Reduction Type: ADD
+; CHECK: Reduction Type: +
;
; void f(float *sum) {
; for (int i = 0; i < 100; i++)
Modified: polly/trunk/test/ScopInfo/reduction_simple_w_constant.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/reduction_simple_w_constant.ll?rev=214486&r1=214485&r2=214486&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/reduction_simple_w_constant.ll (original)
+++ polly/trunk/test/ScopInfo/reduction_simple_w_constant.ll Fri Aug 1 03:13:25 2014
@@ -1,6 +1,6 @@
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
;
-; CHECK: Reduction Type: ADD
+; CHECK: Reduction Type: +
;
; void f(int *sum) {
; for (int i = 0; i <= 100; i++)
Modified: polly/trunk/test/ScopInfo/reduction_simple_w_iv.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/reduction_simple_w_iv.ll?rev=214486&r1=214485&r2=214486&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/reduction_simple_w_iv.ll (original)
+++ polly/trunk/test/ScopInfo/reduction_simple_w_iv.ll Fri Aug 1 03:13:25 2014
@@ -1,6 +1,6 @@
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
;
-; CHECK: Reduction Type: ADD
+; CHECK: Reduction Type: +
;
; void f(int* sum) {
; for (int i = 0; i <= 100; i++)
Modified: polly/trunk/test/ScopInfo/reduction_two_identical_reads.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/reduction_two_identical_reads.ll?rev=214486&r1=214485&r2=214486&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/reduction_two_identical_reads.ll (original)
+++ polly/trunk/test/ScopInfo/reduction_two_identical_reads.ll Fri Aug 1 03:13:25 2014
@@ -1,6 +1,6 @@
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
;
-; CHECK-NOT: Reduction like: 1
+; CHECK: Reduction Type: NONE
;
; Check that we do not mark these accesses as reduction like.
; We do this for the case the loads are modelt with the same LLVM-IR value and
More information about the llvm-commits
mailing list