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() << ">";
+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;
}