diff options
Diffstat (limited to 'llvm/lib/IRReader/IRReader.cpp')
-rw-r--r-- | llvm/lib/IRReader/IRReader.cpp | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/llvm/lib/IRReader/IRReader.cpp b/llvm/lib/IRReader/IRReader.cpp index 7ca6c2fca52a..cb33e40be61b 100644 --- a/llvm/lib/IRReader/IRReader.cpp +++ b/llvm/lib/IRReader/IRReader.cpp @@ -67,15 +67,14 @@ std::unique_ptr<Module> llvm::getLazyIRFileModule(StringRef Filename, std::unique_ptr<Module> llvm::parseIR(MemoryBufferRef Buffer, SMDiagnostic &Err, LLVMContext &Context, - bool UpgradeDebugInfo, - StringRef DataLayoutString) { + DataLayoutCallbackTy DataLayoutCallback) { NamedRegionTimer T(TimeIRParsingName, TimeIRParsingDescription, TimeIRParsingGroupName, TimeIRParsingGroupDescription, TimePassesIsEnabled); if (isBitcode((const unsigned char *)Buffer.getBufferStart(), (const unsigned char *)Buffer.getBufferEnd())) { Expected<std::unique_ptr<Module>> ModuleOrErr = - parseBitcodeFile(Buffer, Context); + parseBitcodeFile(Buffer, Context, DataLayoutCallback); if (Error E = ModuleOrErr.takeError()) { handleAllErrors(std::move(E), [&](ErrorInfoBase &EIB) { Err = SMDiagnostic(Buffer.getBufferIdentifier(), SourceMgr::DK_Error, @@ -83,19 +82,15 @@ std::unique_ptr<Module> llvm::parseIR(MemoryBufferRef Buffer, SMDiagnostic &Err, }); return nullptr; } - if (!DataLayoutString.empty()) - ModuleOrErr.get()->setDataLayout(DataLayoutString); return std::move(ModuleOrErr.get()); } - return parseAssembly(Buffer, Err, Context, nullptr, UpgradeDebugInfo, - DataLayoutString); + return parseAssembly(Buffer, Err, Context, nullptr, DataLayoutCallback); } -std::unique_ptr<Module> llvm::parseIRFile(StringRef Filename, SMDiagnostic &Err, - LLVMContext &Context, - bool UpgradeDebugInfo, - StringRef DataLayoutString) { +std::unique_ptr<Module> +llvm::parseIRFile(StringRef Filename, SMDiagnostic &Err, LLVMContext &Context, + DataLayoutCallbackTy DataLayoutCallback) { ErrorOr<std::unique_ptr<MemoryBuffer>> FileOrErr = MemoryBuffer::getFileOrSTDIN(Filename); if (std::error_code EC = FileOrErr.getError()) { @@ -105,7 +100,7 @@ std::unique_ptr<Module> llvm::parseIRFile(StringRef Filename, SMDiagnostic &Err, } return parseIR(FileOrErr.get()->getMemBufferRef(), Err, Context, - UpgradeDebugInfo, DataLayoutString); + DataLayoutCallback); } //===----------------------------------------------------------------------===// |