<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/mlir/lib/Dialect/ControlFlow/IR/ControlFlowOps.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][CF] Avoid collapsing blocks which participate in cycles (#160783)</title>
<updated>2025-09-29T08:39:31+00:00</updated>
<author>
<name>benwu25</name>
<email>soggysocks206@gmail.com</email>
</author>
<published>2025-09-29T08:39:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=631b89cc4766d2b8f0f5a17c6d90fe920436a2c9'/>
<id>631b89cc4766d2b8f0f5a17c6d90fe920436a2c9</id>
<content type='text'>
Previously, collapseBranch did not return failure for successor blocks which were part of a cycle. mlir-opt --canonicalize would run indefinitely for any N-block cycle which is kicked off with an unconditional jump. The simplifyPassThroughBr transform would continue alternating which block was targeted in ^bb0, resulting in an infinite loop.

collapseBranch will not result in any useful transformation on blocks which participate in cycles, since the block is aliased by a different block. To avoid this, we can check for cycles in collapseBranch and abort when one is detected. Simplification of the cycle is left for other transforms.

Fixes #159743.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, collapseBranch did not return failure for successor blocks which were part of a cycle. mlir-opt --canonicalize would run indefinitely for any N-block cycle which is kicked off with an unconditional jump. The simplifyPassThroughBr transform would continue alternating which block was targeted in ^bb0, resulting in an infinite loop.

collapseBranch will not result in any useful transformation on blocks which participate in cycles, since the block is aliased by a different block. To avoid this, we can check for cycles in collapseBranch and abort when one is detected. Simplification of the cycle is left for other transforms.

Fixes #159743.
</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir] Remove unused includes (NFC) (#150266)</title>
<updated>2025-07-23T22:18:53+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-07-23T22:18:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0925d7572acee311bf596db294bc818536722150'/>
<id>0925d7572acee311bf596db294bc818536722150</id>
<content type='text'>
These are identified by misc-include-cleaner.  I've filtered out those
that break builds.  Also, I'm staying away from llvm-config.h,
config.h, and Compiler.h, which likely cause platform- or
compiler-specific build failures.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These are identified by misc-include-cleaner.  I've filtered out those
that break builds.  Also, I'm staying away from llvm-config.h,
config.h, and Compiler.h, which likely cause platform- or
compiler-specific build failures.</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][NFC] update `mlir/Dialect` create APIs (16/n) (#149922)</title>
<updated>2025-07-21T23:57:30+00:00</updated>
<author>
<name>Maksim Levental</name>
<email>maksim.levental@gmail.com</email>
</author>
<published>2025-07-21T23:57:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=dce6679cf5cbbdaffb9c2b51dc762c5c6689ea78'/>
<id>dce6679cf5cbbdaffb9c2b51dc762c5c6689ea78</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][cf] Preserve branch weights during cf.cond_br canonicalization. (#144822)</title>
<updated>2025-06-19T17:09:10+00:00</updated>
<author>
<name>Slava Zakharin</name>
<email>szakharin@nvidia.com</email>
</author>
<published>2025-06-19T17:09:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6ce86538c11b3ef93a2a8df3bd4f817a724f42bd'/>
<id>6ce86538c11b3ef93a2a8df3bd4f817a724f42bd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[MLIR] Update APInt construction to correctly set isSigned/implicitTrunc (#110466)</title>
<updated>2024-10-14T13:01:05+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2024-10-14T13:01:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e692af85966903614d470a7742ed89d124baf1a6'/>
<id>e692af85966903614d470a7742ed89d124baf1a6</id>
<content type='text'>
This fixes all the places in MLIR that hit the new assertion added in
#106524, in preparation for enabling it by default. That is, cases where
the value passed to the APInt constructor is not an N-bit
signed/unsigned integer, where N is the bit width and signedness is
determined by the isSigned flag.

The fixes either set the correct value for isSigned, or set the
implicitTrunc flag to retain the old behavior. I've left TODOs for the
latter case in some places, where I think that it may be worthwhile to
stop doing implicit truncation in the future.

Note that the assertion is currently still disabled by default, so this
patch is mostly NFC.

This is just the MLIR changes split off from
https://github.com/llvm/llvm-project/pull/80309.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes all the places in MLIR that hit the new assertion added in
#106524, in preparation for enabling it by default. That is, cases where
the value passed to the APInt constructor is not an N-bit
signed/unsigned integer, where N is the bit width and signedness is
determined by the isSigned flag.

The fixes either set the correct value for isSigned, or set the
implicitTrunc flag to retain the old behavior. I've left TODOs for the
latter case in some places, where I think that it may be worthwhile to
stop doing implicit truncation in the future.

Note that the assertion is currently still disabled by default, so this
patch is mostly NFC.

This is just the MLIR changes split off from
https://github.com/llvm/llvm-project/pull/80309.</pre>
</div>
</content>
</entry>
<entry>
<title>Bufferization with ControlFlow Asserts (#95868)</title>
<updated>2024-06-26T06:00:39+00:00</updated>
<author>
<name>McCowan Zhang</name>
<email>86526121+mccowanzhang@users.noreply.github.com</email>
</author>
<published>2024-06-26T06:00:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a159b36724d9b7dc67702d742ffd63503f6a1417'/>
<id>a159b36724d9b7dc67702d742ffd63503f6a1417</id>
<content type='text'>
Fixed incorrect bufferization interaction with cf.assert
- reordered bufferization condition checking
- fixed hasNeitherAllocateNorFreeSideEffect checking bug
- implemented memory interface for cf.assert

---------

Co-authored-by: McCowan Zhang &lt;mccowan.z@ssi.samsung.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixed incorrect bufferization interaction with cf.assert
- reordered bufferization condition checking
- fixed hasNeitherAllocateNorFreeSideEffect checking bug
- implemented memory interface for cf.assert

---------

Co-authored-by: McCowan Zhang &lt;mccowan.z@ssi.samsung.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>mlir/MathExtras: consolidate with llvm/MathExtras (#95087)</title>
<updated>2024-06-11T22:00:02+00:00</updated>
<author>
<name>Ramkumar Ramachandra</name>
<email>ramkumar.ramachandra@codasip.com</email>
</author>
<published>2024-06-11T22:00:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0fb216fb2fbb49c1fe90c1c3267873a100b1c356'/>
<id>0fb216fb2fbb49c1fe90c1c3267873a100b1c356</id>
<content type='text'>
This patch is part of a project to move the Presburger library into
LLVM.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch is part of a project to move the Presburger library into
LLVM.</pre>
</div>
</content>
</entry>
<entry>
<title>[MLIR][CF] Fix cf.switch parsing with result numbers (#87658)</title>
<updated>2024-04-04T19:32:47+00:00</updated>
<author>
<name>Keyi Zhang</name>
<email>Kuree@users.noreply.github.com</email>
</author>
<published>2024-04-04T19:32:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7e87d03b45f3ca0f6d9c09e8e9090329cc84592e'/>
<id>7e87d03b45f3ca0f6d9c09e8e9090329cc84592e</id>
<content type='text'>
This PR should fix the parsing bug reported in
https://github.com/llvm/llvm-project/issues/87430. It allows using
result number as the `cf.switch` operand.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR should fix the parsing bug reported in
https://github.com/llvm/llvm-project/issues/87430. It allows using
result number as the `cf.switch` operand.</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC][mlir] Reorder `declarePromisedInterface()` operands (#86628)</title>
<updated>2024-03-27T17:30:17+00:00</updated>
<author>
<name>Justin Fargnoli</name>
<email>justinfargnoli@gmail.com</email>
</author>
<published>2024-03-27T17:30:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=35d55f2894a2a2cdca5db494f519aa5ec7273678'/>
<id>35d55f2894a2a2cdca5db494f519aa5ec7273678</id>
<content type='text'>
Reorder the template operands of `declarePromisedInterface()` to match
`declarePromisedInterfaces()`.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reorder the template operands of `declarePromisedInterface()` to match
`declarePromisedInterfaces()`.</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir] Declare promised interfaces for all dialects (#78368)</title>
<updated>2024-03-16T03:23:20+00:00</updated>
<author>
<name>Justin Fargnoli</name>
<email>justinfargnoli@gmail.com</email>
</author>
<published>2024-03-16T03:23:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=513cdb82223a106f183b49a40d9acb1f7efbbe7e'/>
<id>513cdb82223a106f183b49a40d9acb1f7efbbe7e</id>
<content type='text'>
This PR adds promised interface declarations for all interfaces declared
in `InitAllDialects.h`.

Promised interfaces allow a dialect to declare that it will have an
implementation of a particular interface, crashing the program if one
isn't provided when the interface is used.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR adds promised interface declarations for all interfaces declared
in `InitAllDialects.h`.

Promised interfaces allow a dialect to declare that it will have an
implementation of a particular interface, crashing the program if one
isn't provided when the interface is used.</pre>
</div>
</content>
</entry>
</feed>
