Files
clang-p2996/polly/test/ScopInfo/exit-phi-2.ll
Michael Kruse a43ba2d84f [ScopBuilder] Make -polly-stmt-granularity=scalar-indep the default.
Splitting basic blocks into multiple statements if there are now
additional scalar dependencies gives more freedom to the scheduler, but
more statements also means higher compile-time complexity. Switch to
finer statement granularity, the additional compile time should be
limited by the number of operations quota.

The regression tests are written for the -polly-stmt-granularity=bb
setting, therefore we add that flag to those tests that break with the
new default. Some of the tests only fail because the statements are
named differently due to a basic block resulting in multiple statements,
but which are removed during simplification of statements without
side-effects. Previous commits tried to reduce this effect, but it is
not completely avoidable.

Differential Revision: https://reviews.llvm.org/D42151

llvm-svn: 324169
2018-02-03 06:59:47 +00:00

43 lines
1.5 KiB
LLVM

; RUN: opt %loadPolly -polly-stmt-granularity=bb -polly-scops -analyze < %s | FileCheck %s
;
; Check that there is no MK_ExitPHI READ access.
;
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
define void @local_book_besterror() {
entry:
%0 = load i64, i64* undef, align 8
%conv = trunc i64 %0 to i32
br label %for.body64
for.body64:
%bestf.011 = phi float [ 0.000000e+00, %entry ], [ %this.0.bestf.0, %if.end92 ]
br label %for.body74
for.body74:
br i1 false, label %for.body74, label %for.cond71.for.end85_crit_edge
for.cond71.for.end85_crit_edge:
%cmp88 = fcmp olt float undef, %bestf.011
%this.0.bestf.0 = select i1 undef, float undef, float %bestf.011
br label %if.end92
if.end92:
br i1 undef, label %for.body64, label %for.cond60.if.end96.loopexit_crit_edge
for.cond60.if.end96.loopexit_crit_edge: ; preds = %if.end92
ret void
}
; CHECK: Statements {
; CHECK-NEXT: Stmt_for_cond71_for_end85_crit_edge
; CHECK-NEXT: Domain :=
; CHECK-NEXT: { Stmt_for_cond71_for_end85_crit_edge[] };
; CHECK-NEXT: Schedule :=
; CHECK-NEXT: { Stmt_for_cond71_for_end85_crit_edge[] -> [] };
; CHECK-NEXT: ReadAccess := [Reduction Type: NONE] [Scalar: 1]
; CHECK-NEXT: { Stmt_for_cond71_for_end85_crit_edge[] -> MemRef_bestf_011[] };
; CHECK-NEXT: MustWriteAccess := [Reduction Type: NONE] [Scalar: 1]
; CHECK-NEXT: { Stmt_for_cond71_for_end85_crit_edge[] -> MemRef_this_0_bestf_0[] };
; CHECK-NEXT: }