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; |