Fix 991213-1.c testcase abort on Sparc

Bernd Schmidt bernds@balti.cygnus.co.uk
Thu Dec 16 04:23:00 GMT 1999


On Thu, 16 Dec 1999, David S. Miller wrote:

>    Date: Thu, 16 Dec 1999 03:58:18 -0700
>    From: Jeffrey A Law <law@cygnus.com>
> 
>    Hmmm.  I just realized an interesting problem.  The whole point of
>    the clobber is to show the entire value is being written.  I don't
>    see a good way to do that in that code.  ie, we want to emit a
>    single CLOBBER insn which stomps on the entire value.  We can't do
>    it in little hunks.
> 
> Why won't the compiler view the following two as equivalent?
> 
>    (clobber (concat (reg1) (reg2)))
> 
>    (clobber (reg1))
>    (clobber (reg2))
> 
> I can't think of any piece of code currently in the compiler which
> will not derive the same conclusion about the life disposition of
> these two pseudos in both cases.

Do we actually need the clobber in such a case?  If we have two insns
setting each pseudo, then the flow pass should deduce that each of the
registers is dead.  This situation is different from the one involving
SUBREGs of multi-word pseudos where we can't keep track of the lifetimes
of its subregs.


Bernd



More information about the Gcc-patches mailing list