<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/mlir/lib/Conversion/ArithToLLVM/ArithToLLVM.cpp, branch users/aaupov/spr/main.bolt-require-cfg-in-bat-mode</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][NFC] update `Conversion` create APIs (4/n) (#149879)</title>
<updated>2025-07-23T15:49:35+00:00</updated>
<author>
<name>Maksim Levental</name>
<email>maksim.levental@gmail.com</email>
</author>
<published>2025-07-23T15:49:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b0434925c98c9a8906afea60a1304c870b1f574a'/>
<id>b0434925c98c9a8906afea60a1304c870b1f574a</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] Remove unused includes (NFC) (#147101)</title>
<updated>2025-07-04T20:30:21+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-07-04T20:30:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=fa9adbfda9679250ab753edd9aa908d9ea53be0a'/>
<id>fa9adbfda9679250ab753edd9aa908d9ea53be0a</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][arith] Add overflow flags to `arith.trunci` (#144863)</title>
<updated>2025-06-19T11:59:22+00:00</updated>
<author>
<name>Matthias Springer</name>
<email>me@m-sp.org</email>
</author>
<published>2025-06-19T11:59:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e33f13ba4824d807e846e7783a48efd6c0bf58ee'/>
<id>e33f13ba4824d807e846e7783a48efd6c0bf58ee</id>
<content type='text'>
LLVM already supports overflow flags on `llvm.trunc` for a while. This
commit adds support for these flags to `arith.trunci`.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
LLVM already supports overflow flags on `llvm.trunc` for a while. This
commit adds support for these flags to `arith.trunci`.</pre>
</div>
</content>
</entry>
<entry>
<title>Reland [mlir] ArithToLLVM: fix memref bitcast lowering (#125148) (#126939)</title>
<updated>2025-02-12T17:32:13+00:00</updated>
<author>
<name>Ivan Butygin</name>
<email>ivan.butygin@gmail.com</email>
</author>
<published>2025-02-12T17:32:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e167c31dc973b0b2c3af96f5e7e28d45736a6c6b'/>
<id>e167c31dc973b0b2c3af96f5e7e28d45736a6c6b</id>
<content type='text'>
Reland https://github.com/llvm/llvm-project/pull/125148

Limiting vector pattern caused issues with `select` of complex lowering,
which wasn't caught as it was missing lit tests. Keep the pattern as is
for now and instead set a higher benefit to `IdentityBitcastLowering` so
it will always run before the vector pattern.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reland https://github.com/llvm/llvm-project/pull/125148

Limiting vector pattern caused issues with `select` of complex lowering,
which wasn't caught as it was missing lit tests. Keep the pattern as is
for now and instead set a higher benefit to `IdentityBitcastLowering` so
it will always run before the vector pattern.</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[mlir] ArithToLLVM: fix memref bitcast lowering" (#126895)</title>
<updated>2025-02-12T11:34:16+00:00</updated>
<author>
<name>Ivan Butygin</name>
<email>ivan.butygin@gmail.com</email>
</author>
<published>2025-02-12T11:34:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0e779ad4998ef65907502101c5b82ede05ddfa4e'/>
<id>0e779ad4998ef65907502101c5b82ede05ddfa4e</id>
<content type='text'>
Reverts llvm/llvm-project#125148

bot failures</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reverts llvm/llvm-project#125148

bot failures</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir] ArithToLLVM: fix memref bitcast lowering (#125148)</title>
<updated>2025-02-12T11:19:13+00:00</updated>
<author>
<name>Ivan Butygin</name>
<email>ivan.butygin@gmail.com</email>
</author>
<published>2025-02-12T11:19:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=79010e2e4d0e27ee87887bfaef2c32e908c92a8e'/>
<id>79010e2e4d0e27ee87887bfaef2c32e908c92a8e</id>
<content type='text'>
`arith.bitcast` is allowed on memrefs and such code can actually be
generated by IREE `ConvertBf16ArithToF32Pass`.
`LLVM::detail::vectorOneToOneRewrite` doesn't properly check its types
and will generate bitcast between structs which is illegal.

With the opaque pointers this is a no-op operation for memref so we can
just add type check in `LLVM::detail::vectorOneToOneRewrite` and add a
separate pattern which removes op if converted types are the same.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`arith.bitcast` is allowed on memrefs and such code can actually be
generated by IREE `ConvertBf16ArithToF32Pass`.
`LLVM::detail::vectorOneToOneRewrite` doesn't properly check its types
and will generate bitcast between structs which is illegal.

With the opaque pointers this is a no-op operation for memref so we can
just add type check in `LLVM::detail::vectorOneToOneRewrite` and add a
separate pattern which removes op if converted types are the same.</pre>
</div>
</content>
</entry>
<entry>
<title>[MLIR][Arith] Add CeilFloorDivExpandOpsPatterns to conversion to LLVM (Reland) (#118839)</title>
<updated>2024-12-16T16:15:13+00:00</updated>
<author>
<name>Hugo Trachino</name>
<email>hugo.trachino@huawei.com</email>
</author>
<published>2024-12-16T16:15:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3cbc73f71eef599e678197e445e11a98f8f61689'/>
<id>3cbc73f71eef599e678197e445e11a98f8f61689</id>
<content type='text'>
When running `convert-to-llvm`, `ceildiv` and `floordiv` ops, which do not
have direct llvm conversion pattern, would not get lowered to llvm
dialect. This patch adds CeilFloorDivExpandOpsPatterns to both
`convert-to-llvm` and `arith-to-llvm` (deprecated) lowering those ops to
lower level arith ops which can be lowered to llvm using LLVM
conversion.

Reland of https://github.com/llvm/llvm-project/pull/117305 after
buildbot failures.
See:
https://lab.llvm.org/buildbot/#/builders/80/builds/7168
https://lab.llvm.org/buildbot/#/builders/130/builds/7036
https://lab.llvm.org/buildbot/#/builders/138/builds/7290

Added dependence to ArithTransforms in ArithToLLVM. In previous
discussion, it has been suggested to move the
CeilFloorDivExpandOpsPatterns to ArithUtils but I think linking
ArithTransforms makes more sense as otherwise :
* ArithToLLVM needs a new dependency to ArithUtils
* ArithUtils needs new dependency to ArithTransforms or move the
patterns as well which will create more dependencies
* It creates lots of code motion which makes it hard to review.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When running `convert-to-llvm`, `ceildiv` and `floordiv` ops, which do not
have direct llvm conversion pattern, would not get lowered to llvm
dialect. This patch adds CeilFloorDivExpandOpsPatterns to both
`convert-to-llvm` and `arith-to-llvm` (deprecated) lowering those ops to
lower level arith ops which can be lowered to llvm using LLVM
conversion.

Reland of https://github.com/llvm/llvm-project/pull/117305 after
buildbot failures.
See:
https://lab.llvm.org/buildbot/#/builders/80/builds/7168
https://lab.llvm.org/buildbot/#/builders/130/builds/7036
https://lab.llvm.org/buildbot/#/builders/138/builds/7290

Added dependence to ArithTransforms in ArithToLLVM. In previous
discussion, it has been suggested to move the
CeilFloorDivExpandOpsPatterns to ArithUtils but I think linking
ArithTransforms makes more sense as otherwise :
* ArithToLLVM needs a new dependency to ArithUtils
* ArithUtils needs new dependency to ArithTransforms or move the
patterns as well which will create more dependencies
* It creates lots of code motion which makes it hard to review.</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[MLIR][Arith] Add denormal attribute to binary/unary operations (#112700)"</title>
<updated>2024-12-10T03:18:20+00:00</updated>
<author>
<name>lorenzo chelini</name>
<email>lchelini@nvidia.com</email>
</author>
<published>2024-12-09T18:34:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6e2e4d446c2fa43b6cebf97d947bdc60f7f9dc0b'/>
<id>6e2e4d446c2fa43b6cebf97d947bdc60f7f9dc0b</id>
<content type='text'>
This reverts commit 4a7b56e6e7dd0f83c379ad06b6e81450bc691ba6.

There is no agreement.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 4a7b56e6e7dd0f83c379ad06b6e81450bc691ba6.

There is no agreement.
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[MLIR][Arith] Add ExpandOps to convertArithToLLVM (#117305)"</title>
<updated>2024-12-04T10:39:14+00:00</updated>
<author>
<name>Andrzej Warzynski</name>
<email>andrzej.warzynski@arm.com</email>
</author>
<published>2024-12-04T10:39:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=52b9d0beb6225d1ffe89e2921774f0df0b3e7969'/>
<id>52b9d0beb6225d1ffe89e2921774f0df0b3e7969</id>
<content type='text'>
Failing bot:
  * https://lab.llvm.org/buildbot/#/builders/138/builds/729

Also, not all discussions have been resolved:
  * https://github.com/llvm/llvm-project/pull/117305#discussion_r1861194201

This reverts commit 2c739dfd53fde0995f91c8a2c11ec803041bac86.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Failing bot:
  * https://lab.llvm.org/buildbot/#/builders/138/builds/729

Also, not all discussions have been resolved:
  * https://github.com/llvm/llvm-project/pull/117305#discussion_r1861194201

This reverts commit 2c739dfd53fde0995f91c8a2c11ec803041bac86.
</pre>
</div>
</content>
</entry>
<entry>
<title>[MLIR][Arith] Add ExpandOps to convertArithToLLVM (#117305)</title>
<updated>2024-12-04T09:32:10+00:00</updated>
<author>
<name>Hugo Trachino</name>
<email>hugo.trachino@huawei.com</email>
</author>
<published>2024-12-04T09:32:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2c739dfd53fde0995f91c8a2c11ec803041bac86'/>
<id>2c739dfd53fde0995f91c8a2c11ec803041bac86</id>
<content type='text'>
Arith Floor and Ceil ops would not get lowered when running
--convert-arith-to-llvm.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Arith Floor and Ceil ops would not get lowered when running
--convert-arith-to-llvm.</pre>
</div>
</content>
</entry>
</feed>
