#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.
Definition at line 93 of file function.c.
| #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) |
Definition at line 5839 of file function.c.
References round_trampoline_addr(), and TRAMPOLINE_ADJUST_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.
Definition at line 6143 of file function.c.
References all_blocks(), BLOCK_CHAIN, BLOCK_SUBBLOCKS, and TREE_ASM_WRITTEN.
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.
| rtx assign_stack_local | ( | enum machine_mode | mode, | |
| HOST_WIDE_INT | size, | |||
| int | align | |||
| ) |
| 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.
| rtx assign_stack_temp | ( | enum machine_mode | mode, | |
| HOST_WIDE_INT | size, | |||
| int | keep | |||
| ) |
| 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.
References abort, AGGREGATE_TYPE_P, align, alignment, assign_stack_local(), BIGGEST_ALIGNMENT, BITS_PER_UNIT, CEIL_ROUND, frame_offset, gen_rtx_EXPR_LIST, gen_rtx_MEM(), get_alias_set(), GET_MODE, GET_MODE_ALIGNMENT, ggc_alloc, HOST_WIDE_INT, LOCAL_ALIGNMENT, MEM_SET_IN_STRUCT_P, MEM_VOLATILE_P, objects_must_conflict_p(), plus_constant, RTX_UNCHANGING_P, seq_rtl_expr, set_mem_alias_set(), set_mem_align(), stack_slot_list, target_temp_slot_level, temp_slot_level, temp_slots, TYPE_READONLY, TYPE_VOLATILE, var_temp_slot_level, and XEXP.
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.
Definition at line 6809 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.
Definition at line 921 of file function.c.
References flag_expensive_optimizations, flag_strict_aliasing, GET_MODE, optimize, q, and 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.
| static int contains | ( | rtx | insn, | |
| varray_type | vec | |||
| ) | [static] |
Definition at line 7245 of file function.c.
References count, GET_CODE, i, INSN_UID, PATTERN, VARRAY_INT, VARRAY_SIZE, XVECEXP, and XVECLEN.
Definition at line 6222 of file function.c.
References BLOCK_SUBBLOCKS, BLOCK_VARS, debug_find_var_in_block_tree(), NULL_TREE, ret, and TREE_CHAIN.
| 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 6775 of file function.c.
References current_function_return_rtx, FIRST_PSEUDO_REGISTER, GET_CODE, i, REG, REGNO, x, XEXP, XVECEXP, and XVECLEN.
Definition at line 6757 of file function.c.
References end_sequence(), free_after_compilation(), free_after_parsing(), and in_sequence_p().
Definition at line 6541 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.
Definition at line 6461 of file function.c.
References align, allocate_dynamic_stack_space(), AND, BIGGEST_ALIGNMENT, BITS_PER_UNIT, const0_rtx, emit_insn(), emit_insn_before(), emit_library_call(), emit_move_insn(), end_sequence(), expand_simple_binop(), FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN, force_reg(), GEN_INT, gen_rtx_SYMBOL_REF, get_insns(), get_last_insn(), LCT_NORMAL, NAME__MAIN, NOTE_INSN_FUNCTION_BEG, NOTE_LINE_NUMBER, NOTE_P, NULL_RTX, OPTAB_WIDEN, PLUS, Pmode, PREFERRED_STACK_BOUNDARY, PREV_INSN, stack_pointer_rtx, start_sequence(), and tmp.
Definition at line 6512 of file function.c.
References const0_rtx, emit_queue(), expand_expr(), NULL, TREE_CHAIN, TREE_CODE, TREE_VALUE, and walk_tree_without_duplicates().
Definition at line 987 of file function.c.
References find_temp_slot_from_address(), GET_CODE, INTVAL, next, PLUS, REG, temp_slots, virtual_stack_vars_rtx, and XEXP.
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, fix_lexical_addr(), 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.
| 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.
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, fixup_stack_1(), 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.
| 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.
| 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(), fixup_var_refs_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.
| 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.
| 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(), fixup_var_refs_insns(), GET_CODE, get_insns(), i, INSN_P, next, NEXT_INSN, PATTERN, push_to_sequence(), and XEXP.
| 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.
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 1213 of file function.c.
References combine_temp_slots(), temp_slot_level, and temp_slots.
Definition at line 1228 of file function.c.
References combine_temp_slots(), NULL_TREE, and temp_slots.
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.
Definition at line 7180 of file function.c.
References assign_stack_local_1(), emit_insn_after(), emit_move_insn(), end_sequence(), get_insns(), GET_MODE_SIZE, Pmode, pop_topmost_sequence(), push_topmost_sequence(), ret, start_sequence(), validize_mem(), and virtual_incoming_args_rtx.
| 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 | ( | ) |
| HOST_WIDE_INT get_frame_size | ( | void | ) |
Definition at line 497 of file function.c.
| 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().
| 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, identify_blocks_1(), insn, NEXT_INSN, NOTE_BLOCK, NOTE_INSN_BLOCK_BEG, NOTE_INSN_BLOCK_END, NOTE_LINE_NUMBER, PATTERN, and XEXP.
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.
Definition at line 1332 of file function.c.
References target_temp_slot_level, temp_slot_level, temp_slots, and var_temp_slot_level.
Definition at line 3311 of file function.c.
References htab_hash_pointer, and insns_for_mem_entry::key.
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.
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.
Definition at line 3663 of file function.c.
References BLOCK_SUBBLOCKS, BLOCK_VARS, DECL_RTL, DECL_RTL_SET_P, instantiate_decl(), instantiate_decls_1(), int_size_in_bytes(), TREE_CHAIN, and TREE_TYPE.
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.
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.
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_1(), 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.
Definition at line 3781 of file function.c.
References abort, asm_noperands(), delete_insn(), error_for_asm(), and PATTERN.
| 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.
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.
| void mark_all_temps_used | ( | ) |
Definition at line 1086 of file function.c.
References CONSTANT_P, find_temp_slot_from_address(), GET_CODE, MEM, and XEXP.
| int max_parm_reg_num | ( | ) |
Definition at line 6192 of file function.c.
References BLOCK_NUMBER, DECL_INITIAL, free(), get_block_vector(), i, SDB_DEBUG, write_symbols, and XCOFF_DEBUG.
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.
| 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.
| 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.
| 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.
References current_function_decl, and pop_function_context_from().
| 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.
Definition at line 1316 of file function.c.
References combine_temp_slots(), temp_slot_level, and temp_slots.
| 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.
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.
Definition at line 1114 of file function.c.
References CONSTANT_P, find_temp_slot_from_address(), GET_CODE, MEM, q, REG, REG_POINTER, temp_slot_level, temp_slots, and XEXP.
| int prologue_epilogue_contains | ( | rtx | insn | ) |
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.
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, purge_addressof_1(), 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.
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().
Definition at line 364 of file function.c.
References current_function_decl, and push_function_context_to().
Definition at line 334 of file function.c.
References current_function_decl, find_function_data(), function, and init_dummy_function_start().
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.
| 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.
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.
| static void record_insns | ( | rtx | insns, | |
| varray_type * | vecp | |||
| ) | [static] |
Definition at line 7215 of file function.c.
References i, INSN_UID, len, NEXT_INSN, NULL_RTX, tmp, VARRAY_GROW, VARRAY_INT, and VARRAY_SIZE.
Definition at line 5960 of file function.c.
References BLOCK_CHAIN, block_stack, BLOCK_SUBBLOCKS, blocks_nreverse(), current_function_decl, DECL_INITIAL, get_insns(), NULL_TREE, reorder_blocks_0(), reorder_blocks_1(), reorder_fix_fragments(), and VARRAY_TREE_INIT.
Definition at line 5988 of file function.c.
References BLOCK_CHAIN, BLOCK_SUBBLOCKS, reorder_blocks_0(), and TREE_ASM_WRITTEN.
| 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, reorder_blocks_1(), TREE_ASM_WRITTEN, VARRAY_POP, VARRAY_PUSH_TREE, VARRAY_TOP_TREE, and XEXP.
Definition at line 6069 of file function.c.
References BLOCK_CHAIN, BLOCK_FRAGMENT_CHAIN, BLOCK_FRAGMENT_ORIGIN, BLOCK_SUBBLOCKS, NULL_TREE, reorder_fix_fragments(), and TREE_ASM_WRITTEN.
Definition at line 7916 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.
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.
| 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.
Definition at line 5558 of file function.c.
References current_function_decl, DECL_ARGUMENTS, DECL_RTL, GET_CODE, REG, REGNO, regno_clobbered_at_setjmp(), and TREE_CHAIN.
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, setjmp_protect(), sub, TREE_CHAIN, TREE_CODE, and XEXP.
| 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 7622 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.
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.
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, uninitialized_vars_warning(), and warn_uninitialized.
Definition at line 1029 of file function.c.
References find_temp_slot_from_address(), gen_rtx_EXPR_LIST, GET_CODE, NULL_RTX, PLUS, REG, rtx_equal_p(), update_temp_slot_address(), and XEXP.
Definition at line 6834 of file function.c.
References diddle_return_value(), do_use_return_reg(), and NULL.
| 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, walk_fixup_memory_subreg(), XEXP, XVECEXP, and XVECLEN.
int cfa_offset [static] |
Definition at line 2872 of file function.c.
Definition at line 150 of file function.c.
Definition at line 113 of file function.c.
Definition at line 118 of file function.c.
Definition at line 123 of file function.c.
Definition at line 128 of file function.c.
int dynamic_offset [static] |
Definition at line 2870 of file function.c.
int funcdef_no [static] |
Definition at line 140 of file function.c.
int in_arg_offset [static] |
Definition at line 2868 of file function.c.
Definition at line 147 of file function.c.
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.
int var_offset [static] |
Definition at line 2869 of file function.c.
Definition at line 134 of file function.c.
1.5.6