From 6ec11d4eb00fbf90df12a1b8ef94af6178533737 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Tue, 18 Sep 2001 17:03:14 +0000 Subject: [PATCH] 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 --- include/llvm/Assembly/Writer.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/include/llvm/Assembly/Writer.h b/include/llvm/Assembly/Writer.h index 6ce3b92681e..76c71a52eb8 100644 --- a/include/llvm/Assembly/Writer.h +++ b/include/llvm/Assembly/Writer.h @@ -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 << ""; + } + return o; +} + #endif -- 2.34.1