Index: postreload-gcse.c =================================================================== RCS file: /cvs/gcc/gcc/gcc/postreload-gcse.c,v retrieving revision 2.9 diff -c -p -r2.9 postreload-gcse.c *** postreload-gcse.c 18 Jan 2005 11:36:16 -0000 2.9 --- postreload-gcse.c 25 Jan 2005 16:55:57 -0000 *************** eliminate_partially_redundant_load (basi *** 1030,1035 **** --- 1030,1042 ---- if (reg_set_or_used_since_bb_start (dest, bb, insn)) return; + /* If we don't have profile information we cannot tell if splitting + a critical edge is profitable or not so don't do it. */ + if (! profile_info || ! flag_branch_probabilities) + FOR_EACH_EDGE (pred, ei, bb->preds) + if (EDGE_CRITICAL_P (pred)) + return; + /* Check potential for replacing load with copy for predecessors. */ FOR_EACH_EDGE (pred, ei, bb->preds) { *************** eliminate_partially_redundant_load (basi *** 1158,1164 **** a_occr = get_bb_avail_insn (bb, a_occr->next)); if (!a_occr) ! delete_insn (insn); else a_occr->deleted_p = 1; --- 1165,1181 ---- a_occr = get_bb_avail_insn (bb, a_occr->next)); if (!a_occr) ! { ! stats.insns_deleted++; ! ! if (dump_file) ! { ! fprintf (dump_file, "deleting insn:\n"); ! print_rtl_single (dump_file, occr->insn); ! fprintf (dump_file, "\n"); ! } ! delete_insn (insn); ! } else a_occr->deleted_p = 1;