Hey Deon, The whole so called "typed pipeline" (initially enabled via --turbo-types) is optional in theory, which means that only the "generic pipeline" (consisting only of graph building and generic lowering) runs. This doesn't make sense in practice though as the generated code is then sometimes worse than fullcodegen, plus we don't fully test this configuration so it might as well be broken.
For the individual lowering passes, almost all reducers are optional except for the core of the lowering, i.e. ChangeLowering in the change lowering phase, and the DeadCodeElimination reducer whenever an AdvancedReducer is involved (otherwise Dead will not be propagated through the graph and the next pass will fail). We're aware that compilation time is an issue with TurboFan and it might even get worse (temporarily) as we add more necessary optimization passes. We're looking into ways to reduce overall compilation overhead and already landed some mitigations, for example the recent introduction of DeoptimizeIf and DeoptimizeUnless. HTH, Benedikt Deon Dior <[email protected]> schrieb am Mo., 29. Feb. 2016, 21:29: > I studied Turbofan compiler a little bit recently and realized that are > many optimization phases. I am wondering what are the minimal set of phases > to get things functionally correct. That will help me to understand how > each optimization helps. > I am guessing a lot of the reducers are optional. For example, in Change > Lowering, there are six reducers: > > - > - Dead Code Elimination > - Simplified Operator Reducer > - Value Numbering > - Change Lowering > - Machine Operator Reducer > - Common Operator Reducer > > On the other hand, as Turbofan is not matching Crankshaft's performance > yet. I think more optimizations will be added. That brings my concern on > compilation time. Is compilation time something important for Turbofan? Are > there different optimization levels, such as -O0, -O2 to make tradeoffs? > > Many thanks! > > -- > -- > v8-dev mailing list > [email protected] > http://groups.google.com/group/v8-dev > --- > You received this message because you are subscribed to the Google Groups > "v8-dev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev --- You received this message because you are subscribed to the Google Groups "v8-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
