This is the mail archive of the
mailing list for the GCC project.
Re: Split-stack support for aarch64
- From: Ian Lance Taylor <iant at google dot com>
- To: Adhemerval Zanella <adhemerval dot zanella at linaro dot org>
- Cc: GCC Development <gcc at gcc dot gnu dot org>
- Date: Sun, 10 Apr 2016 12:56:39 -0700
- Subject: Re: Split-stack support for aarch64
- Authentication-results: sourceware.org; auth=none
- References: <5702718B dot 6060008 at linaro dot org>
On Mon, Apr 4, 2016 at 6:52 AM, Adhemerval Zanella
> Since BZ#67877  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 ).
> 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.