diff options
Diffstat (limited to 'llvm/lib/Transforms')
| -rw-r--r-- | llvm/lib/Transforms/Scalar/IndVarSimplify.cpp | 6 | 
1 files changed, 4 insertions, 2 deletions
| diff --git a/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp b/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp index f9fc698a4a9..41e22b4a212 100644 --- a/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp +++ b/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp @@ -2688,10 +2688,12 @@ bool IndVarSimplify::optimizeLoopExits(Loop *L) {        continue;      } -    // If we end up with a pointer exit count, bail. +    // If we end up with a pointer exit count, bail.  Note that we can end up +    // with a pointer exit count for one exiting block, and not for another in +    // the same loop.      if (!ExitCount->getType()->isIntegerTy() ||          !MaxExitCount->getType()->isIntegerTy()) -      return false; +      continue;      Type *WiderType =        SE->getWiderType(MaxExitCount->getType(), ExitCount->getType()); | 

