[all-commits] [llvm/llvm-project] f05f4f: [VPlan] Model epilogue skeleton in VPlan by wrappi...
Florian Hahn via All-commits
all-commits at lists.llvm.org
Tue Sep 22 11:18:25 PDT 2026
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: f05f4f34e5cb107e17672ad806f18d031ab74caf
https://github.com/llvm/llvm-project/commit/f05f4f34e5cb107e17672ad806f18d031ab74caf
Author: Florian Hahn <flo at fhahn.com>
Date: 2026-09-22 (Tue, 22 Sep 2026)
Changed paths:
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlan.cpp
M llvm/lib/Transforms/Vectorize/VPlanConstruction.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.h
M llvm/test/Transforms/LoopVectorize/VPlan/epilogue-vectorization-printing.ll
Log Message:
-----------
[VPlan] Model epilogue skeleton in VPlan by wrapping in VPIRBBs (NFCI). (#222312)
Replace most of connectEpilogueVectorLoop by modeling the CFG explicitly
in the epilogue VPlan, by importing the CFG for the skeleton created
after executing the main loop.
To do so, update the main loop's plan to replace its VPBasicBlocks with
VPIRBasicBlocks wrapping the generated IR blocks. This allows accessing
the CFG for the VPlan, after execute.
A new modelGeneratedMainLoopBlocks transform then duplicates the CFG
from the main plan in the epilogue plan. This includes all runtime
checks and bypass blocks. This means we no longer need a number of
manual patching up of the IR and DT to connect main and epilogue plans
after execute.
It is another step getting us slightly closer to completely modeling
epilogue vectorization natively in VPlan.
Along the way, it will also help to simplify code needed to perform
folds on the epilogue skeleton (i.e. simplify
https://github.com/llvm/llvm-project/pull/204243).
PR: https://github.com/llvm/llvm-project/pull/222312
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list