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

Alina Sbirlea via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 20 14:59:54 PDT 2017


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

Replace creation of alias sets for promotion with non-recursive method.
There is no gain here compared with AST as long as we have to create these sets (i.e. fit into the current pattern for promotion), and this implementation is more legible and easier to add a threshhold.

Remaining issue in this patch: Resolve what is the best approach to have MemorySSA as a dependency for LICM (before all Loop passes preserve MemorySSA, and without splitting the loop pass pipeline)
Currently failing tests due to this issue:
unittests/Transforms/Scalar/ScalarTests/LoopPassManagerTest
Transforms/LoopUnroll/unroll-loop-invalidation.ll


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.116086.patch
Type: text/x-patch
Size: 62190 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170920/0c6ccf41/attachment-0001.bin>


More information about the llvm-commits mailing list