]> granicus.if.org Git - llvm/commit
[MemorySSA & LoopPassManager] Enable MemorySSA as loop dependency. Update tests.
authorAlina Sbirlea <asbirlea@google.com>
Thu, 29 Aug 2019 17:08:13 +0000 (17:08 +0000)
committerAlina Sbirlea <asbirlea@google.com>
Thu, 29 Aug 2019 17:08:13 +0000 (17:08 +0000)
commit419c1269a6fc40aa35a4ee348174f10bdbb8e7a8
treee09fe4593896e64eaac78bfb5ce67b37f1d51e7e
parentab3e322c67110857514fc6443679e465efdd7ce1
[MemorySSA & LoopPassManager] Enable MemorySSA as loop dependency. Update tests.

Summary:
I'm not planning to check this in at the moment, but feedback is very welcome, in particular how this affects performance.
The feedback obtains here will guide the next steps towards enabling this.

This patch enables the use of MemorySSA in the loop pass manager.

Passes that currently use MemorySSA:
 - EarlyCSE
Passes that use MemorySSA after this patch:
 - EarlyCSE
 - LICM
 - SimpleLoopUnswitch
Loop passes that update MemorySSA (and do not use it yet, but could use it after this patch):
 - LoopInstSimplify
 - LoopSimplifyCFG
 - LoopUnswitch
 - LoopRotate
 - LoopSimplify
 - LCSSA
Loop passes that do *not* update MemorySSA:
 - IndVarSimplify
 - LoopDelete
 - LoopIdiom
 - LoopSink
 - LoopUnroll
 - LoopInterchange
 - LoopUnrollAndJam
 - LoopVectorize
 - LoopReroll
 - IRCE

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

Subscribers: jlebar, Prazek, dmgreen, jdoerfert, llvm-commits

Tags: #llvm

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@370384 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Analysis/MemorySSA.cpp
lib/Transforms/Utils/LoopUtils.cpp
test/CodeGen/PowerPC/sms-grp-order.ll
test/Other/opt-O2-pipeline.ll
test/Other/opt-O3-pipeline.ll
test/Other/opt-Os-pipeline.ll