diff options
| author | Alon Zakai <alonzakai@gmail.com> | 2013-07-20 22:43:01 -0700 | 
|---|---|---|
| committer | Alon Zakai <alonzakai@gmail.com> | 2013-07-20 22:43:01 -0700 | 
| commit | 66171f5e8831142fb77e5b47181e1ea8b6c3b9fa (patch) | |
| tree | aadae41da8d9883b75d3b5bb8b92358753bae1e9 /tools/js-optimizer.js | |
| parent | f099024dcd6a05e2cb74d21d6cd871ed10a81983 (diff) | |
simplify heuristics for restarting in outliner
Diffstat (limited to 'tools/js-optimizer.js')
| -rw-r--r-- | tools/js-optimizer.js | 10 | 
1 files changed, 4 insertions, 6 deletions
diff --git a/tools/js-optimizer.js b/tools/js-optimizer.js index 75ffe33e..87851b1b 100644 --- a/tools/js-optimizer.js +++ b/tools/js-optimizer.js @@ -3313,8 +3313,8 @@ function outline(ast) {    function outlineStatements(func, asmData, stats, maxSize) {      level++;      printErr('outlineStatements: ' + [func[1], level, measureSize(func)]); -    var originalSize = measureSize(stats); -    if (originalSize < sizeToOutline) { level--; return } +    var lastSize = measureSize(stats); +    if (lastSize < sizeToOutline) { level--; return }      var ret = [];      var sizeSeen = 0;      var end = stats.length-1; @@ -3328,10 +3328,8 @@ function outline(ast) {          // (but only if the total costs are not extravagant)          var currSize = measureSize(stats);          var outlinedSize = measureSize(ret); -        if (canRestart && currSize > 1.2*sizeToOutline && sum(ret.map(function(newFunc) { -          return costs[newFunc[1]] || 0; -        })) < 0.5*originalSize) { -          printErr('restarting ' + func[1] + ' since ' + [currSize, outlinedSize, originalSize] + ' in level ' + level); +        if (canRestart && currSize > 1.2*sizeToOutline && lastSize - currSize >= 0.75*sizeToOutline) { +          printErr('restarting ' + func[1] + ' since ' + [currSize, outlinedSize, lastSize] + ' in level ' + level);            lastSize = currSize;            i = stats.length;            end = stats.length-1;  | 
