diff options
author | Nikita Popov <npopov@redhat.com> | 2022-09-01 12:45:40 +0200 |
---|---|---|
committer | Nikita Popov <npopov@redhat.com> | 2022-12-20 10:02:46 +0100 |
commit | 88419a30a02de3a35db990399315b0b3e329627e (patch) | |
tree | 50e71b4bc9c160c9616704c7dc925a925ac55dcb /llvm/lib/Support/CommandLine.cpp | |
parent | 301f3da5162499965287338a0cd52309fb28e8b8 (diff) | |
download | llvm-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