[MemorySSA/docs] Extend MemorySSA documentation.

This commit is contained in:
Alina Sbirlea 2020-12-04 18:04:24 -08:00
parent 7d38861ce3
commit 1289835a96
1 changed files with 19 additions and 0 deletions

View File

@ -230,6 +230,19 @@ be using. Walkers were built to be flexible, though, so it's entirely reasonable
(and expected) to create more specialized walkers (e.g. one that specifically (and expected) to create more specialized walkers (e.g. one that specifically
queries ``GlobalsAA``, one that always stops at ``MemoryPhi`` nodes, etc). queries ``GlobalsAA``, one that always stops at ``MemoryPhi`` nodes, etc).
Default walker APIs
^^^^^^^^^^^^^^^^^^^
There are two main APIs used to retrive the clobbering access using the walker:
- ``MemoryAccess *getClobberingMemoryAccess(MemoryAccess *MA);`` return the
clobbering memory access for ``MA``, caching all intermediate results
computed along the way as part of each access queried.
- ``MemoryAccess *getClobberingMemoryAccess(MemoryAccess *MA, const MemoryLocation &Loc);``
returns the access clobbering memory location ``Loc``, starting at ``MA``.
Because this API does not request the clobbering access of a specific memory
access, there are no results that can be cached.
Locating clobbers yourself Locating clobbers yourself
^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -394,3 +407,9 @@ useful guarantee - all loads are optimized to point at the thing that
actually clobbers them. This gives some nice properties. For example, actually clobbers them. This gives some nice properties. For example,
for a given store, you can find all loads actually clobbered by that for a given store, you can find all loads actually clobbered by that
store by walking the immediate uses of the store. store by walking the immediate uses of the store.
LLVM Developers Meeting presentations
-------------------------------------
- `2016 LLVM Developers' Meeting: G. Burgess - MemorySSA in Five Minutes <https://www.youtube.com/watch?v=bdxWmryoHak>`_.
- `2020 LLVM Developers' Meeting: S. Baziotis & S. Moll - Finding Your Way Around the LLVM Dependence Analysis Zoo <https://www.youtube.com/watch?v=1e5y6WDbXCQ>`_