]> granicus.if.org Git - llvm/commit
[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)
commita10cceeff41b0014afcab7578c56685ef1a6b203
tree9703b2f711dbbd3c924da90ba0ff754f57f2260f
parent018bd7a983b5be807489f2c6ca9f546cd1bdd6e7
[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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314435 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Transforms/Scalar/JumpThreading.h
include/llvm/Transforms/Utils/Local.h
lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
lib/Transforms/Scalar/JumpThreading.cpp
lib/Transforms/Utils/Local.cpp
test/Analysis/LazyValueAnalysis/lvi-after-jumpthreading.ll