From ef0ab932ef3b07016ffb827cd529d4787d7ed12e Mon Sep 17 00:00:00 2001 From: Dale Johannesen Date: Fri, 28 Sep 2007 00:21:38 +0000 Subject: [PATCH] Don't do SRA for unions with long double fields. Fixes a SWB crash. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42422 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Scalar/ScalarReplAggregates.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/Transforms/Scalar/ScalarReplAggregates.cpp b/lib/Transforms/Scalar/ScalarReplAggregates.cpp index 1092b889277..1d9e402494a 100644 --- a/lib/Transforms/Scalar/ScalarReplAggregates.cpp +++ b/lib/Transforms/Scalar/ScalarReplAggregates.cpp @@ -905,6 +905,9 @@ static bool MergeInType(const Type *In, const Type *&Accum, case Type::PointerTyID: Accum = TD.getIntPtrType(); break; case Type::FloatTyID: Accum = Type::Int32Ty; break; case Type::DoubleTyID: Accum = Type::Int64Ty; break; + case Type::X86_FP80TyID: return true; + case Type::FP128TyID: return true; + case Type::PPC_FP128TyID: return true; default: assert(Accum->isInteger() && "Unknown FP type!"); break; @@ -914,6 +917,9 @@ static bool MergeInType(const Type *In, const Type *&Accum, case Type::PointerTyID: In = TD.getIntPtrType(); break; case Type::FloatTyID: In = Type::Int32Ty; break; case Type::DoubleTyID: In = Type::Int64Ty; break; + case Type::X86_FP80TyID: return true; + case Type::FP128TyID: return true; + case Type::PPC_FP128TyID: return true; default: assert(In->isInteger() && "Unknown FP type!"); break; -- 2.34.1