Author: johannes Date: Fri Nov 16 20:48:01 2007 New Revision: 44202 URL: http://llvm.org/viewvc/llvm-project?rev=44202&view=rev Log: Remove indeterminism from a loop. We think this will fix an occasional nonrepeatable bootstrap failure we've been seeing on Darwin.
Modified: llvm/trunk/lib/Transforms/Scalar/LoopStrengthReduce.cpp Modified: llvm/trunk/lib/Transforms/Scalar/LoopStrengthReduce.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/LoopStrengthReduce.cpp?rev=44202&r1=44201&r2=44202&view=diff ============================================================================== --- llvm/trunk/lib/Transforms/Scalar/LoopStrengthReduce.cpp (original) +++ llvm/trunk/lib/Transforms/Scalar/LoopStrengthReduce.cpp Fri Nov 16 20:48:01 2007 @@ -1028,8 +1028,12 @@ const std::vector<BasedUser>& UsersToProcess) { if (SCEVConstant *SC = dyn_cast<SCEVConstant>(Stride)) { int64_t SInt = SC->getValue()->getSExtValue(); - for (std::map<SCEVHandle, IVsOfOneStride>::iterator SI= IVsByStride.begin(), - SE = IVsByStride.end(); SI != SE; ++SI) { + for (unsigned NewStride = 0, e = StrideOrder.size(); NewStride != e; + ++NewStride) { + std::map<SCEVHandle, IVsOfOneStride>::iterator SI = + IVsByStride.find(StrideOrder[NewStride]); + if (SI == IVsByStride.end()) + continue; int64_t SSInt = cast<SCEVConstant>(SI->first)->getValue()->getSExtValue(); if (SI->first != Stride && (unsigned(abs(SInt)) < SSInt || (SInt % SSInt) != 0)) _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits