forked from OSchip/llvm-project
Remove special handling for opaque Neon vector types.
Clang does not wrap the vectors in structs anymore so this isn't needed. llvm-svn: 123241
This commit is contained in:
parent
841df11dab
commit
b9fa00e0c2
|
@ -2241,15 +2241,6 @@ ABIArgInfo ARMABIInfo::classifyArgumentType(QualType Ty) const {
|
|||
if (isRecordWithNonTrivialDestructorOrCopyConstructor(Ty))
|
||||
return ABIArgInfo::getIndirect(0, /*ByVal=*/false);
|
||||
|
||||
// NEON vectors are implemented as (theoretically) opaque structures wrapping
|
||||
// the underlying vector type. We trust the backend to pass the underlying
|
||||
// vectors appropriately, so we can unwrap the structs which generally will
|
||||
// lead to much cleaner IR.
|
||||
if (const Type *SeltTy = isSingleElementStruct(Ty, getContext())) {
|
||||
if (SeltTy->isVectorType())
|
||||
return ABIArgInfo::getDirect(CGT.ConvertType(QualType(SeltTy, 0)));
|
||||
}
|
||||
|
||||
// Otherwise, pass by coercing to a structure of the appropriate size.
|
||||
//
|
||||
// FIXME: This is kind of nasty... but there isn't much choice because the ARM
|
||||
|
|
Loading…
Reference in New Issue