diff options
author | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-08-07 16:48:00 +0000 |
---|---|---|
committer | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-08-07 16:48:00 +0000 |
commit | 58e13bdf758b37b53ccb81d8f8b058eb5b5d37f9 (patch) | |
tree | bf15b2ea666a009b162b64e34e2ecf9dd25bd082 /gcc/lower-subreg.c | |
parent | 046553d4e843df2c6d1ab94ef563eabbc7360642 (diff) | |
download | gcc-58e13bdf758b37b53ccb81d8f8b058eb5b5d37f9.tar.gz |
* lower-subreg.c (resolve_clobber): If the clobber has a LIBCALL
note, just delete the insn.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127273 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/lower-subreg.c')
-rw-r--r-- | gcc/lower-subreg.c | 9 |
1 files changed, 9 insertions, 0 deletions
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; |