diff options
author | Florian Hahn <flo@fhahn.com> | 2025-10-18 13:32:40 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-10-18 13:32:40 +0100 |
commit | a5d3522c137bdaf270480dfe0e5b3fb977e4cc73 (patch) | |
tree | ffd1eeac4fc626e13fe736184f2a8cf29fe378b3 /llvm/unittests/Bitcode/DataLayoutUpgradeTest.cpp | |
parent | c491c6e80945258750e7f4e3af4e69ae97353586 (diff) | |
download | llvm-a5d3522c137bdaf270480dfe0e5b3fb977e4cc73.zip llvm-a5d3522c137bdaf270480dfe0e5b3fb977e4cc73.tar.gz llvm-a5d3522c137bdaf270480dfe0e5b3fb977e4cc73.tar.bz2 |
[SCEV] Rewrite A - B = UMin(1, A - B) lazily for A != B loop guards. (#163787)
Follow-up to 2d027260b0f8
(https://github.com/llvm/llvm-project/pull/160500)
Creating the SCEV subtraction eagerly is very expensive. To soften the
blow, just collect a map with inequalities and check if we can apply the
subtract rewrite when rewriting SCEVAddExpr.
Restores most of the regression:
http://llvm-compile-time-tracker.com/compare.php?from=0792478e4e133be96650444f3264e89d002fc058&to=7fca35db60fe6f423ea6051b45226046c067c252&stat=instructions:u
stage1-O3: -0.10%
stage1-ReleaseThinLTO: -0.09%
stage1-ReleaseLTO-g: -0.10%
stage1-O0-g: +0.02%
stage1-aarch64-O3: -0.09%
stage1-aarch64-O0-g: +0.00%
stage2-O3: -0.17%
stage2-O0-g: -0.05%
stage2-clang: -0.07%
There is still some negative impact compared to before 2d027260b0f8, but
there's probably not much we could do reduce this even more.
Compile-time improvement with 2d027260b0f8 reverted on top of the
current PR:
http://llvm-compile-time-tracker.com/compare.php?from=7fca35db60fe6f423ea6051b45226046c067c252&to=98dd152bdfc76b30d00190d3850d89406ca3c21f&stat=instructions:u
stage1-O3: 60628M (-0.03%)
stage1-ReleaseThinLTO: 76388M (-0.04%)
stage1-ReleaseLTO-g: 89228M (-0.02%)
stage1-O0-g: 18523M (-0.03%)
stage1-aarch64-O3: 67623M (-0.03%)
stage1-aarch64-O0-g: 22595M (+0.01%)
stage2-O3: 52336M (+0.01%)
stage2-O0-g: 16174M (+0.00%)
stage2-clang: 34890032M (-0.03%)
PR: https://github.com/llvm/llvm-project/pull/163787
Diffstat (limited to 'llvm/unittests/Bitcode/DataLayoutUpgradeTest.cpp')
0 files changed, 0 insertions, 0 deletions