From: Chris Lattner Date: Tue, 28 Dec 2010 18:53:48 +0000 (+0000) Subject: simplify this, isBytewiseValue handles the extra check. We still X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=95ae676bc89b4cb9166576b74f1220ab5b0ff0ad;p=oota-llvm.git simplify this, isBytewiseValue handles the extra check. We still check for "multiple of a byte" in size to make it clear that the >> 3 below is safe. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122604 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Transforms/Scalar/LoopIdiomRecognize.cpp b/lib/Transforms/Scalar/LoopIdiomRecognize.cpp index 7565b705820..2b6723f0caf 100644 --- a/lib/Transforms/Scalar/LoopIdiomRecognize.cpp +++ b/lib/Transforms/Scalar/LoopIdiomRecognize.cpp @@ -164,12 +164,9 @@ bool LoopIdiomRecognize::processLoopStore(StoreInst *SI, const SCEV *BECount) { Value *StoredVal = SI->getValueOperand(); Value *StorePtr = SI->getPointerOperand(); - // Check to see if the store updates all bits in memory. We don't want to - // process things like a store of i3. We also require that the store be a - // multiple of a byte. + // Reject stores that are so large that they overflow an unsigned. uint64_t SizeInBits = TD->getTypeSizeInBits(StoredVal->getType()); - if ((SizeInBits & 7) || (SizeInBits >> 32) != 0 || - SizeInBits != TD->getTypeStoreSizeInBits(StoredVal->getType())) + if ((SizeInBits & 7) || (SizeInBits >> 32) != 0) return false; // See if the pointer expression is an AddRec like {base,+,1} on the current