Use isSingleValueType instead of isFirstClassType to
exclude struct and array types.
llvm-svn: 51456
diff --git a/llvm/lib/Transforms/IPO/StructRetPromotion.cpp b/llvm/lib/Transforms/IPO/StructRetPromotion.cpp
index 4f4f574..f857dce 100644
--- a/llvm/lib/Transforms/IPO/StructRetPromotion.cpp
+++ b/llvm/lib/Transforms/IPO/StructRetPromotion.cpp
@@ -339,7 +339,7 @@
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;