Add an option to support debug fission on implicit ThinLTO.

Summary:
This adds an option -gsplit-dwarf=<arg>. LLVM can create .dwo files in the given directory
during the implicit ThinLTO link stage.

Reviewers: tejohnson, dblaikie, pcc

Reviewed By: pcc

Subscribers: steven_wu, aprantl, JDevlieghere, yunlian, probinson, mehdi_amini, inglorion, cfe-commits

Differential Revision: https://reviews.llvm.org/D44788

llvm-svn: 335546
This commit is contained in:
Yunlian Jiang 2018-06-25 23:05:27 +00:00
parent 38a86d3136
commit 87c88cc484
2 changed files with 12 additions and 0 deletions

View File

@ -416,6 +416,12 @@ void tools::AddGoldPlugin(const ToolChain &ToolChain, const ArgList &Args,
CmdArgs.push_back(Args.MakeArgString(Twine("-plugin-opt=O") + OOpt)); CmdArgs.push_back(Args.MakeArgString(Twine("-plugin-opt=O") + OOpt));
} }
if (Args.hasArg(options::OPT_gsplit_dwarf)) {
CmdArgs.push_back(
Args.MakeArgString(Twine("-plugin-opt=dwo_dir=") +
Output.getFilename() + "_dwo"));
}
if (IsThinLTO) if (IsThinLTO)
CmdArgs.push_back("-plugin-opt=thinlto"); CmdArgs.push_back("-plugin-opt=thinlto");

View File

@ -0,0 +1,6 @@
// Confirm that -gsplit-dwarf=DIR is passed to linker
// RUN: %clang -target x86_64-unknown-linux -### %s -flto=thin -gsplit-dwarf -o a.out 2> %t
// RUN: FileCheck -check-prefix=CHECK-LINK-DWO-DIR-DEFAULT < %t %s
//
// CHECK-LINK-DWO-DIR-DEFAULT: "-plugin-opt=dwo_dir=a.out_dwo"