[PATCH] D141926: [WebAssembly] Add passes for GEP lowering
Sam Parker via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Mar 6 08:21:17 PST 2023
samparker added a comment.
Sorry for the delay in replying.
I found it impossible to reproduce my previously quoted numbers. I'm juggling an evolving benchmark suite, while modifying wasi-sdk and NodeJS, so I'm guessing I got //something// out-of-sync!
Below are my revised numbers, with the varying configuration options for completeness. I'm running on an Ampere Altra, with a modified version of NodeJS which uses trap handlers for OOB checks (the patch <https://chromium-review.googlesource.com/c/v8/v8/+/3913026> is currently in review for V8), and I'm only using the TurboFan compiler to reduce noise. The main takeaways are:
- LICM is no longer included.
- Running InstCombine increases code size a little, but I haven't included any of the patches to mitigate the known problems with running it late.
- Lowering GEPs, in SeparateConstOffsetFromGEP, increases code size and execution time.
- OptimizeGEPs still gives a useful improvement in size and execution time.
| Pass Config | Total code size (KB) | Speedup (%) |
| vanilla wasi-sdk-16 | 7809.192 | - |
| SeparateConstOffsetFromGEP(false), EarlyCSE | 7805.771 | 0.1 |
| SeparateConstOffsetFromGEP(false), EarlyCSE, InstCombine | 7810.446 | 0.1 |
| SeparateConstOffsetFromGEP(true), EarlyCSE | 7819.303 | -0.22 |
| SeparateConstOffsetFromGEP(true), EarlyCSE, InstCombine | 7819.988 | -0.24 |
| SeparateConstOffsetFromGEP(false), EarlyCSE, OptimizeGEPs | 7798.139 | 1.78 |
| SeparateConstOffsetFromGEP(false), EarlyCSE, OptimizeGEPs, InstCombine | 7802.854 | 1.7 |
|
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D141926/new/
https://reviews.llvm.org/D141926
More information about the llvm-commits
mailing list