[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