diff --git a/include/llvm/CodeGen/PseudoSourceValue.h b/include/llvm/CodeGen/PseudoSourceValue.h index dccf735ed02..3ad2502fe08 100644 --- a/include/llvm/CodeGen/PseudoSourceValue.h +++ b/include/llvm/CodeGen/PseudoSourceValue.h @@ -28,6 +28,12 @@ namespace llvm { public: PseudoSourceValue(); + /// dump - Support for debugging, callable in GDB: V->dump() + // + virtual void dump() const; + + /// print - Implement operator<< on PseudoSourceValue. + /// virtual void print(raw_ostream &OS) const; /// isConstant - Test whether this PseudoSourceValue has a constant value. diff --git a/lib/CodeGen/PseudoSourceValue.cpp b/lib/CodeGen/PseudoSourceValue.cpp index 5247906c46d..d0ea7069d4b 100644 --- a/lib/CodeGen/PseudoSourceValue.cpp +++ b/lib/CodeGen/PseudoSourceValue.cpp @@ -41,6 +41,10 @@ static const char *const PSVNames[] = { PseudoSourceValue::PseudoSourceValue() : Value(PointerType::getUnqual(Type::Int8Ty), PseudoSourceValueVal) {} +void PseudoSourceValue::dump() const { + print(errs()); errs() << '\n'; errs().flush(); +} + void PseudoSourceValue::print(raw_ostream &OS) const { OS << PSVNames[this - *PSVs]; } diff --git a/lib/VMCore/AsmWriter.cpp b/lib/VMCore/AsmWriter.cpp index 2f6c1cc0f27..41929faed50 100644 --- a/lib/VMCore/AsmWriter.cpp +++ b/lib/VMCore/AsmWriter.cpp @@ -1759,8 +1759,7 @@ void Value::print(raw_ostream &OS, AssemblyAnnotationWriter *AAW) const { } else if (isa(this)) { WriteAsOperand(OS, this, true, 0); } else { - // FIXME: PseudoSourceValue breaks this! - //assert(0 && "Unknown value to print out!"); + assert(0 && "Unknown value to print out!"); } }