[PATCH 1013/1017] allow overriding kernellib_name for distro builds with POCL_KERNELL...
authorAndreas Beckmann <anbe@debian.org>
Sat, 9 Apr 2022 14:30:15 +0000 (16:30 +0200)
committerAndreas Beckmann <anbe@debian.org>
Thu, 17 Nov 2022 10:14:25 +0000 (10:14 +0000)
the kernellib_name (and corresponding llvm_cpu) can be overridden
to a target with a subset of the features supported by the current cpu

this will allow running e.g. code generation and tests for sse2 (but no
newer features) on a modern cpu

Gbp-Pq: Name 1013-allow-overriding-kernellib_name-for-distro-builds-wi.patch

lib/CL/pocl_llvm_utils.cc

index 7bdfb387804b8a06a9d78da018b1125d71cd5ebb..018bbb376c09b4bf0b6e78143b1e40cf74291f64 100644 (file)
@@ -189,6 +189,8 @@ const char *pocl_get_distro_kernellib_name() {
   if (!llvm::sys::getHostCPUFeatures(Features))
     POCL_ABORT("LLVM can't get host CPU flags!\n");
 
+  const char *custom = pocl_get_string_option("POCL_KERNELLIB_NAME", NULL);
+
   const kernellib_features *best_match = NULL;
   for (const kernellib_features *kf = kernellib_feature_map; kf->kernellib_name;
        ++kf) {
@@ -197,6 +199,8 @@ const char *pocl_get_distro_kernellib_name() {
       matches &= Features[*f];
     if (matches) {
       best_match = kf;
+      if (custom && !strcmp(custom, kf->kernellib_name))
+        break;
     }
   }