mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 11:42:57 +01:00
f51788e894
When simplifying a Phi to the unique value found incoming, check that there wasn't a Phi already created to break a cycle. If so, remove it. Resolves PR43541. Some additional nits included. llvm-svn: 374471
51 lines
1.7 KiB
LLVM
51 lines
1.7 KiB
LLVM
; RUN: opt -gvn-hoist -enable-mssa-loop-dependency -S < %s | FileCheck %s
|
|
; REQUIRES: asserts
|
|
%struct.job_pool.6.7 = type { i32 }
|
|
|
|
; CHECK-LABEL: @f()
|
|
define dso_local void @f() {
|
|
entry:
|
|
br label %for.cond
|
|
|
|
for.cond: ; preds = %for.end, %entry
|
|
br label %for.body
|
|
|
|
for.body: ; preds = %for.cond
|
|
br label %if.end
|
|
|
|
if.then: ; No predecessors!
|
|
br label %if.end
|
|
|
|
if.end: ; preds = %if.then, %for.body
|
|
br i1 false, label %for.body12.lr.ph, label %for.end
|
|
|
|
for.body12.lr.ph: ; preds = %if.end
|
|
br label %for.body12
|
|
|
|
for.body12: ; preds = %if.end40, %for.body12.lr.ph
|
|
br label %if.then23
|
|
|
|
if.then23: ; preds = %for.body12
|
|
br i1 undef, label %if.then24, label %if.else
|
|
|
|
if.then24: ; preds = %if.then23
|
|
%0 = load %struct.job_pool.6.7*, %struct.job_pool.6.7** undef, align 8
|
|
br label %if.end40
|
|
|
|
if.else: ; preds = %if.then23
|
|
%1 = load %struct.job_pool.6.7*, %struct.job_pool.6.7** undef, align 8
|
|
br label %if.end40
|
|
|
|
if.end40: ; preds = %if.else, %if.then24
|
|
br i1 false, label %for.body12, label %for.cond9.for.end_crit_edge
|
|
|
|
for.cond9.for.end_crit_edge: ; preds = %if.end40
|
|
br label %for.end
|
|
|
|
for.end: ; preds = %for.cond9.for.end_crit_edge, %if.end
|
|
br i1 true, label %if.then45, label %for.cond
|
|
|
|
if.then45: ; preds = %for.end
|
|
ret void
|
|
}
|