1c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien//===- BitReader_3_0.h - Internal BitcodeReader 3.0 impl --------*- C++ -*-===//
2c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien//
3c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien//                     The LLVM Compiler Infrastructure
4c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien//
5c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien// This file is distributed under the University of Illinois Open Source
6c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien// License. See LICENSE.TXT for details.
7c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien//
8c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien//===----------------------------------------------------------------------===//
9c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien//
10c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien// This header defines the BitcodeReader class.
11c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien//
12c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien//===----------------------------------------------------------------------===//
13c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien
14c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien#ifndef BITREADER_3_0_H
15c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien#define BITREADER_3_0_H
16c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien
17c2074caf075818abb6d3689ad924ca09f4a5ba1fTim Murray#include "llvm/ADT/DenseMap.h"
18c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien#include "llvm/Bitcode/BitstreamReader.h"
19c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien#include "llvm/Bitcode/LLVMBitCodes.h"
20c2074caf075818abb6d3689ad924ca09f4a5ba1fTim Murray#include "llvm/IR/Attributes.h"
21c2074caf075818abb6d3689ad924ca09f4a5ba1fTim Murray#include "llvm/IR/GVMaterializer.h"
22c2074caf075818abb6d3689ad924ca09f4a5ba1fTim Murray#include "llvm/IR/OperandTraits.h"
23c2074caf075818abb6d3689ad924ca09f4a5ba1fTim Murray#include "llvm/IR/Type.h"
24c2074caf075818abb6d3689ad924ca09f4a5ba1fTim Murray#include "llvm/IR/ValueHandle.h"
25c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien#include <string>
26c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien
27c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chiennamespace llvm {
28c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien  class MemoryBuffer;
29c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien  class LLVMContext;
30c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien  class Module;
31c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien} // End llvm namespace
32c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien
33c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chiennamespace llvm_3_0 {
34c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien
35c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chienllvm::Module *ParseBitcodeFile(llvm::MemoryBuffer *Buffer,
36c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien                               llvm::LLVMContext& Context,
37c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien                               std::string *ErrMsg);
38c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien
39c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chienstd::string getBitcodeTargetTriple(llvm::MemoryBuffer *Buffer,
40c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien                                   llvm::LLVMContext& Context,
41c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien                                   std::string *ErrMsg);
42c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien
43c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chienllvm::Module *getLazyBitcodeModule(llvm::MemoryBuffer *Buffer,
44c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien                                   llvm::LLVMContext& Context,
45c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien                                  std::string *ErrMsg);
46c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien} // End llvm_3_0 namespace
47c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien
48c7d67a701663191bcdab2416c11b69fae16d49fbLogan Chien#endif
49