This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] PR71275 ira.c bb_loop_depth


On Wed, Jun 15, 2016 at 7:06 AM, Bernd Schmidt <bschmidt@redhat.com> wrote:
>
>
> On 06/15/2016 04:03 PM, Alan Modra wrote:
>>
>> On Wed, Jun 15, 2016 at 11:49:50AM +0200, Bernd Schmidt wrote:
>>>
>>> On 06/15/2016 03:30 AM, Alan Modra wrote:
>>>>
>>>> Between these two calls to _gfortran_string_verify,
>>>>  if (verify(c4, "A", back = .true.) .ne. 3) call abort
>>>>  if (verify(c4, "AB") .ne. 0) call abort
>>>> it seems that gfortran is assuming that parameters passed on the stack
>>>> are unchanged.
>>>
>>>
>>> How? Is this something in the Fortran frontend, or is there CSE going on
>>> for
>>> stores to the argument area?
>>
>>
>> It's not a fortran problem, and I answered my own question about the
>> ABI by the testcase in
>> https://gcc.gnu.org/ml/gcc-patches/2016-06/msg01098.html.  If tail
>> calls are allowed, then the stack parameter area must be overwritten.
>> Thus an ABI can't allow tail calls if it specifies the stack parameter
>> area is preserved.  x86 allows tail calls.
>
>
> Well yes. The problem isn't that the stack area is overwritten, the problem
> is that something expects that it isn't, and it's not clear to me yet where
> that problem occurs.

Will this patch

https://gcc.gnu.org/bugzilla/attachment.cgi?id=38705

also fix this

-- 
H.J.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]