outlining integration in compiler

This commit is contained in:
Alon Zakai 2013-07-17 16:47:47 -07:00
Родитель 5955301625
Коммит 3a1a48bb74
2 изменённых файлов: 9 добавлений и 0 удалений

4
emcc
Просмотреть файл

@ -1596,6 +1596,10 @@ try:
logging.debug('running post-closure post-opts')
js_optimizer_queue += ['simplifyExpressionsPost']
if shared.Settings.OUTLINING_LIMIT > 0:
js_optimizer_queue += ['outline']
js_optimizer_extra_info['sizeToOutline'] = shared.Settings.OUTLINING_LIMIT
if (not closure or shared.Settings.ASM_JS) and shared.Settings.RELOOP and debug_level < 3:
js_optimizer_queue += ['registerize']

Просмотреть файл

@ -125,6 +125,11 @@ var INLINING_LIMIT = 0; // A limit on inlining. If 0, we will inline normally i
// we will prevent inlining of functions of this size or larger
// in closure. 50 is a reasonable setting if you do not want
// inlining
var OUTLINING_LIMIT = 0; // A function size above which we try to automatically break up
// functions into smaller ones, to avoid the downsides of very
// large functions (JS engines often compile them very slowly,
// compile them with lower optimizations, or do not optimize them
// at all). If 0, we do not perform outlining at all.
// Generated code debugging options
var SAFE_HEAP = 0; // Check each write to the heap, for example, this will give a clear