------- Comment #4 from dave at hiauly1 dot hia dot nrc dot ca 2005-11-21 03:09 ------- Subject: Re: [3.4 only] FAIL: gcc.dg/sibcall-1.c and FAIL: gcc.dg/sibcall-2.c
> ------- Comment #2 from gdr at gcc dot gnu dot org 2005-11-21 02:29 ------- > Is there any hppa maintainer lookin at this? Not really. It's somewhat low priority as it's only a missed optimisation. Although it's listed as a target bug, the fix for this problem in 4.x was actually to the generic code. The root cause of this bug is the fact that the argument pointer can't be eliminated on this target. The copy in function.c prevents this optimisation. It would take some research to find the change which fixed the problem in 4.0. It's possible to get these tests to pass if we change the argument pointer register to a callee saves register. However, this requires creating a frame, saving the register used for the argument pointer and copying the incoming argument pointer to this new register. We could optimise this in cases where the argument pointer isn't needed. However, changes are needed to reload for this. Thus, I don't think a fix along these lines is appropriate for 3.3. The issue in this PR is related to the problem noted in PR 2493. We need to copy or save the argument pointer in order to be able to find saved arguments. Dave -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21590