Author: Joseph Huber Date: 2024-07-22T18:57:54-05:00 New Revision: 624d3221d1159bff98964d77c1b76e04a367d9d4
URL: https://github.com/llvm/llvm-project/commit/624d3221d1159bff98964d77c1b76e04a367d9d4 DIFF: https://github.com/llvm/llvm-project/commit/624d3221d1159bff98964d77c1b76e04a367d9d4.diff LOG: [Clang] Fix 'clang-nvlink-wrapper' not working w/o CUDA Summary: This would try to find `nvlink` and then fail even in `dry-run` mode. We now just let it continue and pretend like we found it. Also add it to the depends. Added: Modified: clang/test/CMakeLists.txt clang/tools/clang-nvlink-wrapper/ClangNVLinkWrapper.cpp Removed: ################################################################################ diff --git a/clang/test/CMakeLists.txt b/clang/test/CMakeLists.txt index 8303269a9ad07..299a35723b59d 100644 --- a/clang/test/CMakeLists.txt +++ b/clang/test/CMakeLists.txt @@ -78,6 +78,7 @@ list(APPEND CLANG_TEST_DEPS clang-installapi clang-scan-deps clang-linker-wrapper + clang-nvlink-wrapper clang-offload-bundler clang-offload-packager diagtool diff --git a/clang/tools/clang-nvlink-wrapper/ClangNVLinkWrapper.cpp b/clang/tools/clang-nvlink-wrapper/ClangNVLinkWrapper.cpp index c56486b54a339..c71873160a5a0 100644 --- a/clang/tools/clang-nvlink-wrapper/ClangNVLinkWrapper.cpp +++ b/clang/tools/clang-nvlink-wrapper/ClangNVLinkWrapper.cpp @@ -190,7 +190,10 @@ Expected<StringRef> createTempFile(const ArgList &Args, const Twine &Prefix, return TempFiles.back(); } -Expected<std::string> findProgram(StringRef Name, ArrayRef<StringRef> Paths) { +Expected<std::string> findProgram(const ArgList &Args, StringRef Name, + ArrayRef<StringRef> Paths) { + if (Args.hasArg(OPT_dry_run)) + return Name.str(); ErrorOr<std::string> Path = sys::findProgramByName(Name, Paths); if (!Path) Path = sys::findProgramByName(Name); @@ -294,10 +297,9 @@ struct Symbol { Expected<StringRef> runPTXAs(StringRef File, const ArgList &Args) { std::string CudaPath = Args.getLastArgValue(OPT_cuda_path_EQ).str(); + std::string GivenPath = Args.getLastArgValue(OPT_ptxas_path_EQ).str(); Expected<std::string> PTXAsPath = - Args.getLastArgValue(OPT_ptxas_path_EQ).str(); - if (PTXAsPath->empty()) - PTXAsPath = findProgram("ptxas", {CudaPath + "/bin"}); + findProgram(Args, "ptxas", {CudaPath + "/bin", GivenPath}); if (!PTXAsPath) return PTXAsPath.takeError(); @@ -686,7 +688,8 @@ Error runNVLink(ArrayRef<StringRef> Files, const ArgList &Args) { return Error::success(); std::string CudaPath = Args.getLastArgValue(OPT_cuda_path_EQ).str(); - Expected<std::string> NVLinkPath = findProgram("nvlink", {CudaPath + "/bin"}); + Expected<std::string> NVLinkPath = + findProgram(Args, "nvlink", {CudaPath + "/bin"}); if (!NVLinkPath) return NVLinkPath.takeError(); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits