[llvm] r279349 - [LTO] Add the ability to test -thinlto-emit-imports-files through llvm-lto2
Mehdi Amini via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 19 16:54:40 PDT 2016
Author: mehdi_amini
Date: Fri Aug 19 18:54:40 2016
New Revision: 279349
URL: http://llvm.org/viewvc/llvm-project?rev=279349&view=rev
Log:
[LTO] Add the ability to test -thinlto-emit-imports-files through llvm-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
Modified:
llvm/trunk/test/ThinLTO/X86/emit_imports.ll
llvm/trunk/tools/llvm-lto2/llvm-lto2.cpp
Modified: llvm/trunk/test/ThinLTO/X86/emit_imports.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/ThinLTO/X86/emit_imports.ll?rev=279349&r1=279348&r2=279349&view=diff
==============================================================================
--- llvm/trunk/test/ThinLTO/X86/emit_imports.ll (original)
+++ llvm/trunk/test/ThinLTO/X86/emit_imports.ll Fri Aug 19 18:54:40 2016
@@ -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() {
Modified: llvm/trunk/tools/llvm-lto2/llvm-lto2.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-lto2/llvm-lto2.cpp?rev=279349&r1=279348&r2=279349&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-lto2/llvm-lto2.cpp (original)
+++ llvm/trunk/tools/llvm-lto2/llvm-lto2.cpp Fri Aug 19 18:54:40 2016
@@ -33,6 +33,15 @@ static cl::opt<std::string> OutputFilena
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"
@@ -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) {
More information about the llvm-commits
mailing list