r187652 - Remove rather oddly merged logic from AArch64 commit.

Tim Northover tnorthover at apple.com
Fri Aug 2 04:38:47 PDT 2013


Author: tnorthover
Date: Fri Aug  2 06:38:46 2013
New Revision: 187652

URL: http://llvm.org/viewvc/llvm-project?rev=187652&view=rev
Log:
Remove rather oddly merged logic from AArch64 commit.

We seem to have ended up with both an inlined check of permitted NEON base
types and a call to a function.

Since the outer if was (I believe) strictly weaker than the one in the
function, there's no actual user-visible behaviour change, so no tests.

Modified:
    cfe/trunk/lib/Sema/SemaType.cpp

Modified: cfe/trunk/lib/Sema/SemaType.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaType.cpp?rev=187652&r1=187651&r2=187652&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaType.cpp (original)
+++ cfe/trunk/lib/Sema/SemaType.cpp Fri Aug  2 06:38:46 2013
@@ -4668,29 +4668,15 @@ static void HandleNeonVectorTypeAttr(Qua
     return;
   }
   // Only certain element types are supported for Neon vectors.
-  const BuiltinType* BTy = CurType->getAs<BuiltinType>();
-  if (!BTy ||
-      (VecKind == VectorType::NeonPolyVector &&
-       BTy->getKind() != BuiltinType::SChar &&
-       BTy->getKind() != BuiltinType::Short) ||
-      (BTy->getKind() != BuiltinType::SChar &&
-       BTy->getKind() != BuiltinType::UChar &&
-       BTy->getKind() != BuiltinType::Short &&
-       BTy->getKind() != BuiltinType::UShort &&
-       BTy->getKind() != BuiltinType::Int &&
-       BTy->getKind() != BuiltinType::UInt &&
-       BTy->getKind() != BuiltinType::LongLong &&
-       BTy->getKind() != BuiltinType::ULongLong &&
-       BTy->getKind() != BuiltinType::Float)) {
-    llvm::Triple::ArchType Arch =
+  llvm::Triple::ArchType Arch =
         S.Context.getTargetInfo().getTriple().getArch();
-    if (!isPermittedNeonBaseType(CurType, VecKind,
-                                 Arch == llvm::Triple::aarch64)) {
-      S.Diag(Attr.getLoc(), diag::err_attribute_invalid_vector_type) << CurType;
-      Attr.setInvalid();
-      return;
-    }
+  if (!isPermittedNeonBaseType(CurType, VecKind,
+                               Arch == llvm::Triple::aarch64)) {
+    S.Diag(Attr.getLoc(), diag::err_attribute_invalid_vector_type) << CurType;
+    Attr.setInvalid();
+    return;
   }
+
   // The total size of the vector must be 64 or 128 bits.
   unsigned typeSize = static_cast<unsigned>(S.Context.getTypeSize(CurType));
   unsigned numElts = static_cast<unsigned>(numEltsInt.getZExtValue());





More information about the cfe-commits mailing list