Temporary fix for partitioning problems; real fix coming soon.

From-SVN: r98051
This commit is contained in:
Caroline Tice 2005-04-12 22:38:06 +00:00 committed by Caroline Tice
parent 997de8ed6b
commit b3b51ded80
3 changed files with 23 additions and 10 deletions

View file

@ -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> 2005-04-12 Steven Bosscher <stevenb@suse.de>
Stuart Hastings <stuart@apple.com> Stuart Hastings <stuart@apple.com>
Jan Hubicka <jh@suse.cz> Jan Hubicka <jh@suse.cz>

View file

@ -328,8 +328,7 @@ rest_of_handle_final (void)
timevar_push (TV_SYMOUT); timevar_push (TV_SYMOUT);
(*debug_hooks->function_decl) (current_function_decl); (*debug_hooks->function_decl) (current_function_decl);
if (unlikely_text_section_name)
free (unlikely_text_section_name);
timevar_pop (TV_SYMOUT); timevar_pop (TV_SYMOUT);
ggc_collect (); ggc_collect ();

View file

@ -1303,7 +1303,8 @@ assemble_start_function (tree decl, const char *fnname)
/* Switch to the correct text section for the start of the function. */ /* Switch to the correct text section for the start of the function. */
function_section (decl); 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); ASM_OUTPUT_LABEL (asm_out_file, hot_section_label);
/* Tell assembler to move to target machine's alignment for functions. */ /* 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 /* Output labels for end of hot/cold text sections (to be used by
debug info.) */ debug info.) */
save_text_section = in_section; if (flag_reorder_blocks_and_partition)
unlikely_text_section (); {
ASM_OUTPUT_LABEL (asm_out_file, cold_section_end_label); save_text_section = in_section;
text_section (); unlikely_text_section ();
ASM_OUTPUT_LABEL (asm_out_file, hot_section_end_label); ASM_OUTPUT_LABEL (asm_out_file, cold_section_end_label);
if (save_text_section == in_unlikely_executed_text) text_section ();
unlikely_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. */ /* Assemble code to leave SIZE bytes of zeros. */