diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1995-09-20 14:16:34 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1995-09-20 14:16:34 -0400 |
commit | d8090d46bcdcd2eb490ecffeef24f5956de32310 (patch) | |
tree | af942a7e2f0aecec336e4eb7dd484b364ff000d3 | |
parent | 29d356fb7f96a0669fbf45a68d8c577e8c53c4ba (diff) | |
download | gcc-d8090d46bcdcd2eb490ecffeef24f5956de32310.zip gcc-d8090d46bcdcd2eb490ecffeef24f5956de32310.tar.gz gcc-d8090d46bcdcd2eb490ecffeef24f5956de32310.tar.bz2 |
(expand_inline_function): Do copy something setting the result register if...
(expand_inline_function): Do copy something setting the result
register if it is setting it to itself and has a REG_NOTE.
From-SVN: r10383
-rw-r--r-- | gcc/integrate.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/integrate.c b/gcc/integrate.c index d00c632..f04f8b4 100644 --- a/gcc/integrate.c +++ b/gcc/integrate.c @@ -1699,6 +1699,11 @@ expand_inline_function (fndecl, parms, target, ignore, type, structure_value_add SET_DEST (new_set) = gen_reg_rtx (GET_MODE (SET_DEST (new_set))); } + /* If the source and destination are the same and it + has a note on it, keep the insn. */ + else if (rtx_equal_p (SET_DEST (set), SET_SRC (set)) + && REG_NOTES (insn) != 0) + copy = emit_insn (copy_rtx_and_substitute (pattern, map)); else break; } |