llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-backend-nvptx @llvm/pr-subscribers-backend-amdgpu Author: Nikita Kornev (KornevNikita) <details> <summary>Changes</summary> Instead of compiling tool sources directly into the unit test, build the vendor-specific detection code as a clangOffloadArch static library in clang/tools/offload-arch/lib and link it into both offload-arch and OffloadArchTests. Move the unit tests to clang/unittests/tools/offload-arch for consistency with llvm/unittests/tools. --- Full diff: https://github.com/llvm/llvm-project/pull/226552.diff 15 Files Affected: - (modified) clang/tools/offload-arch/CMakeLists.txt (+4-4) - (renamed) clang/tools/offload-arch/lib/AMDGPUArchByHIP.cpp () - (renamed) clang/tools/offload-arch/lib/AMDGPUArchByKFD.cpp () - (added) clang/tools/offload-arch/lib/CMakeLists.txt (+14) - (renamed) clang/tools/offload-arch/lib/LevelZeroArch.cpp () - (renamed) clang/tools/offload-arch/lib/NVPTXArch.cpp (-1) - (modified) clang/unittests/CMakeLists.txt (+1-1) - (removed) clang/unittests/offload-arch/CMakeLists.txt (-21) - (added) clang/unittests/tools/CMakeLists.txt (+1) - (added) clang/unittests/tools/offload-arch/CMakeLists.txt (+8) - (renamed) clang/unittests/tools/offload-arch/OffloadArchTest.cpp (+2-2) - (added) llvm/utils/gn/secondary/clang/tools/offload-arch/lib/BUILD.gn (+14) - (modified) llvm/utils/gn/secondary/clang/unittests/BUILD.gn (+1-1) - (removed) llvm/utils/gn/secondary/clang/unittests/offload-arch/BUILD.gn (-19) - (added) llvm/utils/gn/secondary/clang/unittests/tools/offload-arch/BUILD.gn (+11) ``````````diff diff --git a/clang/tools/offload-arch/CMakeLists.txt b/clang/tools/offload-arch/CMakeLists.txt index 8e37e3d2ae5db..83dcdd62f1720 100644 --- a/clang/tools/offload-arch/CMakeLists.txt +++ b/clang/tools/offload-arch/CMakeLists.txt @@ -1,10 +1,10 @@ -set(LLVM_LINK_COMPONENTS Support TargetParser) +set(LLVM_LINK_COMPONENTS Support) -add_clang_tool(offload-arch OffloadArch.cpp NVPTXArch.cpp AMDGPUArchByKFD.cpp - AMDGPUArchByHIP.cpp LevelZeroArch.cpp) +add_clang_tool(offload-arch OffloadArch.cpp) # Legacy binary names. add_clang_symlink(amdgpu-arch offload-arch) add_clang_symlink(nvptx-arch offload-arch) -target_link_libraries(offload-arch PRIVATE clangBasic) +add_subdirectory(lib) +target_link_libraries(offload-arch PRIVATE clangBasic clangOffloadArch) diff --git a/clang/tools/offload-arch/AMDGPUArchByHIP.cpp b/clang/tools/offload-arch/lib/AMDGPUArchByHIP.cpp similarity index 100% rename from clang/tools/offload-arch/AMDGPUArchByHIP.cpp rename to clang/tools/offload-arch/lib/AMDGPUArchByHIP.cpp diff --git a/clang/tools/offload-arch/AMDGPUArchByKFD.cpp b/clang/tools/offload-arch/lib/AMDGPUArchByKFD.cpp similarity index 100% rename from clang/tools/offload-arch/AMDGPUArchByKFD.cpp rename to clang/tools/offload-arch/lib/AMDGPUArchByKFD.cpp diff --git a/clang/tools/offload-arch/lib/CMakeLists.txt b/clang/tools/offload-arch/lib/CMakeLists.txt new file mode 100644 index 0000000000000..2692229dc675b --- /dev/null +++ b/clang/tools/offload-arch/lib/CMakeLists.txt @@ -0,0 +1,14 @@ +# Not add_clang_library: this is not part of clang's public library interface, +# the sources are shared between offload-arch and its unit tests. +add_llvm_library(clangOffloadArch STATIC + AMDGPUArchByHIP.cpp + AMDGPUArchByKFD.cpp + LevelZeroArch.cpp + NVPTXArch.cpp + + BUILDTREE_ONLY + + LINK_COMPONENTS + Support + TargetParser + ) diff --git a/clang/tools/offload-arch/LevelZeroArch.cpp b/clang/tools/offload-arch/lib/LevelZeroArch.cpp similarity index 100% rename from clang/tools/offload-arch/LevelZeroArch.cpp rename to clang/tools/offload-arch/lib/LevelZeroArch.cpp diff --git a/clang/tools/offload-arch/NVPTXArch.cpp b/clang/tools/offload-arch/lib/NVPTXArch.cpp similarity index 99% rename from clang/tools/offload-arch/NVPTXArch.cpp rename to clang/tools/offload-arch/lib/NVPTXArch.cpp index 11ea2e79cd279..c6e728ac1d043 100644 --- a/clang/tools/offload-arch/NVPTXArch.cpp +++ b/clang/tools/offload-arch/lib/NVPTXArch.cpp @@ -11,7 +11,6 @@ // //===----------------------------------------------------------------------===// -#include "clang/Basic/Version.h" #include "llvm/Support/CommandLine.h" #include "llvm/Support/DynamicLibrary.h" #include "llvm/Support/Error.h" diff --git a/clang/unittests/CMakeLists.txt b/clang/unittests/CMakeLists.txt index 5cc21a563be3e..b2fee01649abc 100644 --- a/clang/unittests/CMakeLists.txt +++ b/clang/unittests/CMakeLists.txt @@ -110,7 +110,7 @@ add_subdirectory(Support) if (CLANG_ENABLE_CIR) add_subdirectory(CIR) endif() -add_subdirectory(offload-arch) +add_subdirectory(tools) # If we're doing a single merged clang unit test binary, add that target after # all the previous subdirectories have been processed. diff --git a/clang/unittests/offload-arch/CMakeLists.txt b/clang/unittests/offload-arch/CMakeLists.txt deleted file mode 100644 index 523b5f33ed6b3..0000000000000 --- a/clang/unittests/offload-arch/CMakeLists.txt +++ /dev/null @@ -1,21 +0,0 @@ -set(OffloadArchTestSources - OffloadArchTest.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/../../tools/offload-arch/AMDGPUArchByKFD.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/../../tools/offload-arch/LevelZeroArch.cpp - ) - -if(CMAKE_SYSTEM_NAME STREQUAL "Windows") - list(APPEND OffloadArchTestSources - ${CMAKE_CURRENT_SOURCE_DIR}/../../tools/offload-arch/AMDGPUArchByHIP.cpp) -endif() - -add_distinct_clang_unittest(OffloadArchTests - ${OffloadArchTestSources} - CLANG_LIBS - clangBasic - LINK_LIBS - LLVMTestingSupport - LLVM_COMPONENTS - Support - TargetParser - ) diff --git a/clang/unittests/tools/CMakeLists.txt b/clang/unittests/tools/CMakeLists.txt new file mode 100644 index 0000000000000..8a51d644cf1ab --- /dev/null +++ b/clang/unittests/tools/CMakeLists.txt @@ -0,0 +1 @@ +add_subdirectory(offload-arch) diff --git a/clang/unittests/tools/offload-arch/CMakeLists.txt b/clang/unittests/tools/offload-arch/CMakeLists.txt new file mode 100644 index 0000000000000..56cfe48d56487 --- /dev/null +++ b/clang/unittests/tools/offload-arch/CMakeLists.txt @@ -0,0 +1,8 @@ +add_distinct_clang_unittest(OffloadArchTests + OffloadArchTest.cpp + LINK_LIBS + clangOffloadArch + LLVMTestingSupport + LLVM_COMPONENTS + Support + ) diff --git a/clang/unittests/offload-arch/OffloadArchTest.cpp b/clang/unittests/tools/offload-arch/OffloadArchTest.cpp similarity index 98% rename from clang/unittests/offload-arch/OffloadArchTest.cpp rename to clang/unittests/tools/offload-arch/OffloadArchTest.cpp index 2d4a35c85729d..7de00610bd189 100644 --- a/clang/unittests/offload-arch/OffloadArchTest.cpp +++ b/clang/unittests/tools/offload-arch/OffloadArchTest.cpp @@ -21,13 +21,13 @@ #include <optional> #include <string> -// Defined in AMDGPUArchByHIP.cpp (non-static, compiled into this test). +// Defined in AMDGPUArchByHIP.cpp (non-static, linked via clangOffloadArch). #ifdef _WIN32 bool compareVersions(llvm::StringRef A, llvm::StringRef B); llvm::SmallVector<std::string, 8> getCandidateBinPaths(llvm::StringRef ExeDir); #endif -// Defined in AMDGPUArchByKFD.cpp (non-static, compiled into this test). +// Defined in AMDGPUArchByKFD.cpp (non-static, linked via clangOffloadArch). int printGPUsByKFD(llvm::StringRef NodePath); // Defined in LevelZeroArch.cpp. diff --git a/llvm/utils/gn/secondary/clang/tools/offload-arch/lib/BUILD.gn b/llvm/utils/gn/secondary/clang/tools/offload-arch/lib/BUILD.gn new file mode 100644 index 0000000000000..987dd7a9a9a97 --- /dev/null +++ b/llvm/utils/gn/secondary/clang/tools/offload-arch/lib/BUILD.gn @@ -0,0 +1,14 @@ +static_library("lib") { + output_name = "clangOffloadArch" + configs += [ "//llvm/utils/gn/build:clang_code" ] + deps = [ + "//llvm/lib/Support", + "//llvm/lib/TargetParser", + ] + sources = [ + "AMDGPUArchByHIP.cpp", + "AMDGPUArchByKFD.cpp", + "LevelZeroArch.cpp", + "NVPTXArch.cpp", + ] +} diff --git a/llvm/utils/gn/secondary/clang/unittests/BUILD.gn b/llvm/utils/gn/secondary/clang/unittests/BUILD.gn index a8c4b93f4baba..13ac1fac6637e 100644 --- a/llvm/utils/gn/secondary/clang/unittests/BUILD.gn +++ b/llvm/utils/gn/secondary/clang/unittests/BUILD.gn @@ -24,7 +24,7 @@ group("unittests") { "Support:ClangSupportTests", "Tooling:ToolingTests", "Tooling/Syntax:SyntaxTests", - "offload-arch:OffloadArchTests", + "tools/offload-arch:OffloadArchTests", ] if (clang_enable_static_analyzer) { deps += [ diff --git a/llvm/utils/gn/secondary/clang/unittests/offload-arch/BUILD.gn b/llvm/utils/gn/secondary/clang/unittests/offload-arch/BUILD.gn deleted file mode 100644 index 336f30a6570b9..0000000000000 --- a/llvm/utils/gn/secondary/clang/unittests/offload-arch/BUILD.gn +++ /dev/null @@ -1,19 +0,0 @@ -import("//third-party/unittest/unittest.gni") - -unittest("OffloadArchTests") { - configs += [ "//llvm/utils/gn/build:clang_code" ] - deps = [ - "//clang/lib/Basic", - "//llvm/lib/Support", - "//llvm/lib/Testing/Support", - ] - sources = [ - "//clang/tools/offload-arch/AMDGPUArchByKFD.cpp", - "//clang/tools/offload-arch/LevelZeroArch.cpp", - "OffloadArchTest.cpp", - ] - - if (current_os == "win") { - sources += [ "//clang/tools/offload-arch/AMDGPUArchByHIP.cpp" ] - } -} diff --git a/llvm/utils/gn/secondary/clang/unittests/tools/offload-arch/BUILD.gn b/llvm/utils/gn/secondary/clang/unittests/tools/offload-arch/BUILD.gn new file mode 100644 index 0000000000000..3ebd60b6da0c7 --- /dev/null +++ b/llvm/utils/gn/secondary/clang/unittests/tools/offload-arch/BUILD.gn @@ -0,0 +1,11 @@ +import("//third-party/unittest/unittest.gni") + +unittest("OffloadArchTests") { + configs += [ "//llvm/utils/gn/build:clang_code" ] + deps = [ + "//clang/tools/offload-arch/lib", + "//llvm/lib/Support", + "//llvm/lib/Testing/Support", + ] + sources = [ "OffloadArchTest.cpp" ] +} `````````` </details> https://github.com/llvm/llvm-project/pull/226552 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
