diff options
author | Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | 2015-07-09 02:51:09 +0000 |
---|---|---|
committer | Trevor Saunders <tbsaunde@gcc.gnu.org> | 2015-07-09 02:51:09 +0000 |
commit | 760edf20ba65b2d6b44a6a8c98683e4eb9490009 (patch) | |
tree | 3b2f06358a06111a3171d4f07399d8b62fc9689d /gcc/lower-subreg.c | |
parent | 16cb56686dba6e45ab5e19b86fbed7712e1e6501 (diff) |
reduce conditional compilation based on AUTO_INC_DEC
gcc/ChangeLog:
2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* auto-inc-dec.c (pass_inc_dec::execute): Don't check the value
of AUTO_INC_DEC with the preprocessor.
* combine.c (combine_instructions): Likewise.
(can_combine_p): Likewise.
(try_combine): Likewise.
* emit-rtl.c (try_split): Likewise.
* loop-invariant.c (calculate_loop_reg_pressure): Likewise.
* lower-subreg.c (resolve_simple_move): Likewise.
* lra.c (update_inc_notes): Likewise.
* recog.c (asm_operand_ok): Likewise.
(constrain_operands): Likewise.
* regrename.c (scan_rtx_address): Likewise.
* reload.c (update_auto_inc_notes): Likewise.
(reg_inc_found_and_valid_p): Likewise.
* reload1.c (reload): Likewise.
(emit_input_reload_insns): Likewise.
(delete_output_reload): Likewise.
* sched-deps.c (init_insn_reg_pressure_info): Likewise.
* valtrack.c (cleanup_auto_inc_dec): Likewise.
From-SVN: r225596
Diffstat (limited to 'gcc/lower-subreg.c')
-rw-r--r-- | gcc/lower-subreg.c | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/gcc/lower-subreg.c b/gcc/lower-subreg.c index bedfc73715f..f3b2ab5497d 100644 --- a/gcc/lower-subreg.c +++ b/gcc/lower-subreg.c @@ -940,19 +940,19 @@ resolve_simple_move (rtx set, rtx_insn *insn) reg = gen_reg_rtx (orig_mode); -#if AUTO_INC_DEC - { - rtx move = emit_move_insn (reg, src); - if (MEM_P (src)) - { - rtx note = find_reg_note (insn, REG_INC, NULL_RTX); - if (note) - add_reg_note (move, REG_INC, XEXP (note, 0)); - } - } -#else - emit_move_insn (reg, src); -#endif + if (AUTO_INC_DEC) + { + rtx move = emit_move_insn (reg, src); + if (MEM_P (src)) + { + rtx note = find_reg_note (insn, REG_INC, NULL_RTX); + if (note) + add_reg_note (move, REG_INC, XEXP (note, 0)); + } + } + else + emit_move_insn (reg, src); + src = reg; } @@ -1043,15 +1043,13 @@ resolve_simple_move (rtx set, rtx_insn *insn) mdest = simplify_gen_subreg (orig_mode, dest, GET_MODE (dest), 0); minsn = emit_move_insn (real_dest, mdest); -#if AUTO_INC_DEC - if (MEM_P (real_dest) + if (AUTO_INC_DEC && MEM_P (real_dest) && !(resolve_reg_p (real_dest) || resolve_subreg_p (real_dest))) { rtx note = find_reg_note (insn, REG_INC, NULL_RTX); if (note) add_reg_note (minsn, REG_INC, XEXP (note, 0)); } -#endif smove = single_set (minsn); gcc_assert (smove != NULL_RTX); |