#include "config.h"#include "system.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 "gt-expr.h"

Go to the source code of this file.
Data Types | |
| type | move_by_pieces |
| type | store_by_pieces |
Defines | |
| #define | STACK_PUSH_CODE PRE_INC |
| #define | CASE_VECTOR_PC_RELATIVE 0 |
| #define | TARGET_MEM_FUNCTIONS 0 |
| #define | MOVE_RATIO (optimize_size ? 3 : 15) |
| #define | MOVE_BY_PIECES_P(SIZE, ALIGN) (move_by_pieces_ninsns (SIZE, ALIGN) < (unsigned int) MOVE_RATIO) |
| #define | CLEAR_RATIO (optimize_size ? 3 : 15) |
| #define | CLEAR_BY_PIECES_P(SIZE, ALIGN) (move_by_pieces_ninsns (SIZE, ALIGN) < (unsigned int) CLEAR_RATIO) |
| #define | SLOW_UNALIGNED_ACCESS(MODE, ALIGN) STRICT_ALIGNMENT |
| #define | MOVE_MAX_PIECES MOVE_MAX |
| #define | STORE_MAX_PIECES MIN (MOVE_MAX_PIECES, 2 * sizeof (HOST_WIDE_INT)) |
| #define | HAVE_casesi 0 |
| #define | gen_casesi(a, b, c, d, e) (0) |
| #define | CODE_FOR_casesi CODE_FOR_nothing |
| #define | CASE_VALUES_THRESHOLD (HAVE_casesi ? 4 : 5) |
| #define | HAVE_tablejump 0 |
| #define | gen_tablejump(x, y) (0) |
Functions/Subroutines | |
| static rtx enqueue_insn | PARAMS ((rtx, rtx)) |
| static unsigned HOST_WIDE_INT move_by_pieces_ninsns | PARAMS ((unsigned HOST_WIDE_INT, unsigned int)) |
| static void move_by_pieces_1 | PARAMS ((rtx(*)(rtx,...), enum machine_mode, struct move_by_pieces *)) |
| static bool block_move_libcall_safe_for_call_parm | PARAMS ((void)) |
| static bool emit_block_move_via_movstr | PARAMS ((rtx, rtx, rtx, unsigned)) |
| static rtx emit_block_move_via_libcall | PARAMS ((rtx, rtx, rtx)) |
| static tree emit_block_move_libcall_fn | PARAMS ((int)) |
| static rtx clear_by_pieces_1 | PARAMS ((PTR, HOST_WIDE_INT, enum machine_mode)) |
| static void clear_by_pieces | PARAMS ((rtx, unsigned HOST_WIDE_INT, unsigned int)) |
| static void store_by_pieces_1 | PARAMS ((struct store_by_pieces *, unsigned int)) |
| static void store_by_pieces_2 | PARAMS ((rtx(*)(rtx,...), enum machine_mode, struct store_by_pieces *)) |
| static bool clear_storage_via_clrstr | PARAMS ((rtx, rtx, unsigned)) |
| static rtx get_subtarget | PARAMS ((rtx)) |
| static int is_zeros_p | PARAMS ((tree)) |
| static void store_constructor_field | PARAMS ((rtx, unsigned HOST_WIDE_INT, HOST_WIDE_INT, enum machine_mode, tree, tree, int, int)) |
| static void store_constructor | PARAMS ((tree, rtx, int, HOST_WIDE_INT)) |
| static rtx store_field | PARAMS ((rtx, HOST_WIDE_INT, HOST_WIDE_INT, enum machine_mode, tree, enum machine_mode, int, tree, int)) |
| static HOST_WIDE_INT highest_pow2_factor_for_type | PARAMS ((tree, tree)) |
| static rtx expand_increment | PARAMS ((tree, int, int)) |
| static void do_jump_by_parts_greater | PARAMS ((tree, int, rtx, rtx)) |
| static void do_jump_by_parts_equality | PARAMS ((tree, rtx, rtx)) |
| static void do_compare_and_jump | PARAMS ((tree, enum rtx_code, enum rtx_code, rtx, rtx)) |
| static rtx do_store_flag | PARAMS ((tree, rtx, enum machine_mode, int)) |
| static void do_tablejump | PARAMS ((rtx, enum machine_mode, rtx, rtx, rtx)) |
| void | init_expr_once () |
| void | init_expr () |
| void | finish_expr_for_function () |
| static rtx | enqueue_insn (rtx var, rtx body) |
| rtx | protect_from_queue (rtx x, int modify) |
| int | queued_subexp_p (rtx x) |
| void | emit_queue () |
| void | convert_move (rtx to, rtx from, int unsignedp) |
| rtx | convert_to_mode (enum machine_mode mode, rtx x, int unsignedp) |
| rtx | convert_modes (enum machine_mode mode, enum machine_mode oldmode, rtx x, int unsignedp) |
| int | can_move_by_pieces (unsigned HOST_WIDE_INT len, unsigned int align) |
| rtx | move_by_pieces (rtx to, rtx from, unsigned HOST_WIDE_INT len, unsigned int align, int endp) |
| static unsigned HOST_WIDE_INT | move_by_pieces_ninsns (unsigned HOST_WIDE_INT l, unsigned int align) |
| static void | move_by_pieces_1 (rtx *genfun, enum machine_mode mode, struct move_by_pieces *data) |
| rtx | emit_block_move (rtx x, rtx y, rtx size, enum block_op_methods method) |
| static bool | block_move_libcall_safe_for_call_parm () |
| static bool | emit_block_move_via_movstr (rtx x, rtx y, rtx size, unsigned int align) |
| static rtx | emit_block_move_via_libcall (rtx dst, rtx src, rtx size) |
| static | GTY (()) |
| static tree | emit_block_move_libcall_fn (int for_call) |
| static void | emit_block_move_via_loop (rtx x, rtx y, rtx size, align) |
| void | move_block_to_reg (int regno, rtx x, int nregs, enum machine_mode mode) |
| void | move_block_from_reg (int regno, rtx x, int nregs, int size) |
| rtx | gen_group_rtx (rtx orig) |
| void | emit_group_load (rtx dst, rtx orig_src, int ssize) |
| void | emit_group_move (rtx dst, rtx src) |
| void | emit_group_store (rtx orig_dst, rtx src, int ssize) |
| rtx | copy_blkmode_from_reg (rtx tgtblk, rtx srcreg, tree type) |
| void | use_reg (rtx *call_fusage, rtx reg) |
| void | use_regs (rtx *call_fusage, int regno, int nregs) |
| void | use_group_regs (rtx *call_fusage, rtx regs) |
| int | can_store_by_pieces (unsigned HOST_WIDE_INT len, rtx *constfun, PTR constfundata, unsigned int align) |
| rtx | store_by_pieces (rtx to, unsigned HOST_WIDE_INT len, rtx *constfun, PTR constfundata, unsigned int align, int endp) |
| static void | clear_by_pieces (rtx to, unsigned HOST_WIDE_INT len, unsigned int align) |
| static rtx | clear_by_pieces_1 (data, offset, mode) |
| static void | store_by_pieces_1 (struct store_by_pieces *data, unsigned int align) |
| static void | store_by_pieces_2 (rtx *genfun, enum machine_mode mode, struct store_by_pieces *data) |
| rtx | clear_storage (rtx object, rtx size) |
| static bool | clear_storage_via_clrstr (rtx object, rtx size, unsigned int align) |
| static rtx | clear_storage_via_libcall (rtx object, rtx size) |
| static tree | clear_storage_libcall_fn (int for_call) |
| rtx | emit_move_insn (rtx x, rtx y) |
| rtx | emit_move_insn_1 (rtx x, rtx y) |
| static rtx | compress_float_constant (rtx x, rtx y) |
| rtx | push_block (rtx size, int extra, int below) |
| 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) |
| static rtx | get_subtarget (rtx x) |
| rtx | expand_assignment (tree to, tree from, int want_value, suggest_reg) |
| rtx | store_expr (tree exp, rtx target, int want_value) |
| static int | is_zeros_p (tree exp) |
| static int | mostly_zeros_p (tree exp) |
| 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 void | store_constructor (tree exp, rtx target, int cleared, HOST_WIDE_INT size) |
| static rtx | store_field (rtx target, HOST_WIDE_INT bitsize, HOST_WIDE_INT bitpos, enum machine_mode mode, tree exp, enum machine_mode value_mode, int unsignedp, tree type, int alias_set) |
| tree | get_inner_reference (tree exp, HOST_WIDE_INT *pbitsize, HOST_WIDE_INT *pbitpos, tree *poffset, enum machine_mode *pmode, int *punsignedp, int *pvolatilep) |
| int | handled_component_p (tree t) |
| rtx | force_operand (rtx value, rtx target) |
| int | safe_from_p (rtx x, tree exp, int top_p) |
| static rtx | var_rtx (tree exp) |
| static HOST_WIDE_INT | highest_pow2_factor (tree exp) |
| static HOST_WIDE_INT | highest_pow2_factor_for_type (tree type, tree exp) |
| tree | find_placeholder (tree exp, tree *plist) |
| rtx | expand_expr (tree exp, rtx target, enum machine_mode tmode, enum expand_modifier modifier) |
| static int | is_aligning_offset (tree offset, tree exp) |
| tree | string_constant (tree arg, tree *ptr_offset) |
| static rtx | expand_increment (tree exp, int post, int ignore) |
| void | init_pending_stack_adjust () |
| void | clear_pending_stack_adjust () |
| void | do_pending_stack_adjust () |
| void | jumpifnot (tree exp, rtx label) |
| void | jumpif (tree exp, rtx label) |
| void | do_jump (tree exp, rtx if_false_label, rtx if_true_label) |
| static void | do_jump_by_parts_greater (tree exp, int swap, rtx if_false_label, rtx if_true_label) |
| void | do_jump_by_parts_greater_rtx (enum machine_mode mode, int unsignedp, rtx op0, rtx op1, rtx if_false_label, rtx if_true_label) |
| static void | do_jump_by_parts_equality (tree exp, rtx if_false_label, rtx if_true_label) |
| void | do_jump_by_parts_equality_rtx (rtx op0, rtx if_false_label, rtx if_true_label) |
| rtx | compare_from_rtx (rtx op0, rtx op1, enum rtx_code code, int unsignedp, enum machine_mode mode, rtx size) |
| void | do_compare_rtx_and_jump (rtx op0, rtx op1, enum rtx_code code, int unsignedp, enum machine_mode mode, rtx size, rtx if_false_label, rtx if_true_label) |
| static void | do_compare_and_jump (tree exp, enum rtx_code signed_code, enum rtx_code unsigned_code, rtx if_false_label, rtx if_true_label) |
| static rtx | do_store_flag (tree exp, rtx target, enum machine_mode mode, int only_cheap) |
| unsigned int | case_values_threshold () |
| int | try_casesi (tree index_type, tree index_expr, tree minval, tree range, table_label, rtx default_label) |
| static void | do_tablejump (rtx index, enum machine_mode mode, rtx range, rtx table_label, rtx default_label) |
| int | try_tablejump (tree index_type, tree index_expr, tree minval, tree range, rtx table_label, rtx default_label) |
| int | vector_mode_valid_p (enum machine_mode mode) |
| static rtx | const_vector_from_tree (tree exp) |
Variables | |
| int | cse_not_expected |
| static tree | placeholder_list = 0 |
| static 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] |
| enum insn_code | movstr_optab [NUM_MACHINE_MODES] |
| enum insn_code | clrstr_optab [NUM_MACHINE_MODES] |
| #define CLEAR_RATIO (optimize_size ? 3 : 15) |
| #define CODE_FOR_casesi CODE_FOR_nothing |
| #define gen_tablejump | ( | x, | |||
| y | ) | (0) |
| #define HAVE_casesi 0 |
| #define HAVE_tablejump 0 |
| #define MOVE_RATIO (optimize_size ? 3 : 15) |
| #define SLOW_UNALIGNED_ACCESS | ( | MODE, | |||
| ALIGN | ) | STRICT_ALIGNMENT |
| #define STORE_MAX_PIECES MIN (MOVE_MAX_PIECES, 2 * sizeof (HOST_WIDE_INT)) |
Definition at line 1470 of file expr.c.
Referenced by can_store_by_pieces(), and store_by_pieces_1().
Definition at line 1843 of file expr.c.
References abort, emit_block_move_libcall_fn(), FUNCTION_ARG, FUNCTION_ARG_ADVANCE, FUNCTION_ARG_PARTIAL_NREGS, INIT_CUMULATIVE_ARGS, mode, NULL_RTX, NULL_TREE, PUSH_ARGS, REG_P, tmp, TREE_CHAIN, TREE_TYPE, TREE_VALUE, TYPE_ARG_TYPES, TYPE_MODE, and void_list_node.
Referenced by emit_block_move().
| int can_move_by_pieces | ( | unsigned HOST_WIDE_INT | len, | |
| unsigned int align | ||||
| ) |
Definition at line 1477 of file expr.c.
References MOVE_BY_PIECES_P.
Referenced by expand_block_move(), expand_builtin_mempcpy(), and gimplify_init_constructor().
| int can_store_by_pieces | ( | unsigned HOST_WIDE_INT | len, | |
| rtx * | constfun, | |||
| PTR | constfundata, | |||
| unsigned int | align | |||
| ) |
Definition at line 2736 of file expr.c.
References abort, BIGGEST_ALIGNMENT, BITS_PER_UNIT, CODE_FOR_nothing, GET_CLASS_NARROWEST_MODE, GET_MODE_ALIGNMENT, GET_MODE_SIZE, GET_MODE_WIDER_MODE, HAVE_POST_DECREMENT, HAVE_PRE_DECREMENT, LEGITIMATE_CONSTANT_P, max_size, mode, MODE_INT, mov_optab, MOVE_BY_PIECES_P, MOVE_MAX, store_by_pieces::offset, size, SLOW_UNALIGNED_ACCESS, STORE_MAX_PIECES, and word_mode.
Referenced by expand_builtin_memcpy(), expand_builtin_mempcpy(), expand_builtin_memset(), and expand_builtin_strncpy().
| unsigned int case_values_threshold | ( | void | ) |
Definition at line 2882 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.
Referenced by clear_storage().
Definition at line 9891 of file expr.c.
Referenced by expand_call(), expand_goto_internal(), expand_naked_return(), and expand_null_return_1().
Definition at line 3043 of file expr.c.
References align, clear_by_pieces(), CLEAR_BY_PIECES_P, clear_storage_via_clrstr(), clear_storage_via_libcall(), CONST0_RTX, const0_rtx, emit_move_insn(), GET_CODE, GET_MODE, GET_MODE_ALIGNMENT, GET_MODE_SIZE, INTVAL, MEM, MEM_ALIGN, and protect_from_queue().
Referenced by expand_builtin_memset(), expand_expr_real_1(), store_constructor(), and store_expr().
| static tree clear_storage_libcall_fn | ( | int | for_call | ) | [static] |
Definition at line 3257 of file expr.c.
References assemble_external(), init_block_clear_fn(), make_decl_rtl(), and NULL.
Referenced by clear_storage_via_libcall().
Definition at line 3080 of file expr.c.
References BITS_PER_UNIT, BITS_PER_WORD, clrstr_optab, 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, INTVAL, last, mode, and MODE_INT.
Referenced by clear_storage().
Definition at line 3138 of file expr.c.
References arg_list, build(), build1, build_pointer_type(), clear_storage_libcall_fn(), convert_to_mode(), copy_to_mode_reg(), emit_insn(), expand_expr(), gen_rtx_CLOBBER, integer_zero_node, make_tree(), NULL_RTX, NULL_TREE, Pmode, ptr_type_node, RTX_UNCHANGING_P, sizetype, TARGET_MEM_FUNCTIONS, tree_cons, TREE_SIDE_EFFECTS, TREE_TYPE, TYPE_MODE, unsigned_type_node, and XEXP.
Referenced by clear_storage().
| rtx compare_from_rtx | ( | rtx | op0, | |
| rtx | op1, | |||
| enum rtx_code | code, | |||
| int | unsignedp, | |||
| enum machine_mode | mode, | |||
| rtx | size | |||
| ) |
Definition at line 10607 of file expr.c.
Referenced by do_store_flag(), emit_conditional_add(), and emit_store_flag().
Definition at line 3646 of file expr.c.
References can_extend_p(), CODE_FOR_nothing, CONST_DOUBLE_FROM_REAL_VALUE, emit_unop_insn(), exact_real_truncate(), float_extend_from_mem, force_const_mem(), gen_rtx_EXPR_LIST, GET_CLASS_NARROWEST_MODE, GET_CODE, 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, REG_EQUAL, REG_NOTES, UNKNOWN, and validize_mem().
Referenced by emit_move_insn().
Definition at line 11396 of file expr.c.
References CONST0_RTX, CONST_DOUBLE_FROM_REAL_VALUE, gen_rtx_raw_CONST_VECTOR, GET_MODE_INNER, GET_MODE_NUNITS, i, immed_double_const(), is_zeros_p(), 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.
Referenced by expand_expr(), and expand_expr_real_1().
| rtx convert_modes | ( | enum machine_mode | mode, | |
| enum machine_mode | oldmode, | |||
| rtx | x, | |||
| int | unsignedp | |||
| ) |
Definition at line 1354 of file expr.c.
Referenced by alpha_expand_compare_and_swap_12(), altivec_expand_vec_set_builtin(), basic_induction_var(), convert_memory_address(), convert_to_mode(), emit_block_move_via_loop(), emit_case_nodes(), emit_library_call_value_1(), emit_store_flag(), expand_assignment(), expand_binop(), expand_builtin_compare_and_swap(), expand_builtin_extend_pointer(), expand_builtin_lock_test_and_set(), expand_builtin_sync_operation(), expand_complex_abs(), expand_divmod(), expand_expr(), expand_expr_real_1(), expand_inline_function(), expand_mult_highpart(), expand_mult_highpart_optab(), expand_sync_fetch_operation(), expand_sync_lock_test_and_set(), expand_sync_operation(), expand_ternary_op(), expand_twoval_binop(), expand_twoval_unop(), expand_val_compare_and_swap_1(), expand_value_return(), expand_widen_pattern_expr(), extract_force_align_mem_bit_field(), extract_high_half(), ix86_expand_vec_set_builtin(), ix86_expand_vector_init_duplicate(), ix86_expand_vector_init_general(), ix86_expand_vector_init_low_nonzero(), ix86_expand_vector_init_one_nonzero(), ix86_expand_vector_init_one_var(), optimize_bitfield_assignment_op(), precompute_arguments(), precompute_register_parameters(), prepare_operand(), push_block(), rs6000_expand_compare_and_swapqhi(), s390_expand_setmem(), store_expr(), store_field(), store_one_arg(), try_casesi(), try_tablejump(), and widen_operand().
Definition at line 558 of file expr.c.
Referenced by assign_parm_setup_block(), convert_modes(), convert_move(), do_tablejump(), emit_conditional_add(), emit_store_flag(), expand_binop(), expand_bool_compare_and_swap(), expand_builtin_memcmp(), expand_builtin_strcmp(), expand_builtin_strlen(), expand_builtin_strncmp(), expand_complex_abs(), expand_expr(), expand_expr_real_1(), expand_fix(), expand_float(), expand_twoval_binop(), expand_twoval_unop(), expand_unop(), fixup_var_refs_insn(), force_operand(), frv_expand_load_builtin(), frv_expand_store_builtin(), gen_int_relational(), gen_modsi3(), gen_umodsi3(), gen_v9_scc(), ia64_expand_compare_and_swap(), ia64_expand_fetch_and_op(), ia64_expand_op_and_fetch(), optimize_bit_field(), rs6000_emit_sCOND(), rs6000_emit_sync(), rs6000_emit_vector_compare(), rtl_gen_const_delta_profiler(), rtl_gen_one_value_profiler_no_edge_manipulation(), s390_expand_atomic(), s390_expand_clrmem(), s390_expand_cmpmem(), s390_expand_cs_hqi(), s390_expand_movmem(), s390_expand_setmem(), store_expr(), and tail_recursion_args().
| rtx convert_to_mode | ( | enum machine_mode | mode, | |
| rtx | x, | |||
| int | unsignedp | |||
| ) |
Definition at line 1332 of file expr.c.
Referenced by allocate_dynamic_stack_space(), assign_parm_setup_reg(), assign_parm_setup_stack(), assign_parms(), block_move_call(), builtin_memset_gen_str(), clear_storage_via_clrmem(), clear_storage_via_clrstr(), clear_storage_via_libcall(), convert_move(), copy_blkmode_from_reg(), do_store_flag(), do_tablejump(), emit_block_move_via_libcall(), emit_block_move_via_movmem(), emit_block_move_via_movstr(), emit_case_bit_tests(), emit_prefetch_instructions(), expand_assignment(), expand_binop(), expand_block_move(), expand_builtin_extract_return_addr(), expand_builtin_memcmp(), expand_builtin_memset(), expand_builtin_powi(), expand_builtin_strcmp(), expand_builtin_strlen(), expand_builtin_strncmp(), expand_builtin_unop(), expand_case(), expand_complex_abs(), expand_end_case_type(), expand_expr(), expand_expr_real_1(), expand_fix(), expand_float(), expand_movstr_call(), expand_mult_highpart(), expand_shift(), expand_twoval_unop(), expand_unop(), extract_bit_field(), extract_fixed_bit_field(), gen_eh_return(), ia64_expand_compare_and_swap(), ia64_expand_load_address(), prepare_cmp_insn(), prepare_float_lib_cmp(), probe_stack_range(), s390_expand_clrmem(), s390_expand_cmpmem(), s390_expand_movmem(), s390_expand_setmem(), set_storage_via_setmem(), sjlj_emit_dispatch_table(), store_bit_field(), store_constructor(), store_expr(), store_fixed_bit_field(), and try_casesi().
| static void do_compare_and_jump | ( | tree | exp, | |
| enum rtx_code | signed_code, | |||
| enum rtx_code | unsigned_code, | |||
| rtx | if_false_label, | |||
| rtx | if_true_label | |||
| ) | [static] |
Definition at line 10783 of file expr.c.
References do_compare_rtx_and_jump(), emit_insn(), emit_queue(), expand_expr(), expr_size(), gen_reg_rtx(), GET_MODE_BITSIZE, NULL_RTX, TREE_CODE, TREE_OPERAND, TREE_TYPE, TREE_UNSIGNED, and TYPE_MODE.
Referenced by do_jump().
| void do_compare_rtx_and_jump | ( | rtx | op0, | |
| rtx | op1, | |||
| enum rtx_code | code, | |||
| int | unsignedp, | |||
| enum machine_mode | mode, | |||
| rtx | size, | |||
| rtx | if_false_label, | |||
| rtx | if_true_label | |||
| ) |
Definition at line 10678 of file expr.c.
Referenced by compare_and_jump_seq(), do_cmp_and_jump(), do_compare_and_jump(), do_jump(), do_jump_by_parts_equality(), do_jump_by_parts_equality_rtx(), do_jump_by_parts_greater_rtx(), do_jump_by_parts_zero_rtx(), do_jump_if_equal(), emit_store_flag_force(), expand_abs(), expand_doubleword_shift(), expand_expr(), expand_expr_real_1(), gen_divmod_fixed_value(), gen_mod_pow2(), gen_mod_subtract(), rs6000_aix_emit_builtin_unwind_init(), rtl_gen_interval_profiler(), rtl_gen_one_value_profiler_no_edge_manipulation(), rtl_gen_pow2_profiler(), and rtl_lv_add_condition_to_bb().
Definition at line 9956 of file expr.c.
Referenced by do_jump(), expand_builtin_expect_jump(), expand_elseif(), expand_exit_loop_if_false(), expand_expr(), expand_expr_real_1(), expand_return(), expand_start_cond(), expand_start_elseif(), jumpif(), and jumpifnot().
Definition at line 10519 of file expr.c.
References do_compare_rtx_and_jump(), emit_jump(), emit_label(), EQ, expand_expr(), gen_label_rtx(), GET_MODE_SIZE, i, NULL_RTX, operand_subword_force(), TREE_OPERAND, TREE_TYPE, TREE_UNSIGNED, TYPE_MODE, UNITS_PER_WORD, and word_mode.
Referenced by do_jump().
Definition at line 10550 of file expr.c.
Referenced by do_cmp_and_jump(), do_compare_rtx_and_jump(), do_jump(), and do_jump_by_parts_equality().
| static void do_jump_by_parts_greater | ( | tree | exp, | |
| int | swap, | |||
| rtx | if_false_label, | |||
| rtx | if_true_label | |||
| ) | [static] |
Definition at line 10448 of file expr.c.
References do_jump_by_parts_greater_rtx(), expand_expr(), NULL_RTX, TREE_OPERAND, TREE_TYPE, TREE_UNSIGNED, and TYPE_MODE.
Referenced by do_jump().
| void do_jump_by_parts_greater_rtx | ( | enum machine_mode | mode, | |
| int | unsignedp, | |||
| rtx | op0, | |||
| rtx | op1, | |||
| rtx | if_false_label, | |||
| rtx | if_true_label | |||
| ) |
Definition at line 10466 of file expr.c.
Referenced by do_cmp_and_jump(), do_compare_rtx_and_jump(), do_jump_by_parts_greater(), expand_abs(), expand_expr(), and expand_expr_real_1().
Definition at line 9909 of file expr.c.
Referenced by allocate_dynamic_stack_space(), compare_from_rtx(), do_compare_rtx_and_jump(), do_jump(), emit_block_move_via_loop(), emit_case_bit_tests(), emit_jump(), emit_stack_save(), emit_store_flag(), expand_builtin_apply(), expand_call(), expand_case(), expand_computed_goto(), expand_decl(), expand_eh_region_end_allowed(), expand_eh_region_end_cleanup(), expand_end_bindings(), expand_end_case_type(), expand_end_cond(), expand_end_loop(), expand_end_null_loop(), expand_expr(), expand_expr_real_1(), expand_fix(), expand_fixup(), expand_float(), expand_gimple_basic_block(), expand_gimple_tailcall(), expand_goto_internal(), expand_inline_function(), expand_label(), expand_loop_continue_here(), expand_naked_return(), expand_null_return_1(), expand_sdiv_pow2(), expand_stack_save(), expand_start_case(), expand_start_loop(), expand_start_stmt_expr(), extract_force_align_mem_bit_field(), fixup_gotos(), gen_fixuns_truncdfdi2(), gen_fixuns_truncdfsi2(), gen_fixuns_truncsfdi2(), gen_fixuns_truncsfsi2(), genrtl_finish_function(), store_constructor(), store_expr(), store_one_arg(), try_casesi(), and try_tablejump().
| static rtx do_store_flag | ( | tree | exp, | |
| rtx | target, | |||
| enum machine_mode | mode, | |||
| int | only_cheap | |||
| ) | [static] |
Definition at line 10876 of file expr.c.
References abort, abs_optab, bcc_gen_fctn, BRANCH_COST, can_compare_p(), ccp_store_flag, CODE_FOR_nothing, compare_from_rtx(), compare_tree_int(), const0_rtx, const1_rtx, convert_to_mode(), copy_rtx(), emit_jump_insn(), emit_label(), emit_move_insn(), emit_store_flag(), EQ, error_mark_node, expand_and(), expand_binop(), expand_expr(), expand_shift(), ffs_optab, GE, gen_label_rtx(), gen_reg_rtx(), GET_CODE, GET_MODE, get_subtarget(), GT, integer_all_onesp(), integer_onep(), integer_pow2p(), integer_zero_node, integer_zerop(), LE, LOAD_EXTEND_OP, LT, NE, NULL_RTX, OPTAB_LIB_WIDEN, queued_subexp_p(), REG, reg_mentioned_p(), result, safe_from_p(), setcc_gen_code, SIGN_EXTEND, size_int, STRIP_NOPS, swap_condition(), TREE_CODE, TREE_INT_CST_HIGH, TREE_INT_CST_LOW, tree_log2(), TREE_OPERAND, TREE_TYPE, TREE_UNSIGNED, TYPE_MODE, TYPE_PRECISION, and xor_optab.
Referenced by expand_expr(), and expand_expr_real_1().
| static void do_tablejump | ( | rtx | index, | |
| enum machine_mode | mode, | |||
| rtx | range, | |||
| rtx | table_label, | |||
| rtx | default_label | |||
| ) | [static] |
Definition at line 11270 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_INT, gen_reg_rtx(), gen_rtx_LABEL_REF, gen_rtx_MEM(), gen_rtx_MULT, gen_rtx_PLUS, gen_tablejump, GET_CODE, GET_MODE_SIZE, INTVAL, MEM_NOTRAP_P, memory_address_noforce(), NULL_RTX, PIC_CASE_VECTOR_ADDRESS, Pmode, REG, RTX_UNCHANGING_P, and vector.
Referenced by try_tablejump().
| rtx emit_block_move | ( | rtx | x, | |
| rtx | y, | |||
| rtx | size, | |||
| enum block_op_methods | method | |||
| ) |
Definition at line 1762 of file expr.c.
Referenced by assign_parm_setup_block(), assign_parm_setup_stack(), emit_library_call_value_1(), emit_move_complex(), emit_push_insn(), expand_assignment(), expand_builtin_apply(), expand_builtin_init_trampoline(), expand_builtin_memcpy(), expand_builtin_va_copy(), expand_call(), expand_expr(), expand_expr_real_1(), sh_initialize_trampoline(), sparc_va_arg(), store_expr(), store_field(), and store_one_arg().
| static tree emit_block_move_libcall_fn | ( | int | for_call | ) | [static] |
Definition at line 2100 of file expr.c.
References assemble_external(), init_block_move_fn(), make_decl_rtl(), and NULL.
Referenced by block_move_libcall_safe_for_call_parm(), and emit_block_move_via_libcall().
Definition at line 1971 of file expr.c.
References arg_list, build(), build1, build_pointer_type(), convert_to_mode(), copy_to_mode_reg(), emit_block_move_libcall_fn(), emit_insn(), expand_expr(), gen_rtx_CLOBBER, make_tree(), NULL_RTX, NULL_TREE, Pmode, ptr_type_node, RTX_UNCHANGING_P, sizetype, TARGET_MEM_FUNCTIONS, tree_cons, TREE_SIDE_EFFECTS, TREE_TYPE, TYPE_MODE, unsigned_type_node, and XEXP.
Referenced by emit_block_move().
Definition at line 2123 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(), emit_note(), expand_simple_binop(), force_operand(), gen_label_rtx(), gen_reg_rtx(), gen_rtx_PLUS, GET_MODE, iter, LT, NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_CONT, NOTE_INSN_LOOP_END, NULL, NULL_RTX, OPTAB_LIB_WIDEN, PLUS, Pmode, tmp, word_mode, and XEXP.
Referenced by emit_block_move().
Definition at line 1901 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, INTVAL, last, mode, MODE_INT, movstr_optab, and volatile_ok.
Referenced by emit_block_move().
Definition at line 2339 of file expr.c.
References abort, adjust_address, alloca, ashl_optab, assign_stack_temp(), BITS_PER_UNIT, BYTES_BIG_ENDIAN, CONCAT, CONSTANT_P, emit_move_insn(), emit_queue(), expand_binop(), extract_bit_field(), GEN_INT, gen_reg_rtx(), GET_CODE, GET_MODE, GET_MODE_ALIGNMENT, GET_MODE_SIZE, i, INTVAL, mem, MEM, MEM_ALIGN, mode, NULL_RTX, OPTAB_WIDEN, REG, shift, src, start, XEXP, XVECEXP, and XVECLEN.
Referenced by emit_group_store(), emit_library_call_value_1(), emit_push_insn(), expand_assignment(), expand_value_return(), load_register_parameters(), and store_expr().
Definition at line 2474 of file expr.c.
References abort, adjust_address, alloca, ashr_optab, assign_stack_temp(), BITS_PER_UNIT, BYTES_BIG_ENDIAN, CONCAT, CONST0_RTX, dest, dst, emit_group_load(), emit_move_insn(), emit_queue(), expand_binop(), GEN_INT, gen_reg_rtx(), GET_CODE, GET_MODE, GET_MODE_ALIGNMENT, GET_MODE_SIZE, i, INTVAL, MEM, MEM_ALIGN, mode, OPTAB_WIDEN, rtx_equal_p(), shift, start, store_bit_field(), XEXP, XVECEXP, and XVECLEN.
Referenced by assign_parm_adjust_entry_rtl(), assign_parm_setup_block(), assign_parms(), emit_group_store(), emit_library_call_value_1(), expand_call(), and expand_expr().
Definition at line 3283 of file expr.c.
Referenced by add_to_sp(), adjust_stack(), allocate_dynamic_stack_space(), alpha_emit_conditional_branch(), alpha_emit_conditional_move(), alpha_emit_set_long_const(), alpha_emit_xfloating_libcall(), alpha_expand_block_clear(), alpha_expand_block_move(), alpha_expand_compare_and_swap_12(), alpha_expand_epilogue(), alpha_expand_lock_test_and_set_12(), alpha_expand_mov(), alpha_expand_mov_nobwx(), alpha_expand_movmisalign(), alpha_expand_prologue(), alpha_expand_unaligned_load(), alpha_expand_unaligned_load_words(), alpha_expand_unaligned_store(), alpha_expand_unaligned_store_words(), alpha_gp_save_rtx(), alpha_initialize_trampoline(), alpha_setup_incoming_varargs(), alpha_split_compare_and_swap(), alpha_split_const_mov(), alpha_split_lock_test_and_set(), alpha_split_tfmode_frobsign(), anti_adjust_stack(), arm_gen_load_multiple(), arm_gen_movmemqi(), arm_gen_movstrqi(), arm_gen_store_multiple(), arm_legitimize_address(), arm_load_tp(), arm_set_return_address(), assign_parm_setup_block(), assign_parm_setup_reg(), assign_parm_setup_stack(), assign_parms(), assign_parms_unsplit_complex(), bfin_expand_builtin(), bfin_expand_prologue(), build_mips16_call_stub(), c4x_expand_builtin(), c4x_legitimize_address(), clear_storage(), clipper_builtin_saveregs(), clipper_va_arg(), combine_var_copies_in_loop_exit(), convert_move(), copy_insn_list(), copy_src_to_dest(), copy_to_mode_reg(), copy_to_reg(), copy_to_suggested_reg(), cris_expand_epilogue(), cris_expand_pic_call_address(), cris_expand_prologue(), crx_expand_epilogue(), crx_expand_movmem_single(), crx_expand_prologue(), crx_expand_scond(), d30v_expand_builtin_va_arg(), d30v_expand_epilogue(), d30v_expand_prologue(), do_jump_by_parts_equality_rtx(), do_jump_by_parts_zero_rtx(), do_movsi(), do_store_flag(), do_unlink(), dw2_build_landing_pads(), emit_0_to_1_insn(), emit_add(), emit_block_move_via_loop(), emit_clr_insn(), emit_frame_save(), emit_frame_store_1(), emit_group_load(), emit_group_load_1(), emit_group_move(), emit_group_store(), emit_hard_tfmode_operation(), emit_hpdiv_const(), emit_i387_cw_initialization(), emit_initial_value_sets(), emit_ldst(), emit_libcall_block(), emit_library_call_value_1(), emit_load_ptr(), emit_move_after_reload(), emit_move_complex_push(), emit_move_insn_1(), emit_move_multi_word(), emit_move_resolve_push(), emit_move_sequence(), emit_no_conflict_block(), emit_push_insn(), emit_restore_regs(), emit_save_or_restore_regs(), emit_save_regs(), emit_soft_tfmode_libcall(), emit_stack_probe(), emit_store_flag(), emit_store_flag_force(), emit_unop_insn(), emit_unrolled_add(), ephi_backward(), ephi_create(), expand_a_rotate(), expand_a_shift(), expand_abs(), expand_absneg_bit(), expand_and(), expand_ashiftrt(), expand_asm_operands(), expand_assignment(), expand_binop(), expand_block_clear(), expand_block_move(), expand_bool_compare_and_swap(), expand_builtin_apply(), expand_builtin_apply_args_1(), expand_builtin_eh_return(), expand_builtin_lock_release(), expand_builtin_longjmp(), expand_builtin_mathfn(), expand_builtin_nonlocal_goto(), expand_builtin_return(), expand_builtin_setjmp(), expand_builtin_setjmp_receiver(), expand_builtin_setjmp_setup(), expand_builtin_sincos(), expand_builtin_stpcpy(), expand_builtin_strlen(), expand_call(), expand_cmplxdiv_straight(), expand_cmplxdiv_wide(), expand_compare_and_swap_loop(), expand_computed_goto(), expand_copysign_absneg(), expand_copysign_bit(), expand_dec(), expand_decl(), expand_decl_cleanup(), expand_divmod(), expand_doubleword_mult(), expand_eh_region_end_cleanup(), expand_eh_return(), expand_epilogue(), expand_errno_check(), expand_expr(), expand_expr_real_1(), expand_fix(), expand_float(), expand_function_start(), expand_goto(), expand_inc(), expand_increment(), expand_inline_function(), expand_interrupt_handler_epilogue(), expand_interrupt_handler_prologue(), expand_main_function(), expand_movstr(), expand_nl_goto_receiver(), expand_nl_goto_receivers(), expand_nl_handler_label(), expand_powi_1(), expand_prologue(), expand_return(), expand_smod_pow2(), expand_superword_shift(), expand_sync_fetch_operation(), expand_unop(), expand_value_return(), expand_vector_binop(), expand_vector_unop(), extract_bit_field(), extract_force_align_mem_bit_field(), fix_crossing_unconditional_branches(), force_expand_binop(), force_not_mem(), force_operand(), force_reg(), frame_related_constant_load(), frv_emit_movsi(), frv_expand_builtin(), frv_expand_epilogue(), frv_expand_mdpackh_builtin(), frv_split_cond_move(), frv_split_double_load(), frv_split_double_store(), frv_split_iacc_move(), frv_split_minmax(), frv_split_scc(), function_symbol(), gen_absdf2(), gen_abssf2(), gen_add_mult(), gen_adddi3(), gen_addsi3(), gen_allocate_stack(), gen_ashrsi3(), gen_builtin_longjmp(), gen_cmpstrsi(), gen_divmod_fixed_value(), gen_divsi3(), gen_edge_profiler(), gen_eh_epilogue(), gen_eh_return(), gen_ffssi2(), gen_fix_truncdfdi2(), gen_fix_truncdfsi2(), gen_fix_truncsfdi2(), gen_fix_truncsfsi2(), gen_fixuns_truncdfdi2(), gen_fixuns_truncdfsi2(), gen_fixuns_truncsfdi2(), gen_fixuns_truncsfsi2(), gen_frame_mem_offset(), gen_int_relational(), gen_load_of_final_value(), gen_lshrsi3(), gen_mod_pow2(), gen_mod_subtract(), gen_movdi(), gen_movhi(), gen_movqi(), gen_movsi(), gen_movtf(), gen_negdf2(), gen_negsf2(), gen_reload_indi(), gen_reload_insi(), gen_reload_outdi(), gen_reload_outsi(), gen_split_1095(), gen_split_1096(), gen_split_1202(), gen_split_1204(), gen_split_1297(), gen_split_1444(), gen_sse_movaps(), gen_sse_movups(), gen_tablejump_mips161(), gen_tablejump_mips162(), gen_udivsi3(), gen_untyped_call(), gen_v9_scc(), gen_x86_shift_adj_2(), gen_x86_shift_adj_3(), get_arg_pointer_save_area(), get_thread_pointer(), h8300_expand_movsi(), h8300_expand_prologue(), h8300_swap_into_er6(), h8300_swap_out_of_er6(), h8sx_emit_movmd(), hppa_builtin_saveregs(), hppa_expand_epilogue(), hppa_expand_prologue(), hppa_profile_hook(), i860_saveregs(), i860_va_arg(), ia64_emit_cond_move(), ia64_expand_atomic_op(), ia64_expand_compare_and_swap(), ia64_expand_epilogue(), ia64_expand_fetch_and_op(), ia64_expand_load_address(), ia64_expand_lock_release(), ia64_expand_movxf_movrf(), ia64_expand_op_and_fetch(), ia64_expand_prologue(), ia64_expand_vecint_cmov(), ia64_initialize_trampoline(), ia64_output_mi_thunk(), ia64_reload_gp(), ia64_split_call(), ia64_split_return_addr_rtx(), init_set_costs(), initialize_trampoline(), initialize_uninitialized_subregs(), insert_base_initialization(), insert_var_expansion_initialization(), instantiate_virtual_regs_in_insn(), iq2000_add_large_offset_to_sp(), iq2000_emit_frame_related_store(), iq2000_expand_eh_return(), iq2000_expand_epilogue(), iq2000_expand_prologue(), iv_add_mult_cost(), ix86_emit_i387_log1p(), ix86_emit_restore_regs_using_mov(), ix86_emit_save_regs_using_mov(), ix86_expand_binary_operator(), ix86_expand_builtin(), ix86_expand_call(), ix86_expand_epilogue(), ix86_expand_fp_absneg_operator(), ix86_expand_fp_movcc(), ix86_expand_int_movcc(), ix86_expand_move(), ix86_expand_prologue(), ix86_expand_push(), ix86_expand_sse_comi(), ix86_expand_sse_compare(), ix86_expand_strlen(), ix86_expand_strlensi_unroll_1(), ix86_expand_unary_operator(), ix86_expand_vec_set_builtin(), ix86_expand_vector_extract(), ix86_expand_vector_init(), ix86_expand_vector_init_duplicate(), ix86_expand_vector_init_general(), ix86_expand_vector_init_low_nonzero(), ix86_expand_vector_init_one_nonzero(), ix86_expand_vector_init_one_var(), ix86_expand_vector_move(), ix86_expand_vector_move_misalign(), ix86_expand_vector_set(), ix86_force_to_memory(), ix86_setup_incoming_varargs(), ix86_split_ashl(), ix86_split_ashldi(), ix86_split_ashr(), ix86_split_ashrdi(), ix86_split_copysign_var(), ix86_split_long_move(), ix86_split_lshr(), ix86_split_lshrdi(), ix86_split_sse_movcc(), ix86_va_arg(), java_stack_dup(), java_stack_swap(), legitimize_address(), legitimize_operands(), legitimize_pic_address(), legitimize_tls_address(), load_reg(), load_register_parameters(), load_tls_operand(), m32c_emit_epilogue(), m32c_expand_insv(), m32c_expand_movcc(), m32c_initialize_trampoline(), m32c_prepare_shift(), m32c_split_move(), m32r_expand_block_move(), m32r_legitimize_pic_address(), m68hc11_emit_logical(), m68hc11_initialize_trampoline(), m68hc11_reload_operands(), m68hc11_split_move(), m88k_expand_prologue(), machopic_indirect_data_reference(), machopic_legitimize_pic_address(), make_safe_from(), mds_movdi(), mdx_block_move_straight(), mdx_epilogue(), mdx_prologue(), mips16_gp_pseudo_reg(), mips_add_large_offset_to_sp(), mips_block_move_loop(), mips_block_move_straight(), mips_builtin_branch_and_move(), mips_emit_fcc_reload(), mips_emit_frame_related_store(), mips_expand_builtin_compare(), mips_expand_epilogue(), mips_expand_prologue(), mips_force_temporary(), mips_legitimize_const_move(), mips_legitimize_move(), mips_load_call_address(), mips_move_integer(), mips_output_mi_thunk(), mips_restore_gp(), mips_restore_reg(), mips_save_reg(), mips_set_return_address(), mips_setup_incoming_varargs(), mips_split_64bit_move(), mips_va_arg(), mmix_emit_sp_add(), mmix_expand_epilogue(), mmix_expand_prologue(), mmix_initialize_trampoline(), mn10300_builtin_saveregs(), move_block_from_reg(), move_block_to_reg(), move_invariant_reg(), move_movables(), move_tail(), mt_emit_save_restore(), mt_expand_eh_return(), mt_expand_epilogue(), mt_expand_prologue(), mt_setup_incoming_varargs(), noce_emit_move_insn(), optimize_bitfield_assignment_op(), output_stack_adjust(), pj_expand_epilogue(), pj_expand_prologue(), prepare_call_address(), prepare_move_operands(), process_insert_insn(), ra_emit_move_insn(), restore_fpr(), return_addr_rtx(), romp_initialize_trampoline(), rs6000_aix_emit_builtin_unwind_init(), rs6000_emit_allocate_stack(), rs6000_emit_eh_reg_restore(), rs6000_emit_epilogue(), rs6000_emit_load_toc_table(), rs6000_emit_minmax(), rs6000_emit_move(), rs6000_emit_prologue(), rs6000_emit_set_long_const(), rs6000_emit_sync(), rs6000_emit_vector_select(), rs6000_expand_compare_and_swapqhi(), rs6000_expand_vector_extract(), rs6000_expand_vector_init(), rs6000_expand_vector_set(), rs6000_initialize_trampoline(), rs6000_legitimize_tls_address(), rs6000_move_block_from_reg(), rs6000_output_mi_thunk(), rs6000_split_compare_and_swap(), rs6000_split_lock_test_and_set(), rs6000_va_arg(), rtl_gen_const_delta_profiler(), rtl_gen_edge_profiler(), rtl_gen_interval_profiler(), rtl_gen_one_value_profiler_no_edge_manipulation(), rtl_gen_pow2_profiler(), s390_emit_call(), s390_emit_epilogue(), s390_emit_prologue(), s390_expand_atomic(), s390_expand_clrmem(), s390_expand_cmpmem(), s390_expand_cs_hqi(), s390_expand_insv(), s390_expand_logical_operator(), s390_expand_movmem(), s390_expand_plus_operand(), s390_expand_setmem(), s390_get_thread_pointer(), s390_initialize_trampoline(), s390_load_address(), s390_va_arg(), safe_insert_insn_on_edge(), save_fpr(), save_or_restore_regs(), save_restore_insns(), score_force_temporary(), score_initialize_trampoline(), see_def_extension_not_merged(), see_merge_one_def_extension(), set_reg_plus_d(), setup_incoming_varargs(), sh_builtin_saveregs(), sh_expand_epilogue(), sh_expand_prologue(), sh_expand_t_scc(), sh_initialize_trampoline(), sh_output_mi_thunk(), sh_va_arg(), single_move_for_movmem(), single_move_for_strmov(), sjlj_emit_dispatch_table(), sjlj_emit_function_enter(), sjlj_mark_call_sites(), sparc64_initialize_trampoline(), sparc_builtin_saveregs(), sparc_emit_fixunsdi(), sparc_emit_float_lib_cmp(), sparc_expand_compare_and_swap_12(), sparc_expand_epilogue(), sparc_expand_prologue(), sparc_initialize_trampoline(), sparc_output_mi_thunk(), sparc_struct_value_rtx(), sparc_tls_got(), spe_expand_predicate_builtin(), spill_restore_mem(), spill_xfmode_operand(), spill_xfmode_rfmode_operand(), split_iv(), stack_protect_prologue(), store_bit_field(), store_constructor(), store_expr(), store_field(), store_fixed_bit_field(), store_one_arg(), store_reg(), store_unaligned_arguments_into_pseudos(), tail_recursion_args(), th_output_mi_thunk(), thumb_expand_prologue(), thumb_set_return_address(), unroll_loop_runtime_iterations(), widen_operand(), write_complex_part(), x86_initialize_trampoline(), xstormy16_emit_cbranch(), xstormy16_expand_andqi3(), xstormy16_expand_arith(), xstormy16_expand_builtin(), xstormy16_expand_builtin_va_arg(), xstormy16_expand_call(), xstormy16_expand_epilogue(), xstormy16_expand_iorqi3(), xstormy16_expand_prologue(), xstormy16_initialize_trampoline(), xtensa_builtin_saveregs(), xtensa_emit_move_sequence(), xtensa_expand_prologue(), xtensa_load_constant(), xtensa_return_addr(), and xtensa_va_arg().
Definition at line 3352 of file expr.c.
Referenced by emit_move_insn(), emit_move_insn_1(), and gen_move_insn().
| 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 3849 of file expr.c.
Referenced by emit_library_call_value_1(), emit_push_insn(), and store_one_arg().
| void emit_queue | ( | ) |
Definition at line 518 of file expr.c.
References abort, emit_insn(), GET_CODE, p, pending_chain, QUEUED_BODY, QUEUED_INSN, and QUEUED_NEXT.
Referenced by c_expand_asm_operands(), do_compare_and_jump(), do_jump(), emit_cmp_and_jump_insns(), emit_group_load(), emit_group_store(), emit_store_flag(), expand_builtin(), expand_builtin_apply(), expand_builtin_mathfn(), expand_builtin_setjmp_setup(), expand_call(), expand_computed_goto(), expand_decl_init(), expand_end_case_type(), expand_end_stmt_expr(), expand_expr(), expand_expr_stmt_value(), expand_fix(), expand_float(), expand_inline_function(), expand_pending_sizes(), expand_return(), expand_start_case(), expand_start_loop(), IPO_main(), java_lang_expand_expr(), mips_va_arg(), optimize_tail_recursion(), precompute_arguments(), precompute_register_parameters(), prepare_cmp_insn(), rtx_for_function_call(), store_constructor(), store_expr(), store_one_arg(), try_casesi(), and try_tablejump().
Definition at line 385 of file expr.c.
References gen_rtx_QUEUED, GET_MODE, NULL_RTX, and pending_chain.
Referenced by expand_increment().
Definition at line 4163 of file expr.c.
References abort, adjust_address, aggregate_value_p(), bcopy_libfunc, bitpos(), BITS_PER_UNIT, BLOCK_OP_NORMAL, can_address_p(), convert_memory_address(), convert_modes(), convert_to_mode(), copy_rtx(), current_function_returns_pcc_struct, current_function_returns_struct, DECL_RTL, emit_block_move(), emit_group_load(), emit_library_call(), emit_move_insn(), expand_expr(), EXPAND_SUM, EXPAND_WRITE, expr_size(), free_temp_slots(), get_alias_set(), GET_CODE, get_inner_reference(), GET_MODE, GET_MODE_ALIGNMENT, highest_pow2_factor_for_type(), int_size_in_bytes(), integer_type_node, LCT_NORMAL, MEM, MEM_ALIGN, MEM_KEEP_ALIAS_SET_P, MEM_VOLATILE_P, memmove_libfunc, NULL_RTX, store_by_pieces::offset, offset_address(), Pmode, POINTER_TYPE_P, pop_temp_slots(), preserve_temp_slots(), ptr_mode, push_temp_slots(), REG, result, RTX_UNCHANGING_P, set_mem_attributes_minus_bitpos(), shallow_copy_rtx, size, sizetype, stabilize_reference(), store_expr(), store_field(), TARGET_MEM_FUNCTIONS, TREE_CODE, TREE_OPERAND, TREE_READONLY, TREE_TYPE, TREE_UNSIGNED, TYPE_MODE, TYPE_SIZE, and XEXP.
Referenced by assign_parm_setup_reg(), assign_parms(), expand_asm_expr(), expand_decl_init(), expand_expr(), expand_expr_real_1(), expand_iinc(), expand_increment(), expand_java_arraystore(), expand_java_field_op(), flush_quick_stack(), java_lang_expand_expr(), and store_constructor().
| rtx expand_expr | ( | tree | exp, | |
| rtx | target, | |||
| enum machine_mode | tmode, | |||
| enum expand_modifier | modifier | |||
| ) |
Definition at line 6625 of file expr.c.
References abort, add_optab, addr(), ADDRESSOF, addv_optab, adjust_address, adjust_address_nv, and_optab, arg_pointer_rtx, assemble_external(), assign_stack_temp_for_type(), assign_temp(), before, BIGGEST_ALIGNMENT, binary_op, bitpos(), BITS_PER_UNIT, BLOCK_OP_CALL_PARM, BLOCK_OP_NORMAL, BRANCH_COST, build(), build1, build_int_2, build_qualified_type(), build_real(), BUILT_IN_FRONTEND, byte_mode, BYTES_BIG_ENDIAN, can_compare_p(), ccp_jump, cfun, cleanup(), CLEANUP_EH_ONLY, CODE_FOR_nothing, compare_tree_int(), COMPLETE_OR_UNBOUND_ARRAY_TYPE_P, CONCAT, cond, CONST0_RTX, const0_rtx, const1_rtx, CONST_DOUBLE_FROM_REAL_VALUE, const_vector_from_tree(), CONSTANT_P, CONSTRUCTOR_ELTS, convert(), convert_memory_address(), 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_BIT_FIELD, DECL_BUILT_IN, DECL_BUILT_IN_CLASS, DECL_EXTERNAL, decl_function_context(), DECL_INITIAL, DECL_MODE, DECL_NO_STATIC_CHAIN, DECL_NONLOCAL, DECL_RTL, DECL_RTL_SET_P, DECL_SIZE, direct_load, do_compare_rtx_and_jump(), do_jump(), do_jump_by_parts_greater_rtx(), do_pending_stack_adjust(), do_store_flag(), eliminate_constant_term(), emit_0_to_1_insn(), emit_barrier(), emit_block_move(), emit_clr_insn(), emit_cmp_and_jump_insns(), emit_group_store(), emit_indirect_jump(), emit_insn(), emit_jump(), emit_jump_insn(), emit_label(), emit_line_note(), emit_move_insn(), emit_no_conflict_block(), emit_queue(), end_cleanup_deferral(), end_sequence(), EQ, error(), error_mark_node, exact_log2, EXIT_BLOCK_LABELED_BLOCK, EXIT_BLOCK_RETURN, expand_abs(), expand_and(), expand_assignment(), expand_binop(), expand_builtin(), expand_builtin_va_arg(), expand_call(), expand_complex_abs(), expand_computed_goto(), EXPAND_CONST_ADDRESS, expand_decl(), expand_decl_cleanup(), expand_decl_cleanup_eh(), expand_decl_init(), expand_divmod(), expand_eh_region_end_cleanup(), expand_eh_region_start(), expand_end_bindings(), expand_end_loop(), expand_exit_loop_if_false(), expand_expr_stmt_value(), expand_fix(), expand_float(), expand_goto(), expand_increment(), EXPAND_INITIALIZER, EXPAND_MEMORY, expand_mult(), expand_mult_highpart_adjust(), EXPAND_NORMAL, expand_null_return(), expand_return(), expand_shift(), EXPAND_STACK_PARM, expand_start_bindings, expand_start_loop(), EXPAND_SUM, expand_unop(), EXPAND_WRITE, expr_size(), EXPR_WFL_EMIT_LINE_NOTE, EXPR_WFL_FILENAME, EXPR_WFL_LINENO, EXPR_WFL_NODE, extract_bit_field(), ffs_optab, find_function_data(), find_placeholder(), FIRST_PSEUDO_REGISTER, fix_lexical_addr(), flag_force_addr, flag_trapv, flag_unsafe_math_optimizations, fold(), force_const_mem(), force_not_mem(), force_operand(), force_reg(), forced_labels, frame_pointer_rtx, free_temps_for_rtl_expr(), function, FUNCTION_MODE, GE, gen_highpart(), gen_imagpart(), GEN_INT, gen_int_mode(), gen_jump(), gen_label_rtx(), gen_lowpart, gen_lowpart_SUBREG(), gen_realpart(), gen_reg_rtx(), gen_rtx_EXPR_LIST, gen_rtx_fmt_e(), gen_rtx_LABEL_REF, gen_rtx_MEM(), gen_rtx_MINUS, gen_rtx_MULT, gen_rtx_PLUS, GET_CODE, get_exception_pointer(), get_inner_reference(), get_insns(), get_last_insn(), GET_MODE, GET_MODE_ALIGNMENT, GET_MODE_BITSIZE, GET_MODE_CLASS, GET_MODE_SIZE, GET_MODE_WIDER_MODE, get_subtarget(), GT, handler(), HAVE_conditional_move, highest_pow2_factor(), HOST_BITS_PER_INT, HOST_BITS_PER_WIDE_INT, host_integerp(), i, immed_double_const(), index(), inline_function_decl, input_filename, insn, INSN_P, insns, int_expr_size(), int_fits_type_p(), int_size_in_bytes(), integer_one_node, integer_onep(), integer_pow2p(), integer_zero_node, integer_zerop(), internal_error(), INTVAL, invert_truthvalue(), ior_optab, is_aligning_offset(), is_zeros_p(), jumpif(), jumpifnot(), LABEL_REF_NONLOCAL_P, label_rtx(), LABELED_BLOCK_BODY, LABELED_BLOCK_LABEL, layout_decl(), LE, LEGITIMATE_CONSTANT_P, lineno, list_length(), LT, make_tree(), mark_reg_pointer(), mark_temp_addr_taken(), MAX, MEM, MEM_ALIGN, MEM_SIZE, MEM_VOLATILE_P, memory_address(), memory_address_p(), MIN, MODE_COMPLEX_FLOAT, MODE_COMPLEX_INT, mode_for_size(), MODE_INT, mostly_zeros_p(), MOVE_BY_PIECES_P, neg_optab, negate_rtx(), negv_optab, NO_DEFER_POP, NULL, NULL_RTX, NULL_TREE, store_by_pieces::offset, offset_address(), OK_DEFER_POP, one_cmpl_optab, operand_equal_p(), optab, OPTAB_LIB_WIDEN, OPTAB_WIDEN, optimize, optimize_size, output_constant_def(), p, placeholder_list, PLUS, plus_constant, Pmode, pop_temp_slots(), preserve_rtl_expr_result(), preserve_temp_slots(), prev_nonnote_insn(), promote_mode(), protect_from_queue(), ptr_mode, push_temp_slots(), PUT_MODE, put_var_into_stack(), readonly_fields_p(), real_onep(), really_constant_p(), REG, REG_NOTES, REG_P, REG_USERVAR_P, REG_VTABLE_REF, REGNO, replace_equiv_address(), result, RTL_EXPR_RTL, RTL_EXPR_SEQUENCE, RTX_UNCHANGING_P, safe_from_p(), SAVE_EXPR_CONTEXT, save_expr_regs, SAVE_EXPR_RTL, sdiv_optab, SET_DECL_RTL, set_mem_align(), set_mem_attributes(), SIGN_EXTEND, simplify_binary_operation(), simplify_gen_subreg(), size_diffop(), size_int, sizetype, SLOW_UNALIGNED_ACCESS, smax_optab, smin_optab, smul_widen_optab, sorry(), stack_pointer_rtx, start_cleanup_deferral(), start_sequence(), store_constructor(), store_expr(), store_field(), STRICT_ALIGNMENT, string_constant(), sub_optab, subreg_lowpart_offset(), SUBREG_PROMOTED_UNSIGNED_SET, SUBREG_PROMOTED_VAR_P, subv_optab, t1, target_temp_slot_level, temp_slot_level, trampoline_address(), TREE_ADDRESSABLE, TREE_CHAIN, TREE_CODE, TREE_CODE_CLASS, tree_cons, TREE_CONSTANT, TREE_CONSTANT_OVERFLOW, TREE_CST_RTL, tree_int_cst_equal(), TREE_INT_CST_HIGH, TREE_INT_CST_LOW, tree_int_cst_lt(), tree_log2(), tree_low_cst(), TREE_OPERAND, TREE_PURPOSE, TREE_READONLY, TREE_REAL_CST, TREE_SIDE_EFFECTS, TREE_STATIC, TREE_STRING_LENGTH, TREE_STRING_POINTER, TREE_THIS_VOLATILE, TREE_TYPE, TREE_UNSIGNED, TREE_USED, TREE_VALUE, TYPE_ALIGN, TYPE_ALIGN_OK, TYPE_DOMAIN, TYPE_MAX_VALUE, TYPE_MIN_VALUE, TYPE_MODE, TYPE_PRECISION, TYPE_QUAL_CONST, TYPE_QUALS, TYPE_SIZE, TYPE_SIZE_UNIT, TYPE_TRAP_SIGNED, umax_optab, umin_optab, umul_widen_optab, unary_op, UNITS_PER_WORD, unsafe_for_reeval(), validize_mem(), var_rtx(), vars, void_type_node, WITH_CLEANUP_EXPR_RTL, word_mode, XEXP, and xor_optab.
Referenced by addr_for_mem_ref(), alpha_expand_builtin(), alpha_va_arg(), alpha_va_start(), altivec_expand_abs_builtin(), altivec_expand_binop_builtin(), altivec_expand_builtin(), altivec_expand_dst_builtin(), altivec_expand_ld_builtin(), altivec_expand_lv_builtin(), altivec_expand_predicate_builtin(), altivec_expand_st_builtin(), altivec_expand_stv_builtin(), altivec_expand_ternop_builtin(), altivec_expand_unop_builtin(), altivec_expand_vec_set_builtin(), arc_va_arg(), arm_expand_binop_builtin(), arm_expand_builtin(), arm_expand_unop_builtin(), assign_parms(), bfin_expand_binop_builtin(), bfin_expand_builtin(), bfin_expand_unop_builtin(), c4x_expand_builtin(), c4x_va_arg(), c_expand_asm_operands(), c_expand_builtin_fprintf(), c_expand_builtin_printf(), c_expand_expr(), clear_storage_via_libcall(), clipper_va_arg(), clipper_va_start(), computation_cost(), cris_expand_builtin_va_arg(), cxx_expand_expr(), d30v_expand_builtin_va_arg(), d30v_expand_builtin_va_start(), do_compare_and_jump(), do_jump(), do_jump_by_parts_equality(), do_jump_by_parts_greater(), do_store_flag(), emit_block_move_via_libcall(), emit_case_bit_tests(), emit_case_nodes(), emit_library_call_value_1(), expand_asm_operands(), expand_assignment(), expand_builtin(), expand_builtin_adjust_trampoline(), expand_builtin_alloca(), expand_builtin_args_info(), expand_builtin_compare_and_swap(), expand_builtin_constant_p(), expand_builtin_copysign(), expand_builtin_eh_return(), expand_builtin_expect(), expand_builtin_extend_pointer(), expand_builtin_extract_return_addr(), expand_builtin_fabs(), expand_builtin_ffs(), expand_builtin_fprintf(), expand_builtin_fputs(), expand_builtin_frob_return_addr(), expand_builtin_init_trampoline(), expand_builtin_int_roundingfn(), expand_builtin_lock_test_and_set(), expand_builtin_mathfn(), expand_builtin_mathfn_2(), expand_builtin_mathfn_3(), expand_builtin_memcmp(), expand_builtin_memcpy(), expand_builtin_memmove(), expand_builtin_memory_chk(), expand_builtin_mempcpy(), expand_builtin_memset(), expand_builtin_nonlocal_goto(), expand_builtin_pow(), expand_builtin_powi(), expand_builtin_prefetch(), expand_builtin_printf(), expand_builtin_setjmp(), expand_builtin_signbit(), expand_builtin_sprintf(), expand_builtin_stpcpy(), expand_builtin_strcat(), expand_builtin_strchr(), expand_builtin_strcmp(), expand_builtin_strcpy(), expand_builtin_strcspn(), expand_builtin_strlen(), expand_builtin_strncat(), expand_builtin_strncmp(), expand_builtin_strncpy(), expand_builtin_strpbrk(), expand_builtin_strrchr(), expand_builtin_strspn(), expand_builtin_strstr(), expand_builtin_sync_operation(), expand_builtin_unop(), expand_builtin_va_copy(), expand_builtin_va_end(), expand_call(), expand_case(), expand_cleanups(), expand_computed_goto(), expand_decl(), expand_eh_region_end_allowed(), expand_eh_region_end_cleanup(), expand_eh_region_end_must_not_throw(), expand_end_case_type(), expand_expr(), expand_expr_addr_expr_1(), expand_expr_real_1(), expand_expr_stmt(), expand_expr_stmt_value(), expand_function_start(), expand_gimple_cond_expr(), expand_increment(), expand_inline_function(), expand_mult_add(), expand_one_builtin(), expand_operands(), expand_pending_sizes(), expand_return(), expand_shift(), expand_vec_cond_expr(), expand_vec_shift_expr(), expr_size(), fix_unsafe_tree(), fr30_pass_by_reference(), fr30_pass_by_value(), frv_expand_builtin_va_start(), frv_read_argument(), get_builtin_sync_mem(), get_memory_rtx(), hppa_va_arg(), i860_va_arg(), i860_va_start(), i960_va_arg(), i960_va_start(), ia64_expand_compare_and_swap(), ia64_expand_fetch_and_op(), ia64_expand_lock_release(), ia64_expand_lock_test_and_set(), ia64_expand_op_and_fetch(), ia64_va_arg(), ix86_expand_binop_builtin(), ix86_expand_builtin(), ix86_expand_sse_comi(), ix86_expand_sse_compare(), ix86_expand_store_builtin(), ix86_expand_unop1_builtin(), ix86_expand_unop_builtin(), ix86_expand_vec_ext_builtin(), ix86_expand_vec_init_builtin(), ix86_expand_vec_set_builtin(), ix86_va_arg(), ix86_va_start(), java_lang_expand_expr(), m32r_va_arg(), m68hc11_expand_builtin_va_start(), m68hc11_va_arg(), m88k_va_arg(), m88k_va_start(), mips_prepare_builtin_arg(), mips_va_arg(), mips_va_start(), mmix_expand_builtin_va_arg(), mn10200_va_arg(), mn10300_va_arg(), optimize_bitfield_assignment_op(), output_constant(), output_function_exception_table(), output_ttype(), pj_expand_builtin_va_arg(), precompute_arguments(), precompute_register_parameters(), read_complex_part(), reduce_to_bit_field_precision(), rs6000_expand_binop_builtin(), rs6000_expand_builtin(), rs6000_expand_ternop_builtin(), rs6000_expand_unop_builtin(), rs6000_va_arg(), rs6000_va_start(), rtx_for_function_call(), s390_expand_builtin(), s390_va_arg(), s390_va_start(), sh_expand_builtin(), sh_va_arg(), sh_va_start(), sparc_expand_builtin(), sparc_va_arg(), spe_expand_builtin(), spe_expand_evsel_builtin(), spe_expand_predicate_builtin(), spe_expand_stv_builtin(), std_expand_builtin_va_arg(), std_expand_builtin_va_start(), store_constructor(), store_expr(), store_field(), store_one_arg(), tail_recursion_args(), try_casesi(), try_tablejump(), update_nonlocal_goto_save_area(), v850_va_arg(), variable_size(), vector_compare_rtx(), xstormy16_expand_builtin(), xstormy16_expand_builtin_va_arg(), xstormy16_expand_builtin_va_start(), xtensa_va_arg(), and xtensa_va_start().
Definition at line 9675 of file expr.c.
References add_optab, addr(), addv_optab, BITS_PER_WORD, build(), CODE_FOR_nothing, convert(), copy_rtx(), copy_to_reg(), DECL_BIT_FIELD, emit_move_insn(), enqueue_insn(), expand_assignment(), expand_binop(), expand_expr(), force_reg(), GEN_FCN, GEN_INT, gen_move_insn(), general_operand(), GET_CODE, get_last_insn(), GET_MODE, GET_MODE_BITSIZE, INTVAL, MEM, NULL_RTX, optab, OPTAB_LIB_WIDEN, Pmode, REG, replace_equiv_address(), result, save_expr(), stabilize(), stabilize_reference(), sub_optab, SUBREG_PROMOTED_VAR_P, SUBREG_REG, subv_optab, TREE_CODE, TREE_OPERAND, TREE_TYPE, TREE_UNSIGNED, TYPE_MODE, TYPE_TRAP_SIGNED, and XEXP.
Referenced by expand_expr(), and store_constructor().
Definition at line 6525 of file expr.c.
References build1, placeholder_list, POINTER_TYPE_P, TREE_CHAIN, TREE_CODE, TREE_CODE_CLASS, TREE_OPERAND, TREE_PURPOSE, TREE_TYPE, and TYPE_MAIN_VARIANT.
Referenced by component_ref_for_mem_expr(), expand_expr(), get_alias_set(), and get_inner_reference().
| void finish_expr_for_function | ( | ) |
Definition at line 5986 of file expr.c.
Referenced by add_cost(), allocate_dynamic_stack_space(), alpha_initialize_trampoline(), arm_legitimize_address(), combine_var_copies_in_loop_exit(), compare_and_jump_seq(), copy_insn_list(), copy_rtx_and_substitute(), copy_to_mode_reg(), copy_to_reg(), emit_block_move_via_loop(), emit_library_call_value_1(), emit_move_sequence(), expand_builtin_apply_args_1(), expand_builtin_memcpy(), expand_builtin_mempcpy(), expand_builtin_memset(), expand_builtin_setjmp_setup(), expand_builtin_stpcpy(), expand_builtin_strncpy(), expand_call(), expand_decl(), expand_divmod(), expand_expr(), expand_expr_addr_expr_1(), expand_expr_real_1(), expand_inline_function(), expand_movstr(), expand_mult(), expand_mult_const(), expand_mult_highpart(), expand_mult_highpart_adjust(), extract_force_align_mem_bit_field(), fixup_var_refs_1(), force_into(), force_operand(), force_reg(), gen_divmod_fixed_value(), gen_load_of_final_value(), gen_mod_pow2(), gen_mod_subtract(), hppa_legitimize_address(), insert_base_initialization(), insn_divmod_values_to_profile(), instantiate_virtual_regs_1(), instantiate_virtual_regs_in_insn(), ix86_expand_int_movcc(), ix86_expand_move(), ix86_va_arg(), legitimize_address(), legitimize_pic_address(), legitimize_tls_address(), memory_address(), move_invariant_reg(), probe_stack_range(), purge_addressof_1(), rs6000_emit_move(), rs6000_legitimize_address(), rtl_lv_add_condition_to_bb(), s390_expand_clrmem(), s390_expand_cmpmem(), s390_expand_movmem(), s390_expand_setmem(), sh_initialize_trampoline(), sparc_expand_move(), split_iv(), store_expr(), thumb_legitimize_address(), unroll_loop(), and unroll_loop_runtime_iterations().
| tree get_inner_reference | ( | tree | exp, | |
| HOST_WIDE_INT * | pbitsize, | |||
| HOST_WIDE_INT * | pbitpos, | |||
| tree * | poffset, | |||
| enum machine_mode * | pmode, | |||
| int * | punsignedp, | |||
| int * | pvolatilep | |||
| ) |
Definition at line 5797 of file expr.c.
References bitsize_unit_node, bitsize_zero_node, bitsizetype, build(), contains_placeholder_p(), convert(), DECL_BIT_FIELD, DECL_FIELD_BIT_OFFSET, DECL_FIELD_OFFSET, DECL_MODE, DECL_SIZE, find_placeholder(), fold(), GET_MODE_BITSIZE, host_integerp(), index(), integer_zerop(), store_by_pieces::offset, size_binop(), size_zero_node, sizetype, TREE_CODE, TREE_CONSTANT, tree_low_cst(), TREE_OPERAND, TREE_THIS_VOLATILE, TREE_TYPE, TREE_UNSIGNED, TYPE_DOMAIN, TYPE_MIN_VALUE, TYPE_MODE, TYPE_SIZE, and TYPE_SIZE_UNIT.
Referenced by decode_field_reference(), do_jump(), expand_assignment(), expand_expr(), expand_expr_addr_expr_1(), expand_expr_real_1(), fold_unary(), get_pointer_alignment(), may_be_unaligned_p(), object_analysis(), optimize_bit_field_compare(), split_address_cost(), split_address_to_core_and_offset(), tree_to_aff_combination(), and vect_object_analysis().
Definition at line 4135 of file expr.c.
References FIRST_PSEUDO_REGISTER, GET_CODE, preserve_subexpressions_p(), REG, REGNO, and RTX_UNCHANGING_P.
Referenced by do_store_flag(), expand_expr(), expand_expr_real_1(), and force_operand().
| static GTY | ( | () | ) | [static] |
Definition at line 2058 of file expr.c.
References args, build_decl, build_function_type_list(), const_ptr_type_node, DECL_ARTIFICIAL, DECL_EXTERNAL, get_identifier(), NULL_RTX, NULL_TREE, ptr_type_node, SET_DECL_ASSEMBLER_NAME, SET_DECL_RTL, sizetype, TARGET_MEM_FUNCTIONS, TREE_NOTHROW, TREE_PUBLIC, unsigned_type_node, and void_type_node.
| int handled_component_p | ( | tree | t | ) |
Definition at line 5955 of file expr.c.
Referenced by array_ref_contains_indirect_ref(), build_addr(), build_fold_addr_expr_with_type(), can_address_p(), ccp_decl_initial_min_invariant(), check_tree(), component_uses_parent_alias_set(), compute_reloc_for_constant(), convert_local_reference(), convert_nonlocal_reference(), expand_assignment(), find_interesting_uses_address(), fold_unary(), get_alias_set(), get_base_address(), get_constraint_for(), get_pointer_alignment(), get_ref_tag(), get_virtual_var(), gimplify_compound_lval(), is_gimple_addressable(), object_analysis(), output_addressed_constants(), prepare_decl_rtl(), propagate_into_addr(), recompute_tree_invarant_for_addr_expr(), recompute_tree_invariant_for_addr_expr(), ref_contains_array_ref(), strict_aliasing_warning(), try_move_mult_to_index(), var_decl_component_p(), vect_object_analysis(), and verify_expr().
| static HOST_WIDE_INT highest_pow2_factor | ( | tree | exp | ) | [static] |
Definition at line 6435 of file expr.c.
References BIGGEST_ALIGNMENT, host_integerp(), integer_pow2p(), MAX, MIN, TREE_CODE, TREE_CONSTANT_OVERFLOW, TREE_INT_CST_LOW, tree_low_cst(), and TREE_OPERAND.
Referenced by analyze_offset_expr(), expand_expr(), expand_expr_real_1(), highest_pow2_factor(), highest_pow2_factor_for_target(), highest_pow2_factor_for_type(), store_constructor(), and store_expr().
Definition at line 6505 of file expr.c.
References BITS_PER_UNIT, highest_pow2_factor(), MAX, and TYPE_ALIGN.
Referenced by expand_assignment().
Definition at line 352 of file expr.c.
Referenced by build_new_1(), c_parser_for_statement(), genrtl_for_stmt(), prepare_function_start(), stabilize_expr(), stabilize_throw_expr(), vect_is_simple_iv_evolution(), vect_update_ivs_after_vectorizer(), and WFE_Expand_Expr().
Definition at line 9582 of file expr.c.
References BIGGEST_ALIGNMENT, compare_tree_int(), exact_log2, host_integerp(), TREE_CODE, tree_low_cst(), TREE_OPERAND, and TREE_TYPE.
Referenced by expand_expr(), and expand_expr_real_1().
| static int is_zeros_p | ( | tree | exp | ) | [static] |
Definition at line 4801 of file expr.c.
References CONSTRUCTOR_ELTS, dconst0, integer_zerop(), NULL_TREE, REAL_VALUES_IDENTICAL, TREE_CHAIN, TREE_CODE, TREE_IMAGPART, TREE_OPERAND, TREE_REAL_CST, TREE_REALPART, TREE_TYPE, TREE_VALUE, and TREE_VECTOR_CST_ELTS.
Referenced by const_vector_from_tree(), expand_expr(), is_zeros_p(), mostly_zeros_p(), and store_constructor().
Definition at line 9936 of file expr.c.
Referenced by expand_expr(), expand_gimple_cond_expr(), and store_constructor().
Definition at line 9926 of file expr.c.
Referenced by expand_expr(), expand_expr_real_1(), expand_gimple_cond_expr(), and store_expr().
| static int mostly_zeros_p | ( | tree | exp | ) | [static] |
Definition at line 4849 of file expr.c.
References CONSTRUCTOR_ELTS, is_zeros_p(), NULL_TREE, TREE_CHAIN, TREE_CODE, TREE_TYPE, TREE_VALUE, and zeros.
Referenced by expand_expr(), expand_expr_real_1(), mostly_zeros_p(), and store_constructor().
Definition at line 2220 of file expr.c.
References abort, adjust_address, BITS_PER_UNIT, build_int_2, BYTES_BIG_ENDIAN, delete_insns_since(), emit_insn(), emit_move_insn(), expand_shift(), GEN_INT, gen_rtx_REG(), get_last_insn(), i, last, mode, mode_for_size(), MODE_INT, NULL_RTX, operand_subword(), shift, UNITS_PER_WORD, and word_mode.
Referenced by alpha_setup_incoming_varargs(), arc_setup_incoming_varargs(), assign_parm_adjust_entry_rtl(), assign_parm_setup_block(), assign_parms(), hppa_builtin_saveregs(), i960_setup_incoming_varargs(), iq2000_setup_incoming_varargs(), m32r_setup_incoming_varargs(), m88k_builtin_saveregs(), mips_setup_incoming_varargs(), setup_incoming_varargs(), and sh_builtin_saveregs().
| void move_block_to_reg | ( | int | regno, | |
| rtx | x, | |||
| int | nregs, | |||
| enum machine_mode | mode | |||
| ) |
Definition at line 2175 of file expr.c.
Referenced by emit_push_insn(), and load_register_parameters().
| rtx move_by_pieces | ( | rtx | to, | |
| rtx | from, | |||
| unsigned HOST_WIDE_INT | len, | |||
| unsigned int | align, | |||
| int | endp | |||
| ) |
Definition at line 1498 of file expr.c.
Referenced by emit_block_move(), emit_push_insn(), expand_block_move(), expand_builtin_mempcpy(), mdx_block_move_straight(), and mips_block_move_straight().
| static void move_by_pieces_1 | ( | rtx * | genfun, | |
| enum machine_mode | mode, | |||
| struct move_by_pieces * | data | |||
| ) | [static] |
Definition at line 1691 of file expr.c.
References abort, 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, gen_add2_insn(), GEN_INT, GET_MODE_SIZE, HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT, 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.
Referenced by move_by_pieces().
| static unsigned HOST_WIDE_INT move_by_pieces_ninsns | ( | unsigned HOST_WIDE_INT | l, | |
| unsigned int | align | |||
| ) | [static] |
Definition at line 1650 of file expr.c.
References abort, BIGGEST_ALIGNMENT, BITS_PER_UNIT, CODE_FOR_nothing, GET_CLASS_NARROWEST_MODE, GET_MODE_ALIGNMENT, GET_MODE_SIZE, GET_MODE_WIDER_MODE, max_size, mode, MODE_INT, mov_optab, MOVE_MAX, n_insns, SLOW_UNALIGNED_ACCESS, and word_mode.
Referenced by move_by_pieces(), and store_by_pieces_1().
| static rtx do_store_flag PARAMS | ( | (tree, rtx, enum machine_mode, int) | ) | [static] |
| static rtx store_field PARAMS | ( | (rtx, HOST_WIDE_INT, HOST_WIDE_INT, enum machine_mode, tree, enum machine_mode, int, tree, int) | ) | [static] |
| static void store_constructor_field PARAMS | ( | (rtx, unsigned HOST_WIDE_INT, HOST_WIDE_INT, enum machine_mode, tree, tree, int, int) | ) | [static] |
| static int is_zeros_p PARAMS | ( | (tree) | ) | [static] |
| static void store_by_pieces_2 PARAMS | ( | (rtx(*)(rtx,...), enum machine_mode, struct store_by_pieces *) | ) | [static] |
| static void store_by_pieces_1 PARAMS | ( | (struct store_by_pieces *, unsigned int) | ) | [static] |
| static rtx clear_by_pieces_1 PARAMS | ( | (PTR, HOST_WIDE_INT, enum machine_mode) | ) | [static] |
| static tree emit_block_move_libcall_fn PARAMS | ( | (int) | ) | [static] |
Definition at line 77 of file cplus-dem.c.
| static void move_by_pieces_1 PARAMS | ( | (rtx(*)(rtx,...), enum machine_mode, struct move_by_pieces *) | ) | [static] |
| static unsigned HOST_WIDE_INT move_by_pieces_ninsns PARAMS | ( | (unsigned HOST_WIDE_INT, unsigned int) | ) | [static] |
Definition at line 409 of file expr.c.
References copy_rtx(), copy_to_reg(), emit_insn_before(), gen_move_insn(), gen_reg_rtx(), GET_CODE, GET_MODE, MEM, pending_chain, PLUS, QUEUED_COPY, QUEUED_INSN, QUEUED_VAR, replace_equiv_address(), replace_equiv_address_nv(), RTX_CODE, XEXP, and is::y.
Referenced by adjust_stack(), anti_adjust_stack(), c4x_expand_builtin(), clear_storage(), convert_move(), emit_block_move(), emit_move_insn(), emit_push_insn(), emit_store_flag(), emit_unop_insn(), expand_asm_operands(), expand_binop(), expand_builtin_prefetch(), expand_complex_abs(), expand_end_case_type(), expand_end_stmt_expr(), expand_expr(), expand_fix(), expand_float(), expand_mult(), expand_twoval_binop(), expand_unop(), extract_bit_field(), precompute_arguments(), prepare_call_address(), prepare_cmp_insn(), prepare_float_lib_cmp(), prepare_operand(), protect_from_queue(), store_bit_field(), store_by_pieces(), store_expr(), try_casesi(), and try_tablejump().
Definition at line 3711 of file expr.c.
Referenced by emit_library_call_value_1(), emit_push_insn(), and expand_call().
| int queued_subexp_p | ( | rtx | x | ) |
Definition at line 495 of file expr.c.
References GET_CODE, MEM, MINUS, PLUS, and XEXP.
Referenced by do_store_flag(), queued_subexp_p(), and store_expr().
Definition at line 6118 of file expr.c.
Referenced by c_safe_from_p(), do_store_flag(), expand_builtin_fabs(), expand_expr(), expand_expr_real_1(), expand_operands(), and safe_from_p().
| rtx store_by_pieces | ( | rtx | to, | |
| unsigned HOST_WIDE_INT | len, | |||
| rtx * | constfun, | |||
| PTR | constfundata, | |||
| unsigned int | align, | |||
| int | endp | |||
| ) |
Definition at line 2821 of file expr.c.
References abort, adjust_address, adjust_automodify_address, store_by_pieces::autinc_to, store_by_pieces::constfun, store_by_pieces::constfundata, constm1_rtx, copy_addr_to_reg(), emit_insn(), store_by_pieces::explicit_inc_to, gen_add2_insn(), HAVE_POST_INCREMENT, store_by_pieces::len, MOVE_BY_PIECES_P, store_by_pieces::offset, plus_constant, protect_from_queue(), store_by_pieces::reverse, store_by_pieces_1(), store_by_pieces::to, and store_by_pieces::to_addr.
Referenced by expand_builtin_memcpy(), expand_builtin_mempcpy(), expand_builtin_memset(), and expand_builtin_strncpy().
| static void store_by_pieces_1 | ( | struct store_by_pieces * | data, | |
| unsigned int | align | |||
| ) | [static] |
Definition at line 2917 of file expr.c.
References abort, BIGGEST_ALIGNMENT, BITS_PER_UNIT, CODE_FOR_nothing, CONSTANT_P, copy_addr_to_reg(), GEN_FCN, GET_CLASS_NARROWEST_MODE, GET_CODE, GET_MODE_ALIGNMENT, GET_MODE_SIZE, GET_MODE_WIDER_MODE, max_size, mode, MODE_INT, mov_optab, move_by_pieces_ninsns(), MOVE_MAX, 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, word_mode, and XEXP.
Referenced by clear_by_pieces(), and store_by_pieces().
| static void store_by_pieces_2 | ( | rtx * | genfun, | |
| enum machine_mode | mode, | |||
| struct store_by_pieces * | data | |||
| ) | [static] |
Definition at line 3003 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, store_by_pieces::len, store_by_pieces::offset, store_by_pieces::reverse, size, store_by_pieces::to, and store_by_pieces::to_addr.
Referenced by store_by_pieces_1().
Definition at line 4941 of file expr.c.
References abort, adjust_address, alloca, assign_temp(), bit_position(), bitpos(), BITS_PER_UNIT, BITS_PER_WORD, build(), build_decl, build_int_2, build_qualified_type(), BYTES_BIG_ENDIAN, clear_storage(), CONST0_RTX, const0_rtx, constm1_rtx, CONSTRUCTOR_ELTS, contains_placeholder_p(), convert(), convert_to_mode(), copy_rtx(), count, DECL_BIT_FIELD, DECL_FIELD_BIT_OFFSET, DECL_FIELD_OFFSET, DECL_MODE, DECL_NONADDRESSABLE_P, DECL_SIZE, emit_insn(), emit_label(), emit_library_call(), emit_move_insn(), emit_queue(), EXPAND_CONST_ADDRESS, expand_end_loop(), expand_exit_loop_if_false(), expand_expr(), expand_increment(), expand_start_loop(), expr_size(), fields_length(), fold(), GEN_INT, gen_label_rtx(), gen_reg_rtx(), gen_rtx_CLOBBER, gen_rtx_SYMBOL_REF, get_alias_set(), GET_CODE, GET_MODE, GET_MODE_BITSIZE, GET_MODE_CLASS, GET_MODE_SIZE, get_set_constructor_bits(), highest_pow2_factor(), host_integerp(), i, index(), int_bit_position(), int_size_in_bytes(), integer_one_node, integer_type_node, integer_zerop(), is_zeros_p(), LCT_NORMAL, list_length(), lo, make_tree(), MEM, MEM_KEEP_ALIAS_SET_P, memset_libfunc, mode_for_size(), MODE_INT, mostly_zeros_p(), NULL_RTX, NULL_TREE, store_by_pieces::offset, offset_address(), plus_constant, Pmode, promote_mode(), ptr_mode, REG, REG_P, RTX_UNCHANGING_P, save_expr(), SAVE_EXPR_RTL, SET_DECL_RTL, size_binop(), size_diffop(), sizetype, ssize_int, ssizetype, store_constructor_field(), store_expr(), TARGET_MEM_FUNCTIONS, TREE_CHAIN, TREE_CODE, TREE_INT_CST_LOW, tree_low_cst(), TREE_OPERAND, TREE_PURPOSE, TREE_READONLY, TREE_STATIC, TREE_TYPE, TREE_UNSIGNED, TREE_VALUE, TYPE_ALIGN, TYPE_DEBUG_REPRESENTATION_TYPE, TYPE_DOMAIN, TYPE_FIELDS, TYPE_MAX_VALUE, TYPE_MIN_VALUE, TYPE_MODE, TYPE_NONALIASED_COMPONENT, TYPE_PRECISION, TYPE_QUAL_CONST, TYPE_SIZE, TYPE_SIZE_UNIT, UNITS_PER_WORD, word_mode, and XEXP.
Referenced by expand_expr(), expand_expr_real_1(), store_constructor(), and store_constructor_field().
| 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 4891 of file expr.c.
References adjust_address, BITS_PER_UNIT, copy_rtx(), GET_CODE, GET_MODE, GET_MODE_ALIGNMENT, MEM, MEM_ALIAS_SET, MEM_KEEP_ALIAS_SET_P, set_mem_alias_set(), store_constructor(), store_field(), and TREE_CODE.
Referenced by store_constructor().
Definition at line 4438 of file expr.c.
Referenced by assign_parms(), expand_assignment(), expand_expr(), expand_expr_real_1(), expand_inline_function(), initialize_argument_information(), store_constructor(), store_expr(), and store_field().
| static rtx store_field | ( | rtx | target, | |
| HOST_WIDE_INT | bitsize, | |||
| HOST_WIDE_INT | bitpos, | |||
| enum machine_mode | mode, | |||
| tree | exp, | |||
| enum machine_mode | value_mode, | |||
| int | unsignedp, | |||
| tree | type, | |||
| int | alias_set | |||
| ) | [static] |
Definition at line 5583 of file expr.c.
References abort, addr(), adjust_address, assign_temp(), BITS_PER_UNIT, BLOCK_OP_NORMAL, build_int_2, build_qualified_type(), BYTES_BIG_ENDIAN, compare_tree_int(), CONCAT, const0_rtx, CONSTANT_ADDRESS_P, convert_modes(), copy_rtx(), copy_to_reg(), count, direct_store, emit_block_move(), emit_move_insn(), expand_and(), expand_expr(), expand_shift(), extract_bit_field(), GEN_INT, gen_int_mode(), GET_CODE, GET_MODE, GET_MODE_ALIGNMENT, GET_MODE_BITSIZE, GET_MODE_CLASS, HOST_BITS_PER_WIDE_INT, int_size_in_bytes(), MEM, MEM_ALIAS_SET, MEM_ALIGN, MEM_KEEP_ALIAS_SET_P, MEM_SET_IN_STRUCT_P, MEM_VOLATILE_P, MODE_COMPLEX_FLOAT, MODE_COMPLEX_INT, MODE_INT, NULL_RTX, PLUS, REG, replace_equiv_address(), set_mem_alias_set(), size_int, SLOW_UNALIGNED_ACCESS, store_bit_field(), store_expr(), TREE_CODE, TREE_TYPE, TYPE_MODE, TYPE_QUAL_CONST, TYPE_QUALS, TYPE_SIZE, virtual_incoming_args_rtx, virtual_stack_vars_rtx, and XEXP.
Referenced by expand_assignment(), expand_expr(), expand_expr_real_1(), store_constructor_field(), and store_field().
| tree string_constant | ( | tree | arg, | |
| tree * | ptr_offset | |||
| ) |
Definition at line 9633 of file expr.c.
Referenced by c_getstr(), c_strlen(), expand_expr(), and fold_read_from_constant_string().
| int try_casesi | ( | tree | index_type, | |
| tree | index_expr, | |||
| tree | minval, | |||
| tree | range, | |||
| table_label | , | |||
| rtx | default_label | |||
| ) |
Definition at line 11179 of file expr.c.
References build(), 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(), emit_queue(), expand_expr(), gen_casesi, GET_MODE_BITSIZE, HAVE_casesi, index(), integer_zero_node, NULL_RTX, protect_from_queue(), TREE_TYPE, TREE_UNSIGNED, and TYPE_MODE.
Referenced by expand_case(), and expand_end_case_type().
Definition at line 2710 of file expr.c.
Referenced by emit_library_call_value_1(), and load_register_parameters().
Definition at line 2675 of file expr.c.
Referenced by alpha_legitimize_address(), bfin_expand_call(), emit_library_call_value_1(), expand_builtin_apply(), expand_call(), Expand_Load(), Expand_Store(), hppa_profile_hook(), ia64_expand_call(), ix86_expand_call(), load_register_parameters(), mips_expand_call(), prepare_call_address(), rs6000_legitimize_tls_address(), s390_emit_call(), sh_output_mi_thunk(), use_group_regs(), and use_regs().
Definition at line 6362 of file expr.c.
References DECL_RTL, STRIP_NOPS, and TREE_CODE.
Referenced by expand_expr().
| int vector_mode_valid_p | ( | enum machine_mode | mode | ) |
| enum insn_code clrstr_optab[NUM_MACHINE_MODES] |
Definition at line 247 of file expr.c.
Referenced by clear_storage_via_clrstr(), init_all_optabs(), and init_optabs().
| int cse_not_expected |
Definition at line 105 of file expr.c.
Referenced by basereg_operand(), do_jump(), emit_move_sequence(), expand_expr(), expand_expr_real_1(), fold_builtin_constant_p(), get_address_cost(), memory_address(), move_src_operand(), noce_try_cmove_arith(), prefetch_cc_operand(), prefetch_nocc_operand(), prepare_function_start(), reg_or_0_or_nonsymb_mem_operand(), rest_of_compilation(), rest_of_handle_cse(), rest_of_handle_cse2(), rest_of_handle_gcse(), and use_anchored_address().
char direct_load[NUM_MACHINE_MODES] [static] |
Definition at line 198 of file expr.c.
Referenced by convert_modes(), convert_move(), expand_expr(), and init_expr_once().
char direct_store[NUM_MACHINE_MODES] [static] |
bool float_extend_from_mem[NUM_MACHINE_MODES][NUM_MACHINE_MODES] [static] |
Definition at line 203 of file expr.c.
Referenced by compress_float_constant(), and init_expr_once().
| enum insn_code movstr_optab[NUM_MACHINE_MODES] |
Definition at line 244 of file expr.c.
Referenced by emit_block_move_via_movstr(), init_all_optabs(), and init_optabs().
tree placeholder_list = 0 [static] |
Definition at line 108 of file expr.c.
Referenced by do_jump(), expand_expr(), and find_placeholder().
1.5.6