#
62705159 |
| 09-Sep-2010 |
Owen Anderson <resistor@mac.com> |
Revert r113439, which relaxed the requirement that loops containing calls cannot be unrolled. After some discussion, there seems to be a better way to achieve the same effect.
llvm-svn: 113528
|
#
11ab204f |
| 09-Sep-2010 |
Owen Anderson <resistor@mac.com> |
r113526 introduced an unintended change to the loop unrolling threshold. Revert it.
llvm-svn: 113527
|
#
b61b1647 |
| 09-Sep-2010 |
Owen Anderson <resistor@mac.com> |
Fix typo in code to cap the loop code size reduction calculation.
llvm-svn: 113526
|
#
62ea1b71 |
| 09-Sep-2010 |
Owen Anderson <resistor@mac.com> |
Use code-size reduction metrics to estimate the amount of savings we'll get when we unroll a loop. Next step is to recalculate the threshold values given this new heuristic.
llvm-svn: 113525
|
#
8084dbaf |
| 08-Sep-2010 |
Owen Anderson <resistor@mac.com> |
Relax the "don't unroll loops containing calls" rule. Instead, when a loop contains a call, lower the unrolling threshold to the optimize-for-size threshold. Basically, for loops containing calls,
Relax the "don't unroll loops containing calls" rule. Instead, when a loop contains a call, lower the unrolling threshold to the optimize-for-size threshold. Basically, for loops containing calls, unrolling can still be profitable as long as the loop is REALLY small.
llvm-svn: 113439
show more ...
|
#
a4d9c78a |
| 07-Sep-2010 |
Owen Anderson <resistor@mac.com> |
Add a separate unrolling threshold when the current function is being optimized for size. The threshold value of 50 is arbitrary, and I chose it simply by analogy to the inlining thresholds, where th
Add a separate unrolling threshold when the current function is being optimized for size. The threshold value of 50 is arbitrary, and I chose it simply by analogy to the inlining thresholds, where the baseline unrolling threshold is slightly smaller than the baseline inlining threshold. This could undoubtedly use some tuning.
llvm-svn: 113306
show more ...
|
Revision tags: llvmorg-2.8.0-rc1, llvmorg-2.8.0-rc0 |
|
#
d6f46b8a |
| 29-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
now that loop passes don't use DomFrontier, there is no reason for the unroller to pretend it supports updating it. It still has a horrible hack for DomTree.
llvm-svn: 112444
|
#
a7aed186 |
| 06-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Reapply r110396, with fixes to appease the Linux buildbot gods.
llvm-svn: 110460
|
#
bda59bd2 |
| 06-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Revert r110396 to fix buildbots.
llvm-svn: 110410
|
#
755aceb5 |
| 05-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Don't use PassInfo* as a type identifier for passes. Instead, use the address of the static ID member as the sole unique type identifier. Clean up APIs related to this change.
llvm-svn: 110396
|
#
9f2bca02 |
| 04-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Experiments show that we can safely increase our unrolling threshold without unduly impacting code size, particularly since unrolling is not enabled at -Os.
llvm-svn: 110233
|
#
0141c13b |
| 26-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Remove LCSSA's bogus dependence on LoopSimplify and LoopSimplify's bogus dependence on DominanceFrontier. Instead, add an explicit DominanceFrontier pass in StandardPasses.h to ensure that it gets sc
Remove LCSSA's bogus dependence on LoopSimplify and LoopSimplify's bogus dependence on DominanceFrontier. Instead, add an explicit DominanceFrontier pass in StandardPasses.h to ensure that it gets scheduled at the right time.
Declare that loop unrolling preserves ScalarEvolution, and shuffle some getAnalysisUsages.
This eliminates one LoopSimplify and one LCCSA run in the standard compile opts sequence.
llvm-svn: 109413
show more ...
|
#
a57b97e7 |
| 21-Jul-2010 |
Owen Anderson <resistor@mac.com> |
Fix batch of converting RegisterPass<> to INTIALIZE_PASS().
llvm-svn: 109045
|
Revision tags: llvmorg-2.7.0 |
|
#
2734ebd3 |
| 10-Mar-2010 |
Dan Gohman <gohman@apple.com> |
Add a DominatorTree argument to isLCSSA so that it doesn't have to compute a set of reachable blocks for itself each time it is called, which is fairly frequently.
llvm-svn: 98179
|
#
5f9ead27 |
| 05-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't unroll loops containing function calls.
llvm-svn: 95454
|
#
e0b97895 |
| 05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs().
llvm-svn: 92623
|
#
969e83a4 |
| 31-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Replace LoopUnrollPass.cpp's custom code-size estimation code using the new common CodeMetrics code.
llvm-svn: 85663
|
#
af94015c |
| 31-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Remove an unnecessary #include.
llvm-svn: 85661
|
#
f70e76c4 |
| 31-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Rename UnrollLoop.cpp to LoopUnroll.cpp, and LoopUnroll.cpp to LoopUnrollPass.cpp, for consistency with other passes which are similarly split.
llvm-svn: 85659
|