- Jun 21, 2011
-
-
Jay Foad authored
because it won't work after my phi operand changes, because the incoming blocks will no longer be Uses. llvm-svn: 133512
-
- Feb 22, 2011
-
-
Cameron Zwarich authored
values from all of the loop's exiting blocks are equal. Patch by Andrew Clinton. llvm-svn: 126253
-
- Jan 18, 2011
-
-
Cameron Zwarich authored
dominance and post-dominance frontiers. llvm-svn: 123725
-
- Jan 12, 2011
-
-
Devang Patel authored
llvm-svn: 123318
-
- Jan 02, 2011
-
-
Chris Lattner authored
so that Dominators.h is *just* domtree. Also prune #includes a bit. llvm-svn: 122714
-
- Oct 19, 2010
-
-
Owen Anderson authored
they do not also require them. This allows us to reduce inter-pass linkage dependencies. llvm-svn: 116854
-
Owen Anderson authored
Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which must be called in the pass's constructor. This function uses static dependency declarations to recursively initialize the pass's dependencies. Clients that only create passes through the createFooPass() APIs will require no changes. Clients that want to use the CommandLine options for passes will need to manually call the appropriate initialization functions in PassInitialization.h before parsing commandline arguments. I have tested this with all standard configurations of clang and llvm-gcc on Darwin. It is possible that there are problems with the static dependencies that will only be visible with non-standard options. If you encounter any crash in pass registration/creation, please send the testcase to me directly. llvm-svn: 116820
-
- Oct 12, 2010
-
-
Owen Anderson authored
perform initialization without static constructors AND without explicit initialization by the client. For the moment, passes are required to initialize both their (potential) dependencies and any passes they preserve. I hope to be able to relax the latter requirement in the future. llvm-svn: 116334
-
- Oct 08, 2010
-
-
Owen Anderson authored
llvm-svn: 115996
-
- Aug 06, 2010
-
-
Owen Anderson authored
llvm-svn: 110460
-
Owen Anderson authored
llvm-svn: 110410
-
Owen Anderson authored
ID member as the sole unique type identifier. Clean up APIs related to this change. llvm-svn: 110396
-
- Jul 26, 2010
-
-
Dan Gohman authored
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
-
- Jul 22, 2010
-
-
Owen Anderson authored
llvm-svn: 109045
-
- Jun 22, 2010
-
-
Dan Gohman authored
llvm-svn: 106542
-
- Nov 05, 2009
-
-
Dan Gohman authored
llvm-svn: 86180
-
- Oct 31, 2009
-
-
Dan Gohman authored
clears out more information than just the stored backedge taken count. llvm-svn: 85664
-
- Oct 26, 2009
-
-
Dan Gohman authored
the loop exiting block dominates the latch block; if ScalarEvolution can prove that the trip-count is finite, that's sufficient. llvm-svn: 85165
-
- Oct 23, 2009
-
-
Dan Gohman authored
exact backedge taken count, when checking for infinite loops. This allows it to delete loops with multiple exit conditions. llvm-svn: 84952
-
- Sep 02, 2009
-
-
Chris Lattner authored
llvm-svn: 80766
-
- Jul 15, 2009
-
-
Dan Gohman authored
and use this to simplify more code. llvm-svn: 75722
-
- Jul 08, 2009
-
-
Dan Gohman authored
This way ScalarEvolution can examine the loop to determine what state it needs to update, if it chooses. llvm-svn: 75029
-
- Jul 07, 2009
-
-
Dan Gohman authored
llvm-svn: 74918
-
- Jun 22, 2009
-
-
Owen Anderson authored
llvm-svn: 73906
-
- May 06, 2009
-
-
Duncan Sands authored
the optimizers about this. For example, a readonly function with no uses cannot be removed unless it is also marked nounwind. llvm-svn: 71071
-
- May 05, 2009
-
-
Dan Gohman authored
CallbackVH, with fixes. allUsesReplacedWith need to walk the def-use chains and invalidate all users of a value that is replaced. SCEVs of users need to be recalcualted even if the new value is equivalent. Also, make forgetLoopPHIs walk def-use chains, since any SCEV that depends on a PHI should be recalculated when more information about that PHI becomes available. llvm-svn: 70927
-
- May 03, 2009
-
-
Dan Gohman authored
llvm-svn: 70661
-
- May 02, 2009
-
-
Dan Gohman authored
makes ScalarEvolution::deleteValueFromRecords, and it's code that subtly needed to be called before ReplaceAllUsesWith, unnecessary. It also makes ValueDeletionListener unnecessary. llvm-svn: 70645
-
Dan Gohman authored
deleting it. This will let ScalarEvolution be more complete about updating its records. llvm-svn: 70632
-
- Feb 24, 2009
-
-
Dan Gohman authored
to more accurately describe what it does. Expand its doxygen comment to describe what the backedge-taken count is and how it differs from the actual iteration count of the loop. Adjust names and comments in associated code accordingly. llvm-svn: 65382
-
Dan Gohman authored
llvm-svn: 65359
-
- Feb 23, 2009
-
-
Dan Gohman authored
so that ScalarEvolution doesn't hang onto a dangling Loop*, which could be a problem if another Loop happens to get allocated at the same address. llvm-svn: 65323
-
- Oct 23, 2008
-
-
Daniel Dunbar authored
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
-
- Sep 04, 2008
-
-
Dan Gohman authored
llvm-svn: 55779
-
- Jun 24, 2008
-
-
Dan Gohman authored
llvm-svn: 52651
-
- May 29, 2008
-
-
Owen Anderson authored
llvm-svn: 51666
-
- May 16, 2008
-
-
Owen Anderson authored
Also, use SCEV to determine the trip count of the loop, which is more powerful and accurate that Loop::getTripCount. llvm-svn: 51179
-
- May 13, 2008
-
-
Dan Gohman authored
several things that were neither in an anonymous namespace nor static but not intended to be global. llvm-svn: 51017
-
- May 08, 2008
-
-
Gordon Henriksen authored
Patch by Matthijs Kooijman! llvm-svn: 50861
-
- May 06, 2008
-
-
Owen Anderson authored
We need to update PHIs containing the exiting block, not the exit block. We really should come up with better names for these. llvm-svn: 50770
-