summaryrefslogtreecommitdiff
path: root/src/emscripten-optimizer
diff options
context:
space:
mode:
authorAlon Zakai <azakai@google.com>2019-04-24 15:27:05 -0700
committerGitHub <noreply@github.com>2019-04-24 15:27:05 -0700
commitc3ed0f176b36a502ef2e1fd915550a808b8d8f0b (patch)
tree6abff96331025a74e18cfa4f173a997d3c800559 /src/emscripten-optimizer
parentbc0a605e8864324d40aafbd00e8de0e50240ce26 (diff)
downloadbinaryen-c3ed0f176b36a502ef2e1fd915550a808b8d8f0b.tar.gz
binaryen-c3ed0f176b36a502ef2e1fd915550a808b8d8f0b.tar.bz2
binaryen-c3ed0f176b36a502ef2e1fd915550a808b8d8f0b.zip
wasm2js: more js optimization (#2050)
* Emit ints as signed, so -1 isn't a big unsigned number. * x - -c (where c is a constant) is larger than x + c in js (but not wasm) * +(+x) => +x * Avoid unnecessary coercions on calls, return, load, etc. - we just need coercions when entering or exiting "wasm" (not internally), and on actual operations that need them.
Diffstat (limited to 'src/emscripten-optimizer')
-rw-r--r--src/emscripten-optimizer/simple_ast.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/emscripten-optimizer/simple_ast.h b/src/emscripten-optimizer/simple_ast.h
index 3d8508a15..30ef42711 100644
--- a/src/emscripten-optimizer/simple_ast.h
+++ b/src/emscripten-optimizer/simple_ast.h
@@ -1437,6 +1437,9 @@ public:
static Ref makeInt(uint32_t num) {
return makeDouble(double(num));
}
+ static Ref makeInt(int32_t num) {
+ return makeDouble(double(num));
+ }
static Ref makeNum(double num) {
return makeDouble(num);
}