mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-11 13:44:28 +00:00
Use isSingleValueType instead of isFirstClassType to
exclude struct and array types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51456 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
5bbaf01b84
commit
31e5bdccf2
@ -339,7 +339,7 @@ bool SRETPromotion::nestedStructType(const StructType *STy) {
|
|||||||
unsigned Num = STy->getNumElements();
|
unsigned Num = STy->getNumElements();
|
||||||
for (unsigned i = 0; i < Num; i++) {
|
for (unsigned i = 0; i < Num; i++) {
|
||||||
const Type *Ty = STy->getElementType(i);
|
const Type *Ty = STy->getElementType(i);
|
||||||
if (!Ty->isFirstClassType() && Ty != Type::VoidTy)
|
if (!Ty->isSingleValueType() && Ty != Type::VoidTy)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -643,7 +643,7 @@ void SROA::RewriteBitCastUserOfAlloca(Instruction *BCInst, AllocationInst *AI,
|
|||||||
const Type *EltTy =cast<PointerType>(EltPtr->getType())->getElementType();
|
const Type *EltTy =cast<PointerType>(EltPtr->getType())->getElementType();
|
||||||
|
|
||||||
// If we got down to a scalar, insert a load or store as appropriate.
|
// 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)) {
|
if (isa<MemCpyInst>(MI) || isa<MemMoveInst>(MI)) {
|
||||||
Value *Elt = new LoadInst(SROADest ? OtherElt : EltPtr, "tmp",
|
Value *Elt = new LoadInst(SROADest ? OtherElt : EltPtr, "tmp",
|
||||||
MI);
|
MI);
|
||||||
|
Loading…
Reference in New Issue
Block a user