llvmbot wrote:

<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-infrastructure

Author: Wenju He (wenju-he)

<details>
<summary>Changes</summary>

Enable libclc build and test in the Linux premerge CI when libclc or .ci files 
are modified.
To minimize build time, only build the amdgcn-amd-amdhsa-llvm target.

Update clc.h to test that libclc is built.

---
Full diff: https://github.com/llvm/llvm-project/pull/186104.diff


5 Files Affected:

- (modified) .ci/compute_projects.py (+6-1) 
- (modified) .ci/compute_projects_test.py (+16-4) 
- (modified) .ci/monolithic-linux.sh (+2) 
- (modified) .github/workflows/premerge.yaml (+1-1) 
- (modified) libclc/clc/include/clc/internal/clc.h (+2-2) 


``````````diff
diff --git a/.ci/compute_projects.py b/.ci/compute_projects.py
index 541b33f5034b1..cf8835dff674b 100644
--- a/.ci/compute_projects.py
+++ b/.ci/compute_projects.py
@@ -81,6 +81,7 @@
     "clang": {"compiler-rt"},
     "clang-tools-extra": {"libc"},
     "libc": {"libc"},
+    "libclc": {"libclc"},
     "compiler-rt": {"compiler-rt"},
     "flang": {"flang-rt"},
     "flang-rt": {"flang-rt"},
@@ -107,6 +108,7 @@
     "libcxxabi",
     "libunwind",
     "flang-rt",
+    "libclc",  # Tests don't work on Windows (check_external_funcs.sh).
 }
 
 # These are projects that we should test if the project itself is changed but
@@ -146,6 +148,7 @@
     "flang": "check-flang",
     "flang-rt": "check-flang-rt",
     "libc": "check-libc",
+    "libclc": "check-libclc",
     "lld": "check-lld",
     "lldb": "check-lldb",
     "mlir": "check-mlir",
@@ -154,7 +157,7 @@
     "lit": "check-lit",
 }
 
-RUNTIMES = {"libcxx", "libcxxabi", "libunwind", "compiler-rt", "libc", 
"flang-rt"}
+RUNTIMES = {"libcxx", "libcxxabi", "libunwind", "compiler-rt", "libc", 
"flang-rt", "libclc"}
 
 # Meta projects are projects that need explicit handling but do not reside
 # in their own top level folder. To add a meta project, the start of the path
@@ -329,6 +332,7 @@ def get_env_variables(modified_files: list[str], platform: 
str) -> Set[str]:
     # to the CMake invocation and thus we need to use the CMake list separator
     # (;). We use spaces to separate the check targets as they end up getting
     # passed to ninja.
+    libclc_targets = "amdgcn-amd-amdhsa-llvm" if "libclc" in runtimes_to_build 
else ""
     return {
         "projects_to_build": ";".join(sorted(projects_to_build)),
         "project_check_targets": " ".join(sorted(projects_check_targets)),
@@ -338,6 +342,7 @@ def get_env_variables(modified_files: list[str], platform: 
str) -> Set[str]:
             sorted(runtimes_check_targets_needs_reconfig)
         ),
         "enable_cir": enable_cir,
+        "libclc_targets": libclc_targets,
     }
 
 
diff --git a/.ci/compute_projects_test.py b/.ci/compute_projects_test.py
index f0abdd708ca42..88fc90249f7bf 100644
--- a/.ci/compute_projects_test.py
+++ b/.ci/compute_projects_test.py
@@ -248,6 +248,7 @@ def test_exclude_libcxx_in_projects(self):
         self.assertEqual(env_variables["runtimes_to_build"], "")
         self.assertEqual(env_variables["runtimes_check_targets"], "")
         
self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "")
+        self.assertEqual(env_variables["libclc_targets"], "")
 
     def test_include_libc_in_runtimes(self):
         env_variables = compute_projects.get_env_variables(
@@ -259,6 +260,17 @@ def test_include_libc_in_runtimes(self):
         self.assertEqual(env_variables["runtimes_check_targets"], "check-libc")
         
self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "")
 
+    def test_include_libclc_in_runtimes(self):
+        env_variables = compute_projects.get_env_variables(
+            ["libclc/CMakeLists.txt"], "Linux"
+        )
+        self.assertEqual(env_variables["projects_to_build"], "clang;llvm")
+        self.assertEqual(env_variables["project_check_targets"], "")
+        self.assertEqual(env_variables["runtimes_to_build"], "libclc")
+        self.assertEqual(env_variables["runtimes_check_targets"], 
"check-libclc")
+        
self.assertEqual(env_variables["runtimes_check_targets_needs_reconfig"], "")
+        self.assertEqual(env_variables["libclc_targets"], 
"amdgcn-amd-amdhsa-llvm")
+
     def test_exclude_docs(self):
         env_variables = compute_projects.get_env_variables(
             ["llvm/docs/CIBestPractices.rst"], "Linux"
@@ -297,7 +309,7 @@ def test_ci(self):
         )
         self.assertEqual(
             env_variables["runtimes_check_targets"],
-            "check-compiler-rt check-flang-rt check-libc",
+            "check-compiler-rt check-flang-rt check-libc check-libclc",
         )
         self.assertEqual(
             env_variables["runtimes_check_targets_needs_reconfig"],
@@ -318,7 +330,7 @@ def test_windows_ci(self):
         )
         self.assertEqual(
             env_variables["runtimes_to_build"],
-            "compiler-rt;libclc",
+            "compiler-rt",
         )
         self.assertEqual(
             env_variables["runtimes_check_targets"],
@@ -371,7 +383,7 @@ def test_premerge_workflow(self):
         )
         self.assertEqual(
             env_variables["runtimes_check_targets"],
-            "check-compiler-rt check-flang-rt check-libc",
+            "check-compiler-rt check-flang-rt check-libc check-libclc",
         )
         self.assertEqual(
             env_variables["runtimes_check_targets_needs_reconfig"],
@@ -406,7 +418,7 @@ def test_third_party_benchmark(self):
         )
         self.assertEqual(
             env_variables["runtimes_check_targets"],
-            "check-compiler-rt check-flang-rt check-libc",
+            "check-compiler-rt check-flang-rt check-libc check-libclc",
         )
         self.assertEqual(
             env_variables["runtimes_check_targets_needs_reconfig"],
diff --git a/.ci/monolithic-linux.sh b/.ci/monolithic-linux.sh
index 217da893e947a..3c94d63ac4129 100755
--- a/.ci/monolithic-linux.sh
+++ b/.ci/monolithic-linux.sh
@@ -28,6 +28,7 @@ runtimes="${3}"
 runtime_targets="${4}"
 runtime_targets_needs_reconfig="${5}"
 enable_cir="${6}"
+libclc_targets="${7}"
 
 lit_args="-v --xunit-xml-output ${BUILD_DIR}/test-results.xml 
--use-unique-output-file-name --timeout=1200 --time-tests --succinct"
 
@@ -56,6 +57,7 @@ cmake -S "${MONOREPO_ROOT}"/llvm -B "${BUILD_DIR}" \
       -D CMAKE_CXX_COMPILER_LAUNCHER=sccache \
       -D CMAKE_DISABLE_PRECOMPILE_HEADERS=ON \
       -D LIBCXX_CXX_ABI=libcxxabi \
+      -D LIBCLC_TARGETS_TO_BUILD="${libclc_targets}" \
       -D MLIR_ENABLE_BINDINGS_PYTHON=ON \
       -D LLDB_ENABLE_PYTHON=ON \
       -D LLDB_ENFORCE_STRICT_TEST_REQUIREMENTS=ON \
diff --git a/.github/workflows/premerge.yaml b/.github/workflows/premerge.yaml
index 1795d5256750f..b735c1366fa9d 100644
--- a/.github/workflows/premerge.yaml
+++ b/.github/workflows/premerge.yaml
@@ -104,7 +104,7 @@ jobs:
           mkdir artifacts
           SCCACHE_LOG=info SCCACHE_ERROR_LOG=$(pwd)/artifacts/sccache.log 
sccache --start-server
 
-          ./.ci/monolithic-linux.sh "${projects_to_build}" 
"${project_check_targets}" "${runtimes_to_build}" "${runtimes_check_targets}" 
"${runtimes_check_targets_needs_reconfig}" "${enable_cir}"
+          ./.ci/monolithic-linux.sh "${projects_to_build}" 
"${project_check_targets}" "${runtimes_to_build}" "${runtimes_check_targets}" 
"${runtimes_check_targets_needs_reconfig}" "${enable_cir}" "${libclc_targets}"
       - name: Upload Artifacts
         # In some cases, Github will fail to upload the artifact. We want to
         # continue anyways as a failed artifact upload is an infra failure, not
diff --git a/libclc/clc/include/clc/internal/clc.h 
b/libclc/clc/include/clc/internal/clc.h
index fcfb223d5a12d..99ce15309fdd3 100644
--- a/libclc/clc/include/clc/internal/clc.h
+++ b/libclc/clc/include/clc/internal/clc.h
@@ -24,12 +24,12 @@
 #endif
 
 /* Function Attributes */
-#include <clc/clcfunc.h>
+#include "clc/clcfunc.h"
 
 /* 6.1 Supported Data Types */
 
 /* 6.2.4.2 Reinterpreting Types Using __clc_as_type() and __clc_as_typen() */
-#include <clc/clc_as_type.h>
+#include "clc/clc_as_type.h"
 
 #pragma OPENCL EXTENSION all : disable
 

``````````

</details>


https://github.com/llvm/llvm-project/pull/186104
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to