aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Basic/SourceManager.cpp
diff options
context:
space:
mode:
authorMel Chen <mel.chen@sifive.com>2025-07-02 18:16:02 +0800
committerGitHub <noreply@github.com>2025-07-02 18:16:02 +0800
commitbc8dad1c7ef02f9a9d8a07c242fc3db470a7579b (patch)
tree42662f312d48df581bbe46865664183439df42de /clang/lib/Basic/SourceManager.cpp
parent6e1e89ee380e1ce133e3525abe64d95d5ae0326e (diff)
downloadllvm-bc8dad1c7ef02f9a9d8a07c242fc3db470a7579b.zip
llvm-bc8dad1c7ef02f9a9d8a07c242fc3db470a7579b.tar.gz
llvm-bc8dad1c7ef02f9a9d8a07c242fc3db470a7579b.tar.bz2
[VPlan] Emit VPVectorEndPointerRecipe for reverse interleave pointer adjustment (#144864)
A reverse interleave access is essentially composed of multiple load/store operations with same negative stride, and their addresses are based on the last lane address of member 0 in the interleaved group. Currently, we already have VPVectorEndPointerRecipe for computing the last lane address of consecutive reverse memory accesses. This patch extends VPVectorEndPointerRecipe to support constant stride and extracts the reverse interleave group address adjustment from VPInterleaveRecipe::execute, replacing it with a VPVectorEndPointerRecipe. The final goal is to support interleaved accesses with EVL tail folding. Given that VPInterleaveRecipe is large and tightly coupled — combining both load and store, and embedding operations like reverse pointer adjustion (GEP), widen load/store, deinterleave/interleave, and reversal — breaking it down into smaller, dedicated recipes may allow VPlanTransforms::tryAddExplicitVectorLength to lower them into EVL-aware form more effectively. One foreseeable challenge is that VPlanTransforms::convertToConcreteRecipes currently runs after tryAddExplicitVectorLength, so decomposing VPInterleaveRecipe will likely need to happen earlier in the pipeline to be effective.
Diffstat (limited to 'clang/lib/Basic/SourceManager.cpp')
0 files changed, 0 insertions, 0 deletions