#
636a3d61 |
| 19-Feb-2012 |
Ahmed Charles <ace2001ac@gmail.com> |
Remove dead code. Improve llvm_unreachable text. Simplify some control flow.
llvm-svn: 150918
|
#
1b3167ed |
| 28-Jan-2012 |
Nick Lewycky <nicholas@mxc.ca> |
Fix typo.
llvm-svn: 149185
|
#
c908b43d |
| 20-Jan-2012 |
Andrew Trick <atrick@apple.com> |
SCEVExpander fixes. Affects LSR and indvars.
LSR has gradually been improved to more aggressively reuse existing code, particularly existing phi cycles. This exposed problems with the SCEVExpander's
SCEVExpander fixes. Affects LSR and indvars.
LSR has gradually been improved to more aggressively reuse existing code, particularly existing phi cycles. This exposed problems with the SCEVExpander's sloppy treatment of its insertion point. I applied some rigor to the insertion point problem that will hopefully avoid an endless bug cycle in this area. Changes:
- Always used properlyDominates to check safe code hoisting.
- The insertion point provided to SCEV is now considered a lower bound. This is usually a block terminator or the use itself. Under no cirumstance may SCEVExpander insert below this point.
- LSR is reponsible for finding a "canonical" insertion point across expansion of different expressions.
- Robust logic to determine whether IV increments are in "expanded" form and/or can be safely hoisted above some insertion point.
Fixes PR11783: SCEVExpander assert.
llvm-svn: 148535
show more ...
|
#
dbe2bdf9 |
| 12-Dec-2011 |
Andrew Trick <atrick@apple.com> |
Indvars: guard against exponential behavior in isHighCostExpansion.
This should always be done as a matter of principal. I don't have a case that exposes the problem. I just noticed this recently wh
Indvars: guard against exponential behavior in isHighCostExpansion.
This should always be done as a matter of principal. I don't have a case that exposes the problem. I just noticed this recently while scanning the code and realized I meant to fix it long ago.
llvm-svn: 146438
show more ...
|
#
3924cb02 |
| 05-Dec-2011 |
Nadav Rotem <nadav.rotem@intel.com> |
Add support for vectors of pointers.
llvm-svn: 145801
|
#
d25089f8 |
| 29-Nov-2011 |
Andrew Trick <atrick@apple.com> |
SCEV fix. In general, Add/Mul expressions should not inherit NSW/NUW.
This reverts r139450, fixes r139453, and adds much needed comments and a unit test.
llvm-svn: 145367
|
#
7ba71be3 |
| 26-Nov-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Move code into anonymous namespaces.
llvm-svn: 145154
|
Revision tags: llvmorg-3.0.0, llvmorg-3.0.0-rc4, llvmorg-3.0.0-rc3 |
|
#
c2c79c90 |
| 02-Nov-2011 |
Andrew Trick <atrick@apple.com> |
Rewrite LinearFunctionTestReplace to handle pointer-type IVs.
We've been hitting asserts in this code due to the many supported combintions of modes (iv-rewrite/no-iv-rewrite) and IV types. This sec
Rewrite LinearFunctionTestReplace to handle pointer-type IVs.
We've been hitting asserts in this code due to the many supported combintions of modes (iv-rewrite/no-iv-rewrite) and IV types. This second rewrite of the code attempts to deal with these cases systematically.
llvm-svn: 143546
show more ...
|
#
9dba8af0 |
| 02-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Add parentheses to disambiguate the precedence of these operations and silence -Wparentheses.
llvm-svn: 143534
|
#
0dae8903 |
| 02-Nov-2011 |
Andrew Trick <atrick@apple.com> |
Broaden an assert to handle enable-iv-rewrite=true following r143183.
Narrowest possible fix for PR11279.
llvm-svn: 143522
|
Revision tags: llvmorg-3.0.0-rc2 |
|
#
effdca94 |
| 28-Oct-2011 |
Andrew Trick <atrick@apple.com> |
LFTR should avoid a type mismatch with null pointer IVs.
Fixes rdar://10359193 Indvar LinearFunctionTestReplace assertion
llvm-svn: 143183
|
#
73beaf7b |
| 27-Oct-2011 |
Eli Friedman <eli.friedman@gmail.com> |
It is not safe to sink an alloca into a stacksave/stackrestore pair, so don't do that. <rdar://problem/10352360>
llvm-svn: 143093
|
Revision tags: llvmorg-3.0.0-rc1 |
|
#
d50861c8 |
| 15-Oct-2011 |
Andrew Trick <atrick@apple.com> |
Fix indvars randomness by removing iteration over a map.
I rewrote the algorithm a while back so it doesn't require map lookup, but neglected to change the data structure. This was caught by llvm-gc
Fix indvars randomness by removing iteration over a map.
I rewrote the algorithm a while back so it doesn't require map lookup, but neglected to change the data structure. This was caught by llvm-gcc self host, not because there's anything special about llvm-gcc, but because it is the only test for nondeterminism we currently have. Unit tests don't work well for everything; we should always try to have a nondeterminism stress test running.
Fixes PR11133: llvm-gcc self host .o mismatch after enable-iv-rewrite=false
llvm-svn: 142036
show more ...
|
#
f9201c57 |
| 11-Oct-2011 |
Andrew Trick <atrick@apple.com> |
Move replaceCongruentIVs into SCEVExapander and bias toward "expanded" IVs.
Indvars previously chose randomly between congruent IVs. Now it will bias the decision toward IVs that SCEVExpander likes
Move replaceCongruentIVs into SCEVExapander and bias toward "expanded" IVs.
Indvars previously chose randomly between congruent IVs. Now it will bias the decision toward IVs that SCEVExpander likes to create. This was not done to fix any problem, it's just a welcome side effect of factoring code.
llvm-svn: 141633
show more ...
|
#
e0e30532 |
| 28-Sep-2011 |
Andrew Trick <atrick@apple.com> |
indvars should hoist [sz]ext because licm is not rerun.
llvm-svn: 140670
|
#
74111ee0 |
| 15-Sep-2011 |
Andrew Trick <atrick@apple.com> |
Reapply r139759. Disable IV rewriting by default. See PR10916.
llvm-svn: 139842
|
#
f9f68b81 |
| 13-Sep-2011 |
Andrew Trick <atrick@apple.com> |
[indvars] Revert r139579 until 401.bzip -arch i386 miscompilation is fixed. PR10920.
llvm-svn: 139583
|
#
061d811c |
| 13-Sep-2011 |
Andrew Trick <atrick@apple.com> |
Disable IV rewriting by default. See PR10916.
llvm-svn: 139579
|
#
3de5b8e4 |
| 13-Sep-2011 |
Andrew Trick <atrick@apple.com> |
[indvars] Fix bugs in floating point IV range checks noticed by inspection.
llvm-svn: 139574
|
#
183013d8 |
| 12-Sep-2011 |
Andrew Trick <atrick@apple.com> |
Rename -disable-iv-rewrite to -enable-iv-rewrite=false in preparation for default change.
llvm-svn: 139517
|
#
c7868bf0 |
| 10-Sep-2011 |
Andrew Trick <atrick@apple.com> |
[disable-iv-rewrite] Allow WidenIV to handle NSW/NUW operations better.
Don't immediately give up when an add operation can't be trivially sign/zero-extended within a loop. If it has NSW/NUW flags,
[disable-iv-rewrite] Allow WidenIV to handle NSW/NUW operations better.
Don't immediately give up when an add operation can't be trivially sign/zero-extended within a loop. If it has NSW/NUW flags, generate a new expression with sign extended (non-recurrent) operand. As before, if SCEV says that all sign extends are loop invariant, then we can widen the operation.
llvm-svn: 139453
show more ...
|
#
465f42ff |
| 09-Sep-2011 |
Andrew Trick <atrick@apple.com> |
Comment formatting.
llvm-svn: 139375
|
#
1eee7f12 |
| 06-Sep-2011 |
Andrew Trick <atrick@apple.com> |
Add -verify-indvars for imperfect SCEV trip count verification after indvars.
llvm-svn: 139169
|
#
eed1e890 |
| 26-Aug-2011 |
Bill Wendling <isanbard@gmail.com> |
Don't sink landingpad instructions during ind-var simplification.
llvm-svn: 138651
|
#
0902a68f |
| 24-Aug-2011 |
Bill Wendling <isanbard@gmail.com> |
Use getFirstInsertionPt instead of getFirstNonPHI so that it skips to the proper insertion place.
llvm-svn: 138473
|