History log of /llvm-project/llvm/lib/Analysis/ScalarEvolution.cpp (Results 1051 – 1075 of 2089)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# f0022125 28-Sep-2016 Sanjoy Das <sanjoy@playingwithpointers.com>

[SCEV] Use a SmallPtrSet as a temporary union predicate; NFC

Summary:
Instead of creating and destroying SCEVUnionPredicate instances (which
internally creates and destroys a DenseMap), use temporar

[SCEV] Use a SmallPtrSet as a temporary union predicate; NFC

Summary:
Instead of creating and destroying SCEVUnionPredicate instances (which
internally creates and destroys a DenseMap), use temporary SmallPtrSet
instances of remember the set of predicates that will get reified into a
SCEVUnionPredicate.

Reviewers: silviu.baranga, sbaranga

Subscribers: sanjoy, mcrosier, llvm-commits, mzolotukhin

Differential Revision: https://reviews.llvm.org/D25000

llvm-svn: 282606

show more ...


# 237c8454 27-Sep-2016 Sanjoy Das <sanjoy@playingwithpointers.com>

[SCEV] Replace a struct with a function; NFC

We can do this now thanks to C++11 lambdas.

llvm-svn: 282515


# a2602141 27-Sep-2016 Sanjoy Das <sanjoy@playingwithpointers.com>

[SCEV] Use find instead of find_as; NFC

We don't need the extra generality here.

llvm-svn: 282514


# c220ac79 27-Sep-2016 Sanjoy Das <sanjoy@playingwithpointers.com>

[SCEV] Reduce the scope of a struct; NFC

llvm-svn: 282513


# c46bceb6 27-Sep-2016 Sanjoy Das <sanjoy@playingwithpointers.com>

[SCEV] Remove custom RAII wrapper; NFC

Instead use the pre-existing `scope_exit` class.

llvm-svn: 282512


# db933757 27-Sep-2016 Sanjoy Das <sanjoy@playingwithpointers.com>

[SCEV] Make PendingLoopPredicates more frugal; NFCI

I don't expect `PendingLoopPredicates` to have very many
elements (e.g. when -O3'ing the sqlite3 amalgamation,
`PendingLoopPredicates` has at most

[SCEV] Make PendingLoopPredicates more frugal; NFCI

I don't expect `PendingLoopPredicates` to have very many
elements (e.g. when -O3'ing the sqlite3 amalgamation,
`PendingLoopPredicates` has at most 3 elements). So now we use a
`SmallPtrSet` for it instead of the more heavyweight `DenseSet`.

llvm-svn: 282511

show more ...


# 68abda52 26-Sep-2016 Chandler Carruth <chandlerc@gmail.com>

[SCEV] Fix the order of members in the initializer list.

Noticed due to the warning on this line. Sanjoy is on
a less-than-awesome internet connection, so committing on his behalf.

llvm-svn: 282380


# 5cb11b64 26-Sep-2016 Sanjoy Das <sanjoy@playingwithpointers.com>

[SCEV] Assign LoopPropertiesCache in the move constructor

In a previous change I collapsed two different caches into one. When
doing that I noticed that ScalarEvolution's move constructor was not
m

[SCEV] Assign LoopPropertiesCache in the move constructor

In a previous change I collapsed two different caches into one. When
doing that I noticed that ScalarEvolution's move constructor was not
moving those caches.

To keep the previous change simple, I've moved that bugfix into this
separate change.

llvm-svn: 282376

show more ...


# 5603fc00 26-Sep-2016 Sanjoy Das <sanjoy@playingwithpointers.com>

[SCEV] Combine two predicates into one; NFC

Both `loopHasNoSideEffects` and `loopHasNoAbnormalExits` involve walking
the loop and maintaining similar sorts of caches. This commit changes
SCEV to co

[SCEV] Combine two predicates into one; NFC

Both `loopHasNoSideEffects` and `loopHasNoAbnormalExits` involve walking
the loop and maintaining similar sorts of caches. This commit changes
SCEV to compute both the predicates via a single walk, and maintain a
single cache instead of two.

llvm-svn: 282375

show more ...


# 5c4869b3 26-Sep-2016 Sanjoy Das <sanjoy@playingwithpointers.com>

[SCEV] Make it obvious BackedgeTakenInfo's constructor steals storage

Specifically, it moves SCEVUnionPredicates from its input into its own
storage. Make this obvious at the type level.

llvm-svn:

[SCEV] Make it obvious BackedgeTakenInfo's constructor steals storage

Specifically, it moves SCEVUnionPredicates from its input into its own
storage. Make this obvious at the type level.

llvm-svn: 282374

show more ...


# 6b76cdf0 26-Sep-2016 Sanjoy Das <sanjoy@playingwithpointers.com>

[SCEV] Further isolate incidental data structure; NFC

llvm-svn: 282373


# 7326861a 26-Sep-2016 Sanjoy Das <sanjoy@playingwithpointers.com>

[SCEV] Simplify BackedgeTakenInfo::getMax; NFC

llvm-svn: 282372


# e935c77e 25-Sep-2016 Sanjoy Das <sanjoy@playingwithpointers.com>

[SCEV] Reserve space in SmallVector; NFC

llvm-svn: 282368


# c9bbf563 25-Sep-2016 Sanjoy Das <sanjoy@playingwithpointers.com>

[SCEV] Have ExitNotTakenInfo keep a pointer to its predicate; NFC

SCEVUnionPredicate is a "heavyweight" structure, so it is beneficial to
store the (optional) data out of line.

llvm-svn: 282366


# d1eb62ad 25-Sep-2016 Sanjoy Das <sanjoy@playingwithpointers.com>

[SCEV] Simplify tracking ExitNotTakenInfo instances; NFC

This change simplifies a data structure optimization in the
`BackedgeTakenInfo` class for loops with exactly one computable exit.

I've sanit

[SCEV] Simplify tracking ExitNotTakenInfo instances; NFC

This change simplifies a data structure optimization in the
`BackedgeTakenInfo` class for loops with exactly one computable exit.

I've sanity checked that this does not regress compile time performance,
using sqlite3's amalgamated build.

llvm-svn: 282365

show more ...


# 89eea6b2 25-Sep-2016 Sanjoy Das <sanjoy@playingwithpointers.com>

[SCEV] Rename a couple of fields; NFC

llvm-svn: 282364


# bdd97102 25-Sep-2016 Sanjoy Das <sanjoy@playingwithpointers.com>

[SCEV] Remove incidental data structure; NFC

llvm-svn: 282363


# 8bbabee2 16-Sep-2016 David L Kreitzer <david.l.kreitzer@intel.com>

Reapplying r278731 after fixing the problem that caused it to be reverted.

Enhance SCEV to compute the trip count for some loops with unknown stride.

Patch by Pankaj Chawla

Differential Revision:

Reapplying r278731 after fixing the problem that caused it to be reverted.

Enhance SCEV to compute the trip count for some loops with unknown stride.

Patch by Pankaj Chawla

Differential Revision: https://reviews.llvm.org/D22377

llvm-svn: 281732

show more ...


Revision tags: llvmorg-3.9.0, llvmorg-3.9.0-rc3, llvmorg-3.9.0-rc2
# 3879035e 17-Aug-2016 Hans Wennborg <hans@hanshq.net>

SCEV: Don't assert about non-SCEV-able value in isSCEVExprNeverPoison() (PR28932)

Differential Revision: https://reviews.llvm.org/D23594

llvm-svn: 278999


# cd1d5aaf 17-Aug-2016 Justin Bogner <mail@justinbogner.com>

Replace a few more "fall through" comments with LLVM_FALLTHROUGH

Follow up to r278902. I had missed "fall through", with a space.

llvm-svn: 278970


# b99b7090 16-Aug-2016 Reid Kleckner <rnk@google.com>

Revert "Enhance SCEV to compute the trip count for some loops with unknown stride."

This reverts commit r278731. It caused http://crbug.com/638314

llvm-svn: 278853


# 7fe18251 15-Aug-2016 David L Kreitzer <david.l.kreitzer@intel.com>

Enhance SCEV to compute the trip count for some loops with unknown stride.

Patch by Pankaj Chawla

Differential Revision: https://reviews.llvm.org/D22377

llvm-svn: 278731


# c700490f 12-Aug-2016 David Majnemer <david.majnemer@gmail.com>

Use the range variant of remove_if instead of unpacking begin/end

No functionality change is intended.

llvm-svn: 278475


# 785858cf 09-Aug-2016 Wei Mi <wmi@google.com>

Recommit "Use ValueOffsetPair to enhance value reuse during SCEV expansion".

The fix for PR28705 will be committed consecutively.

In D12090, the ExprValueMap was added to reuse existing value durin

Recommit "Use ValueOffsetPair to enhance value reuse during SCEV expansion".

The fix for PR28705 will be committed consecutively.

In D12090, the ExprValueMap was added to reuse existing value during SCEV expansion.
However, const folding and sext/zext distribution can make the reuse still difficult.

A simplified case is: suppose we know S1 expands to V1 in ExprValueMap, and
S1 = S2 + C_a
S3 = S2 + C_b
where C_a and C_b are different SCEVConstants. Then we'd like to expand S3 as
V1 - C_a + C_b instead of expanding S2 literally. It is helpful when S2 is a
complex SCEV expr and S2 has no entry in ExprValueMap, which is usually caused
by the fact that S3 is generated from S1 after const folding.

In order to do that, we represent ExprValueMap as a mapping from SCEV to
ValueOffsetPair. We will save both S1->{V1, 0} and S2->{V1, C_a} into the
ExprValueMap when we create SCEV for V1. When S3 is expanded, it will first
expand S2 to V1 - C_a because of S2->{V1, C_a} in the map, then expand S3 to
V1 - C_a + C_b.

Differential Revision: https://reviews.llvm.org/D21313

llvm-svn: 278160

show more ...


# 36e0d01e 09-Aug-2016 Sean Silva <chisophugis@gmail.com>

Consistently use FunctionAnalysisManager

Besides a general consistently benefit, the extra layer of indirection
allows the mechanical part of https://reviews.llvm.org/D23256 that
requires touching e

Consistently use FunctionAnalysisManager

Besides a general consistently benefit, the extra layer of indirection
allows the mechanical part of https://reviews.llvm.org/D23256 that
requires touching every transformation and analysis to be factored out
cleanly.

Thanks to David for the suggestion.

llvm-svn: 278077

show more ...


1...<<41424344454647484950>>...84