aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@codesourcery.com>2019-01-08 15:21:35 +0100
committerThomas Schwinge <thomas@codesourcery.com>2020-03-03 12:17:18 +0100
commit0f628705a3627299c255d605d6b38d2b7f2157a3 (patch)
tree546250bf7895ac0f1c14d879d2094242cb4d361c
parent7464b711af2667697b98e7d25890e62f13d68a25 (diff)
downloadgcc-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.omp5
-rw-r--r--liboffloadmic/plugin/libgomp-plugin-intelmic.cpp21
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)