alpha haifa regression

Jeffrey A Law law@cygnus.com
Mon Sep 29 15:14:00 GMT 1997


  In message < 199709292200.PAA08832@cygnus.com >you write:
  > 	But since the tests in true_dependance are symmetric, that will
  > 	then cause problems for va_arg(list, int), no?
  > 
  > I would suspect no, because va_arg(list, int) expands into complicated code
  > that does an actual aggregate (array and/or structure) memory access, and
  > hence va_arg references are always aggregate references, even if a scalar
  > type is specified.
I suspect yes -- I've already seen it on the PA.

The new alias code keeps much better track of this kind of stuff
and haifa is much more aggressive about moving stuff around.

It's a problem we can't just ignore.

  > It is easy enough to check by looking at the RTL generated by a va_arg
  > call using a scalar.  I suspect that it will have MEM_IN_STRUCT_P set.
Depends on the target, but most end up doing something like this if
you remove all the casts, address computations & rounding:


  blah = *(type*)address

jeff





More information about the Gcc mailing list