This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: A patch for gcc.c-torture/execute/980505-1.c
- To: hjl at lucon dot org (H.J. Lu)
- Subject: Re: A patch for gcc.c-torture/execute/980505-1.c
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Fri, 19 Jun 1998 23:15:23 -0600
- cc: egcs-patches at cygnus dot com
- Reply-To: law at cygnus dot com
In message <m0yn2i5-00026EC@ocean.lucon.org>you write:
> > I do not believe it is possible for an insn with a RETVAL note
> > to ever be considered dead. Thus the condition "insn == insn_RETVAL"
> > should never be true. I believe this test is unnecessary.
>
> If that is true, why is this in delete_trivially_dead_insns:
The comment is somewhat misleading since the insn with the RETVAL
itself is retained after modifying it to load the result value
directly into the output register and removing the RETVAL note.
All the other insns are deleted.
> > Change this to (set && in_libcall) since we do not need to make any
> > of these transformations unless we are in a libcall block.
> >
>
> That is not true. Please see the enclosed RTL dump. When we delete
I think this means you've misunderstood how I wanted this problem
fixed.
To delete insns 9 and 22 we have to modify insns in the libcall block
itself (insns 11 and 24 respectively). We should be keying this
on changes in the libcall block only. Anything else is wrong.
Basically I think you're attacking the problem at the wrong time
and your current scheme will lose badly.
jeff