aboutsummaryrefslogtreecommitdiff
path: root/gcc/output.h
diff options
context:
space:
mode:
authorCaroline Tice <ctice@apple.com>2005-03-31 14:59:59 +0000
committerCaroline Tice <ctice@apple.com>2005-03-31 14:59:59 +0000
commit0d5e2070e13495cb413449c12932f8b6d10a3c5d (patch)
treeade60c4c4ed198b0036370e03ebd3a1f64ee4817 /gcc/output.h
parent910eabcd395ba1e558d322c2dee26b2f5b83b10a (diff)
Fix problems with hot/cold partitioning optimization.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@97322 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/output.h')
-rw-r--r--gcc/output.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/gcc/output.h b/gcc/output.h
index dbc2d4745dd..4d9eabb49f7 100644
--- a/gcc/output.h
+++ b/gcc/output.h
@@ -209,6 +209,9 @@ extern void named_section (tree, const char *, int);
/* Tell assembler to switch to the section for function DECL. */
extern void function_section (tree);
+/* Tell assembler to switch to the most recently used text section. */
+extern void current_function_section (tree);
+
/* Tell assembler to switch to the section for string merging. */
extern void mergeable_string_section (tree, unsigned HOST_WIDE_INT,
unsigned int);
@@ -431,6 +434,34 @@ extern rtx this_is_asm_operands;
extern int size_directive_output;
extern tree last_assemble_variable_decl;
+enum in_section { no_section, in_text, in_unlikely_executed_text, in_data,
+ in_named
+#ifdef BSS_SECTION_ASM_OP
+ , in_bss
+#endif
+#ifdef CTORS_SECTION_ASM_OP
+ , in_ctors
+#endif
+#ifdef DTORS_SECTION_ASM_OP
+ , in_dtors
+#endif
+#ifdef READONLY_DATA_SECTION_ASM_OP
+ , in_readonly_data
+#endif
+#ifdef EXTRA_SECTIONS
+ , EXTRA_SECTIONS
+#endif
+};
+
+extern char *unlikely_section_label;
+extern char *hot_section_label;
+extern char *hot_section_end_label;
+extern char *cold_section_end_label;
+extern char *unlikely_text_section_name;
+extern const char *last_text_section_name;
+extern enum in_section last_text_section;
+extern bool first_function_block_is_cold;
+
/* Decide whether DECL needs to be in a writable section.
RELOC is the same as for SELECT_SECTION. */
extern bool decl_readonly_section (tree, int);
@@ -519,6 +550,10 @@ extern bool default_valid_pointer_mode (enum machine_mode);
extern int default_address_cost (rtx);
+/* When performing hot/cold basic block partitioning, insert note in
+ instruction stream indicating boundary between hot and cold sections. */
+extern void insert_section_boundary_note (void);
+
/* dbxout helper functions */
#if defined DBX_DEBUGGING_INFO || defined XCOFF_DEBUGGING_INFO