mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 20:51:52 +01:00
[IRReader] Expose getLazyIRModule
Currently there is no way to lazy-load an in-memory IR module without first writing it to disk. This patch just exposes the existing implementation of getLazyIRModule. This is effectively a revert of rL212364 Differential Revision: https://reviews.llvm.org/D56203 llvm-svn: 353755
This commit is contained in:
parent
27f957a8a8
commit
5bc2a0e513
@ -20,11 +20,22 @@
|
||||
namespace llvm {
|
||||
|
||||
class StringRef;
|
||||
class MemoryBuffer;
|
||||
class MemoryBufferRef;
|
||||
class Module;
|
||||
class SMDiagnostic;
|
||||
class LLVMContext;
|
||||
|
||||
/// If the given MemoryBuffer holds a bitcode image, return a Module
|
||||
/// for it which does lazy deserialization of function bodies. Otherwise,
|
||||
/// attempt to parse it as LLVM Assembly and return a fully populated
|
||||
/// Module. The ShouldLazyLoadMetadata flag is passed down to the bitcode
|
||||
/// reader to optionally enable lazy metadata loading. This takes ownership
|
||||
/// of \p Buffer.
|
||||
std::unique_ptr<Module> getLazyIRModule(std::unique_ptr<MemoryBuffer> Buffer,
|
||||
SMDiagnostic &Err, LLVMContext &Context,
|
||||
bool ShouldLazyLoadMetadata = false);
|
||||
|
||||
/// If the given file holds a bitcode image, return a Module
|
||||
/// for it which does lazy deserialization of function bodies. Otherwise,
|
||||
/// attempt to parse it as LLVM Assembly and return a fully populated
|
||||
|
@ -29,9 +29,9 @@ static const char *const TimeIRParsingGroupDescription = "LLVM IR Parsing";
|
||||
static const char *const TimeIRParsingName = "parse";
|
||||
static const char *const TimeIRParsingDescription = "Parse IR";
|
||||
|
||||
static std::unique_ptr<Module>
|
||||
getLazyIRModule(std::unique_ptr<MemoryBuffer> Buffer, SMDiagnostic &Err,
|
||||
LLVMContext &Context, bool ShouldLazyLoadMetadata) {
|
||||
std::unique_ptr<Module>
|
||||
llvm::getLazyIRModule(std::unique_ptr<MemoryBuffer> Buffer, SMDiagnostic &Err,
|
||||
LLVMContext &Context, bool ShouldLazyLoadMetadata) {
|
||||
if (isBitcode((const unsigned char *)Buffer->getBufferStart(),
|
||||
(const unsigned char *)Buffer->getBufferEnd())) {
|
||||
Expected<std::unique_ptr<Module>> ModuleOrErr = getOwningLazyBitcodeModule(
|
||||
|
Loading…
x
Reference in New Issue
Block a user