gcn: Add __builtin_gcn_kernarg_ptr
authorTobias Burnus <tobias@codesourcery.com>
Wed, 16 Nov 2022 13:24:01 +0000 (14:24 +0100)
committerTobias Burnus <tobias@codesourcery.com>
Wed, 16 Nov 2022 13:25:28 +0000 (14:25 +0100)
commit6f83861cc1c4d09425aa6539877bfa50ef90f183
treebc48fe578030835e3ccd38d6def7b421d4757fbb
parent21501ec751c102ce06ff3483375eb922c5c9cee3
gcn: Add __builtin_gcn_kernarg_ptr

Add __builtin_gcn_kernarg_ptr to avoid using hard-coded register values
and permit future ABI changes while keeping the API.

gcc/ChangeLog:

* config/gcn/gcn-builtins.def (KERNARG_PTR): Add.
* config/gcn/gcn.cc (gcn_init_builtin_types): Change siptr_type_node,
sfptr_type_node and voidptr_type_node from FLAT to ADDR_SPACE_DEFAULT.
(gcn_expand_builtin_1): Handle GCN_BUILTIN_KERNARG_PTR.
(gcn_oacc_dim_size): Return in ADDR_SPACE_FLAT.

libgomp/ChangeLog:

* config/gcn/team.c (gomp_gcn_enter_kernel): Use
__builtin_gcn_kernarg_ptr instead of asm ("s8").

Co-Authored-By: Andrew Stubbs <ams@codesourcery.com>
gcc/config/gcn/gcn-builtins.def
gcc/config/gcn/gcn.cc
libgomp/config/gcn/team.c