BitReader_3_0.h revision 579361346abc6696c805e3904a18178ebce4e4a3
19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project//===- BitReader_3_0.h - Internal BitcodeReader 3.0 impl --------*- C++ -*-===// 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project// 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project// The LLVM Compiler Infrastructure 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project// 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project// This file is distributed under the University of Illinois Open Source 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project// License. See LICENSE.TXT for details. 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project// 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project//===----------------------------------------------------------------------===// 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project// 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project// This header defines the BitcodeReader class. 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project// 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project//===----------------------------------------------------------------------===// 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#ifndef BITREADER_3_0_H 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#define BITREADER_3_0_H 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include "llvm/ADT/DenseMap.h" 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include "llvm/Bitcode/BitstreamReader.h" 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include "llvm/Bitcode/LLVMBitCodes.h" 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include "llvm/IR/Attributes.h" 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include "llvm/IR/GVMaterializer.h" 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include "llvm/IR/OperandTraits.h" 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include "llvm/IR/Type.h" 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include "llvm/IR/ValueHandle.h" 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include "llvm/Support/ErrorOr.h" 268a9b22056b13477f59df934928c00c58b5871c95Joe Onorato#include <string> 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectnamespace llvm { 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project class LLVMContext; 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project class MemoryBuffer; 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project class MemoryBufferRef; 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project class Module; 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} // End llvm namespace 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectnamespace llvm_3_0 { 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /// Read the specified bitcode file, returning the module. 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project llvm::ErrorOr<llvm::Module *> parseBitcodeFile(llvm::MemoryBufferRef Buffer, 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project llvm::LLVMContext &Context); 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /// Read the header of the specified bitcode buffer and extract just the 438a9b22056b13477f59df934928c00c58b5871c95Joe Onorato /// triple information. If successful, this returns a string. On error, this 448a9b22056b13477f59df934928c00c58b5871c95Joe Onorato /// returns "". 458a9b22056b13477f59df934928c00c58b5871c95Joe Onorato std::string getBitcodeTargetTriple(llvm::MemoryBufferRef Buffer, 468a9b22056b13477f59df934928c00c58b5871c95Joe Onorato llvm::LLVMContext &Context); 478a9b22056b13477f59df934928c00c58b5871c95Joe Onorato 488a9b22056b13477f59df934928c00c58b5871c95Joe Onorato /// Read the header of the specified bitcode buffer and prepare for lazy 498a9b22056b13477f59df934928c00c58b5871c95Joe Onorato /// deserialization of function bodies. If successful, this moves Buffer. On 508a9b22056b13477f59df934928c00c58b5871c95Joe Onorato /// error, this *does not* move Buffer. 518a9b22056b13477f59df934928c00c58b5871c95Joe Onorato llvm::ErrorOr<llvm::Module *> getLazyBitcodeModule(std::unique_ptr<llvm::MemoryBuffer> &&Buffer, 528a9b22056b13477f59df934928c00c58b5871c95Joe Onorato llvm::LLVMContext &Context); 538a9b22056b13477f59df934928c00c58b5871c95Joe Onorato} // End llvm_3_0 namespace 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#endif 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project