]> granicus.if.org Git - llvm/commit
[MemorySSA] LCSSA preserves MemorySSA.
authorAlina Sbirlea <asbirlea@google.com>
Tue, 23 Apr 2019 20:59:44 +0000 (20:59 +0000)
committerAlina Sbirlea <asbirlea@google.com>
Tue, 23 Apr 2019 20:59:44 +0000 (20:59 +0000)
commita7a3e6435dcc4e24e009fd64f4160de0a65cf4bb
treec966942ebcff8f14a91c2f60a26b36f8768b4185
parent2aee714ecd3127af5a214c8f33d0476a14fe0883
[MemorySSA] LCSSA preserves MemorySSA.

Summary:
Enabling MemorySSA in the old pass manager leads to MemorySSA being run
twice due to the fact that LCSSA and LoopSimplify do not preserve
MemorySSA. This is the first step to address that: target LCSSA.

LCSSA does not make any changes that invalidate MemorySSA, so it
preserves it by design. It must preserve AA as well, for this to hold.

After this patch, MemorySSA is still run twice in the old pass manager.
Step two follows: target LoopSimplify.

Subscribers: mehdi_amini, jlebar, Prazek, llvm-commits, george.burgess.iv, chandlerc

Tags: #llvm

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@359032 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Analysis/LoopAnalysisManager.h
include/llvm/Analysis/MemorySSA.h
lib/Analysis/LoopAnalysisManager.cpp
lib/Analysis/MemorySSA.cpp
lib/Transforms/Utils/LCSSA.cpp