diff options
author | Patrik Hagglund <patrik.h.hagglund@ericsson.com> | 2012-12-19 15:19:11 +0000 |
---|---|---|
committer | Patrik Hagglund <patrik.h.hagglund@ericsson.com> | 2012-12-19 15:19:11 +0000 |
commit | c698d3a2a40f0909d16cbe857685f0f22cb9ae43 (patch) | |
tree | 01ff056b23a49dfd626a2f24d1a65813ae906463 /lib/VMCore | |
parent | cd7ee1ced017d7a957113df9d6cf855ecbc3797e (diff) | |
download | external_llvm-c698d3a2a40f0909d16cbe857685f0f22cb9ae43.zip external_llvm-c698d3a2a40f0909d16cbe857685f0f22cb9ae43.tar.gz external_llvm-c698d3a2a40f0909d16cbe857685f0f22cb9ae43.tar.bz2 |
Change AsmOperandInfo::ConstraintVT to MVT, instead of EVT.
Accordingly, add MVT::getVT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170550 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/VMCore')
-rw-r--r-- | lib/VMCore/ValueTypes.cpp | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/lib/VMCore/ValueTypes.cpp b/lib/VMCore/ValueTypes.cpp index bbc971c..3c373b1 100644 --- a/lib/VMCore/ValueTypes.cpp +++ b/lib/VMCore/ValueTypes.cpp @@ -219,10 +219,10 @@ Type *EVT::getTypeForEVT(LLVMContext &Context) const { } } -/// getEVT - Return the value type corresponding to the specified type. This -/// returns all pointers as MVT::iPTR. If HandleUnknown is true, unknown types -/// are returned as Other, otherwise they are invalid. -EVT EVT::getEVT(Type *Ty, bool HandleUnknown){ +/// Return the value type corresponding to the specified type. This returns all +/// pointers as MVT::iPTR. If HandleUnknown is true, unknown types are returned +/// as Other, otherwise they are invalid. +MVT MVT::getVT(Type *Ty, bool HandleUnknown){ switch (Ty->getTypeID()) { default: if (HandleUnknown) return MVT(MVT::Other); @@ -230,7 +230,7 @@ EVT EVT::getEVT(Type *Ty, bool HandleUnknown){ case Type::VoidTyID: return MVT::isVoid; case Type::IntegerTyID: - return getIntegerVT(Ty->getContext(), cast<IntegerType>(Ty)->getBitWidth()); + return getIntegerVT(cast<IntegerType>(Ty)->getBitWidth()); case Type::HalfTyID: return MVT(MVT::f16); case Type::FloatTyID: return MVT(MVT::f32); case Type::DoubleTyID: return MVT(MVT::f64); @@ -241,6 +241,23 @@ EVT EVT::getEVT(Type *Ty, bool HandleUnknown){ case Type::PointerTyID: return MVT(MVT::iPTR); case Type::VectorTyID: { VectorType *VTy = cast<VectorType>(Ty); + return getVectorVT( + getVT(VTy->getElementType(), false), VTy->getNumElements()); + } + } +} + +/// getEVT - Return the value type corresponding to the specified type. This +/// returns all pointers as MVT::iPTR. If HandleUnknown is true, unknown types +/// are returned as Other, otherwise they are invalid. +EVT EVT::getEVT(Type *Ty, bool HandleUnknown){ + switch (Ty->getTypeID()) { + default: + return MVT::getVT(Ty, HandleUnknown); + case Type::IntegerTyID: + return getIntegerVT(Ty->getContext(), cast<IntegerType>(Ty)->getBitWidth()); + case Type::VectorTyID: { + VectorType *VTy = cast<VectorType>(Ty); return getVectorVT(Ty->getContext(), getEVT(VTy->getElementType(), false), VTy->getNumElements()); } |