@@ -1512,6 +1512,7 @@ export class Module {
15121512 passes . push ( "flatten" ) ;
15131513 passes . push ( "simplify-locals-notee-nostructure" ) ;
15141514 passes . push ( "vacuum" ) ;
1515+
15151516 passes . push ( "code-folding" ) ;
15161517 passes . push ( "flatten" ) ;
15171518 passes . push ( "local-cse" ) ;
@@ -1529,8 +1530,10 @@ export class Module {
15291530 // passes.push("post-assemblyscript");
15301531 // }
15311532 passes . push ( "optimize-instructions" ) ;
1532- passes . push ( "inlining" ) ;
1533- passes . push ( "dce" ) ;
1533+ if ( optimizeLevel >= 3 || shrinkLevel >= 1 ) {
1534+ passes . push ( "dce" ) ;
1535+ passes . push ( "inlining" ) ;
1536+ }
15341537 passes . push ( "remove-unused-brs" ) ;
15351538 passes . push ( "remove-unused-names" ) ;
15361539 passes . push ( "inlining-optimizing" ) ;
@@ -1549,11 +1552,13 @@ export class Module {
15491552 }
15501553 passes . push ( "simplify-locals-nostructure" ) ;
15511554 passes . push ( "vacuum" ) ;
1555+
15521556 passes . push ( "reorder-locals" ) ;
15531557 passes . push ( "remove-unused-brs" ) ;
15541558 passes . push ( "coalesce-locals" ) ;
15551559 passes . push ( "simplify-locals" ) ;
15561560 passes . push ( "vacuum" ) ;
1561+
15571562 passes . push ( "reorder-locals" ) ;
15581563 passes . push ( "coalesce-locals" ) ;
15591564 passes . push ( "reorder-locals" ) ;
@@ -1576,8 +1581,8 @@ export class Module {
15761581 }
15771582 if ( optimizeLevel >= 2 || shrinkLevel >= 1 ) {
15781583 passes . push ( "rse" ) ;
1584+ passes . push ( "vacuum" ) ;
15791585 }
1580- passes . push ( "vacuum" ) ;
15811586
15821587 // --- PassRunner::addDefaultGlobalOptimizationPostPasses ---
15831588
@@ -1623,22 +1628,30 @@ export class Module {
16231628 // very expensive, so O3 only
16241629 passes . push ( "simplify-globals" ) ;
16251630 passes . push ( "vacuum" ) ;
1631+
1632+ passes . push ( "precompute-propagate" ) ;
1633+ passes . push ( "vacuum" ) ;
1634+
16261635 // replace indirect with direct calls again and inline
16271636 passes . push ( "inlining-optimizing" ) ;
16281637 passes . push ( "directize" ) ;
16291638 passes . push ( "dae-optimizing" ) ;
1630- passes . push ( "precompute-propagate" ) ;
1631- passes . push ( "vacuum" ) ;
1639+
16321640 passes . push ( "merge-locals" ) ;
16331641 passes . push ( "coalesce-locals" ) ;
1634- passes . push ( "simplify-locals-nostructure " ) ;
1642+ passes . push ( "simplify-locals" ) ;
16351643 passes . push ( "vacuum" ) ;
1644+
16361645 passes . push ( "inlining-optimizing" ) ;
16371646 passes . push ( "precompute-propagate" ) ;
1647+ passes . push ( "vacuum" ) ;
1648+
1649+ passes . push ( "coalesce-locals" ) ;
16381650 }
16391651 passes . push ( "remove-unused-brs" ) ;
16401652 passes . push ( "remove-unused-names" ) ;
16411653 passes . push ( "vacuum" ) ;
1654+
16421655 passes . push ( "optimize-instructions" ) ;
16431656 passes . push ( "simplify-globals-optimizing" ) ;
16441657 }
0 commit comments