Add support for LTO plugin option obj-path
Differential Revision: https://reviews.llvm.org/D46598 llvm-svn: 331817
This commit is contained in:
parent
d24dcdd1f7
commit
b5b7d6e19c
|
@ -86,6 +86,7 @@ struct Configuration {
|
|||
llvm::StringRef Init;
|
||||
llvm::StringRef LTOAAPipeline;
|
||||
llvm::StringRef LTONewPmPasses;
|
||||
llvm::StringRef LTOObjPath;
|
||||
llvm::StringRef LTOSampleProfile;
|
||||
llvm::StringRef MapFile;
|
||||
llvm::StringRef OutputFile;
|
||||
|
|
|
@ -796,6 +796,8 @@ void LinkerDriver::readConfigs(opt::InputArgList &Args) {
|
|||
Config->LTODebugPassManager = true;
|
||||
} else if (S.startswith("sample-profile=")) {
|
||||
Config->LTOSampleProfile = S.substr(15);
|
||||
} else if (S.startswith("obj-path=")) {
|
||||
Config->LTOObjPath = S.substr(9);
|
||||
} else if (S == "thinlto-index-only") {
|
||||
Config->ThinLTOIndexOnly = true;
|
||||
} else if (S.startswith("thinlto-index-only=")) {
|
||||
|
|
|
@ -279,8 +279,8 @@ std::vector<InputFile *> BitcodeCompiler::compile() {
|
|||
openFile(Path + ".imports");
|
||||
}
|
||||
|
||||
if (Config->SaveTemps)
|
||||
saveBuffer(Buff[0], Config->OutputFile + ".lto.o");
|
||||
if (!Config->LTOObjPath.empty())
|
||||
saveBuffer(Buff[0], Config->LTOObjPath);
|
||||
|
||||
// ThinLTO with index only option is required to generate only the index
|
||||
// files. After that, we exit from linker and ThinLTO backend runs in a
|
||||
|
|
|
@ -49,11 +49,6 @@
|
|||
; RUN: not ls %t2.o.thinlto.bc
|
||||
; RUN: not ls %t4.o.thinlto.bc
|
||||
|
||||
; Ensure lld generates one regular LTO file via splitting for ThinLTO builds
|
||||
; RUN: rm -f %t.lto.o
|
||||
; RUN: ld.lld -save-temps --plugin-opt=thinlto-index-only -shared %t.o %t2.o -o %t
|
||||
; RUN: llvm-readobj -h %t.lto.o | FileCheck %s --check-prefix=FORMAT
|
||||
|
||||
; First force single-threaded mode
|
||||
; RUN: rm -f %t.lto.o %t1.lto.o
|
||||
; RUN: ld.lld -save-temps --thinlto-jobs=1 -shared %t.o %t2.o -o %t
|
||||
|
@ -71,6 +66,12 @@
|
|||
; stable on the final output file itself.
|
||||
; RUN: ld.lld -shared %t.o %t2.o -o %t2
|
||||
|
||||
; Test to ensure that thinlto-index-only with obj-path creates the file.
|
||||
; RUN: rm -f %t5.o
|
||||
; RUN: ld.lld --plugin-opt=thinlto-index-only --plugin-opt=obj-path=%t5.o -shared %t.o %t2.o -o %t4
|
||||
; RUN: llvm-readobj -h %t5.o | FileCheck %s --check-prefix=FORMAT
|
||||
; RUN: llvm-nm %t5.o | count 0
|
||||
|
||||
; NM: T f
|
||||
; NM1: T f
|
||||
; NM1-NOT: U g
|
||||
|
|
Loading…
Reference in New Issue