get MachineConstantPool off std::ostream, onto raw_ostream.  It would be
really nice if someone converted MachineFunction::print to raw_ostream.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55268 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/MachineFunction.cpp b/lib/CodeGen/MachineFunction.cpp
index bc5d59e..ae97d89 100644
--- a/lib/CodeGen/MachineFunction.cpp
+++ b/lib/CodeGen/MachineFunction.cpp
@@ -248,7 +248,10 @@
   JumpTableInfo->print(OS);
 
   // Print Constant Pool
-  ConstantPool->print(OS);
+  {
+    raw_os_ostream OSS(OS);
+    ConstantPool->print(OSS);
+  }
   
   const TargetRegisterInfo *TRI = getTarget().getRegisterInfo();
   
@@ -526,12 +529,7 @@
   return Constants.size()-1;
 }
 
-void MachineConstantPoolValue::print(std::ostream &o) const {
-  raw_os_ostream OS(o);
-  print(OS);
-}
-
-void MachineConstantPool::print(std::ostream &OS) const {
+void MachineConstantPool::print(raw_ostream &OS) const {
   for (unsigned i = 0, e = Constants.size(); i != e; ++i) {
     OS << "  <cp #" << i << "> is";
     if (Constants[i].isMachineConstantPoolEntry())
@@ -543,4 +541,4 @@
   }
 }
 
-void MachineConstantPool::dump() const { print(*cerr.stream()); }
+void MachineConstantPool::dump() const { print(errs()); errs().flush(); }
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp
index ea86c0d..34a3101 100644
--- a/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp
+++ b/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp
@@ -23,10 +23,10 @@
 #include "llvm/Target/TargetRegisterInfo.h"
 #include "llvm/Target/TargetMachine.h"
 #include "llvm/Support/GraphWriter.h"
+#include "llvm/Support/raw_ostream.h"
 #include "llvm/ADT/StringExtras.h"
 #include "llvm/Config/config.h"
 #include <fstream>
-#include <sstream>
 using namespace llvm;
 
 namespace llvm {
@@ -138,18 +138,24 @@
     Op += " " + itostr(JTDN->getIndex());
   } else if (const ConstantPoolSDNode *CP = dyn_cast<ConstantPoolSDNode>(Node)){
     if (CP->isMachineConstantPoolEntry()) {
-      std::ostringstream SS;
-      CP->getMachineCPVal()->print(SS);
-      Op += "<" + SS.str() + ">";
+      Op += '<';
+      {
+        raw_string_ostream OSS(Op);
+        OSS << *CP->getMachineCPVal();
+      }
+      Op += '>';
     } else {
       if (ConstantFP *CFP = dyn_cast<ConstantFP>(CP->getConstVal()))
         Op += "<" + ftostr(CFP->getValueAPF()) + ">";
       else if (ConstantInt *CI = dyn_cast<ConstantInt>(CP->getConstVal()))
         Op += "<" + utostr(CI->getZExtValue()) + ">";
       else {
-        std::ostringstream SS;
-        WriteAsOperand(SS, CP->getConstVal(), false);
-        Op += "<" + SS.str() + ">";
+        Op += '<';
+        {
+          raw_string_ostream OSS(Op);
+          WriteAsOperand(OSS, CP->getConstVal(), false);
+        }
+        Op += '>';
       }
     }
   } else if (const BasicBlockSDNode *BBDN = dyn_cast<BasicBlockSDNode>(Node)) {
@@ -188,9 +194,10 @@
       Op += "(unknown)";
     } else if (isa<PseudoSourceValue>(V)) {
       // PseudoSourceValues don't have names, so use their print method.
-      std::ostringstream SS;
-      M->MO.getValue()->print(SS);
-      Op += SS.str();
+      {
+        raw_string_ostream OSS(Op);
+        OSS << *M->MO.getValue();
+      }
     } else {
       Op += V->getName();
     }