Hello, If we want to use profiling to expand switches in GIMPLE, we'll have to run switch-conversion after profiling.
Bootstrapped and tested on x86_64-unknown-linux-gnu. OK? Ciao! Steven * passes.c (pass_convert_switch): Move after profiling and pure_const. Index: passes.c =================================================================== --- passes.c (revision 186586) +++ passes.c (working copy) @@ -1326,10 +1326,10 @@ init_optimization_passes (void) NEXT_PASS (pass_cd_dce); NEXT_PASS (pass_early_ipa_sra); NEXT_PASS (pass_tail_recursion); - NEXT_PASS (pass_convert_switch); NEXT_PASS (pass_cleanup_eh); NEXT_PASS (pass_profile); NEXT_PASS (pass_local_pure_const); + NEXT_PASS (pass_convert_switch); /* Split functions creates parts that are not run through early optimizations again. It is thus good idea to do this late. */