Move MVT::getVectorType out of line, it is large and shouldn't be inlined.
authorChris Lattner <sabre@nondot.org>
Wed, 19 Jul 2006 00:40:45 +0000 (00:40 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 19 Jul 2006 00:40:45 +0000 (00:40 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29195 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/CodeGen/ValueTypes.h
lib/VMCore/ValueTypes.cpp

index e754cd529db2384e603c121f23d64ff5ff9105ba..b7a3c9a8e5ef6caec7b88610483abd7cb88412ac 100644 (file)
@@ -120,36 +120,8 @@ namespace MVT {  // MVT = Machine Value Types
   /// NumElements in length, where each element is of type VT.  If there is no
   /// ValueType that represents this vector, a ValueType of Other is returned.
   ///
-  static inline ValueType getVectorType(ValueType VT, unsigned NumElements) {
-    switch (VT) {
-    default: 
-      break;
-    case MVT::i8:
-      if (NumElements == 8)  return MVT::v8i8;
-      if (NumElements == 16) return MVT::v16i8;
-        break;
-    case MVT::i16:
-      if (NumElements == 4)  return MVT::v4i16;
-      if (NumElements == 8)  return MVT::v8i16;
-        break;
-    case MVT::i32:
-      if (NumElements == 2)  return MVT::v2i32;
-      if (NumElements == 4)  return MVT::v4i32;
-        break;
-    case MVT::i64:
-      if (NumElements == 2)  return MVT::v2i64;
-      break;
-    case MVT::f32:
-      if (NumElements == 2)  return MVT::v2f32;
-      if (NumElements == 4)  return MVT::v4f32;
-        break;
-    case MVT::f64:
-      if (NumElements == 2)  return MVT::v2f64;
-      break;
-    }
-    return MVT::Other;
-  }
-  
+  ValueType getVectorType(ValueType VT, unsigned NumElements);
+    
   /// MVT::getVectorBaseType - Given a packed vector type, return the type of
   /// each element.
   static inline ValueType getVectorBaseType(ValueType VT) {
index 81e19645b1fcc89f57718d66c732aff7e447d3fb..4cb72b888672acb360670b3da9febdab5e8285ad 100644 (file)
@@ -46,6 +46,40 @@ const char *MVT::getValueTypeString(MVT::ValueType VT) {
   }
 }
 
+/// MVT::getVectorType - Returns the ValueType that represents a vector
+/// NumElements in length, where each element is of type VT.  If there is no
+/// ValueType that represents this vector, a ValueType of Other is returned.
+///
+MVT::ValueType MVT::getVectorType(ValueType VT, unsigned NumElements) {
+  switch (VT) {
+  default: 
+    break;
+  case MVT::i8:
+    if (NumElements == 8)  return MVT::v8i8;
+    if (NumElements == 16) return MVT::v16i8;
+    break;
+  case MVT::i16:
+    if (NumElements == 4)  return MVT::v4i16;
+    if (NumElements == 8)  return MVT::v8i16;
+    break;
+  case MVT::i32:
+    if (NumElements == 2)  return MVT::v2i32;
+    if (NumElements == 4)  return MVT::v4i32;
+    break;
+  case MVT::i64:
+    if (NumElements == 2)  return MVT::v2i64;
+    break;
+  case MVT::f32:
+    if (NumElements == 2)  return MVT::v2f32;
+    if (NumElements == 4)  return MVT::v4f32;
+    break;
+  case MVT::f64:
+    if (NumElements == 2)  return MVT::v2f64;
+    break;
+  }
+  return MVT::Other;
+}
+
 /// MVT::getTypeForValueType - This method returns an LLVM type corresponding
 /// to the specified ValueType.  For integer types, this returns an unsigned
 /// type.  Note that this will abort for types that cannot be represented.