Use MemorySSA in LICM to do sinking and hoisting.
authorAlina Sbirlea <asbirlea@google.com>
Thu, 10 Jan 2019 19:29:04 +0000 (19:29 +0000)
committerAlina Sbirlea <asbirlea@google.com>
Thu, 10 Jan 2019 19:29:04 +0000 (19:29 +0000)
commitcae12edaaa34b03cde173d5ae7f81780d2ae01af
tree8b196870b28ac4680a97e28f0bb995150af129d2
parent54c04301b794319cec16161dba30c44858ababb3
Use MemorySSA in LICM to do sinking and hoisting.

Summary:
Step 2 in using MemorySSA in LICM:
Use MemorySSA in LICM to do sinking and hoisting, all under "EnableMSSALoopDependency" flag.
Promotion is disabled.

Enable flag in LICM sink/hoist tests to test correctness of this change. Moved one test which
relied on promotion, in order to test all sinking tests.

Reviewers: sanjoy, davide, gberry, george.burgess.iv

Subscribers: llvm-commits, Prazek

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

llvm-svn: 350879
18 files changed:
llvm/include/llvm/Analysis/MemorySSAUpdater.h
llvm/include/llvm/Transforms/Utils/LoopUtils.h
llvm/lib/Transforms/Scalar/LICM.cpp
llvm/lib/Transforms/Scalar/LoopSink.cpp
llvm/test/Transforms/LICM/argmemonly-call.ll
llvm/test/Transforms/LICM/hoist-bitcast-load.ll
llvm/test/Transforms/LICM/hoist-debuginvariant.ll
llvm/test/Transforms/LICM/hoist-deref-load.ll
llvm/test/Transforms/LICM/hoist-fast-fdiv.ll
llvm/test/Transforms/LICM/hoist-invariant-load.ll
llvm/test/Transforms/LICM/hoist-nounwind.ll
llvm/test/Transforms/LICM/hoist-phi.ll
llvm/test/Transforms/LICM/hoist-round.ll
llvm/test/Transforms/LICM/hoisting.ll
llvm/test/Transforms/LICM/sink-promote.ll [new file with mode: 0644]
llvm/test/Transforms/LICM/sink.ll
llvm/test/Transforms/LICM/sinking.ll
llvm/test/Transforms/LICM/volatile-alias.ll