diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a0633d8d9fd..20836b2f118 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2008-08-07 Jan Hubicka + + * recog.c (split_all_insns): Set RTL profile + (peephole2_optimize): Likewise. + * function.c (thread_prologue_and_epilogue_insns): Likewise. + * combine.c (combine_instructions): Likewise. + 2008-08-07 Kaveh R. Ghazi * c-common.c (c_common_reswords): Also warn about keyword "bool". diff --git a/gcc/combine.c b/gcc/combine.c index 16cd040afd5..a39649d7c8e 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -1112,6 +1112,7 @@ combine_instructions (rtx f, unsigned int nregs) last_call_luid = 0; mem_last_set = -1; label_tick++; + rtl_profile_for_bb (this_basic_block); for (insn = BB_HEAD (this_basic_block); insn != NEXT_INSN (BB_END (this_basic_block)); insn = next ? next : NEXT_INSN (insn)) @@ -1268,6 +1269,7 @@ combine_instructions (rtx f, unsigned int nregs) } } + default_rtl_profile (); clear_log_links (); clear_bb_flags (); new_direct_jump_p |= purge_all_dead_edges (); diff --git a/gcc/function.c b/gcc/function.c index b3f5cbffa45..98b8da07365 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -4840,6 +4840,7 @@ thread_prologue_and_epilogue_insns (void) #endif edge_iterator ei; + rtl_profile_for_bb (ENTRY_BLOCK_PTR); #ifdef HAVE_prologue if (HAVE_prologue) { @@ -4886,6 +4887,7 @@ thread_prologue_and_epilogue_insns (void) if (e == NULL) goto epilogue_done; + rtl_profile_for_bb (EXIT_BLOCK_PTR); #ifdef HAVE_return if (optimize && HAVE_return) { @@ -5035,6 +5037,7 @@ thread_prologue_and_epilogue_insns (void) cfg_layout_finalize (); } epilogue_done: + default_rtl_profile (); if (inserted) { diff --git a/gcc/recog.c b/gcc/recog.c index cd47155ad4e..44d3b40b643 100644 --- a/gcc/recog.c +++ b/gcc/recog.c @@ -2672,6 +2672,7 @@ split_all_insns (void) rtx insn, next; bool finish = false; + rtl_profile_for_bb (bb); for (insn = BB_HEAD (bb); !finish ; insn = next) { /* Can't use `next_real_insn' because that might go across @@ -2714,6 +2715,7 @@ split_all_insns (void) } } + default_rtl_profile (); if (changed) find_many_sub_basic_blocks (blocks); @@ -2966,6 +2968,7 @@ peephole2_optimize (void) FOR_EACH_BB_REVERSE (bb) { + rtl_profile_for_bb (bb); /* Indicate that all slots except the last holds invalid data. */ for (i = 0; i < MAX_INSNS_PER_PEEP2; ++i) peep2_insn_data[i].insn = NULL_RTX; @@ -3182,6 +3185,7 @@ peephole2_optimize (void) } } + default_rtl_profile (); for (i = 0; i < MAX_INSNS_PER_PEEP2 + 1; ++i) BITMAP_FREE (peep2_insn_data[i].live_before); BITMAP_FREE (live);