Improve printing during dumps.
authorVikram S. Adve <vadve@cs.uiuc.edu>
Thu, 25 Apr 2002 04:31:18 +0000 (04:31 +0000)
committerVikram S. Adve <vadve@cs.uiuc.edu>
Thu, 25 Apr 2002 04:31:18 +0000 (04:31 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2311 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/MachineInstr.cpp

index 6a51f978931e84157606add02c794eeb933fa12d..b113c602cf2c44926518dca2c219203eeb5c3950 100644 (file)
@@ -84,6 +84,17 @@ MachineInstr::dump(unsigned int indent) const
   cerr << *this;
 }
 
+static inline std::ostream &OutputValue(std::ostream &os,
+                                        const Value* val)
+{
+  os << "(val ";
+  if (val && val->hasName())
+    return os << val->getName();
+  else
+    return os << (void*) val;              // print address only
+  os << ")";
+}
+
 std::ostream &operator<<(std::ostream& os, const MachineInstr& minstr)
 {
   os << TargetInstrDescriptors[minstr.opCode].opCodeString;
@@ -94,34 +105,17 @@ std::ostream &operator<<(std::ostream& os, const MachineInstr& minstr)
       os << "*";
   }
   
-#undef DEBUG_VAL_OP_ITERATOR
-#ifdef DEBUG_VAL_OP_ITERATOR
-  os << "\n\tValue operands are: ";
-  for (MachineInstr::val_const_op_iterator vo(&minstr); ! vo.done(); ++vo)
-    {
-      const Value* val = *vo;
-      os << val << (vo.isDef()? "(def), " : ", ");
-    }
-#endif
-  
-
-#if 1
   // code for printing implict references
-
   unsigned NumOfImpRefs =  minstr.getNumImplicitRefs();
   if(  NumOfImpRefs > 0 ) {
-       
-    os << "\tImplicit:";
-
+    os << "\tImplicit: ";
     for(unsigned z=0; z < NumOfImpRefs; z++) {
-      os << minstr.getImplicitRef(z);
+      OutputValue(os, minstr.getImplicitRef(z)); 
       if( minstr.implicitRefIsDefined(z)) os << "*";
       os << "\t";
     }
   }
-
-#endif
+  
   return os << "\n";
 }
 
@@ -133,15 +127,9 @@ static inline std::ostream &OutputOperand(std::ostream &os,
     {
     case MachineOperand::MO_CCRegister:
     case MachineOperand::MO_VirtualRegister:
-      val = mop.getVRegValue();
-      os << "(val ";
-      if (val && val->hasName())
-        os << val->getName();
-      else
-        os << val;
-      return os << ")";
+      return OutputValue(os, mop.getVRegValue());
     case MachineOperand::MO_MachineRegister:
-      return os << "("     << mop.getMachineRegNum() << ")";
+      return os << "(" << mop.getMachineRegNum() << ")";
     default:
       assert(0 && "Unknown operand type");
       return os;