[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:17:53 PST 2016


Also note: BFS or a hybrid DFS scheme is required to actually fulfill the
API guarantee we make - that we will give you the nearest dominating access.
DFS may find an access that is dominating but not the nearest dominating
one, depending on what paths it follows.


On Mon, Jan 4, 2016 at 10:14 AM, Daniel Berlin <dberlin at dberlin.org> wrote:

> 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 --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160104/e949337a/attachment.html>


More information about the llvm-commits mailing list