mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 20:23:11 +01:00
8ac12d00ab
Summary: This patch teaches ADCE to preserve both DominatorTrees and PostDominatorTrees. This is reapplies the original patch r311057 that was reverted in r311381. The previous version wasn't using the batch update api for updating dominators, which in vary rare cases caused assertion failures. This also fixes PR34258. Reviewers: dberlin, chandlerc, sanjoy, davide, grosser, brzycki Reviewed By: davide Subscribers: grandinj, zhendongsu, llvm-commits, david2050 Differential Revision: https://reviews.llvm.org/D35869 llvm-svn: 311467
19 lines
470 B
LLVM
19 lines
470 B
LLVM
; RUN: opt < %s -adce -simplifycfg | llvm-dis
|
|
; RUN: opt < %s -passes=adce | llvm-dis
|
|
|
|
define i32 @Test(i32 %A, i32 %B) {
|
|
BB1:
|
|
br label %BB4
|
|
|
|
BB2: ; No predecessors!
|
|
br label %BB3
|
|
|
|
BB3: ; preds = %BB4, %BB2
|
|
%ret = phi i32 [ %X, %BB4 ], [ %B, %BB2 ] ; <i32> [#uses=1]
|
|
ret i32 %ret
|
|
|
|
BB4: ; preds = %BB1
|
|
%X = phi i32 [ %A, %BB1 ] ; <i32> [#uses=1]
|
|
br label %BB3
|
|
}
|