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: new alias sets from the backend



  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.

jeff


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