1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00

handle vectors. Any integers that got here would necessarily be different already.

llvm-svn: 52341
This commit is contained in:
Chris Lattner 2008-06-16 18:27:53 +00:00
parent c24aba4724
commit 1a604edf16

View File

@ -102,12 +102,8 @@ static bool RecursiveResolveTypesI(const PATypeHolder &DestTy,
// Otherwise, resolve the used type used by this derived type...
switch (DestTyT->getTypeID()) {
case Type::IntegerTyID: {
if (cast<IntegerType>(DestTyT)->getBitWidth() !=
cast<IntegerType>(SrcTyT)->getBitWidth())
return true;
return false;
}
default:
return true;
case Type::FunctionTyID: {
if (cast<FunctionType>(DestTyT)->isVarArg() !=
cast<FunctionType>(SrcTyT)->isVarArg() ||
@ -122,7 +118,8 @@ static bool RecursiveResolveTypesI(const PATypeHolder &DestTy,
}
case Type::StructTyID: {
if (getST(DestTy)->getNumContainedTypes() !=
getST(SrcTy)->getNumContainedTypes()) return 1;
getST(SrcTy)->getNumContainedTypes())
return true;
for (unsigned i = 0, e = getST(DestTy)->getNumContainedTypes(); i != e; ++i)
if (RecursiveResolveTypesI(getST(DestTy)->getContainedType(i),
getST(SrcTy)->getContainedType(i), Pointers))
@ -136,6 +133,13 @@ static bool RecursiveResolveTypesI(const PATypeHolder &DestTy,
return RecursiveResolveTypesI(DAT->getElementType(), SAT->getElementType(),
Pointers);
}
case Type::VectorTyID: {
const VectorType *DVT = cast<VectorType>(DestTy.get());
const VectorType *SVT = cast<VectorType>(SrcTy.get());
if (DVT->getNumElements() != SVT->getNumElements()) return true;
return RecursiveResolveTypesI(DVT->getElementType(), SVT->getElementType(),
Pointers);
}
case Type::PointerTyID: {
// If this is a pointer type, check to see if we have already seen it. If
// so, we are in a recursive branch. Cut off the search now. We cannot use
@ -155,7 +159,6 @@ static bool RecursiveResolveTypesI(const PATypeHolder &DestTy,
Pointers.pop_back();
return Result;
}
default: assert(0 && "Unexpected type!"); return true;
}
}