12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- #pragma once
- #ifdef __GNUC__
- #pragma GCC diagnostic push
- #pragma GCC diagnostic ignored "-Wunused-parameter"
- #endif
- //===---- 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/STLExtras.h"
- #include "llvm/ADT/StringRef.h"
- #include <memory>
- namespace llvm {
- class MemoryBuffer;
- class MemoryBufferRef;
- class Module;
- class SMDiagnostic;
- class LLVMContext;
- typedef llvm::function_ref<Optional<std::string>(StringRef)>
- DataLayoutCallbackTy;
- /// 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,
- DataLayoutCallbackTy DataLayoutCallback = [](StringRef) { return None; });
- /// 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,
- DataLayoutCallbackTy DataLayoutCallback = [](StringRef) { return None; });
- }
- #endif
- #ifdef __GNUC__
- #pragma GCC diagnostic pop
- #endif
|