Go to file
Chandler Carruth dd2e275a47 [PM/Unswitch] Fix a bug in the domtree update logic for the new unswitch
pass.

The original logic only considered direct successors of the hoisted
domtree nodes, but that isn't really enough. If there are other basic
blocks that are completely within the subtree, their successors could
just as easily be impacted by the hoisting.

The more I think about it, the more I think the correct update here is
to hoist every block on the dominance frontier which has an idom in the
chain we hoist across. However, this is subtle enough that I'd
definitely appreciate some more eyes on it.

Sadly, if this is the correct algorithm, it requires computing a (highly
localized) dominance frontier. I've done this in the simplest (IE, least
code) way I could come up with, but that may be too naive. Suggestions
welcome here, dominance update algorithms are not an area I've studied
much, so I don't have strong opinions.

In good news, with this patch, turning on simple unswitch passes the
LLVM test suite for me with asserts enabled.

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

llvm-svn: 303843
2017-05-25 06:33:36 +00:00
clang [coroutines] Fix fallthrough diagnostics for coroutines 2017-05-25 02:16:53 +00:00
clang-tools-extra Modify test so that it looks for patterns in stderr as well 2017-05-24 10:50:56 +00:00
compiler-rt [compiler-rt] Change default of allow_user_segv_handler to true 2017-05-25 06:29:30 +00:00
debuginfo-tests Add additional CHECKs to safestack.c. 2017-04-17 17:57:05 +00:00
libclc
libcxx Remove <experimental/coroutine> from the module map for now. It doesn't work unless modules are enabled 2017-05-25 05:30:05 +00:00
libcxxabi [Demangler] Remove a failing assert introduced in r303718 2017-05-24 20:53:13 +00:00
libunwind [libunwind] Fix executable stack directive on Linux. 2017-05-16 20:18:57 +00:00
lld Reduce indentation. NFC. 2017-05-24 22:36:11 +00:00
lldb Fix the warning when you pass -c to step/next/si/ni. 2017-05-25 02:24:18 +00:00
llgo
llvm [PM/Unswitch] Fix a bug in the domtree update logic for the new unswitch 2017-05-25 06:33:36 +00:00
openmp Fix for KMP_AFFINITY=respect with multiple processor groups 2017-05-15 19:05:59 +00:00
parallel-libs
polly Drop newline in docs builder to see if Polly docs are updated 2017-05-25 05:38:05 +00:00