diff --git a/lib/CodeGen/IntrinsicLowering.cpp b/lib/CodeGen/IntrinsicLowering.cpp
index 2df839f..d70a277 100644
--- a/lib/CodeGen/IntrinsicLowering.cpp
+++ b/lib/CodeGen/IntrinsicLowering.cpp
@@ -11,14 +11,13 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "llvm/CodeGen/IntrinsicLowering.h"
 #include "llvm/Constants.h"
 #include "llvm/DerivedTypes.h"
 #include "llvm/Module.h"
 #include "llvm/Instructions.h"
 #include "llvm/Type.h"
-#include <iostream>
-
+#include "llvm/CodeGen/IntrinsicLowering.h"
+#include "llvm/Support/Streams.h"
 using namespace llvm;
 
 template <class ArgIt>
@@ -275,11 +274,11 @@
 
   switch (Callee->getIntrinsicID()) {
   case Intrinsic::not_intrinsic:
-    std::cerr << "Cannot lower a call to a non-intrinsic function '"
+    llvm_cerr << "Cannot lower a call to a non-intrinsic function '"
               << Callee->getName() << "'!\n";
     abort();
   default:
-    std::cerr << "Error: Code generator does not support intrinsic function '"
+    llvm_cerr << "Error: Code generator does not support intrinsic function '"
               << Callee->getName() << "'!\n";
     abort();
 
@@ -357,9 +356,9 @@
   case Intrinsic::stackrestore: {
     static bool Warned = false;
     if (!Warned)
-      std::cerr << "WARNING: this target does not support the llvm.stack"
-       << (Callee->getIntrinsicID() == Intrinsic::stacksave ?
-           "save" : "restore") << " intrinsic.\n";
+      llvm_cerr << "WARNING: this target does not support the llvm.stack"
+                << (Callee->getIntrinsicID() == Intrinsic::stacksave ?
+                    "save" : "restore") << " intrinsic.\n";
     Warned = true;
     if (Callee->getIntrinsicID() == Intrinsic::stacksave)
       CI->replaceAllUsesWith(Constant::getNullValue(CI->getType()));
@@ -368,7 +367,7 @@
     
   case Intrinsic::returnaddress:
   case Intrinsic::frameaddress:
-    std::cerr << "WARNING: this target does not support the llvm."
+    llvm_cerr << "WARNING: this target does not support the llvm."
               << (Callee->getIntrinsicID() == Intrinsic::returnaddress ?
                   "return" : "frame") << "address intrinsic.\n";
     CI->replaceAllUsesWith(ConstantPointerNull::get(
@@ -381,7 +380,7 @@
   case Intrinsic::pcmarker:
     break;    // Simply strip out pcmarker on unsupported architectures
   case Intrinsic::readcyclecounter: {
-    std::cerr << "WARNING: this target does not support the llvm.readcyclecoun"
+    llvm_cerr << "WARNING: this target does not support the llvm.readcyclecoun"
               << "ter intrinsic.  It is being lowered to a constant 0\n";
     CI->replaceAllUsesWith(ConstantInt::get(Type::ULongTy, 0));
     break;
diff --git a/lib/CodeGen/LiveInterval.cpp b/lib/CodeGen/LiveInterval.cpp
index 8e3f888..703e31b 100644
--- a/lib/CodeGen/LiveInterval.cpp
+++ b/lib/CodeGen/LiveInterval.cpp
@@ -18,8 +18,9 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "llvm/CodeGen/LiveInterval.h"
 #include "llvm/ADT/STLExtras.h"
+#include "llvm/CodeGen/LiveInterval.h"
+#include "llvm/Support/Streams.h"
 #include "llvm/Target/MRegisterInfo.h"
 #include <algorithm>
 #include <iostream>
@@ -466,16 +467,15 @@
   }
 }
 
-
 std::ostream& llvm::operator<<(std::ostream& os, const LiveRange &LR) {
   return os << '[' << LR.start << ',' << LR.end << ':' << LR.ValId << ")";
 }
 
 void LiveRange::dump() const {
-  std::cerr << *this << "\n";
+  llvm_cerr << *this << "\n";
 }
 
-void LiveInterval::print(std::ostream &OS, const MRegisterInfo *MRI) const {
+void LiveInterval::print(llvm_ostream &OS, const MRegisterInfo *MRI) const {
   if (MRI && MRegisterInfo::isPhysicalRegister(reg))
     OS << MRI->getName(reg);
   else
@@ -508,5 +508,5 @@
 }
 
 void LiveInterval::dump() const {
-  std::cerr << *this << "\n";
+  llvm_cerr << *this << "\n";
 }
