forked from OSchip/llvm-project
![]() The NewDefault was used to simplify the updating of PHI nodes, but it causes some inefficiency for target that will run structurizer later. For example, for a simple two-case switch, the extra NewDefault is causing unstructured CFG like: O / \ O O / \ / \ C1 ND C2 \ | / \ | / D The change is to avoid the ND(NewDefault) block, that is we will get a structured CFG for above example like: O / \ / \ O O / \ / \ C1 \ / C2 \-> D <-/ The IR change introduced by this patch should be trivial to other targets, so I am doing this unconditionally. Fall-through among the cases will also cause unstructured CFG, but it need more work and will be addressed in a separate change. Reviewed by: arsenm Differential Revision: https://reviews.llvm.org/D123607 |
||
---|---|---|
.. | ||
AMDGPU | ||
workarounds | ||
branch-on-argument.ll | ||
bug36015.ll | ||
interleaved-loop-order.ll | ||
invert-condition.ll | ||
invert-constantexpr.ll | ||
loop-continue-phi.ll | ||
loop-multiple-exits.ll | ||
nested-loop-order.ll | ||
nested-loop-subregion.ll | ||
no-branch-to-entry.ll | ||
one-loop-multiple-backedges.ll | ||
post-order-traversal-bug.ll | ||
rebuild-ssa-infinite-loop-inseltpoison.ll | ||
rebuild-ssa-infinite-loop.ll | ||
switch.ll |