diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-11-30 11:40:05 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-12-07 14:23:20 -0800 |
commit | 3c642441a9cc0082d2e6f9ec412f43d0286f93b9 (patch) | |
tree | ba1993c142e28d1fc0094e5cecd3dab52e49ca78 /tools/js-optimizer.js | |
parent | f6b5cdbbe1d117403bbecf91dfb681bc7006543f (diff) |
do registerize in asm.js+reloop mode, as an alternative to closure
Diffstat (limited to 'tools/js-optimizer.js')
-rw-r--r-- | tools/js-optimizer.js | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/tools/js-optimizer.js b/tools/js-optimizer.js index 53d1bb31..166843a9 100644 --- a/tools/js-optimizer.js +++ b/tools/js-optimizer.js @@ -1203,7 +1203,7 @@ function loopOptimizer(ast) { // TODO: Consider how this fits in with the rest of the optimization toolchain. Do // we still need the eliminator? Closure? And in what order? Perhaps just // closure simple? -function registerize(ast) { +function registerize(ast, asm) { traverseGeneratedFunctions(ast, function(fun) { // Replace all var definitions with assignments; we will add var definitions at the top after we registerize // We also mark local variables - i.e., having a var definition @@ -1371,6 +1371,10 @@ function registerize(ast) { }); } +function registerizeAsm(ast) { + registerizeAsm(ast, true); +} + // Eliminator aka Expressionizer // // The goal of this pass is to eliminate unneeded variables (which represent one of the infinite registers in the LLVM @@ -1894,6 +1898,7 @@ var passes = { hoistMultiples: hoistMultiples, loopOptimizer: loopOptimizer, registerize: registerize, + registerizeAsm: registerizeAsm, eliminate: eliminate, eliminateMemSafe: eliminateMemSafe, eliminateAsm: eliminateAsm, |