#
4247949c |
| 09-Jul-2010 |
Gabor Greif <ggreif@gmail.com> |
cache result of operator*
llvm-svn: 107968
|
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
|
#
f324dd65 |
| 09-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Fix a comment in a typo that Duncan noticed.
llvm-svn: 86575
|
#
c146c780 |
| 09-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Generalize LCSSA to handle loops with exits with predecessors outside the loop. This is needed because with indirectbr it may not be possible for LoopSimplify to guarantee that all loop exit predeces
Generalize LCSSA to handle loops with exits with predecessors outside the loop. This is needed because with indirectbr it may not be possible for LoopSimplify to guarantee that all loop exit predecessors are inside the loop. This fixes PR5437.
LCCSA no longer actually requires LoopSimplify form, but for now it must still have the dependency because the PassManager doesn't know how to schedule LoopSimplify otherwise.
llvm-svn: 86569
show more ...
|
#
885c46e3 |
| 05-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Delete an unused member variable.
llvm-svn: 86160
|
Revision tags: llvmorg-2.6.0 |
|
#
71d353dd |
| 11-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
rewrite LCSSA to use SSAUpdate, to only return true if it modifies the IR, and to implement the FIXME'd optimization.
llvm-svn: 83748
|
#
101dde30 |
| 11-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
clean up and simplify some code. Don't use setvector when things will be inserted only once, just use vector. Don't compute ExitBlocks unless we need it, change std::sort to array_pod_sort.
llvm-s
clean up and simplify some code. Don't use setvector when things will be inserted only once, just use vector. Don't compute ExitBlocks unless we need it, change std::sort to array_pod_sort.
llvm-svn: 83747
show more ...
|
#
f30a2b0c |
| 10-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
random tidying
llvm-svn: 83701
|
#
7d3b0be0 |
| 28-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Remove a redundant #ifndef and add an assertion string.
llvm-svn: 82991
|
#
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 ...
|
#
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
|
#
e70b6370 |
| 05-Jul-2009 |
Owen Anderson <resistor@mac.com> |
More LLVMContext-ification.
llvm-svn: 74807
|
#
7eaf50ec |
| 26-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Fix LCSSA to avoid emitting a PHI node for the unwind destination of an invoke instruction, since the value isn't really live across that edge.
llvm-svn: 74242
|
#
6cbf5bb9 |
| 22-Apr-2009 |
Owen Anderson <resistor@mac.com> |
Real fix for PR3549, by using caching for predecessor counts in addition to the predecessors themselves. This halves the time to optimize the testcase, beyond what my previous patch did.
llvm-svn:
Real fix for PR3549, by using caching for predecessor counts in addition to the predecessors themselves. This halves the time to optimize the testcase, beyond what my previous patch did.
llvm-svn: 69792
show more ...
|
#
bb754826 |
| 22-Apr-2009 |
Owen Anderson <resistor@mac.com> |
Use PredIteratorCache in LCSSA, which gives a 37% overall speedup on the testcase from PR3549. More improvements to come.
llvm-svn: 69788
|
Revision tags: llvmorg-2.5.0 |
|
#
eb61fcf2 |
| 23-Jan-2009 |
Gabor Greif <ggreif@gmail.com> |
Simplify the logic of getting hold of a PHI predecessor block. There is now a direct way from value-use-iterator to incoming block in PHINode's API. This way we avoid the iterator->index->iterator tr
Simplify the logic of getting hold of a PHI predecessor block. There is now a direct way from value-use-iterator to incoming block in PHINode's API. This way we avoid the iterator->index->iterator trip, and especially the costly getOperandNo() invocation. Additionally there is now an assertion that the iterator really refers to one of the PHI's Uses.
llvm-svn: 62869
show more ...
|
Revision tags: llvmorg-2.4.0 |
|
#
7f39e2d8 |
| 22-Oct-2008 |
Daniel Dunbar <daniel@zuster.org> |
Change create*Pass factory functions to return Pass* instead of LoopPass*. - Although less precise, this means they can be used in clients without RTTI (who would otherwise need to include LoopPa
Change create*Pass factory functions to return Pass* instead of LoopPass*. - Although less precise, this means they can be used in clients without RTTI (who would otherwise need to include LoopPass.h, which eventually includes things using dynamic_cast). This was the simplest solution that presented itself, but I am happy to use a better one if available.
llvm-svn: 58010
show more ...
|
#
a79db30d |
| 04-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Tidy up several unbeseeming casts from pointer to intptr_t.
llvm-svn: 55779
|
#
fa1211f6 |
| 23-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Enable first-class aggregates support.
Remove the GetResultInst instruction. It is still accepted in LLVM assembly and bitcode, where it is now auto-upgraded to ExtractValueInst. Also, remove suppor
Enable first-class aggregates support.
Remove the GetResultInst instruction. It is still accepted in LLVM assembly and bitcode, where it is now auto-upgraded to ExtractValueInst. Also, remove support for return instructions with multiple values. These are auto-upgraded to use InsertValueInst instructions.
The IRBuilder still accepts multiple-value returns, and auto-upgrades them to InsertValueInst instructions.
llvm-svn: 53941
show more ...
|
Revision tags: llvmorg-2.3.0 |
|
#
2ad7e734 |
| 03-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Fix whitespace in whitespace-significant pseudocode in a comment.
llvm-svn: 51890
|
#
1f59d993 |
| 30-May-2008 |
Owen Anderson <resistor@mac.com> |
Since LCSSA switched over to DenseMap, we have to be more careful to avoid iterator invalidation. Fixes PR2385.
llvm-svn: 51777
|
#
d3f21d16 |
| 26-May-2008 |
Owen Anderson <resistor@mac.com> |
Use a DenseMap instead of an std::map, speeding up the testcase in PR2368 by about a third.
llvm-svn: 51565
|