This is the mail archive of the gcc@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: Split-stack support for aarch64


On Mon, Apr 4, 2016 at 6:52 AM, Adhemerval Zanella
<adhemerval.zanella@linaro.org> wrote:
>
> Since BZ#67877 [1] does not have much information on it, I would like
> to ask for some inputs of which is the requirement of implementing
> split-stack on aarch64 besides 'feature parity'.
>
> I am asking it because on PR it states the main use it gccgo and
> afaik there is some usage in other programs, but the widespread
> is not really convincing (for instance, rust now allows targets
> to be built without it [2]).
>
> I also noted GO from 1.4 does not use split-stack anymore, stating
> it suffers from a performance issue ("hot stack split") and some
> search on the internet describes that for 64-bit targets split-stack
> is not really an efficient way to manage stack grows.
>
> So this is only for gccgo support? It gccgo stuck in pre 1.4 version
> and/or not willing remove split-stack usage (as go itself)?

As far as I know gccgo is the only program to seriously use split-stack support.

The Go gc compiler now uses stack copying rather than stack splitting.
It would be great to implement that in gccgo, but it's hard.  It
requires knowing absolutely every single pointer on the stack.  If we
could do that, stack copying would in effect be a minor variant of
stack splitting.  The compiler side would not change noticeably, only
some of the support code in libgcc.

Ian


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