@@ -174,14 +174,14 @@ var passes = [...]pass{
174
174
{name : "early deadcode" , fn : deadcode }, // remove generated dead code to avoid doing pointless work during opt
175
175
{name : "short circuit" , fn : shortcircuit },
176
176
{name : "decompose user" , fn : decomposeUser , required : true },
177
- {name : "decompose builtin" , fn : decomposeBuiltIn , required : true },
178
177
{name : "opt" , fn : opt , required : true }, // TODO: split required rules and optimizing rules
179
178
{name : "zero arg cse" , fn : zcse , required : true }, // required to merge OpSB values
180
179
{name : "opt deadcode" , fn : deadcode }, // remove any blocks orphaned during opt
181
180
{name : "generic cse" , fn : cse },
182
181
{name : "phiopt" , fn : phiopt },
183
182
{name : "nilcheckelim" , fn : nilcheckelim },
184
183
{name : "prove" , fn : prove },
184
+ {name : "decompose builtin" , fn : decomposeBuiltIn , required : true },
185
185
{name : "dec" , fn : dec , required : true },
186
186
{name : "late opt" , fn : opt }, // TODO: split required rules and optimizing rules
187
187
{name : "generic deadcode" , fn : deadcode },
@@ -234,7 +234,7 @@ var passOrder = [...]constraint{
234
234
{"generic deadcode" , "tighten" },
235
235
{"generic cse" , "tighten" },
236
236
// don't run optimization pass until we've decomposed builtin objects
237
- {"decompose builtin" , "opt" },
237
+ {"decompose builtin" , "late opt" },
238
238
// don't layout blocks until critical edges have been removed
239
239
{"critical" , "layout" },
240
240
// regalloc requires the removal of all critical edges
0 commit comments