diff --git a/utils/TableGen/CodeGenTarget.cpp b/utils/TableGen/CodeGenTarget.cpp
index 4987aeb..93e1856 100644
--- a/utils/TableGen/CodeGenTarget.cpp
+++ b/utils/TableGen/CodeGenTarget.cpp
@@ -16,22 +16,27 @@
   return (MVT::ValueType)Rec->getValueAsInt("Value");
 }
 
-std::ostream &operator<<(std::ostream &OS, MVT::ValueType T) {
+std::string getName(MVT::ValueType T) {
   switch (T) {
-  case MVT::Other: return OS << "UNKNOWN";
-  case MVT::i1:    return OS << "i1";
-  case MVT::i8:    return OS << "i8";
-  case MVT::i16:   return OS << "i16";
-  case MVT::i32:   return OS << "i32";
-  case MVT::i64:   return OS << "i64";
-  case MVT::i128:  return OS << "i128";
-  case MVT::f32:   return OS << "f32";
-  case MVT::f64:   return OS << "f64";
-  case MVT::f80:   return OS << "f80";
-  case MVT::f128:  return OS << "f128";
-  case MVT::isVoid:return OS << "void";
+  case MVT::Other: return "UNKNOWN";
+  case MVT::i1:    return "i1";
+  case MVT::i8:    return "i8";
+  case MVT::i16:   return "i16";
+  case MVT::i32:   return "i32";
+  case MVT::i64:   return "i64";
+  case MVT::i128:  return "i128";
+  case MVT::f32:   return "f32";
+  case MVT::f64:   return "f64";
+  case MVT::f80:   return "f80";
+  case MVT::f128:  return "f128";
+  case MVT::isVoid:return "void";
+  default: assert(0 && "ILLEGAL VALUE TYPE!"); return "";
   }
-  return OS;
+}
+
+
+std::ostream &operator<<(std::ostream &OS, MVT::ValueType T) {
+  return OS << getName(T);
 }
 
 
diff --git a/utils/TableGen/CodeGenTarget.h b/utils/TableGen/CodeGenTarget.h
index b371c09..ebae8dc 100644
--- a/utils/TableGen/CodeGenTarget.h
+++ b/utils/TableGen/CodeGenTarget.h
@@ -21,7 +21,7 @@
 MVT::ValueType getValueType(Record *Rec);
 
 std::ostream &operator<<(std::ostream &OS, MVT::ValueType T);
-
+std::string getName(MVT::ValueType T);
 
 
 /// CodeGenTarget - This class corresponds to the Target class in the .td files.
diff --git a/utils/TableGen/CodeGenWrappers.cpp b/utils/TableGen/CodeGenWrappers.cpp
index 4987aeb..93e1856 100644
--- a/utils/TableGen/CodeGenWrappers.cpp
+++ b/utils/TableGen/CodeGenWrappers.cpp
@@ -16,22 +16,27 @@
   return (MVT::ValueType)Rec->getValueAsInt("Value");
 }
 
-std::ostream &operator<<(std::ostream &OS, MVT::ValueType T) {
+std::string getName(MVT::ValueType T) {
   switch (T) {
-  case MVT::Other: return OS << "UNKNOWN";
-  case MVT::i1:    return OS << "i1";
-  case MVT::i8:    return OS << "i8";
-  case MVT::i16:   return OS << "i16";
-  case MVT::i32:   return OS << "i32";
-  case MVT::i64:   return OS << "i64";
-  case MVT::i128:  return OS << "i128";
-  case MVT::f32:   return OS << "f32";
-  case MVT::f64:   return OS << "f64";
-  case MVT::f80:   return OS << "f80";
-  case MVT::f128:  return OS << "f128";
-  case MVT::isVoid:return OS << "void";
+  case MVT::Other: return "UNKNOWN";
+  case MVT::i1:    return "i1";
+  case MVT::i8:    return "i8";
+  case MVT::i16:   return "i16";
+  case MVT::i32:   return "i32";
+  case MVT::i64:   return "i64";
+  case MVT::i128:  return "i128";
+  case MVT::f32:   return "f32";
+  case MVT::f64:   return "f64";
+  case MVT::f80:   return "f80";
+  case MVT::f128:  return "f128";
+  case MVT::isVoid:return "void";
+  default: assert(0 && "ILLEGAL VALUE TYPE!"); return "";
   }
-  return OS;
+}
+
+
+std::ostream &operator<<(std::ostream &OS, MVT::ValueType T) {
+  return OS << getName(T);
 }
 
 
diff --git a/utils/TableGen/CodeGenWrappers.h b/utils/TableGen/CodeGenWrappers.h
index b371c09..ebae8dc 100644
--- a/utils/TableGen/CodeGenWrappers.h
+++ b/utils/TableGen/CodeGenWrappers.h
@@ -21,7 +21,7 @@
 MVT::ValueType getValueType(Record *Rec);
 
 std::ostream &operator<<(std::ostream &OS, MVT::ValueType T);
-
+std::string getName(MVT::ValueType T);
 
 
 /// CodeGenTarget - This class corresponds to the Target class in the .td files.
