This is the mail archive of the gcc-bugs@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]

[Bug bootstrap/50826] bootstrap on 64 bit pa broken by r180194, ICE in mem_loc_descriptor


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50826

--- Comment #8 from Alexandre Oliva <aoliva at gcc dot gnu.org> 2011-10-26 08:52:13 UTC ---
Thanks.  FTR, the reason we get this on PA64 and not on x86* (and probably not
on PA32) is that pa_internal_arg_pointer sets up a pseudo to hold r29+offset.
The pseudo is fwpropped into the assignments to args passed in registers but
that must live on the stack (âinsnâ in this testcase).  The last such
assignment becomes r29's death point, but the pseudo was propagated into debug
uses at later points, so DF sets up a debug temp bound to r29 before its death,
and replaces r29 with the debug temp in the debug uses.

This doesn't happen on x86 because there's no such pseudo: the arg pointer is
used directly throughout the function, so it doesn't die early and doesn't
trigger the debug temp substitution that ended up triggering the VT bug.

Maybe this new info can lead to a simplification of the test in the patch; I'm
not sure about it yet.


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