aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Support/CommandLine.cpp
diff options
context:
space:
mode:
authorNikita Popov <npopov@redhat.com>2022-09-01 12:45:40 +0200
committerNikita Popov <npopov@redhat.com>2022-12-20 10:02:46 +0100
commit88419a30a02de3a35db990399315b0b3e329627e (patch)
tree50e71b4bc9c160c9616704c7dc925a925ac55dcb /llvm/lib/Support/CommandLine.cpp
parent301f3da5162499965287338a0cd52309fb28e8b8 (diff)
downloadllvm-88419a30a02de3a35db990399315b0b3e329627e.zip
llvm-88419a30a02de3a35db990399315b0b3e329627e.tar.gz
llvm-88419a30a02de3a35db990399315b0b3e329627e.tar.bz2
[LICM] Allow load-only scalar promotion in the presence of aliasing loads
During scalar promotion, if there are additional potentially-aliasing loads outside the promoted set, we can still perform a load-only promotion. As the stores are retained, any potentially-aliasing loads will still read the correct value. This increases the number of load promotions in llvm-test-suite by a factor of two: | Old | New licm.NumPromotionCandidates | 4448 | 6038 licm.NumLoadPromoted | 479 | 1069 licm.NumLoadStorePromoted | 1459 | 1459 Unfortunately, this does have some impact on compile-time: http://llvm-compile-time-tracker.com/compare.php?from=57f7f0d6cf0706a88e1ecb74f3d3e8891cceabfa&to=72b811738148aab399966a0435f13b695da1c1c8&stat=instructions In part this is because we now have less early bailouts from promotion, but also due to second order effects (e.g. for one case I looked at we spend more time in SLP now). Differential Revision: https://reviews.llvm.org/D133192
Diffstat (limited to 'llvm/lib/Support/CommandLine.cpp')
0 files changed, 0 insertions, 0 deletions