diff options
author | Reid Spencer <rspencer@reidspencer.com> | 2004-06-29 23:21:53 +0000 |
---|---|---|
committer | Reid Spencer <rspencer@reidspencer.com> | 2004-06-29 23:21:53 +0000 |
commit | cc1091e66b0b4be95479ed0575950c466ca180b6 (patch) | |
tree | ef4be9639d43b1458c523f71ada385947005913b /lib/Bytecode/Analyzer/Dumper.cpp | |
parent | 46bd33f336d51a92caea52639eeb8779f9944d3a (diff) |
Analyzer moved to ../Reader directory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14491 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Bytecode/Analyzer/Dumper.cpp')
-rw-r--r-- | lib/Bytecode/Analyzer/Dumper.cpp | 274 |
1 files changed, 0 insertions, 274 deletions
diff --git a/lib/Bytecode/Analyzer/Dumper.cpp b/lib/Bytecode/Analyzer/Dumper.cpp deleted file mode 100644 index 280a12ba73..0000000000 --- a/lib/Bytecode/Analyzer/Dumper.cpp +++ /dev/null @@ -1,274 +0,0 @@ -//===-- BytecodeDumper.cpp - Parsing Handler --------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file was developed by Reid Spencer and is distributed under the -// University of Illinois Open Source License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// This header file defines the BytecodeDumper class that gets called by the -// AbstractBytecodeParser when parsing events occur. It merely dumps the -// information presented to it from the parser. -// -//===----------------------------------------------------------------------===// - -#include "AnalyzerInternals.h" -#include "llvm/Constant.h" -#include "llvm/Constants.h" -#include "llvm/DerivedTypes.h" -#include "llvm/Instruction.h" -#include "llvm/Type.h" - -using namespace llvm; - -namespace { - -class BytecodeDumper : public llvm::BytecodeHandler { -public: - - virtual bool handleError(const std::string& str ) - { - std::cout << "ERROR: " << str << "\n"; - return true; - } - - virtual void handleStart() - { - std::cout << "Bytecode {\n"; - } - - virtual void handleFinish() - { - std::cout << "} End Bytecode\n"; - } - - virtual void handleModuleBegin(const std::string& id) - { - std::cout << " Module " << id << " {\n"; - } - - virtual void handleModuleEnd(const std::string& id) - { - std::cout << " } End Module " << id << "\n"; - } - - virtual void handleVersionInfo( - unsigned char RevisionNum, ///< Byte code revision number - Module::Endianness Endianness, ///< Endianness indicator - Module::PointerSize PointerSize ///< PointerSize indicator - ) - { - std::cout << " RevisionNum: " << int(RevisionNum) - << " Endianness: " << Endianness - << " PointerSize: " << PointerSize << "\n"; - } - - virtual void handleModuleGlobalsBegin() - { - std::cout << " BLOCK: ModuleGlobalInfo {\n"; - } - - virtual void handleGlobalVariable( - const Type* ElemType, ///< The type of the global variable - bool isConstant, ///< Whether the GV is constant or not - GlobalValue::LinkageTypes Linkage ///< The linkage type of the GV - ) - { - std::cout << " GV: Uninitialized, " - << ( isConstant? "Constant, " : "Variable, ") - << " Linkage=" << Linkage << " Type=" - << ElemType->getDescription() << "\n"; - } - - virtual void handleInitializedGV( - const Type* ElemType, ///< The type of the global variable - bool isConstant, ///< Whether the GV is constant or not - GlobalValue::LinkageTypes Linkage,///< The linkage type of the GV - unsigned initSlot ///< Slot number of GV's initializer - ) - { - std::cout << " GV: Initialized, " - << ( isConstant? "Constant, " : "Variable, ") - << " Linkage=" << Linkage << " Type=" - << ElemType->getDescription() - << " InitializerSlot=" << initSlot << "\n"; - } - - virtual void handleType( const Type* Ty ) { - std::cout << " Type: " << Ty->getDescription() << "\n"; - } - - virtual void handleFunctionDeclaration( - Function* Func, - const FunctionType* FuncType) { - std::cout << " Function: " << FuncType->getDescription() << "\n"; - } - - virtual void handleModuleGlobalsEnd() { - std::cout << " } END BLOCK: ModuleGlobalInfo\n"; - } - - virtual void handleCompactionTableBegin() { - std::cout << " BLOCK: CompactionTable {\n"; - } - - virtual void handleCompactionTablePlane( unsigned Ty, unsigned NumEntries ) { - std::cout << " Plane: Ty=" << Ty << " Size=" << NumEntries << "\n"; - } - - virtual void handleCompactionTableType( - unsigned i, - unsigned TypSlot, - const Type* Ty) { - std::cout << " Type: " << i << " Slot:" << TypSlot - << " is " << Ty->getDescription() << "\n"; - } - - virtual void handleCompactionTableValue( - unsigned i, - unsigned ValSlot, - const Type* Ty ) { - std::cout << " Value: " << i << " Slot:" << ValSlot - << " is " << Ty->getDescription() << "\n"; - } - - virtual void handleCompactionTableEnd() { - std::cout << " } END BLOCK: CompactionTable\n"; - } - - virtual void handleSymbolTableBegin() { - std::cout << " BLOCK: SymbolTable {\n"; - } - - virtual void handleSymbolTablePlane( - unsigned Ty, - unsigned NumEntries, - const Type* Typ) { - std::cout << " Plane: Ty=" << Ty << " Size=" << NumEntries - << " Type: " << Typ->getDescription() << "\n"; - } - - virtual void handleSymbolTableType( - unsigned i, - unsigned slot, - const std::string& name ) { - std::cout << " Type " << i << " Slot=" << slot - << " Name: " << name << "\n"; - } - - virtual void handleSymbolTableValue( - unsigned i, - unsigned slot, - const std::string& name ) { - std::cout << " Value " << i << " Slot=" << slot - << " Name: " << name << "\n"; - } - - virtual void handleSymbolTableEnd() { - std::cout << " } END BLOCK: SymbolTable\n"; - } - - virtual void handleFunctionBegin( - const Type* FType, GlobalValue::LinkageTypes linkage ) { - std::cout << "BLOCK: Function {\n"; - std::cout << " Linkage: " << linkage << "\n"; - std::cout << " Type: " << FType->getDescription() << "\n"; - } - - virtual void handleFunctionEnd( const Type* FType) { - std::cout << "} END BLOCK: Function\n"; - } - - virtual void handleBasicBlockBegin( unsigned blocknum) { - std::cout << " BLOCK: BasicBlock #" << blocknum << "{\n"; - } - - virtual bool handleInstruction( - unsigned Opcode, - const Type* iType, - std::vector<unsigned>& Operands, - unsigned Size) { - std::cout << " INST: OpCode=" - << Instruction::getOpcodeName(Opcode) << " Type=" - << iType->getDescription() << "\n"; - for ( unsigned i = 0; i < Operands.size(); ++i ) - std::cout << " Op#" << i << " Slot=" << Operands[i] << "\n"; - - return Instruction::isTerminator(Opcode); - } - - virtual void handleBasicBlockEnd(unsigned blocknum) { - std::cout << " } END BLOCK: BasicBlock #" << blocknum << "{\n"; - } - - virtual void handleGlobalConstantsBegin() { - std::cout << " BLOCK: GlobalConstants {\n"; - } - - virtual void handleConstantExpression( - unsigned Opcode, - const Type* Typ, - std::vector<std::pair<const Type*,unsigned> > ArgVec - ) { - std::cout << " EXPR: " << Instruction::getOpcodeName(Opcode) - << " Type=" << Typ->getDescription() << "\n"; - for ( unsigned i = 0; i < ArgVec.size(); ++i ) - std::cout << " Arg#" << i << " Type=" - << ArgVec[i].first->getDescription() << " Slot=" - << ArgVec[i].second << "\n"; - } - - virtual void handleConstantValue( Constant * c ) { - std::cout << " VALUE: "; - c->print(std::cout); - std::cout << "\n"; - } - - virtual void handleConstantArray(const ArrayType* AT, - std::vector<unsigned>& Elements ) { - std::cout << " ARRAY: " << AT->getDescription() << "\n"; - for ( unsigned i = 0; i < Elements.size(); ++i ) - std::cout << " #" << i << " Slot=" << Elements[i] << "\n"; - } - - virtual void handleConstantStruct( const StructType* ST, - std::vector<unsigned>& Elements) { - std::cout << " STRUC: " << ST->getDescription() << "\n"; - for ( unsigned i = 0; i < Elements.size(); ++i ) - std::cout << " #" << i << " Slot=" << Elements[i] << "\n"; - } - - virtual void handleConstantPointer( - const PointerType* PT, unsigned Slot) - { - std::cout << " POINT: " << PT->getDescription() - << " Slot=" << Slot << "\n"; - } - - virtual void handleConstantString( const ConstantArray* CA ) { - std::cout << " STRNG: "; - CA->print(std::cout); - std::cout << "\n"; - } - - virtual void handleGlobalConstantsEnd() { - std::cout << " } END BLOCK: GlobalConstants\n"; - } -}; - -} - -void BytecodeAnalyzer::DumpBytecode( - const unsigned char *Buf, - unsigned Length, - BytecodeAnalysis& bca, - const std::string &ModuleID) { - BytecodeDumper TheHandler; - AbstractBytecodeParser TheParser(&TheHandler); - TheParser.ParseBytecode( Buf, Length, ModuleID ); - if ( bca.detailedResults ) - TheParser.ParseAllFunctionBodies(); -} - -// vim: sw=2 |