------- Comment #10 from rguenth at gcc dot gnu dot org 2006-04-19 09:02 ------- Now, we have
/* Initial scalar cleanups. */ NEXT_PASS (pass_ccp); NEXT_PASS (pass_fre); NEXT_PASS (pass_dce); NEXT_PASS (pass_forwprop); NEXT_PASS (pass_copy_prop); NEXT_PASS (pass_merge_phi); NEXT_PASS (pass_vrp); NEXT_PASS (pass_dce); NEXT_PASS (pass_dominator); where I would suggest changing that to NEXT_PASS (pass_ccp); NEXT_PASS (pass_forwprop); NEXT_PASS (pass_copy_prop); (maybe even doing store copyprop here, instead of copyprop, trying to get rid of the first dom pass) NEXT_PASS (pass_dce); NEXT_PASS (pass_fre); NEXT_PASS (pass_merge_phi); NEXT_PASS (pass_vrp); NEXT_PASS (pass_dce); NEXT_PASS (pass_dominator); Now, there's definitely too little comments in the pass ordering to decide what the particular reason is for the current state. Another question is what would be sufficient testing for a pass-reordering patch? I suppose we have testcases for optimizations that rely on a particular pass ordering, so running say SPEC in addition to the testsuite should suffice? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23346