[polly] r212126 - Introduce reduction types
Johannes Doerfert
jdoerfert at codeaurora.org
Tue Jul 1 13:52:52 PDT 2014
Author: jdoerfert
Date: Tue Jul 1 15:52:51 2014
New Revision: 212126
URL: http://llvm.org/viewvc/llvm-project?rev=212126&view=rev
Log:
Introduce reduction types
This change is particularly useful in the code generation as we need
to know which binary operator/identity element we need to combine/initialize
the privatization locations.
+ Print the reduction type for each memory access
+ Adjusted the test cases to comply with the new output format and
to test for the right reduction type
Modified:
polly/trunk/include/polly/ScopInfo.h
polly/trunk/lib/Analysis/ScopInfo.cpp
polly/trunk/test/ScopInfo/loop_affine_bound_0.ll
polly/trunk/test/ScopInfo/loop_affine_bound_1.ll
polly/trunk/test/ScopInfo/loop_affine_bound_2.ll
polly/trunk/test/ScopInfo/reduction_disabled_multiplicative.ll
polly/trunk/test/ScopInfo/reduction_escaping_intermediate.ll
polly/trunk/test/ScopInfo/reduction_escaping_intermediate_2.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/simple_loop_1.ll
Modified: polly/trunk/include/polly/ScopInfo.h
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/include/polly/ScopInfo.h?rev=212126&r1=212125&r2=212126&view=diff
==============================================================================
--- polly/trunk/include/polly/ScopInfo.h (original)
+++ polly/trunk/include/polly/ScopInfo.h Tue Jul 1 15:52:51 2014
@@ -84,6 +84,18 @@ public:
/// remain, if no write happens.
enum AccessType { READ, MUST_WRITE, MAY_WRITE };
+ /// @brief Reduction access type
+ ///
+ /// Commutative and associative binary operations suitable for reductions
+ enum ReductionType {
+ RT_NONE, ///< Indicate no reduction at all
+ RT_ADD, ///< Addition
+ RT_MUL, ///< Multiplication
+ RT_BOR, ///< Bitwise Or
+ RT_BXOR, ///< Bitwise XOr
+ RT_BAND, ///< Bitwise And
+ };
+
private:
MemoryAccess(const MemoryAccess &) LLVM_DELETED_FUNCTION;
const MemoryAccess &operator=(const MemoryAccess &) LLVM_DELETED_FUNCTION;
@@ -97,7 +109,7 @@ private:
void setBaseName();
ScopStmt *Statement;
- /// @brief Flag to indicate reduction like accesses
+ /// @brief Reduction type for reduction like accesses, RT_NONE otherwise
///
/// An access is reduction like if it is part of a load-store chain in which
/// both access the same memory location (use the same LLVM-IR value
@@ -121,7 +133,7 @@ private:
/// property is only exploited for statement instances that load from and
/// store to the same data location. Doing so at dependence analysis time
/// could allow us to handle the above example.
- bool IsReductionLike = false;
+ ReductionType RedType = RT_NONE;
const Instruction *Inst;
@@ -149,7 +161,7 @@ public:
enum AccessType getType() { return Type; }
/// @brief Is this a reduction like access?
- bool isReductionLike() const { return IsReductionLike; }
+ bool isReductionLike() const { return RedType != RT_NONE; }
/// @brief Is this a read memory access?
bool isRead() const { return Type == MemoryAccess::READ; }
@@ -205,11 +217,14 @@ public:
/// @brief Get the statement that contains this memory access.
ScopStmt *getStatement() const { return Statement; }
+ /// @brief Get the reduction type of this access
+ ReductionType getReductionType() const { return RedType; }
+
/// @brief Set the updated access relation read from JSCOP file.
void setNewAccessRelation(isl_map *newAccessRelation);
/// @brief Mark this a reduction like access
- void markReductionLike() { IsReductionLike = true; }
+ void markAsReductionLike(ReductionType RT) { RedType = RT; }
/// @brief Align the parameters in the access relation to the scop context
void realignParams();
@@ -223,6 +238,9 @@ public:
void dump() const;
};
+llvm::raw_ostream &operator<<(llvm::raw_ostream &OS,
+ MemoryAccess::ReductionType RT);
+
//===----------------------------------------------------------------------===//
/// @brief Statement of the Scop
///
Modified: polly/trunk/lib/Analysis/ScopInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Analysis/ScopInfo.cpp?rev=212126&r1=212125&r2=212126&view=diff
==============================================================================
--- polly/trunk/lib/Analysis/ScopInfo.cpp (original)
+++ polly/trunk/lib/Analysis/ScopInfo.cpp Tue Jul 1 15:52:51 2014
@@ -273,6 +273,36 @@ int SCEVAffinator::getLoopDepth(const Lo
return L->getLoopDepth() - outerLoop->getLoopDepth();
}
+/// @brief Return the reduction type for a given binary operator
+static MemoryAccess::ReductionType getReductionType(const BinaryOperator *BinOp,
+ const Instruction *Load) {
+ if (!BinOp)
+ return MemoryAccess::RT_NONE;
+ switch (BinOp->getOpcode()) {
+ case Instruction::FAdd:
+ if (!BinOp->hasUnsafeAlgebra())
+ return MemoryAccess::RT_NONE;
+ // Fall through
+ case Instruction::Add:
+ return MemoryAccess::RT_ADD;
+ case Instruction::Or:
+ return MemoryAccess::RT_BOR;
+ case Instruction::Xor:
+ return MemoryAccess::RT_BXOR;
+ case Instruction::And:
+ return MemoryAccess::RT_BAND;
+ case Instruction::FMul:
+ if (!BinOp->hasUnsafeAlgebra())
+ return MemoryAccess::RT_NONE;
+ // Fall through
+ case Instruction::Mul:
+ if (DisableMultiplicativeReductions)
+ return MemoryAccess::RT_NONE;
+ return MemoryAccess::RT_MUL;
+ default:
+ return MemoryAccess::RT_NONE;
+ }
+}
//===----------------------------------------------------------------------===//
MemoryAccess::~MemoryAccess() {
@@ -396,6 +426,31 @@ MemoryAccess::MemoryAccess(const Value *
AccessRelation = isl_map_align_params(AccessRelation, ParamSpace);
}
+raw_ostream &polly::operator<<(raw_ostream &OS,
+ MemoryAccess::ReductionType RT) {
+ switch (RT) {
+ case 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;
+ }
+ return OS;
+}
+
void MemoryAccess::print(raw_ostream &OS) const {
switch (Type) {
case READ:
@@ -408,7 +463,7 @@ void MemoryAccess::print(raw_ostream &OS
OS.indent(12) << "MayWriteAccess :=\t";
break;
}
- OS << "[Reduction like: " << isReductionLike() << "]\n";
+ OS << "[Reduction Type: " << getReductionType() << "]\n";
OS.indent(16) << getAccessRelationStr() << ";\n";
}
@@ -820,10 +875,15 @@ void ScopStmt::checkForReductions() {
if (!Valid)
continue;
+ const LoadInst *Load =
+ dyn_cast<const LoadInst>(CandidatePair.first->getAccessInstruction());
+ MemoryAccess::ReductionType RT =
+ getReductionType(dyn_cast<BinaryOperator>(Load->user_back()), Load);
+
// If no overlapping access was found we mark the load and store as
// reduction like.
- CandidatePair.first->markReductionLike();
- CandidatePair.second->markReductionLike();
+ CandidatePair.first->markAsReductionLike(RT);
+ CandidatePair.second->markAsReductionLike(RT);
}
}
Modified: polly/trunk/test/ScopInfo/loop_affine_bound_0.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/loop_affine_bound_0.ll?rev=212126&r1=212125&r2=212126&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/loop_affine_bound_0.ll (original)
+++ polly/trunk/test/ScopInfo/loop_affine_bound_0.ll Tue Jul 1 15:52:51 2014
@@ -59,6 +59,6 @@ return:
; CHECK: [N, M] -> { Stmt_bb1[i0, i1] : i0 >= 0 and i0 <= 2 + 4N + 7M and i1 >= 0 and i1 <= 1 + 5N and N >= 0 };
; CHECK: Scattering :=
; CHECK: [N, M] -> { Stmt_bb1[i0, i1] -> scattering[0, i0, 0, i1, 0] };
-; CHECK: MustWriteAccess := [Reduction like: 0]
+; CHECK: MustWriteAccess := [Reduction Type: NONE]
; CHECK: [N, M] -> { Stmt_bb1[i0, i1] -> MemRef_a[i0 + 128i1] };
; CHECK: }
Modified: polly/trunk/test/ScopInfo/loop_affine_bound_1.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/loop_affine_bound_1.ll?rev=212126&r1=212125&r2=212126&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/loop_affine_bound_1.ll (original)
+++ polly/trunk/test/ScopInfo/loop_affine_bound_1.ll Tue Jul 1 15:52:51 2014
@@ -58,6 +58,6 @@ return:
; CHECK: [N, M] -> { Stmt_bb1[i0, i1] : i0 >= 0 and i0 <= 2 + 4N + 7M and i1 >= 0 and i1 <= 1 + 5N - i0 and i0 <= 1 + 5N };
; CHECK: Scattering :=
; CHECK: [N, M] -> { Stmt_bb1[i0, i1] -> scattering[0, i0, 0, i1, 0] };
-; CHECK: MustWriteAccess := [Reduction like: 0]
+; CHECK: MustWriteAccess := [Reduction Type: NONE]
; CHECK: [N, M] -> { Stmt_bb1[i0, i1] -> MemRef_a[129i0 + 128i1] };
; CHECK: }
Modified: polly/trunk/test/ScopInfo/loop_affine_bound_2.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/loop_affine_bound_2.ll?rev=212126&r1=212125&r2=212126&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/loop_affine_bound_2.ll (original)
+++ polly/trunk/test/ScopInfo/loop_affine_bound_2.ll Tue Jul 1 15:52:51 2014
@@ -69,6 +69,6 @@ return:
; CHECK: [N, M] -> { Stmt_bb1[i0, i1] : i0 >= 0 and i0 <= 2 + 4N + 7M and i1 >= 0 and i1 <= 10 + 5N - 6M - 4i0 and 4i0 <= 10 + 5N - 6M };
; CHECK: Scattering :=
; CHECK: [N, M] -> { Stmt_bb1[i0, i1] -> scattering[0, i0, 0, i1, 0] };
-; CHECK: MustWriteAccess := [Reduction like: 0]
+; CHECK: MustWriteAccess := [Reduction Type: NONE]
; CHECK: [N, M] -> { Stmt_bb1[i0, i1] -> MemRef_a[-1152 + 768M + 897i0 + 128i1] };
; CHECK: }
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=212126&r1=212125&r2=212126&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/reduction_disabled_multiplicative.ll (original)
+++ polly/trunk/test/ScopInfo/reduction_disabled_multiplicative.ll Tue Jul 1 15:52:51 2014
@@ -1,12 +1,12 @@
; RUN: opt -basicaa %loadPolly -polly-scops -analyze -polly-disable-multiplicative-reductions < %s | FileCheck %s
;
-; CHECK: ReadAccess := [Reduction like: 1]
+; CHECK: ReadAccess := [Reduction Type: ADD
; CHECK: { Stmt_for_body[i0] -> MemRef_sum[0] };
-; CHECK: MustWriteAccess := [Reduction like: 1]
+; CHECK: MustWriteAccess := [Reduction Type: ADD
; CHECK: { Stmt_for_body[i0] -> MemRef_sum[0] };
-; CHECK: ReadAccess := [Reduction like: 0]
+; CHECK: ReadAccess := [Reduction Type: NONE
; CHECK: { Stmt_for_body[i0] -> MemRef_prod[0] };
-; CHECK: MustWriteAccess := [Reduction like: 0]
+; CHECK: MustWriteAccess := [Reduction Type: NONE
; CHECK: { Stmt_for_body[i0] -> MemRef_prod[0] };
;
; int sum, prod;
Modified: polly/trunk/test/ScopInfo/reduction_escaping_intermediate.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/reduction_escaping_intermediate.ll?rev=212126&r1=212125&r2=212126&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/reduction_escaping_intermediate.ll (original)
+++ polly/trunk/test/ScopInfo/reduction_escaping_intermediate.ll Tue Jul 1 15:52:51 2014
@@ -10,11 +10,11 @@
; }
; }
;
-; CHECK: Reduction like: 0
+; CHECK: Reduction Type: NONE
; CHECK: sums
-; CHECK: Reduction like: 0
+; CHECK: Reduction Type: NONE
; CHECK: sums
-; CHECK: Reduction like: 0
+; CHECK: Reduction Type: NONE
; CHECK: escape
target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-n32-S64"
Modified: polly/trunk/test/ScopInfo/reduction_escaping_intermediate_2.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/reduction_escaping_intermediate_2.ll?rev=212126&r1=212125&r2=212126&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/reduction_escaping_intermediate_2.ll (original)
+++ polly/trunk/test/ScopInfo/reduction_escaping_intermediate_2.ll Tue Jul 1 15:52:51 2014
@@ -10,15 +10,15 @@
; }
; }
;
-; CHECK: Reduction like: 0
+; CHECK: Reduction Type: NONE
; CHECK: sums
-; CHECK: Reduction like: 0
+; CHECK: Reduction Type: NONE
; CHECK: sums
-; CHECK: Reduction like: 0
+; CHECK: Reduction Type: NONE
; CHECK: escape
-; CHECK: Reduction like: 0
+; CHECK: Reduction Type: NONE
; CHECK: sums
-; CHECK: Reduction like: 0
+; CHECK: Reduction Type: NONE
; CHECK: escape
target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-n32-S64"
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=212126&r1=212125&r2=212126&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/reduction_invalid_different_operators.ll (original)
+++ polly/trunk/test/ScopInfo/reduction_invalid_different_operators.ll Tue Jul 1 15:52:51 2014
@@ -10,7 +10,8 @@
; return sum + sth;
; }
;
-; CHECK-NOT: Reduction like: 1
+; CHECK-NOT: Reduction Type: ADD
+; CHECK-NOT: Reduction Type: MUL
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=212126&r1=212125&r2=212126&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/reduction_invalid_overlapping_accesses.ll (original)
+++ polly/trunk/test/ScopInfo/reduction_invalid_overlapping_accesses.ll Tue Jul 1 15:52:51 2014
@@ -10,7 +10,8 @@
; }
; }
;
-; CHECK-NOT: Reduction like: 1
+; CHECK-NOT: Reduction Type: ADD
+; CHECK-NOT: Reduction Type: MUL
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=212126&r1=212125&r2=212126&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/reduction_multiple_loops_array_sum.ll (original)
+++ polly/trunk/test/ScopInfo/reduction_multiple_loops_array_sum.ll Tue Jul 1 15:52:51 2014
@@ -1,21 +1,21 @@
; RUN: opt -basicaa %loadPolly -polly-scops -analyze < %s | FileCheck %s
;
; CHECK: Stmt_for_body
-; CHECK: Reduction like: 1
+; CHECK: Reduction Type: MUL
; CHECK: MemRef_sum
-; CHECK: Reduction like: 1
+; CHECK: Reduction Type: MUL
; CHECK: MemRef_sum
; CHECK: Stmt_for_body3
-; CHECK: Reduction like: 0
+; CHECK: Reduction Type: NONE
; CHECK: MemRef_A
-; CHECK: Reduction like: 1
+; CHECK: Reduction Type: ADD
; CHECK: MemRef_sum
-; CHECK: Reduction like: 1
+; CHECK: Reduction Type: ADD
; CHECK: MemRef_sum
; CHECK: Stmt_for_end
-; CHECK: Reduction like: 1
+; CHECK: Reduction Type: MUL
; CHECK: MemRef_sum
-; CHECK: Reduction like: 1
+; CHECK: Reduction Type: MUL
; 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=212126&r1=212125&r2=212126&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 Tue Jul 1 15:52:51 2014
@@ -1,21 +1,21 @@
; RUN: opt -basicaa %loadPolly -polly-scops -analyze < %s | FileCheck %s
;
; CHECK: Stmt_for_body
-; CHECK: Reduction like: 0
+; CHECK: Reduction Type: NONE
; CHECK: MemRef_sum_04
-; CHECK: Reduction like: 0
+; CHECK: Reduction Type: NONE
; CHECK: MemRef_sum_12
; CHECK: Stmt_for_inc
-; CHECK: Reduction like: 1
+; CHECK: Reduction Type: ADD
; CHECK: MemRef_sum_12
-; CHECK: Reduction like: 0
+; CHECK: Reduction Type: NONE
; CHECK: MemRef_A
-; CHECK: Reduction like: 1
+; CHECK: Reduction Type: ADD
; CHECK: MemRef_sum_12
; CHECK: Stmt_for_inc5
-; CHECK: Reduction like: 0
+; CHECK: Reduction Type: NONE
; CHECK: MemRef_sum_12
-; CHECK: Reduction like: 0
+; CHECK: Reduction Type: NONE
; CHECK: MemRef_sum_04
;
; int f(int * __restrict__ A) {
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=212126&r1=212125&r2=212126&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/reduction_multiple_simple_binary.ll (original)
+++ polly/trunk/test/ScopInfo/reduction_multiple_simple_binary.ll Tue Jul 1 15:52:51 2014
@@ -1,30 +1,30 @@
; RUN: opt -basicaa %loadPolly -polly-scops -analyze < %s | FileCheck %s
;
-; CHECK: ReadAccess := [Reduction like: 0]
+; CHECK: ReadAccess := [Reduction Type: NONE
; CHECK: { Stmt_for_body[i0] -> MemRef_A[1 + i0] };
-; CHECK: ReadAccess := [Reduction like: 0]
+; CHECK: ReadAccess := [Reduction Type: NONE
; CHECK: { Stmt_for_body[i0] -> MemRef_A[i0] };
-; CHECK: MustWriteAccess := [Reduction like: 0]
+; CHECK: MustWriteAccess := [Reduction Type: NONE
; CHECK: { Stmt_for_body[i0] -> MemRef_first[0] };
-; CHECK: ReadAccess := [Reduction like: 1]
+; CHECK: ReadAccess := [Reduction Type: ADD
; CHECK: { Stmt_for_body[i0] -> MemRef_sum[0] };
-; CHECK: MustWriteAccess := [Reduction like: 1]
+; CHECK: MustWriteAccess := [Reduction Type: ADD
; CHECK: { Stmt_for_body[i0] -> MemRef_sum[0] };
-; CHECK: ReadAccess := [Reduction like: 0]
+; CHECK: ReadAccess := [Reduction Type: NONE
; CHECK: { Stmt_for_body[i0] -> MemRef_A[-1 + i0] };
-; CHECK: ReadAccess := [Reduction like: 0]
+; CHECK: ReadAccess := [Reduction Type: NONE
; CHECK: { Stmt_for_body[i0] -> MemRef_A[i0] };
-; CHECK: MustWriteAccess := [Reduction like: 0]
+; CHECK: MustWriteAccess := [Reduction Type: NONE
; CHECK: { Stmt_for_body[i0] -> MemRef_middle[0] };
-; CHECK: ReadAccess := [Reduction like: 1]
+; CHECK: ReadAccess := [Reduction Type: MUL
; CHECK: { Stmt_for_body[i0] -> MemRef_prod[0] };
-; CHECK: MustWriteAccess := [Reduction like: 1]
+; CHECK: MustWriteAccess := [Reduction Type: MUL
; CHECK: { Stmt_for_body[i0] -> MemRef_prod[0] };
-; CHECK: ReadAccess := [Reduction like: 0]
+; CHECK: ReadAccess := [Reduction Type: NONE
; CHECK: { Stmt_for_body[i0] -> MemRef_A[-1 + i0] };
-; CHECK: ReadAccess := [Reduction like: 0]
+; CHECK: ReadAccess := [Reduction Type: NONE
; CHECK: { Stmt_for_body[i0] -> MemRef_A[1 + i0] };
-; CHECK: MustWriteAccess := [Reduction like: 0]
+; CHECK: MustWriteAccess := [Reduction Type: NONE
; CHECK: { Stmt_for_body[i0] -> MemRef_last[0] };
;
; int first, sum, middle, prod, last;
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=212126&r1=212125&r2=212126&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/reduction_non_overlapping_chains.ll (original)
+++ polly/trunk/test/ScopInfo/reduction_non_overlapping_chains.ll Tue Jul 1 15:52:51 2014
@@ -1,9 +1,9 @@
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
;
-; CHECK: Reduction like: 1
-; CHECK: Reduction like: 1
-; CHECK: Reduction like: 1
-; CHECK: Reduction like: 1
+; CHECK: Reduction Type: ADD
+; CHECK: Reduction Type: ADD
+; CHECK: Reduction Type: MUL
+; CHECK: Reduction Type: MUL
;
; 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=212126&r1=212125&r2=212126&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/reduction_only_reduction_like_access.ll (original)
+++ polly/trunk/test/ScopInfo/reduction_only_reduction_like_access.ll Tue Jul 1 15:52:51 2014
@@ -1,6 +1,6 @@
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
;
-; CHECK: Reduction like: 1
+; CHECK: Reduction Type: ADD
;
; 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=212126&r1=212125&r2=212126&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/reduction_simple_fp.ll (original)
+++ polly/trunk/test/ScopInfo/reduction_simple_fp.ll Tue Jul 1 15:52:51 2014
@@ -1,9 +1,9 @@
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
;
; CHECK: Function: f_no_fast_math
-; CHECK: Reduction like: 0
+; CHECK: Reduction Type: NONE
; CHECK: Function: f_fast_math
-; CHECK: Reduction like: 1
+; CHECK: Reduction Type: ADD
;
; 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=212126&r1=212125&r2=212126&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/reduction_simple_w_constant.ll (original)
+++ polly/trunk/test/ScopInfo/reduction_simple_w_constant.ll Tue Jul 1 15:52:51 2014
@@ -1,6 +1,6 @@
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
;
-; CHECK: Reduction like: 1
+; CHECK: Reduction Type: ADD
;
; 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=212126&r1=212125&r2=212126&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/reduction_simple_w_iv.ll (original)
+++ polly/trunk/test/ScopInfo/reduction_simple_w_iv.ll Tue Jul 1 15:52:51 2014
@@ -1,6 +1,6 @@
; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
;
-; CHECK: Reduction like: 1
+; CHECK: Reduction Type: ADD
;
; void f(int* sum) {
; for (int i = 0; i <= 100; i++)
Modified: polly/trunk/test/ScopInfo/simple_loop_1.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/simple_loop_1.ll?rev=212126&r1=212125&r2=212126&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/simple_loop_1.ll (original)
+++ polly/trunk/test/ScopInfo/simple_loop_1.ll Tue Jul 1 15:52:51 2014
@@ -30,5 +30,5 @@ return:
; CHECK: [N] -> { Stmt_bb[i0] : i0 >= 0 and i0 <= -1 + N };
; CHECK: Scattering :=
; CHECK: [N] -> { Stmt_bb[i0] -> scattering[0, i0, 0] };
-; CHECK: MustWriteAccess := [Reduction like: 0]
+; CHECK: MustWriteAccess := [Reduction Type: NONE]
; CHECK: [N] -> { Stmt_bb[i0] -> MemRef_a[i0] };
More information about the llvm-commits
mailing list