Updated configure script so that it does not configure llvm/project
[oota-llvm.git] / utils / TableGen / CodeGenTarget.cpp
index 4987aeb76c1dde68a27c0acb2c0d8f085b76e2d6..bf641fa27677efcb7610e5f7429a406aaa49c508 100644 (file)
@@ -1,4 +1,11 @@
 //===- CodeGenWrappers.cpp - Code Generation Class Wrappers -----*- C++ -*-===//
+// 
+//                     The LLVM Compiler Infrastructure
+//
+// This file was developed by the LLVM research group and is distributed under
+// the University of Illinois Open Source License. See LICENSE.TXT for details.
+// 
+//===----------------------------------------------------------------------===//
 //
 // These classes wrap target description classes used by the various code
 // generation TableGen backends.  This makes it easier to access the data and
 #include "CodeGenWrappers.h"
 #include "Record.h"
 
+namespace llvm {
+
 /// getValueType - Return the MCV::ValueType that the specified TableGen record
 /// corresponds to.
 MVT::ValueType getValueType(Record *Rec) {
   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::string getEnumName(MVT::ValueType T) {
+  switch (T) {
+  case MVT::Other: return "Other";
+  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 "isVoid";
+  default: assert(0 && "ILLEGAL VALUE TYPE!"); return "";
+  }
+}
+
+
+std::ostream &operator<<(std::ostream &OS, MVT::ValueType T) {
+  return OS << getName(T);
 }
 
 
 
 /// getTarget - Return the current instance of the Target class.
 ///
-CodeGenTarget::CodeGenTarget() {
+CodeGenTarget::CodeGenTarget() : PointerType(MVT::Other) {
   std::vector<Record*> Targets = Records.getAllDerivedDefinitions("Target");
   if (Targets.size() != 1)
     throw std::string("ERROR: Multiple subclasses of Target defined!");
@@ -64,3 +96,5 @@ const std::string &CodeGenTarget::getName() const {
 Record *CodeGenTarget::getInstructionSet() const {
   return TargetRec->getValueAsDef("InstructionSet");
 }
+
+} // End llvm namespace