Merge pull request #119126 from fabaff/pycomfoconnect
[NixPkgs.git] / pkgs / development / compilers / llvm / 7 / clang / HIP-use-PATH-7.patch
blob764dddd966cbb98f73c210b74cc115e69891a5bf
1 From 8412cba68835f8f4cc527d02194b181faa5944d4 Mon Sep 17 00:00:00 2001
2 From: =?UTF-8?q?Holger=20W=C3=BCnsche?= <holger.o.wuensche@t-online.de>
3 Date: Tue, 21 Jan 2020 19:46:09 +0100
4 Subject: [PATCH] [HIP] use GetProgramPath for executable discovery
6 This change replaces the manual building of executable paths
7 using llvm::sys::path::append with GetProgramPath.
8 This enables adding other paths in case executables reside
9 in different directories and makes the code easier to read.
11 Differential Revision: https://reviews.llvm.org/D72903
12 ---
13 clang/lib/Driver/ToolChains/HIP.cpp | 18 ++++++------------
14 1 file changed, 6 insertions(+), 12 deletions(-)
16 diff --git a/lib/Driver/ToolChains/HIP.cpp b/lib/Driver/ToolChains/HIP.cpp
17 index 03acf45a9b3..75fd3226c75 100644
18 --- a/lib/Driver/ToolChains/HIP.cpp
19 +++ b/lib/Driver/ToolChains/HIP.cpp
20 @@ -98,9 +98,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;
32 @@ -141,9 +140,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;
44 @@ -161,9 +159,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;
55 @@ -178,9 +174,7 @@ void AMDGCN::Linker::constructLldCommand(Compilation &C, const JobAction &JA,
56 ArgStringList LldArgs{"-flavor", "gnu", "--no-undefined",
57 "-shared", "-o", Output.getFilename(),
58 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));
66 --
67 2.23.1