From: Vikram S. Adve Date: Tue, 18 Sep 2001 12:44:41 +0000 (+0000) Subject: Added debugging support. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=bb6a8c08493199745aa3cf8c7ca5b468b3ec5a8e;p=oota-llvm.git Added debugging support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@605 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/VMCore/Value.cpp b/lib/VMCore/Value.cpp index a41262d0c64..723a71cd195 100644 --- a/lib/VMCore/Value.cpp +++ b/lib/VMCore/Value.cpp @@ -83,6 +83,44 @@ User *Value::use_remove(use_iterator &I) { return i; } +void +Value::dump() const +{ + DebugValue(*this); +} + +ostream& +operator<<(ostream &o, const Value& I) +{ + switch (I.getValueType()) { + case Value::TypeVal: return o << I.castTypeAsserting(); + case Value::ConstantVal: WriteToAssembly((const ConstPoolVal*)&I,o);break; + case Value::MethodArgumentVal: return o << I.getType() << " "<< I.getName(); + case Value::InstructionVal:WriteToAssembly((const Instruction *)&I, o);break; + case Value::BasicBlockVal: WriteToAssembly((const BasicBlock *)&I, o);break; + case Value::MethodVal: WriteToAssembly((const Method *)&I, o);break; + case Value::GlobalVal: WriteToAssembly((const GlobalVariable*)&I,o);break; + case Value::ModuleVal: WriteToAssembly((const Module *)&I,o); break; + default: return o << ""; + } + return o; +} + +void +DebugValue(const Value* V) +{ + if (V) + cerr << *V << endl; + else + cerr << "" << endl; +} + +void +DebugValue(const Value& V) +{ + cerr << V << endl; +} + //===----------------------------------------------------------------------===// // User Class