<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/CodeGen/ExpandLargeDivRem.cpp, branch users/nico/python-2</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>[CodeGen] Remove unused includes (NFC) (#115996)</title>
<updated>2024-11-13T07:15:06+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2024-11-13T07:15:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=735ab61ac828bd61398e6847d60e308fdf2b54ec'/>
<id>735ab61ac828bd61398e6847d60e308fdf2b54ec</id>
<content type='text'>
Identified with misc-include-cleaner.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Identified with misc-include-cleaner.</pre>
</div>
</content>
</entry>
<entry>
<title>[ExpandLargeDivRem] Scalarize vector types. (#86959)</title>
<updated>2024-04-02T14:37:36+00:00</updated>
<author>
<name>Bevin Hansson</name>
<email>59652494+bevin-hansson@users.noreply.github.com</email>
</author>
<published>2024-04-02T14:37:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=cd6434f9ec9af8d7508dc53806440297a24292cf'/>
<id>cd6434f9ec9af8d7508dc53806440297a24292cf</id>
<content type='text'>
expand-large-divrem cannot handle vector types.
If overly large vector element types survive into
isel, they will likely be scalarized there, but since
isel cannot handle scalar integer types of that size,
it will assert.

Handle vector types in expand-large-divrem by
scalarizing them and then expanding the scalar type
operation. For large vectors, this results in a
*massive* code expansion, but it's better than
asserting.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
expand-large-divrem cannot handle vector types.
If overly large vector element types survive into
isel, they will likely be scalarized there, but since
isel cannot handle scalar integer types of that size,
it will assert.

Handle vector types in expand-large-divrem by
scalarizing them and then expanding the scalar type
operation. For large vectors, this results in a
*massive* code expansion, but it's better than
asserting.</pre>
</div>
</content>
</entry>
<entry>
<title>CodeGen: Port ExpandLargeDivRem to new pass manager (#71022)</title>
<updated>2023-11-02T23:34:15+00:00</updated>
<author>
<name>Matt Arsenault</name>
<email>Matthew.Arsenault@amd.com</email>
</author>
<published>2023-11-02T23:34:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=94202e7b175dc602b7e998d05bed8ded964c6ec1'/>
<id>94202e7b175dc602b7e998d05bed8ded964c6ec1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC] Hide implementation details in anonymous namespaces</title>
<updated>2023-01-08T16:37:02+00:00</updated>
<author>
<name>Benjamin Kramer</name>
<email>benny.kra@googlemail.com</email>
</author>
<published>2023-01-08T16:25:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b6942a2880c578d2eab89ecb75e637aac41c5e51'/>
<id>b6942a2880c578d2eab89ecb75e637aac41c5e51</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Move TargetTransformInfo::maxLegalDivRemBitWidth -&gt; TargetLowering::maxSupportedDivRemBitWidth</title>
<updated>2022-09-12T16:06:16+00:00</updated>
<author>
<name>Matthias Gehre</name>
<email>matthias.gehre@xilinx.com</email>
</author>
<published>2022-09-12T13:27:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c1502425ba2d10d75c35e8c00a29aabd8c8e59ba'/>
<id>c1502425ba2d10d75c35e8c00a29aabd8c8e59ba</id>
<content type='text'>
Also remove new-pass-manager version of ExpandLargeDivRem because there is no way
yet to access TargetLowering in the new pass manager.

Differential Revision: https://reviews.llvm.org/D133691
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Also remove new-pass-manager version of ExpandLargeDivRem because there is no way
yet to access TargetLowering in the new pass manager.

Differential Revision: https://reviews.llvm.org/D133691
</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm/CodeGen] Enable the ExpandLargeDivRem pass for X86, Arm and AArch64</title>
<updated>2022-09-06T14:32:04+00:00</updated>
<author>
<name>Matthias Gehre</name>
<email>matthias.gehre@xilinx.com</email>
</author>
<published>2022-07-19T10:28:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2090e85fee9b2d2a1ca6402b5f44c7d41d1e353f'/>
<id>2090e85fee9b2d2a1ca6402b5f44c7d41d1e353f</id>
<content type='text'>
This adds the ExpandLargeDivRem to the default pass pipeline.
The limit at which it expands div/rem instructions is configured
via a new TargetTransformInfo hook (default: no expansion)
X86, Arm and AArch64 backends implement this hook to expand div/rem
instructions with more than 128 bits.

Differential Revision: https://reviews.llvm.org/D130076
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds the ExpandLargeDivRem to the default pass pipeline.
The limit at which it expands div/rem instructions is configured
via a new TargetTransformInfo hook (default: no expansion)
X86, Arm and AArch64 backends implement this hook to expand div/rem
instructions with more than 128 bits.

Differential Revision: https://reviews.llvm.org/D130076
</pre>
</div>
</content>
</entry>
<entry>
<title>[llvm/CodeGen] Add ExpandLargeDivRem pass</title>
<updated>2022-08-26T10:55:15+00:00</updated>
<author>
<name>Matthias Gehre</name>
<email>matthias.gehre@xilinx.com</email>
</author>
<published>2022-05-25T11:19:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3e39b271016837425038e55e57c39e5e9b289975'/>
<id>3e39b271016837425038e55e57c39e5e9b289975</id>
<content type='text'>
Adds a pass ExpandLargeDivRem to expand div/rem instructions
with more than 128 bits into a loop computing that value.

As discussed on https://reviews.llvm.org/D120327, this approach has the advantage
that it is independent of the runtime library. This also helps the clang driver,
which otherwise would need to understand enough about the runtime library
to know whether to allow _BitInts with more than 128 bits.

Targets are still free to disable this pass and instead provide a faster
implementation in a runtime library.

Fixes https://github.com/llvm/llvm-project/issues/44994

Differential Revision: https://reviews.llvm.org/D126644
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Adds a pass ExpandLargeDivRem to expand div/rem instructions
with more than 128 bits into a loop computing that value.

As discussed on https://reviews.llvm.org/D120327, this approach has the advantage
that it is independent of the runtime library. This also helps the clang driver,
which otherwise would need to understand enough about the runtime library
to know whether to allow _BitInts with more than 128 bits.

Targets are still free to disable this pass and instead provide a faster
implementation in a runtime library.

Fixes https://github.com/llvm/llvm-project/issues/44994

Differential Revision: https://reviews.llvm.org/D126644
</pre>
</div>
</content>
</entry>
</feed>
