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