1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00
llvm-mirror/test/Transforms/Util
Jakub Kuderski cc245c26cb Handle successor's PHI node correctly when flattening CFG merges two if-regions
Summary:
FlattenCFG merges two 'if' basicblocks by inserting one basicblock
to another basicblock. The inserted basicblock can have a successor
that contains a PHI node whoes incoming basicblock is the inserted
basicblock. Since the existing code does not handle it, it becomes
a badref.

if (cond1)
  statement
if (cond2)
  statement
successor - contains PHI node whose predecessor is cond2

-->
if (cond1 || cond2)
  statement
(BB for cond2 was deleted)
successor - contains PHI node whose predecessor is cond2 --> bad ref!

Author: Jaebaek Seo

Reviewers: asbirlea, kuhar, tstellar, chandlerc, davide, dexonsmith

Reviewed By: kuhar

Subscribers: hiraditya, llvm-commits

Tags: #llvm

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

llvm-svn: 372989
2019-09-26 15:20:17 +00:00
..
PredicateInfo
call-promotion-utils-ptrcast-attribute.ll
call-promotion-utils-ptrcast.ll
clone-dicompileunit.ll
combine-alias-scope-metadata.ll
dbg-user-of-aext.ll
flattencfg.ll Handle successor's PHI node correctly when flattening CFG merges two if-regions 2019-09-26 15:20:17 +00:00
libcalls-fast-math-inf-loop.ll
libcalls-opt-remarks.ll
libcalls-shrinkwrap-double.ll
libcalls-shrinkwrap-float.ll
libcalls-shrinkwrap-long-double.ll
lowerinvoke-funclet.ll
lowerswitch.ll
PR37334-break-crit-edges-require-dt.ll
simplify-dbg-declare-load.ll
store-first-op.ll
strip-gc-relocates.ll
strip-nonlinetable-debuginfo-containingtypes.ll
strip-nonlinetable-debuginfo-cus.ll
strip-nonlinetable-debuginfo-localvars.ll
strip-nonlinetable-debuginfo-loops.ll
strip-nonlinetable-debuginfo-subroutinetypes.ll