On 01/07/13 14:02, Tom de Vries wrote: >> > I also dislike the two passes being in early optimizations - that way they >> > do >> > not see the effects of IPA inlining / LTO IPA-CP transforms. >> > I'd rather move >> > it way down towards RTL expansion (though eventually some may say that >> > switch-conversion may enable vectorization opportunities for example). >> > > Right, you discussed that with Steven here earlier: > http://gcc.gnu.org/ml/gcc-patches/2012-07/msg01156.html. > > Steven proposed to move pass_switch_conversion to before split_functions. > Attached patch attempts to do that, I'm testing that now. > > That doesn't address your concern about seeing effects of IPA inlining / LTO > IPA-CP transforms though. > > Is this patch ok (once tested),
Bootstrapped and reg-tested on x86_64 (ada inclusive), no issues found. OK for trunk? Thanks, - Tom > or do you really want pass_switch_conversion > later, say the first in pass_all_optimizations, or f.i. after pass_pre to > pick-up on tail-merge creating opportunities for if-to-switch conversion once > we > check that in before or merge with pass_switch_conversion? > > Thanks, > - Tom > > 2013-07-01 Tom de Vries <t...@codesourcery.com> > > passes.c (init_optimization_passes): Move pass_convert_switch to before > pass_{feedback_,}split_functions. > tree-pass.h (pass_feedback_convert_switch): Declare new pass. > tree-switch-conversion.c (switchconv_gate): Don't run when profiling. > (feedback_switchconv_gate): New function. > (pass_feedback_convert_switch): New pass.