diff options
author | Alon Zakai <azakai@google.com> | 2022-09-07 09:06:38 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-07 09:06:38 -0700 |
commit | 90848f83b3f7bccc0ec815be7a3c0a783a134b03 (patch) | |
tree | 5f84f8962a4a61c21b44b7c21f0de97848c77e78 /test/example/c-api-unused-mem.cpp | |
parent | 16f72aae58b6c856d405d6d608efd436549ea678 (diff) | |
download | binaryen-90848f83b3f7bccc0ec815be7a3c0a783a134b03.tar.gz binaryen-90848f83b3f7bccc0ec815be7a3c0a783a134b03.tar.bz2 binaryen-90848f83b3f7bccc0ec815be7a3c0a783a134b03.zip |
Switch to i32 operations when heading to a wrap anyhow (#5022)
E.g. if we just do addition etc., then any higher bits will be wrapped out anyhow:
int32_t(int64_t(x) + int64_t(10))
=>
x + int32_t(10)
Found by the superoptimizer #4994 . This is by far the most promising suggestion it
had. Interestingly, it mainly helps Go, where it removes 20% of all Unary operations
(the extends and wraps), and Rust, where it removes 3%.
Helps #5004. This handles the common cases I see in the superoptimizer output, but
there are more that could be handled.
Diffstat (limited to 'test/example/c-api-unused-mem.cpp')
0 files changed, 0 insertions, 0 deletions