From b3b51ded80e74bced9ece3be87ff3bfc05bc7b70 Mon Sep 17 00:00:00 2001 From: Caroline Tice Date: Tue, 12 Apr 2005 22:38:06 +0000 Subject: [PATCH] Temporary fix for partitioning problems; real fix coming soon. From-SVN: r98051 --- gcc/ChangeLog | 10 ++++++++++ gcc/passes.c | 3 +-- gcc/varasm.c | 20 ++++++++++++-------- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5febe1d..bbc317e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2005-04-12 Caroline Tice + + 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 Stuart Hastings Jan Hubicka diff --git a/gcc/passes.c b/gcc/passes.c index 8ae8b31..c2cbefb 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 b8c9826..16f6d3b 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. */ -- 2.7.4