diff options
| author | Yunlian Jiang <yunlian@google.com> | 2018-06-25 23:05:27 +0000 |
|---|---|---|
| committer | Yunlian Jiang <yunlian@google.com> | 2018-06-25 23:05:27 +0000 |
| commit | 87c88cc484e7ba1b890a328d78744fb70563c56c (patch) | |
| tree | 5fad765978790387d6b9524aafc1b3c0326f9e96 | |
| parent | 38a86d3136f61eb1884ce6e5fa5681508347348f (diff) | |
| download | bcm5719-llvm-87c88cc484e7ba1b890a328d78744fb70563c56c.tar.gz bcm5719-llvm-87c88cc484e7ba1b890a328d78744fb70563c56c.zip | |
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
| -rw-r--r-- | clang/lib/Driver/ToolChains/CommonArgs.cpp | 6 | ||||
| -rw-r--r-- | clang/test/Driver/lto-dwo.c | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp index 43f7d7f3b7b..98a36bcd837 100644 --- a/clang/lib/Driver/ToolChains/CommonArgs.cpp +++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp @@ -416,6 +416,12 @@ void tools::AddGoldPlugin(const ToolChain &ToolChain, const ArgList &Args, 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) CmdArgs.push_back("-plugin-opt=thinlto"); diff --git a/clang/test/Driver/lto-dwo.c b/clang/test/Driver/lto-dwo.c new file mode 100644 index 00000000000..486ace43f01 --- /dev/null +++ b/clang/test/Driver/lto-dwo.c @@ -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" |

