Do not require a Context to extract the FunctionIndex from Bitcode (NFC)
[oota-llvm.git] / lib / Object / FunctionIndexObjectFile.cpp
index ee65990c528eee34367716ffe2035486b74701ac..f4b2b5562a39397aa487bb47120fd9ac821490b1 100644 (file)
@@ -72,19 +72,20 @@ FunctionIndexObjectFile::findBitcodeInMemBuffer(MemoryBufferRef Object) {
 // Looks for function index in the given memory buffer.
 // returns true if found, else false.
 bool FunctionIndexObjectFile::hasFunctionSummaryInMemBuffer(
-    MemoryBufferRef Object, LLVMContext &Context) {
+    MemoryBufferRef Object, DiagnosticHandlerFunction DiagnosticHandler) {
   ErrorOr<MemoryBufferRef> BCOrErr = findBitcodeInMemBuffer(Object);
   if (!BCOrErr)
     return false;
 
-  return hasFunctionSummary(BCOrErr.get(), Context, nullptr);
+  return hasFunctionSummary(BCOrErr.get(), DiagnosticHandler);
 }
 
 // Parse function index in the given memory buffer.
 // Return new FunctionIndexObjectFile instance containing parsed
 // function summary/index.
 ErrorOr<std::unique_ptr<FunctionIndexObjectFile>>
-FunctionIndexObjectFile::create(MemoryBufferRef Object, LLVMContext &Context,
+FunctionIndexObjectFile::create(MemoryBufferRef Object,
+                                DiagnosticHandlerFunction DiagnosticHandler,
                                 const Module *ExportingModule, bool IsLazy) {
   std::unique_ptr<FunctionInfoIndex> Index;
 
@@ -93,7 +94,7 @@ FunctionIndexObjectFile::create(MemoryBufferRef Object, LLVMContext &Context,
     return BCOrErr.getError();
 
   ErrorOr<std::unique_ptr<FunctionInfoIndex>> IOrErr = getFunctionInfoIndex(
-      BCOrErr.get(), Context, nullptr, ExportingModule, IsLazy);
+      BCOrErr.get(), DiagnosticHandler, ExportingModule, IsLazy);
 
   if (std::error_code EC = IOrErr.getError())
     return EC;
@@ -107,11 +108,12 @@ FunctionIndexObjectFile::create(MemoryBufferRef Object, LLVMContext &Context,
 // given name out of the given buffer. Parsed information is
 // stored on the index object saved in this object.
 std::error_code FunctionIndexObjectFile::findFunctionSummaryInMemBuffer(
-    MemoryBufferRef Object, LLVMContext &Context, StringRef FunctionName) {
+    MemoryBufferRef Object, DiagnosticHandlerFunction DiagnosticHandler,
+    StringRef FunctionName) {
   sys::fs::file_magic Type = sys::fs::identify_magic(Object.getBuffer());
   switch (Type) {
   case sys::fs::file_magic::bitcode: {
-    return readFunctionSummary(Object, Context, nullptr, FunctionName,
+    return readFunctionSummary(Object, DiagnosticHandler, FunctionName,
                                std::move(Index));
   }
   default: