#include "config.h"#include "system.h"#include "rtl.h"#include "tree.h"#include "flags.h"#include "except.h"#include "function.h"#include "expr.h"#include "libfuncs.h"#include "regs.h"#include "hard-reg-set.h"#include "insn-config.h"#include "recog.h"#include "output.h"#include "basic-block.h"#include "toplev.h"#include "hashtab.h"#include "ggc.h"#include "tm_p.h"#include "integrate.h"#include "langhooks.h"#include "gt-function.h"

Go to the source code of this file.
| #define ARG_POINTER_CFA_OFFSET | ( | FNDECL | ) | FIRST_PARM_OFFSET (FNDECL) |
Definition at line 2911 of file function.c.
Definition at line 97 of file function.c.
Referenced by assign_parm_find_entry_rtl(), assign_parm_setup_block(), assign_parms(), assign_stack_local_1(), assign_stack_temp_for_type(), copy_rtx_and_substitute(), and pad_to_arg_alignment().
Definition at line 93 of file function.c.
Referenced by assign_stack_local_1(), and pad_to_arg_alignment().
| #define LOCAL_ALIGNMENT | ( | TYPE, | |||
| ALIGNMENT | ) | ALIGNMENT |
Definition at line 79 of file function.c.
| #define NAME__MAIN "__main" |
Definition at line 87 of file function.c.
| #define STACK_BYTES (STACK_BOUNDARY / BITS_PER_UNIT) |
| #define STACK_DYNAMIC_OFFSET | ( | FNDECL | ) |
Value:
Definition at line 2902 of file function.c.
| #define STACK_POINTER_OFFSET 0 |
Definition at line 2878 of file function.c.
| #define TRAMPOLINE_ALIGNMENT FUNCTION_BOUNDARY |
Definition at line 75 of file function.c.
| #define TRAMPOLINE_REAL_SIZE (TRAMPOLINE_SIZE + (TRAMPOLINE_ALIGNMENT / BITS_PER_UNIT) - 1) |
Referenced by trampoline_address().
Definition at line 5839 of file function.c.
References round_trampoline_addr(), and TRAMPOLINE_ADJUST_ADDRESS.
Referenced by trampoline_address().
| int aggregate_value_p | ( | tree | exp | ) |
Definition at line 4289 of file function.c.
References AGGREGATE_TYPE_P, call_used_regs, flag_pcc_struct_return, GET_CODE, hard_function_value(), HARD_REGNO_NREGS, i, nregs, REG, REGNO, RETURN_IN_MEMORY, TREE_ADDRESSABLE, TREE_CODE, TREE_TYPE, TYPE_MODE, and TYPE_P.
Referenced by allocate_struct_function(), alpha_output_mi_thunk_osf(), arm_init_cumulative_args(), arm_output_mi_thunk(), assign_parms(), assign_parms_augmented_arg_list(), compute_frame_size(), Create_TY_For_Tree(), do_return_redirection(), emit_library_call_value_1(), execute_return_slot_opt(), expand_assignment(), expand_call(), expand_expr_real_1(), expand_function_start(), expand_inline_function(), finish_function(), gimplify_modify_expr_rhs(), gimplify_return_expr(), i960_function_name_declare(), init_function_start(), iq2000_expand_prologue(), is_gimple_mem_rhs(), ix86_return_pops_args(), m32c_init_cumulative_args(), m68hc11_init_cumulative_args(), mips_can_use_return_insn(), mips_expand_prologue(), mips_output_mi_thunk(), mips_save_reg_p(), needs_to_live_in_memory(), output_mi_thunk(), rs6000_output_mi_thunk(), s390_output_mi_thunk(), sh_init_cumulative_args(), sh_output_mi_thunk(), simplify_aggr_init_exprs_r(), sparc_output_mi_thunk(), th_output_mi_thunk(), tree_nrv(), x86_this_parameter(), and xstormy16_asm_output_mi_thunk().
Definition at line 6143 of file function.c.
References BLOCK_CHAIN, BLOCK_SUBBLOCKS, and TREE_ASM_WRITTEN.
Referenced by all_blocks(), and get_block_vector().
Definition at line 4329 of file function.c.
References abort, ADD_PARM_SIZE, addr(), adjust_address, aggregate_value_p(), allocate_dynamic_stack_space(), ARG_POINTER_REGNUM, ARGS_SIZE_RTX, assign_stack_local(), assign_stack_temp(), BITS_PER_UNIT, BITS_PER_WORD, build_decl, build_pointer_type(), CEIL_ROUND, COMPLETE_TYPE_P, CONCAT, const0_rtx, args_size::constant, contains_placeholder_p(), convert_memory_address(), convert_to_mode(), copy, copy_to_reg(), current_function_arg_offset_rtx, current_function_args_info, current_function_args_size, current_function_internal_arg_pointer, current_function_pops_args, current_function_pretend_args_size, current_function_return_rtx, current_function_returns_pcc_struct, current_function_stdarg, DECL_ARG_TYPE, DECL_ARGUMENTS, DECL_INCOMING_RTL, DECL_MODE, DECL_NAME, DECL_REGISTER, DECL_RESULT, DECL_RTL, DECL_RTL_SET_P, DECL_TRANSPARENT_UNION, emit_group_store(), emit_insn(), emit_move_insn(), end_sequence(), error_mark_node, expand_assignment(), expand_expr(), expr_size(), FIRST_PSEUDO_REGISTER, fixed_regs, flag_float_store, FRAME_POINTER_REGNUM, FUNCTION_ARG, FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY, FUNCTION_ARG_CALLEE_COPIES, FUNCTION_ARG_PARTIAL_NREGS, FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_INCOMING_ARG, FUNCTION_OUTGOING_VALUE, FUNCTION_VALUE, gen_imagpart(), GEN_INT, gen_realpart(), gen_reg_rtx(), gen_rtx_EXPR_LIST, gen_rtx_MEM(), gen_rtx_PLUS, GET_CODE, get_insns(), get_last_insn(), GET_MODE, GET_MODE_ALIGNMENT, GET_MODE_SIZE, ggc_alloc_cleared, ggc_realloc, i, INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS, int_size_in_bytes(), INTVAL, last_parm_insn, LAST_VIRTUAL_REGISTER, len, locate_and_pad_parm(), make_tree(), mark_reg_pointer(), mark_user_reg(), MAX, max_parm_reg, MAYBE_REG_PARM_STACK_SPACE, maybe_set_unchanging(), MEM, memset, move_block_from_reg(), MUST_PASS_IN_STACK, nregs, NULL, NULL_RTX, NULL_TREE, optimize, PARM_BOUNDARY, parm_reg_stack_loc, Pmode, POINTER_TYPE_P, PRETEND_OUTGOING_VARARGS_NAMED, prev_nonnote_insn(), promote_mode(), push_to_sequence(), put_var_into_stack(), REG, REG_EQUIV, REG_FUNCTION_VALUE_P, reg_mentioned_p(), REG_NOTES, REG_P, REG_PARM_STACK_SPACE, REGNO, REGNO_DECL, regno_reg_rtx, result, RETURN_POPS_ARGS, SET_DECL_RTL, SET_DEST, set_mem_attributes(), SETUP_INCOMING_VARARGS, single_set, size_diffop(), size_int, STACK_BYTES, STACK_PARMS_IN_REG_PARM_AREA, STACK_POINTER_REGNUM, store_expr(), STRICT_ARGUMENT_NAMING, SUBREG_PROMOTED_UNSIGNED_SET, SUBREG_PROMOTED_VAR_P, SUBREG_REG, TREE_ADDRESSABLE, TREE_CHAIN, TREE_CODE, tree_last(), TREE_SIDE_EFFECTS, TREE_TYPE, TREE_UNSIGNED, TREE_USED, TREE_VALUE, TYPE_ALIGN, TYPE_ARG_TYPES, TYPE_FIELDS, TYPE_MODE, TYPE_SIZE, TYPE_TRANSPARENT_UNION, UNITS_PER_WORD, validize_mem(), args_size::var, virtual_incoming_args_rtx, void_type_node, x, XEXP, XVECEXP, and XVECLEN.
Referenced by expand_function_start(), and hack_method_prototype().
| rtx assign_stack_local | ( | enum machine_mode | mode, | |
| HOST_WIDE_INT | size, | |||
| int | align | |||
| ) |
Definition at line 624 of file function.c.
Referenced by alpha_gp_save_rtx(), alter_reg(), assign_386_stack_local(), assign_parm_setup_block(), assign_parm_setup_stack(), assign_parms(), assign_parms_unsplit_complex(), assign_stack_temp_for_type(), c4x_expand_builtin(), clipper_builtin_saveregs(), declare_nonlocal_label(), emit_colors(), emit_stack_save(), expand_builtin_apply(), expand_builtin_apply_args_1(), expand_function_start(), m88k_builtin_saveregs(), reload(), setup_incoming_varargs(), setup_save_areas(), sh_builtin_saveregs(), sjlj_build_landing_pads(), sparc_struct_value_rtx(), and xtensa_builtin_saveregs().
| static rtx assign_stack_local_1 | ( | enum machine_mode | mode, | |
| HOST_WIDE_INT | size, | |||
| int | align, | |||
| struct function * | function | |||
| ) | [static] |
Definition at line 529 of file function.c.
References addr(), alignment, BIGGEST_ALIGNMENT, BITS_PER_UNIT, BYTES_BIG_ENDIAN, CEIL_ROUND, FLOOR_ROUND, frame_offset, frame_phase, frame_pointer_rtx, gen_rtx_EXPR_LIST, gen_rtx_MEM(), GET_MODE_ALIGNMENT, GET_MODE_SIZE, LOCAL_ALIGNMENT, plus_constant, PREFERRED_STACK_BOUNDARY, STARTING_FRAME_OFFSET, virtual_stack_vars_rtx, virtuals_instantiated, and x.
Referenced by assign_stack_local(), get_arg_pointer_save_area(), put_reg_into_stack(), and trampoline_address().
| rtx assign_stack_temp | ( | enum machine_mode | mode, | |
| HOST_WIDE_INT | size, | |||
| int | keep | |||
| ) |
Definition at line 831 of file function.c.
Referenced by assign_parms(), copy_rtx_and_substitute(), emit_group_load(), emit_group_load_1(), emit_group_store(), emit_library_call_value_1(), emit_move_insn_1(), emit_soft_tfmode_libcall(), ia64_expand_movxf_movrf(), ix86_expand_vector_extract(), ix86_expand_vector_set(), rs6000_expand_vector_extract(), rs6000_expand_vector_init(), rs6000_expand_vector_set(), sparc_emit_float_lib_cmp(), spill_xfmode_operand(), and spill_xfmode_rfmode_operand().
| rtx assign_stack_temp_for_type | ( | enum machine_mode | mode, | |
| HOST_WIDE_INT | size, | |||
| int | keep, | |||
| tree | type | |||
| ) |
Definition at line 650 of file function.c.
Referenced by assign_stack_temp(), assign_temp(), expand_expr(), and expand_expr_real_1().
Definition at line 850 of file function.c.
References assign_stack_temp_for_type(), DECL_P, gen_reg_rtx(), host_integerp(), HOST_WIDE_INT, int_size_in_bytes(), mode, NULL, NULL_TREE, promote_mode(), size, tmp, TREE_CODE, tree_low_cst(), TREE_TYPE, TREE_UNSIGNED, TYPE_ARRAY_MAX_SIZE, TYPE_MODE, and TYPE_SIZE_UNIT.
Referenced by copy_blkmode_from_reg(), emit_library_call_value_1(), expand_asm_operands(), expand_call(), expand_decl(), expand_expr(), expand_expr_real_1(), expand_inline_function(), expand_return(), ffecom_expand_let_stmt(), get_temp_regvar(), initialize_argument_information(), ix86_va_arg(), sparc_va_arg(), store_constructor(), store_field(), and store_one_arg().
Definition at line 6124 of file function.c.
References BLOCK_CHAIN, next, and prev.
Referenced by lower_bind_expr(), lower_function_body(), reorder_blocks(), and reorder_blocks_1().
Definition at line 6802 of file function.c.
References current_function_decl, DECL_RESULT, DECL_RTL, DECL_RTL_SET_P, diddle_return_value(), do_clobber_return_reg(), FIRST_PSEUDO_REGISTER, NULL, REG_P, and REGNO.
Referenced by expand_eh_return(), and expand_null_return().
Definition at line 921 of file function.c.
References flag_expensive_optimizations, flag_strict_aliasing, GET_MODE, optimize, q, and temp_slots.
Referenced by free_temp_slots(), free_temps_for_rtl_expr(), and pop_temp_slots().
Definition at line 3393 of file function.c.
References for_each_rtx(), insns_for_mem_walk_info::ht, insns_for_mem_walk_info::insn, insn, INSN_P, insns_for_mem_walk(), NEXT_INSN, and insns_for_mem_walk_info::pass.
Referenced by purge_addressof(), and purge_addressof_1().
| static int contains | ( | rtx | insn, | |
| varray_type | vec | |||
| ) | [static] |
Definition at line 7238 of file function.c.
References count, GET_CODE, i, INSN_UID, PATTERN, VARRAY_INT, VARRAY_SIZE, XVECEXP, and XVECLEN.
Referenced by prologue_epilogue_contains(), reposition_prologue_and_epilogue_notes(), and sibcall_epilogue_contains().
| static void delete_handlers | ( | ) | [static] |
Definition at line 4201 of file function.c.
References DECL_RTL, delete_related_insns(), GET_CODE, get_insns(), insns_for_mem_walk_info::insn, LABEL_PRESERVE_P, NEXT_INSN, nonlocal_goto_handler_slots, nonlocal_goto_stack_level, nonlocal_labels, PATTERN, reg_mentioned_p(), TREE_CHAIN, TREE_VALUE, and XEXP.
Definition at line 6768 of file function.c.
References current_function_return_rtx, FIRST_PSEUDO_REGISTER, GET_CODE, i, REG, REGNO, x, XEXP, XVECEXP, and XVECLEN.
Referenced by clobber_return_register(), compute_vrsave_mask(), df_record_exit_block_uses(), ia64_compute_frame_size(), mark_regs_live_at_end(), and use_return_register().
Definition at line 6794 of file function.c.
References emit_insn(), and gen_rtx_CLOBBER.
Referenced by clobber_return_register().
Definition at line 6819 of file function.c.
References emit_insn(), and gen_rtx_USE.
Referenced by use_return_register().
Definition at line 6750 of file function.c.
Referenced by backend_init(), and lang_dependent_init().
Definition at line 6534 of file function.c.
References abort, aggregate_value_p(), assemble_static_space(), assign_parms(), assign_stack_local(), cleanup_label, context_display, copy_to_reg(), current_function_decl, current_function_funcdef_no, current_function_instrument_entry_exit, current_function_limit_stack, current_function_needs_context, current_function_profile, current_function_returns_pcc_struct, decl_function_context(), DECL_MODE, DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK, DECL_REGISTER, DECL_RESULT, DECL_RTL, emit_library_call(), emit_move_insn(), emit_note(), expand_builtin_return_addr(), expand_pending_sizes(), flag_instrument_function_entry_exit, force_next_line_note(), gen_group_rtx(), gen_label_rtx(), gen_reg_rtx(), gen_rtx_EXPR_LIST, gen_rtx_MEM(), GET_CODE, get_frame_alias_set(), get_last_insn(), GET_MODE, GET_MODE_SIZE, get_pending_sizes(), hard_frame_pointer_rtx, hard_function_value(), HOST_WIDE_INT, init_recog_no_volatile(), int_size_in_bytes(), LCT_NORMAL, make_node, MEM, memory_address(), NOTE_INSN_DELETED, NOTE_INSN_FUNCTION_BEG, nreverse(), NULL, NULL_RTX, optimize, parm_birth_insn, plus_constant, Pmode, profile_flag, profile_function_entry_libfunc, PROFILE_HOOK, REG, REG_P, return_label, RTL_EXPR_RTL, save_expr_regs, SET_DECL_RTL, set_mem_alias_set(), set_mem_attributes(), size, SMALL_REGISTER_CLASSES, stack_limit_rtx, tail_recursion_reentry, tree_cons, TREE_TYPE, x, and XEXP.
Referenced by c_expand_body(), compile_resource_file(), complete_start_java_method(), emit_register_classes(), genrtl_start_function(), output_func_start_profiler(), store_parm_decls(), and tree_expand_cfg().
Definition at line 6461 of file function.c.
Referenced by c_expand_body(), genrtl_start_function(), and tree_expand_cfg().
Definition at line 6512 of file function.c.
References const0_rtx, emit_queue(), expand_expr(), TREE_CHAIN, and TREE_VALUE.
Referenced by c_expand_body(), and expand_function_start().
| static struct fixup_replacement* find_fixup_replacement | ( | struct fixup_replacement ** | replacements, | |
| rtx | x | |||
| ) | [static, read] |
Definition at line 1627 of file function.c.
References rtx_equal_p(), and xmalloc().
Referenced by fixup_var_refs_1().
Definition at line 987 of file function.c.
References GET_CODE, INTVAL, next, PLUS, REG, temp_slots, virtual_stack_vars_rtx, and XEXP.
Referenced by find_temp_slot_from_address(), mark_temp_addr_taken(), preserve_rtl_expr_result(), preserve_temp_slots(), and update_temp_slot_address().
Definition at line 5662 of file function.c.
References abort, ADDRESSOF, base, context_display, copy_to_reg(), current_function_decl, decl_function_context(), find_function_data(), FIRST_PARM_OFFSET, fp, function, gen_rtx_MEM(), get_arg_pointer_save_area(), GET_CODE, get_frame_alias_set(), HOST_WIDE_INT, INTVAL, lookup_static_chain(), MEM, memory_address(), PLUS, plus_constant, Pmode, REG, RTL_EXPR_RTL, set_mem_alias_set(), STARTING_FRAME_OFFSET, TREE_CHAIN, TREE_PURPOSE, TREE_VALUE, virtual_stack_vars_rtx, and XEXP.
Referenced by expand_expr(), fix_lexical_addr(), and trampoline_address().
| static rtx fixup_memory_subreg | ( | rtx | x, | |
| rtx | insn, | |||
| enum machine_mode | promoted_mode, | |||
| int | uncritical | |||
| ) | [static] |
Definition at line 2552 of file function.c.
References abort, addr(), adjust_address, BYTES_BIG_ENDIAN, emit_insn_before(), end_sequence(), flag_force_addr, get_insns(), GET_MODE, GET_MODE_SIZE, mem, memory_address_p(), mode, offset, plus_constant, result, start_sequence(), SUBREG_BYTE, SUBREG_REG, and XEXP.
Referenced by fixup_var_refs_1(), fixup_var_refs_insn(), and walk_fixup_memory_subreg().
Definition at line 2643 of file function.c.
References ARG_POINTER_REGNUM, copy_to_reg(), current_function_internal_arg_pointer, emit_insn_before(), end_sequence(), FIRST_VIRTUAL_REGISTER, FRAME_POINTER_REGNUM, GET_CODE, get_insns(), GET_MODE, GET_RTX_FORMAT, GET_RTX_LENGTH, HARD_FRAME_POINTER_REGNUM, i, LAST_VIRTUAL_REGISTER, MEM, memory_address_p(), PLUS, REG, REGNO, replace_equiv_address(), RTX_CODE, STACK_POINTER_REGNUM, start_sequence(), XEXP, XVECEXP, and XVECLEN.
Referenced by fixup_stack_1(), fixup_var_refs_1(), and fixup_var_refs_insn().
| static void fixup_var_refs | ( | rtx | var, | |
| enum machine_mode | promoted_mode, | |||
| int | unsignedp, | |||
| rtx | may_share, | |||
| htab_t | ht | |||
| ) | [static] |
Definition at line 1571 of file function.c.
References abort, const0_rtx, end_sequence(), first_insn, fixup_var_refs_insns(), fixup_var_refs_insns_with_hash(), get_insns(), get_last_insn(), push_to_full_sequence(), push_to_sequence(), rtl_expr_chain, RTL_EXPR_SEQUENCE, seq_stack, sequence_stack, stack, TREE_CHAIN, and TREE_VALUE.
Referenced by gen_mem_addressof(), pop_function_context_from(), and schedule_fixup_var_refs().
| static void fixup_var_refs_1 | ( | rtx | var, | |
| enum machine_mode | promoted_mode, | |||
| rtx * | loc, | |||
| rtx | insn, | |||
| struct fixup_replacement ** | replacements, | |||
| rtx | no_share | |||
| ) | [static] |
Definition at line 1927 of file function.c.
References abort, ADDRESSOF, adjust_address_nv, BITS_BIG_ENDIAN, BITS_PER_UNIT, BYTES_BIG_ENDIAN, CONST, copy_most_rtx(), copy_rtx(), delete_insn(), dest, emit_insn(), emit_insn_after(), emit_insn_before(), end_sequence(), EP_extv, EP_extzv, EP_insv, find_fixup_replacement(), fixup_memory_subreg(), fixup_stack_1(), flag_force_mem, force_operand(), GEN_INT, gen_lowpart, gen_move_insn(), gen_reg_rtx(), gen_rtx_SET, GET_CODE, get_insns(), GET_MODE, GET_MODE_BITSIZE, GET_MODE_SIZE, GET_RTX_FORMAT, GET_RTX_LENGTH, HOST_WIDE_INT, i, INSN_CODE, INTVAL, last, MEM, MEM_VOLATILE_P, mode_dependent_address_p(), mode_for_extraction(), new_mode(), NEXT_INSN, NULL_RTX, offset, optimize_bit_field(), PATTERN, PC, pos(), PREV_INSN, recog_memoized, REG, reg_mentioned_p(), REG_NOTES, RTX_CODE, SET, SET_DEST, SET_SRC, sets_cc0_p(), single_set, src, start_sequence(), sub, SUBREG_PROMOTED_VAR_P, SUBREG_REG, validate_change(), validate_replace_rtx(), x, XEXP, XVECEXP, XVECLEN, and is::y.
Referenced by fixup_var_refs_1(), and fixup_var_refs_insn().
| static void fixup_var_refs_insn | ( | rtx | insn, | |
| rtx | var, | |||
| enum machine_mode | promoted_mode, | |||
| int | unsignedp, | |||
| int | toplevel, | |||
| rtx | no_share | |||
| ) | [static] |
Definition at line 1737 of file function.c.
References CONCAT, convert_move(), delete_insn(), emit_insn_before(), end_sequence(), find_reg_note(), fixup_memory_subreg(), fixup_stack_1(), fixup_var_refs_1(), free(), gen_move_insn(), gen_reg_rtx(), GET_CODE, get_insns(), GET_MODE, last_parm_insn, next, NEXT_INSN, next_insn(), NULL_RTX, PATTERN, prev, PREV_INSN, prev_nonnote_insn(), REG, REG_LIBCALL, reg_mentioned_p(), REG_NOTES, REG_RETVAL, remove_note(), replace_rtx(), replacements, rtx_equal_p(), SET, SET_DEST, SET_SRC, single_set, SMALL_REGISTER_CLASSES, start_sequence(), walk_fixup_memory_subreg(), XEXP, and XVECEXP.
Referenced by fixup_var_refs_insns(), and fixup_var_refs_insns_with_hash().
| static void fixup_var_refs_insns | ( | rtx | insn, | |
| rtx | var, | |||
| enum machine_mode | promoted_mode, | |||
| int | unsignedp, | |||
| int | toplevel, | |||
| rtx | may_share | |||
| ) | [static] |
Definition at line 1655 of file function.c.
References end_sequence(), fixup_var_refs_insn(), GET_CODE, get_insns(), i, INSN_P, next, NEXT_INSN, PATTERN, push_to_sequence(), and XEXP.
Referenced by fixup_var_refs(), and fixup_var_refs_insns().
| static void fixup_var_refs_insns_with_hash | ( | htab_t | ht, | |
| rtx | var, | |||
| enum machine_mode | promoted_mode, | |||
| int | unsignedp, | |||
| rtx | may_share | |||
| ) | [static] |
Definition at line 1710 of file function.c.
References fixup_var_refs_insn(), htab_find(), insn_list, INSN_P, insns_for_mem_entry::insns, insns_for_mem_entry::key, and XEXP.
Referenced by fixup_var_refs().
Definition at line 2977 of file function.c.
References ADDRESSOF, DECL_RTL, GET_CODE, MEM, put_addressof_into_stack(), REG, TREE_CODE, and XEXP.
Definition at line 449 of file function.c.
Referenced by expand_dummy_function_end(), finish_function(), rest_of_clean_state(), and rest_of_compilation().
Definition at line 432 of file function.c.
Referenced by expand_dummy_function_end(), finish_function(), rest_of_clean_state(), and rest_of_compilation().
Definition at line 1213 of file function.c.
Referenced by c_expand_asm_operands(), do_jump(), expand_asm_expr(), expand_asm_operands(), expand_assignment(), expand_case(), expand_cleanups(), expand_decl(), expand_decl_init(), expand_end_case_type(), expand_expr_stmt(), expand_expr_stmt_value(), store_one_arg(), and tail_recursion_args().
Definition at line 1228 of file function.c.
References combine_temp_slots(), NULL_TREE, and temp_slots.
Referenced by expand_expr().
Definition at line 2923 of file function.c.
References DECL_INITIAL, DECL_MODE, DECL_P, DECL_RTL_IF_SET, fixup_var_refs(), gen_reg_rtx(), gen_rtx_ADDRESSOF, get_alias_set(), GET_MODE, HOST_WIDE_INT, MEM, MEM_ATTRS, Pmode, PUT_CODE, PUT_MODE, r, REG_USERVAR_P, REGNO, RTX_UNCHANGING_P, SAVE_EXPR_RTL, SET_DECL_RTL, set_mem_alias_set(), set_mem_attributes(), TREE_CODE, TREE_TYPE, TREE_UNSIGNED, TREE_USED, TYPE_MODE, and XEXP.
Referenced by alpha_gp_save_rtx(), put_var_into_stack(), and spill_tfmode_operand().
Definition at line 7173 of file function.c.
Referenced by expand_builtin_setjmp_receiver(), expand_nl_goto_receiver(), and fix_lexical_addr().
Definition at line 6174 of file function.c.
References all_blocks(), NULL, and xmalloc().
Referenced by identify_blocks(), and number_blocks().
| rtx get_first_block_beg | ( | ) |
Definition at line 4269 of file function.c.
References abort, GET_CODE, get_first_nonparm_insn(), insns_for_mem_walk_info::insn, NEXT_INSN, NOTE_INSN_BLOCK_BEG, NOTE_LINE_NUMBER, and NULL_RTX.
| rtx get_first_nonparm_insn | ( | ) |
Definition at line 4258 of file function.c.
References get_insns(), last_parm_insn, and NEXT_INSN.
Referenced by function_cannot_inline_p(), get_first_block_beg(), and save_for_inline().
| HOST_WIDE_INT get_frame_size | ( | void | ) |
Definition at line 511 of file function.c.
Referenced by alpha_expand_epilogue(), alpha_expand_prologue(), alpha_initial_elimination_offset(), alpha_sa_size(), alpha_start_function(), arc_delay_slots_for_epilogue(), arm_compute_initial_elimination_offset(), arm_expand_prologue(), arm_get_frame_offsets(), arm_output_epilogue(), avr_simple_epilogue(), bfin_expand_epilogue(), bfin_expand_prologue(), bfin_initial_elimination_offset(), c4x_expand_epilogue(), c4x_expand_prologue(), c4x_null_epilogue_p(), can_use_return_insn(), cris_delay_slots_for_epilogue(), cris_expand_epilogue(), cris_expand_prologue(), cris_initial_frame_pointer_offset(), cris_simple_epilogue(), cris_target_asm_function_prologue(), crx_compute_frame(), d30v_stack_info(), direct_return(), expand_epilogue(), expand_interrupt_handler_epilogue(), expand_interrupt_handler_prologue(), expand_prologue(), final_end_function(), final_start_function(), fr30_compute_frame_size(), frame_pointer_required_p(), frv_frame_pointer_required(), frv_stack_info(), h8300_can_use_return_insn_p(), h8300_expand_epilogue(), h8300_expand_prologue(), h8300_initial_elimination_offset(), hppa_can_use_return_insn_p(), hppa_expand_prologue(), i960_function_name_declare(), ia64_direct_return(), ia64_expand_epilogue(), ia64_expand_prologue(), ia64_initial_elimination_offset(), initial_elimination_offset(), initial_frame_pointer_offset(), initial_offset(), ip2k_init_elim_offset(), iq2000_can_use_return_insn(), iq2000_debugger_offset(), iq2000_expand_prologue(), iq2000_initial_elimination_offset(), ix86_compute_frame_layout(), layout_mcore_frame(), m32c_initial_elimination_offset(), m32r_expand_prologue(), m32r_first_insn_address(), m68hc11_initial_elimination_offset(), m68hc11_total_frame_size(), m68k_compute_frame_layout(), m88k_layout_frame(), mdx_epilogue(), mdx_prologue(), mips_can_use_return_insn(), mips_debugger_offset(), mips_expand_prologue(), mips_initial_elimination_offset(), mips_set_return_address(), mmix_expand_epilogue(), mmix_expand_prologue(), mmix_initial_elimination_offset(), mmix_use_simple_return(), mt_expand_epilogue(), mt_expand_prologue(), mt_initial_elimination_offset(), null_epilogue(), pj_expand_epilogue(), pj_expand_prologue(), reload(), romp_pushes_stack(), rounded_frame_size(), rs6000_stack_info(), s390_frame_info(), s390_initial_elimination_offset(), s390_register_info(), score_initial_elimination_offset(), sparc_expand_prologue(), sparc_flat_epilogue_delay_slots(), thumb_expand_epilogue(), thumb_expand_prologue(), total_frame_size(), use_return_insn(), xstormy16_compute_stack_layout(), xtensa_expand_prologue(), xtensa_function_prologue(), and xtensa_reorg().
Definition at line 497 of file function.c.
Referenced by copy_rtx_and_substitute(), and get_frame_size().
| static GTY | ( | () | ) | [static] |
Definition at line 153 of file function.c.
References address, align, HOST_WIDE_INT, next, and size.
| void identify_blocks | ( | ) |
Definition at line 5857 of file function.c.
References abort, block_stack, current_function_decl, DECL_INITIAL, free(), get_block_vector(), get_insns(), identify_blocks_1(), and xmalloc().
Referenced by rest_of_compilation().
| static tree* identify_blocks_1 | ( | rtx | insns, | |
| tree * | block_vector, | |||
| tree * | end_block_vector, | |||
| tree * | orig_block_stack | |||
| ) | [static] |
Definition at line 5893 of file function.c.
References abort, b, block_stack, GET_CODE, insn, NEXT_INSN, NOTE_BLOCK, NOTE_INSN_BLOCK_BEG, NOTE_INSN_BLOCK_END, NOTE_LINE_NUMBER, PATTERN, and XEXP.
Referenced by identify_blocks(), and identify_blocks_1().
Definition at line 6381 of file function.c.
Referenced by backend_init(), lang_dependent_init(), and push_function_context_to().
Definition at line 6391 of file function.c.
References AGGREGATE_TYPE_P, aggregate_value_p(), current_function_decl, current_function_name, current_function_needs_context, current_function_returns_pcc_struct, current_function_returns_pointer, current_function_returns_struct, decl_function_context(), DECL_NO_STATIC_CHAIN, DECL_RESULT, emit_line_note(), emit_note(), immediate_size_expand, NOTE_INSN_DELETED, NULL, POINTER_TYPE_P, prepare_function_start(), TREE_TYPE, warn_aggregate_return, and warning.
Referenced by c_expand_body(), compile_resource_file(), complete_start_java_method(), emit_register_classes(), genrtl_start_function(), hack_method_prototype(), output_func_start_profiler(), start_function(), store_parm_decls(), tree_rest_of_compilation(), and use_thunk().
Definition at line 1332 of file function.c.
Referenced by prepare_function_start(), rest_of_clean_state(), and rest_of_compilation().
Definition at line 3322 of file function.c.
References insns_for_mem_entry::key.
Referenced by purge_addressof().
Definition at line 3311 of file function.c.
References htab_hash_pointer, and insns_for_mem_entry::key.
Referenced by purge_addressof().
Definition at line 3351 of file function.c.
References ADDRESSOF, gen_rtx_EXPR_LIST, GET_CODE, ggc_alloc, insns_for_mem_walk_info::ht, htab_find(), htab_find_slot(), INSERT, insns_for_mem_walk_info::insn, insns_for_mem_entry::insns, insns_for_mem_entry::key, memcpy, NULL, NULL_RTX, insns_for_mem_walk_info::pass, PTR, REG, and XEXP.
Referenced by compute_insns_for_mem().
Definition at line 3687 of file function.c.
References addr(), ADDRESSOF, CONSTANT_P, copy_rtx(), FIRST_VIRTUAL_REGISTER, GET_CLASS_NARROWEST_MODE, GET_CODE, GET_MODE_SIZE, GET_MODE_WIDER_MODE, HOST_WIDE_INT, instantiate_virtual_regs_1(), LAST_VIRTUAL_REGISTER, MEM, memory_address_p(), mode, MODE_FLOAT, MODE_INT, NULL_RTX, REG, REGNO, and XEXP.
Definition at line 3633 of file function.c.
References DECL_ARGUMENTS, DECL_INCOMING_RTL, DECL_INITIAL, DECL_RTL, GET_MODE, GET_MODE_SIZE, HOST_WIDE_INT, instantiate_decl(), instantiate_decls_1(), int_size_in_bytes(), MAX, size, TREE_CHAIN, and TREE_TYPE.
Referenced by instantiate_virtual_regs().
Definition at line 3663 of file function.c.
References BLOCK_SUBBLOCKS, BLOCK_VARS, DECL_RTL, DECL_RTL_SET_P, instantiate_decl(), int_size_in_bytes(), TREE_CHAIN, and TREE_TYPE.
Referenced by instantiate_decls(), and instantiate_decls_1().
Definition at line 3752 of file function.c.
References arg_pointer_rtx, frame_pointer_rtx, HOST_WIDE_INT, offset, stack_pointer_rtx, virtual_cfa_rtx, virtual_incoming_args_rtx, virtual_outgoing_args_rtx, virtual_stack_dynamic_rtx, and virtual_stack_vars_rtx.
Referenced by instantiate_virtual_regs_1(), instantiate_virtual_regs_in_insn(), and instantiate_virtual_regs_in_rtx().
Definition at line 3566 of file function.c.
References ARG_POINTER_CFA_OFFSET, asm_noperands(), CALL_INSN_FUNCTION_USAGE, check_asm_operands(), FIRST_PARM_OFFSET, GET_CODE, i, init_recog(), insns_for_mem_walk_info::insn, INSN_DELETED_P, instantiate_decls(), instantiate_virtual_regs_1(), instantiate_virtual_regs_lossage(), max_parm_reg, NEXT_INSN, NULL_RTX, parm_reg_stack_loc, PATTERN, REG_NOTES, STACK_DYNAMIC_OFFSET, STACK_POINTER_OFFSET, STARTING_FRAME_OFFSET, and virtuals_instantiated.
Referenced by rest_of_compilation().
Definition at line 3807 of file function.c.
References ABS, ADDRESSOF, AND, ARG_POINTER_REGNUM, arg_pointer_rtx, COMPARE, CONST, const0_rtx, CONSTANT_ADDRESS_P, CONSTANT_P, copy_rtx(), DIV, emit_insn_before(), end_sequence(), EQ, FIX, FLOAT, force_operand(), FRAME_POINTER_REGNUM, frame_pointer_rtx, GE, gen_lowpart, gen_move_insn(), gen_reg_rtx(), gen_rtx_PLUS, GET_CODE, get_insns(), GET_MODE, GET_RTX_FORMAT, GET_RTX_LENGTH, GT, HARD_FRAME_POINTER_REGNUM, hard_frame_pointer_rtx, HOST_WIDE_INT, i, INSN_DELETED_P, INSN_P, instantiate_new_reg(), instantiate_virtual_regs_lossage(), INTVAL, LE, LT, MEM, MINUS, MOD, NE, NOT, NULL_RTX, offset, PC, PLUS, plus_constant, Pmode, PREFETCH, ptr_mode, REG, RETURN, ROTATE, RTX_CODE, SET, SET_DEST, SET_SRC, SIGN_EXTEND, src, start_sequence(), SUBREG_REG, TRUNCATE, USE, validate_change(), validate_replace_rtx(), virtual_incoming_args_rtx, virtual_stack_vars_rtx, x, XEXP, XOR, XVECEXP, and XVECLEN.
Referenced by instantiate_decl(), instantiate_virtual_regs(), and instantiate_virtual_regs_1().
Definition at line 3781 of file function.c.
References abort, asm_noperands(), delete_insn(), error_for_asm(), and PATTERN.
Referenced by instantiate_virtual_regs(), and instantiate_virtual_regs_1().
Definition at line 3415 of file function.c.
References ADDRESSOF, and GET_CODE.
Referenced by purge_addressof().
| void locate_and_pad_parm | ( | enum machine_mode | passed_mode, | |
| tree | type, | |||
| in_regs | , | |||
| fndecl | , | |||
| struct args_size * | initial_offset_ptr, | |||
| struct args_size * | offset_ptr, | |||
| struct args_size * | arg_size_ptr, | |||
| struct args_size * | alignment_pad | |||
| ) |
Definition at line 5300 of file function.c.
References ADD_PARM_SIZE, ARGS_SIZE_TREE, BITS_PER_UNIT, args_size::constant, downward, FUNCTION_ARG_BOUNDARY, FUNCTION_ARG_PADDING, GET_MODE_SIZE, host_integerp(), MAYBE_REG_PARM_STACK_SPACE, none, pad_below(), pad_to_arg_alignment(), PARM_BOUNDARY, PUSH_ROUNDING, REG_PARM_STACK_SPACE, round_up(), s2, size_binop(), size_in_bytes(), size_int, ssize_int, SUB_PARM_SIZE, TREE_INT_CST_LOW, tree_low_cst(), and args_size::var.
Referenced by assign_parm_find_entry_rtl(), assign_parms(), emit_library_call_value_1(), and initialize_argument_information().
Definition at line 5633 of file function.c.
References abort, context_display, current_function_decl, decl_function_context(), DECL_NO_STATIC_CHAIN, RTL_EXPR_RTL, TREE_CHAIN, TREE_CODE, TREE_PURPOSE, TREE_VALUE, and virtual_stack_vars_rtx.
Referenced by expand_goto(), expand_inline_function(), fix_lexical_addr(), and prepare_call_address().
| void mark_all_temps_used | ( | ) |
| int max_parm_reg_num | ( | ) |
Definition at line 6192 of file function.c.
Referenced by final_start_function(), optimize_inline_calls(), and tree_function_versioning().
Definition at line 2710 of file function.c.
References abort, adjust_address, apply_change_group(), BITS_BIG_ENDIAN, BITS_PER_UNIT, BYTES_BIG_ENDIAN, CONSTANT_ADDRESS_P, convert_move(), dest, emit_insn_before(), end_sequence(), gen_lowpart, gen_reg_rtx(), GET_CODE, get_insns(), GET_MODE, GET_MODE_BITSIZE, GET_MODE_CLASS, GET_MODE_SIZE, HOST_WIDE_INT, insns, INTVAL, MEM, MEM_VOLATILE_P, MIN, mode, mode_dependent_address_p(), mode_for_size(), MODE_INT, offset, REG, REGNO, SET_DEST, SET_SRC, src, start_sequence(), SUBREG_BYTE, SUBREG_REG, UNITS_PER_WORD, validate_change(), and XEXP.
Referenced by fixup_var_refs_1().
| static void pad_below | ( | struct args_size * | offset_ptr, | |
| enum machine_mode | passed_mode, | |||
| tree | sizetree | |||
| ) | [static] |
Definition at line 5483 of file function.c.
References ADD_PARM_SIZE, BITS_PER_UNIT, GET_MODE_BITSIZE, GET_MODE_SIZE, PARM_BOUNDARY, round_up(), s2, SUB_PARM_SIZE, TREE_CODE, and TREE_INT_CST_LOW.
Referenced by locate_and_pad_parm().
| static void pad_to_arg_alignment | ( | struct args_size * | offset_ptr, | |
| int | boundary, | |||
| struct args_size * | alignment_pad | |||
| ) | [static] |
Definition at line 5432 of file function.c.
References ARGS_SIZE_TREE, BITS_PER_UNIT, CEIL_ROUND, args_size::constant, FLOOR_ROUND, HOST_WIDE_INT, NULL_TREE, PARM_BOUNDARY, round_down(), round_up(), size_binop(), STACK_BOUNDARY, and args_size::var.
Referenced by locate_and_pad_parm().
| static void record_insns PARAMS | ( | (rtx, varray_type *) | ) | [static] |
Definition at line 286 of file function.c.
| static void reorder_blocks_1 PARAMS | ( | (rtx, tree, varray_type *) | ) | [static] |
| static void pad_below PARAMS | ( | (struct args_size *, enum machine_mode, tree) | ) | [static] |
| static rtx fixup_memory_subreg PARAMS | ( | (rtx, rtx, enum machine_mode, int) | ) | [static] |
| static void fixup_var_refs_1 PARAMS | ( | (rtx, enum machine_mode, rtx *, rtx, struct fixup_replacement **, rtx) | ) | [static] |
| static void fixup_var_refs_insns_with_hash PARAMS | ( | (htab_t, rtx, enum machine_mode, int, rtx) | ) | [static] |
| static void fixup_var_refs_insns PARAMS | ( | (rtx, rtx, enum machine_mode, int, int, rtx) | ) | [static] |
| static struct fixup_replacement* find_fixup_replacement PARAMS | ( | (struct fixup_replacement **, rtx) | ) | [static, read] |
| static void fixup_var_refs PARAMS | ( | (rtx, enum machine_mode, int, rtx, htab_t) | ) | [static] |
| static void schedule_fixup_var_refs PARAMS | ( | (struct function *, rtx, tree, enum machine_mode, htab_t) | ) | [static] |
| static void put_reg_into_stack PARAMS | ( | (struct function *, rtx, tree, enum machine_mode, enum machine_mode, int, unsigned int, int, htab_t) | ) | [static] |
| static rtx assign_stack_local_1 PARAMS | ( | (enum machine_mode, HOST_WIDE_INT, int, struct function *) | ) | [static] |
| struct machine_function* init_machine_status PARAMS | ( | (void) | ) | [read] |
Definition at line 77 of file cplus-dem.c.
Definition at line 422 of file function.c.
Referenced by c_expand_body(), c_parser_declaration_or_fndef(), genrtl_scope_stmt(), pop_f_function_context(), and poplevel().
| void pop_function_context_from | ( | context | ) |
Definition at line 373 of file function.c.
References current_function_decl, fixup_var_refs(), function, gen_rtx_EXPR_LIST, generating_concat_p, queue(), reg_renumber, restore_emit_status(), rtx_equal_function_value_matters, and virtuals_instantiated.
Referenced by cp_parser_late_parsing_for_member(), pop_from_top_level(), pop_function_context(), process_next_inline(), and synthesize_method().
Definition at line 1316 of file function.c.
Referenced by c_expand_expr(), do_jump(), emit_library_call_value_1(), expand_assignment(), expand_decl_init(), expand_end_bindings(), expand_end_target_temps(), expand_expr(), precompute_register_parameters(), rtx_for_function_call(), and store_one_arg().
| static void prepare_function_start | ( | ) | [static] |
Definition at line 6245 of file function.c.
References arg_pointer_save_area, caller_save_needed, cse_not_expected, current_function_calls_alloca, current_function_calls_longjmp, current_function_calls_setjmp, current_function_cannot_inline, current_function_contains_functions, current_function_epilogue_delay_list, current_function_funcdef_no, current_function_has_computed_jump, current_function_has_nonlocal_goto, current_function_has_nonlocal_label, current_function_is_leaf, current_function_is_thunk, current_function_nothrow, current_function_outgoing_args_size, current_function_returns_pcc_struct, current_function_returns_struct, current_function_sp_is_unchanging, current_function_stdarg, current_function_uses_const_pool, current_function_uses_only_leaf_regs, current_function_uses_pic_offset_table, flag_test_coverage, frame_offset, frame_pointer_needed, funcdef_no, function, function_call_count, FUNCTION_FREQUENCY_NORMAL, generating_concat_p, ggc_alloc_cleared, inhibit_defer_pop, init_eh_for_function(), init_emit(), init_expr(), init_machine_status, init_pending_stack_adjust(), init_stmt_for_function(), init_temp_slots(), init_varasm_status(), LAST_VIRTUAL_REGISTER, max_parm_reg, nonlocal_goto_handler_labels, nonlocal_goto_handler_slots, nonlocal_goto_stack_level, nonlocal_labels, optimize, profile_arc_flag, reg_renumber, rtl_expr_chain, rtx_equal_function_value_matters, save_expr_regs, STACK_BOUNDARY, stack_slot_list, tail_recursion_label, trampoline_list, and virtuals_instantiated.
Referenced by init_dummy_function_start(), and init_function_start().
Definition at line 1183 of file function.c.
References CONSTANT_P, find_temp_slot_from_address(), GET_CODE, MEM, MIN, temp_slot_level, and XEXP.
Referenced by expand_expr().
Definition at line 1114 of file function.c.
Referenced by c_expand_expr(), copy_blkmode_from_reg(), do_jump(), expand_assignment(), expand_call(), expand_decl_init(), expand_expr(), expand_expr_stmt_value(), maybe_inject_for_scope_var(), precompute_register_parameters(), and store_one_arg().
| int prologue_epilogue_contains | ( | rtx | insn | ) |
Definition at line 7264 of file function.c.
Referenced by init_alias_analysis(), propagate_one_insn(), and rs6000_ra_ever_killed().
Definition at line 3427 of file function.c.
References abort, asm_noperands(), compute_insns_for_mem(), for_each_rtx(), GET_CODE, get_insns(), htab_create_ggc, insns_for_mem_walk_info::insn, insns_for_mem_comp(), insns_for_mem_hash(), is_addressof(), NEXT_INSN, NULL, NULL_RTX, PATTERN, purge_addressof_1(), REG_NOTE_KIND, REG_NOTES, REG_RETVAL, remove_note(), unshare_all_rtl_again(), and XEXP.
Referenced by rest_of_compilation().
Definition at line 3041 of file function.c.
References abort, ADDRESSOF, adjust_address_nv, compute_insns_for_mem(), copy_rtx(), emit_insn_after(), emit_insn_before(), end_sequence(), extract_bit_field(), force_operand(), gen_lowpart, gen_reg_rtx(), gen_rtx_EXPR_LIST, gen_rtx_SUBREG(), GET_CODE, get_insns(), GET_MODE, GET_MODE_BITSIZE, GET_MODE_SIZE, GET_RTX_FORMAT, GET_RTX_LENGTH, i, insns, int_mode_for_mode(), MEM, MEM_VOLATILE_P, NEXT_INSN, NULL_RTX, PREV_INSN, put_addressof_into_stack(), REG, result, RTX_CODE, rtx_equal_p(), RTX_UNCHANGING_P, SET, SET_DEST, SET_SRC, start_sequence(), store_bit_field(), sub, SUBREG_BYTE, SUBREG_REG, UNITS_PER_WORD, unshare_all_rtl_again(), val, validate_change(), validate_replace_rtx(), x, XEXP, XVECEXP, XVECLEN, and is::z.
Referenced by purge_addressof(), and purge_addressof_1().
Definition at line 3529 of file function.c.
References GET_CODE, INSN_P, NEXT_INSN, pattern, PATTERN, purge_single_hard_subreg_set(), SET, SET_DEST, XVECEXP, and XVECLEN.
Referenced by rest_of_compilation().
Definition at line 3496 of file function.c.
References FIRST_PSEUDO_REGISTER, gen_rtx_REG(), GET_CODE, GET_MODE, mode, offset, REG, REGNO, SET_DEST, SUBREG_BYTE, SUBREG_REG, and subreg_regno_offset().
Referenced by purge_hard_subreg_sets().
Definition at line 364 of file function.c.
Referenced by c_expand_body(), c_parser_declaration_or_fndef(), genrtl_scope_stmt(), poplevel(), and push_f_function_context().
Definition at line 334 of file function.c.
References current_function_decl, find_function_data(), function, and init_dummy_function_start().
Referenced by begin_parsing_inclass_inline(), cp_parser_late_parsing_for_member(), maybe_push_to_top_level(), push_function_context(), push_to_top_level(), and synthesize_method().
Definition at line 1267 of file function.c.
Referenced by c_expand_expr(), do_jump(), emit_library_call_value_1(), expand_assignment(), expand_decl_init(), expand_expr(), expand_start_bindings_and_block(), expand_start_target_temps(), precompute_register_parameters(), rtx_for_function_call(), and store_one_arg().
Definition at line 2991 of file function.c.
References abort, ADDRESSOF_DECL, ADDRESSOF_REGNO, DECL_INITIAL, DECL_P, GET_CODE, GET_MODE, NULL_TREE, put_reg_into_stack(), REG, TREE_CODE, TREE_THIS_VOLATILE, TREE_TYPE, TREE_USED, and XEXP.
Referenced by flush_addressof(), and purge_addressof_1().
| static void put_reg_into_stack | ( | struct function * | function, | |
| rtx | reg, | |||
| tree | type, | |||
| enum machine_mode | promoted_mode, | |||
| enum machine_mode | decl_mode, | |||
| int | volatile_p, | |||
| unsigned int | original_regno, | |||
| int | used_p, | |||
| htab_t | ht | |||
| ) | [static] |
Definition at line 1492 of file function.c.
References AGGREGATE_TYPE_P, assign_stack_local_1(), func, get_alias_set(), GET_MODE_SIZE, MEM, MEM_ATTRS, MEM_IN_STRUCT_P, MEM_SET_IN_STRUCT_P, MEM_VOLATILE_P, PUT_CODE, PUT_MODE, REGNO, schedule_fixup_var_refs(), set_mem_alias_set(), and XEXP.
Referenced by put_addressof_into_stack(), and put_var_into_stack().
Definition at line 1348 of file function.c.
References ADDRESSOF, CONCAT, copy_rtx(), current_function_calls_setjmp, current_function_decl, decl_function_context(), DECL_INITIAL, DECL_MODE, DECL_NONLOCAL, DECL_P, DECL_RTL_IF_SET, function, gen_mem_addressof(), GET_CODE, GET_MODE, LAST_VIRTUAL_REGISTER, MEM, MEM_ATTRS, NON_SAVING_SETJMP, NULL, optimize, PLUS, PUT_CODE, put_reg_into_stack(), REG, REGNO, SAVE_EXPR_RTL, schedule_fixup_var_refs(), SET_DECL_RTL, set_mem_attributes(), TREE_CODE, TREE_THIS_VOLATILE, TREE_TYPE, TREE_USED, TYPE_MODE, and XEXP.
Referenced by assign_parms(), c4x_expand_builtin(), c_mark_addressable(), cxx_mark_addressable(), expand_decl(), expand_expr(), ffecom_sym_transform_(), genrtl_named_return_value(), mark_addressable(), setjmp_protect(), and setjmp_protect_args().
| static void record_insns | ( | rtx | insns, | |
| varray_type * | vecp | |||
| ) | [static] |
Definition at line 7208 of file function.c.
References i, INSN_UID, len, NEXT_INSN, NULL_RTX, tmp, VARRAY_GROW, VARRAY_INT, and VARRAY_SIZE.
Referenced by thread_prologue_and_epilogue_insns().
Definition at line 5960 of file function.c.
Referenced by optimize_sibling_and_tail_recursive_calls(), reemit_insn_block_notes(), rest_of_compilation(), and scope_to_insns_finalize().
Definition at line 5988 of file function.c.
References BLOCK_CHAIN, BLOCK_SUBBLOCKS, and TREE_ASM_WRITTEN.
Referenced by reorder_blocks(), and reorder_blocks_0().
| static void reorder_blocks_1 | ( | rtx | insns, | |
| tree | current_block, | |||
| varray_type * | p_block_stack | |||
| ) | [static] |
Definition at line 6000 of file function.c.
References BLOCK_CHAIN, BLOCK_FRAGMENT_CHAIN, BLOCK_FRAGMENT_ORIGIN, BLOCK_SUBBLOCKS, BLOCK_SUPERCONTEXT, blocks_nreverse(), copy_node, GET_CODE, insn, new_block, NEXT_INSN, NOTE_BLOCK, NOTE_INSN_BLOCK_BEG, NOTE_INSN_BLOCK_END, NOTE_LINE_NUMBER, PATTERN, TREE_ASM_WRITTEN, VARRAY_POP, VARRAY_PUSH_TREE, VARRAY_TOP_TREE, and XEXP.
Referenced by reorder_blocks(), and reorder_blocks_1().
Definition at line 6069 of file function.c.
References BLOCK_CHAIN, BLOCK_FRAGMENT_CHAIN, BLOCK_FRAGMENT_ORIGIN, BLOCK_SUBBLOCKS, NULL_TREE, and TREE_ASM_WRITTEN.
Referenced by reorder_blocks(), and reorder_fix_fragments().
Definition at line 7909 of file function.c.
References contains(), f, GET_CODE, get_last_insn(), last, len, NEXT_INSN, NOTE_INSN_EPILOGUE_BEG, NOTE_INSN_PROLOGUE_END, NOTE_LINE_NUMBER, PREV_INSN, reorder_insns(), and VARRAY_SIZE.
Referenced by schedule_ebbs().
Definition at line 5818 of file function.c.
References addend, AND, BITS_PER_UNIT, expand_simple_binop(), GEN_INT, gen_reg_rtx(), OPTAB_LIB_WIDEN, PLUS, Pmode, and TRAMPOLINE_ALIGNMENT.
Referenced by adjust_trampoline_addr(), expand_builtin_adjust_trampoline(), and expand_builtin_init_trampoline().
| static void schedule_fixup_var_refs | ( | struct function * | function, | |
| rtx | reg, | |||
| tree | type, | |||
| enum machine_mode | promoted_mode, | |||
| htab_t | ht | |||
| ) | [static] |
Definition at line 1544 of file function.c.
References fixup_var_refs(), ggc_alloc, and TREE_UNSIGNED.
Referenced by put_reg_into_stack(), and put_var_into_stack().
Definition at line 5558 of file function.c.
Referenced by rest_of_compilation(), and rest_of_handle_life().
Definition at line 5574 of file function.c.
References ADDRESSOF, BLOCK_SUBBLOCKS, BLOCK_VARS, DECL_FROM_INLINE, DECL_REGISTER, DECL_RTL, GET_CODE, MEM, NON_SAVING_SETJMP, put_var_into_stack(), REG, sub, TREE_CHAIN, TREE_CODE, and XEXP.
Referenced by setjmp_protect().
| void setjmp_protect_args | ( | ) |
Definition at line 5607 of file function.c.
References ADDRESSOF, current_function_decl, DECL_ARGUMENTS, DECL_REGISTER, DECL_RTL, GET_CODE, MEM, NON_SAVING_SETJMP, put_var_into_stack(), REG, TREE_CHAIN, TREE_CODE, and XEXP.
| int sibcall_epilogue_contains | ( | rtx | insn | ) |
Definition at line 7615 of file function.c.
References abort, active_insn_p(), commit_edge_insertions(), condjump_p(), current_function_decl, delete_insn(), EDGE_FAKE, EDGE_FALLTHRU, emit_barrier_after(), emit_insn(), emit_insn_before(), emit_jump_insn(), emit_line_note_after(), emit_note(), basic_block_def::end, end_sequence(), ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR, edge::flags, gen_epilogue(), gen_prologue(), gen_sibcall_epilogue(), GET_CODE, get_insns(), get_last_insn(), HAVE_epilogue, HAVE_prologue, HAVE_return, basic_block_def::head, i, insert_insn_on_edge(), jump, JUMP_LABEL, last, next_active_insn(), NEXT_INSN, NOTE_INSN_EPILOGUE_BEG, NOTE_INSN_PROLOGUE_END, NOTE_LINE_NUMBER, NOTE_SOURCE_FILE, NULL, NULL_RTX, optimize, basic_block_def::pred, edge::pred_next, prev, PREV_INSN, record_insns(), redirect_edge_succ(), redirect_jump(), reorder_insns(), SIBLING_CALL_P, simplejump_p(), edge::src, start_sequence(), basic_block_def::succ, edge::succ_next, TREE_CODE, TREE_TYPE, and TYPE_RETURNS_STACK_DEPRESSED.
Referenced by rest_of_compilation(), and rest_of_handle_flow2().
Definition at line 5745 of file function.c.
References adjust_trampoline_addr(), assign_stack_local_1(), current_function_decl, decl_function_context(), find_function_data(), fix_lexical_addr(), fp, make_node, RTL_EXPR_RTL, trampoline_list, TRAMPOLINE_REAL_SIZE, TREE_CHAIN, tree_cons, TREE_PURPOSE, TREE_VALUE, and XEXP.
Referenced by expand_expr().
Definition at line 5516 of file function.c.
References AGGREGATE_TYPE_P, BLOCK_SUBBLOCKS, BLOCK_VARS, DECL_INITIAL, DECL_RTL, extra_warnings, GET_CODE, NULL_TREE, REG, REGNO, regno_clobbered_at_setjmp(), regno_uninitialized(), sub, TREE_CHAIN, TREE_CODE, TREE_TYPE, and warn_uninitialized.
Referenced by rest_of_compilation(), and uninitialized_vars_warning().
Definition at line 1029 of file function.c.
Referenced by memory_address(), offset_address(), replace_equiv_address(), and update_temp_slot_address().
Definition at line 6827 of file function.c.
References diddle_return_value(), do_use_return_reg(), and NULL.
Referenced by reg_alloc().
| static rtx walk_fixup_memory_subreg | ( | rtx | x, | |
| rtx | insn, | |||
| enum machine_mode | promoted_mode, | |||
| int | uncritical | |||
| ) | [static] |
Definition at line 2598 of file function.c.
References fixup_memory_subreg(), GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, i, MEM, SUBREG_REG, XEXP, XVECEXP, and XVECLEN.
Referenced by fixup_var_refs_insn(), and walk_fixup_memory_subreg().
int cfa_offset [static] |
Definition at line 2872 of file function.c.
Referenced by cris_target_asm_function_prologue(), m68k_output_function_prologue(), mmix_target_asm_function_prologue(), and thumb_output_function_prologue().
Definition at line 150 of file function.c.
Referenced by add_action_record(), add_call_site(), add_ehl_entry(), add_ehspec_entry(), add_reachable_handler(), add_stmt_to_eh_region(), add_ttypes_entry(), alloc_stack_frame_space(), allocate_dynamic_stack_space(), allocate_initial_values(), allocate_struct_function(), alpha_gp_save_rtx(), alpha_setup_incoming_varargs(), annotate_constant_pool_refs(), any_pending_cleanups(), apply_args_size(), arm_compute_func_type(), arm_compute_initial_elimination_offset(), arm_compute_save_reg_mask(), arm_current_func_type(), arm_expand_prologue(), arm_function_ok_for_sibcall(), arm_get_frame_offsets(), arm_init_expanders(), arm_output_epilogue(), arm_output_function_epilogue(), arm_output_function_prologue(), arm_return_addr(), arm_setup_incoming_varargs(), assemble_end_function(), assemble_start_function(), assign_filter_values(), assign_parm_adjust_stack_rtl(), assign_stack_local(), assign_stack_local_1(), attr_length_call(), attr_length_indirect_call(), attr_length_millicode_call(), begin_global_stmt_expr(), begin_parsing_inclass_inline(), begin_stmt_expr(), bfin_hardware_loop(), bfin_reorg(), block_alloc(), build_call(), build_cxx_call(), build_duplicate_type(), build_over_call(), build_post_landing_pads(), build_throw(), c_expand_body(), calculate_global_regs_live(), can_throw_external(), can_throw_external_1(), can_throw_internal(), can_throw_internal_1(), cgraph_build_static_cdtor(), check_all_va_list_escapes(), check_block_change(), check_function_return_warnings(), choose_function_section(), collect_eh_region_array(), compute_avail(), compute_frame_size(), compute_function_frequency(), compute_vrsave_mask(), connect_post_landing_pads(), constant_val_insert(), construct_exit_block(), convert_from_eh_region_ranges(), convert_from_eh_region_ranges_1(), convert_to_eh_region_ranges(), copy_body(), copy_cfg_body(), copy_rtx_and_substitute(), create_omp_child_function(), create_stack_guard(), cris_delay_slots_for_epilogue(), cris_expand_prologue(), cris_expand_return(), cris_got_symbol(), cris_gotless_symbol(), cris_initial_elimination_offset(), cris_return_addr_rtx(), cris_return_address_on_stack(), cris_return_address_on_stack_for_return(), cris_setup_incoming_varargs(), cris_target_asm_function_epilogue(), cris_target_asm_function_prologue(), current_function_has_exception_handlers(), current_function_name(), current_nesting_level(), current_scope_stmt_stack(), current_stmt_tree(), d30v_expand_epilogue(), declare_inline_vars(), default_section_type_flags(), do_tablejump(), dump_function_to_file(), duplicate_eh_region_1(), duplicate_eh_regions(), duplicate_eh_regions_1(), dw2_build_landing_pads(), dw2_output_call_site_table(), dw2_size_of_call_site_table(), embedded_pic_fnaddr_reg(), emit_initial_value_sets(), emit_library_call_value_1(), emit_move_insn_1(), establish_preds(), execute_cse_reciprocals(), execute_fixup_cfg(), execute_one_pass(), execute_optimize_stdarg(), execute_warn_function_noreturn(), execute_warn_function_return(), expand_anon_union_decl(), expand_builtin_apply(), expand_builtin_apply_args_1(), expand_builtin_eh_return(), expand_builtin_setjmp_receiver(), expand_call(), expand_call_inline(), expand_computed_goto(), expand_decl_cleanup(), expand_dummy_function_end(), expand_eh_region_end(), expand_eh_region_end_cleanup(), expand_eh_region_start(), expand_eh_return(), expand_end_all_catch(), expand_end_catch(), expand_expr(), expand_expr_real(), expand_expr_real_1(), expand_fixup(), expand_function_start(), expand_inline_function(), expand_nl_goto_receiver(), expand_omp_parallel(), expand_resx_expr(), expand_start_all_catch(), expand_start_catch(), expand_used_vars(), final(), find_exception_handler_labels(), finish_eh_generation(), finish_function(), finish_global_stmt_expr(), finish_stmt_expr(), finish_stmt_tree(), flow_loops_find(), fold_builtin_constant_p(), for_each_eh_label(), for_each_eh_region(), force_const_mem(), force_label_rtx(), foreach_reachable_handler(), free_block_changes(), frv_dynamic_chain_address(), frv_emit_movsi(), frv_expand_builtin_va_start(), frv_expand_fdpic_call(), frv_expand_load_builtin(), frv_expand_prologue(), frv_expand_store_builtin(), frv_frame_pointer_required(), frv_init_cumulative_args(), frv_reorg(), frv_return_addr_rtx(), frv_stack_info(), function_arg(), function_section(), gen_eh_epilogue(), gen_eh_region(), gen_reg_rtx(), gen_rtx_REG(), genrtl_start_function(), get_arg_pointer_save_area(), get_decl_align_unit(), get_exception_filter(), get_exception_pointer(), get_frame_size(), get_hard_reg_initial_val(), get_pool_constant(), get_pool_constant_mark(), get_pool_mode(), get_pool_offset(), get_pool_size(), get_some_local_dynamic_name(), get_some_local_dynamic_name_1(), gimple_add_tmp_var(), gimplify_function_tree(), GTY(), h8300_emit_stack_adjustment(), handle_pragma_diagnostic(), has_hard_reg_initial_val(), ia64_compute_frame_size(), ia64_expand_epilogue(), ia64_expand_prologue(), ia64_output_function_profiler(), ia64_setup_incoming_varargs(), init_eh_for_function(), init_emit(), init_expr(), init_flow(), init_parameter_lattice_values(), init_reassoc(), init_stmt_for_function(), initialize_cold_section_name(), initialize_inlined_parameters(), insn_scope(), instantiate_decl(), ipa_passes(), ipa_pta_execute(), iq2000_can_use_return_insn(), iq2000_debugger_offset(), iq2000_expand_eh_return(), iq2000_expand_epilogue(), iq2000_initial_elimination_offset(), ix86_compute_frame_layout(), ix86_expand_epilogue(), ix86_expand_prologue(), ix86_frame_pointer_required(), ix86_function_ok_for_sibcall(), ix86_internal_arg_pointer(), ix86_pad_returns(), ix86_save_reg(), ix86_setup_frame_addresses(), ix86_setup_incoming_varargs(), ix86_va_start(), legitimize_pic_address(), locate_and_pad_parm(), lookup_stmt_eh_region(), lower_function_body(), m16_usym5_4(), m16_usym8_4(), m32c_eh_return_stackadj_rtx(), m32c_emit_eh_epilogue(), m32c_emit_epilogue(), m32c_emit_prologue(), m32c_epilogue_uses(), m32c_function_needs_enter(), m32c_leaf_function_p(), m32c_pushm_popm(), machine_dependent_reorg(), make_edges(), mark_constant(), mark_used(), maybe_duplicate_computed_goto_succ(), maybe_output_constant_def_contents(), maybe_push_to_top_level(), maybe_remove_eh_handler(), mem_min_alignment(), mips16_gp_pseudo_reg(), mips_adjust_insn_length(), mips_avoid_hazard(), mips_avoid_hazards(), mips_can_use_return_insn(), mips_current_loadgp_style(), mips_debugger_offset(), mips_emit_loadgp(), mips_expand_epilogue(), mips_expand_prologue(), mips_for_each_saved_reg(), mips_function_has_gp_insn(), mips_initial_elimination_offset(), mips_output_cplocal(), mips_output_function_epilogue(), mips_output_function_prologue(), mips_output_mi_thunk(), mips_restore_gp(), mips_save_reg_p(), mips_set_return_address(), mips_setup_incoming_varargs(), mips_va_start(), mmix_print_operand(), mmix_reorg(), mmix_target_asm_function_end_prologue(), mmix_target_asm_function_prologue(), move_block_to_fn(), move_sese_region_to_fn(), mt_add_loop(), mt_emit_eh_epilogue(), mt_epilogue_uses(), mt_expand_epilogue(), mt_expand_prologue(), mt_init_cumulative_args(), mt_machine_reorg(), need_to_save(), new_omp_context(), nonnull_arg_p(), note_current_region_may_contain_throw(), note_eh_region_may_contain_throw(), open_dump_file(), output_constant_pool(), output_func_start_profiler(), output_function_exception_table(), output_function_profiler(), output_stack_adjust(), pa_asm_output_mi_thunk(), pa_output_function_epilogue(), pop_cfun(), pop_function_context_from(), poplevel(), prepare_function_start(), preserve_subexpressions_p(), process_epilogue(), process_for_unwind_directive(), process_next_inline(), profile_function(), push_function_context_to(), push_to_top_level(), pushdecl(), pushlevel(), reachable_handlers(), reachable_next_level(), record_block_change(), record_vars(), record_vars_into(), reemit_insn_block_notes(), reload(), remap_decls(), remove_eh_handler(), remove_exception_handler_label(), remove_fixup_regions(), remove_stmt_from_eh_region(), remove_unreachable_regions(), remove_unused_locals(), remove_useless_vars(), reset_block_changes(), resolve_fixup_regions(), rest_of_clean_state(), rest_of_compilation(), rest_of_handle_jump(), rs6000_emit_prologue(), rs6000_get_some_local_dynamic_name(), rs6000_get_some_local_dynamic_name_1(), rs6000_ra_ever_killed(), rs6000_return_addr(), rs6000_stack_info(), rs6000_va_start(), s390_can_eliminate(), s390_chunkify_start(), s390_decompose_address(), s390_emit_prologue(), s390_hard_regno_rename_ok(), s390_init_frame_layout(), s390_mainpool_finish(), s390_register_info(), s390_regs_ever_clobbered(), s390_reorg(), s390_set_has_landing_pad_p(), s390_split_branches(), s390_update_frame_layout(), s390_va_start(), save_for_inline(), save_restore_insns(), scope_to_insns_finalize(), scope_to_insns_initialize(), set_bb_for_stmt(), set_block(), set_file_and_line_for_stmt(), set_nothrow_function_flags(), setup_incoming_promotions(), setup_incoming_varargs(), setup_initial_hard_reg_value_integration(), sh5_schedule_saves(), sh_output_mi_thunk(), simple_memory_operand(), sjlj_assign_call_site_values(), sjlj_build_landing_pads(), sjlj_emit_dispatch_table(), sjlj_emit_function_enter(), sjlj_emit_function_exit(), sjlj_emit_function_exit_after(), sjlj_find_directly_reachable_regions(), sjlj_mark_call_sites(), sjlj_output_call_site_table(), sjlj_size_of_call_site_table(), som_output_text_section_asm_op(), som_text_section_asm_op(), stack_protect_epilogue(), stack_protect_prologue(), start_function(), start_preparsed_function(), stmt_loop_nest_empty(), store_parm_decls(), switch_to_section(), thumb_call_via_reg(), thumb_expand_prologue(), thumb_far_jump_used_p(), thumb_find_work_register(), thumb_force_lr_save(), thumb_output_function_prologue(), thumb_unexpanded_epilogue(), tree_expand_cfg(), tree_function_versioning(), tree_rest_of_compilation(), tsubst_default_argument(), unlikely_text_section(), unlikely_text_section_p(), unroll_loop(), unshare_all_rtl_again(), update_nonlocal_goto_save_area(), update_parameter_components(), update_total_code_bytes(), use_return_insn(), use_thunk(), used_types_insert(), va_list_counter_bump(), va_list_counter_op(), va_list_ptr_write(), variable_size(), VEC(), verify_eh_tree(), warn_uninit(), xstormy16_interrupt_function_p(), xtensa_copy_incoming_a7(), xtensa_expand_prologue(), xtensa_frame_pointer_required(), and xtensa_setup_frame_addresses().
Definition at line 113 of file function.c.
Referenced by arm_compute_save_reg0_reg12_mask(), bfin_expand_prologue(), bfin_frame_pointer_required(), compute_frame_size(), crx_compute_save_regs(), do_link(), do_unlink(), expand_interrupt_handler_epilogue(), expand_interrupt_handler_prologue(), find_gr_spill(), frv_frame_pointer_required(), ia64_compute_frame_size(), ia64_expand_epilogue(), ia64_initial_elimination_offset(), ix86_compute_frame_layout(), ix86_frame_pointer_required(), ix86_select_alt_pic_regnum(), m32r_hard_regno_rename_ok(), m68k_output_function_prologue(), m68k_save_reg(), mda_compute_frame_size(), mips_expand_prologue(), mips_global_pointer(), n_pregs_to_save(), n_regs_saved_by_prologue(), prepare_function_start(), regrename_optimize(), rest_of_compilation(), rest_of_handle_local_alloc(), rs6000_stack_info(), s390_emit_prologue(), s390_frame_info(), s390_init_frame_layout(), s390_preferred_reload_class(), s390_register_info(), s390_regs_ever_clobbered(), sh_allocate_initial_value(), sh_media_register_for_return(), and th_function_prologue().
Definition at line 118 of file function.c.
Referenced by arm_compute_func_type(), prepare_function_start(), rest_of_compilation(), and set_nothrow_function_flags().
Definition at line 123 of file function.c.
Referenced by df_record_exit_block_uses(), frv_expand_epilogue(), frv_frame_pointer_required(), init_resource_info(), ix86_compute_frame_layout(), ix86_expand_epilogue(), mark_regs_live_at_end(), notice_stack_pointer_modification(), notice_stack_pointer_modification_1(), and prepare_function_start().
Definition at line 128 of file function.c.
Referenced by eligible_for_epilogue_delay(), eligible_for_sibcall_delay(), final_start_function(), output_sibcall(), prepare_function_start(), rest_of_compilation(), rest_of_handle_check_leaf_regs(), sh_output_mi_thunk(), sparc_asm_function_prologue(), sparc_output_function_epilogue(), sparc_output_function_prologue(), and sparc_output_mi_thunk().
int dynamic_offset [static] |
int funcdef_no [static] |
Definition at line 140 of file function.c.
Referenced by allocate_struct_function(), and prepare_function_start().
int in_arg_offset [static] |
Definition at line 2868 of file function.c.
Definition at line 147 of file function.c.
Referenced by expand_expr(), and expand_inline_function().
int next_block_index = 2 [static] |
Definition at line 6187 of file function.c.
int out_arg_offset [static] |
Definition at line 2871 of file function.c.
rtx purge_addressof_replacements [static] |
Definition at line 3033 of file function.c.
rtx purge_bitfield_addressof_replacements [static] |
Definition at line 3025 of file function.c.
Definition at line 137 of file function.c.
Referenced by expand_builtin_init_trampoline(), and file_end_indicate_exec_stack().
int var_offset [static] |
Definition at line 2869 of file function.c.
Referenced by ffeequiv_layout_cblock(), WN2C_Function_Call_Lhs(), WN2C_Function_Return_Value(), WN2F_Function_Call_Lhs(), and WN2F_return().
Definition at line 134 of file function.c.
Referenced by assign_stack_local_1(), assign_stack_temp_for_type(), emit_library_call_value_1(), instantiate_virtual_regs(), pop_function_context_from(), and prepare_function_start().
1.5.6