Lines Matching refs:MemoryAccess
41 structure that maps ``Instruction``\ s to ``MemoryAccess``\ es, which are
44 Each ``MemoryAccess`` can be one of three types:
73 ``BasicBlock``, the block's top ``MemoryAccess`` will be a
88 It dominates every ``MemoryAccess`` in the function that ``MemorySSA`` is being
97 The operands of a given ``MemoryAccess`` are all (potential) clobbers of said
98 ``MemoryAccess``, and the value produced by a ``MemoryAccess`` can act as a clobber
99 for other ``MemoryAccess``\ es.
101 If a ``MemoryAccess`` is a *clobber* of another, it means that these two
102 ``MemoryAccess``\ es may access the same memory. For example, ``x = MemoryDef(y)``
114 In that view, operands of a given ``MemoryAccess`` are the version
157 is a ``MemoryAccess`` (specifically, a ``MemoryDef``), and it describes the LLVM
187 As an aside, ``MemoryAccess`` is a ``Value`` mostly for convenience; it's not
195 mapping of ``MemoryAccess``\ es. You can then query ``MemorySSA`` for things
196 like the dominance relation between ``MemoryAccess``\ es, and get the
197 ``MemoryAccess`` for any given ``Instruction`` .
208 queries beyond what's represented directly by ``MemoryAccess``\ es. For example,
225 for the clobber of ``MemoryAccess`` ``2``.
238 ``MemoryAccess`` by walking every ``MemoryDef`` that dominates said
239 ``MemoryAccess``. The structure of ``MemoryDef``\ s makes this relatively simple;
241 ``MemoryAccess`` that you're trying to optimize. In other words, the
249 ``MemorySSA`` will optimize some ``MemoryAccess``\ es at build-time.