[PATCH] Treat a sibling call as though it does a wild read

John David Anglin dave.anglin@bell.net
Wed Dec 17 02:03:00 GMT 2014


On 8-Dec-14, at 5:36 PM, Jeff Law wrote:

> On 12/08/14 15:15, John David Anglin wrote:
>> On 12/8/2014 3:01 PM, Jeff Law wrote:
>>>> The above is wrong for sibcalls.  Sibcall arguments are relative
>>>> to the incoming argument pointer.  Is this always the frame
>>>> pointer?
>>> I don't think it's always the frame pointer.  Don't we use an
>>> argument pointer for the PA64 runtime?  If I recall, it was the
>>> only port that had a non-eliminable argument pointer at the time.
>> I don't think PA64 is an argument against this as sibcalls don't work
>> in the PA64 runtime (they are disabled in pa.c) because the argument
>> pointer isn't a fixed register.  I guess in theory it could be fixed
>> if it was saved and restored across calls.
> But there's nothing that says another port in the future won't have  
> similar characteristics as the PA, so while the PA isn't  
> particularly important, it shows there's cases where arguments won't  
> be accessed by the FP.
>
>
>>
>> DSE as it stands doesn't look at argument pointer based stores and I
>> suspect they would be deleted with current code.
> Agreed.


I believe that this version addresses the above issues.  While there  
may be some opportunity to
optimize the handling of sibling call arguments, I think it is more  
important to get the overall logic
correct.  Also, it's obviously a rare situation for the arguments to  
be pushed to the stack.

Tested on hppa-unknown-linux-gnu and hppa64-hp-hpux11.11.

Okay?

Dave
--
John David Anglin	dave.anglin@bell.net


-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: dse.c.d.4.txt
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20141217/3d83b0b4/attachment.txt>


More information about the Gcc-patches mailing list