Re: nvptx-tools and nvptx-newlib (was: The nvptx port [10/11+] Target files)

2015-02-18 Thread Thomas Schwinge
Hi!

On Wed, 4 Feb 2015 10:43:14 +0100, Jakub Jelinek ja...@redhat.com wrote:
 On Mon, Feb 02, 2015 at 04:32:34PM +0100, Thomas Schwinge wrote:
  Hi!
  
  On Tue, 23 Dec 2014 19:49:35 +0100, I wrote:
   On Mon, 10 Nov 2014 17:19:57 +0100, Bernd Schmidt 
   ber...@codesourcery.com wrote:
The scripts (11/11) I've put up on github, along with a hacked up 
newlib. These are at [...]
  
They are likely to migrate to MentorEmbedded from bernds, but that had 
some permissions problems last week.
   
   That has recently been done:
   https://github.com/MentorEmbedded/nvptx-tools and
   https://github.com/MentorEmbedded/nvptx-newlib are now available.
   
   (I'm aware that we still are to write up how to actually build and test
   all this.)
  
  I just updated
  https://gcc.gnu.org/wiki/Offloading?action=diffrev2=26rev1=25.
 
 Can you please update the gmane URLs to corresponding
 https://gcc.gnu.org/ml/gcc-patches/ URLs?  We have our own mailing list
 archives, no need to use third party ones.

It's convenient for me (Message-IDs falls out of my mailer automatically,
and Gmane happens to support retrieving message by Message-ID), and the
sourceware mailing list archives software doesn't interlink articles
between different -MM, which I find rather limiting.


  OK to check in the following to trunk?

Committed to trunk in r220783.


  --- gcc/config/nvptx/nvptx.opt
  +++ gcc/config/nvptx/nvptx.opt
  @@ -17,13 +17,13 @@
   ; along with GCC; see the file COPYING3.  If not see
   ; http://www.gnu.org/licenses/.
   
  -m64
  -Target Report RejectNegative Mask(ABI64)
  -Generate code for a 64 bit ABI
  -
   m32
   Target Report RejectNegative InverseMask(ABI64)
  -Generate code for a 32 bit ABI
  +Generate code for a 32-bit ABI
  +
  +m64
  +Target Report RejectNegative Mask(ABI64)
  +Generate code for a 64-bit ABI
 
 I'd expect you want also Negative(m64) on the m32 option and
 Negative(m32) on the m64 option.
 
  +@table @gcctabopt
  +
  +@item -m32
  +@itemx -m64
  +@opindex m32
  +@opindex m64
  +Generate code for 32-bit or 64-bit ABI.
 
 I guess you should mention which one of those is the default (if it isn't
 configure time configurable).

Have taken a note to look into these, later.


 What about multilibs, is newlib built for both -m32 and -m64, or just the
 default option?

So far, we have concentrated only on the 64-bit x86_64 configuration;
32-bit has several known issues to be resolved.
https://gcc.gnu.org/PR65099 filed.


Grüße,
 Thomas


signature.asc
Description: PGP signature


Re: nvptx-tools and nvptx-newlib (was: The nvptx port [10/11+] Target files)

2015-02-18 Thread Jakub Jelinek
On Wed, Feb 18, 2015 at 09:50:15AM +0100, Thomas Schwinge wrote:
  What about multilibs, is newlib built for both -m32 and -m64, or just the
  default option?
 
 So far, we have concentrated only on the 64-bit x86_64 configuration;
 32-bit has several known issues to be resolved.
 https://gcc.gnu.org/PR65099 filed.

I meant 64-bit and 32-bit PTX.

Jakub


Re: nvptx-tools and nvptx-newlib (was: The nvptx port [10/11+] Target files)

2015-02-04 Thread Jakub Jelinek
On Mon, Feb 02, 2015 at 04:32:34PM +0100, Thomas Schwinge wrote:
 Hi!
 
 On Tue, 23 Dec 2014 19:49:35 +0100, I wrote:
  On Mon, 10 Nov 2014 17:19:57 +0100, Bernd Schmidt ber...@codesourcery.com 
  wrote:
   The scripts (11/11) I've put up on github, along with a hacked up 
   newlib. These are at [...]
 
   They are likely to migrate to MentorEmbedded from bernds, but that had 
   some permissions problems last week.
  
  That has recently been done:
  https://github.com/MentorEmbedded/nvptx-tools and
  https://github.com/MentorEmbedded/nvptx-newlib are now available.
  
  (I'm aware that we still are to write up how to actually build and test
  all this.)
 
 I just updated
 https://gcc.gnu.org/wiki/Offloading?action=diffrev2=26rev1=25.

Can you please update the gmane URLs to corresponding
https://gcc.gnu.org/ml/gcc-patches/ URLs?  We have our own mailing list
archives, no need to use third party ones.
 
 OK to check in the following to trunk?

 --- gcc/config/nvptx/nvptx.opt
 +++ gcc/config/nvptx/nvptx.opt
 @@ -17,13 +17,13 @@
  ; along with GCC; see the file COPYING3.  If not see
  ; http://www.gnu.org/licenses/.
  
 -m64
 -Target Report RejectNegative Mask(ABI64)
 -Generate code for a 64 bit ABI
 -
  m32
  Target Report RejectNegative InverseMask(ABI64)
 -Generate code for a 32 bit ABI
 +Generate code for a 32-bit ABI
 +
 +m64
 +Target Report RejectNegative Mask(ABI64)
 +Generate code for a 64-bit ABI

I'd expect you want also Negative(m64) on the m32 option and
Negative(m32) on the m64 option.

 +@table @gcctabopt
 +
 +@item -m32
 +@itemx -m64
 +@opindex m32
 +@opindex m64
 +Generate code for 32-bit or 64-bit ABI.

I guess you should mention which one of those is the default (if it isn't
configure time configurable).

What about multilibs, is newlib built for both -m32 and -m64, or just the
default option?

Jakub


Re: nvptx-tools and nvptx-newlib (was: The nvptx port [10/11+] Target files)

2015-02-02 Thread Thomas Schwinge
Hi!

On Tue, 23 Dec 2014 19:49:35 +0100, I wrote:
 On Mon, 10 Nov 2014 17:19:57 +0100, Bernd Schmidt ber...@codesourcery.com 
 wrote:
  The scripts (11/11) I've put up on github, along with a hacked up 
  newlib. These are at [...]

  They are likely to migrate to MentorEmbedded from bernds, but that had 
  some permissions problems last week.
 
 That has recently been done:
 https://github.com/MentorEmbedded/nvptx-tools and
 https://github.com/MentorEmbedded/nvptx-newlib are now available.
 
 (I'm aware that we still are to write up how to actually build and test
 all this.)

I just updated
https://gcc.gnu.org/wiki/Offloading?action=diffrev2=26rev1=25.

OK to check in the following to trunk?

commit a0c73cb76d1f13642df7725d64bc618ee0909abc
Author: Thomas Schwinge tho...@codesourcery.com
Date:   Mon Feb 2 16:29:36 2015 +0100

Begin documenting the nvptx backend.

gcc/
* doc/install.texi (nvptx-*-none): New section.
* doc/invoke.texi (Nvidia PTX Options): Likewise.
* config/nvptx/nvptx.opt: Update.
---
 gcc/config/nvptx/nvptx.opt | 10 +-
 gcc/doc/install.texi   | 23 +++
 gcc/doc/invoke.texi| 26 ++
 3 files changed, 54 insertions(+), 5 deletions(-)

diff --git gcc/config/nvptx/nvptx.opt gcc/config/nvptx/nvptx.opt
index 1448dfc..249a61d 100644
--- gcc/config/nvptx/nvptx.opt
+++ gcc/config/nvptx/nvptx.opt
@@ -17,13 +17,13 @@
 ; along with GCC; see the file COPYING3.  If not see
 ; http://www.gnu.org/licenses/.
 
-m64
-Target Report RejectNegative Mask(ABI64)
-Generate code for a 64 bit ABI
-
 m32
 Target Report RejectNegative InverseMask(ABI64)
-Generate code for a 32 bit ABI
+Generate code for a 32-bit ABI
+
+m64
+Target Report RejectNegative Mask(ABI64)
+Generate code for a 64-bit ABI
 
 mmainkernel
 Target Report RejectNegative
diff --git gcc/doc/install.texi gcc/doc/install.texi
index c9e3bf1..b31f9b6 100644
--- gcc/doc/install.texi
+++ gcc/doc/install.texi
@@ -3302,6 +3302,8 @@ information have to.
 @item
 @uref{#nds32be-x-elf,,nds32be-*-elf}
 @item
+@uref{#nvptx-x-none,,nvptx-*-none}
+@item
 @uref{#powerpc-x-x,,powerpc*-*-*}
 @item
 @uref{#powerpc-x-darwin,,powerpc-*-darwin*}
@@ -4269,6 +4271,27 @@ Andes NDS32 target in big endian mode.
 @html
 hr /
 @end html
+@anchor{nvptx-x-none}
+@heading nvptx-*-none
+Nvidia PTX target.
+
+Instead of GNU binutils, you will need to install
+@uref{https://github.com/MentorEmbedded/nvptx-tools/,,nvptx-tools}.
+Tell GCC where to find it:
+@option{--with-build-time-tools=[install-nvptx-tools]/nvptx-none/bin}.
+
+A nvptx port of newlib is available at
+@uref{https://github.com/MentorEmbedded/nvptx-newlib/,,nvptx-newlib}.
+It can be automatically built together with GCC@.  For this, add a
+symbolic link to nvptx-newlib's @file{newlib} directory to the
+directory containing the GCC sources.
+
+Use the @option{--disable-sjlj-exceptions} and
+@option{--enable-newlib-io-long-long} options when configuring.
+
+@html
+hr /
+@end html
 @anchor{powerpc-x-x}
 @heading powerpc-*-*
 You can specify a default version for the @option{-mcpu=@var{cpu_type}}
diff --git gcc/doc/invoke.texi gcc/doc/invoke.texi
index ba81ec7..1fb329e 100644
--- gcc/doc/invoke.texi
+++ gcc/doc/invoke.texi
@@ -840,6 +840,9 @@ Objective-C and Objective-C++ Dialects}.
 -mcustom-fpu-cfg=@var{name} @gol
 -mhal -msmallc -msys-crt0=@var{name} -msys-lib=@var{name}}
 
+@emph{Nvidia PTX Options}
+@gccoptlist{-m32 -m64 -mmainkernel}
+
 @emph{PDP-11 Options}
 @gccoptlist{-mfpu  -msoft-float  -mac0  -mno-ac0  -m40  -m45  -m10 @gol
 -mbcopy  -mbcopy-builtin  -mint32  -mno-int16 @gol
@@ -11967,6 +11970,7 @@ platform.
 * MSP430 Options::
 * NDS32 Options::
 * Nios II Options::
+* Nvidia PTX Options::
 * PDP-11 Options::
 * picoChip Options::
 * PowerPC Options::
@@ -18277,6 +18281,28 @@ This option is typically used to link with a library 
provided by a HAL BSP.
 
 @end table
 
+@node Nvidia PTX Options
+@subsection Nvidia PTX Options
+@cindex Nvidia PTX options
+@cindex nvptx options
+
+These options are defined for Nvidia PTX:
+
+@table @gcctabopt
+
+@item -m32
+@itemx -m64
+@opindex m32
+@opindex m64
+Generate code for 32-bit or 64-bit ABI.
+
+@item -mmainkernel
+@opindex mmainkernel
+Link in code for a __main kernel.  This is for stand-alone instead of
+offloading execution.
+
+@end table
+
 @node PDP-11 Options
 @subsection PDP-11 Options
 @cindex PDP-11 Options


Grüße,
 Thomas


pgp0CHeeOXpKu.pgp
Description: PGP signature