Use isSingleValueType instead of isFirstClassType to
authorDan Gohman <gohman@apple.com>
Fri, 23 May 2008 00:12:03 +0000 (00:12 +0000)
committerDan Gohman <gohman@apple.com>
Fri, 23 May 2008 00:12:03 +0000 (00:12 +0000)
exclude struct and array types.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51456 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/IPO/StructRetPromotion.cpp
lib/Transforms/Scalar/ScalarReplAggregates.cpp

index 4f4f5748ebdd0ea165237e3739f13140e3afbfd9..f857dce669ca6393e6ca0dfffec1265382b4be59 100644 (file)
@@ -339,7 +339,7 @@ bool SRETPromotion::nestedStructType(const StructType *STy) {
   unsigned Num = STy->getNumElements();
   for (unsigned i = 0; i < Num; i++) {
     const Type *Ty = STy->getElementType(i);
-    if (!Ty->isFirstClassType() && Ty != Type::VoidTy)
+    if (!Ty->isSingleValueType() && Ty != Type::VoidTy)
       return true;
   }
   return false;
index 7102b17d25e21cb485f3e0eab412d4d59ec6d091..ee80104f1087ab6627c8db8541984afdd74c016b 100644 (file)
@@ -643,7 +643,7 @@ void SROA::RewriteBitCastUserOfAlloca(Instruction *BCInst, AllocationInst *AI,
       const Type *EltTy =cast<PointerType>(EltPtr->getType())->getElementType();
       
       // If we got down to a scalar, insert a load or store as appropriate.
-      if (EltTy->isFirstClassType()) {
+      if (EltTy->isSingleValueType()) {
         if (isa<MemCpyInst>(MI) || isa<MemMoveInst>(MI)) {
           Value *Elt = new LoadInst(SROADest ? OtherElt : EltPtr, "tmp",
                                     MI);