<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/mlir/lib/IR/BuiltinAttributes.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] Adopt LDBG() macro in BuiltinAttributes.cpp (NFC) (#154723)</title>
<updated>2025-08-21T10:31:18+00:00</updated>
<author>
<name>Mehdi Amini</name>
<email>joker.eph@gmail.com</email>
</author>
<published>2025-08-21T10:31:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=acda808304e32d1cf51d520e8710cbb7362fc961'/>
<id>acda808304e32d1cf51d520e8710cbb7362fc961</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</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>
<entry>
<title>[mlir] Remove unused includes (NFC) (#146812)</title>
<updated>2025-07-03T16:08:09+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-07-03T16:08:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e8f491fc973e27c657b5de4e8d0b80ac566403ab'/>
<id>e8f491fc973e27c657b5de4e8d0b80ac566403ab</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][MemRef][~NFC] Move getStridesAndOffset() onto layouts (#138011)</title>
<updated>2025-05-05T16:09:32+00:00</updated>
<author>
<name>Krzysztof Drewniak</name>
<email>Krzysztof.Drewniak@amd.com</email>
</author>
<published>2025-05-05T16:09:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=640103b91ac892cfbeeb614495698c321437b567'/>
<id>640103b91ac892cfbeeb614495698c321437b567</id>
<content type='text'>
This commit refactors the getStridesAndOffet() method on MemRefType to
just call `MemRefLayoutAttrInterface::getStridesAndOffset(shape,
strides&amp; offset&amp;)`, allowing downstream users and future layouts (ex, a
potential contiguous layout) to implement it without needing to patch
BuiltinTypes or without needing them to conform their affine maps to the
canonical strided form.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit refactors the getStridesAndOffet() method on MemRefType to
just call `MemRefLayoutAttrInterface::getStridesAndOffset(shape,
strides&amp; offset&amp;)`, allowing downstream users and future layouts (ex, a
potential contiguous layout) to implement it without needing to patch
BuiltinTypes or without needing them to conform their affine maps to the
canonical strided form.</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][nfc] Replace some `std::vector`s with `SmallVector` (#136703)</title>
<updated>2025-04-22T17:07:01+00:00</updated>
<author>
<name>Ivan Butygin</name>
<email>ivan.butygin@gmail.com</email>
</author>
<published>2025-04-22T17:07:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5e101de13671a525d30ed7f546c1a8611db1da19'/>
<id>5e101de13671a525d30ed7f546c1a8611db1da19</id>
<content type='text'>
`SmallVector` is preferable to `std::vector`
https://llvm.org/docs/ProgrammersManual.html#llvm-adt-smallvector-h</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`SmallVector` is preferable to `std::vector`
https://llvm.org/docs/ProgrammersManual.html#llvm-adt-smallvector-h</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC] Rename hasSameElementsOrSplat to hasSameNumElementsOrSplat (#133183)</title>
<updated>2025-04-15T19:11:24+00:00</updated>
<author>
<name>AdityaK</name>
<email>hiraditya@msn.com</email>
</author>
<published>2025-04-15T19:11:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8f25e43055058a6a16bf44573feb37a9ce51dc1a'/>
<id>8f25e43055058a6a16bf44573feb37a9ce51dc1a</id>
<content type='text'>
Makes it less confusing as this function only matches the number of
elements</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Makes it less confusing as this function only matches the number of
elements</pre>
</div>
</content>
</entry>
<entry>
<title>[MLIR][NFC] Fix incomplete boundary comments. (#133516)</title>
<updated>2025-03-31T16:29:54+00:00</updated>
<author>
<name>Han-Chung Wang</name>
<email>hanhan0912@gmail.com</email>
</author>
<published>2025-03-31T16:29:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=66b0b0466bbd995146aadaf2cd18de5476c19941'/>
<id>66b0b0466bbd995146aadaf2cd18de5476c19941</id>
<content type='text'>
I observed that we have the boundary comments in the codebase like:

```
//===----------------------------------------------------------------------===//
// ...
//===----------------------------------------------------------------------===//
```

I also observed that there are incomplete boundary comments. The
revision is generated by a script that completes the boundary comments.

```
//===----------------------------------------------------------------------===//
// ...

...
```

Signed-off-by: hanhanW &lt;hanhan0912@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
I observed that we have the boundary comments in the codebase like:

```
//===----------------------------------------------------------------------===//
// ...
//===----------------------------------------------------------------------===//
```

I also observed that there are incomplete boundary comments. The
revision is generated by a script that completes the boundary comments.

```
//===----------------------------------------------------------------------===//
// ...

...
```

Signed-off-by: hanhanW &lt;hanhan0912@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[MLIR] Add a BlobAttr interface for attribute to wrap arbitrary content and use it as linkLibs for ModuleToObject (#120116)</title>
<updated>2024-12-17T00:30:56+00:00</updated>
<author>
<name>Mehdi Amini</name>
<email>joker.eph@gmail.com</email>
</author>
<published>2024-12-17T00:30:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=72e8b9aeaa3f584f223bc59924812df69a09a48b'/>
<id>72e8b9aeaa3f584f223bc59924812df69a09a48b</id>
<content type='text'>
This change allows to expose through an interface attributes wrapping
content as external resources, and the usage inside the ModuleToObject
show how we will be able to provide runtime libraries without relying on
the filesystem.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change allows to expose through an interface attributes wrapping
content as external resources, and the usage inside the ModuleToObject
show how we will be able to provide runtime libraries without relying on
the filesystem.</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir] [IR] Allow zero strides in StridedLayoutAttr (#116463)</title>
<updated>2024-11-21T06:17:28+00:00</updated>
<author>
<name>donald chen</name>
<email>chenxunyu1993@gmail.com</email>
</author>
<published>2024-11-21T06:17:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=dbe159b3f74ea41e16782fe5708756507d4a014f'/>
<id>dbe159b3f74ea41e16782fe5708756507d4a014f</id>
<content type='text'>
Disabling memrefs with a stride of 0 was intended to prevent internal
aliasing, but this does not address all cases : internal aliasing can
still occur when the stride is less than the shape.

On the other hand, a stride of 0 can be very useful in certain
scenarios. For example, in architectures that support multi-dimensional
DMA, we can use memref::copy with a stride of 0 to achieve a broadcast
effect.

This commit removes the restriction that strides in memrefs cannot be 0.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Disabling memrefs with a stride of 0 was intended to prevent internal
aliasing, but this does not address all cases : internal aliasing can
still occur when the stride is less than the shape.

On the other hand, a stride of 0 can be very useful in certain
scenarios. For example, in architectures that support multi-dimensional
DMA, we can use memref::copy with a stride of 0 to achieve a broadcast
effect.

This commit removes the restriction that strides in memrefs cannot be 0.</pre>
</div>
</content>
</entry>
<entry>
<title>[memref] Handle edge case in subview of full static size fold (#105635)</title>
<updated>2024-08-23T05:52:09+00:00</updated>
<author>
<name>Benjamin Maxwell</name>
<email>macdue@dueutil.tech</email>
</author>
<published>2024-08-23T05:52:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=84aa02d3fa1f1f614c4f3c144ec118b2f05ae6b0'/>
<id>84aa02d3fa1f1f614c4f3c144ec118b2f05ae6b0</id>
<content type='text'>
It is possible to have a subview with a fully static size and a type
that matches the source type, but a dynamic offset that may be
different. However, currently the memref dialect folds:

```mlir
func.func @subview_of_static_full_size(
  %arg0:  memref&lt;16x4xf32,  strided&lt;[4, 1], offset: ?&gt;&gt;, %idx: index)
  -&gt; memref&lt;16x4xf32,  strided&lt;[4, 1], offset: ?&gt;&gt;
{
  %0 = memref.subview %arg0[%idx, 0][16, 4][1, 1]
   : memref&lt;16x4xf32,  strided&lt;[4, 1], offset: ?&gt;&gt;
     to memref&lt;16x4xf32,  strided&lt;[4, 1], offset: ?&gt;&gt;
  return %0 : memref&lt;16x4xf32,  strided&lt;[4, 1], offset: ?&gt;&gt;
}
```

To:

```mlir
func.func @subview_of_static_full_size(
  %arg0: memref&lt;16x4xf32, strided&lt;[4, 1], offset: ?&gt;&gt;, %arg1: index)
  -&gt; memref&lt;16x4xf32, strided&lt;[4, 1], offset: ?&gt;&gt;
{
  return %arg0 : memref&lt;16x4xf32, strided&lt;[4, 1], offset: ?&gt;&gt;
}
```

Which drops the dynamic offset from the `subview` op.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It is possible to have a subview with a fully static size and a type
that matches the source type, but a dynamic offset that may be
different. However, currently the memref dialect folds:

```mlir
func.func @subview_of_static_full_size(
  %arg0:  memref&lt;16x4xf32,  strided&lt;[4, 1], offset: ?&gt;&gt;, %idx: index)
  -&gt; memref&lt;16x4xf32,  strided&lt;[4, 1], offset: ?&gt;&gt;
{
  %0 = memref.subview %arg0[%idx, 0][16, 4][1, 1]
   : memref&lt;16x4xf32,  strided&lt;[4, 1], offset: ?&gt;&gt;
     to memref&lt;16x4xf32,  strided&lt;[4, 1], offset: ?&gt;&gt;
  return %0 : memref&lt;16x4xf32,  strided&lt;[4, 1], offset: ?&gt;&gt;
}
```

To:

```mlir
func.func @subview_of_static_full_size(
  %arg0: memref&lt;16x4xf32, strided&lt;[4, 1], offset: ?&gt;&gt;, %arg1: index)
  -&gt; memref&lt;16x4xf32, strided&lt;[4, 1], offset: ?&gt;&gt;
{
  return %arg0 : memref&lt;16x4xf32, strided&lt;[4, 1], offset: ?&gt;&gt;
}
```

Which drops the dynamic offset from the `subview` op.</pre>
</div>
</content>
</entry>
</feed>
