[Bug target/104857] [nvptx] Add macro specifying ptx isa version
cvs-commit at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Mar 29 14:17:02 GMT 2022
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104857
--- Comment #2 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Tom de Vries <vries@gcc.gnu.org>:
https://gcc.gnu.org/g:a2eacdbd4c4a698b3b6f27ef5e1f8dd3d836b2e5
commit r12-7893-ga2eacdbd4c4a698b3b6f27ef5e1f8dd3d836b2e5
Author: Tom de Vries <tdevries@suse.de>
Date: Tue Mar 29 16:04:09 2022 +0200
[nvptx] Add __PTX_ISA_VERSION_{MAJOR,MINOR}__
Add preprocessor macros __PTX_ISA_VERSION_MAJOR__ and
__PTX_ISA_VERSION_MINOR__.
For the default 6.0, we have:
...
$ echo | cc1 -E -dD - 2>&1 | grep PTX_ISA_VERSION
#define __PTX_ISA_VERSION_MAJOR__ 6
#define __PTX_ISA_VERSION_MINOR__ 0
...
and for 3.1, we have:
...
$ echo | cc1 -mptx=3.1 -E -dD - 2>&1 | grep PTX_ISA_VERSION
#define __PTX_ISA_VERSION_MAJOR__ 3
#define __PTX_ISA_VERSION_MINOR__ 1
...
These can be used to express things like:
...
#if __PTX_ISA_VERSION_MAJOR__ >= 4 && __PTX_ISA_VERSION_MAJOR__ >= 1
/* Code using %dynamic_smem_size. */
#else
/* Fallback code. */
#endif
...
Tested on nvptx.
gcc/ChangeLog:
2022-03-29 Tom de Vries <tdevries@suse.de>
PR target/104857
* config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Emit
__PTX_ISA_VERSION_MAJOR__ and __PTX_ISA_VERSION_MINOR__.
* config/nvptx/nvptx.cc (ptx_version_to_number): New function.
* config/nvptx/nvptx-protos.h (ptx_version_to_number): Declare.
gcc/testsuite/ChangeLog:
2022-03-29 Tom de Vries <tdevries@suse.de>
PR target/104857
* gcc.target/nvptx/ptx31.c: New test.
* gcc.target/nvptx/ptx60.c: New test.
* gcc.target/nvptx/ptx63.c: New test.
* gcc.target/nvptx/ptx70.c: New test.
More information about the Gcc-bugs
mailing list