This is the mail archive of the
mailing list for the GCC project.
Re: new alias sets from the backend
- To: Richard Henderson <rth at cygnus dot com>
- Subject: Re: new alias sets from the backend
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Tue, 29 Sep 1998 21:06:17 -0600
- cc: mark at markmitchell dot com, egcs-patches at cygnus dot com
- Reply-To: law at cygnus dot com
In message <19980920235600.A12353@dot.cygnus.com>you write:
> extern void foo(int *xp, int x);
> foo(stack_pointer - 4, 2);
> and then expecting xp == &x inside foo. Which I dare say goes
> well outside the bounds of the reasonable. To compound it all,
> the only things that will exist in the va_list set are in the
> elipsis of the function prototype, and so have no other name
> by which they could be known.
My only concern is trying to guarantee that if we pass a pointer in a va_list
and we us va_arg to get that pointer out of the stack, then dereference the
pointer that we must not move the dereference of the pointer past the load of
the pointer from the flushback area or the flushes themselves..
That's trickier to handle if the flushback has its own alias set and the
deref of the pointer uses a different alias set. Though I would hope basic
data dependence would catch it.