This is the mail archive of the
mailing list for the GCC project.
[Ping 4]: [patch, arm] Fix PR45701
- From: Yao Qi <yao at codesourcery dot com>
- To: Richard Earnshaw <rearnsha at arm dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Mon, 15 Nov 2010 21:32:35 +0800
- Subject: [Ping 4]: [patch, arm] Fix PR45701
- References: <4C9966FE.firstname.lastname@example.org> <email@example.com> <4C9F60B2.firstname.lastname@example.org> <email@example.com> <4CA097B0.firstname.lastname@example.org>
On 09/27/2010 09:10 PM, Yao Qi wrote:
> Richard Earnshaw wrote:
>> On Sun, 2010-09-26 at 23:03 +0800, Yao Qi wrote:
>>> Richard Earnshaw wrote:
>>>> On Wed, 2010-09-22 at 10:16 +0800, Yao Qi wrote:
>>>> How does this track a function with more than one tailcall? It seems
>>>> that it only keeps track of the last tail-call emitted. What happens if
>>>> the first one uses R3, but the second one doesn't?
>>> We can use VEC (rtx, gc) tail_call_insns to record all tail-call insns,
>>> and check all of them in arm_get_frame_offsets to see if r3 has been
>>> used for any tail-calls. Beside this, I've added three new test cases.
>>> Tested on arm-none-linux-gnueabi and i686-pc-linux-gnu. No regression.
>>> Is it OK?
>> VEC seems a bit heavy-weight for this. Wouldn't an EXPR_LIST be better?
>> After all, you only pass over it in a linear manner and there's no
>> required order.
> Here is a new patch as you suggested.