#include "config.h"#include "system.h"#include "rtl.h"#include "tm_p.h"#include "flags.h"#include "regs.h"#include "hard-reg-set.h"#include "basic-block.h"#include "insn-config.h"#include "function.h"#include "expr.h"#include "insn-attr.h"#include "recog.h"#include "real.h"#include "toplev.h"

Go to the source code of this file.
Data Types | |
| type | undo |
| type | undobuf |
Defines | |
| #define | gen_lowpart dont_use_gen_lowpart_you_dummy |
| #define | INSN_CUID(INSN) (INSN_UID (INSN) > max_uid_cuid ? insn_cuid (INSN) : uid_cuid[INSN_UID (INSN)]) |
| #define | UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD(val) (((unsigned HOST_WIDE_INT) (val) << (BITS_PER_WORD - 1)) << 1) |
| #define | nonzero_bits(X, M) cached_nonzero_bits (X, M, NULL_RTX, VOIDmode, 0) |
| #define | num_sign_bit_copies(X, M) cached_num_sign_bit_copies (X, M, NULL_RTX, VOIDmode, 0) |
| #define | SUBST(INTO, NEWVAL) do_SUBST(&(INTO), (NEWVAL)) |
| #define | SUBST_INT(INTO, NEWVAL) do_SUBST_INT(&(INTO), (NEWVAL)) |
| #define | COMBINE_RTX_EQUAL_P(X, Y) |
| #define | nonzero_bits_with_known(X, MODE) cached_nonzero_bits (X, MODE, known_x, known_mode, known_ret) |
| #define | cached_num_sign_bit_copies() |
| #define | num_sign_bit_copies_with_known(X, M) cached_num_sign_bit_copies (X, M, known_x, known_mode, known_ret) |
Functions/Subroutines | |
| static void do_SUBST | PARAMS ((rtx *, rtx)) |
| static void do_SUBST_INT | PARAMS ((int *, int)) |
| static void init_reg_last_arrays | PARAMS ((void)) |
| static void set_nonzero_bits_and_sign_copies | PARAMS ((rtx, rtx, void *)) |
| static int cant_combine_insn_p | PARAMS ((rtx)) |
| static int can_combine_p | PARAMS ((rtx, rtx, rtx, rtx, rtx *, rtx *)) |
| static int combinable_i3pat | PARAMS ((rtx, rtx *, rtx, rtx, int, rtx *)) |
| static rtx try_combine | PARAMS ((rtx, rtx, rtx, int *)) |
| static rtx subst | PARAMS ((rtx, rtx, rtx, int, int)) |
| static rtx combine_simplify_rtx | PARAMS ((rtx, enum machine_mode, int, int)) |
| static rtx simplify_logical | PARAMS ((rtx, int)) |
| static rtx make_extraction | PARAMS ((enum machine_mode, rtx, HOST_WIDE_INT, rtx, unsigned HOST_WIDE_INT, int, int, int)) |
| static rtx make_compound_operation | PARAMS ((rtx, enum rtx_code)) |
| static int get_pos_from_mask | PARAMS ((unsigned HOST_WIDE_INT, unsigned HOST_WIDE_INT *)) |
| static rtx force_to_mode | PARAMS ((rtx, enum machine_mode, unsigned HOST_WIDE_INT, rtx, int)) |
| static rtx if_then_else_cond | PARAMS ((rtx, rtx *, rtx *)) |
| static rtx known_cond | PARAMS ((rtx, enum rtx_code, rtx, rtx)) |
| static int rtx_equal_for_field_assignment_p | PARAMS ((rtx, rtx)) |
| static rtx simplify_and_const_int | PARAMS ((rtx, enum machine_mode, rtx, unsigned HOST_WIDE_INT)) |
| static unsigned HOST_WIDE_INT cached_nonzero_bits | PARAMS ((rtx, enum machine_mode, rtx, enum machine_mode, unsigned HOST_WIDE_INT)) |
| static unsigned int cached_num_sign_bit_copies | PARAMS ((rtx, enum machine_mode, rtx, enum machine_mode, unsigned int)) |
| static int merge_outer_ops | PARAMS ((enum rtx_code *, HOST_WIDE_INT *, enum rtx_code, HOST_WIDE_INT, enum machine_mode, int *)) |
| static rtx simplify_shift_const | PARAMS ((rtx, enum rtx_code, enum machine_mode, rtx, int)) |
| static int recog_for_combine | PARAMS ((rtx *, rtx, rtx *)) |
| static rtx gen_lowpart_for_combine | PARAMS ((enum machine_mode, rtx)) |
| static rtx gen_binary | PARAMS ((enum rtx_code, enum machine_mode, rtx, rtx)) |
| static enum rtx_code simplify_comparison | PARAMS ((enum rtx_code, rtx *, rtx *)) |
| static void record_value_for_reg | PARAMS ((rtx, rtx, rtx)) |
| static int get_last_value_validate | PARAMS ((rtx *, rtx, int, int)) |
| static void move_deaths | PARAMS ((rtx, rtx, int, rtx, rtx *)) |
| static void distribute_notes | PARAMS ((rtx, rtx, rtx, rtx, rtx, rtx)) |
| static rtx reversed_comparison | PARAMS ((rtx, enum machine_mode, rtx, rtx)) |
| static void | do_SUBST (rtx *into, rtx newval) |
| static void | do_SUBST_INT (int *into, int newval) |
| int | combine_instructions (rtx f, unsigned int nregs) |
| static void | init_reg_last_arrays () |
| static void | setup_incoming_promotions () |
| static void | set_nonzero_bits_and_sign_copies (rtx x, rtx set, data) |
| static int | can_combine_p (rtx insn, rtx i3, pred, rtx succ, rtx *pdest, rtx *psrc) |
| static int | sets_function_arg_p (rtx pat) |
| static int | combinable_i3pat (rtx i3, rtx *loc, rtx i2dest, rtx i1dest, int i1_not_in_src, rtx *pi3dest_killed) |
| static int | contains_muldiv (rtx x) |
| static int | cant_combine_insn_p (rtx insn) |
| static rtx | try_combine (rtx i3, rtx i2, rtx i1, int *new_direct_jump_p) |
| static void | undo_all () |
| static void | undo_commit () |
| static rtx * | find_split_point (rtx *loc, rtx insn) |
| static rtx | subst (rtx x, rtx from, rtx to, int in_dest, int unique_copy) |
| static rtx | combine_simplify_rtx (rtx x, enum machine_mode op0_mode, int last, int in_dest) |
| static rtx | simplify_if_then_else (rtx x) |
| static rtx | simplify_set (rtx x) |
| static rtx | simplify_logical (rtx x, int last) |
| static rtx | expand_compound_operation (rtx x) |
| static rtx | expand_field_assignment (rtx x) |
| static rtx | make_extraction (enum machine_mode mode, rtx inner, HOST_WIDE_INT pos, rtx pos_rtx, unsigned HOST_WIDE_INT len, int unsignedp, int in_dest, int in_compare) |
| static rtx | extract_left_shift (rtx x, int count) |
| static rtx | make_compound_operation (rtx x, enum rtx_code in_code) |
| static int | get_pos_from_mask (unsigned HOST_WIDE_INT m, unsigned HOST_WIDE_INT *plen) |
| static rtx | force_to_mode (rtx x, enum machine_mode mode, unsigned HOST_WIDE_INT mask, rtx reg, int just_select) |
| static rtx | if_then_else_cond (rtx x, rtx *ptrue, rtx *pfalse) |
| static rtx | known_cond (rtx x, enum rtx_code cond, rtx reg, rtx val) |
| static int | rtx_equal_for_field_assignment_p (rtx x, rtx y) |
| static rtx | make_field_assignment (rtx x) |
| static rtx | apply_distributive_law (rtx x) |
| static rtx | simplify_and_const_int (rtx x, enum machine_mode mode, rtx varop, unsigned HOST_WIDE_INT constop) |
| static unsigned HOST_WIDE_INT | cached_nonzero_bits (rtx x, enum machine_mode mode, rtx known_x, enum machine_mode known_mode, unsigned HOST_WIDE_INT known_ret) |
| static unsigned HOST_WIDE_INT | nonzero_bits1 (rtx x, enum machine_mode mode, rtx known_x, enum machine_mode known_mode, unsigned HOST_WIDE_INT known_ret) |
| static unsigned int | cached_num_sign_bit_copies (rtx x, enum machine_mode mode, rtx known_x, enum machine_mode known_mode, unsigned int known_ret) |
| static unsigned int | num_sign_bit_copies1 (rtx x, enum machine_mode mode, rtx known_x, enum machine_mode known_mode, unsigned int known_ret) |
| unsigned int | extended_count (rtx x, enum machine_mode mode, int unsignedp) |
| static int | merge_outer_ops (enum rtx_code *pop0, HOST_WIDE_INT *pconst0, enum rtx_code op1, HOST_WIDE_INT const1, enum machine_mode mode, int *pcomp_p) |
| static rtx | simplify_shift_const (rtx x, enum rtx_code code, enum machine_mode result_mode, rtx varop, int orig_count) |
| static int | recog_for_combine (rtx *pnewpat, rtx insn, rtx *pnotes) |
| static rtx | gen_lowpart_for_combine (enum machine_mode mode, rtx x) |
| static rtx | gen_binary (enum rtx_code code, enum machine_mode mode, rtx op0, rtx op1) |
| static enum rtx_code | simplify_comparison (enum rtx_code code, rtx *pop0, rtx *pop1) |
| static enum rtx_code | combine_reversed_comparison_code (rtx exp) |
| static rtx | reversed_comparison (rtx exp, enum machine_mode mode, rtx op0, rtx op1) |
| static void | update_table_tick (rtx x) |
| static void | record_value_for_reg (rtx reg, rtx insn, rtx value) |
| static void | record_dead_and_set_regs_1 (rtx dest, rtx setter, void *data) |
| static void | record_dead_and_set_regs (rtx insn) |
| static void | record_promoted_value (rtx insn, rtx subreg) |
| static void | check_promoted_subreg (rtx insn, rtx x) |
| static int | get_last_value_validate (rtx *loc, rtx insn, int tick, int replace) |
| static rtx | get_last_value (rtx x) |
| static int | use_crosses_set_p (rtx x, int from_cuid) |
| static void | reg_dead_at_p_1 (rtx dest, rtx x, data) |
| static int | reg_dead_at_p (rtx reg, rtx insn) |
| static void | mark_used_regs_combine (rtx x) |
| rtx | remove_death (unsigned int regno, rtx insn) |
| static void | move_deaths (rtx x, rtx maybe_kill_insn, int from_cuid, rtx to_insn, rtx *pnotes) |
| static int | reg_bitfield_target_p (rtx x, rtx body) |
| static void | distribute_notes (rtx notes, rtx from_insn, rtx i3, rtx i2, rtx elim_i2, rtx elim_i1) |
| static void | distribute_links (rtx links) |
| static int | insn_cuid (rtx insn) |
| void | dump_combine_stats (FILE *file) |
| void | dump_combine_total_stats (FILE *file) |
Variables | |
| static int | combine_attempts |
| static int | combine_merges |
| static int | combine_extras |
| static int | combine_successes |
| static int | total_attempts |
| static int | total_merges |
| static int | total_extras |
| static int | total_successes |
| static int * | uid_cuid |
| static int | max_uid_cuid |
| static unsigned int | combine_max_regno |
| static rtx * | reg_last_death |
| static rtx * | reg_last_set |
| static int | mem_last_set |
| static int | last_call_cuid |
| static rtx | subst_insn |
| static rtx | subst_prev_insn |
| static int | subst_low_cuid |
| static HARD_REG_SET | newpat_used_regs |
| static rtx | added_links_insn |
| static basic_block | this_basic_block |
| static sbitmap | refresh_blocks |
| static int | need_refresh |
| static rtx * | reg_last_set_value |
| static int * | reg_last_set_label |
| static int * | reg_last_set_table_tick |
| static char * | reg_last_set_invalid |
| static int | label_tick |
| static unsigned HOST_WIDE_INT * | reg_nonzero_bits |
| static enum machine_mode | nonzero_bits_mode |
| static unsigned char * | reg_sign_bit_copies |
| static int | nonzero_sign_valid |
| static struct undobuf | undobuf |
| static int | n_occurrences |
| static unsigned int | reg_dead_regno |
| static unsigned int | reg_dead_endregno |
| static int | reg_dead_flag |
| #define cached_num_sign_bit_copies | ( | ) |
Definition at line 8199 of file combine.c.
Referenced by cached_num_sign_bit_copies(), num_sign_bit_copies(), and num_sign_bit_copies1().
| #define COMBINE_RTX_EQUAL_P | ( | X, | |||
| Y | ) |
| #define gen_lowpart dont_use_gen_lowpart_you_dummy |
Definition at line 96 of file combine.c.
Referenced by alpha_emit_conditional_move(), alpha_emit_set_const(), alpha_emit_setcc(), alpha_expand_block_move(), alpha_expand_builtin_vector_binop(), alpha_expand_compare_and_swap_12(), alpha_expand_lock_test_and_set_12(), alpha_expand_mov_nobwx(), alpha_expand_unaligned_load(), alpha_expand_unaligned_store(), alpha_initialize_trampoline(), alpha_split_compare_and_swap(), alpha_split_conditional_move(), alpha_split_lock_test_and_set(), altivec_expand_vec_init_builtin(), apply_distributive_law(), arm_const_double_by_parts(), arm_const_double_inline_cost(), arm_gen_movmemqi(), arm_gen_movstrqi(), arm_reload_out_hi(), bfin_expand_binop_builtin(), bfin_expand_builtin(), bfin_expand_unop_builtin(), combine_givs_p(), combine_simplify_rtx(), const_vector_elt_as_int(), convert_modes(), convert_move(), copy_rtx_and_substitute(), cse_insn(), cse_process_notes(), d30v_build_long_insn(), eliminate_regs_in_insn(), emit_group_load_1(), emit_group_store(), equiv_constant(), expand_absneg_bit(), expand_binop(), expand_builtin_signbit(), expand_builtin_stpcpy(), expand_complex_abs(), expand_compound_operation(), expand_copysign_absneg(), expand_copysign_bit(), expand_divmod(), expand_expr(), expand_expr_real_1(), expand_field_assignment(), expand_inline_function(), expand_movstr(), expand_mult(), expand_mult_const(), expand_return(), expand_unop(), extract_bit_field(), extract_force_align_mem_bit_field(), find_split_point(), fixup_var_refs_1(), fold_rtx(), fold_rtx_mem_1(), force_to_mode(), frv_split_double_load(), frv_split_double_store(), gen_absdf2(), gen_abssf2(), gen_ashrsi3(), gen_cmpstrsi(), gen_divsi3(), gen_easy_altivec_constant(), gen_extendhidi2(), gen_extendhisi2(), gen_extendqidi2(), gen_extendqihi2(), gen_extendqisi2(), gen_extv(), gen_extzv(), gen_ffssi2(), gen_imagpart(), gen_insv(), gen_lowpart(), gen_lowpart_or_truncate(), gen_lshrsi3(), gen_modsi3(), gen_move_insn(), gen_negdf2(), gen_negsf2(), gen_peephole2_1055(), gen_peephole2_1481(), gen_realpart(), gen_shl_and(), gen_shl_sext(), gen_split_1056(), gen_split_1083(), gen_split_1087(), gen_split_1155(), gen_split_1156(), gen_split_1157(), gen_split_1158(), gen_split_1159(), gen_split_1160(), gen_split_1162(), gen_split_1163(), gen_split_1211(), gen_split_1212(), gen_split_1213(), gen_split_1216(), gen_split_1217(), gen_split_1218(), gen_split_1221(), gen_split_1222(), gen_split_1227(), gen_split_1228(), gen_split_1234(), gen_split_1235(), gen_split_1251(), gen_split_1296(), gen_split_1298(), gen_split_1449(), gen_split_1450(), gen_split_1451(), gen_split_1452(), gen_split_1453(), gen_split_1454(), gen_udivsi3(), gen_umodsi3(), gen_zero_extendhidi2(), gen_zero_extendhisi2(), gen_zero_extendqidi2(), gen_zero_extendqihi2(), gen_zero_extendqisi2(), gen_zero_extendsidi2(), get_last_value(), ia64_expand_atomic_op(), ia64_expand_dot_prod_v8qi(), ia64_expand_tls_address(), ia64_expand_vcondu_v2si(), ia64_expand_vecint_compare(), ia64_expand_widen_sum(), initialize_trampoline(), insert(), instantiate_virtual_regs_1(), ix86_build_signbit_mask(), ix86_expand_binop_builtin(), ix86_expand_int_movcc(), ix86_expand_strlensi_unroll_1(), ix86_expand_vec_init_builtin(), ix86_expand_vector_extract(), 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_misalign(), ix86_expand_vector_set(), ix86_force_to_memory(), ix86_split_ashl(), ix86_split_ashldi(), ix86_split_long_move(), m68hc11_gen_lowpart(), make_compound_operation(), make_extraction(), mips_emit_scc(), mips_expand_unaligned_store(), optimize_bit_field(), output_286(), output_288(), purge_addressof_1(), record_dead_and_set_regs_1(), romp_initialize_trampoline(), rs6000_expand_compare_and_swapqhi(), rtx_equal_for_field_assignment_p(), s390_canonicalize_comparison(), s390_expand_insv(), s390_expand_logical_operator(), safe_vector_operand(), scan_one_insn(), score_print_operand(), sh_initialize_trampoline(), simplify_and_const_int(), simplify_and_const_int_1(), simplify_comparison(), simplify_if_then_else(), simplify_set(), simplify_shift_const(), simplify_shift_const_1(), sparc_expand_compare_and_swap_12(), store_bit_field(), store_fixed_bit_field(), try_combine(), widen_operand(), and x86_initialize_trampoline().
| #define INSN_CUID | ( | INSN | ) | (INSN_UID (INSN) > max_uid_cuid ? insn_cuid (INSN) : uid_cuid[INSN_UID (INSN)]) |
Definition at line 131 of file combine.c.
Referenced by can_combine_p(), computing_insn(), cse_end_of_basic_block(), cse_main(), def_reaches_here_p(), distribute_links(), distribute_notes(), get_last_value(), get_last_value_validate(), handle_rd_kill_set(), hash_scan_set(), insn_cuid(), load_killed_in_block_p(), move_deaths(), nonzero_bits1(), num_sign_bit_copies1(), oprs_not_set_p(), oprs_unchanged_p(), pre_delete(), pre_insert_copies(), record_dead_and_set_regs(), record_dead_and_set_regs_1(), record_last_reg_set_info(), record_value_for_reg(), reg_nonzero_bits_for_combine(), reg_num_sign_bit_copies_for_combine(), reg_set_or_used_since_bb_start(), try_combine(), and use_crosses_set_p().
Definition at line 140 of file combine.c.
Referenced by combine_simplify_rtx(), expand_compound_operation(), extended_count(), find_split_point(), force_to_mode(), gen_binary(), if_then_else_cond(), make_compound_operation(), make_extraction(), make_field_assignment(), num_sign_bit_copies1(), record_value_for_reg(), reg_nonzero_bits_for_combine(), s390_canonicalize_comparison(), set_nonzero_bits_and_sign_copies(), simplify_and_const_int(), simplify_and_const_int_1(), simplify_binary_operation(), simplify_binary_operation_1(), simplify_comparison(), simplify_if_then_else(), simplify_logical(), simplify_relational_operation_1(), simplify_set(), simplify_shift_const(), simplify_shift_const_1(), simplify_unary_operation_1(), and try_combine().
| #define nonzero_bits_with_known | ( | X, | |||
| MODE | ) | cached_nonzero_bits (X, MODE, known_x, known_mode, known_ret) |
Definition at line 8144 of file combine.c.
Referenced by cached_nonzero_bits(), and nonzero_bits1().
Definition at line 143 of file combine.c.
Referenced by combine_simplify_rtx(), extended_count(), force_to_mode(), if_then_else_cond(), nonzero_bits1(), record_value_for_reg(), set_nonzero_bits_and_sign_copies(), simplify_comparison(), simplify_if_then_else(), simplify_set(), simplify_shift_const(), simplify_shift_const_1(), simplify_unary_operation_1(), and truncated_to_mode().
| #define num_sign_bit_copies_with_known | ( | X, | |||
| M | ) | cached_num_sign_bit_copies (X, M, known_x, known_mode, known_ret) |
Definition at line 8653 of file combine.c.
Referenced by cached_num_sign_bit_copies(), and num_sign_bit_copies1().
| #define SUBST | ( | INTO, | |||
| NEWVAL | ) | do_SUBST(&(INTO), (NEWVAL)) |
Definition at line 484 of file combine.c.
Referenced by combinable_i3pat(), combine_simplify_rtx(), expand_compound_operation(), find_split_point(), force_to_mode(), known_cond(), make_compound_operation(), recog_for_combine(), simplify_and_const_int(), simplify_if_then_else(), simplify_logical(), simplify_set(), simplify_shift_const(), subst(), and try_combine().
| #define SUBST_INT | ( | INTO, | |||
| NEWVAL | ) | do_SUBST_INT(&(INTO), (NEWVAL)) |
Definition at line 7897 of file combine.c.
References AND, expand_compound_operation(), FLOAT_MODE_P, gen_binary(), gen_lowpart_for_combine(), GET_CODE, GET_MODE, GET_MODE_CLASS, GET_MODE_SIZE, GET_RTX_CLASS, MINUS, NOT, PLUS, rtx_equal_p(), simplify_gen_unary(), SUBREG_BYTE, subreg_lowpart_p(), SUBREG_REG, UNITS_PER_WORD, XEXP, and XOR.
Referenced by apply_distributive_law(), combine_simplify_rtx(), distribute_and_simplify_rtx(), simplify_and_const_int(), simplify_and_const_int_1(), simplify_logical(), simplify_shift_const(), and simplify_shift_const_1().
| static unsigned HOST_WIDE_INT cached_nonzero_bits | ( | rtx | x, | |
| enum machine_mode | mode, | |||
| rtx | known_x, | |||
| enum machine_mode | known_mode, | |||
| unsigned HOST_WIDE_INT | known_ret | |||
| ) | [static] |
Definition at line 8152 of file combine.c.
References GET_CODE, GET_RTX_CLASS, nonzero_bits1(), nonzero_bits_with_known, x0, x1, and XEXP.
Referenced by cached_nonzero_bits(), nonzero_bits(), and nonzero_bits1().
| static unsigned int cached_num_sign_bit_copies | ( | rtx | x, | |
| enum machine_mode | mode, | |||
| rtx | known_x, | |||
| enum machine_mode | known_mode, | |||
| unsigned int | known_ret | |||
| ) | [static] |
Definition at line 8662 of file combine.c.
References GET_CODE, GET_RTX_CLASS, num_sign_bit_copies1(), num_sign_bit_copies_with_known, x0, x1, and XEXP.
Definition at line 953 of file combine.c.
References CONSTANT_P, dest, expand_field_assignment(), find_reg_fusage(), FIND_REG_INC_NOTE, find_reg_note(), FIRST_PSEUDO_REGISTER, GET_CODE, GET_MODE, global_regs, HARD_REGNO_MODE_OK, i, INSN_CUID, INSN_P, last_call_cuid, MEM, MEM_VOLATILE_P, next_active_insn(), NEXT_INSN, NULL_RTX, p, PATTERN, PREV_INSN, prev_nonnote_insn(), REG, REG_EQUAL, REG_EQUIV, REG_INC, REG_NO_CONFLICT, REG_NOTE_KIND, REG_NOTES, reg_overlap_mentioned_p(), REG_RETVAL, reg_set_between_p(), REG_UNUSED, reg_used_between_p(), REGNO, rtx_equal_p(), SET, SET_DEST, SET_SRC, sets_cc0_p(), side_effects_p(), src, stack_pointer_rtx, USE, use_crosses_set_p(), volatile_insn_p(), volatile_refs_p(), XEXP, XVECEXP, and XVECLEN.
Referenced by try_combine().
| static int cant_combine_insn_p | ( | rtx | insn | ) | [static] |
Definition at line 1467 of file combine.c.
References dest, FIRST_PSEUDO_REGISTER, fixed_regs, GET_CODE, INSN_P, REG_P, REGNO, SET_DEST, SET_SRC, single_set, src, and SUBREG_REG.
Referenced by try_combine().
Definition at line 11788 of file combine.c.
References format, GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, i, record_promoted_value(), REG, SUBREG_PROMOTED_VAR_P, SUBREG_REG, XEXP, XVEC, XVECEXP, and XVECLEN.
Referenced by check_promoted_subreg(), and combine_instructions().
| static int combinable_i3pat | ( | rtx | i3, | |
| rtx * | loc, | |||
| rtx | i2dest, | |||
| rtx | i1dest, | |||
| int | i1_not_in_src, | |||
| rtx * | pi3dest_killed | |||
| ) | [static] |
Definition at line 1319 of file combine.c.
References ARG_POINTER_REGNUM, dest, expand_field_assignment(), FIRST_PSEUDO_REGISTER, fixed_regs, FRAME_POINTER_REGNUM, GET_CODE, GET_MODE, HARD_FRAME_POINTER_REGNUM, HARD_REGNO_MODE_OK, i, MODES_TIEABLE_P, PATTERN, REG, reg_overlap_mentioned_p(), reg_referenced_p(), REGNO, rtx_equal_p(), SET, SET_DEST, SET_SRC, src, STACK_POINTER_REGNUM, SUBST, x, XEXP, XVECEXP, and XVECLEN.
Referenced by combinable_i3pat(), and try_combine().
| int combine_instructions | ( | rtx | f, | |
| unsigned int | nregs | |||
| ) |
Definition at line 521 of file combine.c.
Referenced by rest_of_compilation(), and rest_of_handle_combine().
Definition at line 11423 of file combine.c.
References COMPARE, GET_CODE, get_last_value(), GET_MODE, GET_MODE_CLASS, MODE_CC, NULL, reversed_comparison_code(), reversed_comparison_code_parts(), UNKNOWN, x, and XEXP.
Referenced by if_then_else_cond(), known_cond(), reversed_comparison(), simplify_comparison(), and simplify_if_then_else().
| static rtx combine_simplify_rtx | ( | rtx | x, | |
| enum machine_mode | op0_mode, | |||
| int | last, | |||
| int | in_dest | |||
| ) | [static] |
Definition at line 3635 of file combine.c.
References abort, ABS, AND, apply_distributive_law(), cc0_rtx, COMPARE, cond, CONST, CONST0_RTX, const0_rtx, const1_rtx, CONST_DOUBLE_FROM_REAL_VALUE, CONSTANT_ADDRESS_P, CONSTANT_P, constm1_rtx, copy_rtx(), DIV, EQ, exact_log2, expand_compound_operation(), false_rtx, flag_unsafe_math_optimizations, FLOAT, FLOAT_MODE_P, FLOAT_STORE_FLAG_VALUE, force_to_mode(), GE, gen_binary(), gen_lowpart_common(), gen_lowpart_for_combine(), gen_rtx_CLOBBER, gen_rtx_fmt_ee(), gen_rtx_GE, gen_rtx_IF_THEN_ELSE, gen_rtx_NEG, gen_rtx_NOT, gen_rtx_PLUS, gen_rtx_ROTATE, gen_rtx_XOR, general_operand(), GET_CODE, get_last_value(), GET_MODE, GET_MODE_BITSIZE, GET_MODE_CLASS, GET_MODE_MASK, GET_MODE_SIZE, GET_RTX_CLASS, GT, HAVE_cc0, HONOR_SIGN_DEPENDENT_ROUNDING, HONOR_SIGNED_ZEROS, HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, i, if_then_else_cond(), in1, INTEGRAL_MODE_P, INTVAL, LE, len, LT, make_compound_operation(), MEM, MEM_VOLATILE_P, MINUS, mode, MODE_CC, mode_dependent_address_p(), MODE_FLOAT, MODE_INT, MODE_PARTIAL_INT, NE, nonzero_bits, NOT, NULL_RTX, num_sign_bit_copies, offset, pc_rtx, PLUS, plus_constant, REG, reverse_condition(), reversed_comparison(), ROTATE, rtx_equal_p(), SET, SHIFT_COUNT_TRUNCATED, SIGN_EXTEND, simplify_and_const_int(), simplify_binary_operation(), simplify_comparison(), simplify_gen_unary(), simplify_if_then_else(), simplify_logical(), simplify_relational_operation(), simplify_set(), simplify_shift_const(), simplify_subreg(), simplify_ternary_operation(), simplify_unary_operation(), STORE_FLAG_VALUE, SUBREG_BYTE, subreg_lowpart_offset(), subreg_lowpart_p(), SUBREG_REG, SUBST, subst(), swap_commutative_operands_p(), true_rtx, TRULY_NOOP_TRUNCATION, TRUNCATE, UNKNOWN, XEXP, XOR, XVECEXP, and XVECLEN.
Referenced by combine_simplify_rtx(), and subst().
| static int contains_muldiv | ( | rtx | x | ) | [static] |
Definition at line 1435 of file combine.c.
References DIV, exact_log2, GET_CODE, GET_RTX_CLASS, INTVAL, MOD, and XEXP.
Referenced by contains_muldiv(), and try_combine().
Definition at line 13075 of file combine.c.
References added_links_insn, EXIT_BLOCK_PTR, find_reg_fusage(), GET_CODE, basic_block_def::head, insn, INSN_CUID, INSN_P, LOG_LINKS, basic_block_def::next_bb, NEXT_INSN, PATTERN, reg_overlap_mentioned_p(), reg_referenced_p(), SET_DEST, single_set, USE, and XEXP.
Referenced by adjust_for_new_dest(), distribute_notes(), and try_combine().
| static void distribute_notes | ( | rtx | notes, | |
| rtx | from_insn, | |||
| rtx | i3, | |||
| rtx | i2, | |||
| rtx | elim_i2, | |||
| rtx | elim_i1 | |||
| ) | [static] |
Definition at line 12504 of file combine.c.
References abort, cc0_rtx, CONSTANT_P, dead_or_set_p(), dead_or_set_regno_p(), distribute_links(), find_reg_fusage(), find_reg_note(), find_regno_fusage(), find_regno_note(), FIRST_PSEUDO_REGISTER, flag_non_call_exceptions, gen_rtx_EXPR_LIST, gen_rtx_fmt_ee(), GET_CODE, GET_MODE, basic_block_def::global_live_at_start, HARD_REGNO_NREGS, basic_block_def::head, i, basic_block_def::index, INSN_CUID, INSN_P, INSN_UID, JUMP_LABEL, LABEL_NUSES, LOG_LINKS, max_uid_cuid, may_trap_p(), need_refresh, next_nonnote_insn(), next_real_insn(), noop_move_p(), NOTE_INSN_DELETED, NOTE_LINE_NUMBER, NOTE_SOURCE_FILE, NULL, NULL_RTX, PATTERN, pc_rtx, prev_cc0_setter(), PREV_INSN, prev_real_insn(), PUT_CODE, PUT_REG_NOTE_KIND, refers_to_regno_p(), REG, REG_ALWAYS_RETURN, reg_bitfield_target_p(), REG_BR_PRED, REG_BR_PROB, REG_DEAD, REG_EH_REGION, REG_EQUAL, REG_EQUIV, REG_INC, REG_LABEL, reg_last_death, REG_LIBCALL, reg_mentioned_p(), REG_N_DEATHS, REG_NO_CONFLICT, REG_NOALIAS, REG_NON_LOCAL_GOTO, REG_NONNEG, REG_NORETURN, REG_NOTE_KIND, REG_NOTES, reg_raw_mode, reg_referenced_p(), REG_RETVAL, reg_set_p(), REG_SETJMP, REG_UNUSED, REG_VTABLE_REF, REG_WAS_0, REGNO, regno_reg_rtx, REGNO_REG_SET_P, rtx_equal_p(), SET_BIT, SET_DEST, SET_SRC, sets_cc0_p(), side_effects_p(), single_set, USE, and XEXP.
Referenced by distribute_notes(), and try_combine().
Definition at line 435 of file combine.c.
References abort, buf, GET_CODE, GET_MODE, GET_MODE_CLASS, INTVAL, undo::is_int, MODE_INT, undo::next, undo::old_contents, undo::r, SUBREG_REG, trunc_int_for_mode(), undo::where, XEXP, and xmalloc().
| static void do_SUBST_INT | ( | int * | into, | |
| int | newval | |||
| ) | [static] |
Definition at line 491 of file combine.c.
References buf, undo::i, undo::is_int, undo::next, undo::old_contents, undo::where, and xmalloc().
Definition at line 13188 of file combine.c.
Referenced by compile_file(), and finish_optimization_passes().
Definition at line 5720 of file combine.c.
References BITS_BIG_ENDIAN, gen_rtx_USE, gen_rtx_ZERO_EXTEND, GET_CODE, GET_MODE, GET_MODE_BITSIZE, GET_MODE_MASK, GET_MODE_SIZE, GET_RTX_CLASS, HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, INTVAL, len, nonzero_bits, NULL_RTX, pos(), SCALAR_INT_MODE_P, SIGN_EXTEND, simplify_and_const_int(), simplify_shift_const(), STORE_FLAG_VALUE, subreg_lowpart_p(), SUBREG_REG, SUBST, TRUNCATE, UNITS_PER_WORD, and XEXP.
Referenced by apply_distributive_law(), combine_simplify_rtx(), expand_compound_operation(), force_to_mode(), make_field_assignment(), simplify_comparison(), simplify_shift_const(), and simplify_shift_const_1().
Definition at line 5921 of file combine.c.
References AND, BITS_BIG_ENDIAN, copy_rtx(), FLOAT_MODE_P, gen_binary(), GEN_INT, gen_lowpart_for_combine(), gen_rtx_SET, gen_rtx_USE, GET_CODE, GET_MODE, GET_MODE_BITSIZE, GET_MODE_SIZE, HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, INTVAL, len, MINUS, mode_for_size(), MODE_INT, nonzero_sign_valid, NOT, pos(), SCALAR_INT_MODE_P, SET_DEST, SET_SRC, simplify_gen_unary(), subreg_lowpart_p(), subreg_lsb(), SUBREG_REG, UNITS_PER_WORD, and XEXP.
Referenced by can_combine_p(), combinable_i3pat(), and set_nonzero_bits_and_sign_copies().
| unsigned int extended_count | ( | rtx | x, | |
| enum machine_mode | mode, | |||
| int | unsignedp | |||
| ) |
Definition at line 6464 of file combine.c.
References AND, gen_binary(), GEN_INT, GET_CODE, GET_MODE, HOST_WIDE_INT, INTVAL, mode, NOT, NULL_RTX, PLUS, simplify_gen_unary(), simplify_shift_const(), XEXP, and XOR.
Referenced by extract_left_shift(), and make_compound_operation().
Definition at line 2945 of file combine.c.
References AND, BITS_BIG_ENDIAN, cc0_rtx, COMPARE, CONST, const0_rtx, CONSTANT_P, dest, EQ, exact_log2, find_single_use(), FIRST_PSEUDO_REGISTER, gen_binary(), GEN_INT, gen_int_mode(), gen_lowpart_for_combine(), gen_rtx_AND, gen_rtx_ASHIFT, gen_rtx_fmt_ee(), gen_rtx_HIGH, gen_rtx_LO_SUM, gen_rtx_LSHIFTRT, gen_rtx_NEG, gen_rtx_NOT, gen_rtx_SET, GET_CODE, GET_MODE, GET_MODE_BITSIZE, GET_MODE_CLASS, GET_RTX_CLASS, GET_RTX_FORMAT, HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, INTVAL, len, make_extraction(), MEM, memory_address_p(), mode, MODE_PARTIAL_INT, NE, NEXT_INSN, nonzero_bits, NOT, NULL_RTX, PATTERN, PLUS, Pmode, pos(), REG, reg_mentioned_p(), register_operand(), regno_reg_rtx, replace_rtx(), SET, SET_DEST, SET_SRC, side_effects_p(), SIGN_EXTEND, split, split_insns(), src, STORE_FLAG_VALUE, SUBREG_REG, SUBST, subst_insn, x, and XEXP.
Referenced by find_split_point(), and try_combine().
| static rtx force_to_mode | ( | rtx | x, | |
| enum machine_mode | mode, | |||
| unsigned HOST_WIDE_INT | mask, | |||
| rtx | reg, | |||
| int | just_select | |||
| ) | [static] |
Definition at line 6836 of file combine.c.
References AND, BITS_BIG_ENDIAN, const0_rtx, exact_log2, expand_compound_operation(), floor_log2, gen_binary(), GEN_INT, gen_int_mode(), gen_lowpart_common(), gen_lowpart_for_combine(), GET_CODE, get_last_value(), GET_MODE, GET_MODE_BITSIZE, GET_MODE_CLASS, GET_MODE_MASK, GET_MODE_SIZE, have_insn_for(), HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, i, INTVAL, MINUS, NE, nonzero_bits, NOT, num_sign_bit_copies, PLUS, plus_constant, REG, ROTATE, rtx_cost(), rtx_equal_p(), SCALAR_INT_MODE_P, SET, SIGN_EXTEND, simplify_and_const_int(), simplify_binary_operation(), simplify_gen_unary(), simplify_shift_const(), STORE_FLAG_VALUE, subreg_lowpart_p(), SUBREG_REG, SUBST, USE, XEXP, XOR, and is::y.
Referenced by combine_simplify_rtx(), force_to_mode(), make_compound_operation(), make_extraction(), make_field_assignment(), simplify_and_const_int(), simplify_and_const_int_1(), simplify_comparison(), and simplify_set().
| static rtx gen_binary | ( | enum rtx_code | code, | |
| enum machine_mode | mode, | |||
| rtx | op0, | |||
| rtx | op1 | |||
| ) | [static] |
Definition at line 10204 of file combine.c.
References AND, COMPARE, const0_rtx, gen_rtx_fmt_ee(), GET_CODE, GET_MODE, GET_MODE_BITSIZE, GET_RTX_CLASS, HOST_BITS_PER_WIDE_INT, INTVAL, nonzero_bits, result, simplify_binary_operation(), simplify_relational_operation(), swap_commutative_operands_p(), and XEXP.
Referenced by apply_distributive_law(), combine_simplify_rtx(), expand_field_assignment(), extract_left_shift(), find_split_point(), force_to_mode(), if_then_else_cond(), reversed_comparison(), simplify_and_const_int(), simplify_comparison(), simplify_if_then_else(), simplify_logical(), simplify_set(), and simplify_shift_const().
| static rtx gen_lowpart_for_combine | ( | enum machine_mode | mode, | |
| rtx | x | |||
| ) | [static] |
Definition at line 10100 of file combine.c.
References adjust_address_nv, bitmap_set_bit(), BYTES_BIG_ENDIAN, const0_rtx, FIRST_PSEUDO_REGISTER, gen_lowpart_common(), gen_rtx_CLOBBER, gen_rtx_fmt_ee(), gen_rtx_SUBREG(), GET_CODE, GET_MODE, GET_MODE_SIZE, GET_RTX_CLASS, int_mode_for_mode(), MAX, MEM, MEM_VOLATILE_P, MIN, mode_dependent_address_p(), offset, REG, REGNO, result, simplify_gen_subreg(), subreg_lowpart_offset(), SUBREG_REG, subregs_of_mode, UNITS_PER_WORD, WORDS_BIG_ENDIAN, and XEXP.
Referenced by apply_distributive_law(), combine_simplify_rtx(), expand_field_assignment(), find_split_point(), force_to_mode(), get_last_value(), make_compound_operation(), make_extraction(), record_dead_and_set_regs_1(), rtx_equal_for_field_assignment_p(), simplify_and_const_int(), simplify_comparison(), simplify_if_then_else(), simplify_set(), simplify_shift_const(), and try_combine().
Definition at line 11931 of file combine.c.
References copy_rtx(), ENTRY_BLOCK_PTR, FIRST_PSEUDO_REGISTER, gen_lowpart_for_combine(), GET_CODE, get_last_value_validate(), GET_MODE, GET_MODE_SIZE, INSN_CUID, label_tick, REG, reg_last_set, reg_last_set_label, reg_last_set_value, REG_N_SETS, REGNO, REGNO_REG_SET_P, subreg_lowpart_p(), SUBREG_REG, and subst_low_cuid.
Referenced by canon_reg_for_combine(), combine_reversed_comparison_code(), combine_simplify_rtx(), force_to_mode(), get_last_value(), if_then_else_cond(), nonzero_bits1(), num_sign_bit_copies1(), record_value_for_reg(), reg_nonzero_bits_for_combine(), reg_num_sign_bit_copies_for_combine(), and simplify_comparison().
Definition at line 11827 of file combine.c.
References const0_rtx, ENTRY_BLOCK_PTR, FIRST_PSEUDO_REGISTER, gen_rtx_CLOBBER, GET_CODE, GET_MODE, GET_RTX_CLASS, GET_RTX_FORMAT, GET_RTX_LENGTH, HARD_REGNO_NREGS, i, INSN_CUID, len, MEM, mem_last_set, REG, reg_last_set_invalid, reg_last_set_label, REG_N_SETS, REGNO, REGNO_REG_SET_P, RTX_UNCHANGING_P, x, x0, x1, and XEXP.
Referenced by get_last_value(), get_last_value_validate(), and record_value_for_reg().
| static int get_pos_from_mask | ( | unsigned HOST_WIDE_INT | m, | |
| unsigned HOST_WIDE_INT * | plen | |||
| ) | [static] |
Definition at line 6797 of file combine.c.
References exact_log2, len, and pos().
Referenced by make_field_assignment().
Definition at line 7387 of file combine.c.
References AND, combine_reversed_comparison_code(), COMPARE, const0_rtx, CONSTANT_P, constm1_rtx, copy_rtx(), EQ, exact_log2, gen_binary(), GEN_INT, gen_int_mode(), GET_CODE, get_last_value(), GET_MODE, GET_MODE_BITSIZE, GET_RTX_CLASS, HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, INTVAL, MINUS, mode, NE, nonzero_bits, num_sign_bit_copies, PLUS, rtx_equal_p(), side_effects_p(), simplify_gen_subreg(), simplify_gen_unary(), STORE_FLAG_VALUE, SUBREG_BYTE, SUBREG_REG, swap_condition(), XEXP, and XOR.
Referenced by combine_simplify_rtx(), and if_then_else_cond().
| static void init_reg_last_arrays | ( | ) | [static] |
Definition at line 810 of file combine.c.
References combine_max_regno, HOST_WIDE_INT, memset, nregs, reg_last_death, reg_last_set, reg_last_set_invalid, reg_last_set_label, reg_last_set_table_tick, and reg_last_set_value.
Referenced by combine_instructions().
| static int insn_cuid | ( | rtx | insn | ) | [static] |
Definition at line 7587 of file combine.c.
References ABS, combine_reversed_comparison_code(), comparison_dominates_p(), const0_rtx, EQ, FLOAT_MODE_P, GE, GET_CODE, GET_MODE, GET_RTX_CLASS, GET_RTX_FORMAT, GET_RTX_LENGTH, GT, i, LE, LT, NE, r, reverse_condition(), rtx_equal_p(), side_effects_p(), simplify_gen_unary(), simplify_subreg(), simplify_unary_operation(), SUBREG_BYTE, SUBREG_REG, SUBST, swap_condition(), UNKNOWN, XEXP, XVECEXP, and XVECLEN.
Referenced by known_cond(), and simplify_if_then_else().
Definition at line 6527 of file combine.c.
References AND, COMPARE, const0_rtx, exact_log2, extract_left_shift(), force_to_mode(), GEN_INT, gen_lowpart_for_combine(), gen_rtx_AND, gen_rtx_ASHIFTRT, gen_rtx_fmt_e(), gen_rtx_fmt_ee(), gen_rtx_MULT, GET_CODE, GET_MODE, GET_MODE_BITSIZE, GET_MODE_MASK, GET_MODE_SIZE, GET_RTX_CLASS, GET_RTX_FORMAT, GET_RTX_LENGTH, have_insn_for(), HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, i, INTVAL, make_extraction(), MEM, MINUS, mode, nonzero_bits, NULL_RTX, PLUS, ROTATE, SCALAR_INT_MODE_P, SET, SIGN_EXTEND, subreg_lowpart_p(), SUBREG_REG, SUBST, XEXP, and XOR.
Referenced by combine_simplify_rtx(), make_compound_operation(), simplify_comparison(), simplify_if_then_else(), and simplify_set().
| static rtx make_extraction | ( | enum machine_mode | mode, | |
| rtx | inner, | |||
| HOST_WIDE_INT | pos, | |||
| rtx | pos_rtx, | |||
| unsigned HOST_WIDE_INT | len, | |||
| int | unsignedp, | |||
| int | in_dest, | |||
| int | in_compare | |||
| ) | [static] |
Definition at line 6072 of file combine.c.
References adjust_address_nv, BITS_BIG_ENDIAN, BITS_PER_UNIT, BITS_PER_WORD, byte_mode, BYTES_BIG_ENDIAN, const0_rtx, EP_extv, EP_extzv, EP_insv, flag_expensive_optimizations, force_to_mode(), GEN_INT, gen_int_mode(), gen_lowpart_for_combine(), gen_rtx_ASHIFT, gen_rtx_CLOBBER, gen_rtx_fmt_e(), gen_rtx_fmt_eee(), gen_rtx_MINUS, gen_rtx_SIGN_EXTEND, gen_rtx_STRICT_LOW_PART, gen_rtx_SUBREG(), gen_rtx_ZERO_EXTEND, GET_CODE, GET_MODE, GET_MODE_ALIGNMENT, GET_MODE_BITSIZE, GET_MODE_MASK, GET_MODE_SIZE, have_insn_for(), HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, INTVAL, MEM, MEM_VOLATILE_P, mode_dependent_address_p(), mode_for_extraction(), mode_for_size(), MODE_INT, nonzero_bits, NULL_RTX, offset, REG, rtx_cost(), SET, SIGN_EXTEND, STRICT_ALIGNMENT, subreg_lowpart_p(), SUBREG_REG, UNITS_PER_WORD, USE, word_mode, WORDS_BIG_ENDIAN, and XEXP.
Referenced by find_split_point(), make_compound_operation(), make_extraction(), and make_field_assignment().
Definition at line 7780 of file combine.c.
References AND, const0_rtx, const1_rtx, dest, expand_compound_operation(), force_to_mode(), gen_rtx_SET, GET_CODE, GET_MODE, GET_MODE_BITSIZE, GET_MODE_MASK, GET_MODE_SIZE, get_pos_from_mask(), HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, INTVAL, len, make_extraction(), mode, nonzero_bits, NULL_RTX, pos(), ROTATE, rtx_equal_for_field_assignment_p(), SET_DEST, SET_SRC, simplify_shift_const(), src, subreg_lowpart_p(), SUBREG_REG, XEXP, and XOR.
Referenced by simplify_set().
Definition at line 12144 of file combine.c.
References ARG_POINTER_REGNUM, CONST, FIRST_PSEUDO_REGISTER, fixed_regs, FRAME_POINTER_REGNUM, GET_CODE, GET_MODE, GET_RTX_FORMAT, GET_RTX_LENGTH, HARD_FRAME_POINTER_REGNUM, HARD_REGNO_NREGS, i, MEM, newpat_used_regs, PC, r, REG, REGNO, RTX_CODE, SET, SET_DEST, SET_HARD_REG_BIT, SET_SRC, STACK_POINTER_REGNUM, XEXP, XVECEXP, and XVECLEN.
Referenced by mark_used_regs_combine(), and try_combine().
| static int merge_outer_ops | ( | enum rtx_code * | pop0, | |
| HOST_WIDE_INT * | pconst0, | |||
| enum rtx_code | op1, | |||
| HOST_WIDE_INT | const1, | |||
| enum machine_mode | mode, | |||
| int * | pcomp_p | |||
| ) | [static] |
Definition at line 9115 of file combine.c.
References AND, GET_MODE_MASK, HOST_WIDE_INT, NIL, PLUS, SET, trunc_int_for_mode(), and XOR.
Referenced by simplify_shift_const(), and simplify_shift_const_1().
| static void move_deaths | ( | rtx | x, | |
| rtx | maybe_kill_insn, | |||
| int | from_cuid, | |||
| rtx | to_insn, | |||
| rtx * | pnotes | |||
| ) | [static] |
Definition at line 12276 of file combine.c.
References dest, FIRST_PSEUDO_REGISTER, gen_rtx_EXPR_LIST, GET_CODE, GET_MODE, GET_MODE_SIZE, GET_RTX_FORMAT, GET_RTX_LENGTH, HARD_REGNO_NREGS, i, INSN_CUID, INSN_UID, len, max_uid_cuid, MEM, NEXT_INSN, offset, PREV_INSN, REG, REG_DEAD, reg_last_death, REG_N_DEATHS, REG_NOTES, reg_referenced_p(), reg_set_p(), REGNO, regno_reg_rtx, remove_death(), SET, SET_DEST, SET_SRC, SUBREG_REG, UNITS_PER_WORD, XEXP, XVECEXP, and XVECLEN.
Referenced by move_deaths(), and try_combine().
| static unsigned HOST_WIDE_INT nonzero_bits1 | ( | rtx | x, | |
| enum machine_mode | mode, | |||
| rtx | known_x, | |||
| enum machine_mode | known_mode, | |||
| unsigned HOST_WIDE_INT | known_ret | |||
| ) | [static] |
Definition at line 8208 of file combine.c.
References abort, ABS, alignment, AND, arg_pointer_rtx, BITS_PER_UNIT, BITS_PER_WORD, count, DIV, ENTRY_BLOCK_PTR, EQ, FIRST_PSEUDO_REGISTER, FLOAT_MODE_P, floor_log2, frame_pointer_rtx, GE, GEN_INT, GET_CODE, get_last_value(), GET_MODE, GET_MODE_BITSIZE, GET_MODE_CLASS, GET_MODE_MASK, GET_MODE_SIZE, GT, HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, INSN_CUID, INTVAL, label_tick, LE, LOAD_EXTEND_OP, LT, MAX, MEM, MIN, MINUS, MOD, MODE_INT, NE, nonzero_bits_with_known, nonzero_sign_valid, num_sign_bit_copies, PLUS, Pmode, POINTERS_EXTEND_UNSIGNED, ptr_mode, PUSH_ARGS, PUSH_ROUNDING, REG, reg_last_set, reg_last_set_label, reg_last_set_value, REG_N_SETS, reg_nonzero_bits, REG_POINTER, REGNO, REGNO_POINTER_ALIGN, REGNO_REG_SET_P, ROTATE, SIGN_EXTEND, stack_pointer_rtx, STORE_FLAG_VALUE, SUBREG_PROMOTED_UNSIGNED_P, SUBREG_PROMOTED_VAR_P, SUBREG_REG, subst_low_cuid, TRUNCATE, XEXP, and XOR.
Referenced by cached_nonzero_bits().
| static unsigned int num_sign_bit_copies1 | ( | rtx | x, | |
| enum machine_mode | mode, | |||
| rtx | known_x, | |||
| enum machine_mode | known_mode, | |||
| unsigned int | known_ret | |||
| ) | [static] |
Definition at line 8713 of file combine.c.
References AND, BITS_PER_WORD, constm1_rtx, DIV, ENTRY_BLOCK_PTR, EQ, FIRST_PSEUDO_REGISTER, FLOAT_MODE_P, floor_log2, GE, GET_CODE, get_last_value(), GET_MODE, GET_MODE_BITSIZE, GET_MODE_MASK, GET_MODE_SIZE, GT, HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, INSN_CUID, INTVAL, label_tick, LE, LOAD_EXTEND_OP, LT, MAX, MEM, MIN, MINUS, MOD, NE, nonzero_bits, nonzero_sign_valid, NOT, num_sign_bit_copies_with_known, PLUS, Pmode, POINTERS_EXTEND_UNSIGNED, ptr_mode, REG, reg_last_set, reg_last_set_label, reg_last_set_value, REG_N_SETS, REG_POINTER, reg_sign_bit_copies, REGNO, REGNO_REG_SET_P, result, ROTATE, SIGN_EXTEND, STORE_FLAG_VALUE, SUBREG_PROMOTED_UNSIGNED_P, SUBREG_PROMOTED_VAR_P, SUBREG_REG, subst_low_cuid, TRUNCATE, XEXP, and XOR.
Referenced by cached_num_sign_bit_copies().
| static rtx reversed_comparison PARAMS | ( | (rtx, enum machine_mode, rtx, rtx) | ) | [static] |
| static rtx gen_binary PARAMS | ( | (enum rtx_code, enum machine_mode, rtx, rtx) | ) | [static] |
| static rtx gen_lowpart_for_combine PARAMS | ( | (enum machine_mode, rtx) | ) | [static] |
| static rtx simplify_shift_const PARAMS | ( | (rtx, enum rtx_code, enum machine_mode, rtx, int) | ) | [static] |
| static int merge_outer_ops PARAMS | ( | (enum rtx_code *, HOST_WIDE_INT *, enum rtx_code, HOST_WIDE_INT, enum machine_mode, int *) | ) | [static] |
| static unsigned int cached_num_sign_bit_copies PARAMS | ( | (rtx, enum machine_mode, rtx, enum machine_mode, unsigned int) | ) | [static] |
| static unsigned HOST_WIDE_INT cached_nonzero_bits PARAMS | ( | (rtx, enum machine_mode, rtx, enum machine_mode, unsigned HOST_WIDE_INT) | ) | [static] |
| static rtx simplify_and_const_int PARAMS | ( | (rtx, enum machine_mode, rtx, unsigned HOST_WIDE_INT) | ) | [static] |
| static rtx force_to_mode PARAMS | ( | (rtx, enum machine_mode, unsigned HOST_WIDE_INT, rtx, int) | ) | [static] |
| static int get_pos_from_mask PARAMS | ( | (unsigned HOST_WIDE_INT, unsigned HOST_WIDE_INT *) | ) | [static] |
| static rtx make_extraction PARAMS | ( | (enum machine_mode, rtx, HOST_WIDE_INT, rtx, unsigned HOST_WIDE_INT, int, int, int) | ) | [static] |
| static rtx combine_simplify_rtx PARAMS | ( | (rtx, enum machine_mode, int, int) | ) | [static] |
| static int cant_combine_insn_p PARAMS | ( | (rtx) | ) | [static] |
Definition at line 77 of file cplus-dem.c.
| static void do_SUBST_INT PARAMS | ( | (int *, int) | ) | [static] |
Definition at line 9992 of file combine.c.
References add_clobbers(), check_asm_operands(), const0_rtx, gen_rtx_EXPR_LIST, gen_rtx_PARALLEL, GET_CODE, i, insn_code_number, NOOP_MOVE_INSN_CODE, PATTERN, pos(), recog(), REG, reg_dead_at_p(), REG_NOTES, REG_UNUSED, rtvec_alloc(), SET, set_noop_p(), shallow_copy_rtx, SUBST, SUBST_INT, XEXP, XVECEXP, and XVECLEN.
Referenced by simplify_set(), and try_combine().
Definition at line 11685 of file combine.c.
References FIRST_PSEUDO_REGISTER, GET_CODE, GET_MODE, HARD_REGNO_NREGS, i, INSN_CUID, last_call_cuid, mem_last_set, note_stores(), NULL_RTX, PATTERN, record_dead_and_set_regs_1(), record_value_for_reg(), REG, REG_DEAD, REG_INC, reg_last_death, reg_last_set_value, REG_NOTE_KIND, REG_NOTES, REGNO, regs_invalidated_by_call, TEST_HARD_REG_BIT, and XEXP.
Referenced by combine_instructions().
Definition at line 11641 of file combine.c.
References BITS_PER_WORD, gen_lowpart_for_combine(), GET_CODE, GET_MODE, GET_MODE_BITSIZE, INSN_CUID, MEM, mem_last_set, NULL_RTX, push_operand(), record_value_for_reg(), REG, SET, SET_DEST, SET_SRC, subreg_lowpart_p(), and SUBREG_REG.
Referenced by record_dead_and_set_regs().
Definition at line 11744 of file combine.c.
References GET_CODE, GET_MODE, GET_MODE_BITSIZE, GET_MODE_MASK, HOST_BITS_PER_WIDE_INT, LOG_LINKS, mode, REG, reg_last_set, REGNO, SET_DEST, SET_SRC, single_set, SUBREG_PROMOTED_UNSIGNED_P, SUBREG_REG, and XEXP.
Referenced by check_conversions(), and check_promoted_subreg().
Definition at line 11531 of file combine.c.
References copy_rtx(), FIRST_PSEUDO_REGISTER, GET_CODE, get_last_value(), get_last_value_validate(), GET_MODE, GET_MODE_BITSIZE, GET_MODE_CLASS, GET_RTX_CLASS, HARD_REGNO_NREGS, HOST_BITS_PER_WIDE_INT, i, INSN_CUID, label_tick, mode, MODE_INT, nonzero_bits, nonzero_bits_mode, num_sign_bit_copies, reg_last_death, reg_last_set, reg_last_set_invalid, reg_last_set_label, reg_last_set_table_tick, reg_last_set_value, reg_overlap_mentioned_p(), REGNO, replace_rtx(), subst_low_cuid, update_table_tick(), and XEXP.
Referenced by record_dead_and_set_regs(), record_dead_and_set_regs_1(), setup_incoming_promotions(), and try_combine().
Definition at line 12449 of file combine.c.
References dest, FIRST_PSEUDO_REGISTER, GET_CODE, GET_MODE, HARD_REGNO_NREGS, i, REG, REGNO, SET, SET_DEST, SUBREG_REG, target, XEXP, XVECEXP, and XVECLEN.
Referenced by distribute_notes(), and reg_bitfield_target_p().
Definition at line 12083 of file combine.c.
References ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR, find_regno_note(), FIRST_PSEUDO_REGISTER, FOR_EACH_BB, GET_CODE, GET_MODE, basic_block_def::global_live_at_start, HARD_REGNO_NREGS, basic_block_def::head, i, newpat_used_regs, note_stores(), NULL, PATTERN, prev_nonnote_insn(), REG_DEAD, reg_dead_at_p_1(), REGNO, REGNO_REG_SET_P, and TEST_HARD_REG_BIT.
Referenced by recog_for_combine().
Definition at line 12056 of file combine.c.
References FIRST_PSEUDO_REGISTER, GET_CODE, GET_MODE, HARD_REGNO_NREGS, REG, and REGNO.
Referenced by reg_dead_at_p().
Definition at line 12250 of file combine.c.
Referenced by fixup_match_2(), move_deaths(), and update_equiv_regs().
| static rtx reversed_comparison | ( | rtx | exp, | |
| enum machine_mode | mode, | |||
| rtx | op0, | |||
| rtx | op1 | |||
| ) | [static] |
Definition at line 11443 of file combine.c.
References combine_reversed_comparison_code(), gen_binary(), NULL_RTX, and UNKNOWN.
Referenced by combine_simplify_rtx(), simplify_binary_operation_1(), simplify_if_then_else(), and simplify_logical().
Definition at line 7741 of file combine.c.
References gen_lowpart_for_combine(), GET_CODE, GET_MODE, MEM, rtx_equal_p(), and SUBREG_REG.
Referenced by make_field_assignment().
Definition at line 868 of file combine.c.
References BITS_PER_WORD, ENTRY_BLOCK_PTR, expand_field_assignment(), FIRST_PSEUDO_REGISTER, GEN_INT, GET_CODE, GET_MODE, GET_MODE_BITSIZE, GET_MODE_MASK, GET_MODE_SIZE, HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, INTVAL, nonzero_bits, nonzero_bits_mode, num_sign_bit_copies, REG, reg_nonzero_bits, reg_sign_bit_copies, REGNO, REGNO_REG_SET_P, SET_DEST, SET_SRC, src, and SUBREG_REG.
Referenced by combine_instructions(), and try_combine().
| static int sets_function_arg_p | ( | rtx | pat | ) | [static] |
Definition at line 1245 of file combine.c.
References FIRST_PSEUDO_REGISTER, FUNCTION_ARG_REGNO_P, GET_CODE, i, PATTERN, REG, REGNO, SET, SET_DEST, XEXP, XVECEXP, and XVECLEN.
Referenced by sets_function_arg_p().
Definition at line 828 of file combine.c.
References const0_rtx, first, FIRST_PSEUDO_REGISTER, FUNCTION_ARG_REGNO_P, gen_rtx_CLOBBER, gen_rtx_fmt_e(), get_insns(), GET_MODE, mode, OUTGOING_REGNO, promoted_input_arg(), record_value_for_reg(), and SIGN_EXTEND.
Referenced by combine_instructions().
| static rtx simplify_and_const_int | ( | rtx | x, | |
| enum machine_mode | mode, | |||
| rtx | varop, | |||
| unsigned HOST_WIDE_INT | constop | |||
| ) | [static] |
Definition at line 8024 of file combine.c.
References AND, apply_distributive_law(), const0_rtx, exact_log2, force_to_mode(), gen_binary(), GEN_INT, gen_lowpart_for_combine(), GET_CODE, GET_MODE, GET_MODE_MASK, HOST_WIDE_INT, i, INTVAL, nonzero_bits, NULL_RTX, PLUS, simplify_shift_const(), SUBREG_REG, SUBST, trunc_int_for_mode(), XEXP, and XOR.
Referenced by combine_simplify_rtx(), expand_compound_operation(), force_to_mode(), simplify_and_const_int(), simplify_and_const_int_1(), simplify_comparison(), simplify_logical(), simplify_shift_const(), and simplify_shift_const_1().
Definition at line 10271 of file combine.c.
References ABS, AND, BITS_BIG_ENDIAN, BITS_PER_WORD, CANONICALIZE_COMPARISON, cc0_rtx, changed, combine_reversed_comparison_code(), COMPARE, const0_rtx, const1_rtx, constm1_rtx, EP_extzv, EQ, exact_log2, expand_compound_operation(), force_to_mode(), GE, gen_binary(), GEN_INT, gen_int_mode(), gen_lowpart_for_combine(), gen_rtx_LSHIFTRT, GET_CLASS_NARROWEST_MODE, GET_CODE, get_last_value(), GET_MODE, GET_MODE_BITSIZE, GET_MODE_CLASS, GET_MODE_MASK, GET_MODE_SIZE, GET_MODE_WIDER_MODE, GET_RTX_CLASS, GT, HAVE_cc0, have_insn_for(), HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, i, INTVAL, LE, LT, make_compound_operation(), MINUS, mode, MODE_CC, mode_for_extraction(), mode_for_size(), MODE_INT, NE, new_mode(), nonzero_bits, NOT, NULL_RTX, num_sign_bit_copies, PLUS, REG, reverse_condition(), ROTATE, rtx_equal_p(), SCALAR_INT_MODE_P, SET, shift_count, SIGN_EXTEND, simplify_and_const_int(), simplify_binary_operation(), simplify_shift_const(), simplify_unary_operation(), STORE_FLAG_VALUE, subreg_lowpart_p(), SUBREG_REG, swap_commutative_operands_p(), swap_condition(), trunc_int_for_mode(), UNITS_PER_WORD, UNKNOWN, unsigned_condition(), WORD_REGISTER_OPERATIONS, XEXP, and XOR.
Referenced by combine_simplify_rtx(), and simplify_set().
Definition at line 4745 of file combine.c.
References ABS, combine_reversed_comparison_code(), cond, const0_rtx, CONSTANT_P, constm1_rtx, copy_rtx(), EQ, exact_log2, extend_op(), f, false_rtx, flag_unsafe_math_optimizations, FLOAT_MODE_P, GE, gen_binary(), GEN_INT, gen_lowpart_for_combine(), GET_CODE, GET_MODE, GET_MODE_BITSIZE, GET_MODE_CLASS, GET_MODE_MASK, GET_RTX_CLASS, GT, HONOR_NANS, HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, i, INTVAL, known_cond(), LE, LT, undo::m, make_compound_operation(), MINUS, mode, MODE_INT, NE, NIL, nonzero_bits, NULL, NULL_RTX, num_sign_bit_copies, pc_rtx, PLUS, REG, reg_mentioned_p(), reversed_comparison(), reversed_comparison_code(), rtx_equal_p(), SET, side_effects_p(), SIGN_EXTEND, simplify_gen_unary(), simplify_shift_const(), STORE_FLAG_VALUE, subreg_lowpart_p(), SUBREG_REG, SUBST, subst(), true_rtx, UNKNOWN, XEXP, XOR, and is::z.
Referenced by combine_simplify_rtx().
Definition at line 5408 of file combine.c.
References abort, AND, apply_distributive_law(), const0_rtx, const1_rtx, copy_rtx(), count, gen_binary(), GEN_INT, gen_rtx_GE, gen_rtx_ROTATE, GET_CODE, GET_MODE, GET_MODE_BITSIZE, GET_MODE_MASK, GET_RTX_CLASS, HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, INTVAL, mode, nonzero_bits, NOT, PLUS, reversed_comparison(), rtx_equal_p(), side_effects_p(), simplify_and_const_int(), simplify_gen_unary(), STORE_FLAG_VALUE, SUBST, XEXP, and XOR.
Referenced by combine_simplify_rtx(), and m68hc11_emit_logical().
Definition at line 5071 of file combine.c.
References AND, CANNOT_CHANGE_MODE_CLASS, CC0_P, cc0_rtx, check_asm_operands(), COMPARE, const0_rtx, dest, EQ, exact_log2, false_rtx, find_single_use(), FIRST_PSEUDO_REGISTER, force_to_mode(), gen_binary(), GEN_INT, gen_lowpart_for_combine(), gen_rtx_COMPARE, gen_rtx_fmt_ee(), gen_rtx_REG(), GET_CODE, GET_MODE, GET_MODE_BITSIZE, GET_MODE_CLASS, GET_MODE_SIZE, GET_RTX_CLASS, HAVE_conditional_move, HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, LOAD_EXTEND_OP, make_compound_operation(), make_field_assignment(), MEM, mode, MODE_CC, MODE_INT, NE, NIL, nonzero_bits, NOT, NULL_RTX, num_sign_bit_copies, PATTERN, PC, pc_rtx, PUT_CODE, recog_for_combine(), REG, REG_CANNOT_CHANGE_MODE_P, REG_N_SETS, REG_USERVAR_P, REGNO, regno_reg_rtx, RETURN, rtx_equal_p(), SELECT_CC_MODE, SET, SET_DEST, SET_SRC, side_effects_p(), simplify_comparison(), simplify_gen_unary(), simplify_relational_operation(), simplify_rtx(), src, SUBREG_BYTE, subreg_lowpart_p(), SUBREG_REG, SUBST, subst_insn, tmp, true_rtx, UNITS_PER_WORD, WORD_REGISTER_OPERATIONS, XEXP, and XOR.
Referenced by combine_simplify_rtx().
| static rtx simplify_shift_const | ( | rtx | x, | |
| enum rtx_code | code, | |||
| enum machine_mode | result_mode, | |||
| rtx | varop, | |||
| int | orig_count | |||
| ) | [static] |
Definition at line 9239 of file combine.c.
References adjust_address_nv, AND, apply_distributive_law(), BITS_BIG_ENDIAN, BITS_PER_UNIT, BYTES_BIG_ENDIAN, const0_rtx, constm1_rtx, copy_rtx(), count, EQ, exact_log2, expand_compound_operation(), gen_binary(), GEN_INT, gen_lowpart_for_combine(), gen_rtx_fmt_e(), gen_rtx_fmt_ee(), gen_rtx_GT, gen_rtx_LE, gen_rtx_LSHIFTRT, gen_rtx_NEG, gen_rtx_TRUNCATE, gen_rtx_XOR, GET_CODE, GET_MODE, GET_MODE_BITSIZE, GET_MODE_MASK, GET_MODE_NUNITS, GET_MODE_SIZE, GET_RTX_CLASS, HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, INTVAL, mask_rtx(), MEM, MEM_VOLATILE_P, merge_outer_ops(), MINUS, mode, mode_dependent_address_p(), mode_for_size(), MODE_INT, NIL, nonzero_bits, NOT, NULL_RTX, num_sign_bit_copies, PLUS, plus_constant, ROTATE, rtx_equal_p(), SET, SHIFT_COUNT_TRUNCATED, SIGN_EXTEND, simplify_and_const_int(), simplify_binary_operation(), simplify_gen_unary(), STORE_FLAG_VALUE, subreg_lowpart_p(), SUBREG_REG, SUBST, trunc_int_for_mode(), TRUNCATE, UNITS_PER_WORD, USE, VECTOR_MODE_P, XEXP, and XOR.
Referenced by combine_simplify_rtx(), expand_compound_operation(), extract_left_shift(), force_to_mode(), make_field_assignment(), simplify_and_const_int(), simplify_and_const_int_1(), simplify_comparison(), simplify_if_then_else(), simplify_shift_const(), and simplify_shift_const_1().
Definition at line 3362 of file combine.c.
References abort, cc0_rtx, COMBINE_RTX_EQUAL_P, combine_simplify_rtx(), const0_rtx, copy_rtx(), dest, FIRST_PSEUDO_REGISTER, gen_rtx_CLOBBER, GET_CODE, GET_MODE, GET_RTX_CLASS, GET_RTX_FORMAT, GET_RTX_LENGTH, HAVE_cc0, i, len, MEM, mode, MODES_TIEABLE_P, n_occurrences, PC, REG, REG_CANNOT_CHANGE_MODE_P, REGNO, SET, SET_DEST, SET_SRC, simplify_subreg(), simplify_unary_operation(), SUBREG_BYTE, SUBREG_REG, SUBST, XEXP, XVECEXP, and XVECLEN.
Referenced by combine_simplify_rtx(), d_name(), DST_enter_cloned_subroutine(), simplify_if_then_else(), subst(), try_combine(), and tsubst_copy_and_build().
Definition at line 1522 of file combine.c.
References abort, added_links_insn, any_uncondjump_p(), asm_noperands(), BITS_PER_WORD, BLOCK_FOR_INSN, CALL_INSN_FUNCTION_USAGE, can_combine_p(), cant_combine_insn_p(), cc0_rtx, check_asm_operands(), CLEAR_HARD_REG_SET, combinable_i3pat(), combine_attempts, combine_extras, combine_merges, combine_successes, COMPARE, const0_rtx, CONST_DOUBLE_HIGH, CONST_DOUBLE_LOW, contains_muldiv(), copy_rtx(), copy_rtx_if_shared(), dead_or_set_p(), distribute_links(), distribute_notes(), emit_barrier_after(), exact_log2, EXIT_BLOCK_PTR, FIND_REG_INC_NOTE, find_reg_note(), find_single_use(), find_split_point(), FIRST_PSEUDO_REGISTER, flag_expensive_optimizations, GEN_INT, gen_lowpart_for_combine(), gen_rtvec(), gen_rtx_ASHIFT, gen_rtx_CLOBBER, gen_rtx_COMPARE, gen_rtx_EXPR_LIST, gen_rtx_INSN, gen_rtx_INSN_LIST, gen_rtx_PARALLEL, gen_rtx_REG(), gen_rtx_SET, gen_rtx_SIGN_EXTEND, gen_rtx_ZERO_EXTEND, GET_CODE, GET_MODE, GET_MODE_BITSIZE, GET_MODE_CLASS, GET_MODE_MASK, GET_MODE_SIZE, HAVE_cc0, basic_block_def::head, HOST_BITS_PER_INT, HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT, i, immed_double_const(), insn, INSN_CODE, insn_code_number, INSN_CUID, INSN_P, INSN_SCOPE, INSN_UID, int, INTVAL, lo, LOAD_EXTEND_OP, LOG_LINKS, mark_used_regs_combine(), max_reg_num(), MEM, memcpy, MODE_CC, MODE_INT, move_deaths(), n_occurrences, newpat_used_regs, next, basic_block_def::next_bb, NEXT_INSN, next_nonnote_insn(), next_real_insn(), NOTE_INSN_DELETED, NOTE_LINE_NUMBER, NOTE_SOURCE_FILE, note_stores(), NULL, NULL_RTX, p, p2, PATTERN, pc_rtx, prev_nonnote_insn(), PUT_CODE, recog_for_combine(), record_value_for_reg(), REG, REG_DEAD, REG_INC, REG_LIBCALL, reg_mentioned_p(), REG_N_DEATHS, REG_N_SETS, reg_nonzero_bits, REG_NOTE_KIND, REG_NOTES, reg_overlap_mentioned_p(), reg_referenced_p(), reg_set_p(), REG_UNUSED, reg_used_between_p(), REG_USERVAR_P, REGNO, regno_reg_rtx, remove_note(), replace_rtx(), reset_used_flags(), returnjump_p(), rtvec_alloc(), rtx_equal_p(), SELECT_CC_MODE, SET, SET_DEST, set_nonzero_bits_and_sign_copies(), SET_SRC, sets_cc0_p(), side_effects_p(), SIGN_EXTEND, single_set, split, split_insns(), subreg_lowpart_p(), SUBREG_REG, SUBST, subst(), subst_insn, subst_low_cuid, subst_prev_insn, undo_all(), undo_commit(), UNITS_PER_WORD, USE, use_crosses_set_p(), UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD, word_mode, XEXP, XVEC, XVECEXP, and XVECLEN.
Referenced by combine_instructions().
Definition at line 2896 of file combine.c.
References undo::i, undo::is_int, undo::next, next, NULL_RTX, undo::old_contents, undo::r, subst_prev_insn, and undo::where.
Referenced by try_combine().
Definition at line 2923 of file combine.c.
References undo::next, and next.
Referenced by try_combine().
Definition at line 11459 of file combine.c.
References FIRST_PSEUDO_REGISTER, GET_CODE, GET_MODE, GET_RTX_CLASS, GET_RTX_FORMAT, GET_RTX_LENGTH, HARD_REGNO_NREGS, i, label_tick, r, REG, reg_last_set_table_tick, REGNO, x0, x1, and XEXP.
Referenced by record_value_for_reg(), and update_table_tick().
| static int use_crosses_set_p | ( | rtx | x, | |
| int | from_cuid | |||
| ) | [static] |
Definition at line 11996 of file combine.c.
References FIRST_PSEUDO_REGISTER, GET_CODE, GET_MODE, GET_RTX_FORMAT, GET_RTX_LENGTH, HARD_REGNO_NREGS, i, INSN_CUID, MEM, mem_last_set, PUSH_ARGS, REG, reg_last_set, REGNO, STACK_POINTER_REGNUM, XEXP, XVECEXP, and XVECLEN.
Referenced by can_combine_p(), try_combine(), and use_crosses_set_p().
rtx added_links_insn [static] |
int combine_attempts [static] |
Definition at line 100 of file combine.c.
Referenced by combine_instructions(), dump_combine_stats(), and try_combine().
int combine_extras [static] |
Definition at line 108 of file combine.c.
Referenced by combine_instructions(), dump_combine_stats(), and try_combine().
unsigned int combine_max_regno [static] |
Definition at line 148 of file combine.c.
Referenced by combine_instructions(), init_reg_last(), and init_reg_last_arrays().
int combine_merges [static] |
Definition at line 104 of file combine.c.
Referenced by combine_instructions(), dump_combine_stats(), and try_combine().
int combine_successes [static] |
Definition at line 112 of file combine.c.
Referenced by combine_instructions(), dump_combine_stats(), and try_combine().
int label_tick [static] |
Definition at line 275 of file combine.c.
Referenced by combine_instructions(), get_last_value(), nonzero_bits1(), num_sign_bit_copies1(), record_truncated_value(), record_value_for_reg(), reg_nonzero_bits_for_combine(), reg_num_sign_bit_copies_for_combine(), reg_truncated_to_mode(), and update_table_tick().
int last_call_cuid [static] |
Definition at line 166 of file combine.c.
Referenced by can_combine_p(), combine_instructions(), and record_dead_and_set_regs().
int max_uid_cuid [static] |
Definition at line 127 of file combine.c.
Referenced by combine_instructions(), distribute_notes(), insn_cuid(), and move_deaths().
int mem_last_set [static] |
Definition at line 161 of file combine.c.
Referenced by combine_instructions(), get_last_value_validate(), record_dead_and_set_regs(), record_dead_and_set_regs_1(), and use_crosses_set_p().
int n_occurrences [static] |
Definition at line 345 of file combine.c.
Referenced by check_operand_nalternatives(), delete_output_reload(), scan_operands(), subst(), and try_combine().
int need_refresh [static] |
Definition at line 208 of file combine.c.
Referenced by combine_instructions(), copyprop_hardreg_forward(), and distribute_notes().
HARD_REG_SET newpat_used_regs [static] |
Definition at line 193 of file combine.c.
Referenced by mark_used_regs_combine(), reg_dead_at_p(), and try_combine().
enum machine_mode nonzero_bits_mode [static] |
Definition at line 292 of file combine.c.
Referenced by combine_instructions(), record_value_for_reg(), and set_nonzero_bits_and_sign_copies().
int nonzero_sign_valid [static] |
Definition at line 304 of file combine.c.
Referenced by combine_instructions(), expand_field_assignment(), extended_count(), nonzero_bits1(), num_sign_bit_copies1(), reg_nonzero_bits_for_combine(), and reg_num_sign_bit_copies_for_combine().
sbitmap refresh_blocks [static] |
Definition at line 207 of file combine.c.
Referenced by combine_instructions(), and distribute_notes().
unsigned int reg_dead_endregno [static] |
int reg_dead_flag [static] |
unsigned int reg_dead_regno [static] |
rtx* reg_last_death [static] |
Definition at line 152 of file combine.c.
Referenced by combine_instructions(), distribute_notes(), init_reg_last_arrays(), move_deaths(), record_dead_and_set_regs(), and record_value_for_reg().
rtx* reg_last_set [static] |
Definition at line 156 of file combine.c.
Referenced by combine_instructions(), get_last_value(), init_reg_last_arrays(), nonzero_bits1(), num_sign_bit_copies1(), record_promoted_value(), record_value_for_reg(), and use_crosses_set_p().
char* reg_last_set_invalid [static] |
Definition at line 271 of file combine.c.
Referenced by combine_instructions(), get_last_value_validate(), init_reg_last_arrays(), and record_value_for_reg().
int* reg_last_set_label [static] |
Definition at line 261 of file combine.c.
Referenced by combine_instructions(), get_last_value(), get_last_value_validate(), init_reg_last_arrays(), nonzero_bits1(), num_sign_bit_copies1(), and record_value_for_reg().
int* reg_last_set_table_tick [static] |
Definition at line 266 of file combine.c.
Referenced by combine_instructions(), init_reg_last_arrays(), record_value_for_reg(), and update_table_tick().
rtx* reg_last_set_value [static] |
Definition at line 256 of file combine.c.
Referenced by combine_instructions(), get_last_value(), init_reg_last_arrays(), nonzero_bits1(), num_sign_bit_copies1(), record_dead_and_set_regs(), and record_value_for_reg().
unsigned HOST_WIDE_INT* reg_nonzero_bits [static] |
Definition at line 287 of file combine.c.
Referenced by combine_instructions(), nonzero_bits1(), set_nonzero_bits_and_sign_copies(), and try_combine().
unsigned char* reg_sign_bit_copies [static] |
Definition at line 297 of file combine.c.
Referenced by combine_instructions(), num_sign_bit_copies1(), and set_nonzero_bits_and_sign_copies().
rtx subst_insn [static] |
Definition at line 174 of file combine.c.
Referenced by combine_instructions(), find_split_point(), simplify_set(), and try_combine().
int subst_low_cuid [static] |
Definition at line 188 of file combine.c.
Referenced by combine_instructions(), get_last_value(), nonzero_bits1(), num_sign_bit_copies1(), record_value_for_reg(), reg_nonzero_bits_for_combine(), reg_num_sign_bit_copies_for_combine(), and try_combine().
rtx subst_prev_insn [static] |
Definition at line 179 of file combine.c.
Referenced by combine_instructions(), try_combine(), and undo_all().
basic_block this_basic_block [static] |
Definition at line 202 of file combine.c.
Referenced by combine_instructions(), distribute_links(), distribute_notes(), and try_combine().
int total_attempts [static] |
Definition at line 116 of file combine.c.
Referenced by combine_instructions(), and dump_combine_total_stats().
int total_extras [static] |
Definition at line 116 of file combine.c.
Referenced by combine_instructions(), and dump_combine_total_stats().
int total_merges [static] |
Definition at line 116 of file combine.c.
Referenced by combine_instructions(), and dump_combine_total_stats().
int total_successes [static] |
Definition at line 116 of file combine.c.
Referenced by combine_instructions(), and dump_combine_total_stats().
int* uid_cuid [static] |
Definition at line 126 of file combine.c.
Referenced by alloc_gcse_mem(), alloc_mem(), combine_instructions(), cse_main(), free_gcse_mem(), free_mem(), and make_regs_eqv().
1.5.6