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
