[patch i386]: Sibcall tail-call improvement and partial fix PR/60104

Iain Sandoe iain@codesourcery.com
Mon Sep 15 10:57:00 GMT 2014


Hi Mike,

On 15 Sep 2014, at 08:33, Mike Stump wrote:

> On Sep 14, 2014, at 5:43 PM, Segher Boessenkool <segher@kernel.crashing.org> wrote:
>> On Sun, Sep 14, 2014 at 02:38:45PM -0700, Mike Stump wrote:
>>> +	  SIBLING_CALL_P (tmp) = 1;
>>> +	  SIBLING_CALL_P (tmp) = 1;
>> 
>> The second time is to make sure?  :-)
> 
> No, just a last minute cut and paste…  I’ll remove it.

While the patch fixes the fallout from Kai's patch, I am concerned that:

1. It would be good to see how this [original] code path was tested on any other platform than Darwin (where it breaks).
 - I.E. a non-Mach-O test case that exercises that path of the original patch's code.
 - AFAICT this (exercise) does NOT happen for bootstrap and reg-test on x86-64-linux (so how was the original patch tested?).

2. The comment above the new code fragment has not been adjusted to reflect the new/changed functionality.

==

This has been ~ 3 months and the same questions / observations above have been raised on the PR thread and on @patches list.  This does not seem to me to be a "darwin-only" issue, and just assuming that it's some unspecified fault with Darwin's address legalisation seems like an unwarranted leap (especially for x86-64, where Darwin shares a substantial part of its ABI with Linux).

Perhaps it would be safer simply to revert that hunk of the original patch unless/until (1) and (2) above are addressed?

0.02GBP, as usual,
Iain



More information about the Gcc-patches mailing list