diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5febe1d442863297083f56257080a338ea03738e..bbc317e25273b06a89254bb1477dd2e2a1064d66 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2005-04-12 Caroline Tice <ctice@apple.com> + + Temporary fix for partitioning problems. + * passes.c (rest_of_handle_final): Remove code that + frees unlikely_text_section_name, + * varasm.c (assemble_start_function): Test for partitioning + flag before writing out section labels. + (assemble_end_function): Test for partitioning flag before + writing out section labels. + 2005-04-12 Steven Bosscher <stevenb@suse.de> Stuart Hastings <stuart@apple.com> Jan Hubicka <jh@suse.cz> diff --git a/gcc/passes.c b/gcc/passes.c index 8ae8b3127cc48af5f725925d802314d4bed6781b..c2cbefb0fa217b5f4b5b3b9e14bf8aeb7dad7e2f 100644 --- a/gcc/passes.c +++ b/gcc/passes.c @@ -328,8 +328,7 @@ rest_of_handle_final (void) timevar_push (TV_SYMOUT); (*debug_hooks->function_decl) (current_function_decl); - if (unlikely_text_section_name) - free (unlikely_text_section_name); + timevar_pop (TV_SYMOUT); ggc_collect (); diff --git a/gcc/varasm.c b/gcc/varasm.c index b8c982639db731244aaa67eedb381feb565daf96..16f6d3b33c764d1cf7785862f0f0123adc15c7ef 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -1303,7 +1303,8 @@ assemble_start_function (tree decl, const char *fnname) /* Switch to the correct text section for the start of the function. */ function_section (decl); - if (!hot_label_written) + if (flag_reorder_blocks_and_partition + && !hot_label_written) ASM_OUTPUT_LABEL (asm_out_file, hot_section_label); /* Tell assembler to move to target machine's alignment for functions. */ @@ -1377,13 +1378,16 @@ assemble_end_function (tree decl, const char *fnname) } /* Output labels for end of hot/cold text sections (to be used by debug info.) */ - save_text_section = in_section; - unlikely_text_section (); - ASM_OUTPUT_LABEL (asm_out_file, cold_section_end_label); - text_section (); - ASM_OUTPUT_LABEL (asm_out_file, hot_section_end_label); - if (save_text_section == in_unlikely_executed_text) - unlikely_text_section (); + if (flag_reorder_blocks_and_partition) + { + save_text_section = in_section; + unlikely_text_section (); + ASM_OUTPUT_LABEL (asm_out_file, cold_section_end_label); + text_section (); + ASM_OUTPUT_LABEL (asm_out_file, hot_section_end_label); + if (save_text_section == in_unlikely_executed_text) + unlikely_text_section (); + } } /* Assemble code to leave SIZE bytes of zeros. */