//===-- ReaderInternals.h - Definitions internal to the reader --*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file was developed by the LLVM research group and is distributed under // the University of Illinois Open Source License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // This header file defines various stuff that is used by the bytecode reader. // //===----------------------------------------------------------------------===// #ifndef ANALYZER_INTERNALS_H #define ANALYZER_INTERNALS_H #include "ReaderPrimitives.h" #include "Parser.h" #include "llvm/Bytecode/Analyzer.h" #include "llvm/Constants.h" #include "llvm/DerivedTypes.h" // Enable to trace to figure out what the heck is going on when parsing fails //#define TRACE_LEVEL 10 //#define DEBUG_OUTPUT #if TRACE_LEVEL // ByteCodeReading_TRACEr #define BCR_TRACE(n, X) \ if (n < TRACE_LEVEL) std::cerr << std::string(n*2, ' ') << X #else #define BCR_TRACE(n, X) #endif namespace llvm { inline void AbstractBytecodeParser::readBlock(const unsigned char *&Buf, const unsigned char *EndBuf, unsigned &Type, unsigned &Size) { Type = read(Buf, EndBuf); Size = read(Buf, EndBuf); } class BytecodeAnalyzer { BytecodeAnalyzer(const BytecodeAnalyzer &); // DO NOT IMPLEMENT void operator=(const BytecodeAnalyzer &); // DO NOT IMPLEMENT public: BytecodeAnalyzer() { } ~BytecodeAnalyzer() { } void AnalyzeBytecode( const unsigned char *Buf, unsigned Length, BytecodeAnalysis& bca, const std::string &ModuleID ); void DumpBytecode( const unsigned char *Buf, unsigned Length, BytecodeAnalysis& bca, const std::string &ModuleID ); void dump() const { std::cerr << "BytecodeParser instance!\n"; } private: BytecodeAnalysis TheAnalysis; }; } // End llvm namespace #endif // vim: sw=2