OSDN Git Service

[MemorySSA] Teach LoopSimplify to preserve MemorySSA.
authorAlina Sbirlea <asbirlea@google.com>
Wed, 8 May 2019 17:05:36 +0000 (17:05 +0000)
committerAlina Sbirlea <asbirlea@google.com>
Wed, 8 May 2019 17:05:36 +0000 (17:05 +0000)
commitc419d3f938c00da17410c05427a5be7d73f1bf52
treeb53a104d6a1d602b546831d06305eb2d8cc55e29
parenta6f66db61d36c3819f1e1c0c9dc2d2e7df92fe3d
[MemorySSA] Teach LoopSimplify to preserve MemorySSA.

Summary:
Preserve MemorySSA in LoopSimplify, in the old pass manager, if the analysis is available.
Do not preserve it in the new pass manager.
Update tests.

Subscribers: nemanjai, jlebar, javed.absar, Prazek, kbarton, zzheng, jsji, llvm-commits, george.burgess.iv, chandlerc

Tags: #llvm

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360270 91177308-0d34-0410-b5e6-96231b3b80d8
18 files changed:
include/llvm/Analysis/LoopInfo.h
include/llvm/Analysis/MemorySSAUpdater.h
include/llvm/Transforms/Utils/Local.h
include/llvm/Transforms/Utils/LoopSimplify.h
include/llvm/Transforms/Utils/LoopUtils.h
lib/Analysis/LoopInfo.cpp
lib/Analysis/MemorySSAUpdater.cpp
lib/Target/PowerPC/PPCCTRLoops.cpp
lib/Target/PowerPC/PPCLoopPreIncPrep.cpp
lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp
lib/Transforms/Scalar/LoopInterchange.cpp
lib/Transforms/Scalar/LoopUnrollPass.cpp
lib/Transforms/Utils/Local.cpp
lib/Transforms/Utils/LoopSimplify.cpp
lib/Transforms/Utils/LoopUnroll.cpp
lib/Transforms/Utils/LoopUnrollPeel.cpp
lib/Transforms/Utils/SimplifyCFG.cpp
lib/Transforms/Vectorize/LoopVectorize.cpp