<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h, branch users/chapuni/cov/single/loop</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>[VPlan] Add and use debug location for VPScalarCastRecipe.</title>
<updated>2025-01-05T20:08:51+00:00</updated>
<author>
<name>Florian Hahn</name>
<email>flo@fhahn.com</email>
</author>
<published>2025-01-05T20:08:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f4230b4332262dffb0bd3b7a2f8d6deb2e96488e'/>
<id>f4230b4332262dffb0bd3b7a2f8d6deb2e96488e</id>
<content type='text'>
Update the recipe it always take a debug location and set it.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Update the recipe it always take a debug location and set it.
</pre>
</div>
</content>
</entry>
<entry>
<title>[VPlan] Compute induction end values in VPlan. (#112145)</title>
<updated>2024-12-29T19:05:08+00:00</updated>
<author>
<name>Florian Hahn</name>
<email>flo@fhahn.com</email>
</author>
<published>2024-12-29T19:05:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7f3428d3ed71d87a2088b77b6cab9f3d86544234'/>
<id>7f3428d3ed71d87a2088b77b6cab9f3d86544234</id>
<content type='text'>
Use createDerivedIV to compute IV end values directly in VPlan, instead
of creating them up-front.

This allows updating IV users outside the loop as follow-up.

Depends on https://github.com/llvm/llvm-project/pull/110004 and
https://github.com/llvm/llvm-project/pull/109975.

PR: https://github.com/llvm/llvm-project/pull/112145</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use createDerivedIV to compute IV end values directly in VPlan, instead
of creating them up-front.

This allows updating IV users outside the loop as follow-up.

Depends on https://github.com/llvm/llvm-project/pull/110004 and
https://github.com/llvm/llvm-project/pull/109975.

PR: https://github.com/llvm/llvm-project/pull/112145</pre>
</div>
</content>
</entry>
<entry>
<title>[VPlan] Propagate all GEP flags (#119899)</title>
<updated>2024-12-17T12:48:50+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2024-12-17T12:48:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1157187496afbbb203b8ec7aa320769ec6eed8c4'/>
<id>1157187496afbbb203b8ec7aa320769ec6eed8c4</id>
<content type='text'>
Store GEPNoWrapFlags instead of only InBounds and propagate them.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Store GEPNoWrapFlags instead of only InBounds and propagate them.</pre>
</div>
</content>
</entry>
<entry>
<title>[VPlan] Allow setting IR name for VPDerivedIVRecipe (NFCI).</title>
<updated>2024-11-24T20:39:12+00:00</updated>
<author>
<name>Florian Hahn</name>
<email>flo@fhahn.com</email>
</author>
<published>2024-11-24T20:38:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=590f451b60d434b26c634a07125fb05baf461fa0'/>
<id>590f451b60d434b26c634a07125fb05baf461fa0</id>
<content type='text'>
Allow setting the name to use for the generated IR value of the derived
IV in preparations for https://github.com/llvm/llvm-project/pull/112145.

This is analogous to VPInstruction::Name.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Allow setting the name to use for the generated IR value of the derived
IV in preparations for https://github.com/llvm/llvm-project/pull/112145.

This is analogous to VPInstruction::Name.
</pre>
</div>
</content>
</entry>
<entry>
<title>[LV] Vectorize Epilogues for loops with small VF but high IC (#108190)</title>
<updated>2024-11-17T19:35:32+00:00</updated>
<author>
<name>Julian Nagele</name>
<email>j.nagele@apple.com</email>
</author>
<published>2024-11-17T19:35:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a8538b9138574142b9338ad0fce0f8ba1065fcbc'/>
<id>a8538b9138574142b9338ad0fce0f8ba1065fcbc</id>
<content type='text'>
- Consider MainLoopVF * IC when determining whether Epilogue
Vectorization is profitable
- Allow the same VF for the Epilogue as for the main loop
- Use an upper bound for the trip count of the Epilogue when choosing
the Epilogue VF

PR: https://github.com/llvm/llvm-project/pull/108190
---------

Co-authored-by: Florian Hahn &lt;flo@fhahn.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Consider MainLoopVF * IC when determining whether Epilogue
Vectorization is profitable
- Allow the same VF for the Epilogue as for the main loop
- Use an upper bound for the trip count of the Epilogue when choosing
the Epilogue VF

PR: https://github.com/llvm/llvm-project/pull/108190
---------

Co-authored-by: Florian Hahn &lt;flo@fhahn.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[VPlan] Introduce scalar loop header in plan, remove VPLiveOut. (#109975)</title>
<updated>2024-10-31T20:36:44+00:00</updated>
<author>
<name>Florian Hahn</name>
<email>flo@fhahn.com</email>
</author>
<published>2024-10-31T20:36:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b021464d35ca9569d430d968034e21c1e592cbb9'/>
<id>b021464d35ca9569d430d968034e21c1e592cbb9</id>
<content type='text'>
Update VPlan to include the scalar loop header. This allows retiring
VPLiveOut, as the remaining live-outs can now be handled by adding
operands to the wrapped phis in the scalar loop header.

Note that the current version only includes the scalar loop header, no
other loop blocks and also does not wrap it in a region block.

PR: https://github.com/llvm/llvm-project/pull/109975</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Update VPlan to include the scalar loop header. This allows retiring
VPLiveOut, as the remaining live-outs can now be handled by adding
operands to the wrapped phis in the scalar loop header.

Note that the current version only includes the scalar loop header, no
other loop blocks and also does not wrap it in a region block.

PR: https://github.com/llvm/llvm-project/pull/109975</pre>
</div>
</content>
</entry>
<entry>
<title>[LV] Pass flag indicating epilogue is vectorized to executePlan (NFC)</title>
<updated>2024-10-25T18:39:47+00:00</updated>
<author>
<name>Florian Hahn</name>
<email>flo@fhahn.com</email>
</author>
<published>2024-10-25T18:39:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9648271a3c5adf875680833ac74eb4bafb48678d'/>
<id>9648271a3c5adf875680833ac74eb4bafb48678d</id>
<content type='text'>
This clarifies the flag, which is now only passed if the epilogue loop
is being vectorized.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This clarifies the flag, which is now only passed if the epilogue loop
is being vectorized.
</pre>
</div>
</content>
</entry>
<entry>
<title>[VPlan] Use pointer to member 0 as VPInterleaveRecipe's pointer arg. (#106431)</title>
<updated>2024-10-06T21:53:13+00:00</updated>
<author>
<name>Florian Hahn</name>
<email>flo@fhahn.com</email>
</author>
<published>2024-10-06T21:53:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7f74651837b8f95996ea4c774b2e604020446951'/>
<id>7f74651837b8f95996ea4c774b2e604020446951</id>
<content type='text'>
Update VPInterleaveRecipe to always use the pointer to member 0 as
pointer argument. This in many cases helps to remove unneeded index
adjustments and simplifies VPInterleaveRecipe::execute.

In some rare cases, the address of member 0 does not dominate the insert
position of the interleave group. In those cases a PtrAdd VPInstruction
is emitted to compute the address of member 0 based on the address of
the insert position. Alternatively we could hoist the recipe computing
the address of member 0.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Update VPInterleaveRecipe to always use the pointer to member 0 as
pointer argument. This in many cases helps to remove unneeded index
adjustments and simplifies VPInterleaveRecipe::execute.

In some rare cases, the address of member 0 does not dominate the insert
position of the interleave group. In those cases a PtrAdd VPInstruction
is emitted to compute the address of member 0 based on the address of
the insert position. Alternatively we could hoist the recipe computing
the address of member 0.</pre>
</div>
</content>
</entry>
<entry>
<title>[LV] Retrieve reduction resume values directly for epilogue vec. (NFC)</title>
<updated>2024-09-29T09:37:58+00:00</updated>
<author>
<name>Florian Hahn</name>
<email>flo@fhahn.com</email>
</author>
<published>2024-09-29T09:37:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1edd22030ccb9603f21d13150847ea40a4136d45'/>
<id>1edd22030ccb9603f21d13150847ea40a4136d45</id>
<content type='text'>
Use the reduction resume values from the phis in the scalar header,
instead of collecting them in a map. This removes some complexity from
the general executePlan code paths and pushes it to only the epilogue
vectorization part.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use the reduction resume values from the phis in the scalar header,
instead of collecting them in a map. This removes some complexity from
the general executePlan code paths and pushes it to only the epilogue
vectorization part.
</pre>
</div>
</content>
</entry>
<entry>
<title>[VPlan] Add createPtrAdd helper (NFC).</title>
<updated>2024-09-24T18:55:35+00:00</updated>
<author>
<name>Florian Hahn</name>
<email>flo@fhahn.com</email>
</author>
<published>2024-09-24T18:54:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c95583f15f77a2f4fed4b520b2bcf7b442cbc4b3'/>
<id>c95583f15f77a2f4fed4b520b2bcf7b442cbc4b3</id>
<content type='text'>
Preparation for https://github.com/llvm/llvm-project/pull/106431.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Preparation for https://github.com/llvm/llvm-project/pull/106431.
</pre>
</div>
</content>
</entry>
</feed>
