Move operator << from Value.h to Assembly/Writer.h

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@626 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2001-09-18 17:03:14 +00:00
parent 20f8d5d093
commit 6ec11d4eb0

View File

@ -89,4 +89,19 @@ inline ostream &operator<<(ostream &o, const Type *T) {
return o << T->getDescription();
}
inline 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 << "<unknown value type: " << I.getValueType() << ">";
}
return o;
}
#endif