Viewing file: IRReader.h (2.79 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
//===---- llvm/IRReader/IRReader.h - Reader for LLVM IR files ---*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This file defines functions for reading LLVM IR. They support both // Bitcode and Assembly, automatically detecting the input format. // //===----------------------------------------------------------------------===//
#ifndef LLVM_IRREADER_IRREADER_H #define LLVM_IRREADER_IRREADER_H
#include "llvm/ADT/StringRef.h" #include "llvm/Bitcode/BitcodeReader.h" #include <memory>
namespace llvm {
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 /// Module. The ShouldLazyLoadMetadata flag is passed down to the bitcode /// reader to optionally enable lazy metadata loading. std::unique_ptr<Module> getLazyIRFileModule(StringRef Filename, SMDiagnostic &Err, LLVMContext &Context, bool ShouldLazyLoadMetadata = false);
/// If the given MemoryBuffer holds a bitcode image, return a Module /// for it. Otherwise, attempt to parse it as LLVM Assembly and return /// a Module for it. /// \param DataLayoutCallback Override datalayout in the llvm assembly. std::unique_ptr<Module> parseIR(MemoryBufferRef Buffer, SMDiagnostic &Err, LLVMContext &Context, ParserCallbacks Callbacks = {});
/// If the given file holds a bitcode image, return a Module for it. /// Otherwise, attempt to parse it as LLVM Assembly and return a Module /// for it. /// \param DataLayoutCallback Override datalayout in the llvm assembly. std::unique_ptr<Module> parseIRFile(StringRef Filename, SMDiagnostic &Err, LLVMContext &Context, ParserCallbacks Callbacks = {}); }
#endif
|