@@ -33,32 +33,22 @@ using namespace llvm::opt;
3333#define NULL_FILE " /dev/null"
3434#endif
3535
36- void AMDGCN::Linker::constructLlvmLinkCommand (Compilation &C,
37- const JobAction &JA,
38- const InputInfoList &Inputs,
39- const InputInfo &Output,
40- const llvm::opt::ArgList &Args) const {
41- // Construct llvm-link command.
42- // The output from llvm-link is a bitcode file.
43- ArgStringList LlvmLinkArgs;
36+ void AMDGCN::Linker::constructLlvmLinkCommand (
37+ Compilation &C, const JobAction &JA, const InputInfoList &Inputs,
38+ const InputInfo &Output, const llvm::opt::ArgList &Args) const {
4439
45- assert (!Inputs. empty () && " Must have at least one input. " ) ;
40+ ArgStringList LinkerInputs ;
4641
47- LlvmLinkArgs.append ({" -o" , Output.getFilename ()});
4842 for (auto Input : Inputs)
49- LlvmLinkArgs .push_back (Input.getFilename ());
43+ LinkerInputs .push_back (Input.getFilename ());
5044
5145 // Look for archive of bundled bitcode in arguments, and add temporary files
5246 // for the extracted archive of bitcode to inputs.
5347 auto TargetID = Args.getLastArgValue (options::OPT_mcpu_EQ);
54- AddStaticDeviceLibsLinking (C, *this , JA, Inputs, Args, LlvmLinkArgs , " amdgcn" ,
48+ AddStaticDeviceLibsLinking (C, *this , JA, Inputs, Args, LinkerInputs , " amdgcn" ,
5549 TargetID, /* IsBitCodeSDL=*/ true );
56-
57- const char *LlvmLink =
58- Args.MakeArgString (getToolChain ().GetProgramPath (" llvm-link" ));
59- C.addCommand (std::make_unique<Command>(JA, *this , ResponseFileSupport::None (),
60- LlvmLink, LlvmLinkArgs, Inputs,
61- Output));
50+ tools::constructLlvmLinkCommand (C, *this , JA, Inputs, LinkerInputs, Output,
51+ Args);
6252}
6353
6454void AMDGCN::Linker::constructLldCommand (Compilation &C, const JobAction &JA,
0 commit comments