[JumpThreading] Preserve DT and LVI across the pass
authorEvandro Menezes <e.menezes@samsung.com>
Thu, 28 Sep 2017 17:24:40 +0000 (17:24 +0000)
committerEvandro Menezes <e.menezes@samsung.com>
Thu, 28 Sep 2017 17:24:40 +0000 (17:24 +0000)
commit3701df55c671d2def10463fd13015ded7472e19a
treefc15f37c5cc008710c2ac1bf47dd460d14591f10
parent100247fde449636b4882de14981b203bd5bb410a
[JumpThreading] Preserve DT and LVI across the pass

JumpThreading now preserves dominance and lazy value information across the
entire pass.  The pass manager is also informed of this preservation with
the goal of DT and LVI being recalculated fewer times overall during
compilation.

This change prepares JumpThreading for enhanced opportunities; particularly
those across loop boundaries.

Patch by: Brian Rzycki <b.rzycki@samsung.com>,
          Sebastian Pop <s.pop@samsung.com>

Differential revision: https://reviews.llvm.org/D37528

llvm-svn: 314435
llvm/include/llvm/Transforms/Scalar/JumpThreading.h
llvm/include/llvm/Transforms/Utils/Local.h
llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
llvm/lib/Transforms/Scalar/JumpThreading.cpp
llvm/lib/Transforms/Utils/Local.cpp
llvm/test/Analysis/LazyValueAnalysis/lvi-after-jumpthreading.ll