diff options
author | Thomas Schwinge <thomas@codesourcery.com> | 2019-01-08 15:21:35 +0100 |
---|---|---|
committer | Thomas Schwinge <thomas@codesourcery.com> | 2020-03-03 12:17:18 +0100 |
commit | 0f628705a3627299c255d605d6b38d2b7f2157a3 (patch) | |
tree | 546250bf7895ac0f1c14d879d2094242cb4d361c | |
parent | 7464b711af2667697b98e7d25890e62f13d68a25 (diff) | |
download | gcc-0f628705a3627299c255d605d6b38d2b7f2157a3.zip gcc-0f628705a3627299c255d605d6b38d2b7f2157a3.tar.gz gcc-0f628705a3627299c255d605d6b38d2b7f2157a3.tar.bz2 |
Add OpenACC 2.6 `acc_get_property' support: restore Intel MIC offloading
The "OpenACC 2.6 `acc_get_property' support" changes regressed the relevant
libgomp OpenMP execution test cases to no longer consider Intel MIC offloading
because of:
libgomp: while loading libgomp-plugin-intelmic.so.1: [...]/libgomp-plugin-intelmic.so.1: undefined symbol: GOMP_OFFLOAD_get_property
liboffloadmic/
* plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_get_property):
New function.
(cherry picked from openacc-gcc-9-branch commit
1fa609ba73e9990ae7a65b083047f0ee219167b3)
-rw-r--r-- | liboffloadmic/ChangeLog.omp | 5 | ||||
-rw-r--r-- | liboffloadmic/plugin/libgomp-plugin-intelmic.cpp | 21 |
2 files changed, 26 insertions, 0 deletions
diff --git a/liboffloadmic/ChangeLog.omp b/liboffloadmic/ChangeLog.omp index 521d449..75f8ee5 100644 --- a/liboffloadmic/ChangeLog.omp +++ b/liboffloadmic/ChangeLog.omp @@ -1,3 +1,8 @@ +2019-01-08 Thomas Schwinge <thomas@codesourcery.com> + + * plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_get_property): + New function. + 2019-02-26 Chung-Lin Tang <cltang@codesourcery.com> * plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_version): diff --git a/liboffloadmic/plugin/libgomp-plugin-intelmic.cpp b/liboffloadmic/plugin/libgomp-plugin-intelmic.cpp index d1678d0..ed78c8d 100644 --- a/liboffloadmic/plugin/libgomp-plugin-intelmic.cpp +++ b/liboffloadmic/plugin/libgomp-plugin-intelmic.cpp @@ -174,6 +174,27 @@ GOMP_OFFLOAD_get_num_devices (void) return num_devices; } +extern "C" union gomp_device_property_value +GOMP_OFFLOAD_get_property (int n, int prop) +{ + union gomp_device_property_value nullval = { .val = 0 }; + + if (n >= num_devices) + { + GOMP_PLUGIN_error + ("Request for a property of a non-existing Intel MIC device %i", n); + return nullval; + } + + switch (prop) + { + case GOMP_DEVICE_PROPERTY_VENDOR: + return (union gomp_device_property_value) { .ptr = /* TODO: "error: invalid conversion from 'const void*' to 'void*' [-fpermissive]" */ (char *) "Intel" }; + default: + return nullval; + } +} + static bool offload (const char *file, uint64_t line, int device, const char *name, int num_vars, VarDesc *vars, const void **async_data) |