Add a new home for TargetLowering member functions.
authorReid Spencer <rspencer@reidspencer.com>
Fri, 12 Jan 2007 23:18:18 +0000 (23:18 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Fri, 12 Jan 2007 23:18:18 +0000 (23:18 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33152 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/TargetLowering.cpp [new file with mode: 0644]

diff --git a/lib/Target/TargetLowering.cpp b/lib/Target/TargetLowering.cpp
new file mode 100644 (file)
index 0000000..ac6844a
--- /dev/null
@@ -0,0 +1,40 @@
+//===-- TargetLowering.cpp - Asm Info --------------------------------------==//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file was developed by Reid Spencer  and is distributed under the 
+// University of Illinois Open Source License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file implements methods of the TargetLowering class.
+//
+//===----------------------------------------------------------------------===//
+//
+
+#include "llvm/Target/TargetLowering.h"
+#include "llvm/DerivedTypes.h"
+#include "llvm/CodeGen/ValueTypes.h"
+
+using namespace llvm;
+
+MVT::ValueType TargetLowering::getValueType(const Type *Ty) const {
+  switch (Ty->getTypeID()) {
+  default: assert(0 && "Unknown type!");
+  case Type::VoidTyID:    return MVT::isVoid;
+  case Type::IntegerTyID:
+    switch (cast<IntegerType>(Ty)->getBitWidth()) {
+      default: assert(0 && "Invalid width for value type");
+      case 1:    return MVT::i1;
+      case 8:    return MVT::i8;
+      case 16:   return MVT::i16;
+      case 32:   return MVT::i32;
+      case 64:   return MVT::i64;
+    }
+    break;
+  case Type::FloatTyID:   return MVT::f32;
+  case Type::DoubleTyID:  return MVT::f64;
+  case Type::PointerTyID: return PointerTy;
+  case Type::PackedTyID:  return MVT::Vector;
+  }
+}