#
02d5f77d |
| 25-Oct-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Remove VISIBILITY_HIDDEN from class/struct found inside anonymous namespaces. Chris claims we should never have visibility_hidden inside any .cpp file but that's still not true even after this commit
Remove VISIBILITY_HIDDEN from class/struct found inside anonymous namespaces. Chris claims we should never have visibility_hidden inside any .cpp file but that's still not true even after this commit.
llvm-svn: 85042
show more ...
|
Revision tags: llvmorg-2.6.0 |
|
#
ea0bb8f5 |
| 30-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Fix this code so that it doesn't try to iterate through a std::vector while calling changeImmediateDominator, which removes elements from the vector. This fixes PR5097.
llvm-svn: 83166
|
#
9a7320c7 |
| 28-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Convert LoopSimplify and LoopExtractor from FunctionPass to LoopPass.
llvm-svn: 82990
|
#
3ddbc242 |
| 08-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Re-apply r80926, with fixes: keep the domtree informed of new blocks that get created during loop unswitching, and fix SplitBlockPredecessors' LCSSA updating code to create new PHIs instead of trying
Re-apply r80926, with fixes: keep the domtree informed of new blocks that get created during loop unswitching, and fix SplitBlockPredecessors' LCSSA updating code to create new PHIs instead of trying to just move existing ones.
Also, optimize Loop::verifyLoop, since it gets called a lot. Use searches on a sorted list of blocks instead of calling the "contains" function, as is done in other places in the Loop class, since "contains" does a linear search. Also, don't call verifyLoop from LoopSimplify or LCSSA, as the PassManager is already calling verifyLoop as part of LoopInfo's verifyAnalysis.
llvm-svn: 81221
show more ...
|
#
90419954 |
| 06-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Revert r80926. It causes loop unswitch assertion and slow down some JIT tests significantly.
llvm-svn: 81101
|
#
4c1bdcf5 |
| 03-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Add a verifyAnalysis to LoopInfo, LoopSimplify, and LCSSA form that verify that these passes are properly preserved.
Fix several transformation passes that claimed to preserve LoopSimplify form but
Add a verifyAnalysis to LoopInfo, LoopSimplify, and LCSSA form that verify that these passes are properly preserved.
Fix several transformation passes that claimed to preserve LoopSimplify form but weren't.
llvm-svn: 80926
show more ...
|
#
22571485 |
| 03-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Change PHINode::hasConstantValue to have a DominatorTree argument instead of a bool argument, and to do the dominator check itself. This makes it eaiser to use when DominatorTree information is avail
Change PHINode::hasConstantValue to have a DominatorTree argument instead of a bool argument, and to do the dominator check itself. This makes it eaiser to use when DominatorTree information is available.
llvm-svn: 80920
show more ...
|
#
55f1c09e |
| 13-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Push LLVMContexts through the IntegerType APIs.
llvm-svn: 78948
|
#
b292b8ce |
| 30-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move more code back to 2.5 APIs.
llvm-svn: 77635
|
#
47db941f |
| 22-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Get rid of the Pass+Context magic.
llvm-svn: 76702
|
#
c43e4793 |
| 15-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Make makeLoopInvariant report whether it made any changes or not, and use this to simplify more code.
llvm-svn: 75722
|
#
4d6149f3 |
| 14-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Update LoopSimplify and LoopUnswitch to use the new makeLoopInvariant function.
llvm-svn: 75584
|
#
e70b6370 |
| 05-Jul-2009 |
Owen Anderson <resistor@mac.com> |
More LLVMContext-ification.
llvm-svn: 74807
|
#
4dfc6800 |
| 30-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Minor code simplification.
llvm-svn: 74491
|
#
ffdcba3d |
| 27-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Remove the block from the LoopInfo, rather than just the Loop. LoopInfo will handle removing it from the Loop, as well as updating its own tables.
llvm-svn: 74398
|
#
c8ca4965 |
| 27-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Teach LoopSimplify how to merge multiple loop exits into a single exit, when one of them can be converted to a trivial icmp and conditional branch.
This addresses what is essentially a phase orderin
Teach LoopSimplify how to merge multiple loop exits into a single exit, when one of them can be converted to a trivial icmp and conditional branch.
This addresses what is essentially a phase ordering problem. SimplifyCFG knows how to do this transformation, but it doesn't do so if the primary block has any instructions in it other than an icmp and a branch. In the given testcase, the block contains other instructions, however they are loop-invariant and can be hoisted. SimplifyCFG doesn't have LoopInfo though, so it can't hoist them. And, it's important that the blocks be merged before LoopRotation, as it doesn't support multiple-exit loops.
llvm-svn: 74396
show more ...
|
Revision tags: llvmorg-2.5.0 |
|
#
5a913d61 |
| 28-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Rename getAnalysisToUpdate to getAnalysisIfAvailable.
llvm-svn: 63198
|
Revision tags: llvmorg-2.4.0 |
|
#
a79db30d |
| 04-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Tidy up several unbeseeming casts from pointer to intptr_t.
llvm-svn: 55779
|
#
90071075 |
| 22-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Use Loop::block_iterator.
llvm-svn: 52616
|
Revision tags: llvmorg-2.3.0 |
|
#
8549e4ca |
| 06-Jun-2008 |
Devang Patel <dpatel@apple.com> |
LoopSimplify preserves AA.
llvm-svn: 52053
|
#
0479aa5c |
| 13-May-2008 |
Dan Gohman <gohman@apple.com> |
Change class' public PassInfo variables to by initialized with the address of the PassInfo directly instead of calling getPassInfo. This eliminates a bunch of dynamic initializations of static data.
Change class' public PassInfo variables to by initialized with the address of the PassInfo directly instead of calling getPassInfo. This eliminates a bunch of dynamic initializations of static data.
Also, fold RegisterPassBase into PassInfo, make a bunch of its data members const, and rearrange some code to initialize data members in constructors instead of using setter member functions.
llvm-svn: 51022
show more ...
|
#
d78c400b |
| 13-May-2008 |
Dan Gohman <gohman@apple.com> |
Clean up the use of static and anonymous namespaces. This turned up several things that were neither in an anonymous namespace nor static but not intended to be global.
llvm-svn: 51017
|
#
4d43d3c7 |
| 25-Apr-2008 |
Nick Lewycky <nicholas@mxc.ca> |
Remove 'unwinds to' support from mainline. This patch undoes r47802 r47989 r48047 r48084 r48085 r48086 r48088 r48096 r48099 r48109 and r48123.
llvm-svn: 50265
|
#
a5b11705 |
| 21-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
Move SplitBlockPredecessors out of loopsimplify into BasicBlockUtils.h as a global helper function. At the same type, switch it from taking a vector of predecessors to an arbitrary sequential input.
Move SplitBlockPredecessors out of loopsimplify into BasicBlockUtils.h as a global helper function. At the same type, switch it from taking a vector of predecessors to an arbitrary sequential input. This allows us to switch LoopSimplify to use a SmallVector for various temporary vectors that it passed into SplitBlockPredecessors.
llvm-svn: 50020
show more ...
|
#
d418b06a |
| 21-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
Move domtree/frontier updating earlier, allowing us to use it to update phi nodes, removing a hack.
llvm-svn: 50019
|