diff options
author | Jeffrey A Law <law@cygnus.com> | 1998-08-18 18:29:40 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1998-08-18 12:29:40 -0600 |
commit | ec35104c79305d42d96c79c1a8a3c06211b70acb (patch) | |
tree | 5aed366b6918755d29ab59bf170407c3b2b93ac5 /gcc/combine.c | |
parent | e958d4576a5d91454cf9368be3a3444e7efbdb0a (diff) | |
download | gcc-ec35104c79305d42d96c79c1a8a3c06211b70acb.zip gcc-ec35104c79305d42d96c79c1a8a3c06211b70acb.tar.gz gcc-ec35104c79305d42d96c79c1a8a3c06211b70acb.tar.bz2 |
combine.c (can_combine_p): Allow combining insns with REG_RETVAL notes.
* combine.c (can_combine_p): Allow combining insns with REG_RETVAL
notes.
(try_combine): Allow combining insns with REG_LIBCALL notes.
From-SVN: r21833
Diffstat (limited to 'gcc/combine.c')
-rw-r--r-- | gcc/combine.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/gcc/combine.c b/gcc/combine.c index 155585b..5c050f2 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -958,8 +958,14 @@ can_combine_p (insn, i3, pred, succ, pdest, psrc) /* Don't substitute into an incremented register. */ || FIND_REG_INC_NOTE (i3, dest) || (succ && FIND_REG_INC_NOTE (succ, dest)) +#if 0 /* Don't combine the end of a libcall into anything. */ + /* ??? This gives worse code, and appears to be unnecessary, since no + pass after flow uses REG_LIBCALL/REG_RETVAL notes. Local-alloc does + use REG_RETVAL notes for noconflict blocks, but other code here + makes sure that those insns don't disappear. */ || find_reg_note (insn, REG_RETVAL, NULL_RTX) +#endif /* Make sure that DEST is not used after SUCC but before I3. */ || (succ && ! all_adjacent && reg_used_between_p (dest, succ, i3)) @@ -1371,7 +1377,12 @@ try_combine (i3, i2, i1) if (GET_RTX_CLASS (GET_CODE (i3)) != 'i' || GET_RTX_CLASS (GET_CODE (i2)) != 'i' || (i1 && GET_RTX_CLASS (GET_CODE (i1)) != 'i') - || find_reg_note (i3, REG_LIBCALL, NULL_RTX)) +#if 0 + /* ??? This gives worse code, and appears to be unnecessary, since no + pass after flow uses REG_LIBCALL/REG_RETVAL notes. */ + || find_reg_note (i3, REG_LIBCALL, NULL_RTX) +#endif +) return 0; combine_attempts++; |