| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
The compiler does not seem to able move a local variable in the
function's return statement.
llvm-svn: 338466
|
|
|
|
| |
llvm-svn: 338462
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D49950
llvm-svn: 338461
|
|
|
|
| |
llvm-svn: 338451
|
|
|
|
| |
llvm-svn: 338450
|
|
|
|
| |
llvm-svn: 338449
|
|
|
|
| |
llvm-svn: 337248
|
|
|
|
| |
llvm-svn: 337247
|
|
|
|
| |
llvm-svn: 337246
|
|
|
|
| |
llvm-svn: 337245
|
|
|
|
| |
llvm-svn: 337244
|
|
|
|
| |
llvm-svn: 337243
|
|
|
|
| |
llvm-svn: 337242
|
|
|
|
| |
llvm-svn: 337241
|
|
|
|
|
|
|
|
|
|
| |
This time we replace for loops where the return isl::stat::error has
been used to carry status information.
There are still two uses of foreach remaining as we do not have a
corresponding for implementation for pw_aff functions.
llvm-svn: 337239
|
|
|
|
|
|
| |
Replace foreach calls which only return 'ok' with for loops.
llvm-svn: 337238
|
|
|
|
|
|
|
|
| |
After Philip added support for range-based for loops to our C++
bindings, we now convert another bunch of foreach calls to range-for loops.
This improves general readability of the code.
llvm-svn: 337201
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: This could simplify the isl iterator implementation a lot.
Reviewers: grosser, Meinersbur, bollu
Reviewed By: grosser
Subscribers: pollydev, llvm-commits
Differential Revision: https://reviews.llvm.org/D49019
llvm-svn: 337054
|
|
|
|
| |
llvm-svn: 336430
|
|
|
|
|
|
|
|
| |
This is a maintenance update. Besides many minor changes it ships two
functions "isl_*_list_size" and "isl_*_list_get_at" which will allow us
to simplify the iterator implementation in Polly.
llvm-svn: 336425
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: This patch updates the isl interface used in `foldSizeConstantsToRight()` to the new C++ interface.
Reviewers: chelini, grosser, philip.pfaffe, Meinersbur
Reviewed By: grosser
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D48965
llvm-svn: 336362
|
|
|
|
|
|
|
|
|
|
| |
ScalarEvolution::getSCEV dereferences its argument, s.t. passing nullptr
leads to undefined behaviour.
Check for nullptr before calling it instead of checking its argument
afterwards.
llvm-svn: 336350
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
It appears that llvm uses unbuffered C++ streams. So, we should not
mix C and C++ stream operations, because that will give us mixed
up output.
Reviewers: efriedma, jdoerfert, Meinersbur, gareevroman, sebpop, zinob, huihuiz, pollydev, grosser, singam-sanjay, philip.pfaffe
Reviewed By: philip.pfaffe
Subscribers: nemanjai, kbarton
Differential Revision: https://reviews.llvm.org/D40126
llvm-svn: 336288
|
|
|
|
|
|
|
|
|
| |
This change has no impact on upstream Polly directly, but reduces output
noise for some internal isl versions we are testing. In general, storing
simpler and more canonical output is a good idea. Hence, it seems useful
to upstream this change.
llvm-svn: 336281
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This patch adds <isl_space.h> to gpu_tree.c. This prevents a segfault
when allocating a new isl_space in the function create_sync_domain(), as
the compiler now knows that the return type is a pointer instead of
assuming the function returns an int.
This has been updated in upstream PPCG, so we should bump up our PPCG
version.
Initially discovered by Philip Pfaffe in Polly.
Reviewers: grosser, bollu, philip.pfaffe
Reviewed By: bollu
Subscribers: nemanjai, kbarton, llvm-commits
Differential Revision: https://reviews.llvm.org/D48883
Contributed-by: Alain Denzler <alaindenzler@gmail.com>
llvm-svn: 336251
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This patch changes the return types for ocl_get_* functions during SPIR code generation. Because these functions return size_t types, the return type needs to be changed to the actual size of size_t on the device.
Based on work by Michal Babej and Pekka Jääskeläinen
Patch by: Alain Denzler
Reviewers: grosser, philip.pfaffe, bollu
Reviewed By: grosser, philip.pfaffe
Subscribers: nemanjai, kbarton, llvm-commits
Differential Revision: https://reviews.llvm.org/D48774
llvm-svn: 336080
|
|
|
|
| |
llvm-svn: 335971
|
|
|
|
|
|
|
| |
Thanks to Philip Pfaffe for providing iterator support in the previous
commit.
llvm-svn: 335970
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: This patch aims to provide support for detecting load patterns which are collectively invariant but right now `isHoistableLoad()` is checking each load instruction individually which cannot detect the load pattern as a whole.
Patch by: Sahil Girish Yerawar
Reviewers: bollu, philip.pfaffe, Meinersbur
Reviewed By: philip.pfaffe, Meinersbur
Differential Revision: https://reviews.llvm.org/D48026
llvm-svn: 335949
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The number of SCEV expressions is usually linear in the number of IR
instructions being modeled. However, a naive SCEV visitor is not. For
an expression like x*x, "x" will be visited twice. If x is itself an
expression like x*x, that will be visited twice, etc, and the overall
runtime is O(2^N) in the number of SCEV expressions.
To prevent this from happening, add a cache, so we only visit each SCEV
expression once.
Not sure this is the best solution. Maybe we can instead check whether
the SCEV is scop-invariant (in which case we never need to map the
value). But we don't have a utility for that at the moment.
Differential Revision: https://reviews.llvm.org/D47087
llvm-svn: 335783
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move the optimized getDefToTarget() from ForwardOpTree to ZoneAlgo such
that it can be used by makeValInst.
This reduces the compile time of GrTestUtils of the aosp buildbot from
2m46s to 21s, which should fix the timeout issue.
Differential Revision: https://reviews.llvm.org/D48579
llvm-svn: 335606
|
|
|
|
| |
llvm-svn: 335029
|
|
|
|
| |
llvm-svn: 334941
|
|
|
|
| |
llvm-svn: 334940
|
|
|
|
|
|
|
|
|
|
|
| |
This change includes:
- getFortranArrayIds
- adjustDomainDimensions
- propagateInvalidStmtDomains
- buildAliasGroupsForAccesses
llvm-svn: 334939
|
|
|
|
| |
llvm-svn: 334938
|
|
|
|
| |
llvm-svn: 334937
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The function is currently awfully complicated. Drop the IILE and use
StringRef over std::string.
Reviewers: Meinersbur, grosser, bollu
Reviewed By: Meinersbur
Subscribers: nemanjai, kbarton, bollu, llvm-commits, pollydev
Differential Revision: https://reviews.llvm.org/D48070
llvm-svn: 334695
|
|
|
|
| |
llvm-svn: 334413
|
|
|
|
|
|
|
|
| |
First build the surrounding loops and then build up the polyhedral
structures. Before r326664 we had to mix these updates, clean this
up to improve readability (slightly).
llvm-svn: 334412
|
|
|
|
|
|
| |
This is mainly a maintenance update.
llvm-svn: 334406
|
|
|
|
| |
llvm-svn: 334172
|
|
|
|
| |
llvm-svn: 334166
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In case the schedule has not changed and the operand tree root uses a
value defined in an ancestor loop, the def-to-target mapping is trivial.
For instance, the SCoP
for (int i < 0; i < N; i+=1) {
DefStmt:
D = ...;
for (int j < 0; j < N; j+=1) {
TargetStmt:
use(D);
}
}
has DefStmt-to-TargetStmt mapping of
{ DefStmt[i] -> TargetStmt[i,j] }
This should apply on the majority of def-to-target mappings.
This patch detects this case and directly constructs the expected
mapping. It assumes that the mapping never crosses the loop header
DefStmt is in, which ForwardOpTree does not support at the moment
anyway.
Differential Revision: https://reviews.llvm.org/D47752
llvm-svn: 334134
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: Meinersbur, grosser, bollu, cs15btech11044, jdoerfert
Reviewed By: grosser
Subscribers: pollydev, llvm-commits
Tags: #polly
Differential Revision: https://reviews.llvm.org/D47786
llvm-svn: 334092
|
|
|
|
| |
llvm-svn: 333988
|
|
|
|
| |
llvm-svn: 333956
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: partitionSetParts from C to new C++ interface.
Reviewers: grosser, Meinersbur, jdoerfert, bollu, cs15btech11044
Reviewed By: grosser, Meinersbur
Subscribers: llvm-commits, pollydev
Tags: #polly
Differential Revision: https://reviews.llvm.org/D47252
llvm-svn: 333780
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The aosp-O3-polly-before-vectorizer-unprofitable buildbot currently
fails in ZoneAlgorithm::isNormalized, presumably because an
out-of-quota happens in that function.
Modify ZoneAlgorithm::isNormalized to return an isl::boolean such
it can report an error.
In the failing case, it was called in an assertion in ForwardOpTree.
Allow to pass the assertion in an out-of-quota event, a condition that
is later checked before forwarding an operand tree.
llvm-svn: 333709
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This update adds new list types and adds functions which convert isl
data types to lists of their contained elements:
isl::set::get_basic_set_list
isl::union_set::get_set_list
isl::map::get_basic_map_list
isl::union_map::get_map_list
llvm-svn: 333688
|