Fix a nasty bug that caused us to unroll EXTREMELY large loops due to overflow
authorChris Lattner <sabre@nondot.org>
Thu, 13 May 2004 20:43:31 +0000 (20:43 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 13 May 2004 20:43:31 +0000 (20:43 +0000)
commit82fec4e31da93f17cf95b1bf3f8a0e6d933b4f73
tree6f055103408021aa588cc574afedd9ae99d02d1c
parent488b72bd7fa1f7258f077e0805d767e109376233
Fix a nasty bug that caused us to unroll EXTREMELY large loops due to overflow
in the size calculation.

This is not something you want to see:
Loop Unroll: F[main] Loop %no_exit Loop Size = 2 Trip Count = 2147483648 - UNROLLING!

The problem was that 2*2147483648 == 0.

Now we get:
Loop Unroll: F[main] Loop %no_exit Loop Size = 2 Trip Count = 2147483648 - TOO LARGE: 4294967296>100

Thanks to some anonymous person playing with the demo page that repeatedly
caused zion to go into swapping land.  That's one way to ensure you'll get
a quick bugfix.  :)

Testcase here: Transforms/LoopUnroll/2004-05-13-DontUnrollTooMuch.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13564 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Scalar/InstructionCombining.cpp
lib/Transforms/Scalar/LoopUnroll.cpp