diff options
author | Florian Hahn <flo@fhahn.com> | 2024-07-10 14:22:21 +0100 |
---|---|---|
committer | Florian Hahn <flo@fhahn.com> | 2024-07-10 14:22:21 +0100 |
commit | b841e2eca3b5c8b408214a46593f6a025e0fe48b (patch) | |
tree | 5eac4b9ec32165143e69f6773a8692d7fece424d /clang/lib/Frontend/InitPreprocessor.cpp | |
parent | 62b3e68d33035f14e83320b7921c80b36dcbea8c (diff) | |
download | llvm-b841e2eca3b5c8b408214a46593f6a025e0fe48b.zip llvm-b841e2eca3b5c8b408214a46593f6a025e0fe48b.tar.gz llvm-b841e2eca3b5c8b408214a46593f6a025e0fe48b.tar.bz2 |
Recommit "[VPlan] First step towards VPlan cost modeling. (#92555)"
This reverts commit 6f538f6a2d3224efda985e9eb09012fa4275ea92.
A number of crashes have been fixed by separate fixes, including
ttps://github.com/llvm/llvm-project/pull/96622. This version of the
PR also pre-computes the costs for branches (except the latch) instead
of computing their costs as part of costing of replicate regions, as
there may not be a direct correspondence between original branches and
number of replicate regions.
Original message:
This adds a new interface to compute the cost of recipes, VPBasicBlocks,
VPRegionBlocks and VPlan, initially falling back to the legacy cost model
for all recipes. Follow-up patches will gradually migrate recipes to
compute their own costs step-by-step.
It also adds getBestPlan function to LVP which computes the cost of all
VPlans and picks the most profitable one together with the most
profitable VF.
The VPlan selected by the VPlan cost model is executed and there is an
assert to catch cases where the VPlan cost model and the legacy cost
model disagree. Even though I checked a number of different build
configurations on AArch64 and X86, there may be some differences
that have been missed.
Additional discussions and context can be found in @arcbbb's
https://github.com/llvm/llvm-project/pull/67647 and
https://github.com/llvm/llvm-project/pull/67934 which is an earlier
version of the current PR.
PR: https://github.com/llvm/llvm-project/pull/92555
Diffstat (limited to 'clang/lib/Frontend/InitPreprocessor.cpp')
0 files changed, 0 insertions, 0 deletions