diff options
author | Joern Rennecke <joern.rennecke@embecosm.com> | 2011-12-09 12:57:24 +0000 |
---|---|---|
committer | Joern Rennecke <amylaar@gcc.gnu.org> | 2011-12-09 12:57:24 +0000 |
commit | 7543f91816ec7402e501d2afa09d7f18ac8bee61 (patch) | |
tree | 29604d6a37d0c504c6bb80d0d28fbabc827412ab /gcc/emit-rtl.c | |
parent | fb5503484f7463c2a523fed993f58e58289ba59b (diff) | |
download | gcc-7543f91816ec7402e501d2afa09d7f18ac8bee61.zip gcc-7543f91816ec7402e501d2afa09d7f18ac8bee61.tar.gz gcc-7543f91816ec7402e501d2afa09d7f18ac8bee61.tar.bz2 |
re PR middle-end/40154 (internal compiler error: in do_SUBST, at combine.c:681)
PR middle-end/40154
* emit-rtl.c (set_dst_reg_note): New function.
* rtl.h (set_dst_reg_note): Declare.
* optabs.c (expand_binop, expand_absneg_bit): Use set_dst_reg_note.
(emit_libcall_block, expand_fix): Likewise.
* function.c (assign_parm_setup_reg, expand_function_start): Likewise.
* expmed.c (expand_mult_const, expand_divmod): Likewise.
* reload1.c (gen_reload): Likewise.
From-SVN: r182162
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r-- | gcc/emit-rtl.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 4a27a05..a537374 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -5004,6 +5004,17 @@ set_unique_reg_note (rtx insn, enum reg_note kind, rtx datum) return REG_NOTES (insn); } + +/* Like set_unique_reg_note, but don't do anything unless INSN sets DST. */ +rtx +set_dst_reg_note (rtx insn, enum reg_note kind, rtx datum, rtx dst) +{ + rtx set = single_set (insn); + + if (set && SET_DEST (set) == dst) + return set_unique_reg_note (insn, kind, datum); + return NULL_RTX; +} /* Return an indication of which type of insn should have X as a body. The value is CODE_LABEL, INSN, CALL_INSN or JUMP_INSN. */ |