This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [Patch]: Fix pb in libcall_dead_p
- To: Stephane Carrez <Stephane dot Carrez at worldnet dot fr>
- Subject: Re: [Patch]: Fix pb in libcall_dead_p
- From: Richard Henderson <rth at cygnus dot com>
- Date: Tue, 27 Jun 2000 14:00:32 -0700
- Cc: gcc-patches at gcc dot gnu dot org
- References: <39592E8D.8EEF907A@worldnet.fr>
On Wed, Jun 28, 2000 at 12:45:33AM +0200, Stephane Carrez wrote:
> (insn 439 438 440 (parallel[
> (set (reg:SI 193)
> (reg:SI 0 x))
> (clobber (scratch:HI))
> ] ) 13 {movsi} (nil)
> (insn_list:REG_RETVAL 434 (expr_list:REG_EQUAL (expr_list (symbol_ref:HI ("__divsi3"))
> (expr_list (reg:SI 189)
> (expr_list (const_int 1 [0x1])
> (nil))))
> (nil))))
>
> (insn 440 439 442 (parallel[
> (set (reg:SI 194)
> (reg:SI 0 x))
> (clobber (scratch:HI))
> ] ) 13 {movsi} (nil)
> (insn_list:REG_RETVAL 434 (expr_list:REG_EQUAL (div:SI (const_int 1 [0x1])
> (const_int 0 [0x0]))
> (nil))))
First off, this is illegal. You cannot have two REG_RETVAL notes for
one libcall.
Second, I'm extremely surprised you can get away with a movsi insn that
incorporates a clobber. I would have thought the compiler would have
fallen over elsewhere -- particularly during reload. Why are you doing
that?
> Can you integrate this fix?
Not as-is. If it is found to be necessary, libcall_dead_p should use
single_set instead.
r~