From 992669047c537067eaf71906950ef76f620ba2da Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Tue, 7 Aug 2007 16:48:00 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/lower-subreg.c | 9 +++++++++ 2 files changed, 14 insertions(+) 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 + + * lower-subreg.c (resolve_clobber): If the clobber has a LIBCALL + note, just delete the insn. + 2007-08-07 Andreas Schwab 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; -- 2.30.2