http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46528
--- Comment #16 from Richard Guenther <rguenth at gcc dot gnu.org> 2010-11-25 12:13:14 UTC --- In your dump files there is a CFG inconsistency that I can't reproduce. At least basic block numbers are not consistent. I also see DEBUG insns in stagefeedback but not stageprofile (my dumps have DEBUG insns in both dump files). Which hints at for example: <bb 17>: PROF_edge_counter.65_257 = *.LPBX1[69]; PROF_edge_counter.65_258 = PROF_edge_counter.65_257 + 1; *.LPBX1[69] = PROF_edge_counter.65_258; count_61 = macro_real_token_count (macro_39); <bb 18>: PROF_edge_counter.65_259 = *.LPBX1[70]; PROF_edge_counter.65_260 = PROF_edge_counter.65_259 + 1; *.LPBX1[70] = PROF_edge_counter.65_260; goto <bb 30>; vs. <bb 17>: Invalid sum of outgoing probabilities 0.0% Invalid sum of outgoing counts 0, should be 211 count_61 = macro_real_token_count (macro_39); # DEBUG count => count_61 # DEBUG i => 0 goto <bb 29>; it would be interesting to see when the CFGs start to differ. Can you also check logs if really -g0 is used at stageprofile and -g at stagefeedback. I'm trying to look why I have -g consistently.