#
13958b73 |
| 22-Jul-2015 |
Hans Wennborg <hans@hanshq.net> |
Fix -Wextra-semi warnings.
Patch by Eugene Zelenko!
Differential Revision: http://reviews.llvm.org/D11400
llvm-svn: 242930
|
#
135e5b9d |
| 21-Jul-2015 |
Sanjoy Das <sanjoy@playingwithpointers.com> |
[SCEV][NFC] Fix a typo in a comment.
llvm-svn: 242834
|
Revision tags: llvmorg-3.7.0-rc1 |
|
#
3cdc37c5 |
| 29-Jun-2015 |
Tobias Grosser <tobias@grosser.es> |
Move delinearization from SCEVAddRecExpr to ScalarEvolution
The expressions we delinearize do not necessarily have to have a SCEVAddRecExpr at the outermost level. At this moment, the additional fle
Move delinearization from SCEVAddRecExpr to ScalarEvolution
The expressions we delinearize do not necessarily have to have a SCEVAddRecExpr at the outermost level. At this moment, the additional flexibility is not exploited in LLVM itself, but in Polly we will soon soonish use this functionality. For LLVM, this change should not affect existing functionality (which is covered by test/Analysis/Delinearization/)
llvm-svn: 240952
show more ...
|
Revision tags: llvmorg-3.6.2, llvmorg-3.6.2-rc1 |
|
#
f00654e3 |
| 23-Jun-2015 |
Alexander Kornienko <alexfh@google.com> |
Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC)
Apparently, the style needs to be agreed upon first.
llvm-svn: 240390
|
#
70bc5f13 |
| 19-Jun-2015 |
Alexander Kornienko <alexfh@google.com> |
Fixed/added namespace ending comments using clang-tidy. NFC
The patch is generated using this command:
tools/clang/tools/extra/clang-tidy/tool/run-clang-tidy.py -fix \ -checks=-*,llvm-namespace-c
Fixed/added namespace ending comments using clang-tidy. NFC
The patch is generated using this command:
tools/clang/tools/extra/clang-tidy/tool/run-clang-tidy.py -fix \ -checks=-*,llvm-namespace-comment -header-filter='llvm/.*|clang/.*' \ llvm/lib/
Thanks to Eugene Kosov for the original patch!
llvm-svn: 240137
show more ...
|
#
2982d4d7 |
| 18-May-2015 |
Jingyue Wu <jingyue@google.com> |
[ScalarEvolution] refactor: extract interface getGEPExpr
Summary: This allows other passes (such as SLSR) to compute the SCEV expression for an imaginary GEP.
Test Plan: no regression
Reviewers: a
[ScalarEvolution] refactor: extract interface getGEPExpr
Summary: This allows other passes (such as SLSR) to compute the SCEV expression for an imaginary GEP.
Test Plan: no regression
Reviewers: atrick, sanjoy
Reviewed By: sanjoy
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D9786
llvm-svn: 237589
show more ...
|
Revision tags: llvmorg-3.6.1, llvmorg-3.6.1-rc1 |
|
#
f9751ad1 |
| 22-Apr-2015 |
Brendon Cahoon <bcahoon@codeaurora.org> |
Fix a type mismatch assert in SCEV division
An assert was triggered when attempting to create a new SCEV with operands of different types in the visitAddRecExpr. In this test case, the operand types
Fix a type mismatch assert in SCEV division
An assert was triggered when attempting to create a new SCEV with operands of different types in the visitAddRecExpr. In this test case, the operand types of the numerator and denominator are different. The SCEV division code should generate a conservative answer when this happens.
Differential Revision: http://reviews.llvm.org/D9021
llvm-svn: 235511
show more ...
|
#
a57cc8bc |
| 20-Apr-2015 |
Brendon Cahoon <bcahoon@codeaurora.org> |
Recognize n/1 in the SCEV divide function
n/1 generates a quotient equal to n and a remainder of 0. If this case is not recognized, then the SCEV divide() function can return a remainder that is gre
Recognize n/1 in the SCEV divide function
n/1 generates a quotient equal to n and a remainder of 0. If this case is not recognized, then the SCEV divide() function can return a remainder that is greater than or equal to the denominator, which means the delinearized subscripts for the test case will be incorrect.
Differential Revision: http://reviews.llvm.org/D9003
llvm-svn: 235311
show more ...
|
#
4a2e73b0 |
| 02-Apr-2015 |
David Blaikie <dblaikie@gmail.com> |
[opaque pointer type] API migration for GEP constant factories
Require the pointee type to be passed explicitly and assert that it is correct. For now it's possible to pass nullptr here (and I've do
[opaque pointer type] API migration for GEP constant factories
Require the pointee type to be passed explicitly and assert that it is correct. For now it's possible to pass nullptr here (and I've done so in a few places in this patch) but eventually that will be disallowed once all clients have been updated or removed. It'll be a long road to get all the way there... but if you have the cahnce to update your callers to pass the type explicitly without depending on a pointer's element type, that would be a good thing to do soon and a necessary thing to do eventually.
llvm-svn: 233938
show more ...
|
#
b864c1f7 |
| 01-Apr-2015 |
Sanjoy Das <sanjoy@playingwithpointers.com> |
[SCEV] Look at backedge dominating conditions (re-land r233447).
Summary: This change teaches ScalarEvolution::isLoopBackedgeGuardedByCond to look at edges within the loop body that dominate the lat
[SCEV] Look at backedge dominating conditions (re-land r233447).
Summary: This change teaches ScalarEvolution::isLoopBackedgeGuardedByCond to look at edges within the loop body that dominate the latch. We don't do an exhaustive search for all possible edges, but only a quick walk up the dom tree.
This re-lands r233447. r233447 was reverted because it caused massive compile-time regressions. This change has a fix for the same issue.
llvm-svn: 233829
show more ...
|
#
87e848c7 |
| 30-Mar-2015 |
Daniel Jasper <djasper@google.com> |
Revert "[SCEV] Look at backedge dominating conditions."
This leads to terribly slow compile times under MSAN. More discussion on the commit thread of r233447.
llvm-svn: 233529
|
#
fe0e0fff |
| 27-Mar-2015 |
Sanjoy Das <sanjoy@playingwithpointers.com> |
[SCEV] Look at backedge dominating conditions.
Summary: This change teaches ScalarEvolution::isLoopBackedgeGuardedByCond to look at edges within the loop body that dominate the latch. We don't do a
[SCEV] Look at backedge dominating conditions.
Summary: This change teaches ScalarEvolution::isLoopBackedgeGuardedByCond to look at edges within the loop body that dominate the latch. We don't do an exhaustive search for all possible edges, but only a quick walk up the dom tree.
Reviewers: atrick, hfinkel
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D8627
llvm-svn: 233447
show more ...
|
#
14598830 |
| 26-Mar-2015 |
Sanjoy Das <sanjoy@playingwithpointers.com> |
[SCEV] Revert bailout added in r75511.
Summary: With the introduction of MarkPendingLoopPredicates in r157092, I don't think the bailout is needed anymore.
Reviewers: atrick, nicholas
Subscribers:
[SCEV] Revert bailout added in r75511.
Summary: With the introduction of MarkPendingLoopPredicates in r157092, I don't think the bailout is needed anymore.
Reviewers: atrick, nicholas
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D8624
llvm-svn: 233296
show more ...
|
#
19ef0d3b |
| 24-Mar-2015 |
David Blaikie <dblaikie@gmail.com> |
Refactor: Simplify boolean expressions in lib/Analysis
Simplify boolean expressions using `true` and `false` with `clang-tidy`
Patch by Richard Thomson.
Reviewed By: nlewycky
Differential Revisio
Refactor: Simplify boolean expressions in lib/Analysis
Simplify boolean expressions using `true` and `false` with `clang-tidy`
Patch by Richard Thomson.
Reviewed By: nlewycky
Differential Revision: http://reviews.llvm.org/D8528
llvm-svn: 233091
show more ...
|
#
2ce2832c |
| 20-Mar-2015 |
Nick Lewycky <nicholas@mxc.ca> |
Fix comment from r232794. NFC
llvm-svn: 232796
|
#
be8af488 |
| 20-Mar-2015 |
Nick Lewycky <nicholas@mxc.ca> |
When simplifying a SCEV truncate by distributing, consider it a simplification to replace a cast, even if we end up with a trunc around the term. Fixes PR22960!
llvm-svn: 232794
|
#
cb8bca17 |
| 18-Mar-2015 |
Sanjoy Das <sanjoy@playingwithpointers.com> |
[SCEV] Make isImpliedCond smarter.
Summary: This change teaches isImpliedCond to infer things like "X sgt 0" => "X - 1 sgt -1". The `ConstantRange` class has the logic to do the heavy lifting, this
[SCEV] Make isImpliedCond smarter.
Summary: This change teaches isImpliedCond to infer things like "X sgt 0" => "X - 1 sgt -1". The `ConstantRange` class has the logic to do the heavy lifting, this change simply gets ScalarEvolution to exploit that when reasonable.
Depends on D8345
Reviewers: atrick
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D8346
llvm-svn: 232576
show more ...
|
Revision tags: llvmorg-3.5.2, llvmorg-3.5.2-rc1 |
|
#
b6ef9a14 |
| 13-Mar-2015 |
Nick Lewycky <nicholas@mxc.ca> |
When forming an addrec out of a phi don't just look at the last computation and steal its flags for our own, there may be other computations in the middle. Check whether the LHS of the computation is
When forming an addrec out of a phi don't just look at the last computation and steal its flags for our own, there may be other computations in the middle. Check whether the LHS of the computation is the phi itself and then we know it's safe to steal the flags. Fixes PR22795.
There's a missed optimization opportunity where we could look at the full chain of computation and take the intersection of the flags instead of only looking one instruction deep.
llvm-svn: 232134
show more ...
|
#
a28d91d8 |
| 10-Mar-2015 |
Mehdi Amini <mehdi.amini@apple.com> |
DataLayout is mandatory, update the API to reflect it with references.
Summary: Now that the DataLayout is a mandatory part of the module, let's start cleaning the codebase. This patch is a first at
DataLayout is mandatory, update the API to reflect it with references.
Summary: Now that the DataLayout is a mandatory part of the module, let's start cleaning the codebase. This patch is a first attempt at doing that.
This patch is not exactly NFC as for instance some places were passing a nullptr instead of the DataLayout, possibly just because there was a default value on the DataLayout argument to many functions in the API. Even though it is not purely NFC, there is no change in the validation.
I turned as many pointer to DataLayout to references, this helped figuring out all the places where a nullptr could come up.
I had initially a local version of this patch broken into over 30 independant, commits but some later commit were cleaning the API and touching part of the code modified in the previous commits, so it seemed cleaner without the intermediate state.
Test Plan:
Reviewers: echristo
Subscribers: llvm-commits
From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 231740
show more ...
|
#
91b5477a |
| 09-Mar-2015 |
Sanjoy Das <sanjoy@playingwithpointers.com> |
[SCEV] Unify getUnsignedRange and getSignedRange
Summary: This removes some duplicated code, and also helps optimization: e.g. in the test case added, `%idx ULT 128` in `@x` is not currently optimiz
[SCEV] Unify getUnsignedRange and getSignedRange
Summary: This removes some duplicated code, and also helps optimization: e.g. in the test case added, `%idx ULT 128` in `@x` is not currently optimized to `true` by `-indvars` but will be, after this change.
The only functional change in ths commit is that for add recurrences, ScalarEvolution::getRange will be more aggressive -- computing the unsigned (resp. signed) range for a SCEVAddRecExpr will now look at the NSW (resp. NUW) bits and check for signed (resp. unsigned) overflow. This can be a strict improvement in some cases (such as the attached test case), and should be no worse in other cases.
Reviewers: atrick, nlewycky
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D8142
llvm-svn: 231709
show more ...
|
#
f2574529 |
| 09-Mar-2015 |
Sanjoy Das <sanjoy@playingwithpointers.com> |
[SCEV] Add a `scalar-evolution-print-constant-ranges' option
Summary: Unused in this commit, but will be used in a subsequent change (D8142) by a FileCheck test.
Reviewers: atrick
Subscribers: llv
[SCEV] Add a `scalar-evolution-print-constant-ranges' option
Summary: Unused in this commit, but will be used in a subsequent change (D8142) by a FileCheck test.
Reviewers: atrick
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D8143
llvm-svn: 231708
show more ...
|
#
dc3f01e9 |
| 09-Mar-2015 |
David Blaikie <dblaikie@gmail.com> |
Simplify expressions involving boolean constants with clang-tidy
Patch by Richard (legalize at xmission dot com).
Differential Revision: http://reviews.llvm.org/D8154
llvm-svn: 231617
|
#
8f49dd36 |
| 05-Mar-2015 |
NAKAMURA Takumi <geek4civic@gmail.com> |
ScalarEvolution.cpp: Appease g++-4.7. He missed implicit "this" in lambda.
llvm-svn: 231331
|
#
9e2c5010 |
| 04-Mar-2015 |
Sanjoy Das <sanjoy@playingwithpointers.com> |
[SCEV] make SCEV smarter about proving no-wrap.
Summary: Teach SCEV to prove no overflow for an add recurrence by proving something about the range of another add recurrence a loop-invariant distanc
[SCEV] make SCEV smarter about proving no-wrap.
Summary: Teach SCEV to prove no overflow for an add recurrence by proving something about the range of another add recurrence a loop-invariant distance away from it.
Reviewers: atrick, hfinkel
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D7980
llvm-svn: 231305
show more ...
|
#
46a43556 |
| 04-Mar-2015 |
Mehdi Amini <mehdi.amini@apple.com> |
Make DataLayout Non-Optional in the Module
Summary: DataLayout keeps the string used for its creation.
As a side effect it is no longer needed in the Module. This is "almost" NFC, the string is no
Make DataLayout Non-Optional in the Module
Summary: DataLayout keeps the string used for its creation.
As a side effect it is no longer needed in the Module. This is "almost" NFC, the string is no longer canonicalized, you can't rely on two "equals" DataLayout having the same string returned by getStringRepresentation().
Get rid of DataLayoutPass: the DataLayout is in the Module
The DataLayout is "per-module", let's enforce this by not duplicating it more than necessary. One more step toward non-optionality of the DataLayout in the module.
Make DataLayout Non-Optional in the Module
Module->getDataLayout() will never returns nullptr anymore.
Reviewers: echristo
Subscribers: resistor, llvm-commits, jholewinski
Differential Revision: http://reviews.llvm.org/D7992
From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 231270
show more ...
|