aboutsummaryrefslogtreecommitdiff
path: root/tools/js-optimizer.js
diff options
context:
space:
mode:
Diffstat (limited to 'tools/js-optimizer.js')
-rw-r--r--tools/js-optimizer.js7
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,