diff options
author | Ian Lance Taylor <iant@google.com> | 2007-08-07 16:48:00 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2007-08-07 16:48:00 +0000 |
commit | 992669047c537067eaf71906950ef76f620ba2da (patch) | |
tree | bf15b2ea666a009b162b64e34e2ecf9dd25bd082 /gcc | |
parent | 049e9ad97ecf7140dea055c6f80473396f2d2fb9 (diff) | |
download | gcc-992669047c537067eaf71906950ef76f620ba2da.tar.gz |
lower-subreg.c (resolve_clobber): If the clobber has a LIBCALL note, just delete the insn.
* lower-subreg.c (resolve_clobber): If the clobber has a LIBCALL
note, just delete the insn.
From-SVN: r127273
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/lower-subreg.c | 9 |
2 files changed, 14 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9e0e4bffc9d..fa267ee2c7f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2007-08-07 Ian Lance Taylor <iant@google.com> + + * lower-subreg.c (resolve_clobber): If the clobber has a LIBCALL + note, just delete the insn. + 2007-08-07 Andreas Schwab <schwab@suse.de> PR bootstrap/32973 diff --git a/gcc/lower-subreg.c b/gcc/lower-subreg.c index 4cb2ca8cabe..288566d87b5 100644 --- a/gcc/lower-subreg.c +++ b/gcc/lower-subreg.c @@ -906,6 +906,15 @@ resolve_clobber (rtx pat, rtx insn) if (!resolve_reg_p (reg) && !resolve_subreg_p (reg)) return false; + /* If this clobber has a REG_LIBCALL note, then it is the initial + clobber added by emit_no_conflict_block. We were able to + decompose the register, so we no longer need the clobber. */ + if (find_reg_note (insn, REG_LIBCALL, NULL_RTX) != NULL_RTX) + { + delete_insn (insn); + return true; + } + orig_mode = GET_MODE (reg); words = GET_MODE_SIZE (orig_mode); words = (words + UNITS_PER_WORD - 1) / UNITS_PER_WORD; |