From 354f520fbcb0a410a56a3f543640f434cb2d1fa2 Mon Sep 17 00:00:00 2001 From: Mehdi Amini Date: Thu, 19 Nov 2015 05:52:29 +0000 Subject: Do not require a Context to extract the FunctionIndex from Bitcode (NFC) The LLVMContext was only used for Diagnostic. Pass a DiagnosticHandler instead. Differential Revision: http://reviews.llvm.org/D14794 From: Mehdi Amini llvm-svn: 253540 --- llvm/lib/Object/FunctionIndexObjectFile.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'llvm/lib/Object/FunctionIndexObjectFile.cpp') diff --git a/llvm/lib/Object/FunctionIndexObjectFile.cpp b/llvm/lib/Object/FunctionIndexObjectFile.cpp index ee65990c528..f4b2b5562a3 100644 --- a/llvm/lib/Object/FunctionIndexObjectFile.cpp +++ b/llvm/lib/Object/FunctionIndexObjectFile.cpp @@ -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 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> -FunctionIndexObjectFile::create(MemoryBufferRef Object, LLVMContext &Context, +FunctionIndexObjectFile::create(MemoryBufferRef Object, + DiagnosticHandlerFunction DiagnosticHandler, const Module *ExportingModule, bool IsLazy) { std::unique_ptr Index; @@ -93,7 +94,7 @@ FunctionIndexObjectFile::create(MemoryBufferRef Object, LLVMContext &Context, return BCOrErr.getError(); ErrorOr> 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: -- cgit v1.2.3