summaryrefslogtreecommitdiff
path: root/gcc/function.h
diff options
context:
space:
mode:
authornathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>2007-05-21 10:58:29 +0000
committernathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>2007-05-21 10:58:29 +0000
commit29f0970542b79ab13a96e65df777c69c48e867e0 (patch)
tree285b968663b9075e8e13ac5ead7cb3afd6a842d9 /gcc/function.h
parent86bb962704b226c94bfeaf960edecdf73ca23110 (diff)
downloadgcc-29f0970542b79ab13a96e65df777c69c48e867e0.tar.gz
* builtins.c (expand_builtin_setjmp_setup): Update comment.
* function.h (struct function): Move va_list_gpr_size, va_list_fpr_size, function_frequency to front of bitfields. Add calls_unwind_init. (current_function_calls_unwind_init): New. * except.c (expand_builtin_unwind_init): Set current_function_calls_unwind_init not current_function_has_nonlocal_label. * reload1.c (has_nonexceptional_receiver): New. (reload): Use it and current_function_calls_unwind_init to determine whether call-saved regs must be saved. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124898 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/function.h')
-rw-r--r--gcc/function.h30
1 files changed, 17 insertions, 13 deletions
diff --git a/gcc/function.h b/gcc/function.h
index c4faaf13df1..3367380eb9d 100644
--- a/gcc/function.h
+++ b/gcc/function.h
@@ -374,6 +374,19 @@ struct function GTY(())
/* Collected bit flags. */
+ /* Number of units of general registers that need saving in stdarg
+ function. What unit is depends on the backend, either it is number
+ of bytes, or it can be number of registers. */
+ unsigned int va_list_gpr_size : 8;
+
+ /* Number of units of floating point registers that need saving in stdarg
+ function. */
+ unsigned int va_list_fpr_size : 8;
+
+ /* How commonly executed the function is. Initialized during branch
+ probabilities pass. */
+ ENUM_BITFIELD (function_frequency) function_frequency : 2;
+
/* Nonzero if function being compiled needs to be given an address
where the value should be stored. */
unsigned int returns_struct : 1;
@@ -403,6 +416,9 @@ struct function GTY(())
from nested functions. */
unsigned int has_nonlocal_label : 1;
+ /* Nonzero if function calls builtin_unwind_init. */
+ unsigned int calls_unwind_init : 1;
+
/* Nonzero if function being compiled has nonlocal gotos to parent
function. */
unsigned int has_nonlocal_goto : 1;
@@ -459,19 +475,6 @@ struct function GTY(())
/* Set when the tail call has been produced. */
unsigned int tail_call_emit : 1;
- /* How commonly executed the function is. Initialized during branch
- probabilities pass. */
- ENUM_BITFIELD (function_frequency) function_frequency : 2;
-
- /* Number of units of general registers that need saving in stdarg
- function. What unit is depends on the backend, either it is number
- of bytes, or it can be number of registers. */
- unsigned int va_list_gpr_size : 8;
-
- /* Number of units of floating point registers that need saving in stdarg
- function. */
- unsigned int va_list_fpr_size : 8;
-
/* FIXME tuples: This bit is temporarily here to mark when a
function has been gimplified, so we can make sure we're not
creating non GIMPLE tuples after gimplification. */
@@ -520,6 +523,7 @@ extern int trampolines_created;
#define current_function_uses_const_pool (cfun->uses_const_pool)
#define current_function_epilogue_delay_list (cfun->epilogue_delay_list)
#define current_function_has_nonlocal_label (cfun->has_nonlocal_label)
+#define current_function_calls_unwind_init (cfun->calls_unwind_init)
#define current_function_has_nonlocal_goto (cfun->has_nonlocal_goto)
#define return_label (cfun->x_return_label)