llvm-project/llvm/test/Transforms/JumpThreading
Davide Italiano 75a001ba78 [JumpThreading] Stop falsely preserving LazyValueInfo.
JumpThreading claims to preserve LVI, but it doesn't preserve
the analyses which LVI holds a reference to (e.g. the Dominator).
In the current pass manager infrastructure, after JT runs, the
PM frees these analyses (including DominatorTree) but preserves
LVI.

CorrelatedValuePropagation runs immediately after and queries
a corrupted domtree, causing weird miscompiles.

This commit disables the preservation of LVI for the time being.
Eventually, we should either move LVI to a proper dependency
tracking mechanism (i.e. an analyses shouldn't hold references
to other analyses and compute them on demand if needed), or
we should teach all the passes preserving LVI to preserve the
analyses LVI depends on.

The new pass manager has a mechanism to invalidate LVI in case
one of the analyses it depends on becomes invalid, so this problem
shouldn't exist (at least not in this immediate form), but handling
of analyses holding references is still a very delicate subject.

Fixes PR33917 (and rustc).

llvm-svn: 309355
2017-07-28 03:10:43 +00:00
..
2008-11-27-EntryMunge.ll
2010-08-26-and.ll
2011-04-02-SimplifyDeadBlock.ll
2011-04-14-InfLoop.ll
2012-07-19-NoSuccessorIndirectBr.ll
and-and-cond.ll
and-cond.ll
assume-edge-dom.ll Revert @llvm.assume with operator bundles (r289755-r289757) 2016-12-19 08:22:17 +00:00
assume.ll [JumpThreading] Safely replace uses of condition 2017-05-23 13:36:25 +00:00
basic.ll Revert r300657 due to crashes in stage2 of bootstraps: 2017-04-19 06:23:20 +00:00
branch-no-const.ll
compare.ll
conservative-lvi.ll
crash.ll
degenerate-phi.ll
fold-not-thread.ll [JumpThreading] Safely replace uses of condition 2017-05-23 13:36:25 +00:00
guards.ll [JumpThreading] Safely replace uses of condition 2017-05-23 13:36:25 +00:00
implied-cond.ll
indirectbr.ll
induction.ll
landing-pad.ll
lvi-load.ll
no-irreducible-loops.ll
or-undef.ll
phi-eq.ll
phi-known.ll
pr9331.ll
pr15851_hang.ll
pr22086.ll
pr26096.ll
pr27840.ll
pr33605.ll [SimplifyCFG] Defer folding unconditional branches to LateSimplifyCFG if it can destroy canonical loop structure. 2017-07-19 08:53:34 +00:00
pr33917.ll [JumpThreading] Stop falsely preserving LazyValueInfo. 2017-07-28 03:10:43 +00:00
range-compare.ll [JumpThreading] Add test case that was supposed to go with r306085. 2017-06-27 15:26:47 +00:00
select.ll [JumpThreading] Add a pattern to TryToUnfoldSelectInCurrBB() 2017-07-14 19:16:47 +00:00
static-profile.ll [SimplifyCFG] Defer folding unconditional branches to LateSimplifyCFG if it can destroy canonical loop structure. 2017-07-19 08:53:34 +00:00
thread-cmp.ll
thread-loads.ll [JumpThreading] Perform phi-translation in SimplifyPartiallyRedundantLoad. 2017-03-19 15:30:53 +00:00
update-edge-weight.ll