This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PATCH: named address space support (2/2: SPU backend)
- From: Ben Elliston <bje at au1 dot ibm dot com>
- To: "Joseph S. Myers" <joseph at codesourcery dot com>
- Cc: Trevor_Smigiel at playstation dot sony dot com, gcc-patches <gcc-patches at gcc dot gnu dot org>, andrew_pinski at playstation dot sony dot com, David Edelsohn <dje at watson dot ibm dot com>
- Date: Mon, 01 Sep 2008 10:35:43 +1000
- Subject: Re: PATCH: named address space support (2/2: SPU backend)
- References: <1219295660.17217.9.camel@helios> <20080828032054.GP27746@playstation.sony.com> <1219903837.30516.3.camel@helios> <Pine.LNX.4.64.0808311635430.12423@digraph.polyomino.org.uk>
Hi Joseph
> > +Compile code assuming that pointers to the __ea address space are either
>
> @code{__ea}.
Fixed.
> Where is the documentation saying what this address space qualifier
> *means*? I don't see it in either this patch or the target-independent
> one. You say it exists on SPU, say how to control its size, but I don't
> see anything explaining its actual semantics. Something needs to define
> the target-specific semantics of the address space (possibly through
> references to an external document giving compiler-independent semantics,
> if this is a compiler-independent SPU extension).
My understanding has been that GCC documentation does not go to great
lengths to explain language and target-specific details (for example,
reading through the -m options for various targets, I see various
target-specific terminology I am scarcely familiar with). Now, if this
is undesirable, then we need to avoid doing it, but I was just following
precedent. :-)
I've added more details to invoke.texi, like so. Is this sufficient?
Cheers,
Ben
@item -mea32
@itemx -mea64
@opindex mea32
@opindex mea64
Compile code assuming that pointers to the @code{__ea} address space are
either 32 or 64 bits wide. The default is 32 bits. The @code{__ea}
address space qualifier specifies that variables reside in the PPU
address space. As this is an ABI changing option, all object code in an
executable must be compiled with the same option.
@item -mcache-size=@var{cache-size}
@opindex mcache-size
This option controls the version of libgcc that the compiler links to an
executable and selects a software-managed cache for accessing variables
in the PPU address space with a particular cache size. Possible options
for @var{cache-size} are @samp{8}, @samp{16}, @samp{32}, @samp{64} and
@samp{128}. The default cache size is 64KB.
@item -matomic-updates
@itemx -mno-atomic-updates
@opindex matomic-updates
@opindex mno-atomic-updates
This option controls the version of libgcc that the compiler links to an
executable and selects whether atomic updates to the software-managed
cache of PPU-side variables are used. The default behavior is to use
atomic updates.