From: Chris Lattner Date: Sun, 11 Jan 2009 20:23:52 +0000 (+0000) Subject: do not generated GEPs into vectors where they don't already exist. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=1c412d9ce48ef35f9ba516124e783384dcf58f08;p=oota-llvm.git do not generated GEPs into vectors where they don't already exist. We should treat vectors as atomic types, not like arrays. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62046 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Transforms/Scalar/InstructionCombining.cpp b/lib/Transforms/Scalar/InstructionCombining.cpp index fd15f2e1ca8..b6604a930d6 100644 --- a/lib/Transforms/Scalar/InstructionCombining.cpp +++ b/lib/Transforms/Scalar/InstructionCombining.cpp @@ -7739,13 +7739,12 @@ static bool FindElementAtOffset(const Type *Ty, int64_t Offset, Offset -= SL->getElementOffset(Elt); Ty = STy->getElementType(Elt); - } else if (isa(Ty) || isa(Ty)) { - const SequentialType *STy = cast(Ty); - uint64_t EltSize = TD->getABITypeSize(STy->getElementType()); + } else if (const ArrayType *AT = dyn_cast(Ty)) { + uint64_t EltSize = TD->getABITypeSize(AT->getElementType()); assert(EltSize && "Cannot index into a zero-sized array"); NewIndices.push_back(ConstantInt::get(IntPtrTy,Offset/EltSize)); Offset %= EltSize; - Ty = STy->getElementType(); + Ty = AT->getElementType(); } else { // Otherwise, we can't index into the middle of this atomic type, bail. return false;