[PATCH] D7864: This patch introduces MemorySSA, a virtual SSA form for memory.Details on what it looks like are in MemorySSA.h

Daniel Berlin via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 4 10:14:40 PST 2016


dberlin updated this revision to Diff 43896.
dberlin added a comment.

Refactor and rewrite a lot of stuff.  This is somewhat of an intermediate state, so it's a bit messier than i'd like.
This version builds but i haven't played with it in a few months, so i expect it is bitrotted and may be a bit broken.
I am updating it mainly to give someone else a chance to takeover since i'm going to be swamped for a while.

Main algorithmic changes:
We now use BFS to find nearest dominating access in the caching walker.
I've performed extensive performance testing of hybrid DFS and BFS schemes, and BFS wins every time.
A bunch of things have started being iteratorized.
The caching walker has been modified a bit.  The current caching scheme is fast, but can't easily be invalidated on a per-access basis.
The overhead of simple schemes that supported that level of invalidation was *quite* large.
(the ideal caching storage scheme here is actually quadtrees).

The caching walker now uses the same phi translation mechanism that memorydepedenceanalysis does.
I'm not sure this is a good thing, as that phi translation mechanism is ... strange and weird and has weird optimizations embedded in it.
It may be better to get worse optimization to start and clean that stuff up.

Updating D7864: This patch introduces MemorySSA, a virtual SSA form for memory.
===============================================================================

Details on what it looks like are in MemorySSA.h


http://reviews.llvm.org/D7864

Files:
  include/llvm/IR/Function.h
  include/llvm/InitializePasses.h
  include/llvm/Transforms/Utils/MemorySSA.h
  lib/Analysis/Analysis.cpp
  lib/IR/AsmWriter.cpp
  lib/Transforms/Utils/CMakeLists.txt
  lib/Transforms/Utils/MemorySSA.cpp
  test/Transforms/Util/memoryssa-cyclicphi.ll
  test/Transforms/Util/memoryssa-no-disconnected.ll
  test/Transforms/Util/memoryssa-optimize-use.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D7864.43896.patch
Type: text/x-patch
Size: 95204 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160104/669743fd/attachment.bin>


More information about the llvm-commits mailing list