[PATCH] D35741: Add MemorySSA alternative to AliasSetTracker in LICM.

Alina Sbirlea via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 21 15:20:09 PDT 2017


asbirlea updated this revision to Diff 116281.
asbirlea added a comment.

Remove MemorySSA as the default for LICM. All tests passing.
The default remains the Alias Set Tracker with the current state of the patch.
MemorySSA is still built, but never invalidated or used(!). It is only preserved by LICM
when LICMwMSSA is set to true which causes unittests/Transforms/Scalar/LoopPassManagerTest.cpp to fail.

As such, the patch in its current state:

- adds most of (all?) the functionality to use MemorySSA in LICM.
- does not enable any of this functionality
- it is *not* a NFC, since MemorySSA is added as a Loop dependency and built, so there may be some added overhead.


https://reviews.llvm.org/D35741

Files:
  include/llvm/Analysis/LoopAnalysisManager.h
  include/llvm/Support/Debug.h
  include/llvm/Transforms/Scalar/LoopPassManager.h
  include/llvm/Transforms/Utils/LoopUtils.h
  include/llvm/Transforms/Utils/MemorySSAAliasSets.h
  lib/Analysis/LoopAnalysisManager.cpp
  lib/Analysis/MemorySSA.cpp
  lib/Transforms/Scalar/LICM.cpp
  lib/Transforms/Scalar/LoopDistribute.cpp
  lib/Transforms/Scalar/LoopLoadElimination.cpp
  lib/Transforms/Scalar/LoopSink.cpp
  lib/Transforms/Utils/LoopUtils.cpp
  lib/Transforms/Vectorize/LoopVectorize.cpp
  test/Other/loop-pm-invalidation.ll
  test/Other/new-pass-manager.ll
  test/Other/pass-pipelines.ll
  unittests/Transforms/Scalar/LoopPassManagerTest.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D35741.116281.patch
Type: text/x-patch
Size: 62103 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170921/04335282/attachment.bin>


More information about the llvm-commits mailing list