assert(0) -> LLVM_UNREACHABLE.
Make llvm_unreachable take an optional string, thus moving the cerr<< out of
line.
LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
NDEBUG builds.

llvm-svn: 75379
diff --git a/llvm/lib/VMCore/PassManager.cpp b/llvm/lib/VMCore/PassManager.cpp
index 0878694..a454b56 100644
--- a/llvm/lib/VMCore/PassManager.cpp
+++ b/llvm/lib/VMCore/PassManager.cpp
@@ -724,7 +724,7 @@
     OtherDT.dump();
     cerr << "----- Invalid -----\n";
     DT->dump();
-    assert(0 && "Invalid dominator info");
+    LLVM_UNREACHABLE("Invalid dominator info");
   }
 
   DominanceFrontier *DF = P.getAnalysisIfAvailable<DominanceFrontier>();
@@ -741,7 +741,7 @@
     OtherDF.dump();
     cerr << "----- Invalid -----\n";
     DF->dump();
-    assert(0 && "Invalid dominator info");
+    LLVM_UNREACHABLE("Invalid dominator info");
   }
 }
 
@@ -883,7 +883,7 @@
       // Keep track of higher level analysis used by this manager.
       HigherLevelAnalysis.push_back(PRequired);
     } else 
-      assert(0 && "Unable to accomodate Required Pass");
+      LLVM_UNREACHABLE("Unable to accomodate Required Pass");
   }
 
   // Set P as P's last user until someone starts using P.
@@ -1106,7 +1106,7 @@
   cerr << "Unable to schedule '" << RequiredPass->getPassName();
   cerr << "' required by '" << P->getPassName() << "'\n";
 #endif
-  assert(0 && "Unable to schedule pass");
+  LLVM_UNREACHABLE("Unable to schedule pass");
 }
 
 // Destructor