diff options
author | Florian Hahn <flo@fhahn.com> | 2025-06-26 11:19:09 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-06-26 11:19:09 +0100 |
commit | aa2402931908317f5cc19b164ef17c5a74f2ae67 (patch) | |
tree | 2a8a0d2a4aea6e9c271166030f77dc5debd10def /llvm/lib/Transforms/Utils/InlineFunction.cpp | |
parent | 696c0f92e0fef955e331895cd8d65fb6cc080ad3 (diff) | |
download | llvm-aa2402931908317f5cc19b164ef17c5a74f2ae67.zip llvm-aa2402931908317f5cc19b164ef17c5a74f2ae67.tar.gz llvm-aa2402931908317f5cc19b164ef17c5a74f2ae67.tar.bz2 |
[VPlan] Unroll VPReplicateRecipe by VF. (#142433)
Explicitly unroll VPReplicateRecipes outside replicate regions by VF,
replacing them by VF single-scalar recipes. Extracts for operands are
added as needed and the scalar results are combined to a vector using a
new BuildVector VPInstruction.
It also adds a few folds to simplify unnecessary extracts/BuildVectors.
It also adds a BuildStructVector opcode for handling of calls that have
struct return types.
VPReplicateRecipe in replicate regions can will be unrolled as follow
up, turing non-single-scalar VPReplicateRecipes into 'abstract', i.e.
not executable.
PR: https://github.com/llvm/llvm-project/pull/142433
Diffstat (limited to 'llvm/lib/Transforms/Utils/InlineFunction.cpp')
0 files changed, 0 insertions, 0 deletions