llvm-project/llvm/lib/Transforms
John Brawn 39ac159c24 [LICM] Adjust how moving the re-hoist point works
In some cases the order that we hoist instructions in means that when rehoisting
(which uses the same order as hoisting) we can rehoist to a block A, then a
block B, then block A again. This currently causes an assertion failure as it
expects that when changing the hoist point it only ever moves to a block that
dominates the hoist point being moved from.

Fix this by moving the re-hoist point when it doesn't dominate the dominator of
hoisted instruction, or in other words when it wouldn't dominate the uses of
the instruction being rehoisted.

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

llvm-svn: 350408
2019-01-04 17:12:09 +00:00
..
AggressiveInstCombine Format AggresiveInstCombine.cpp. NFC 2019-01-02 19:51:46 +00:00
Coroutines Fix compiler warning about unused variable [NFC] 2018-12-12 06:33:45 +00:00
Hello cmake: Remove add_llvm_loadable_module() 2018-12-20 22:04:08 +00:00
IPO [ThinLTO] Scan all variants of vague symbol for reachability. 2019-01-02 23:18:20 +00:00
InstCombine [InstCombine] canonicalize raw IR rotate patterns to funnel shift 2019-01-01 21:51:39 +00:00
Instrumentation [NewPM] Port Msan 2019-01-03 13:42:44 +00:00
ObjCARC Teach ObjCARC optimizer about equivalent PHIs when eliminating autoreleaseRV/retainRV pairs 2019-01-03 01:38:08 +00:00
Scalar [LICM] Adjust how moving the re-hoist point works 2019-01-04 17:12:09 +00:00
Utils [UnrollRuntime] Move the DomTree verification under expensive checks 2019-01-03 19:43:33 +00:00
Vectorize [llvm] API for encoding/decoding DWARF discriminators. 2018-12-21 22:48:50 +00:00
CMakeLists.txt Another try to commit 323321 (aggressive instruction combine). 2018-01-25 12:06:32 +00:00
LLVMBuild.txt Another try to commit 323321 (aggressive instruction combine). 2018-01-25 12:06:32 +00:00