This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: A patch for gcc.c-torture/execute/980505-1.c




  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





Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]