#
ed39bb8e |
| 05-Oct-2011 |
Andrew Trick <atrick@apple.com> |
Typo. Thanks Bob.
llvm-svn: 141188
|
#
f6567a13 |
| 05-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Fix a broken assert found by -Wparentheses.
llvm-svn: 141168
|
#
e9162f1f |
| 05-Oct-2011 |
Andrew Trick <atrick@apple.com> |
Fix disabled SCEV analysis caused r141161 and add unit test.
I noticed during self-review that my previous checkin disabled some analysis. Even with the reenabled analysis the test case runs in abou
Fix disabled SCEV analysis caused r141161 and add unit test.
I noticed during self-review that my previous checkin disabled some analysis. Even with the reenabled analysis the test case runs in about 5ms. Without the fix, it will take several minutes at least.
llvm-svn: 141164
show more ...
|
#
3a86ba76 |
| 05-Oct-2011 |
Andrew Trick <atrick@apple.com> |
Avoid exponential recursion in SCEV getConstantEvolvingPHI and EvaluateExpression.
Note to compiler writers: never recurse on multiple instruction operands without memoization. Fixes rdar://10187945
Avoid exponential recursion in SCEV getConstantEvolvingPHI and EvaluateExpression.
Note to compiler writers: never recurse on multiple instruction operands without memoization. Fixes rdar://10187945. Was taking 45s, now taking 5ms.
llvm-svn: 141161
show more ...
|
#
287682ea |
| 04-Oct-2011 |
Nick Lewycky <nicholas@mxc.ca> |
The product of two chrec's can always be represented as a chrec.
llvm-svn: 141066
|
#
31555524 |
| 03-Oct-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Reapply r140979 with fix! We never did get a testcase, but careful review of the logic by David Meyer revealed this bug.
llvm-svn: 140992
|
#
b1dbce14 |
| 03-Oct-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Revert r140979 due to reports of bootstrap failure.
llvm-svn: 140980
|
#
3c624b8d |
| 03-Oct-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Add one more case we compute a max trip count.
llvm-svn: 140979
|
#
ef8e4eff |
| 28-Sep-2011 |
Andrew Trick <atrick@apple.com> |
indvars: generalize SCEV getPreStartForSignExtend.
Handle general Add expressions to avoid leaving around redundant 32-bit IVs.
llvm-svn: 140701
|
#
a51d74fc |
| 10-Sep-2011 |
Andrew Trick <atrick@apple.com> |
Set NSW/NUW flags on SCEVAddExpr when the operation is flagged as such.
I'm doing this now for completeness because I can't think of/remember any reason that it was left out. I'm not sure it will he
Set NSW/NUW flags on SCEVAddExpr when the operation is flagged as such.
I'm doing this now for completeness because I can't think of/remember any reason that it was left out. I'm not sure it will help anything, but if we don't do it we need to explain why in comments.
llvm-svn: 139450
show more ...
|
#
e0aa54bb |
| 06-Sep-2011 |
Nick Lewycky <nicholas@mxc.ca> |
This transform only handles two-operand AddRec's. Prevent it from trying to handle anything more complex. Fixes PR10383 again!
llvm-svn: 139186
|
#
78664db0 |
| 06-Sep-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Fix typo in comment again.
llvm-svn: 139139
|
#
237878b7 |
| 06-Sep-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Apparently we compile the code, not the comments. Thanks Eli!
llvm-svn: 139138
|
#
0af94cc5 |
| 06-Sep-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Fix typo in comment.
llvm-svn: 139137
|
#
702cf1ec |
| 06-Sep-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Nope! I had it right the first time. Revert the operative part of r139135 and add more showing of my work.
llvm-svn: 139136
|
#
6f86e001 |
| 06-Sep-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Fix flipped sign. While there, show my math.
llvm-svn: 139135
|
#
db66b82d |
| 06-Sep-2011 |
Nick Lewycky <nicholas@mxc.ca> |
No no no, fix typo properly!
llvm-svn: 139134
|
#
658bdb51 |
| 06-Sep-2011 |
Nick Lewycky <nicholas@mxc.ca> |
The logic inside getMulExpr to simplify {a,+,b}*{c,+,d} was wrong, which was visible given a=b=c=d=1, on iteration #1 (the second iteration). Replace it with correct math. Fixes PR10383!
llvm-svn: 1
The logic inside getMulExpr to simplify {a,+,b}*{c,+,d} was wrong, which was visible given a=b=c=d=1, on iteration #1 (the second iteration). Replace it with correct math. Fixes PR10383!
llvm-svn: 139133
show more ...
|
#
b1438c76 |
| 06-Sep-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Revert r139126 due to selfhost failures reported by buildbots.
llvm-svn: 139130
|
#
c4c43fbb |
| 05-Sep-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Teach SCEV to report a max backedge count in one interesting case in HowFarToZero; the case for a canonical loop.
llvm-svn: 139126
|
#
bbb226a8 |
| 02-Sep-2011 |
Andrew Trick <atrick@apple.com> |
Comment and clarifying assert.
llvm-svn: 139036
|
#
2b6860f0 |
| 11-Aug-2011 |
Andrew Trick <atrick@apple.com> |
Allow loop unrolling to get known trip counts from ScalarEvolution.
SCEV unrolling can unroll loops with arbitrary induction variables. It is a prerequisite for -disable-iv-rewrite performance. It i
Allow loop unrolling to get known trip counts from ScalarEvolution.
SCEV unrolling can unroll loops with arbitrary induction variables. It is a prerequisite for -disable-iv-rewrite performance. It is also easily handles loops of arbitrary structure including multiple exits and is generally more robust.
This is under a temporary option to avoid affecting default behavior for the next couple of weeks. It is needed so that I can checkin unit tests for updateUnloop.
llvm-svn: 137384
show more ...
|
#
6d45a01b |
| 06-Aug-2011 |
Andrew Trick <atrick@apple.com> |
Made SCEV's UDiv expressions more canonical. When dividing a recurrence, the initial values low bits can sometimes be ignored.
To take advantage of this, added FoldIVUser to IndVarSimplify to fold a
Made SCEV's UDiv expressions more canonical. When dividing a recurrence, the initial values low bits can sometimes be ignored.
To take advantage of this, added FoldIVUser to IndVarSimplify to fold an IV operand into a udiv/lshr if the operator doesn't affect the result.
-indvars -disable-iv-rewrite now transforms
i = phi i4 i1 = i0 + 1 idx = i1 >> (2 or more) i4 = i + 4
into
i = phi i4 idx = i0 >> ... i4 = i + 4
llvm-svn: 137013
show more ...
|
#
77c55428 |
| 02-Aug-2011 |
Andrew Trick <atrick@apple.com> |
Use consistent terminology for loop exit/exiting blocks. Name change only.
llvm-svn: 136677
|
#
3ca3f98c |
| 26-Jul-2011 |
Andrew Trick <atrick@apple.com> |
SCEV: Added a data structure for storing not-taken info per loop exit. Added an interfaces for querying either the loop's exact/max backedge taken count or a specific loop exit's not-taken count.
ll
SCEV: Added a data structure for storing not-taken info per loop exit. Added an interfaces for querying either the loop's exact/max backedge taken count or a specific loop exit's not-taken count.
llvm-svn: 136100
show more ...
|