summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2010-11-27 19:37:00 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2010-11-27 19:37:00 +0000
commit2dd27dfdc571b29b6dd139babeea8d063e6dcc32 (patch)
treed03cba386eca02a89541251b48a7c88e2be131ba /gcc
parent2b335898e6865796b7a0e556362c9df214bcfdcb (diff)
downloadgcc-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/ChangeLog8
-rw-r--r--gcc/dwarf2out.c19
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);
}