#
7cac9577 |
| 02-Aug-2010 |
Dan Gohman <gohman@apple.com> |
Make SCEVUnknown a CallbackVH, so that it can be notified directly of Value deletions and RAUWs, instead of relying on ScalarEvolution's Scalars map being notified, as that's complicated at best, and
Make SCEVUnknown a CallbackVH, so that it can be notified directly of Value deletions and RAUWs, instead of relying on ScalarEvolution's Scalars map being notified, as that's complicated at best, and insufficient in general.
This means SCEVUnknown needs a non-trivial destructor, so introduce a mechanism to allow ScalarEvolution to locate all the SCEVUnknowns.
llvm-svn: 110086
show more ...
|
#
40b31ad3 |
| 02-Aug-2010 |
Oscar Fuentes <ofv@wanadoo.es> |
Prefix `next' iterator operation with `llvm::'.
Fixes potential ambiguity problems on VS 2010.
Patch by nobled!
llvm-svn: 110029
|
#
ef6d5933 |
| 29-Jul-2010 |
Eric Christopher <echristo@apple.com> |
Speculatively revert r109705 since it seems to be causing some build bot angst.
llvm-svn: 109718
|
#
3d6ac44d |
| 29-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Factor out some of the code for updating old SCEVUnknown values, and extend it to handle the case where multiple RAUWs affect a single SCEVUnknown.
Add a ScalarEvolution unittest to test for this si
Factor out some of the code for updating old SCEVUnknown values, and extend it to handle the case where multiple RAUWs affect a single SCEVUnknown.
Add a ScalarEvolution unittest to test for this situation.
llvm-svn: 109705
show more ...
|
#
7a066723 |
| 28-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Make SCEVCallbackVH::allUsesReplacedWith update the old SCEVUnknown object, as it may still be referenced by SCEVs not cleaned up by the use list traversal.
Also, in ScalarEvolution::forgetValue, on
Make SCEVCallbackVH::allUsesReplacedWith update the old SCEVUnknown object, as it may still be referenced by SCEVs not cleaned up by the use list traversal.
Also, in ScalarEvolution::forgetValue, only check for a SCEVUnknown object for the original value, not for any value in the use list, because other SCEVUnknown values aren't necessary obsolete at that point.
llvm-svn: 109570
show more ...
|
#
8aeb0fb5 |
| 28-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Make SCEVCallbackVH::allUsesReplacedWith unconditionally delete the old value.
llvm-svn: 109567
|
#
5ae31024 |
| 23-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Micro-optimize SCEVComplexityCompare.
llvm-svn: 109267
|
#
992db006 |
| 23-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Add a const qualifier.
llvm-svn: 109266
|
#
dde79d8f |
| 22-Jul-2010 |
Gabor Greif <ggreif@gmail.com> |
mass elimination of reliance on automatic iterator dereferencing
llvm-svn: 109103
|
#
a57b97e7 |
| 21-Jul-2010 |
Owen Anderson <resistor@mac.com> |
Fix batch of converting RegisterPass<> to INTIALIZE_PASS().
llvm-svn: 109045
|
#
46f00a25 |
| 20-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Add a fast path for x - x.
llvm-svn: 108855
|
#
64b1e82a |
| 15-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Teach ScalarEvolution how to fold trunc(undef) and anyext(undef) to undef. This helps LSR behave more consistently on bugpoint-reduced testcases.
llvm-svn: 108451
|
#
f638f4ff |
| 30-Jun-2010 |
Dan Gohman <gohman@apple.com> |
In ScalarEvolution::forgetValue, eliminate any SCEVUnknown entries associated with the value being erased in the folding set map. These entries used to be harmless, because a SCEVUnknown doesn't sto
In ScalarEvolution::forgetValue, eliminate any SCEVUnknown entries associated with the value being erased in the folding set map. These entries used to be harmless, because a SCEVUnknown doesn't store any information about its Value*, so having a new Value allocated at the old Value's address wasn't a problem. But now that ScalarEvolution is storing more information about values, this is no longer safe.
llvm-svn: 107316
show more ...
|
#
c0cca7fd |
| 30-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Revert the part of r107257 which introduced new logic for using nsw and nuw flags from IR Instructions. On further consideration, this isn't valid.
llvm-svn: 107298
|
#
16206132 |
| 30-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Improve ScalarEvolution's nsw and nuw preservation.
llvm-svn: 107257
|
#
9396b42c |
| 30-Jun-2010 |
Dan Gohman <gohman@apple.com> |
When computing a new ConservativeResult, intersect it with the old one instead of replacing it, to be more precise.
llvm-svn: 107256
|
#
ae36b1ed |
| 29-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Fix ScalarEvolution's tripcount computation for chains of loops where each loop's induction variable's start value is the exit value of a preceding loop.
llvm-svn: 107224
|
#
90db61d6 |
| 29-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Just as its not safe to blindly transfer the nsw bit from an add instruction to an add scev, it's not safe to blindly transfer the inbounds flag from a gep instruction to an nsw on the scev for the g
Just as its not safe to blindly transfer the nsw bit from an add instruction to an add scev, it's not safe to blindly transfer the inbounds flag from a gep instruction to an nsw on the scev for the gep.
llvm-svn: 107117
show more ...
|
#
89dd42af |
| 25-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Eliminate a redundant FoldingSet lookup.
llvm-svn: 106872
|
#
5235cc2c |
| 24-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Don't try to preserve pointer types in SCEVConstants; the old code was over-complicated.
llvm-svn: 106760
|
#
3ace9f4e |
| 24-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Make the trunc code consistent with the zext and sext code in its handling of pointer types.
llvm-svn: 106757
|
#
75c6b0bb |
| 22-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Replace ScalarEvolution's private copy of getLoopPredecessor with LoopInfo's public copy.
llvm-svn: 106603
|
#
f820bd32 |
| 22-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Allow "exhaustive" trip count evaluation on phi nodes with all constant operands.
llvm-svn: 106537
|
#
dd41bba5 |
| 21-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Use A.append(...) instead of A.insert(A.end(), ...) when A is a SmallVector, and other SmallVector simplifications.
llvm-svn: 106452
|
#
866971ed |
| 19-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Fix ScalarEvolution's "exhaustive" trip count evaluation code to avoid assuming that loops are in canonical form, as ScalarEvolution doesn't depend on LoopSimplify itself. Also, with indirectbr not a
Fix ScalarEvolution's "exhaustive" trip count evaluation code to avoid assuming that loops are in canonical form, as ScalarEvolution doesn't depend on LoopSimplify itself. Also, with indirectbr not all loops can be simplified. This fixes PR7416.
llvm-svn: 106389
show more ...
|