<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/Transforms/Vectorize/VPlan.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>[llvm] Delete pointers without null checks (NFC) (#168183)</title>
<updated>2025-11-15T16:06:08+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-11-15T16:06:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3a7876d7897d66fe9f9a88f18b7577489e621d18'/>
<id>3a7876d7897d66fe9f9a88f18b7577489e621d18</id>
<content type='text'>
Identified with readability-delete-null-pointer.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Identified with readability-delete-null-pointer.</pre>
</div>
</content>
</entry>
<entry>
<title>[VPlan] Remove unneeded getDefiningRecipe with isa/cast/dyn_cast. (NFC)</title>
<updated>2025-11-11T22:07:48+00:00</updated>
<author>
<name>Florian Hahn</name>
<email>flo@fhahn.com</email>
</author>
<published>2025-11-11T22:07:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=519cf3c2b8f25768916d97650f148a66db0bba6f'/>
<id>519cf3c2b8f25768916d97650f148a66db0bba6f</id>
<content type='text'>
Classof for most recipes directly supports VPValue, so there is no need
to call getDefiningRecipe when using isa/cast/dyn_cast.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Classof for most recipes directly supports VPValue, so there is no need
to call getDefiningRecipe when using isa/cast/dyn_cast.
</pre>
</div>
</content>
</entry>
<entry>
<title>[VPlan] Use getDefiningRecipe instead of directly accessing Def. (NFC)</title>
<updated>2025-11-10T21:55:19+00:00</updated>
<author>
<name>Florian Hahn</name>
<email>flo@fhahn.com</email>
</author>
<published>2025-11-10T21:55:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0767c640437a8ff02e431a350168a13cb9056428'/>
<id>0767c640437a8ff02e431a350168a13cb9056428</id>
<content type='text'>
Use getDefiningRecipe to future-proof the code. Split off from
https://github.com/llvm/llvm-project/pull/156262 as suggested.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use getDefiningRecipe to future-proof the code. Split off from
https://github.com/llvm/llvm-project/pull/156262 as suggested.
</pre>
</div>
</content>
</entry>
<entry>
<title>[Vectorize] Remove a redundant declaration (NFC) (#167188)</title>
<updated>2025-11-09T06:28:00+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-11-09T06:28:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3ce5df408baf3d581c5765a2d756518777bbf7fa'/>
<id>3ce5df408baf3d581c5765a2d756518777bbf7fa</id>
<content type='text'>
EnableVPlanNativePath is declared in LoopVectorizationPlanner.h.

Identified with readability-redundant-declaration.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
EnableVPlanNativePath is declared in LoopVectorizationPlanner.h.

Identified with readability-redundant-declaration.</pre>
</div>
</content>
</entry>
<entry>
<title>[VPlan] Strip redundant code in VPTransformState::get (NFC) (#166145)</title>
<updated>2025-11-05T21:59:47+00:00</updated>
<author>
<name>Ramkumar Ramachandra</name>
<email>ramkumar.ramachandra@codasip.com</email>
</author>
<published>2025-11-05T21:59:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c1ca4a55d41b8edf4ce4af7a18db537bf3bf4406'/>
<id>c1ca4a55d41b8edf4ce4af7a18db537bf3bf4406</id>
<content type='text'>
vputils::isSingleScalar is sufficient.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
vputils::isSingleScalar is sufficient.</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[VPlan] Run narrowInterleaveGroups during general VPlan optimizations. (#149706)"</title>
<updated>2025-10-22T20:27:11+00:00</updated>
<author>
<name>Florian Hahn</name>
<email>flo@fhahn.com</email>
</author>
<published>2025-10-22T20:14:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=bfc322dd724735bedf763705f373749dd1b7ed65'/>
<id>bfc322dd724735bedf763705f373749dd1b7ed65</id>
<content type='text'>
This reverts commit 8d29d09309654541fb2861524276ada6a3ebf84c.

There have been reports of mis-compiles
in https://github.com/llvm/llvm-project/pull/149706.

Revert while I investigate.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 8d29d09309654541fb2861524276ada6a3ebf84c.

There have been reports of mis-compiles
in https://github.com/llvm/llvm-project/pull/149706.

Revert while I investigate.
</pre>
</div>
</content>
</entry>
<entry>
<title>[VPlan] Clarify naming for helpers to create loop&amp;replicate regions (NFC)</title>
<updated>2025-10-21T19:41:54+00:00</updated>
<author>
<name>Florian Hahn</name>
<email>flo@fhahn.com</email>
</author>
<published>2025-10-21T19:41:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=82b59345fea7f450f314fead42520d591a1933b3'/>
<id>82b59345fea7f450f314fead42520d591a1933b3</id>
<content type='text'>
Split off to clarify naming, as suggested in
https://github.com/llvm/llvm-project/pull/156262.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Split off to clarify naming, as suggested in
https://github.com/llvm/llvm-project/pull/156262.
</pre>
</div>
</content>
</entry>
<entry>
<title>[VPlan] Move two VPBlockUtils members (NFC) (#162507)</title>
<updated>2025-10-21T15:40:13+00:00</updated>
<author>
<name>Ramkumar Ramachandra</name>
<email>ramkumar.ramachandra@codasip.com</email>
</author>
<published>2025-10-21T15:40:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2ec01e430a5d2f05f379bdd6256a54ba2ec70eaa'/>
<id>2ec01e430a5d2f05f379bdd6256a54ba2ec70eaa</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[VPlan] Run narrowInterleaveGroups during general VPlan optimizations. (#149706)</title>
<updated>2025-10-21T10:37:42+00:00</updated>
<author>
<name>Florian Hahn</name>
<email>flo@fhahn.com</email>
</author>
<published>2025-10-21T10:37:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8d29d09309654541fb2861524276ada6a3ebf84c'/>
<id>8d29d09309654541fb2861524276ada6a3ebf84c</id>
<content type='text'>
Move narrowInterleaveGroups to to general VPlan optimization stage.

To do so, narrowInterleaveGroups now has to find a suitable VF where all
interleave groups are consecutive and saturate the full vector width.

If such a VF is found, the original VPlan is split into 2:
 a) a new clone which contains all VFs of Plan, except VFToOptimize, and
 b) the original Plan with VFToOptimize as single VF.

The original Plan is then optimized. If a new copy for the other VFs has
been created, it is returned and the caller has to add it to the list of
candidate plans.

Together with https://github.com/llvm/llvm-project/pull/149702, this
allows to take the narrowed interleave groups into account when
computing costs to choose the best VF and interleave count.

One example where we currently miss interleaving/unrolling when
narrowing interleave groups is https://godbolt.org/z/Yz77zbacz

PR: https://github.com/llvm/llvm-project/pull/149706</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Move narrowInterleaveGroups to to general VPlan optimization stage.

To do so, narrowInterleaveGroups now has to find a suitable VF where all
interleave groups are consecutive and saturate the full vector width.

If such a VF is found, the original VPlan is split into 2:
 a) a new clone which contains all VFs of Plan, except VFToOptimize, and
 b) the original Plan with VFToOptimize as single VF.

The original Plan is then optimized. If a new copy for the other VFs has
been created, it is returned and the caller has to add it to the list of
candidate plans.

Together with https://github.com/llvm/llvm-project/pull/149702, this
allows to take the narrowed interleave groups into account when
computing costs to choose the best VF and interleave count.

One example where we currently miss interleaving/unrolling when
narrowing interleave groups is https://godbolt.org/z/Yz77zbacz

PR: https://github.com/llvm/llvm-project/pull/149706</pre>
</div>
</content>
</entry>
<entry>
<title>[VPlan] Improve code around canConstantBeExtended (NFC) (#161652)</title>
<updated>2025-10-16T12:03:13+00:00</updated>
<author>
<name>Ramkumar Ramachandra</name>
<email>ramkumar.ramachandra@codasip.com</email>
</author>
<published>2025-10-16T12:03:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0a4702407b7e88dafa6e62fb738b094c84e245d3'/>
<id>0a4702407b7e88dafa6e62fb738b094c84e245d3</id>
<content type='text'>
Follow up on 7c4f188 ([LV] Support multiplies by constants when forming
scaled reductions), introducing m_APInt, and improving code around
canConstantBeExtended: we change canConstantBeExtended to take an APInt.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Follow up on 7c4f188 ([LV] Support multiplies by constants when forming
scaled reductions), introducing m_APInt, and improving code around
canConstantBeExtended: we change canConstantBeExtended to take an APInt.</pre>
</div>
</content>
</entry>
</feed>
