summaryrefslogtreecommitdiffstats
path: root/llvm/tools
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/tools')
-rw-r--r--llvm/tools/llvm-as/CMakeLists.txt1
-rw-r--r--llvm/tools/llvm-as/LLVMBuild.txt2
-rw-r--r--llvm/tools/llvm-as/llvm-as.cpp12
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();
OpenPOWER on IntegriCloud