Index: include/llvm/ExecutionEngine/ExecutionEngine.h
===================================================================
--- include/llvm/ExecutionEngine/ExecutionEngine.h
+++ include/llvm/ExecutionEngine/ExecutionEngine.h
@@ -565,7 +565,7 @@
}
/// setOptLevel - Set the optimization level for the JIT. This option
- /// defaults to CodeGenOpt::Default.
+ /// defaults to CodeGenOpt::Default.-
EngineBuilder &setOptLevel(CodeGenOpt::Level l) {
OptLevel = l;
return *this;
Index: test/Bitcode/module_hash.ll
===================================================================
--- test/Bitcode/module_hash.ll
+++ test/Bitcode/module_hash.ll
@@ -1,14 +1,14 @@
; Check per module hash.
-; RUN: llvm-as -module-hash %s -o - | llvm-bcanalyzer -dump | FileCheck %s --check-prefix=MOD1
+; RUN: opt -module-hash %s -o - | llvm-bcanalyzer -dump | FileCheck %s --check-prefix=MOD1
; MOD1:
-; RUN: llvm-as -module-hash %p/Inputs/module_hash.ll -o - | llvm-bcanalyzer -dump | FileCheck %s --check-prefix=MOD2
+; RUN: opt -module-hash %p/Inputs/module_hash.ll -o - | llvm-bcanalyzer -dump | FileCheck %s --check-prefix=MOD2
; MOD2:
; Check that the hash matches in the combined index.
; First regenerate the modules with a summary
-; RUN: llvm-as -module-hash -module-summary %s -o %t.m1.bc
-; RUN: llvm-as -module-hash -module-summary %p/Inputs/module_hash.ll -o %t.m2.bc
+; RUN: opt -module-hash -module-summary %s -o %t.m1.bc
+; RUN: opt -module-hash -module-summary %p/Inputs/module_hash.ll -o %t.m2.bc
; Recover the hashes from the modules themselves.
; RUN: llvm-bcanalyzer -dump %t.m1.bc | grep ' %t.hash
Index: test/Bitcode/thinlto-function-summary-callgraph-pgo.ll
===================================================================
--- test/Bitcode/thinlto-function-summary-callgraph-pgo.ll
+++ test/Bitcode/thinlto-function-summary-callgraph-pgo.ll
@@ -1,7 +1,7 @@
; Test to check the callgraph in summary when there is PGO
-; RUN: llvm-as -module-summary %s -o %t.o
+; RUN: opt -module-summary %s -o %t.o
; RUN: llvm-bcanalyzer -dump %t.o | FileCheck %s
-; RUN: llvm-as -module-summary %p/Inputs/thinlto-function-summary-callgraph.ll -o %t2.o
+; RUN: opt -module-summary %p/Inputs/thinlto-function-summary-callgraph.ll -o %t2.o
; RUN: llvm-lto -thinlto -o %t3 %t.o %t2.o
; RUN: llvm-bcanalyzer -dump %t3.thinlto.bc | FileCheck %s --check-prefix=COMBINED
Index: test/Bitcode/thinlto-function-summary-callgraph.ll
===================================================================
--- test/Bitcode/thinlto-function-summary-callgraph.ll
+++ test/Bitcode/thinlto-function-summary-callgraph.ll
@@ -1,7 +1,7 @@
; Test to check the callgraph in summary
-; RUN: llvm-as -module-summary %s -o %t.o
+; RUN: opt -module-summary %s -o %t.o
; RUN: llvm-bcanalyzer -dump %t.o | FileCheck %s
-; RUN: llvm-as -module-summary %p/Inputs/thinlto-function-summary-callgraph.ll -o %t2.o
+; RUN: opt -module-summary %p/Inputs/thinlto-function-summary-callgraph.ll -o %t2.o
; RUN: llvm-lto -thinlto -o %t3 %t.o %t2.o
; RUN: llvm-bcanalyzer -dump %t3.thinlto.bc | FileCheck %s --check-prefix=COMBINED
Index: test/Bitcode/thinlto-function-summary-refgraph.ll
===================================================================
--- test/Bitcode/thinlto-function-summary-refgraph.ll
+++ test/Bitcode/thinlto-function-summary-refgraph.ll
@@ -1,5 +1,5 @@
; Test to check both the callgraph and refgraph in summary
-; RUN: llvm-as -module-summary %s -o %t.o
+; RUN: opt -module-summary %s -o %t.o
; RUN: llvm-bcanalyzer -dump %t.o | FileCheck %s
; See if the calls and other references are recorded properly using the
Index: test/Bitcode/thinlto-function-summary.ll
===================================================================
--- test/Bitcode/thinlto-function-summary.ll
+++ test/Bitcode/thinlto-function-summary.ll
@@ -1,4 +1,4 @@
-; RUN: llvm-as -module-summary < %s | llvm-bcanalyzer -dump | FileCheck %s -check-prefix=BC
+; RUN: opt -module-summary < %s | llvm-bcanalyzer -dump | FileCheck %s -check-prefix=BC
; Check for summary block/records.
; Check the value ids in the summary entries against the
@@ -13,7 +13,7 @@
; BC-NEXT: record string = 'bar'
; BC-NEXT: record string = 'f'
-; RUN: llvm-as -module-summary < %s | llvm-dis | FileCheck %s
+; RUN: opt -module-summary < %s | llvm-dis | FileCheck %s
; Check that this round-trips correctly.
; ModuleID = ''
Index: test/Bitcode/thinlto-summary-linkage-types.ll
===================================================================
--- test/Bitcode/thinlto-summary-linkage-types.ll
+++ test/Bitcode/thinlto-summary-linkage-types.ll
@@ -1,5 +1,5 @@
; Check the linkage types in both the per-module and combined summaries.
-; RUN: llvm-as -module-summary %s -o %t.o
+; RUN: opt -module-summary %s -o %t.o
; RUN: llvm-bcanalyzer -dump %t.o | FileCheck %s
; RUN: llvm-lto -thinlto -o %t2 %t.o
; RUN: llvm-bcanalyzer -dump %t2.thinlto.bc | FileCheck %s --check-prefix=COMBINED
Index: test/Linker/funcimport.ll
===================================================================
--- test/Linker/funcimport.ll
+++ test/Linker/funcimport.ll
@@ -1,13 +1,13 @@
; First ensure that the ThinLTO handling in llvm-link and llvm-lto handles
; bitcode without summary sections gracefully.
-; RUN: llvm-as %s -o %t.bc
-; RUN: llvm-as %p/Inputs/funcimport.ll -o %t2.bc
+; RUN: opt %s -o %t.bc
+; RUN: opt %p/Inputs/funcimport.ll -o %t2.bc
; RUN: llvm-link %t.bc -summary-index=%t.bc -S
; RUN: llvm-lto -thinlto -o %t3 %t.bc %t2.bc
; Do setup work for all below tests: generate bitcode and combined index
-; RUN: llvm-as -module-summary %s -o %t.bc
-; RUN: llvm-as -module-summary %p/Inputs/funcimport.ll -o %t2.bc
+; RUN: opt -module-summary %s -o %t.bc
+; RUN: opt -module-summary %p/Inputs/funcimport.ll -o %t2.bc
; RUN: llvm-lto -thinlto -o %t3 %t.bc %t2.bc
; Ensure statics are promoted/renamed correctly from this file (all but
Index: test/Linker/funcimport2.ll
===================================================================
--- test/Linker/funcimport2.ll
+++ test/Linker/funcimport2.ll
@@ -1,5 +1,5 @@
-; RUN: llvm-as -module-summary %s -o %t1.bc
-; RUN: llvm-as -module-summary %p/Inputs/funcimport2.ll -o %t2.bc
+; RUN: opt -module-summary %s -o %t1.bc
+; RUN: opt -module-summary %p/Inputs/funcimport2.ll -o %t2.bc
; RUN: llvm-lto -thinlto -o %t3 %t1.bc %t2.bc
; RUN: llvm-link -import=bar:%t2.bc %t1.bc -summary-index=%t3.thinlto.bc -S | FileCheck %s
Index: test/Linker/funcimport_appending_global.ll
===================================================================
--- test/Linker/funcimport_appending_global.ll
+++ test/Linker/funcimport_appending_global.ll
@@ -1,5 +1,5 @@
-; RUN: llvm-as -module-summary %s -o %t.bc
-; RUN: llvm-as -module-summary %p/Inputs/funcimport_appending_global.ll -o %t2.bc
+; RUN: opt -module-summary %s -o %t.bc
+; RUN: opt -module-summary %p/Inputs/funcimport_appending_global.ll -o %t2.bc
; RUN: llvm-lto -thinlto -o %t3 %t.bc %t2.bc
; Do the import now
Index: test/Linker/funcimport_comdat.ll
===================================================================
--- test/Linker/funcimport_comdat.ll
+++ test/Linker/funcimport_comdat.ll
@@ -1,6 +1,6 @@
; Do setup work for all below tests: generate bitcode and combined index
-; RUN: llvm-as -module-summary %s -o %t.bc
-; RUN: llvm-as -module-summary %p/Inputs/funcimport_comdat.ll -o %t2.bc
+; RUN: opt -module-summary %s -o %t.bc
+; RUN: opt -module-summary %p/Inputs/funcimport_comdat.ll -o %t2.bc
; RUN: llvm-lto -thinlto -o %t3 %t.bc %t2.bc
; Ensure linking of comdat containing external linkage global and function
Index: test/Linker/thinlto_funcimport_debug.ll
===================================================================
--- test/Linker/thinlto_funcimport_debug.ll
+++ test/Linker/thinlto_funcimport_debug.ll
@@ -1,6 +1,6 @@
; Do setup work for all below tests: generate bitcode and combined index
-; RUN: llvm-as -module-summary %s -o %t.bc
-; RUN: llvm-as -module-summary %p/Inputs/thinlto_funcimport_debug.ll -o %t2.bc
+; RUN: opt -module-summary %s -o %t.bc
+; RUN: opt -module-summary %p/Inputs/thinlto_funcimport_debug.ll -o %t2.bc
; RUN: llvm-lto -thinlto -o %t3 %t.bc %t2.bc
; If we import func1 and not func2 we should only link DISubprogram for func1
Index: test/ThinLTO/X86/funcimport.ll
===================================================================
--- test/ThinLTO/X86/funcimport.ll
+++ test/ThinLTO/X86/funcimport.ll
@@ -1,6 +1,6 @@
; Do setup work for all below tests: generate bitcode and combined index
-; RUN: llvm-as -module-summary %s -o %t.bc
-; RUN: llvm-as -module-summary %p/Inputs/funcimport.ll -o %t2.bc
+; RUN: opt -module-summary %s -o %t.bc
+; RUN: opt -module-summary %p/Inputs/funcimport.ll -o %t2.bc
; RUN: llvm-lto -thinlto-action=thinlink -o %t3.bc %t.bc %t2.bc
; Ensure statics are promoted/renamed correctly from this file (all but
Index: test/ThinLTO/X86/odr_resolution.ll
===================================================================
--- test/ThinLTO/X86/odr_resolution.ll
+++ test/ThinLTO/X86/odr_resolution.ll
@@ -1,6 +1,6 @@
; Do setup work for all below tests: generate bitcode and combined index
-; RUN: llvm-as -module-summary %s -o %t.bc
-; RUN: llvm-as -module-summary %p/Inputs/odr_resolution.ll -o %t2.bc
+; RUN: opt -module-summary %s -o %t.bc
+; RUN: opt -module-summary %p/Inputs/odr_resolution.ll -o %t2.bc
; RUN: llvm-lto -thinlto-action=thinlink -o %t3.bc %t.bc %t2.bc
; Verify that only one ODR is selected across modules, but non ODR are not affected.
Index: test/Transforms/FunctionImport/adjustable_threshold.ll
===================================================================
--- test/Transforms/FunctionImport/adjustable_threshold.ll
+++ test/Transforms/FunctionImport/adjustable_threshold.ll
@@ -1,6 +1,6 @@
; Do setup work for all below tests: generate bitcode and combined index
-; RUN: llvm-as -module-summary %s -o %t.bc
-; RUN: llvm-as -module-summary %p/Inputs/adjustable_threshold.ll -o %t2.bc
+; RUN: opt -module-summary %s -o %t.bc
+; RUN: opt -module-summary %p/Inputs/adjustable_threshold.ll -o %t2.bc
; RUN: llvm-lto -thinlto -o %t3 %t.bc %t2.bc
; Test import with default progressive instruction factor
Index: test/Transforms/FunctionImport/funcimport.ll
===================================================================
--- test/Transforms/FunctionImport/funcimport.ll
+++ test/Transforms/FunctionImport/funcimport.ll
@@ -1,6 +1,6 @@
; Do setup work for all below tests: generate bitcode and combined index
-; RUN: llvm-as -module-summary %s -o %t.bc
-; RUN: llvm-as -module-summary %p/Inputs/funcimport.ll -o %t2.bc
+; RUN: opt -module-summary %s -o %t.bc
+; RUN: opt -module-summary %p/Inputs/funcimport.ll -o %t2.bc
; RUN: llvm-lto -thinlto -print-summary-global-ids -o %t3 %t.bc %t2.bc 2>&1 | FileCheck %s --check-prefix=GUID
; Do the import now
Index: test/Transforms/FunctionImport/funcimport_alias.ll
===================================================================
--- test/Transforms/FunctionImport/funcimport_alias.ll
+++ test/Transforms/FunctionImport/funcimport_alias.ll
@@ -1,6 +1,6 @@
; Do setup work for all below tests: generate bitcode and combined index
-; RUN: llvm-as -module-summary %s -o %t.bc
-; RUN: llvm-as -module-summary %p/Inputs/funcimport_alias.ll -o %t2.bc
+; RUN: opt -module-summary %s -o %t.bc
+; RUN: opt -module-summary %p/Inputs/funcimport_alias.ll -o %t2.bc
; RUN: llvm-lto -thinlto -o %t3 %t.bc %t2.bc
; Do the import now. Ensures that the importer handles an external call
Index: test/Transforms/FunctionImport/funcimport_debug.ll
===================================================================
--- test/Transforms/FunctionImport/funcimport_debug.ll
+++ test/Transforms/FunctionImport/funcimport_debug.ll
@@ -1,6 +1,6 @@
; Do setup work for all below tests: generate bitcode and combined index
-; RUN: llvm-as -module-summary %s -o %t.bc
-; RUN: llvm-as -module-summary %p/Inputs/funcimport_debug.ll -o %t2.bc
+; RUN: opt -module-summary %s -o %t.bc
+; RUN: opt -module-summary %p/Inputs/funcimport_debug.ll -o %t2.bc
; RUN: llvm-lto -thinlto -o %t3 %t.bc %t2.bc
; Do the import now and confirm that metadata is linked for imported function.
Index: test/tools/llvm-lto/thinlto.ll
===================================================================
--- test/tools/llvm-lto/thinlto.ll
+++ test/tools/llvm-lto/thinlto.ll
@@ -1,6 +1,6 @@
; Test combined function index generation for ThinLTO via llvm-lto.
-; RUN: llvm-as -module-summary %s -o %t.o
-; RUN: llvm-as -module-summary %p/Inputs/thinlto.ll -o %t2.o
+; RUN: opt -module-summary %s -o %t.o
+; RUN: opt -module-summary %p/Inputs/thinlto.ll -o %t2.o
; RUN: llvm-lto -thinlto -o %t3 %t.o %t2.o
; RUN: llvm-bcanalyzer -dump %t3.thinlto.bc | FileCheck %s --check-prefix=COMBINED
; RUN: not test -e %t3
Index: tools/llvm-as/llvm-as.cpp
===================================================================
--- tools/llvm-as/llvm-as.cpp
+++ tools/llvm-as/llvm-as.cpp
@@ -45,10 +45,6 @@
static cl::opt DisableOutput("disable-output", cl::desc("Disable output"),
cl::init(false));
-static cl::opt EmitSummaryIndex("module-summary",
- cl::desc("Emit module summary index"),
- cl::init(false));
-
static cl::opt EmitModuleHash("module-hash", cl::desc("Emit module hash"),
cl::init(false));
@@ -84,14 +80,9 @@
exit(1);
}
- if (Force || !CheckBitcodeOutputToConsole(Out->os(), true)) {
- std::unique_ptr Index;
- if (EmitSummaryIndex)
- Index = ModuleSummaryIndexBuilder(M).takeIndex();
-
- WriteBitcodeToFile(M, Out->os(), PreserveBitcodeUseListOrder, Index.get(),
+ if (Force || !CheckBitcodeOutputToConsole(Out->os(), true))
+ WriteBitcodeToFile(M, Out->os(), PreserveBitcodeUseListOrder, nullptr,
EmitModuleHash);
- }
// Declare success.
Out->keep();
Index: tools/opt/opt.cpp
===================================================================
--- tools/opt/opt.cpp
+++ tools/opt/opt.cpp
@@ -158,6 +158,12 @@
cl::desc("Disable the slp vectorization pass"),
cl::init(false));
+static cl::opt EmitSummaryIndex("module-summary",
+ cl::desc("Emit module summary index"),
+ cl::init(false));
+
+static cl::opt EmitModuleHash("module-hash", cl::desc("Emit module hash"),
+ cl::init(false));
static cl::opt
DisableSimplifyLibCalls("disable-simplify-libcalls",
@@ -617,7 +623,8 @@
if (OutputAssembly)
Passes.add(createPrintModulePass(*OS, "", PreserveAssemblyUseListOrder));
else
- Passes.add(createBitcodeWriterPass(*OS, PreserveBitcodeUseListOrder));
+ Passes.add(createBitcodeWriterPass(*OS, PreserveBitcodeUseListOrder,
+ EmitSummaryIndex, EmitModuleHash));
}
// Before executing passes, print the final values of the LLVM options.