Lines Matching refs:MemoryDef
46 - ``MemoryDef``
50 ``MemoryDef``\ s are operations which may either modify memory, or which
51 introduce some kind of ordering constraints. Examples of ``MemoryDef``\ s
53 ordering, volatile operations, memory fences, etc. A ``MemoryDef``
55 ``MemoryDef/MemoryPhi`` which is the version of memory that the new
62 b = MemoryDef(a)
63 c = MemoryDef(b)
64 d = MemoryDef(c)
69 initially every ``MemoryDef`` clobbers every other ``MemoryDef``.
72 point we have two (or more) ``MemoryDef``\ s that could flow into a
77 and ``MemoryDef``\ s.
87 Every function that exists has a special ``MemoryDef`` called ``liveOnEntry``.
90 ``MemoryDef`` that maps to no ``Instruction`` in LLVM IR. Use of
102 ``MemoryAccess``\ es may access the same memory. For example, ``x = MemoryDef(y)``
109 (as an example, think that if ``x = MemoryDef(...)``
116 a value (i.e. ``MemoryDef/MemoryPhi``),
126 ; 1 = MemoryDef(liveOnEntry)
135 ; 2 = MemoryDef(6)
140 ; 3 = MemoryDef(6)
148 ; 4 = MemoryDef(5)
156 to (if such an instruction exists). For example, ``1 = MemoryDef(liveOnEntry)``
157 is a ``MemoryAccess`` (specifically, a ``MemoryDef``), and it describes the LLVM
159 particular ``MemoryDef`` as ``1`` (much like how one can refer to ``load i8, i8*
168 - ``2 = MemoryDef(6)`` notes that ``store i8 0, i8* %p1`` is a definition,
171 sections below for why this ``MemoryDef`` isn't linked to a separate,
173 - ``3 = MemoryDef(6)`` notes that ``store i8 0, i8* %p2`` is a definition; its
179 - ``4 = MemoryDef(5)`` notes that ``store i8 2, i8* %p2`` is a definition; it's
217 ; 1 = MemoryDef(liveOnEntry)
219 ; 2 = MemoryDef(1)
227 By default, ``MemorySSA`` provides a walker that can optimize ``MemoryDef``\ s
238 ``MemoryAccess`` by walking every ``MemoryDef`` that dominates said
239 ``MemoryAccess``. The structure of ``MemoryDef``\ s makes this relatively simple;
242 ``definingAccess`` of a ``MemoryDef`` is always the nearest dominating
243 ``MemoryDef`` or ``MemoryPhi`` of said ``MemoryDef``.
253 ``MemoryDef`` from the entry block. This is done to make walking,
256 It is not possible to optimize ``MemoryDef`` in the same way, as we
284 ; 1 = MemoryDef(liveOnEntry)
301 ; 2 = MemoryDef(3)
310 place a ``MemoryDef`` in ``if.then`` or ``if.else``, you'll need to also create
334 ; 1 = MemoryDef(liveOnEntry)