aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp
diff options
context:
space:
mode:
authorAlexey Bataev <a.bataev@outlook.com>2021-12-14 10:02:06 -0800
committerAlexey Bataev <a.bataev@outlook.com>2022-05-05 06:04:25 -0700
commit99f31acfce338417fea3c14983d6f8fedc8ed043 (patch)
treed4c1f05cbcd2f4fc57b9d9934bfb0de3b4f61e3a /clang/lib/Frontend/CreateInvocationFromCommandLine.cpp
parente5926906eb1afd7ddacc1461296267b8d62da895 (diff)
downloadllvm-99f31acfce338417fea3c14983d6f8fedc8ed043.zip
llvm-99f31acfce338417fea3c14983d6f8fedc8ed043.tar.gz
llvm-99f31acfce338417fea3c14983d6f8fedc8ed043.tar.bz2
[SLP]Further improvement of the cost model for scalars used in buildvectors.
Further improvement of the cost model for the scalars used in buildvectors sequences. The main functionality is outlined into a separate function. The cost is calculated in the following way: 1. If the Base vector is not undef vector, resizing the very first mask to have common VF and perform action for 2 input vectors (including non-undef Base). Other shuffle masks are combined with the resulting after the 1 stage and processed as a shuffle of 2 elements. 2. If the Base is undef vector and have only 1 shuffle mask, perform the action only for 1 vector with the given mask, if it is not the identity mask. 3. If > 2 masks are used, perform serie of shuffle actions for 2 vectors, combing the masks properly between the steps. The original implementation misses the very first analysis for the Base vector, so the cost might too optimistic in some cases. But it improves the cost for the insertelements which are part of the current SLP graph. Part of D107966. Differential Revision: https://reviews.llvm.org/D115750
Diffstat (limited to 'clang/lib/Frontend/CreateInvocationFromCommandLine.cpp')
0 files changed, 0 insertions, 0 deletions