Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
It now assumes they're of the very restricted for that's actually
produced by emscripten, which both simplified the code and uncovered
opportunities for further register reduction in a testcase.
|
|
Rather than pre-calculating liveness states and then processing nodes
in execution order, we process nodes in reverse execution order and
use the liveness info implicit in this traversal. Names are assigned
a register when they're used for the first time, and the register is
freed when we reach an assignment.
|
|
|
|
|
|
|
|
|
|
This does a much-more-expensive but much-more-thorough registerization
pass based a live-variable analysis for each function.
azakai: perform this on -O3 and above
|
|
|
|
|
|
|
|
|
|
coverage and support for fastcomp
|
|
|
|
Split name-minification into a separate pass from registerization.
|
|
|
|
they have any dependencies; fixes #2003
|
|
|
|
|
|
fixed limit on the # of minified names
|
|
aggressiveVariableElimination
|
|
|
|
|
|
|
|
|
|
loop variable optimizer
|
|
|
|
|
|
Optimize HEAP8[i] = x & 255 to HEAP8[i] = x, and similar for HEAP16.
|
|
Math.fround calls
|
|
Math.fround calls
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a non-executing code path
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|