<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/mlir/test/Dialect/SCF, 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] Revamp RegionBranchOpInterface  (#165429)</title>
<updated>2025-10-28T16:53:56+00:00</updated>
<author>
<name>Mehdi Amini</name>
<email>joker.eph@gmail.com</email>
</author>
<published>2025-10-28T16:53:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=41f65666f6378bba7266be7c662c70074f04ed75'/>
<id>41f65666f6378bba7266be7c662c70074f04ed75</id>
<content type='text'>
This is still somehow a WIP, we have some issues with this interface
that are not trivial to solve. This patch tries to make the concepts of
RegionBranchPoint and RegionSuccessor more robust and aligned with their
definition:
- A `RegionBranchPoint` is either the parent (`RegionBranchOpInterface`)
op or a `RegionBranchTerminatorOpInterface` operation in a nested
region.
- A `RegionSuccessor` is either one of the nested region or the parent
`RegionBranchOpInterface`

Some new methods with reasonnable default implementation are added to
help resolving the flow of values across the RegionBranchOpInterface.

It is still not trivial in the current state to walk the def-use chain
backward with this interface. For example when you have the 3rd block
argument in the entry block of a for-loop, finding the matching operands
requires to know about the hidden loop iterator block argument and where
the iterargs start. The API is designed around forward-tracking of the
chain unfortunately.

Try to reland #161575 ; I suspect a buildbot incremental build issue.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is still somehow a WIP, we have some issues with this interface
that are not trivial to solve. This patch tries to make the concepts of
RegionBranchPoint and RegionSuccessor more robust and aligned with their
definition:
- A `RegionBranchPoint` is either the parent (`RegionBranchOpInterface`)
op or a `RegionBranchTerminatorOpInterface` operation in a nested
region.
- A `RegionSuccessor` is either one of the nested region or the parent
`RegionBranchOpInterface`

Some new methods with reasonnable default implementation are added to
help resolving the flow of values across the RegionBranchOpInterface.

It is still not trivial in the current state to walk the def-use chain
backward with this interface. For example when you have the 3rd block
argument in the entry block of a for-loop, finding the matching operands
requires to know about the hidden loop iterator block argument and where
the iterargs start. The API is designed around forward-tracking of the
chain unfortunately.

Try to reland #161575 ; I suspect a buildbot incremental build issue.</pre>
</div>
</content>
</entry>
<entry>
<title>Revert " [MLIR] Revamp RegionBranchOpInterface " (#165356)</title>
<updated>2025-10-28T08:06:14+00:00</updated>
<author>
<name>Mehdi Amini</name>
<email>joker.eph@gmail.com</email>
</author>
<published>2025-10-28T08:06:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e3c547179f587299378397ac5c7f7eb8f4ca7976'/>
<id>e3c547179f587299378397ac5c7f7eb8f4ca7976</id>
<content type='text'>
Reverts llvm/llvm-project#161575

Broke Windows on ARM buildbot build, needs investigations.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reverts llvm/llvm-project#161575

Broke Windows on ARM buildbot build, needs investigations.</pre>
</div>
</content>
</entry>
<entry>
<title> [MLIR] Revamp RegionBranchOpInterface  (#161575)</title>
<updated>2025-10-28T07:47:26+00:00</updated>
<author>
<name>Mehdi Amini</name>
<email>joker.eph@gmail.com</email>
</author>
<published>2025-10-28T07:47:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ab1fd21b541056ccd1e0584e438082f417ad3cb4'/>
<id>ab1fd21b541056ccd1e0584e438082f417ad3cb4</id>
<content type='text'>
This is still somehow a WIP, we have some issues with this interface
that are not trivial to solve. This patch tries to make the concepts of
RegionBranchPoint and RegionSuccessor more robust and aligned with their
definition:
- A `RegionBranchPoint` is either the parent (`RegionBranchOpInterface`)
op or a `RegionBranchTerminatorOpInterface` operation in a nested
region.
- A `RegionSuccessor` is either one of the nested region or the parent
`RegionBranchOpInterface`

Some new methods with reasonnable default implementation are added to
help resolving the flow of values across the RegionBranchOpInterface.

It is still not trivial in the current state to walk the def-use chain
backward with this interface. For example when you have the 3rd block
argument in the entry block of a for-loop, finding the matching operands
requires to know about the hidden loop iterator block argument and where
the iterargs start. The API is designed around forward-tracking of the
chain unfortunately.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is still somehow a WIP, we have some issues with this interface
that are not trivial to solve. This patch tries to make the concepts of
RegionBranchPoint and RegionSuccessor more robust and aligned with their
definition:
- A `RegionBranchPoint` is either the parent (`RegionBranchOpInterface`)
op or a `RegionBranchTerminatorOpInterface` operation in a nested
region.
- A `RegionSuccessor` is either one of the nested region or the parent
`RegionBranchOpInterface`

Some new methods with reasonnable default implementation are added to
help resolving the flow of values across the RegionBranchOpInterface.

It is still not trivial in the current state to walk the def-use chain
backward with this interface. For example when you have the 3rd block
argument in the entry block of a for-loop, finding the matching operands
requires to know about the hidden loop iterator block argument and where
the iterargs start. The API is designed around forward-tracking of the
chain unfortunately.
</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][scf] Add parallelLoopUnrollByFactors() (#164958)</title>
<updated>2025-10-27T14:51:51+00:00</updated>
<author>
<name>fabrizio-indirli</name>
<email>fabrizio.indirli@arm.com</email>
</author>
<published>2025-10-27T14:51:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=dbd9818db320abc02a055201ba6b069069c09e58'/>
<id>dbd9818db320abc02a055201ba6b069069c09e58</id>
<content type='text'>
- In the SCF Utils, add the `parallelLoopUnrollByFactors()` function to
unroll scf::ParallelOp loops according to the specified unroll factors
- Add a test pass "TestParallelLoopUnrolling" and the related LIT test
- Expose `mlir::parallelLoopUnrollByFactors()`,
`mlir::generateUnrolledLoop()`, and `mlir::scf::computeUbMinusLb()`
functions in the mlir/Dialect/SCF/Utils/Utils.h and /IR/SCF.h headers to
make them available to other passes.
- In `mlir::generateUnrolledLoop()`, add an optional `IRMapping *clonedToSrcOpsMap` 
argument to map the new cloned operations to their
original ones. In the function body, change the default `AnnotateFn`
type to `static const` to silence potential warnings about dangling
references when a function_ref is assigned to a variable with automatic
storage.

Signed-off-by: Fabrizio Indirli &lt;Fabrizio.Indirli@arm.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- In the SCF Utils, add the `parallelLoopUnrollByFactors()` function to
unroll scf::ParallelOp loops according to the specified unroll factors
- Add a test pass "TestParallelLoopUnrolling" and the related LIT test
- Expose `mlir::parallelLoopUnrollByFactors()`,
`mlir::generateUnrolledLoop()`, and `mlir::scf::computeUbMinusLb()`
functions in the mlir/Dialect/SCF/Utils/Utils.h and /IR/SCF.h headers to
make them available to other passes.
- In `mlir::generateUnrolledLoop()`, add an optional `IRMapping *clonedToSrcOpsMap` 
argument to map the new cloned operations to their
original ones. In the function body, change the default `AnnotateFn`
type to `static const` to silence potential warnings about dangling
references when a function_ref is assigned to a variable with automatic
storage.

Signed-off-by: Fabrizio Indirli &lt;Fabrizio.Indirli@arm.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[mlir][scf] Add parallelLoopUnrollByFactors()" (#164949)</title>
<updated>2025-10-24T09:44:05+00:00</updated>
<author>
<name>fabrizio-indirli</name>
<email>fabrizio.indirli@arm.com</email>
</author>
<published>2025-10-24T09:44:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=92e1be489a9a7a25857060872d6910573dfd41d5'/>
<id>92e1be489a9a7a25857060872d6910573dfd41d5</id>
<content type='text'>
Reverts llvm/llvm-project#163806 due to linking errors on the function
`mlir::scf::computeUbMinusLb`</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reverts llvm/llvm-project#163806 due to linking errors on the function
`mlir::scf::computeUbMinusLb`</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][scf] Add parallelLoopUnrollByFactors() (#163806)</title>
<updated>2025-10-24T09:01:02+00:00</updated>
<author>
<name>fabrizio-indirli</name>
<email>fabrizio.indirli@arm.com</email>
</author>
<published>2025-10-24T09:01:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=86a2073b5bf5f0b44573b8f7e600040a8cdc8bc2'/>
<id>86a2073b5bf5f0b44573b8f7e600040a8cdc8bc2</id>
<content type='text'>
- In the SCF Utils, add the `parallelLoopUnrollByFactors()` function
  to unroll scf::ParallelOp loops according to the specified unroll factors
- Add a test pass "TestParallelLoopUnrolling" and the related LIT test
- Expose `mlir::parallelLoopUnrollByFactors()`, `mlir::generateUnrolledLoop()`,
  and `mlir::scf::computeUbMinusLb()` functions in the
  mlir/Dialect/SCF/Utils/Utils.h header to make them available 
  to other passes.
- In `mlir::generateUnrolledLoop()`, add also an optional 
  `IRMapping *clonedToSrcOpsMap` argument to map the new cloned 
  operations to their original ones.
  In the function body, change the default `AnnotateFn` type to 
  `static const` to silence potential warnings about dangling references 
   when a function_ref is assigned  to a variable with automatic storage.

Signed-off-by: Fabrizio Indirli &lt;Fabrizio.Indirli@arm.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- In the SCF Utils, add the `parallelLoopUnrollByFactors()` function
  to unroll scf::ParallelOp loops according to the specified unroll factors
- Add a test pass "TestParallelLoopUnrolling" and the related LIT test
- Expose `mlir::parallelLoopUnrollByFactors()`, `mlir::generateUnrolledLoop()`,
  and `mlir::scf::computeUbMinusLb()` functions in the
  mlir/Dialect/SCF/Utils/Utils.h header to make them available 
  to other passes.
- In `mlir::generateUnrolledLoop()`, add also an optional 
  `IRMapping *clonedToSrcOpsMap` argument to map the new cloned 
  operations to their original ones.
  In the function body, change the default `AnnotateFn` type to 
  `static const` to silence potential warnings about dangling references 
   when a function_ref is assigned  to a variable with automatic storage.

Signed-off-by: Fabrizio Indirli &lt;Fabrizio.Indirli@arm.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Adding to execute_region_op some missing support (#164159)</title>
<updated>2025-10-23T11:45:58+00:00</updated>
<author>
<name>ddubov100</name>
<email>155631080+ddubov100@users.noreply.github.com</email>
</author>
<published>2025-10-23T11:45:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=11bbee9d9fbaa98978ed7704e799d6b56fb47295'/>
<id>11bbee9d9fbaa98978ed7704e799d6b56fb47295</id>
<content type='text'>
Adding canonicalization pattern in case execute_region op has yieldOps
which operands are from outside the execute_region, then it simplifies
the op to return just internal values. The pattern is applied only in
case all yieldOps within execute_region_op have same operands

---------

Co-authored-by: Mehdi Amini &lt;joker.eph@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Adding canonicalization pattern in case execute_region op has yieldOps
which operands are from outside the execute_region, then it simplifies
the op to return just internal values. The pattern is applied only in
case all yieldOps within execute_region_op have same operands

---------

Co-authored-by: Mehdi Amini &lt;joker.eph@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][SCF] Fix UB adjustment during `scf.for` loop peeling</title>
<updated>2025-10-20T16:18:08+00:00</updated>
<author>
<name>ddubov100</name>
<email>155631080+ddubov100@users.noreply.github.com</email>
</author>
<published>2025-10-20T16:18:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=af4fbcaed7acb58119f67c0055e80accdd2b70dc'/>
<id>af4fbcaed7acb58119f67c0055e80accdd2b70dc</id>
<content type='text'>
Currently when peeling the first iteration, any mentioning of UB within the loop body is replaced with the new UB in the peeled out first iteration. This introduces a bug in the following scenario: Operations inside of the loop that intentionally use the original UB are incorrectly updated.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently when peeling the first iteration, any mentioning of UB within the loop body is replaced with the new UB in the peeled out first iteration. This introduces a bug in the following scenario: Operations inside of the loop that intentionally use the original UB are incorrectly updated.
</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][bufferize] Make drop-equivalent-buffer-results only support functions that are neither public nor extern (#163001)</title>
<updated>2025-10-14T10:27:30+00:00</updated>
<author>
<name>lonely eagle</name>
<email>2020382038@qq.com</email>
</author>
<published>2025-10-14T10:27:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3f99d2fc9a3df3c84756c49d0fc67a97b5134610'/>
<id>3f99d2fc9a3df3c84756c49d0fc67a97b5134610</id>
<content type='text'>
The callers of public or extern functions are unknown, so their function
signatures cannot be changed.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The callers of public or extern functions are unknown, so their function
signatures cannot be changed.</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[mlir] move if-condition propagation to a standalone pass" (#159535)</title>
<updated>2025-09-18T09:54:53+00:00</updated>
<author>
<name>Mehdi Amini</name>
<email>joker.eph@gmail.com</email>
</author>
<published>2025-09-18T09:54:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c5062d7d6358d73931b4791c77500f476606b003'/>
<id>c5062d7d6358d73931b4791c77500f476606b003</id>
<content type='text'>
Reverts llvm/llvm-project#150278

Multiple post-merge comment remained undressed, and some more
fundamental issues were also reported in #159165</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reverts llvm/llvm-project#150278

Multiple post-merge comment remained undressed, and some more
fundamental issues were also reported in #159165</pre>
</div>
</content>
</entry>
</feed>
