Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
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.