[HIP] use GetProgramPath for executable discovery
This change replaces the manual building of executable paths using llvm::sys::path::append with GetProgramPath. This enables adding other paths in case executables reside in different directories and makes the code easier to read. Differential Revision: https://reviews.llvm.org/D72903
This commit is contained in:
parent
a731c6ba94
commit
24d7a0935b
|
|
@ -105,9 +105,8 @@ const char *AMDGCN::Linker::constructLLVMLinkCommand(
|
|||
CmdArgs.push_back("-o");
|
||||
auto OutputFileName = getOutputFileName(C, OutputFilePrefix, "-linked", "bc");
|
||||
CmdArgs.push_back(OutputFileName);
|
||||
SmallString<128> ExecPath(C.getDriver().Dir);
|
||||
llvm::sys::path::append(ExecPath, "llvm-link");
|
||||
const char *Exec = Args.MakeArgString(ExecPath);
|
||||
const char *Exec =
|
||||
Args.MakeArgString(getToolChain().GetProgramPath("llvm-link"));
|
||||
C.addCommand(std::make_unique<Command>(JA, *this, Exec, CmdArgs, Inputs));
|
||||
return OutputFileName;
|
||||
}
|
||||
|
|
@ -133,9 +132,8 @@ const char *AMDGCN::Linker::constructOptCommand(
|
|||
auto OutputFileName =
|
||||
getOutputFileName(C, OutputFilePrefix, "-optimized", "bc");
|
||||
OptArgs.push_back(OutputFileName);
|
||||
SmallString<128> OptPath(C.getDriver().Dir);
|
||||
llvm::sys::path::append(OptPath, "opt");
|
||||
const char *OptExec = Args.MakeArgString(OptPath);
|
||||
const char *OptExec =
|
||||
Args.MakeArgString(getToolChain().GetProgramPath("opt"));
|
||||
C.addCommand(std::make_unique<Command>(JA, *this, OptExec, OptArgs, Inputs));
|
||||
return OutputFileName;
|
||||
}
|
||||
|
|
@ -180,9 +178,7 @@ const char *AMDGCN::Linker::constructLlcCommand(
|
|||
auto LlcOutputFile =
|
||||
getOutputFileName(C, OutputFilePrefix, "", OutputIsAsm ? "s" : "o");
|
||||
LlcArgs.push_back(LlcOutputFile);
|
||||
SmallString<128> LlcPath(C.getDriver().Dir);
|
||||
llvm::sys::path::append(LlcPath, "llc");
|
||||
const char *Llc = Args.MakeArgString(LlcPath);
|
||||
const char *Llc = Args.MakeArgString(getToolChain().GetProgramPath("llc"));
|
||||
C.addCommand(std::make_unique<Command>(JA, *this, Llc, LlcArgs, Inputs));
|
||||
return LlcOutputFile;
|
||||
}
|
||||
|
|
@ -196,9 +192,7 @@ void AMDGCN::Linker::constructLldCommand(Compilation &C, const JobAction &JA,
|
|||
// The output from ld.lld is an HSA code object file.
|
||||
ArgStringList LldArgs{
|
||||
"-flavor", "gnu", "-shared", "-o", Output.getFilename(), InputFileName};
|
||||
SmallString<128> LldPath(C.getDriver().Dir);
|
||||
llvm::sys::path::append(LldPath, "lld");
|
||||
const char *Lld = Args.MakeArgString(LldPath);
|
||||
const char *Lld = Args.MakeArgString(getToolChain().GetProgramPath("lld"));
|
||||
C.addCommand(std::make_unique<Command>(JA, *this, Lld, LldArgs, Inputs));
|
||||
}
|
||||
|
||||
|
|
@ -230,9 +224,8 @@ void AMDGCN::constructHIPFatbinCommand(Compilation &C, const JobAction &JA,
|
|||
Args.MakeArgString(std::string("-outputs=").append(OutputFileName));
|
||||
BundlerArgs.push_back(BundlerOutputArg);
|
||||
|
||||
SmallString<128> BundlerPath(C.getDriver().Dir);
|
||||
llvm::sys::path::append(BundlerPath, "clang-offload-bundler");
|
||||
const char *Bundler = Args.MakeArgString(BundlerPath);
|
||||
const char *Bundler = Args.MakeArgString(
|
||||
T.getToolChain().GetProgramPath("clang-offload-bundler"));
|
||||
C.addCommand(std::make_unique<Command>(JA, T, Bundler, BundlerArgs, Inputs));
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue