#include "config.h"#include "system.h"#include "coretypes.h"#include "tm.h"#include "machmode.h"#include "real.h"#include "rtl.h"#include "tree.h"#include "flags.h"#include "regs.h"#include "hard-reg-set.h"#include "except.h"#include "function.h"#include "insn-config.h"#include "insn-attr.h"#include "expr.h"#include "optabs.h"#include "libfuncs.h"#include "recog.h"#include "reload.h"#include "output.h"#include "typeclass.h"#include "toplev.h"#include "ggc.h"#include "langhooks.h"#include "intl.h"#include "tm_p.h"#include "tree-iterator.h"#include "tree-pass.h"#include "tree-flow.h"#include "target.h"#include "timevar.h"#include "gt-expr.h"

Go to the source code of this file.
| #define CLEAR_BY_PIECES_P | ( | SIZE, | |||
| ALIGN | ) |
Value:
(move_by_pieces_ninsns (SIZE, ALIGN, STORE_MAX_PIECES + 1) \ < (unsigned int) CLEAR_RATIO)
| #define MOVE_BY_PIECES_P | ( | SIZE, | |||
| ALIGN | ) |
Value:
(move_by_pieces_ninsns (SIZE, ALIGN, MOVE_MAX_PIECES + 1) \ < (unsigned int) MOVE_RATIO)
| #define REDUCE_BIT_FIELD | ( | expr | ) |
Value:
(reduce_bit_field && !ignore \
? reduce_to_bit_field_precision ((expr), \
target, \
type) \
: (expr))
Referenced by expand_expr_real_1().
| #define SLOW_UNALIGNED_ACCESS | ( | MODE, | |||
| ALIGN | ) | STRICT_ALIGNMENT |
| #define STORE_BY_PIECES_P | ( | SIZE, | |||
| ALIGN | ) |
Value:
(move_by_pieces_ninsns (SIZE, ALIGN, STORE_MAX_PIECES + 1) \ < (unsigned int) MOVE_RATIO)
| #define STORE_MAX_PIECES MIN (MOVE_MAX_PIECES, 2 * sizeof (HOST_WIDE_INT)) |
Definition at line 5497 of file expr.c.
Referenced by dump_generic_node(), extract_array_ref(), fold_binary(), force_move_till(), get_inner_reference(), get_ref_base_and_extent(), gimplify_compound_lval(), idx_analyze_ref(), idx_find_step(), idx_record_use(), may_move_till(), set_mem_attributes_minus_bitpos(), strip_offset(), strip_offset_1(), and try_move_mult_to_index().
Definition at line 5524 of file expr.c.
Referenced by dump_generic_node(), expand_expr_real_1(), fold_read_from_constant_string(), force_move_till(), get_inner_reference(), get_ref_base_and_extent(), gimplify_compound_lval(), idx_find_step(), idx_record_use(), in_array_bounds_p(), may_move_till(), maybe_fold_offset_to_array_ref(), range_in_array_bounds_p(), and set_mem_attributes_minus_bitpos().
Definition at line 5545 of file expr.c.
Referenced by in_array_bounds_p(), and range_in_array_bounds_p().
Definition at line 1192 of file expr.c.
References gcc_target::calls::arg_partial_bytes, gcc_target::calls, emit_block_move_libcall_fn(), FUNCTION_ARG, FUNCTION_ARG_ADVANCE, INIT_CUMULATIVE_ARGS, mode, NULL, NULL_RTX, NULL_TREE, PUSH_ARGS, REG_P, REG_PARM_STACK_SPACE, targetm, tmp, TREE_CHAIN, TREE_TYPE, TREE_VALUE, TYPE_ARG_TYPES, TYPE_MODE, void, and void_list_node.
| int can_move_by_pieces | ( | unsigned HOST_WIDE_INT | len, | |
| unsigned int align | ATTRIBUTE_UNUSED | |||
| ) |
| int can_store_by_pieces | ( | unsigned HOST_WIDE_INT | len, | |
| rtx(*)(void *, HOST_WIDE_INT, enum machine_mode) | constfun, | |||
| void * | constfundata, | |||
| unsigned int | align | |||
| ) |
| unsigned int case_values_threshold | ( | void | ) |
| void categorize_ctor_elements | ( | tree | ctor, | |
| HOST_WIDE_INT * | p_nz_elts, | |||
| HOST_WIDE_INT * | p_nc_elts, | |||
| HOST_WIDE_INT * | p_elt_count, | |||
| bool * | p_must_clear | |||
| ) |
Definition at line 4415 of file expr.c.
References categorize_ctor_elements_1().
Referenced by all_zeros_p(), gimplify_init_constructor(), and mostly_zeros_p().
| static void categorize_ctor_elements_1 | ( | tree | ctor, | |
| HOST_WIDE_INT * | p_nz_elts, | |||
| HOST_WIDE_INT * | p_nc_elts, | |||
| HOST_WIDE_INT * | p_elt_count, | |||
| bool * | p_must_clear | |||
| ) | [static] |
Definition at line 4293 of file expr.c.
References CONSTRUCTOR_ELTS, count_type_elements(), gcc_assert, host_integerp(), HOST_WIDE_INT, initializer_constant_valid_p(), initializer_zerop(), mult, NULL, simple_cst_equal(), TREE_CHAIN, TREE_CODE, TREE_IMAGPART, tree_low_cst(), TREE_OPERAND, TREE_PURPOSE, TREE_REALPART, TREE_STRING_LENGTH, TREE_TYPE, TREE_VALUE, TREE_VECTOR_CST_ELTS, and TYPE_SIZE.
Referenced by categorize_ctor_elements(), and categorize_ctor_elements_1().
Definition at line 2244 of file expr.c.
References clear_by_pieces_1(), store_by_pieces::constfun, store_by_pieces::constfundata, store_by_pieces::len, NULL, store_by_pieces_1(), and store_by_pieces::to.
| static rtx clear_by_pieces_1 | ( | void *data | ATTRIBUTE_UNUSED, | |
| HOST_WIDE_INT offset | ATTRIBUTE_UNUSED, | |||
| enum machine_mode mode | ATTRIBUTE_UNUSED | |||
| ) | [static] |
| rtx clear_storage | ( | rtx | object, | |
| rtx | size, | |||
| enum block_op_methods | method | |||
| ) |
| static tree clear_storage_libcall_fn | ( | int | for_call | ) | [static] |
Definition at line 2590 of file expr.c.
References assemble_external(), init_block_clear_fn(), make_decl_rtl(), and NULL.
Definition at line 2462 of file expr.c.
References BITS_PER_UNIT, BITS_PER_WORD, CODE_FOR_nothing, convert_to_mode(), copy_to_mode_reg(), delete_insns_since(), emit_insn(), GEN_FCN, GEN_INT, GET_CLASS_NARROWEST_MODE, GET_CODE, get_last_insn(), GET_MODE_BITSIZE, GET_MODE_MASK, GET_MODE_WIDER_MODE, HOST_WIDE_INT, int, INTVAL, last, mode, and MODE_INT.
Referenced by clear_storage().
Definition at line 2518 of file expr.c.
References arg_list, build1, build3, build_pointer_type(), CALL_EXPR_TAILCALL, clear_storage_libcall_fn(), convert_to_mode(), copy_to_mode_reg(), expand_expr(), integer_zero_node, make_tree(), NULL_RTX, NULL_TREE, Pmode, ptr_type_node, sizetype, tree_cons, TREE_TYPE, TYPE_MODE, and XEXP.
Definition at line 5562 of file expr.c.
Referenced by adjust_offset_for_component_ref(), dump_generic_node(), get_inner_reference(), get_ref_base_and_extent(), gimplify_compound_lval(), idx_find_step(), strip_offset_1(), and widen_memory_access().
Definition at line 3148 of file expr.c.
References can_extend_p(), CODE_FOR_nothing, CONST_DOUBLE_FROM_REAL_VALUE, emit_unop_insn(), exact_real_truncate(), force_const_mem(), GET_CLASS_NARROWEST_MODE, get_last_insn(), GET_MODE, GET_MODE_CLASS, GET_MODE_WIDER_MODE, last_insn, LEGITIMATE_CONSTANT_P, NULL_RTX, r, REAL_VALUE_FROM_CONST_DOUBLE, REAL_VALUE_TYPE, REG_EQUAL, REG_P, set_unique_reg_note(), UNKNOWN, and validize_mem().
Definition at line 8939 of file expr.c.
References CONST0_RTX, CONST_DOUBLE_FROM_REAL_VALUE, gen_rtx_CONST_VECTOR(), GET_MODE_INNER, GET_MODE_NUNITS, i, immed_double_const(), initializer_zerop(), rtvec_alloc(), RTVEC_ELT, TREE_CHAIN, TREE_CODE, TREE_INT_CST_HIGH, TREE_INT_CST_LOW, TREE_REAL_CST, TREE_TYPE, TREE_VALUE, TREE_VECTOR_CST_ELTS, TYPE_MODE, and units.
| rtx convert_modes | ( | enum machine_mode | mode, | |
| enum machine_mode | oldmode, | |||
| rtx | x, | |||
| int | unsignedp | |||
| ) |
Definition at line 708 of file expr.c.
References convert_move(), gcc_assert, gen_int_mode(), gen_lowpart, gen_reg_rtx(), GET_CODE, GET_MODE, GET_MODE_BITSIZE, GET_MODE_CLASS, GET_MODE_SIZE, HARD_REGISTER_P, HARD_REGNO_MODE_OK, HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, immed_double_const(), INTVAL, MEM_P, MEM_VOLATILE_P, MODE_INT, REG_P, REGNO, simplify_gen_subreg(), SUBREG_PROMOTED_UNSIGNED_P, SUBREG_PROMOTED_VAR_P, SUBREG_REG, TRULY_NOOP_TRUNCATION, val, and VECTOR_MODE_P.
Definition at line 325 of file expr.c.
References BITS_PER_WORD, build_int_cst(), can_extend_p(), CEIL, CODE_FOR_nothing, CODE_FOR_slt, CONCAT, const0_rtx, CONSTANT_P, convert_move(), convert_to_mode(), copy_rtx(), copy_to_reg(), emit_cmp_insn(), emit_insn(), emit_libcall_block(), emit_library_call_value(), emit_move_insn(), emit_no_conflict_block(), emit_unop_insn(), end_sequence(), expand_shift(), FIRST_PSEUDO_REGISTER, flag_force_mem, force_not_mem(), force_reg(), gcc_assert, gcc_unreachable, gen_lowpart, gen_reg_rtx(), gen_rtx_CLOBBER, gen_rtx_FLOAT_EXTEND, gen_rtx_FLOAT_TRUNCATE, gen_rtx_fmt_e(), gen_slt(), GET_CODE, get_insns(), GET_MODE, GET_MODE_BITSIZE, GET_MODE_CLASS, GET_MODE_PRECISION, GET_MODE_SIZE, GET_MODE_WIDER_MODE, HARD_REGNO_MODE_OK, HAVE_slt, i, index(), insns, LCT_CONST, MEM_P, MEM_VOLATILE_P, mode, mode_dependent_address_p(), MODE_FLOAT, MODE_INT, MODE_PARTIAL_INT, NE, NULL_RTX, NULL_TREE, operand_subword(), optimize, reg_overlap_mentioned_p(), REG_P, REGNO, sext_optab, SIGN_EXTEND, simplify_gen_subreg(), size_int, smallest_mode_for_size(), start_sequence(), STORE_FLAG_VALUE, SUBREG_PROMOTED_UNSIGNED_P, SUBREG_PROMOTED_VAR_P, SUBREG_REG, tab, tmp, TRULY_NOOP_TRUNCATION, trunc_optab, UNITS_PER_WORD, UNKNOWN, VECTOR_MODE_P, word_mode, WORDS_BIG_ENDIAN, and XEXP.
| rtx convert_to_mode | ( | enum machine_mode | mode, | |
| rtx | x, | |||
| int | unsignedp | |||
| ) |
Definition at line 1968 of file expr.c.
References assign_temp(), bitpos(), BITS_PER_UNIT, BITS_PER_WORD, build_qualified_type(), bytes, BYTES_BIG_ENDIAN, gcc_target::calls, convert_to_mode(), dst, extract_bit_field(), GET_MODE, GET_MODE_SIZE, HOST_WIDE_INT, int_size_in_bytes(), MIN, NULL, NULL_RTX, operand_subword(), operand_subword_force(), preserve_temp_slots(), gcc_target::calls::return_in_msb, src, store_bit_field(), targetm, TYPE_ALIGN, TYPE_QUAL_CONST, TYPE_QUALS, TYPE_UNSIGNED, UNITS_PER_WORD, and word_mode.
| HOST_WIDE_INT count_type_elements | ( | tree | type | ) |
Definition at line 4432 of file expr.c.
References array_type_nelts(), COMPLEX_TYPE, count_type_elements(), f, gcc_unreachable, HOST_BITS_PER_WIDE_INT, host_integerp(), HOST_WIDE_INT, int_size_in_bytes(), max, n, TREE_CHAIN, TREE_CODE, tree_low_cst(), TREE_TYPE, TYPE_FIELDS, TYPE_VECTOR_SUBPARTS, and UNITS_PER_WORD.
Referenced by categorize_ctor_elements_1(), count_type_elements(), decide_block_copy(), gimplify_init_constructor(), and mostly_zeros_p().
| static rtx do_store_flag | ( | tree | exp, | |
| rtx | target, | |||
| enum machine_mode | mode, | |||
| int | only_cheap | |||
| ) | [static] |
Definition at line 8486 of file expr.c.
References abs_optab, bcc_gen_fctn, BRANCH_COST, can_compare_p(), ccp_store_flag, CODE_FOR_nothing, compare_from_rtx(), const0_rtx, const1_rtx, emit_jump_insn(), emit_label(), emit_move_insn(), emit_store_flag(), EQ, error_mark_node, expand_binop(), expand_expr(), EXPAND_NORMAL, expand_operands(), ffs_optab, fold_single_bit_test(), gcc_assert, gcc_unreachable, GE, gen_label_rtx(), gen_reg_rtx(), GET_CODE, GET_MODE, get_subtarget(), GT, int, integer_all_onesp(), integer_onep(), integer_pow2p(), integer_zero_node, integer_zerop(), LE, LT, NE, NULL_RTX, OPTAB_LIB_WIDEN, reg_mentioned_p(), REG_P, result, setcc_gen_code, STRIP_NOPS, swap_condition(), TREE_CODE, TREE_OPERAND, TREE_TYPE, TYPE_MODE, TYPE_UNSIGNED, and xor_optab.
| static void do_tablejump | ( | rtx | index, | |
| enum machine_mode | mode, | |||
| rtx | range, | |||
| rtx | table_label, | |||
| rtx | default_label | |||
| ) | [static] |
Definition at line 8821 of file expr.c.
References CASE_VECTOR_MODE, CASE_VECTOR_PC_RELATIVE, cfun, convert_move(), convert_to_mode(), copy_to_mode_reg(), emit_barrier(), emit_cmp_and_jump_insns(), emit_jump_insn(), flag_pic, gen_const_mem(), GEN_INT, gen_reg_rtx(), gen_rtx_LABEL_REF, gen_rtx_MULT, gen_rtx_PLUS, gen_tablejump, GET_MODE_SIZE, INTVAL, memory_address_noforce(), NULL_RTX, PIC_CASE_VECTOR_ADDRESS, Pmode, REG_P, and vector.
| rtx emit_block_move | ( | rtx | x, | |
| rtx | y, | |||
| rtx | size, | |||
| enum block_op_methods | method | |||
| ) |
Definition at line 1118 of file expr.c.
References adjust_address, align, block_move_libcall_safe_for_call_parm(), BLOCK_OP_CALL_PARM, BLOCK_OP_NO_LIBCALL, BLOCK_OP_NORMAL, BLOCK_OP_TAILCALL, emit_block_move_via_libcall(), emit_block_move_via_loop(), emit_block_move_via_movmem(), gcc_assert, gcc_unreachable, GET_CODE, INTVAL, MEM_ALIGN, MEM_P, MIN, move_by_pieces(), MOVE_BY_PIECES_P, NO_DEFER_POP, OK_DEFER_POP, set_mem_size(), and shallow_copy_rtx.
| static tree emit_block_move_libcall_fn | ( | int | for_call | ) | [static] |
Definition at line 1387 of file expr.c.
References assemble_external(), init_block_move_fn(), make_decl_rtl(), and NULL.
Definition at line 1306 of file expr.c.
References arg_list, build1, build3, build_pointer_type(), CALL_EXPR_TAILCALL, convert_memory_address(), convert_to_mode(), copy_to_mode_reg(), emit_block_move_libcall_fn(), expand_expr(), make_tree(), NULL_RTX, NULL_TREE, Pmode, ptr_mode, ptr_type_node, sizetype, tree_cons, TREE_TYPE, TYPE_MODE, and XEXP.
| static void emit_block_move_via_loop | ( | rtx | x, | |
| rtx | y, | |||
| rtx | size, | |||
| unsigned int align | ATTRIBUTE_UNUSED | |||
| ) | [static] |
Definition at line 1409 of file expr.c.
References change_address(), const0_rtx, const1_rtx, convert_modes(), do_pending_stack_adjust(), emit_cmp_and_jump_insns(), emit_jump(), emit_label(), emit_move_insn(), expand_simple_binop(), force_operand(), gen_label_rtx(), gen_reg_rtx(), gen_rtx_PLUS, GET_MODE, iter, LT, NULL_RTX, OPTAB_LIB_WIDEN, PLUS, Pmode, tmp, word_mode, and XEXP.
Definition at line 1237 of file expr.c.
References BITS_PER_UNIT, BITS_PER_WORD, CODE_FOR_nothing, convert_to_mode(), copy_to_mode_reg(), delete_insns_since(), emit_insn(), GEN_FCN, GEN_INT, GET_CLASS_NARROWEST_MODE, GET_CODE, get_last_insn(), GET_MODE_BITSIZE, GET_MODE_MASK, GET_MODE_WIDER_MODE, HOST_WIDE_INT, int, INTVAL, last, mode, MODE_INT, and volatile_ok.
Referenced by emit_block_move().
Definition at line 1568 of file expr.c.
References adjust_address, assign_stack_temp(), BITS_PER_UNIT, BLOCK_REG_PADDING, build_int_cst(), BYTES_BIG_ENDIAN, COMPLEX_MODE_P, CONCAT, CONSTANT_P, downward, emit_move_insn(), expand_shift(), extract_bit_field(), gcc_assert, gen_lowpart, gen_reg_rtx(), GET_CODE, GET_MODE, GET_MODE_ALIGNMENT, GET_MODE_SIZE, HOST_WIDE_INT, i, int_mode_for_mode(), INTVAL, mem, MEM_ALIGN, MEM_P, mode, NULL_RTX, NULL_TREE, REG_P, SCALAR_INT_MODE_P, shift, simplify_gen_subreg(), SLOW_UNALIGNED_ACCESS, src, start, upward, VECTOR_MODE_P, XEXP, XVECEXP, and XVECLEN.
Referenced by emit_group_load(), emit_group_load_1(), and emit_group_load_into_temps().
Definition at line 1750 of file expr.c.
Referenced by precompute_register_parameters(), and store_one_arg().
Definition at line 1780 of file expr.c.
References emit_move_insn(), gcc_assert, GET_CODE, i, XEXP, XVECEXP, and XVECLEN.
Definition at line 1821 of file expr.c.
References adjust_address, alloca, assign_stack_temp(), BITS_PER_UNIT, BLOCK_REG_PADDING, build_int_cst(), BYTES_BIG_ENDIAN, CONCAT, CONST0_RTX, dest, downward, dst, emit_group_load(), emit_group_store(), emit_move_insn(), expand_shift(), gcc_assert, gen_lowpart, gen_reg_rtx(), GET_CODE, GET_MODE, GET_MODE_ALIGNMENT, GET_MODE_SIZE, HOST_WIDE_INT, i, int_mode_for_mode(), INTVAL, MEM_ALIGN, MEM_P, mode, NULL_TREE, rtx_equal_p(), SCALAR_INT_MODE_P, shift, SLOW_UNALIGNED_ACCESS, start, store_bit_field(), upward, XEXP, XVECEXP, and XVECLEN.
| static rtx emit_move_ccmode | ( | enum machine_mode | mode, | |
| rtx | x, | |||
| rtx | y | |||
| ) | [static] |
Definition at line 2944 of file expr.c.
References CODE_FOR_nothing, emit_insn(), emit_move_change_mode(), emit_move_via_integer(), gcc_assert, GEN_FCN, mov_optab, NULL, and ret.
Referenced by emit_move_insn_1().
| static rtx emit_move_change_mode | ( | enum machine_mode | new_mode, | |
| enum machine_mode | old_mode, | |||
| rtx | x, | |||
| bool | force | |||
| ) | [static] |
Definition at line 2723 of file expr.c.
References adjust_address_nv, copy_replacements(), MEM_P, reload_in_progress, ret, simplify_gen_subreg(), and simplify_subreg().
Referenced by emit_move_ccmode(), and emit_move_via_integer().
| static rtx emit_move_complex | ( | enum machine_mode | mode, | |
| rtx | x, | |||
| rtx | y | |||
| ) | [static] |
Definition at line 2878 of file expr.c.
References BIGGEST_ALIGNMENT, BLOCK_OP_NO_LIBCALL, CODE_FOR_nothing, CONCAT, CONSTANT_P, emit_block_move(), emit_insn(), emit_move_complex_push(), emit_move_via_integer(), GEN_INT, gen_rtx_CLOBBER, GET_CODE, get_last_insn(), get_mode_alignment(), GET_MODE_CLASS, GET_MODE_INNER, GET_MODE_SIZE, MEM_P, MODE_COMPLEX_FLOAT, mov_optab, push_operand(), read_complex_part(), reg_overlap_mentioned_p(), REG_P, register_operand(), reload_completed, reload_in_progress, ret, STRICT_ALIGNMENT, and write_complex_part().
Referenced by emit_move_insn_1().
| static rtx emit_move_complex_push | ( | enum machine_mode | mode, | |
| rtx | x, | |||
| rtx | y | |||
| ) | [static] |
Definition at line 2835 of file expr.c.
References emit_move_insn(), emit_move_resolve_push(), gcc_unreachable, gen_rtx_MEM(), GET_CODE, GET_MODE_INNER, GET_MODE_SIZE, PUSH_ROUNDING, read_complex_part(), and XEXP.
Referenced by emit_move_complex().
Definition at line 3085 of file expr.c.
References compress_float_constant(), CONSTANT_ADDRESS_P, CONSTANT_P, emit_move_insn_1(), flag_force_addr, force_const_mem(), gcc_assert, GET_MODE, last_insn, LEGITIMATE_CONSTANT_P, MEM_P, memory_address_p(), mode, NULL_RTX, optimize, push_operand(), REG_EQUAL, REG_P, rtx_equal_p(), SCALAR_FLOAT_MODE_P, SET_DEST, SET_SRC, set_unique_reg_note(), single_set, validize_mem(), and XEXP.
Definition at line 3045 of file expr.c.
References CODE_FOR_nothing, COMPLEX_MODE_P, CONSTANT_P, emit_insn(), emit_move_ccmode(), emit_move_complex(), emit_move_multi_word(), emit_move_via_integer(), gcc_assert, GEN_FCN, GET_MODE, GET_MODE_BITSIZE, GET_MODE_CLASS, HOST_BITS_PER_WIDE_INT, mode, MODE_CC, mov_optab, and ret.
| static rtx emit_move_multi_word | ( | enum machine_mode | mode, | |
| rtx | x, | |||
| rtx | y | |||
| ) | [static] |
Definition at line 2972 of file expr.c.
References CONSTANT_P, emit_insn(), emit_move_insn(), emit_move_resolve_push(), end_sequence(), find_replacement(), force_const_mem(), gcc_assert, gen_rtx_CLOBBER, GET_CODE, get_insns(), GET_MODE_SIZE, i, last_insn, MEM_P, operand_subword(), operand_subword_force(), push_operand(), reload_completed, reload_in_progress, replace_equiv_address_nv(), start_sequence(), UNITS_PER_WORD, and XEXP.
Referenced by emit_move_insn_1().
| static rtx emit_move_resolve_push | ( | enum machine_mode | mode, | |
| rtx | x | |||
| ) | [static] |
Definition at line 2790 of file expr.c.
References emit_move_insn(), expand_simple_binop(), gcc_unreachable, GEN_INT, GET_CODE, GET_MODE_SIZE, HOST_WIDE_INT, OPTAB_LIB_WIDEN, PLUS, plus_constant, Pmode, PUSH_ROUNDING, replace_equiv_address(), stack_pointer_rtx, and XEXP.
Referenced by emit_move_complex_push(), and emit_move_multi_word().
| static rtx emit_move_via_integer | ( | enum machine_mode | mode, | |
| rtx | x, | |||
| rtx | y | |||
| ) | [static] |
Definition at line 2762 of file expr.c.
References CODE_FOR_nothing, emit_insn(), emit_move_change_mode(), GEN_FCN, int_mode_for_mode(), mov_optab, and NULL_RTX.
Referenced by emit_move_ccmode(), emit_move_complex(), and emit_move_insn_1().
| void emit_push_insn | ( | rtx | x, | |
| enum machine_mode | mode, | |||
| tree | type, | |||
| rtx | size, | |||
| unsigned int | align, | |||
| int | partial, | |||
| rtx | reg, | |||
| int | extra, | |||
| rtx | args_addr, | |||
| rtx | args_so_far, | |||
| int | reg_parm_stack_space, | |||
| rtx | alignment_pad | |||
| ) |
Definition at line 3378 of file expr.c.
References ACCUMULATE_OUTGOING_ARGS, addr(), adjust_address, anti_adjust_stack(), BIGGEST_ALIGNMENT, BITS_PER_UNIT, BITS_PER_WORD, BLOCK_OP_CALL_PARM, CONSTANT_P, copy_to_reg(), downward, emit_block_move(), emit_group_load(), emit_move_insn(), emit_push_insn(), expand_binop(), FIRST_PSEUDO_REGISTER, force_const_mem(), FUNCTION_ARG_PADDING, gcc_assert, GEN_INT, gen_rtx_MEM(), gen_rtx_PLUS, GET_CODE, GET_MODE, GET_MODE_CLASS, GET_MODE_SIZE, i, INTVAL, LEGITIMATE_CONSTANT_P, MEM_ALIGN, memory_address(), MODE_INT, move_block_to_reg(), move_by_pieces(), MOVE_BY_PIECES_P, none, NULL, NULL_RTX, NULL_TREE, operand_subword_force(), OPTAB_LIB_WIDEN, PARM_BOUNDARY, plus_constant, Pmode, PUSH_ARGS, push_block(), PUSH_ROUNDING, reg_mentioned_p(), REG_P, REGNO, set_mem_align(), skip, SLOW_UNALIGNED_ACCESS, stack_direction, STACK_PUSH_CODE, target, UNITS_PER_WORD, upward, validize_mem(), virtual_outgoing_args_rtx, virtual_stack_dynamic_rtx, and word_mode.
| static rtx expand_expr_addr_expr | ( | tree | exp, | |
| rtx | target, | |||
| enum machine_mode | tmode, | |||
| enum expand_modifier | modifier | |||
| ) | [static] |
Definition at line 6236 of file expr.c.
References convert_memory_address(), expand_expr_addr_expr_1(), GET_MODE, Pmode, ptr_mode, result, TREE_OPERAND, TREE_TYPE, and TYPE_MODE.
Referenced by expand_expr_real_1().
| static rtx expand_expr_addr_expr_1 | ( | tree | exp, | |
| rtx | target, | |||
| enum machine_mode | tmode, | |||
| enum expand_modifier | modifier | |||
| ) | [static] |
Definition at line 6102 of file expr.c.
References assemble_external(), bitpos(), BITS_PER_UNIT, CONSTANT_CLASS_P, convert_memory_address(), DECL_INITIAL, DECL_P, EXPAND_CONST_ADDRESS, expand_expr(), EXPAND_INITIALIZER, EXPAND_NORMAL, expand_simple_binop(), EXPAND_SUM, force_operand(), gcc_assert, gen_rtx_PLUS, GET_CODE, get_inner_reference(), GET_MODE_BITSIZE, HOST_WIDE_INT, MEM, NULL, NULL_RTX, OPTAB_LIB_WIDEN, output_constant_def(), PLUS, plus_constant, result, tmp, TREE_CODE, TREE_OPERAND, TREE_TYPE, TREE_USED, TYPE_MODE, and XEXP.
Referenced by expand_expr_addr_expr(), and expand_expr_addr_expr_1().
| rtx expand_expr_real | ( | tree | exp, | |
| rtx | target, | |||
| enum machine_mode | tmode, | |||
| enum expand_modifier | modifier, | |||
| rtx * | alt_rtl | |||
| ) |
Definition at line 6320 of file expr.c.
Referenced by c_expand_expr(), expand_expr(), expand_expr_real_1(), expand_normal(), and store_expr().
| static rtx expand_expr_real_1 | ( | tree | exp, | |
| rtx | target, | |||
| enum machine_mode | tmode, | |||
| enum expand_modifier | modifier, | |||
| rtx * | alt_rtl | |||
| ) | [static] |
Definition at line 6394 of file expr.c.
References abort, adjust_address, adjust_address_nv, aggregate_value_p(), align, arg_pointer_rtx, assemble_external(), assign_stack_temp_for_type(), assign_temp(), BIGGEST_ALIGNMENT, gcc_target::binds_local_p, bitpos(), BITS_PER_UNIT, BLOCK_OP_CALL_PARM, BLOCK_OP_NORMAL, build1, build2, build_decl, build_int_cst(), build_qualified_type(), build_real(), BUILT_IN_FRONTEND, BYTES_BIG_ENDIAN, can_compare_p(), ccp_jump, cfun, CODE_FOR_nothing, compare_tree_int(), COMPLETE_OR_UNBOUND_ARRAY_TYPE_P, CONCAT, const0_rtx, const1_rtx, CONST_DOUBLE_FROM_REAL_VALUE, const_vector_from_tree(), CONSTANT_P, CONSTRUCTOR_ELTS, convert(), convert_modes(), convert_move(), convert_to_mode(), copy_rtx(), copy_to_mode_reg(), copy_to_reg(), count, cse_not_expected, current_function_decl, dconst1, DECL_ALIGN, DECL_ARTIFICIAL, DECL_BIT_FIELD, DECL_BUILT_IN, DECL_BUILT_IN_CLASS, DECL_EXTERNAL, decl_function_context(), DECL_IGNORED_P, DECL_INITIAL, DECL_MODE, DECL_RTL, DECL_SIZE, do_compare_rtx_and_jump(), do_jump(), do_jump_by_parts_greater_rtx(), do_pending_stack_adjust(), do_store_flag(), emit_barrier(), emit_block_move(), emit_cmp_and_jump_insns(), emit_insn(), emit_jump_insn(), emit_label(), emit_move_insn(), EQ, error_mark_node, exact_log2, expand_abs(), expand_and(), expand_asm_expr(), expand_assignment(), expand_binop(), expand_builtin(), expand_call(), expand_case(), expand_computed_goto(), EXPAND_CONST_ADDRESS, expand_divmod(), expand_expr(), expand_expr_addr_expr(), expand_expr_real(), expand_fix(), expand_float(), expand_goto(), EXPAND_INITIALIZER, expand_label(), EXPAND_MEMORY, expand_mult(), expand_mult_highpart_adjust(), EXPAND_NORMAL, expand_null_return(), expand_operands(), expand_resx_expr(), expand_return(), expand_shift(), EXPAND_STACK_PARM, EXPAND_SUM, expand_ternary_op(), expand_unop(), expand_vec_cond_expr(), EXPAND_WRITE, extract_bit_field(), FIRST_PSEUDO_REGISTER, flag_force_addr, flag_trapv, flag_unsafe_math_optimizations, fold(), fold_read_from_constant_string(), force_const_mem(), force_operand(), force_reg(), frame_pointer_rtx, function, FUNCTION_MODE, gcc_assert, gcc_unreachable, GE, GEN_FCN, gen_highpart(), GEN_INT, gen_int_mode(), gen_jump(), gen_label_rtx(), gen_lowpart, gen_lowpart_SUBREG(), gen_reg_rtx(), gen_rtx_AND, gen_rtx_fmt_e(), gen_rtx_LABEL_REF, gen_rtx_MEM(), gen_rtx_MINUS, gen_rtx_MULT, GET_CODE, get_exception_filter(), get_exception_pointer(), get_inner_reference(), GET_MODE, GET_MODE_ALIGNMENT, GET_MODE_BITSIZE, GET_MODE_CLASS, GET_MODE_PRECISION, GET_MODE_SIZE, GET_MODE_WIDER_MODE, get_subtarget(), HAVE_conditional_move, highest_pow2_factor(), HOST_BITS_PER_INT, HOST_BITS_PER_WIDE_INT, host_integerp(), HOST_WIDE_INT, immed_double_const(), index(), insn, int_expr_size(), int_fits_type_p(), int_size_in_bytes(), integer_one_node, integer_onep(), integer_zero_node, integer_zerop(), INTVAL, is_aligning_offset(), iter, jumpifnot(), LABEL_REF_NONLOCAL_P, label_rtx(), layout_decl(), LE, LEGITIMATE_CONSTANT_P, mark_reg_pointer(), MAX, MEM_ALIGN, MEM_P, MEM_VOLATILE_P, memory_address(), memory_address_p(), MIN, MODE_COMPLEX_FLOAT, MODE_COMPLEX_INT, mode_for_size(), MODE_INT, MODE_VECTOR_FLOAT, MODE_VECTOR_INT, mostly_zeros_p(), MOVE_BY_PIECES_P, movmisalign_optab, negate_rtx(), NO_DEFER_POP, NULL, NULL_RTX, NULL_TREE, OBJ_TYPE_REF_EXPR, offset_address(), OK_DEFER_POP, one_cmpl_optab, optab, optab_for_tree_code(), OPTAB_LIB_WIDEN, OPTAB_WIDEN, optimize, optimize_size, output_constant_def(), PLUS, plus_constant, Pmode, promote_mode(), ptr_mode, PUT_MODE, read_complex_part(), real_onep(), really_constant_p(), REDUCE_BIT_FIELD, REF_ORIGINAL, REG_P, REGNO, replace_equiv_address(), result, ret, safe_from_p(), SAVE_EXPR_RESOLVED_P, SCALAR_INT_MODE_P, SET_DECL_RTL, set_mem_align(), set_mem_attributes(), SIGN_EXTEND, simplify_gen_binary(), simplify_gen_subreg(), size_int, SLOW_UNALIGNED_ACCESS, smul_widen_optab, SSA_NAME, SSA_NAME_VAR, store_constructor(), store_expr(), store_field(), STRICT_ALIGNMENT, subreg_lowpart_offset(), SUBREG_PROMOTED_UNSIGNED_SET, SUBREG_PROMOTED_VAR_P, t1, targetm, tcc_binary, tcc_comparison, tcc_unary, TREE_ADDRESSABLE, TREE_CHAIN, TREE_CODE, TREE_CODE_CLASS, TREE_CONSTANT, TREE_CONSTANT_OVERFLOW, TREE_IMAGPART, tree_int_cst_equal(), TREE_INT_CST_HIGH, TREE_INT_CST_LOW, tree_low_cst(), TREE_OPERAND, TREE_PURPOSE, TREE_READONLY, TREE_REAL_CST, TREE_REALPART, TREE_SIDE_EFFECTS, TREE_STATIC, TREE_STRING_LENGTH, TREE_STRING_POINTER, TREE_THIS_VOLATILE, TREE_TYPE, TREE_USED, TREE_VALUE, TREE_VECTOR_CST_ELTS, tsi_end_p(), tsi_next(), tsi_start(), tsi_stmt(), TYPE_ALIGN, TYPE_ALIGN_OK, TYPE_ALIGN_UNIT, TYPE_MODE, TYPE_PRECISION, TYPE_QUAL_CONST, TYPE_QUALS, TYPE_SIZE, TYPE_SIZE_UNIT, TYPE_UNSIGNED, umul_widen_optab, UNITS_PER_WORD, val, validize_mem(), void_type_node, VOID_TYPE_P, word_mode, write_complex_part(), XEXP, and xor_optab.
Referenced by expand_expr_real(), and expand_expr_real_1().
| static void expand_operands | ( | tree | exp0, | |
| tree | exp1, | |||
| rtx | target, | |||
| rtx * | op0, | |||
| rtx * | op1, | |||
| enum expand_modifier | modifier | |||
| ) | [static] |
Definition at line 6076 of file expr.c.
References copy_rtx(), expand_expr(), flag_evaluation_order, NULL_RTX, operand_equal_p(), safe_from_p(), save_expr(), and TREE_SIDE_EFFECTS.
Referenced by do_store_flag(), and expand_expr_real_1().
Definition at line 5615 of file expr.c.
References ARITHMETIC_P, CONST, CONSTANT_P, convert_move(), DIV, emit_move_insn(), expand_divmod(), expand_mult(), expand_simple_binop(), expand_simple_unop(), FIRST_VIRTUAL_REGISTER, FLOAT_MODE_P, force_operand(), force_reg(), gen_reg_rtx(), GET_CODE, GET_MODE, GET_MODE_SIZE, get_subtarget(), INTEGRAL_MODE_P, LAST_VIRTUAL_REGISTER, MEM_P, MINUS, MOD, negate_rtx(), NULL, NULL_RTX, OPTAB_LIB_WIDEN, pic_offset_table_rtx, PLUS, REG_P, REGNO, SIGN_EXTEND, simplify_gen_subreg(), SUBREG_BYTE, SUBREG_REG, UNARY_P, and XEXP.
Definition at line 1536 of file expr.c.
References alloca, gcc_assert, gen_reg_rtx(), gen_rtvec_v(), gen_rtx_EXPR_LIST, gen_rtx_PARALLEL, GET_CODE, GET_MODE, i, length, mode, offset, XEXP, XVECEXP, and XVECLEN.
| tree get_inner_reference | ( | tree | exp, | |
| HOST_WIDE_INT * | pbitsize, | |||
| HOST_WIDE_INT * | pbitpos, | |||
| tree * | poffset, | |||
| enum machine_mode * | pmode, | |||
| int * | punsignedp, | |||
| int * | pvolatilep, | |||
| bool | keep_aligning | |||
| ) |
| static GTY | ( | () | ) | [static] |
Definition at line 1359 of file expr.c.
References args, build_decl, build_function_type_list(), const_ptr_type_node, DECL_ARTIFICIAL, DECL_EXTERNAL, get_identifier(), NULL_TREE, ptr_type_node, set_user_assembler_name(), sizetype, TREE_NOTHROW, and TREE_PUBLIC.
| static unsigned HOST_WIDE_INT highest_pow2_factor | ( | tree | exp | ) | [static] |
Definition at line 5953 of file expr.c.
References BIGGEST_ALIGNMENT, highest_pow2_factor(), host_integerp(), HOST_WIDE_INT, integer_pow2p(), MAX, MIN, TREE_CODE, TREE_CONSTANT_OVERFLOW, TREE_INT_CST_LOW, tree_low_cst(), and TREE_OPERAND.
Definition at line 6024 of file expr.c.
References DECL_ALIGN_UNIT, highest_pow2_factor(), HOST_WIDE_INT, MAX, TREE_CODE, TREE_OPERAND, TREE_TYPE, and TYPE_ALIGN_UNIT.
Referenced by expand_assignment().
Definition at line 221 of file expr.c.
References can_extend_p(), CODE_FOR_nothing, FIRST_PSEUDO_REGISTER, frame_pointer_rtx, gen_rtx_MEM(), gen_rtx_raw_REG, gen_rtx_REG(), gen_rtx_SET, GET_CLASS_NARROWEST_MODE, GET_MODE_WIDER_MODE, HARD_REGNO_MODE_OK, insn, int, mem, mode, MODE_FLOAT, NULL_RTX, NUM_MACHINE_MODES, PATTERN, Pmode, PUT_MODE, recog(), REGNO, rtx_alloc, SET_DEST, SET_SRC, and stack_pointer_rtx.
Definition at line 8323 of file expr.c.
References BIGGEST_ALIGNMENT, BITS_PER_UNIT, compare_tree_int(), exact_log2, host_integerp(), TREE_CODE, tree_low_cst(), and TREE_OPERAND.
| static int mostly_zeros_p | ( | tree | exp | ) | [static] |
Definition at line 4509 of file expr.c.
References categorize_ctor_elements(), count, count_type_elements(), HOST_WIDE_INT, initializer_zerop(), TREE_CODE, and TREE_TYPE.
| void move_block_to_reg | ( | int | regno, | |
| rtx | x, | |||
| int | nregs, | |||
| enum machine_mode | mode | |||
| ) |
Definition at line 1455 of file expr.c.
References CONSTANT_P, delete_insns_since(), emit_insn(), emit_move_insn(), force_const_mem(), GEN_INT, gen_rtx_REG(), get_last_insn(), i, last, LEGITIMATE_CONSTANT_P, operand_subword_force(), validize_mem(), and word_mode.
| rtx move_by_pieces | ( | rtx | to, | |
| rtx | from, | |||
| unsigned HOST_WIDE_INT | len, | |||
| unsigned int | align, | |||
| int | endp | |||
| ) |
Definition at line 835 of file expr.c.
References adjust_address, adjust_automodify_address, move_by_pieces::autinc_from, move_by_pieces::autinc_to, BITS_PER_UNIT, CODE_FOR_nothing, CONSTANT_P, constm1_rtx, copy_addr_to_reg(), emit_insn(), move_by_pieces::explicit_inc_from, move_by_pieces::explicit_inc_to, move_by_pieces::from, move_by_pieces::from_addr, gcc_assert, gen_add2_insn(), GEN_FCN, GET_CLASS_NARROWEST_MODE, GET_CODE, GET_MODE_ALIGNMENT, GET_MODE_SIZE, GET_MODE_WIDER_MODE, HAVE_POST_INCREMENT, int, move_by_pieces::len, MAX, max_size, MEM_ALIGN, MIN, mode, mode_for_size(), MODE_INT, mov_optab, move_by_pieces_1(), move_by_pieces_ninsns(), MOVE_MAX_PIECES, NULL_RTX, move_by_pieces::offset, plus_constant, move_by_pieces::reverse, SLOW_UNALIGNED_ACCESS, move_by_pieces::to, move_by_pieces::to_addr, USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT, USE_STORE_PRE_DECREMENT, and XEXP.
| static void move_by_pieces_1 | ( | rtx(*)(rtx,...) | genfun, | |
| enum machine_mode | mode, | |||
| struct move_by_pieces * | data | |||
| ) | [static] |
Definition at line 1049 of file expr.c.
References adjust_address, adjust_automodify_address, move_by_pieces::autinc_from, move_by_pieces::autinc_to, emit_insn(), move_by_pieces::explicit_inc_from, move_by_pieces::explicit_inc_to, move_by_pieces::from, move_by_pieces::from_addr, gcc_unreachable, gen_add2_insn(), GEN_INT, GET_MODE_SIZE, HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT, HOST_WIDE_INT, move_by_pieces::len, NULL, NULL_RTX, move_by_pieces::offset, move_by_pieces::reverse, size, move_by_pieces::to, and move_by_pieces::to_addr.
| static unsigned HOST_WIDE_INT move_by_pieces_ninsns | ( | unsigned HOST_WIDE_INT | l, | |
| unsigned int | align, | |||
| unsigned int | max_size | |||
| ) | [static] |
Definition at line 997 of file expr.c.
References BITS_PER_UNIT, CODE_FOR_nothing, gcc_assert, GET_CLASS_NARROWEST_MODE, GET_MODE_ALIGNMENT, GET_MODE_SIZE, GET_MODE_WIDER_MODE, HOST_WIDE_INT, int, MAX, mode, mode_for_size(), MODE_INT, mov_optab, MOVE_MAX_PIECES, n_insns, and SLOW_UNALIGNED_ACCESS.
| static bool optimize_bitfield_assignment_op | ( | unsigned HOST_WIDE_INT | bitsize, | |
| unsigned HOST_WIDE_INT | bitpos, | |||
| enum machine_mode | mode1, | |||
| rtx | str_rtx, | |||
| tree | to, | |||
| tree | src | |||
| ) | [static] |
Definition at line 3666 of file expr.c.
References adjust_address, BINARY_CLASS_P, BITS_PER_UNIT, BITS_PER_WORD, build_int_cst(), BYTES_BIG_ENDIAN, const1_rtx, convert_modes(), emit_move_insn(), expand_and(), expand_binop(), expand_expr(), expand_shift(), get_best_mode(), GET_CODE, GET_MODE, GET_MODE_BITSIZE, HOST_WIDE_INT, MEM_ALIGN, MEM_P, NULL, NULL_RTX, NULL_TREE, operand_equal_p(), optab, OPTAB_WIDEN, REG_P, result, set_mem_alias_set(), set_mem_expr(), shallow_copy_rtx, STRIP_NOPS, TREE_CODE, TREE_OPERAND, TREE_SIDE_EFFECTS, TREE_THIS_VOLATILE, TREE_TYPE, TYPE_MODE, TYPE_UNSIGNED, word_mode, and xor_optab.
Referenced by expand_assignment().
Definition at line 3210 of file expr.c.
References add_optab, anti_adjust_stack(), CONSTANT_P, convert_modes(), copy_to_mode_reg(), expand_binop(), GEN_INT, gen_rtx_PLUS, GET_CLASS_NARROWEST_MODE, GET_CODE, INTVAL, memory_address(), MODE_INT, negate_rtx(), OPTAB_LIB_WIDEN, plus_constant, Pmode, ptr_mode, REG_P, and virtual_outgoing_args_rtx.
Definition at line 2663 of file expr.c.
References BITS_PER_WORD, CONCAT, CONSTANT_CLASS_P, expand_expr(), EXPAND_NORMAL, extract_bit_field(), FIRST_PSEUDO_REGISTER, gcc_assert, GET_CODE, GET_MODE, GET_MODE_BITSIZE, GET_MODE_INNER, GET_MODE_SIZE, hard_regno_nregs, MEM_P, NULL_RTX, REG, REGNO, ret, simplify_gen_subreg(), SYMBOL_REF_DECL, TREE_CODE, TREE_IMAGPART, TREE_REALPART, and XEXP.
Referenced by emit_move_complex(), emit_move_complex_push(), and expand_expr_real_1().
Definition at line 8291 of file expr.c.
References build_int_cst(), count, expand_and(), expand_shift(), GET_MODE, GET_MODE_BITSIZE, HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, immed_double_const(), NULL_TREE, TYPE_PRECISION, and TYPE_UNSIGNED.
Definition at line 5760 of file expr.c.
References alias_sets_conflict_p(), COMPLETE_TYPE_P, DECL_EXPR_DECL, DECL_INITIAL, DECL_P, DECL_RTL, DECL_RTL_IF_SET, DECL_RTL_SET_P, FIRST_PSEUDO_REGISTER, gcc_unreachable, get_alias_set(), GET_CODE, GET_MODE, i, MEM_ALIAS_SET, MEM_P, nops, NULL_TREE, PLUS, REG_P, REGNO, rtx_addr_varies_p(), rtx_equal_p(), safe_from_p(), staticp, SUBREG_REG, tcc_binary, tcc_comparison, tcc_constant, tcc_declaration, tcc_exceptional, tcc_expression, tcc_reference, tcc_statement, tcc_type, tcc_unary, TREE_CHAIN, TREE_CODE, TREE_CODE_CLASS, TREE_CODE_LENGTH, TREE_OPERAND, TREE_STATIC, TREE_TYPE, TREE_VALUE, true_dependence(), TYPE_ARRAY_MAX_SIZE, TYPE_SIZE, virtual_outgoing_args_rtx, and XEXP.
| rtx store_by_pieces | ( | rtx | to, | |
| unsigned HOST_WIDE_INT | len, | |||
| rtx(*)(void *, HOST_WIDE_INT, enum machine_mode) | constfun, | |||
| void * | constfundata, | |||
| unsigned int | align, | |||
| int | endp | |||
| ) |
| static void store_by_pieces_1 | ( | struct store_by_pieces *data | ATTRIBUTE_UNUSED, | |
| unsigned int align | ATTRIBUTE_UNUSED | |||
| ) | [static] |
Definition at line 2274 of file expr.c.
References align, BITS_PER_UNIT, CODE_FOR_nothing, CONSTANT_P, copy_addr_to_reg(), gcc_assert, GEN_FCN, GET_CLASS_NARROWEST_MODE, GET_CODE, GET_MODE_ALIGNMENT, GET_MODE_SIZE, GET_MODE_WIDER_MODE, int, MAX, max_size, mode, mode_for_size(), MODE_INT, mov_optab, move_by_pieces_ninsns(), plus_constant, SLOW_UNALIGNED_ACCESS, store_by_pieces_2(), STORE_MAX_PIECES, store_by_pieces::to_addr, USE_STORE_POST_INCREMENT, USE_STORE_PRE_DECREMENT, and XEXP.
| static void store_by_pieces_1 | ( | struct store_by_pieces * | , | |
| unsigned | int | |||
| ) | [static] |
| static void store_by_pieces_2 | ( | rtx(*)(rtx,...) | genfun, | |
| enum machine_mode | mode, | |||
| struct store_by_pieces * | data | |||
| ) | [static] |
Definition at line 2371 of file expr.c.
References adjust_address, adjust_automodify_address, store_by_pieces::autinc_to, store_by_pieces::constfun, store_by_pieces::constfundata, emit_insn(), store_by_pieces::explicit_inc_to, gen_add2_insn(), GEN_INT, GET_MODE_SIZE, HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT, HOST_WIDE_INT, store_by_pieces::len, store_by_pieces::offset, store_by_pieces::reverse, size, store_by_pieces::to, and store_by_pieces::to_addr.
Definition at line 4587 of file expr.c.
References adjust_address, bit_position(), bitpos(), BITS_PER_UNIT, BITS_PER_WORD, BLOCK_OP_NORMAL, build2, build_decl, build_int_cst(), BYTES_BIG_ENDIAN, clear_storage(), CODE_FOR_nothing, CONST0_RTX, CONSTRUCTOR_ELTS, convert(), convert_to_mode(), copy_rtx(), count, DECL_BIT_FIELD, DECL_FIELD_BIT_OFFSET, DECL_FIELD_OFFSET, DECL_MODE, DECL_NONADDRESSABLE_P, DECL_SIZE, do_pending_stack_adjust(), emit_insn(), emit_jump(), emit_label(), emit_move_insn(), expand_assignment(), expand_expr(), expr_size(), fields_length(), fold(), fold_convert(), gcc_assert, gcc_unreachable, GEN_FCN, GEN_INT, gen_label_rtx(), gen_reg_rtx(), gen_rtx_CLOBBER, gen_rtx_PARALLEL, get_alias_set(), GET_MODE, GET_MODE_BITSIZE, GET_MODE_CLASS, GET_MODE_INNER, GET_MODE_SIZE, highest_pow2_factor(), host_integerp(), HOST_WIDE_INT, i, if(), index(), initializer_zerop(), int, int_bit_position(), int_const_binop(), int_size_in_bytes(), integer_one_node, integer_type_node, jumpif(), list_length(), lo, make_tree(), MEM_KEEP_ALIAS_SET_P, MEM_P, MODE_INT, mostly_zeros_p(), NULL, NULL_RTX, NULL_TREE, offset_address(), Pmode, promote_mode(), ptr_mode, REG_P, rtvec_alloc(), RTVEC_ELT, SET_DECL_RTL, size_binop(), ssize_int, ssizetype, store_constructor(), store_constructor_field(), store_expr(), SUBSTITUTE_PLACEHOLDER_IN_EXPR, TREE_CHAIN, TREE_CODE, tree_low_cst(), TREE_OPERAND, TREE_PURPOSE, TREE_STATIC, TREE_TYPE, TREE_VALUE, TYPE_DOMAIN, TYPE_MAX_VALUE, TYPE_MIN_VALUE, TYPE_MODE, TYPE_NONALIASED_COMPONENT, TYPE_PRECISION, TYPE_SIZE, TYPE_SIZE_UNIT, TYPE_UNSIGNED, TYPE_VECTOR_SUBPARTS, UNITS_PER_WORD, vec_init_optab, vector, VECTOR_MODE_P, and word_mode.
| static void store_constructor_field | ( | rtx | target, | |
| unsigned HOST_WIDE_INT | bitsize, | |||
| HOST_WIDE_INT | bitpos, | |||
| enum machine_mode | mode, | |||
| tree | exp, | |||
| tree | type, | |||
| int | cleared, | |||
| int | alias_set | |||
| ) | [static] |
Definition at line 4541 of file expr.c.
References adjust_address, BITS_PER_UNIT, copy_rtx(), GET_MODE, GET_MODE_ALIGNMENT, MEM_ALIAS_SET, MEM_KEEP_ALIAS_SET_P, MEM_P, set_mem_alias_set(), store_constructor(), store_field(), and TREE_CODE.
Definition at line 4018 of file expr.c.
References adjust_address, BLOCK_OP_CALL_PARM, BLOCK_OP_NORMAL, clear_storage(), const0_rtx, CONSTANT_P, convert(), convert_modes(), convert_move(), convert_to_mode(), do_pending_stack_adjust(), emit_barrier(), emit_block_move(), emit_cmp_and_jump_insns(), emit_group_load(), emit_jump_insn(), emit_label(), emit_move_insn(), expand_binop(), expand_expr(), expand_expr_real(), EXPAND_NORMAL, EXPAND_STACK_PARM, expr_size(), FIRST_PSEUDO_REGISTER, force_operand(), gcc_assert, gen_jump(), gen_label_rtx(), GET_CODE, GET_MODE, GET_MODE_PRECISION, highest_pow2_factor(), int_size_in_bytes(), INTEGRAL_TYPE_P, INTVAL, jumpifnot(), LT, make_tree(), MEM_P, MEM_VOLATILE_P, NO_DEFER_POP, NULL_RTX, offset_address(), OK_DEFER_POP, OPTAB_LIB_WIDEN, plus_constant, Pmode, ptr_mode, REG_P, REGNO, rtx_equal_p(), side_effects_p(), size, size_binop(), size_int, sizetype, store_expr(), SUBREG_PROMOTED_UNSIGNED_P, SUBREG_PROMOTED_VAR_P, SUBREG_REG, TREE_CODE, TREE_OPERAND, TREE_STRING_LENGTH, TREE_TYPE, TYPE_MODE, TYPE_PRECISION, TYPE_UNSIGNED, and VOID_TYPE_P.
| static rtx store_field | ( | rtx | target, | |
| HOST_WIDE_INT | bitsize, | |||
| HOST_WIDE_INT | bitpos, | |||
| enum machine_mode | mode, | |||
| tree | exp, | |||
| tree | type, | |||
| int | alias_set | |||
| ) | [static] |
Definition at line 5159 of file expr.c.
References adjust_address, assign_temp(), BITS_PER_UNIT, BLOCK_OP_NORMAL, BYTES_BIG_ENDIAN, compare_tree_int(), CONCAT, const0_rtx, convert_modes(), copy_rtx(), emit_block_move(), emit_move_insn(), expand_expr(), expand_shift(), gcc_assert, GEN_INT, GET_CODE, GET_MODE, GET_MODE_ALIGNMENT, GET_MODE_BITSIZE, GET_MODE_CLASS, HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, INTEGRAL_TYPE_P, MEM_ALIAS_SET, MEM_ALIGN, MEM_KEEP_ALIAS_SET_P, MEM_P, MEM_SET_IN_STRUCT_P, MODE_COMPLEX_FLOAT, MODE_COMPLEX_INT, MODE_INT, NULL_RTX, REG_P, set_mem_alias_set(), size_int, SLOW_UNALIGNED_ACCESS, store_bit_field(), store_expr(), store_field(), TREE_CODE, TREE_OPERAND, TREE_TYPE, TYPE_MODE, TYPE_PRECISION, and TYPE_SIZE.
| tree string_constant | ( | tree | arg, | |
| tree * | ptr_offset | |||
| ) |
Definition at line 8367 of file expr.c.
References gcc_target::binds_local_p, compare_tree_int(), convert(), DECL_INITIAL, DECL_SIZE_UNIT, host_integerp(), length, NULL_TREE, size_zero_node, sizetype, STRIP_NOPS, targetm, TREE_CODE, TREE_OPERAND, TREE_READONLY, TREE_SIDE_EFFECTS, and TREE_STRING_LENGTH.
| int try_casesi | ( | tree | index_type, | |
| tree | index_expr, | |||
| tree | minval, | |||
| tree | range, | |||
| rtx table_label | ATTRIBUTE_UNUSED, | |||
| rtx | default_label | |||
| ) |
Definition at line 8734 of file expr.c.
References build2, CODE_FOR_casesi, convert(), convert_modes(), convert_to_mode(), copy_to_mode_reg(), do_pending_stack_adjust(), emit_cmp_and_jump_insns(), emit_jump_insn(), expand_expr(), gen_casesi, GET_MODE_BITSIZE, HAVE_casesi, index(), int, integer_zero_node, NULL_RTX, TREE_TYPE, TYPE_MODE, and TYPE_UNSIGNED.
| int try_tablejump | ( | tree | index_type, | |
| tree | index_expr, | |||
| tree | minval, | |||
| tree | range, | |||
| rtx | table_label, | |||
| rtx | default_label | |||
| ) |
Definition at line 8884 of file expr.c.
References build2, convert(), convert_modes(), do_pending_stack_adjust(), do_tablejump(), expand_expr(), fold(), HAVE_tablejump, index(), NULL_RTX, TREE_TYPE, TYPE_MODE, and TYPE_UNSIGNED.
Definition at line 2044 of file expr.c.
References FIRST_PSEUDO_REGISTER, gcc_assert, gen_rtx_EXPR_LIST, gen_rtx_USE, REG_P, and REGNO.
Definition at line 2057 of file expr.c.
References FIRST_PSEUDO_REGISTER, gcc_assert, i, regno_reg_rtx, and use_reg().
| int vector_mode_valid_p | ( | enum machine_mode | mode | ) |
Definition at line 8913 of file expr.c.
References GET_MODE_CLASS, GET_MODE_INNER, MODE_VECTOR_FLOAT, MODE_VECTOR_INT, gcc_target::scalar_mode_supported_p, targetm, and gcc_target::vector_mode_supported_p.
Definition at line 2611 of file expr.c.
References BITS_PER_WORD, CONCAT, emit_move_insn(), FIRST_PSEUDO_REGISTER, gcc_assert, GET_CODE, GET_MODE, GET_MODE_BITSIZE, GET_MODE_INNER, GET_MODE_SIZE, hard_regno_nregs, MEM_P, REG, REGNO, simplify_gen_subreg(), store_bit_field(), and XEXP.
Referenced by clear_storage(), emit_move_complex(), and expand_expr_real_1().
| enum insn_code clrmem_optab[NUM_MACHINE_MODES] |
| enum insn_code cmpmem_optab[NUM_MACHINE_MODES] |
| enum insn_code cmpstr_optab[NUM_MACHINE_MODES] |
Definition at line 208 of file expr.c.
Referenced by expand_builtin_strcmp(), init_optabs(), and prepare_cmp_insn().
| int cse_not_expected |
char direct_load[NUM_MACHINE_MODES] [static] |
char direct_store[NUM_MACHINE_MODES] [static] |
bool float_extend_from_mem[NUM_MACHINE_MODES][NUM_MACHINE_MODES] [static] |
| enum insn_code movmem_optab[NUM_MACHINE_MODES] |
1.5.6