diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-05-02 14:43:35 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-05-02 14:43:35 +0000 |
commit | 34efdaf078b01a7387007c4e6bde6db86384c4b7 (patch) | |
tree | d503eaf41d085669d1481bb46ec038bc866fece6 /gcc/function.h | |
parent | f733cf303bcdc952c92b81dd62199a40a1f555ec (diff) | |
download | gcc-tarball-master.tar.gz |
gcc-7.1.0gcc-7.1.0
Diffstat (limited to 'gcc/function.h')
-rw-r--r-- | gcc/function.h | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/gcc/function.h b/gcc/function.h index 501ef68484..0f34bcd612 100644 --- a/gcc/function.h +++ b/gcc/function.h @@ -1,5 +1,5 @@ /* Structure for saving state for a nested function. - Copyright (C) 1989-2016 Free Software Foundation, Inc. + Copyright (C) 1989-2017 Free Software Foundation, Inc. This file is part of GCC. @@ -34,6 +34,8 @@ struct GTY(()) sequence_stack { }; struct GTY(()) emit_status { + void ensure_regno_capacity (); + /* This is reset to LAST_VIRTUAL_REGISTER + 1 at the start of each function. After rtl generation, it is 1 plus the largest register number used. */ int x_reg_rtx_no; @@ -126,7 +128,7 @@ struct GTY(()) expr_status { rtx x_apply_args_value; /* List of labels that must never be deleted. */ - rtx_insn_list *x_forced_labels; + vec<rtx_insn *, va_gc> *x_forced_labels; }; typedef struct call_site_record_d *call_site_record; @@ -234,6 +236,9 @@ struct GTY(()) function { /* The loops in this function. */ struct loops *x_current_loops; + /* Filled by the GIMPLE and RTL FEs, pass to start compilation with. */ + char *pass_startwith; + /* The stack usage of this function. */ struct stack_usage *su; @@ -567,6 +572,8 @@ extern HOST_WIDE_INT get_frame_size (void); return FALSE. */ extern bool frame_offset_overflow (HOST_WIDE_INT, tree); +extern unsigned int spill_slot_alignment (machine_mode); + extern rtx assign_stack_local_1 (machine_mode, HOST_WIDE_INT, int, int); extern rtx assign_stack_local (machine_mode, HOST_WIDE_INT, int); extern rtx assign_stack_temp_for_type (machine_mode, HOST_WIDE_INT, tree); @@ -606,7 +613,7 @@ extern tree block_chainon (tree, tree); extern void number_blocks (tree); /* cfun shouldn't be set directly; use one of these functions instead. */ -extern void set_cfun (struct function *new_cfun); +extern void set_cfun (struct function *new_cfun, bool force = false); extern void push_cfun (struct function *new_cfun); extern void pop_cfun (void); @@ -628,7 +635,11 @@ extern void clobber_return_register (void); extern void expand_function_end (void); extern rtx get_arg_pointer_save_area (void); extern void maybe_copy_prologue_epilogue_insn (rtx, rtx); -extern int prologue_epilogue_contains (const_rtx); +extern int prologue_contains (const rtx_insn *); +extern int epilogue_contains (const rtx_insn *); +extern int prologue_epilogue_contains (const rtx_insn *); +extern void record_prologue_seq (rtx_insn *); +extern void record_epilogue_seq (rtx_insn *); extern void emit_return_into_block (bool simple_p, basic_block bb); extern void set_return_jump_label (rtx_insn *); extern bool active_insn_between (rtx_insn *head, rtx_insn *tail); |