- May 25, 2011
-
-
Evan Cheng authored
llvm-svn: 132025
-
Evan Cheng authored
case of a switch instruction. Back off this optimization when this would eliminate all of the predecessors to the latch. Sorry, I am unable to reduce a reasonably sized test case. rdar://9486843 llvm-svn: 132022
-
- Feb 11, 2011
-
-
Cameron Zwarich authored
a loop when unswitching it. It only does this in the complex case, because everything should be fine already in the simple case. llvm-svn: 125369
-
- Jan 08, 2011
-
-
Chris Lattner authored
1. Take a flags argument instead of a bool. This makes it more clear to the reader what it is used for. 2. Add a flag that says that "remapping a value not in the map is ok". 3. Reimplement MapValue to share a bunch of code and be a lot more efficient. For lookup failures, don't drop null values into the map. 4. Using the new flag a bunch of code can vaporize in LinkModules and LoopUnswitch, kill it. No functionality change. llvm-svn: 123058
-
- Nov 23, 2010
-
-
Duncan Sands authored
(which does constant folding and more) is called a few lines later. llvm-svn: 120042
-
- Nov 18, 2010
-
-
Duncan Sands authored
preserves LCSSA form out of ScalarEvolution and into the LoopInfo class. Use it to check that SimplifyInstruction simplifications are not breaking LCSSA form. Fixes PR8622. llvm-svn: 119727
-
- Nov 14, 2010
-
-
Duncan Sands authored
it to get better phi node simplification. llvm-svn: 119055
-
- 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 13, 2010
-
-
Rafael Espindola authored
llvm-svn: 116387
-
- 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
-
- Sep 01, 2010
-
-
Dan Gohman authored
infinite loops or exits will eventually exit. This fixes PR5373. llvm-svn: 112745
-
- Aug 29, 2010
-
-
Chris Lattner authored
claims that it preserves domfrontier if it doesn't really. llvm-svn: 112445
-
- 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 22, 2010
-
-
Owen Anderson authored
llvm-svn: 109045
-
- Jun 24, 2010
-
-
Devang Patel authored
The ValueMapper used by various cloning utility maps MDNodes also. llvm-svn: 106706
-
- Jun 09, 2010
-
-
Kenneth Uildriks authored
Pulled CodeMetrics out of InlineCost.h and made it a bit more general, so it can be reused from PartialSpecializationCost llvm-svn: 105725
-
- Apr 20, 2010
-
-
Chris Lattner authored
loop unswitch, and use inst simplify instead. It is more powerful and less duplication. llvm-svn: 101874
-
Chris Lattner authored
condition we're unswitching on. In this case, don't try to simplify the second copy of the loop which may be dead or not, but is probably a constant now. This fixes PR6879 llvm-svn: 101870
-
- Apr 05, 2010
-
-
Chris Lattner authored
llvm-svn: 100468
-
Evan Cheng authored
llvm-svn: 100467
-
- Apr 03, 2010
-
-
Evan Cheng authored
llvm-svn: 100262
-
- Mar 10, 2010
-
-
Dan Gohman authored
compute a set of reachable blocks for itself each time it is called, which is fairly frequently. llvm-svn: 98179
-
- Feb 16, 2010
-
-
Duncan Sands authored
and T->isPointerTy(). Convert most instances of the first form to the second form. Requested by Chris. llvm-svn: 96344
-
- Feb 15, 2010
-
-
Duncan Sands authored
isInteger, we now have isFloatTy and isIntegerTy. Requested by Chris! llvm-svn: 96223
-
- Feb 02, 2010
-
-
Chris Lattner authored
llvm-svn: 95055
-
- Jan 05, 2010
-
-
Benjamin Kramer authored
llvm-svn: 92760
-
David Greene authored
llvm-svn: 92608
-
- Dec 18, 2009
-
-
Dan Gohman authored
contains another loop, or an instruction. The loop form is substantially more efficient on large loops than the typical code it replaces. llvm-svn: 91654
-
- Dec 09, 2009
-
-
Dan Gohman authored
llvm-svn: 90990
-
- Nov 25, 2009
-
-
Edward O'Callaghan authored
llvm-svn: 89844
-
- Nov 24, 2009
-
-
Edward O'Callaghan authored
llvm-svn: 89758
-
- Nov 06, 2009
-
-
Chris Lattner authored
from various APIs, addressing PR5325. llvm-svn: 86231
-
- Nov 05, 2009
-
-
Dan Gohman authored
LoopSimplify form may not be available. llvm-svn: 86175
-
- Nov 01, 2009
-
-
Chris Lattner authored
This prevents unswitching from duplicating indbr's. llvm-svn: 85705
-
- Oct 20, 2009
-
-
Dan Gohman authored
the estimated code size and the number of blocks when deciding whether to do a non-trivial unswitch. This protects it from some very undesirable worst-case behavior on large numbers of loop-unswitchable conditions, such as in the testcase in PR5259. llvm-svn: 84661
-
- Oct 14, 2009
-
-
Devang Patel authored
llvm-svn: 84118
-