<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/mlir/test/lib/Analysis/DataFlow/TestStridedMetadataRangeAnalysis.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>Reland "[mlir] Add strided metadata range dataflow analysis" (#163403)" (#163408)</title>
<updated>2025-10-14T15:16:30+00:00</updated>
<author>
<name>Fabian Mora</name>
<email>fmora.dev@gmail.com</email>
</author>
<published>2025-10-14T15:16:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b2797d9b8236a40ee30d6daf4e603a82da9a94d4'/>
<id>b2797d9b8236a40ee30d6daf4e603a82da9a94d4</id>
<content type='text'>
This relands commit aa8499863ad23350da0912d99d189f306d0ea139. That
commit was originally reverted because it caused failures in shared lib
builds due to missing link dependencies. This patch relands the commit
with the missing libs added.

Signed-off-by: Fabian Mora &lt;fabian.mora-cordero@amd.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This relands commit aa8499863ad23350da0912d99d189f306d0ea139. That
commit was originally reverted because it caused failures in shared lib
builds due to missing link dependencies. This patch relands the commit
with the missing libs added.

Signed-off-by: Fabian Mora &lt;fabian.mora-cordero@amd.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[mlir] Add strided metadata range dataflow analysis" (#163403)</title>
<updated>2025-10-14T14:21:17+00:00</updated>
<author>
<name>Fabian Mora</name>
<email>fmora.dev@gmail.com</email>
</author>
<published>2025-10-14T14:21:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4c0692edb445c5d90a189f5c12e5433b8e84a713'/>
<id>4c0692edb445c5d90a189f5c12e5433b8e84a713</id>
<content type='text'>
Reverts llvm/llvm-project#161280</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reverts llvm/llvm-project#161280</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir] Add strided metadata range dataflow analysis (#161280)</title>
<updated>2025-10-14T14:09:42+00:00</updated>
<author>
<name>Fabian Mora</name>
<email>fmora.dev@gmail.com</email>
</author>
<published>2025-10-14T14:09:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=aa8499863ad23350da0912d99d189f306d0ea139'/>
<id>aa8499863ad23350da0912d99d189f306d0ea139</id>
<content type='text'>
Introduces a dataflow analysis for tracking offset, size, and stride
ranges of operations.
Inference of the metadata is accomplished through the implementation of
the interface
`InferStridedMetadataOpInterface`.

To keep the size of the patch small, this patch only implements the
interface for the
`memref.subview` operation. It's future work to add more operations.

Example:
```mlir
func.func @memref_subview(%arg0: memref&lt;8x16x4xf32, strided&lt;[64, 4, 1]&gt;&gt;) {
  %c0 = arith.constant 0 : index
  %c1 = arith.constant 1 : index
  %c2 = arith.constant 2 : index
  %0 = test.with_bounds {smax = 13 : index, smin = 11 : index, umax = 13 : index, umin = 11 : index} : index
  %1 = test.with_bounds {smax = 7 : index, smin = 5 : index, umax = 7 : index, umin = 5 : index} : index
  %subview = memref.subview %arg0[%c0, %c0, %c1] [%1, %0, %c2] [%c1, %c1, %c1] : memref&lt;8x16x4xf32, strided&lt;[64, 4, 1]&gt;&gt; to memref&lt;?x?x?xf32, strided&lt;[?, ?, ?], offset: ?&gt;&gt;
  return
}
```

Applying `mlir-opt --test-strided-metadata-range-analysis` prints:
```
Op: %subview = memref.subview %arg0[%c0, %c0, %c1] [%1, %0, %c2] [%c1, %c1, %c1] : memref&lt;8x16x4xf32, strided&lt;[64, 4, 1]&gt;&gt; to memref&lt;?x?x?xf32, strided&lt;[?, ?, ?], offset: ?&gt;&gt;
  result[0]: strided_metadata&lt;offset = [{unsigned : [1, 1] signed : [1, 1]}], sizes = [{unsigned : [5, 7] signed : [5, 7]}, {unsigned : [11, 13] signed : [11, 13]}, {unsigned : [2, 2] signed : [2, 2]}], strides = [{unsigned : [64, 64] signed : [64, 64]}, {unsigned : [4, 4] signed : [4, 4]}, {unsigned : [1, 1] signed : [1, 1]}]&gt;
```

---------

Signed-off-by: Fabian Mora &lt;fabian.mora-cordero@amd.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Introduces a dataflow analysis for tracking offset, size, and stride
ranges of operations.
Inference of the metadata is accomplished through the implementation of
the interface
`InferStridedMetadataOpInterface`.

To keep the size of the patch small, this patch only implements the
interface for the
`memref.subview` operation. It's future work to add more operations.

Example:
```mlir
func.func @memref_subview(%arg0: memref&lt;8x16x4xf32, strided&lt;[64, 4, 1]&gt;&gt;) {
  %c0 = arith.constant 0 : index
  %c1 = arith.constant 1 : index
  %c2 = arith.constant 2 : index
  %0 = test.with_bounds {smax = 13 : index, smin = 11 : index, umax = 13 : index, umin = 11 : index} : index
  %1 = test.with_bounds {smax = 7 : index, smin = 5 : index, umax = 7 : index, umin = 5 : index} : index
  %subview = memref.subview %arg0[%c0, %c0, %c1] [%1, %0, %c2] [%c1, %c1, %c1] : memref&lt;8x16x4xf32, strided&lt;[64, 4, 1]&gt;&gt; to memref&lt;?x?x?xf32, strided&lt;[?, ?, ?], offset: ?&gt;&gt;
  return
}
```

Applying `mlir-opt --test-strided-metadata-range-analysis` prints:
```
Op: %subview = memref.subview %arg0[%c0, %c0, %c1] [%1, %0, %c2] [%c1, %c1, %c1] : memref&lt;8x16x4xf32, strided&lt;[64, 4, 1]&gt;&gt; to memref&lt;?x?x?xf32, strided&lt;[?, ?, ?], offset: ?&gt;&gt;
  result[0]: strided_metadata&lt;offset = [{unsigned : [1, 1] signed : [1, 1]}], sizes = [{unsigned : [5, 7] signed : [5, 7]}, {unsigned : [11, 13] signed : [11, 13]}, {unsigned : [2, 2] signed : [2, 2]}], strides = [{unsigned : [64, 64] signed : [64, 64]}, {unsigned : [4, 4] signed : [4, 4]}, {unsigned : [1, 1] signed : [1, 1]}]&gt;
```

---------

Signed-off-by: Fabian Mora &lt;fabian.mora-cordero@amd.com&gt;</pre>
</div>
</content>
</entry>
</feed>
