Revision tags: llvmorg-3.1.0, llvmorg-3.1.0-rc3, llvmorg-3.1.0-rc2, llvmorg-3.1.0-rc1 |
|
#
f7711010 |
| 20-Mar-2012 |
Andrew Trick <atrick@apple.com> |
LoopSimplify bug fix. Handle indirect loop back edges.
Do not call SplitBlockPredecessors on a loop preheader when one of the predecessors is an indirectbr. Otherwise, you will hit this assert: !isa
LoopSimplify bug fix. Handle indirect loop back edges.
Do not call SplitBlockPredecessors on a loop preheader when one of the predecessors is an indirectbr. Otherwise, you will hit this assert: !isa<IndirectBrInst>(Preds[i]->getTerminator()) && "Cannot split an edge from an IndirectBrInst"
llvm-svn: 153134
show more ...
|
#
bb01cbb3 |
| 20-Mar-2012 |
Andrew Trick <atrick@apple.com> |
whitespace
llvm-svn: 153133
|
#
16ad2905 |
| 15-Dec-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Make loop preheader insertion in LoopSimplify handle the case where the loop header is a landing pad correctly (by splitting the landingpad out of the loop header). Make some adjustments to the rest
Make loop preheader insertion in LoopSimplify handle the case where the loop header is a landing pad correctly (by splitting the landingpad out of the loop header). Make some adjustments to the rest of LoopSimplify to make it clear that the rest of LoopSimplify isn't making bad assumptions about the presence of landing pads. PR11575.
llvm-svn: 146621
show more ...
|
#
f5b32e52 |
| 09-Dec-2011 |
Jakub Staszak <kubastaszak@gmail.com> |
SplitBlockPredecessors uses ArrayRef instead of Data and Size.
llvm-svn: 146277
|
#
c24b86ff |
| 01-Dec-2011 |
Chad Rosier <mcrosier@apple.com> |
Propagate TargetLibraryInfo throughout ConstantFolding.cpp and InstructionSimplify.cpp. Other fixups as needed. Part of rdar://10500969
llvm-svn: 145559
|
Revision tags: llvmorg-3.0.0, llvmorg-3.0.0-rc4, llvmorg-3.0.0-rc3, llvmorg-3.0.0-rc2, llvmorg-3.0.0-rc1 |
|
#
c61f7659 |
| 19-Aug-2011 |
Bill Wendling <isanbard@gmail.com> |
Intelligently split the landing pad block.
We have to be careful when splitting the landing pad block, because the landingpad instruction is required to remain as the first non-PHI of an invoke's un
Intelligently split the landing pad block.
We have to be careful when splitting the landing pad block, because the landingpad instruction is required to remain as the first non-PHI of an invoke's unwind edge. To retain this, we split the block into two blocks, moving the predecessors within the loop to one block and the remaining predecessors to the other. The landingpad instruction is cloned into the new blocks.
llvm-svn: 138015
show more ...
|
#
b15d6eb9 |
| 18-Aug-2011 |
Bill Wendling <isanbard@gmail.com> |
Revert r137871. The loop simplify pass should require all exits from a loop that aren't from an indirect branch need to be dominated by the loop header.
llvm-svn: 137981
|
#
39257d6b |
| 17-Aug-2011 |
Bill Wendling <isanbard@gmail.com> |
Don't optimize the landing pad exit block.
One way to exit the loop is through an unwind edge. However, that may involve splitting the critical edge of the landing pad, which is non-trivial. Prevent
Don't optimize the landing pad exit block.
One way to exit the loop is through an unwind edge. However, that may involve splitting the critical edge of the landing pad, which is non-trivial. Prevent the transformation from rewriting the landing pad exit loop block.
llvm-svn: 137871
show more ...
|
#
a41634e3 |
| 12-Aug-2011 |
Duncan Sands <baldrick@free.fr> |
Silence a bunch (but not all) "variable written but not read" warnings when building with assertions disabled.
llvm-svn: 137460
|
#
bf69d033 |
| 03-Aug-2011 |
Andrew Trick <atrick@apple.com> |
SCEV: Use AssertingVH to catch dangling BasicBlock* when passes forget to notify SCEV of a change. Add forgetLoop in a couple of those places.
llvm-svn: 136797
|
#
9d8c2af2 |
| 03-Aug-2011 |
Andrew Trick <atrick@apple.com> |
whitespace
llvm-svn: 136795
|
#
6f7315b0 |
| 17-Jun-2011 |
Devang Patel <dpatel@apple.com> |
Set debug loc for new preheader's terminator.
llvm-svn: 133298
|
#
0ab5e2cd |
| 15-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
Fix a ton of comment typos found by codespell. Patch by Luis Felipe Strano Moraes!
llvm-svn: 129558
|
Revision tags: llvmorg-2.9.0 |
|
#
52131344 |
| 30-Mar-2011 |
Jay Foad <jay.foad@gmail.com> |
Remove PHINode::reserveOperandSpace(). Instead, add a parameter to PHINode::Create() giving the (known or expected) number of operands.
llvm-svn: 128537
|
Revision tags: llvmorg-2.9.0-rc3, llvmorg-2.9.0-rc2, llvmorg-2.9.0-rc1 |
|
#
d8e66038 |
| 10-Feb-2011 |
Cameron Zwarich <zwarich@apple.com> |
Rename 'loopsimplify' to 'loop-simplify'.
llvm-svn: 125317
|
#
b703654e |
| 18-Jan-2011 |
Cameron Zwarich <zwarich@apple.com> |
Remove code for updating dominance frontiers and some outdated references to dominance and post-dominance frontiers.
llvm-svn: 123725
|
#
d41db8f9 |
| 11-Jan-2011 |
Chris Lattner <sabre@nondot.org> |
this pass claims to preserve scev, make sure to tell it about deletions.
llvm-svn: 123247
|
#
bf0aa927 |
| 02-Jan-2011 |
Chris Lattner <sabre@nondot.org> |
split dom frontier handling stuff out to its own DominanceFrontier header, so that Dominators.h is *just* domtree. Also prune #includes a bit.
llvm-svn: 122714
|
#
64f1c0dc |
| 02-Jan-2011 |
Duncan Sands <baldrick@free.fr> |
Fix PR8702 by not having LoopSimplify claim to preserve LCSSA form. As described in the PR, the pass could break LCSSA form when inserting preheaders. It probably would be easy enough to fix this,
Fix PR8702 by not having LoopSimplify claim to preserve LCSSA form. As described in the PR, the pass could break LCSSA form when inserting preheaders. It probably would be easy enough to fix this, but since currently we always go into LCSSA form after running this pass, doing so is not urgent.
llvm-svn: 122695
show more ...
|
#
aef146b8 |
| 18-Nov-2010 |
Duncan Sands <baldrick@free.fr> |
Factor code for testing whether replacing one value with another preserves LCSSA form out of ScalarEvolution and into the LoopInfo class. Use it to check that SimplifyInstruction simplifications are
Factor code for testing whether replacing one value with another 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
show more ...
|
#
63704951 |
| 16-Nov-2010 |
Duncan Sands <baldrick@free.fr> |
Have a few places that want to simplify phi nodes use SimplifyInstruction rather than calling hasConstantValue. No intended functionality change.
llvm-svn: 119352
|
#
6c18d1aa |
| 19-Oct-2010 |
Owen Anderson <resistor@mac.com> |
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
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
show more ...
|
#
8ac477ff |
| 12-Oct-2010 |
Owen Anderson <resistor@mac.com> |
Begin adding static dependence information to passes, which will allow us to perform initialization without static constructors AND without explicit initialization by the client. For the moment, pas
Begin adding static dependence information to passes, which will allow us to 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
show more ...
|
#
df7a4f25 |
| 07-Oct-2010 |
Owen Anderson <resistor@mac.com> |
Now with fewer extraneous semicolons!
llvm-svn: 115996
|
Revision tags: llvmorg-2.8.0, llvmorg-2.8.0-rc3, llvmorg-2.8.0-rc2, llvmorg-2.8.0-rc1, llvmorg-2.8.0-rc0 |
|
#
487e2501 |
| 04-Sep-2010 |
Dan Gohman <gohman@apple.com> |
Fix LoopSimplify to notify ScalarEvolution when splitting a loop backedge into an inner loop, as the new loop iteration may differ substantially. This fixes PR8078.
llvm-svn: 113057
|