nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at netboot-syslinux-multiplatform 80 lines 3.6 kB view raw
1From 7147e9774c74abcd1d6db24e24d0fd989c2b97dd Mon Sep 17 00:00:00 2001 2From: =?UTF-8?q?Holger=20W=C3=BCnsche?= <holger.o.wuensche@t-online.de> 3Date: Tue, 21 Jan 2020 19:52:04 +0100 4Subject: [PATCH] [HIP] use GetProgramPath for executable discovery 5 6This change replaces the manual building of executable paths 7using llvm::sys::path::append with GetProgramPath. 8This enables adding other paths in case executables reside 9in different directories and makes the code easier to read. 10 11Differential Revision: https://reviews.llvm.org/D72903 12--- 13 clang/lib/Driver/ToolChains/HIP.cpp | 23 ++++++++--------------- 14 1 file changed, 8 insertions(+), 15 deletions(-) 15 16diff --git a/lib/Driver/ToolChains/HIP.cpp b/lib/Driver/ToolChains/HIP.cpp 17index 2ec97e798fd..735c302debb 100644 18--- a/lib/Driver/ToolChains/HIP.cpp 19+++ b/lib/Driver/ToolChains/HIP.cpp 20@@ -66,9 +66,8 @@ const char *AMDGCN::Linker::constructLLVMLinkCommand( 21 const char *OutputFileName = 22 C.addTempFile(C.getArgs().MakeArgString(TmpName)); 23 CmdArgs.push_back(OutputFileName); 24- SmallString<128> ExecPath(C.getDriver().Dir); 25- llvm::sys::path::append(ExecPath, "llvm-link"); 26- const char *Exec = Args.MakeArgString(ExecPath); 27+ const char *Exec = 28+ Args.MakeArgString(getToolChain().GetProgramPath("llvm-link")); 29 C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs, Inputs)); 30 return OutputFileName; 31 } 32@@ -114,9 +113,8 @@ const char *AMDGCN::Linker::constructOptCommand( 33 const char *OutputFileName = 34 C.addTempFile(C.getArgs().MakeArgString(TmpFileName)); 35 OptArgs.push_back(OutputFileName); 36- SmallString<128> OptPath(C.getDriver().Dir); 37- llvm::sys::path::append(OptPath, "opt"); 38- const char *OptExec = Args.MakeArgString(OptPath); 39+ const char *OptExec = 40+ Args.MakeArgString(getToolChain().GetProgramPath("opt")); 41 C.addCommand(llvm::make_unique<Command>(JA, *this, OptExec, OptArgs, Inputs)); 42 return OutputFileName; 43 } 44@@ -156,9 +154,7 @@ const char *AMDGCN::Linker::constructLlcCommand( 45 const char *LlcOutputFile = 46 C.addTempFile(C.getArgs().MakeArgString(LlcOutputFileName)); 47 LlcArgs.push_back(LlcOutputFile); 48- SmallString<128> LlcPath(C.getDriver().Dir); 49- llvm::sys::path::append(LlcPath, "llc"); 50- const char *Llc = Args.MakeArgString(LlcPath); 51+ const char *Llc = Args.MakeArgString(getToolChain().GetProgramPath("llc")); 52 C.addCommand(llvm::make_unique<Command>(JA, *this, Llc, LlcArgs, Inputs)); 53 return LlcOutputFile; 54 } 55@@ -172,9 +168,7 @@ void AMDGCN::Linker::constructLldCommand(Compilation &C, const JobAction &JA, 56 // The output from ld.lld is an HSA code object file. 57 ArgStringList LldArgs{ 58 "-flavor", "gnu", "-shared", "-o", Output.getFilename(), InputFileName}; 59- SmallString<128> LldPath(C.getDriver().Dir); 60- llvm::sys::path::append(LldPath, "lld"); 61- const char *Lld = Args.MakeArgString(LldPath); 62+ const char *Lld = Args.MakeArgString(getToolChain().GetProgramPath("lld")); 63 C.addCommand(llvm::make_unique<Command>(JA, *this, Lld, LldArgs, Inputs)); 64 } 65 66@@ -206,9 +200,8 @@ void AMDGCN::constructHIPFatbinCommand(Compilation &C, const JobAction &JA, 67 Args.MakeArgString(std::string("-outputs=").append(OutputFileName)); 68 BundlerArgs.push_back(BundlerOutputArg); 69 70- SmallString<128> BundlerPath(C.getDriver().Dir); 71- llvm::sys::path::append(BundlerPath, "clang-offload-bundler"); 72- const char *Bundler = Args.MakeArgString(BundlerPath); 73+ const char *Bundler = Args.MakeArgString( 74+ T.getToolChain().GetProgramPath("clang-offload-bundler")); 75 C.addCommand(llvm::make_unique<Command>(JA, T, Bundler, BundlerArgs, Inputs)); 76 } 77 78-- 792.23.1 80