Hi Maciej! On Mon, 3 Dec 2018 16:51:14 +0000, "Maciej W. Rozycki" <ma...@codesourcery.com> wrote: > Add generic support for the OpenACC 2.6 `acc_get_property' and > `acc_get_property_string' routines, as well as full handlers for the > host and the NVPTX offload targets and a minimal handler for the HSA > offload target.
..., but a similar minimal handler for the Intel MIC offload plugin missing. ;-) (... which "for reasons" doesn't live in "libgomp/plugin/", next to the other plugins.) To fix that, I pushed the attached to openacc-gcc-8-branch, with the code copied and adjusted from your minimal handler for the HSA offload target, but also with an additional TODO added. Grüße Thomas
>From c632bd83096f1a4e4ed59161797087ff800e4c23 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge <tho...@codesourcery.com> Date: Tue, 8 Jan 2019 15:21:35 +0100 Subject: [PATCH] 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. --- liboffloadmic/ChangeLog.openacc | 10 +++++++++ .../plugin/libgomp-plugin-intelmic.cpp | 21 +++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 liboffloadmic/ChangeLog.openacc diff --git a/liboffloadmic/ChangeLog.openacc b/liboffloadmic/ChangeLog.openacc new file mode 100644 index 000000000000..2e666da2ce0c --- /dev/null +++ b/liboffloadmic/ChangeLog.openacc @@ -0,0 +1,10 @@ +2019-01-08 Thomas Schwinge <tho...@codesourcery.com> + + * plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_get_property): + New function. + +Copyright (C) 2019 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff --git a/liboffloadmic/plugin/libgomp-plugin-intelmic.cpp b/liboffloadmic/plugin/libgomp-plugin-intelmic.cpp index d1678d0514e9..f74941c2b549 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) -- 2.17.1