From: Andreas Beckmann Date: Sat, 9 Apr 2022 13:28:42 +0000 (+0200) Subject: [PATCH 1012/1017] _cl_device_id: add const char* kernellib_name X-Git-Tag: archive/raspbian/3.1-2+rpi1^2~14 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=c96b97fee0eefea46f704c2ee26f994f76dcf730;p=pocl.git [PATCH 1012/1017] _cl_device_id: add const char* kernellib_name determine the value at the same time as llvm_cpu, if possible Gbp-Pq: Name 1012-_cl_device_id-add-const-char-kernellib_name.patch --- diff --git a/lib/CL/devices/common.c b/lib/CL/devices/common.c index 45c5f3a..8d8ed87 100644 --- a/lib/CL/devices/common.c +++ b/lib/CL/devices/common.c @@ -1584,13 +1584,19 @@ pocl_init_default_device_infos (cl_device_id dev) #ifdef ENABLE_LLVM dev->llvm_target_triplet = OCL_KERNEL_TARGET; -#ifdef HOST_CPU_FORCED +#if defined(KERNELLIB_HOST_DISTRO_VARIANTS) + dev->kernellib_name = pocl_get_distro_kernellib_name (); + dev->llvm_cpu = pocl_get_distro_cpu_name (dev->kernellib_name); +#elif defined(HOST_CPU_FORCED) + dev->kernellib_name = OCL_KERNEL_TARGET_CPU; dev->llvm_cpu = OCL_KERNEL_TARGET_CPU; #else + dev->kernellib_name = NULL; dev->llvm_cpu = pocl_get_llvm_cpu_name (); #endif #else /* No compiler, no CPU info */ + dev->kernellib_name = NULL; dev->llvm_cpu = NULL; dev->llvm_target_triplet = ""; #endif diff --git a/lib/CL/pocl_cl.h b/lib/CL/pocl_cl.h index 6945d8a..beaf881 100644 --- a/lib/CL/pocl_cl.h +++ b/lib/CL/pocl_cl.h @@ -1015,7 +1015,9 @@ struct _cl_device_id { void *data; const char* llvm_target_triplet; /* the llvm target triplet to use */ + const char *kernellib_name; /* the kernellib variant to use */ const char* llvm_cpu; /* the llvm CPU variant to use */ + /* A running number (starting from zero) across all the device instances. Used for indexing arrays in data structures with device specific entries. */ diff --git a/lib/CL/pocl_llvm_build.cc b/lib/CL/pocl_llvm_build.cc index 7bee431..1b0b6a0 100644 --- a/lib/CL/pocl_llvm_build.cc +++ b/lib/CL/pocl_llvm_build.cc @@ -953,10 +953,8 @@ static llvm::Module *getKernelLibrary(cl_device_id device, if (is_host) { kernellib += '-'; -#ifdef KERNELLIB_HOST_DISTRO_VARIANTS - kernellib += pocl_get_distro_kernellib_name(); -#elif defined(HOST_CPU_FORCED) - kernellib += OCL_KERNEL_TARGET_CPU; +#if defined(KERNELLIB_HOST_DISTRO_VARIANTS) || defined(HOST_CPU_FORCED) + kernellib += device->kernellib_name; #else kernellib_fallback = kernellib; kernellib_fallback += OCL_KERNEL_TARGET_CPU;