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.

llvm-svn: 122604
This commit is contained in:
Chris Lattner 2010-12-28 18:53:48 +00:00
parent 8e3ff12790
commit 51a906ce92

View File

@ -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