Commits

Mark Lacey committed beb0f7dc2fa
Update pass manager execution strategy for function passes. Allow function passes to: 1. Add new functions, to be optimized before continuing with the current function. 2. Restart the pipeline on the current function after the current pass completes. This makes it possible to fully optimize callees that are the result of specialization prior to generating interprocedural information or making inlining choices about these callees. It also allows us to solve a phase-ordering issue we have with generic specialization, devirtualization, and inlining, by rescheduling the current function after changes happen in one of these passes as opposed to running all of these as part of the inlining pass as happens today. Currently this is NFC since we have no passes that use this functionality.