This is the mail archive of the gcc@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]
Other format: [Raw text]

Re: Ada bootstrap failure due to new DCE bug


On Thu, 2004-08-05 at 01:28, Richard Henderson wrote:

>   (1) The variable is pristine.
> 
>   (2) The variable is variably indexed, but not addressable.  In this
>       case it *does* need to live in memory, since there's basically
>       no other way that variable indexing can be done without, um,
>       interesting hardware.  But the variable is not aliased in any
>       way, and all references to it will be through its decl.
> 
Right.  ATM, we equate needs-to-live-in-memory to call-clobberedness. 
However, since I introduced CALL_CLOBBERED_VARS, I *think* we don't need
DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL anymore.  So, I suspect that your
patch to get rid of it is good.  So, go ahead with it if it works.

The aliasing pass does not need to care about (2) and I don't think we
really care about needing to live in memory, just whether things are
call-clobbered (ie, only a subset of needs-to-live-in-memory).

>   (3) The variable has its address taken, but the address is only used
>       in controled ways, e.g. memset (&x, 0, sizeof(x)).  We don't 
>       actually recognize or do anything with this case at present, but
>       we should in the not-too-distant future, so I want you thinking
>       about it from a representational standpoint.
> 
Agreed.  We need to handle this.  Do we have a way of recognizing
standard libc-style calls?  I'm thinking of scanf, memset, printf, and
their cousins in other languages.


> Are there any cases I missed?
> 
Can't think of any, ATM.


Diego.


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