diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-11-27 19:37:00 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-11-27 19:37:00 +0000 |
commit | 2dd27dfdc571b29b6dd139babeea8d063e6dcc32 (patch) | |
tree | d03cba386eca02a89541251b48a7c88e2be131ba /gcc | |
parent | 2b335898e6865796b7a0e556362c9df214bcfdcb (diff) | |
download | gcc-2dd27dfdc571b29b6dd139babeea8d063e6dcc32.tar.gz |
* dwarf2out.c (dwarf2out_begin_function): Set cold_text_section
and output cold_text_section_label.
(dwarf2out_init): Don't do that there.
(dwarf2out_finish): Handle cold section end label only if cold
section was used.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167208 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/dwarf2out.c | 19 |
2 files changed, 18 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index faf40b1b483..ac73a66673a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2010-11-27 Jan Hubicka <jh@suse.cz> + + * dwarf2out.c (dwarf2out_begin_function): Set cold_text_section + and output cold_text_section_label. + (dwarf2out_init): Don't do that there. + (dwarf2out_finish): Handle cold section end label only if cold + section was used. + 2010-11-27 Eric Botcazou <ebotcazou@adacore.com> * tree-nested.c (remap_vla_decls): Fully expand value expressions of diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index e230861158e..dfb57209b3e 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -21676,6 +21676,14 @@ dwarf2out_begin_function (tree fun) { if (function_section (fun) != text_section) have_multiple_function_sections = true; + else if (flag_reorder_blocks_and_partition && !cold_text_section) + { + gcc_assert (current_function_decl == fun); + cold_text_section = unlikely_text_section (); + switch_to_section (cold_text_section); + ASM_OUTPUT_LABEL (asm_out_file, cold_text_section_label); + switch_to_section (current_function_section ()); + } dwarf2out_note_section_used (); } @@ -21996,13 +22004,6 @@ dwarf2out_init (const char *filename ATTRIBUTE_UNUSED) switch_to_section (text_section); ASM_OUTPUT_LABEL (asm_out_file, text_section_label); - if (flag_reorder_blocks_and_partition) - { - cold_text_section = unlikely_text_section (); - switch_to_section (cold_text_section); - ASM_OUTPUT_LABEL (asm_out_file, cold_text_section_label); - } - } /* Called before cgraph_optimize starts outputtting functions, variables @@ -23107,9 +23108,9 @@ dwarf2out_finish (const char *filename) /* Output a terminator label for the .text section. */ switch_to_section (text_section); targetm.asm_out.internal_label (asm_out_file, TEXT_END_LABEL, 0); - if (flag_reorder_blocks_and_partition) + if (cold_text_section) { - switch_to_section (unlikely_text_section ()); + switch_to_section (cold_text_section); targetm.asm_out.internal_label (asm_out_file, COLD_END_LABEL, 0); } |