Add support for constructors and destuctors on GCN
authorKwok Cheung Yeung <kcy@codesourcery.com>
Wed, 22 May 2019 22:14:08 +0000 (22:14 +0000)
committerAndrew Stubbs <ams@gcc.gnu.org>
Wed, 22 May 2019 22:14:08 +0000 (22:14 +0000)
commit7039cebfa8da3e6309bf1792ca063497257edcd8
tree5cf5bd2cb8526d45d1b2f4443db781788fdac5f0
parentb7c28a47c2d57bc21daab4dd586139e87fe701f9
Add support for constructors and destuctors on GCN

2019-05-22  Kwok Cheung Yeung  <kcy@codesourcery.com>
            Andrew Stubbs  <amd@codesourcery.com>

gcc/
* config.gcc (gcc_cv_initfini_array): Set for AMD GCN.
* config/gcn/gcn-run.c (init_array_kernel, fini_array_kernel): New.
(kernel): Rename to...
(main_kernel): ... this.
(load_image): Load _init_array and _fini_array kernels.
(run): Add argument for kernel to run.
(main): Run init_array_kernel before main_kernel, and
fini_array_kernel after.
* config/gcn/gcn.c (gcn_handle_amdgpu_hsa_kernel_attribute): Allow
amdgpu_hsa_kernel attribute on functions.
(gcn_disable_constructors): Delete.
(TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): Delete.
* config/gcn/crt0.c (size_t): Define.
(_init_array, _fini_array): New.
(__preinit_array_start, __preinit_array_end,
__init_array_start, __init_array_end,
__fini_array_start, __fini_array_end): Declare weak references.

Co-Authored-By: Andrew Stubbs <ams@codesourcery.com>
From-SVN: r271526
gcc/ChangeLog
gcc/config.gcc
gcc/config/gcn/gcn-run.c
gcc/config/gcn/gcn.c
libgcc/config/gcn/crt0.c