diff options
Diffstat (limited to 'llvm/tools')
-rw-r--r-- | llvm/tools/llvm-as/CMakeLists.txt | 1 | ||||
-rw-r--r-- | llvm/tools/llvm-as/LLVMBuild.txt | 2 | ||||
-rw-r--r-- | llvm/tools/llvm-as/llvm-as.cpp | 12 |
3 files changed, 11 insertions, 4 deletions
diff --git a/llvm/tools/llvm-as/CMakeLists.txt b/llvm/tools/llvm-as/CMakeLists.txt index 1b2789a4de4..9b9027b7061 100644 --- a/llvm/tools/llvm-as/CMakeLists.txt +++ b/llvm/tools/llvm-as/CMakeLists.txt @@ -1,4 +1,5 @@ set(LLVM_LINK_COMPONENTS + Analysis AsmParser BitWriter Core diff --git a/llvm/tools/llvm-as/LLVMBuild.txt b/llvm/tools/llvm-as/LLVMBuild.txt index 542470bbdd8..cef557ac7a2 100644 --- a/llvm/tools/llvm-as/LLVMBuild.txt +++ b/llvm/tools/llvm-as/LLVMBuild.txt @@ -19,4 +19,4 @@ type = Tool name = llvm-as parent = Tools -required_libraries = AsmParser BitWriter +required_libraries = Analysis AsmParser BitWriter diff --git a/llvm/tools/llvm-as/llvm-as.cpp b/llvm/tools/llvm-as/llvm-as.cpp index 31010dbfac1..89397cde3ef 100644 --- a/llvm/tools/llvm-as/llvm-as.cpp +++ b/llvm/tools/llvm-as/llvm-as.cpp @@ -15,6 +15,7 @@ // //===----------------------------------------------------------------------===// +#include "llvm/Analysis/ModuleSummaryAnalysis.h" #include "llvm/AsmParser/Parser.h" #include "llvm/Bitcode/ReaderWriter.h" #include "llvm/IR/LLVMContext.h" @@ -83,9 +84,14 @@ static void WriteOutputFile(const Module *M) { exit(1); } - if (Force || !CheckBitcodeOutputToConsole(Out->os(), true)) - WriteBitcodeToFile(M, Out->os(), PreserveBitcodeUseListOrder, - EmitSummaryIndex, EmitModuleHash); + if (Force || !CheckBitcodeOutputToConsole(Out->os(), true)) { + std::unique_ptr<ModuleSummaryIndex> Index; + if (EmitSummaryIndex) + Index = ModuleSummaryIndexBuilder(M).takeIndex(); + + WriteBitcodeToFile(M, Out->os(), PreserveBitcodeUseListOrder, Index.get(), + EmitModuleHash); + } // Declare success. Out->keep(); |