]> git.ipfire.org Git - thirdparty/gcc.git/commit
openmp: fix max_vf setting for amdgcn offloading
authorAndrew Stubbs <ams@codesourcery.com>
Fri, 8 Jul 2022 10:58:46 +0000 (11:58 +0100)
committerAndrew Stubbs <ams@codesourcery.com>
Tue, 12 Jul 2022 14:35:53 +0000 (15:35 +0100)
commit55722a87dd223149dcd41ca9c8eba16ad5b3eddc
tree80268500299c1b873c392cddb5d7ba360eb7b5d4
parent860c76659f38a52b06099ab530de7a9b08fd65ac
openmp: fix max_vf setting for amdgcn offloading

Ensure that the "max_vf" figure used for the "safelen" attribute is large
enough for the largest configured offload device.

This change gives ~10x speed improvement on the Bablestream "dot" benchmark for
AMD GCN.

gcc/ChangeLog:

* gimple-loop-versioning.cc (loop_versioning::loop_versioning): Add
comment.
* omp-general.cc (omp_max_simd_vf): New function.
* omp-general.h (omp_max_simd_vf): New prototype.
* omp-low.cc (lower_rec_simd_input_clauses): Select largest from
  omp_max_vf, omp_max_simt_vf, and omp_max_simd_vf.

gcc/testsuite/ChangeLog:

* lib/target-supports.exp
(check_effective_target_amdgcn_offloading_enabled): New.
(check_effective_target_nvptx_offloading_enabled): New.
* gcc.dg/gomp/target-vf.c: New test.
gcc/ChangeLog.omp
gcc/gimple-loop-versioning.cc
gcc/omp-general.cc
gcc/omp-general.h
gcc/omp-low.cc
gcc/testsuite/ChangeLog.omp
gcc/testsuite/gcc.dg/gomp/target-vf.c [new file with mode: 0644]
gcc/testsuite/lib/target-supports.exp