Revision tags: llvmorg-21-init, llvmorg-19.1.7 |
|
#
f48884de |
| 05-Jan-2025 |
Florian Hahn <flo@fhahn.com> |
[VPlan] Remove loop region in optimizeForVFAndUF. (#108378)
Update optimizeForVFAndUF to completely remove the vector loop region
when possible. At the moment, we cannot remove the region if it con
[VPlan] Remove loop region in optimizeForVFAndUF. (#108378)
Update optimizeForVFAndUF to completely remove the vector loop region
when possible. At the moment, we cannot remove the region if it contains
* widened IVs: the recipe is needed to generate the step vector
* reductions: ComputeReductionResults requires the reduction phi recipe
for codegen.
Both cases can be addressed by more explicit modeling.
The patch also includes a number of updates to allow executing VPlans
without a vector loop region.
Depends on https://github.com/llvm/llvm-project/pull/110004
show more ...
|
#
4ad0fdd1 |
| 17-Dec-2024 |
Florian Hahn <flo@fhahn.com> |
[VPlan] Remove reverse() of predecessors from VPInstruction::generate.
This was originally done to reduce the diff for the change. Remove it and update the remaining tests. NFC modulo reordering of
[VPlan] Remove reverse() of predecessors from VPInstruction::generate.
This was originally done to reduce the diff for the change. Remove it and update the remaining tests. NFC modulo reordering of incoming values.
Clean up after https://github.com/llvm/llvm-project/pull/114292.
show more ...
|
Revision tags: llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4 |
|
#
38fffa63 |
| 06-Nov-2024 |
Paul Walker <paul.walker@arm.com> |
[LLVM][IR] Use splat syntax when printing Constant[Data]Vector. (#112548)
|
Revision tags: llvmorg-19.1.3 |
|
#
c7496ceb |
| 18-Oct-2024 |
Florian Hahn <flo@fhahn.com> |
[LV] Use SCEV to check if minimum iteration check is known. (#111310)
Use SCEV to check if the minimum iteration check (TC < Step) is known to
be false.
This is a first step towards addressing
[LV] Use SCEV to check if minimum iteration check is known. (#111310)
Use SCEV to check if the minimum iteration check (TC < Step) is known to
be false.
This is a first step towards addressing
https://github.com/llvm/llvm-project/issues/111098. To catch the exact
case from the issue, we need to do extra work to make sure the wrap
flags on the shl are preserved and used by SCEV.
Note that skeleton creation will be gradually moved to VPlan and this
simplification should be done as VPlan transform eventually. The current
plan is to move skeleton creation to VPlan starting from parts closest
to the parts already created by VPlan, starting with induction resume
value creation (started with
https://github.com/llvm/llvm-project/pull/110577), then memory and SCEV
checks and finally minimum iteration checks.
PR: https://github.com/llvm/llvm-project/pull/111310
show more ...
|
Revision tags: llvmorg-19.1.2, llvmorg-19.1.1 |
|
#
4eb98384 |
| 20-Sep-2024 |
Florian Hahn <flo@fhahn.com> |
[VPlan] Generalize VPValue::isDefinedOutsideLoopRegions.
Update isDefinedOutsideLoopRegions to check if a recipe is defined outside any region. Split off already approved https://github.com/llvm/llv
[VPlan] Generalize VPValue::isDefinedOutsideLoopRegions.
Update isDefinedOutsideLoopRegions to check if a recipe is defined outside any region. Split off already approved https://github.com/llvm/llvm-project/pull/95842 now that this can be tested separately after landing VPlan-based LICM https://github.com/llvm/llvm-project/issues/107501
show more ...
|
#
a861ed41 |
| 20-Sep-2024 |
Florian Hahn <flo@fhahn.com> |
[VPlan] Add initial loop-invariant code motion transform. (#107894)
Add initial transform to move out loop-invariant recipes.
This also helps to fix a divergence between legacy and VPlan-based co
[VPlan] Add initial loop-invariant code motion transform. (#107894)
Add initial transform to move out loop-invariant recipes.
This also helps to fix a divergence between legacy and VPlan-based cost
model due to legacy using ScalarEvolution::isLoopInvariant in some
cases.
Fixes https://github.com/llvm/llvm-project/issues/107501.
PR: https://github.com/llvm/llvm-project/pull/107894
show more ...
|
Revision tags: llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1 |
|
#
a3092152 |
| 25-Jul-2024 |
Florian Hahn <flo@fhahn.com> |
[VPlan] Don't create live-outs for induction increments.
Follow up to fc9cd3272b5 to also skip creating live-outs for IV increments, as those are also generated independent of VPlan for now.
|
Revision tags: llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6 |
|
#
082c81ae |
| 07-May-2024 |
Florian Hahn <flo@fhahn.com> |
[LV] Properly extend versioned constant strides.
We only version unknown strides to 1. If the original type is i1, then the sign of the extension matters. Properly extend the stride value before rep
[LV] Properly extend versioned constant strides.
We only version unknown strides to 1. If the original type is i1, then the sign of the extension matters. Properly extend the stride value before replacing it.
Fixes https://github.com/llvm/llvm-project/issues/91369.
show more ...
|
#
c76ccf0f |
| 07-May-2024 |
Florian Hahn <flo@fhahn.com> |
[LV] Add test case for #91369.
Add tests for https://github.com/llvm/llvm-project/issues/91369.
|
Revision tags: llvmorg-18.1.5 |
|
#
9ee8e38c |
| 26-Apr-2024 |
Florian Hahn <flo@fhahn.com> |
[VPlan] Also propagate versioned strides to users via sext/zext.
The versioned value may not be used in the loop directly but through a sext/zext. Add new live-ins in those cases.
|
#
c49b74a4 |
| 26-Apr-2024 |
Florian Hahn <flo@fhahn.com> |
[LV] Add tests showing missed propgation of versiond stride values.
Strides are used through a sext/zext and the known constant value (1) isn't propagated during codegen.
|