<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/mlir/lib/Conversion/MemRefToLLVM/MemRefToLLVM.cpp, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[mlir][memref] Introduce `memref.distinct_objects` op (#156913)</title>
<updated>2025-10-01T12:01:37+00:00</updated>
<author>
<name>Ivan Butygin</name>
<email>ivan.butygin@gmail.com</email>
</author>
<published>2025-10-01T12:01:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a374017bbcc8191fa6b7b2939ffcb9bb831df419'/>
<id>a374017bbcc8191fa6b7b2939ffcb9bb831df419</id>
<content type='text'>
The `distinct_objects` operation takes a list of memrefs and returns a
list of memrefs of the same types, with the additional assumption that
accesses to these memrefs will never alias with each other. This means
that loads and stores to different memrefs in the list can be safely
reordered.

The discussion
https://discourse.llvm.org/t/rfc-introducing-memref-aliasing-attributes/88049</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The `distinct_objects` operation takes a list of memrefs and returns a
list of memrefs of the same types, with the additional assumption that
accesses to these memrefs will never alias with each other. This means
that loads and stores to different memrefs in the list can be safely
reordered.

The discussion
https://discourse.llvm.org/t/rfc-introducing-memref-aliasing-attributes/88049</pre>
</div>
</content>
</entry>
<entry>
<title>Create function declaration in the proper module (#161281)</title>
<updated>2025-09-29T22:32:03+00:00</updated>
<author>
<name>Renaud Kauffmann</name>
<email>rkauffmann@nvidia.com</email>
</author>
<published>2025-09-29T22:32:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5d739cf4186e333770a11d1376eb2ea947cc70e8'/>
<id>5d739cf4186e333770a11d1376eb2ea947cc70e8</id>
<content type='text'>
Using `memref.dealloc` in the gpu module would add a function definition
for `@free` in the the top level module instead of the gpu module. The
fix is to do what is already done for memref.alloc which is to use
`op-&gt;getParentWithTrait&lt;OpTrait::SymbolTable&gt;()` instead of
`op-&gt;getParentOfType&lt;ModuleOp&gt;()` to create the call in the proper
module.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Using `memref.dealloc` in the gpu module would add a function definition
for `@free` in the the top level module instead of the gpu module. The
fix is to do what is already done for memref.alloc which is to use
`op-&gt;getParentWithTrait&lt;OpTrait::SymbolTable&gt;()` instead of
`op-&gt;getParentOfType&lt;ModuleOp&gt;()` to create the call in the proper
module.</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][LLVM][NFC] Simplify `computeSizes` function (#153588)</title>
<updated>2025-08-14T15:00:03+00:00</updated>
<author>
<name>Matthias Springer</name>
<email>me@m-sp.org</email>
</author>
<published>2025-08-14T15:00:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0ff92fe2f08d376b45f4c84fd1e8392c79f7feca'/>
<id>0ff92fe2f08d376b45f4c84fd1e8392c79f7feca</id>
<content type='text'>
Rename `computeSizes` to `computeSize` and make it compute just a single
size. This is in preparation of adding 1:N support to the Func-&gt;LLVM
lowering patterns.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Rename `computeSizes` to `computeSize` and make it compute just a single
size. This is in preparation of adding 1:N support to the Func-&gt;LLVM
lowering patterns.</pre>
</div>
</content>
</entry>
<entry>
<title>[Arith][MemRef] add AtomicRMWKind::xori to enum (#151701)</title>
<updated>2025-08-11T12:46:06+00:00</updated>
<author>
<name>Scott Manley</name>
<email>rscottmanley@gmail.com</email>
</author>
<published>2025-08-11T12:46:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e72335192dac55e7c377096a09e48731d2e0532c'/>
<id>e72335192dac55e7c377096a09e48731d2e0532c</id>
<content type='text'>
Add missing xor AtomicRMWKind enum in arith. Also add support for xor to
memref.atomic_rmw so the change can be tested.

This does NOT add it for all users of the enum (e.g. Affine, Vector)</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add missing xor AtomicRMWKind enum in arith. Also add support for xor to
memref.atomic_rmw so the change can be tested.

This does NOT add it for all users of the enum (e.g. Affine, Vector)</pre>
</div>
</content>
</entry>
<entry>
<title>[MLIR][LLVM] Propagate alignment attribute from memref to LLVM (#151380)</title>
<updated>2025-08-05T16:06:57+00:00</updated>
<author>
<name>Erick Ochoa Lopez</name>
<email>eochoalo@amd.com</email>
</author>
<published>2025-08-05T16:06:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d72e58e422be747dfd1e42f8ad370420634190cb'/>
<id>d72e58e422be747dfd1e42f8ad370420634190cb</id>
<content type='text'>
Propagate alignment attribute from operations in the memref dialect to
the LLVM dialect.

Possible improvements: maybe the alignment attribute in LLVM's store and
load operations should be confined/constrained to i64? I believe that
way one can avoid typing the value in the attribute dictionary. I.e.,
from `{ alignment = 32 : i64 }` to `{ alignment = 32}`</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Propagate alignment attribute from operations in the memref dialect to
the LLVM dialect.

Possible improvements: maybe the alignment attribute in LLVM's store and
load operations should be confined/constrained to i64? I believe that
way one can avoid typing the value in the attribute dictionary. I.e.,
from `{ alignment = 32 : i64 }` to `{ alignment = 32}`</pre>
</div>
</content>
</entry>
<entry>
<title>[MLIR] Migrate some conversion passes and dialects to LDBG() macro (NFC) (#151349)</title>
<updated>2025-07-30T15:58:54+00:00</updated>
<author>
<name>Mehdi Amini</name>
<email>joker.eph@gmail.com</email>
</author>
<published>2025-07-30T15:58:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=75e5a705771315bc40d2188675d08cb2c71f6933'/>
<id>75e5a705771315bc40d2188675d08cb2c71f6933</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][NFC] update `mlir` create APIs (34/n) (#150660)</title>
<updated>2025-07-25T17:36:54+00:00</updated>
<author>
<name>Maksim Levental</name>
<email>maksim.levental@gmail.com</email>
</author>
<published>2025-07-25T17:36:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=258daf539583b80e0217d1d87941412d65cf16aa'/>
<id>258daf539583b80e0217d1d87941412d65cf16aa</id>
<content type='text'>
See https://github.com/llvm/llvm-project/pull/147168 for more info.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
See https://github.com/llvm/llvm-project/pull/147168 for more info.</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][NFC] update `Conversion` create APIs (6/n) (#149888)</title>
<updated>2025-07-22T12:16:53+00:00</updated>
<author>
<name>Maksim Levental</name>
<email>maksim.levental@gmail.com</email>
</author>
<published>2025-07-22T12:16:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4ae9fdca8af095afd91705f8dd143e93b304b6fb'/>
<id>4ae9fdca8af095afd91705f8dd143e93b304b6fb</id>
<content type='text'>
See https://github.com/llvm/llvm-project/pull/147168 for more info.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
See https://github.com/llvm/llvm-project/pull/147168 for more info.</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][memref] Do not access erased op in `memref.global` lowering (#148355)</title>
<updated>2025-07-12T14:13:12+00:00</updated>
<author>
<name>Matthias Springer</name>
<email>me@m-sp.org</email>
</author>
<published>2025-07-12T14:13:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4cca22ffaedc59488f7756a1d9c33d83a14bad3a'/>
<id>4cca22ffaedc59488f7756a1d9c33d83a14bad3a</id>
<content type='text'>
Do not access the erased `memref.global` operation in the lowering
pattern. That won't work anymore in a One-Shot Dialect Conversion and
triggers a use-after-free sanitizer error.

After the One-Shot Dialect Conversion refactoring, a
`ConversionPatternRewriter` will behave more like a normal
`PatternRewriter`.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Do not access the erased `memref.global` operation in the lowering
pattern. That won't work anymore in a One-Shot Dialect Conversion and
triggers a use-after-free sanitizer error.

After the One-Shot Dialect Conversion refactoring, a
`ConversionPatternRewriter` will behave more like a normal
`PatternRewriter`.</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir] Add `isStatic`* size check for `ShapedType`s. NFCI. (#147085)</title>
<updated>2025-07-07T18:57:27+00:00</updated>
<author>
<name>Jakub Kuderski</name>
<email>jakub@nod-labs.com</email>
</author>
<published>2025-07-07T18:57:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6512ca7ddb0a462362aaedb18844e2993c5ae336'/>
<id>6512ca7ddb0a462362aaedb18844e2993c5ae336</id>
<content type='text'>
The motivation is to avoid having to negate `isDynamic*` checks, avoid
double negations, and allow for `ShapedType::isStaticDim` to be used in
ADT functions without having to wrap it in a lambda performing the
negation.

Also add the new functions to C and Python bindings.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The motivation is to avoid having to negate `isDynamic*` checks, avoid
double negations, and allow for `ShapedType::isStaticDim` to be used in
ADT functions without having to wrap it in a lambda performing the
negation.

Also add the new functions to C and Python bindings.</pre>
</div>
</content>
</entry>
</feed>
