This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH][ARM] PR78255: wrong code generation for indirect sibling calls
- From: "Andre Vieira (lists)" <Andre dot SimoesDiasVieira at arm dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Fri, 11 Nov 2016 10:26:50 +0000
- Subject: Re: [PATCH][ARM] PR78255: wrong code generation for indirect sibling calls
- Authentication-results: sourceware.org; auth=none
- References: <58248A11.5030302@arm.com>
On 10/11/16 14:54, Andre Vieira (lists) wrote:
> Hi,
>
> As reported in PR78255 there is currently an issue with indirect sibling
> calls in ARM when the address of the sibling call is loaded into 'r3'
> and that same register is chosen to align the stack. See the report for
> further information.
>
> As I mentioned in the bugzilla ticket I am not sure this is the right
> approach, though it works... Bootstrapped on ARM and no regressions.
>
> Do you think this is OK? Another solution would be to make sure that
> 'arm_get_frame_offsets' recalculates offsets after we know that the call
> is going to be indirect, i.e. after we know the address is going to be
> loaded into a register, but I do not know what a sane way would be to
> ensure this.
>
> Regards,
> Andre
>
> gcc/ChangeLog
> 2016-11-10 Andre Vieira <andre.simoesdiasvieira@arm.com>
>
> * config/arm/arm.md (sibcall_internal): Add 'use' to pattern.
> (sibcall_value_internal): Likewise.
> (sibcall_insn): Likewise.
> (sibcall_value_insn): Likewise.
>
>
> gcc/testsuite/ChangeLog
> 2016-11-10 Andre Vieira <andre.simoesdiasvieira@arm.com>
>
> * gcc.target/arm/pr78255.c: New.
>
I was looking at the bootstrap results of the wrong patch. This one
seems to break ARM bootstrap, I am looking into it...
Cheers,
Andre