<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/test/Transforms/ExpandLargeDivRem, 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>[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>Revert "Move ExpandLargeDivRem to llvm/test/CodeGen/X86 because they need a triple"</title>
<updated>2023-11-02T05:38:12+00:00</updated>
<author>
<name>Matt Arsenault</name>
<email>Matthew.Arsenault@amd.com</email>
</author>
<published>2023-11-02T04:57:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d636d73f9420bb78959af0dec0885f5a26e515af'/>
<id>d636d73f9420bb78959af0dec0885f5a26e515af</id>
<content type='text'>
This reverts commit 6bf1b4e8e0776e6f27013434d8b632016ccc795c.

Requiring a triple does not require moving these to a codegen test directory.
Move these to an x86 specific subdirectory of a transforms test.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 6bf1b4e8e0776e6f27013434d8b632016ccc795c.

Requiring a triple does not require moving these to a codegen test directory.
Move these to an x86 specific subdirectory of a transforms test.
</pre>
</div>
</content>
</entry>
<entry>
<title>Move ExpandLargeDivRem to llvm/test/CodeGen/X86 because they need a triple</title>
<updated>2022-09-13T07:29:54+00:00</updated>
<author>
<name>Matthias Gehre</name>
<email>matthias.gehre@xilinx.com</email>
</author>
<published>2022-09-13T07:29:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6bf1b4e8e0776e6f27013434d8b632016ccc795c'/>
<id>6bf1b4e8e0776e6f27013434d8b632016ccc795c</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>Fix remaining test failures for "[llvm/CodeGen] Enable the ExpandLargeDivRem pass for X86, Arm and AArch64"</title>
<updated>2022-09-06T15:38:43+00:00</updated>
<author>
<name>Matthias Gehre</name>
<email>matthias.gehre@xilinx.com</email>
</author>
<published>2022-09-06T15:32:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=af3758d678c0105c8cecb22aaf55a83017ae0384'/>
<id>af3758d678c0105c8cecb22aaf55a83017ae0384</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Expand Div/Rem: consider the case where the dividend is zero</title>
<updated>2022-09-01T16:04:26+00:00</updated>
<author>
<name>Nuno Lopes</name>
<email>nuno.lopes@tecnico.ulisboa.pt</email>
</author>
<published>2022-09-01T16:04:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=858fe8664eddd6d73241c1103213a00268528597'/>
<id>858fe8664eddd6d73241c1103213a00268528597</id>
<content type='text'>
So we can't use ctlz in poison-producing mode
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
So we can't use ctlz in poison-producing mode
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "Expand Div/Rem: consider the case where the dividend is zero"</title>
<updated>2022-09-01T11:11:22+00:00</updated>
<author>
<name>Nuno Lopes</name>
<email>nuno.lopes@tecnico.ulisboa.pt</email>
</author>
<published>2022-09-01T11:10:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=fa154a9170573e3a17639d0f71b5bccade8f7be9'/>
<id>fa154a9170573e3a17639d0f71b5bccade8f7be9</id>
<content type='text'>
This reverts commit 4aed09868b5a51a29aade11d9d412c3313310f29.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 4aed09868b5a51a29aade11d9d412c3313310f29.
</pre>
</div>
</content>
</entry>
<entry>
<title>Expand Div/Rem: consider the case where the dividend is zero</title>
<updated>2022-09-01T11:00:03+00:00</updated>
<author>
<name>Nuno Lopes</name>
<email>nuno.lopes@tecnico.ulisboa.pt</email>
</author>
<published>2022-09-01T11:00:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4aed09868b5a51a29aade11d9d412c3313310f29'/>
<id>4aed09868b5a51a29aade11d9d412c3313310f29</id>
<content type='text'>
So we can't use ctlz in poison-producing mode
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
So we can't use ctlz in poison-producing mode
</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>
