Skip to content

Commit

Permalink
[LTO] Add the ability to test -thinlto-emit-imports-files through llv…
Browse files Browse the repository at this point in the history
…m-lto2

Summary:
Start bringing llvm-lto2 to a level where we can test the LTO API
a bit deeper.

Reviewers: tejohnson

Subscribers: llvm-commits, mehdi_amini

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

llvm-svn: 279349
  • Loading branch information
joker-eph committed Aug 19, 2016
1 parent 8a4d2dd commit 458f805
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 1 deletion.
13 changes: 13 additions & 0 deletions llvm/test/ThinLTO/X86/emit_imports.ll
Expand Up @@ -12,6 +12,19 @@
; The imports file for Input/emit_imports.ll is empty as it does not import anything.
; RUN: cat %t2.bc.imports | count 0

; RUN: rm -f %t*.thinlto.bc %t*.bc.imports
; RUN: llvm-lto2 %t1.bc %t2.bc -o %t.o \
; RUN: -thinlto-distributed-indexes \
; RUN: -r=%t1.bc,g, \
; RUN: -r=%t1.bc,f,px \
; RUN: -r=%t2.bc,g,px

; RUN: cat %t1.bc.imports | count 1
; RUN: cat %t1.bc.imports | FileCheck %s --check-prefix=IMPORTS1

; The imports file for Input/emit_imports.ll is empty as it does not import anything.
; RUN: cat %t2.bc.imports | count 0

declare void @g(...)

define void @f() {
Expand Down
16 changes: 15 additions & 1 deletion llvm/tools/llvm-lto2/llvm-lto2.cpp
Expand Up @@ -33,6 +33,15 @@ static cl::opt<std::string> OutputFilename("o", cl::Required,

static cl::opt<bool> SaveTemps("save-temps", cl::desc("Save temporary files"));

static cl::opt<bool>
ThinLTODistributedIndexes("thinlto-distributed-indexes", cl::init(false),
cl::desc("Write out individual index and "
"import files for the "
"distributed backend case"));

static cl::opt<int> Threads("-thinlto-threads",
cl::init(thread::hardware_concurrency()));

static cl::list<std::string> SymbolResolutions(
"r",
cl::desc("Specify a symbol resolution: filename,symbolname,resolution\n"
Expand Down Expand Up @@ -135,7 +144,12 @@ int main(int argc, char **argv) {
check(Conf.addSaveTemps(OutputFilename + "."),
"Config::addSaveTemps failed");

LTO Lto(std::move(Conf));
ThinBackend Backend;
if (ThinLTODistributedIndexes)
Backend = createWriteIndexesThinBackend("", "", true, "");
else
Backend = createInProcessThinBackend(Threads);
LTO Lto(std::move(Conf), std::move(Backend));

bool HasErrors = false;
for (std::string F : InputFilenames) {
Expand Down

0 comments on commit 458f805

Please sign in to comment.