From c96b97fee0eefea46f704c2ee26f994f76dcf730 Mon Sep 17 00:00:00 2001 From: Andreas Beckmann Date: Sat, 9 Apr 2022 15:28:42 +0200 Subject: [PATCH] [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 --- lib/CL/devices/common.c | 8 +++++++- lib/CL/pocl_cl.h | 2 ++ lib/CL/pocl_llvm_build.cc | 6 ++---- 3 files changed, 11 insertions(+), 5 deletions(-) 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; -- 2.30.2