summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar/LoopUnroll.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Make iostream #inclusion explicitChris Lattner2006-01-221-1/+1
| | | | llvm-svn: 25514
* Eliminate tabs and trailing spacesJeff Cohen2005-04-231-1/+1
| | | | llvm-svn: 21480
* Remove trailing whitespaceMisha Brukman2005-04-211-8/+8
| | | | llvm-svn: 21427
* Fix a bug where we could corrupt a parent loop's header info if we unrolledChris Lattner2005-03-061-6/+17
| | | | | | | a nested loop. This fixes Transforms/LoopUnroll/2005-03-06-BadLoopInfoUpdate.ll and PR532 llvm-svn: 20493
* Silence VS warnings.Chris Lattner2005-01-081-5/+7
| | | | llvm-svn: 19380
* Do not consider debug intrinsics in the size computations for loop unrolling.Chris Lattner2004-11-221-0/+3
| | | | | | Patch contributed by Michael McCracken! llvm-svn: 18108
* Correction to allow compilation with Visual C++.Reid Spencer2004-10-181-0/+2
| | | | | | Patch contributed by Morten Ofstad. Thanks Morten! llvm-svn: 17123
* Convert code to compile with vc7.1.Reid Spencer2004-09-151-2/+2
| | | | | | Patch contributed by Paolo Invernizzi. Thanks Paolo! llvm-svn: 16368
* Changes For Bug 352Reid Spencer2004-09-011-4/+4
| | | | | | | | Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. llvm-svn: 16137
* Fix a nasty bug that caused us to unroll EXTREMELY large loops due to overflowChris Lattner2004-05-131-3/+3
| | | | | | | | | | | | | | | | | | | | 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 llvm-svn: 13564
* Fix PR325Chris Lattner2004-04-201-1/+1
| | | | llvm-svn: 13081
* Add #includeChris Lattner2004-04-191-0/+1
| | | | llvm-svn: 13057
* Change the ExitBlocks list from being explicitly contained in the LoopChris Lattner2004-04-181-22/+1
| | | | | | | structure to being dynamically computed on demand. This makes updating loop information MUCH easier. llvm-svn: 13045
* Reduce the unrolling limitChris Lattner2004-04-181-1/+1
| | | | llvm-svn: 13040
* If the preheader of the loop was the entry block of the function, make sureChris Lattner2004-04-181-2/+7
| | | | | | | | that the exit block of the loop becomes the new entry block of the function. This was causing a verifier assertion on 252.eon. llvm-svn: 13039
* Be much more careful about how we update instructions outside of the loopChris Lattner2004-04-181-9/+15
| | | | | | | using instructions inside of the loop. This should fix the MishaTest failure from last night. llvm-svn: 13038
* After unrolling our single basic block loop, fold it into the preheader and exitChris Lattner2004-04-181-2/+43
| | | | | | | | | | | | | block. The primary motivation for doing this is that we can now unroll nested loops. This makes a pretty big difference in some cases. For example, in 183.equake, we are now beating the native compiler with the CBE, and we are a lot closer with LLC. I'm now going to play around a bit with the unroll factor and see what effect it really has. llvm-svn: 13034
* Fix a bug: this does not preserve the CFG!Chris Lattner2004-04-181-4/+20
| | | | | | While we're at it, add support for updating loop information correctly. llvm-svn: 13033
* Initial checkin of a simple loop unroller. This pass is extremely basic andChris Lattner2004-04-181-0/+247
limited. Even in it's extremely simple state (it can only *fully* unroll single basic block loops that execute a constant number of times), it already helps improve performance a LOT on some benchmarks, particularly with the native code generators. llvm-svn: 13028
OpenPOWER on IntegriCloud