aboutsummaryrefslogtreecommitdiff
path: root/tools/js-optimizer.js
AgeCommit message (Collapse)Author
2012-05-16fix registerize bug with freeing variables from the wrong loopsAlon Zakai
2012-05-16bugfix in registerizeAlon Zakai
2012-05-16properly lock variables to loops in registerizeAlon Zakai
2012-05-15simple optimization to allow more registerization inside loopsAlon Zakai
2012-05-15refactor registerizeAlon Zakai
2012-05-15track number of assigns/modifications in registerizeAlon Zakai
2012-05-12print saved vars in registerizeAlon Zakai
2012-05-12handle multiple var defs of the same var in registerizeAlon Zakai
2012-05-11fix registerize bugsAlon Zakai
2012-05-11registerize: define all vars once up frontAlon Zakai
2012-05-11unenabled experimental registerization pass in js optimizerAlon Zakai
2012-03-31do not consider division safe for |0 removal, and add testcase 2 from issue 324Alon Zakai
2012-03-20Misc fixes for Windows.Sigmund Vik
Most of these changes have to do with how python scripts are invoked. For Linux, 'Popen([EMCC] + args)' works because the first line in emcc is '#!/usr/bin/env python'. On Windows, the python interpreter has to be explicitly invoked, e.g. 'Popen(['python', EMCC] + args)'. Note that there is no harm in explicitly invoking the python interpreter on Linux, so this works on both platforms. For Windows, execvp() behaves differently than on Linux: http://mail.python.org/pipermail/python-list/2002-July/763863.html http://msdn.microsoft.com/en-us/library/3xw6zy53.aspx This causes many strange things to happen as the parent process terminated before its children. In this change the use of execvp() has been replaced with subprocess.call(). This change also fixes some code that assumed that the path separator always is '/', but for Windows it is '\'. And where the path module can be required, we use path.normalize() and path.resolve() to check if a filename is absolute in a platform agnostic manner.
2012-03-10better handling of detection of scriptArgs and argumentsAlon Zakai
2012-03-01clean up optimizeShiftsAggressive a littleAlon Zakai
2012-02-29better fix for leaked globalsAlon Zakai
2012-02-29do not pollute global scope except for node (where we must)Alon Zakai
2012-02-19collapse elses after the if block breaks or continues, other minor js ↵Alon Zakai
optimizer fixes
2012-01-19js optimizer commentAlon Zakai
2012-01-16improve side effect detection in js optimizerAlon Zakai
2012-01-15tweak order of operations in vacuumAlon Zakai
2012-01-15optimize hoistMultiples to not need multiple passesAlon Zakai
2012-01-15js optimizer refactoringAlon Zakai
2012-01-14refactor hoistMultiples shell for clarityAlon Zakai
2012-01-14vaccum per function in js optimizerAlon Zakai
2012-01-14optimize js optimizer traversal of generated codeAlon Zakai
2012-01-14optimize hoistMultiples with a switchAlon Zakai
2012-01-14optimize hoistMultiples by removing jsonCompare'sAlon Zakai
2012-01-12emcc option to compress js whitespaceAlon Zakai
2012-01-10refactor js optimizer to not use fs.* as much as possibleAlon Zakai
2012-01-06also hoist loops in inner functionsAlon Zakai
2012-01-03remove label setting when we get to a single entry, even if the label ↵Alon Zakai
setting is not in a block by itself
2012-01-01remove __label__ settings in hoisted blocks and if we are sure the label ↵Alon Zakai
setting is unimportant because the next code after us is not a check for the label
2012-01-01fix bug in loopOptimizer with not removing all unneeded labelsAlon Zakai
2011-12-31simplify shift optimizer and make it safer by not optimizing out >> << combosAlon Zakai
2011-12-31fix shift optimizer bugsAlon Zakai
2011-12-30fix bug with optimizing shifts too large for us to be optimizingAlon Zakai
2011-12-30add var for new variables in shiftOptimizer, and tweak cost function logicAlon Zakai
2011-12-29make shift optimizer output more similar to normal outputAlon Zakai
2011-12-29let shiftOptimizer either replace the original variable, or keep it and add ↵Alon Zakai
a new shifted variable
2011-12-29clean optimizeShiftsAlon Zakai
2011-12-29work harder to not modify original order of +,+,+ sets in optimizeShifts; ↵Alon Zakai
improves speed in corrections benchmark
2011-12-29tweak optimizeShifts cost functionAlon Zakai
2011-12-29fix bug with optimizeShifts asserting shifted constants can always be simplifiedAlon Zakai
2011-12-28do not recombine large shifts in optimizeShiftsAlon Zakai
2011-12-28simplify optimizeShiftsAlon Zakai
2011-12-28fix bug in optimizeShifts with not fixing the shift of X = needsShiftAlon Zakai
2011-12-28ignore string nodes when recombining additions in optimizeShiftsAlon Zakai
2011-12-28do not turn shifts into slow additions in optimizeShiftsAlon Zakai
2011-12-28fix optimizeShifts bugAlon Zakai