summaryrefslogtreecommitdiff
path: root/gcc/rtlanal.c
diff options
context:
space:
mode:
authorwehle <wehle@138bc75d-0d04-0410-961f-82ee72b054a4>2001-10-11 03:51:24 +0000
committerwehle <wehle@138bc75d-0d04-0410-961f-82ee72b054a4>2001-10-11 03:51:24 +0000
commit228498fe46ce3e03eb5d495d450e60e0d33921e1 (patch)
tree57d914a811598a624f337dd3ee4f78fbb3d988ff /gcc/rtlanal.c
parent19cb6b50cf92dfd40eb254e53f1a711c5f5e486d (diff)
downloadgcc-228498fe46ce3e03eb5d495d450e60e0d33921e1.tar.gz
* rtlanal.c (noop_move_p): Insns with a REG_RETVAL note
should not be considered as a no-op. * flow.c (delete_noop_moves): Handle REG_LIBCALL notes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46174 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/rtlanal.c')
-rw-r--r--gcc/rtlanal.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c
index ee40d6c7908..9cf879c1377 100644
--- a/gcc/rtlanal.c
+++ b/gcc/rtlanal.c
@@ -1037,6 +1037,11 @@ noop_move_p (insn)
if (find_reg_note (insn, REG_EQUAL, NULL_RTX))
return 0;
+ /* For now treat an insn with a REG_RETVAL note as a
+ a special insn which should not be considered a no-op. */
+ if (find_reg_note (insn, REG_RETVAL, NULL_RTX))
+ return 0;
+
if (GET_CODE (pat) == SET && set_noop_p (pat))
return 1;