diff options
| author | Michael Kruse <llvm@meinersbur.de> | 2017-07-27 14:09:31 +0000 |
|---|---|---|
| committer | Michael Kruse <llvm@meinersbur.de> | 2017-07-27 14:09:31 +0000 |
| commit | 8a8aca42997bcb09853d716c2778d010e52a009e (patch) | |
| tree | a352f9523d1f277587a090f48c9e51559a025898 /polly/test/Simplify | |
| parent | 88202be1f067578fe904cc38785b8e726523d7cf (diff) | |
| download | bcm5719-llvm-8a8aca42997bcb09853d716c2778d010e52a009e.tar.gz bcm5719-llvm-8a8aca42997bcb09853d716c2778d010e52a009e.zip | |
[Simplify] Count PHINodes in simplifiable exit nodes as escaping use.
After region exit simplification, the incoming block of a phi node in
the SCoP region's exit block lands outside of the region. Since we
treat SCoPs as if this already happened, we need to account for that
when looking for outside uses of scalars (i.e. escaping scalars).
llvm-svn: 309271
Diffstat (limited to 'polly/test/Simplify')
| -rw-r--r-- | polly/test/Simplify/exit_phi_accesses-2.ll | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/polly/test/Simplify/exit_phi_accesses-2.ll b/polly/test/Simplify/exit_phi_accesses-2.ll new file mode 100644 index 00000000000..fde3d01d9a2 --- /dev/null +++ b/polly/test/Simplify/exit_phi_accesses-2.ll @@ -0,0 +1,37 @@ +; RUN: opt %loadPolly -polly-scops -polly-simplify -analyze < %s | FileCheck %s +; +; The use of %sum.next by %phi counts as an escaping use. +; Don't remove the scalar write of %sum.next. +; +target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" + +define float @foo(float* %A) { +entry: + br label %header + +header: + fence seq_cst + br i1 true, label %body, label %exit + +body: + %i = phi i64 [ 0, %header ], [ %next, %body ] + %sum = phi float [ 0.0, %header ], [ %sum.next, %body ] + %arrayidx = getelementptr float, float* %A, i64 %i + %next = add nuw nsw i64 %i, 1 + %val = load float, float* %arrayidx + %sum.next = fadd float %sum, %val + %cond = icmp ne i64 %i, 100 + br i1 %cond, label %body, label %after + +after: + br label %exit + +exit: + %phi = phi float [%sum.next, %after], [0.0, %header] + ret float %phi +} + + +; CHECK: Statistics { +; CHECK: Dead accesses removed: 0 +; CHECK: } |

