| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch does not change the semantic on it's own. However, the
dependence analysis as well as dce will now use the newest available
access relation for each memory access, thus if at some point the json
importer or any other pass will run before those two and set a new
access relation the behaviour will be different. In general it is
unclear if the dependence analysis and dce should be run on the old or
new access functions anyway. If we need to access the original access
function from the outside later, we can expose the getter again.
Differential Revision: http://reviews.llvm.org/D5707
llvm-svn: 219612
|
| |
|
|
|
|
|
|
|
|
|
| |
We restricted the new access functions to be a subset of the old one
because we want to keep the alignment, however if the alignment is
"not special", thus the default for the type, we can allow any access.
Differential Revision: http://reviews.llvm.org/D5680
llvm-svn: 219503
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This class allows to store information about the arrays in the SCoP.
For each base pointer in the SCoP one object is created storing the
type and dimension sizes of the array. The objects can be obtained via
the SCoP, a MemoryAccess or the isl_id associated with the output
dimension of a MemoryAccess (the description of what is accessed).
So far we use the information in the IslExprBuilder to create the
right base type before indexing into the base array. This fixes the
bug http://llvm.org/bugs/show_bug.cgi?id=21113 (both test cases are
included). On top of that we can now build runtime alias checks for
delinearized arrays as the dimension sizes are also part of the
ScopArrayInfo objects.
Differential Revision: http://reviews.llvm.org/D5613
llvm-svn: 219077
|
| |
|
|
|
|
|
|
|
|
| |
This also forbids the json importer to access other memory locations
than the original instruction as we to reuse the alignment of the
original load/store.
Differential Revision: http://reviews.llvm.org/D5560
llvm-svn: 218883
|
| |
|
|
| |
llvm-svn: 216394
|
| |
|
|
| |
llvm-svn: 212609
|
| |
|
|
| |
llvm-svn: 212412
|
| |
|
|
|
|
|
|
|
| |
+ Added const iterator version
+ Changed name to begin/end to allow range loops
+ Changed call sites to range loops
+ Changed typename to (const_)iterator
llvm-svn: 210927
|
| |
|
|
| |
llvm-svn: 210847
|
| |
|
|
| |
llvm-svn: 210811
|
| |
|
|
|
|
|
| |
SVN r209103 removed the OwningPtr variant of the MemoryBuffer APIs. Switch to
the equivalent std::unique_ptr versions. This should clear up the build bots.
llvm-svn: 209104
|
| |
|
|
| |
llvm-svn: 207618
|
| |
|
|
|
|
|
|
|
|
| |
definition below all of the header #include lines, Polly edition.
If you want to know more details about this, you can see the recent
commits to Debug.h in LLVM. This is just the Polly segment of a cleanup
I'm doing globally for this macro.
llvm-svn: 206852
|
| |
|
|
| |
llvm-svn: 202056
|
| |
|
|
| |
llvm-svn: 202048
|
| |
|
|
|
|
| |
This should fix the buildbots.
llvm-svn: 198859
|
| |
|
|
|
|
| |
directory to their proper homes.
llvm-svn: 198691
|
| |
|
|
|
|
|
|
|
| |
In case we detect that the schedule the user wants to import is invalid we
refuse it _and_ free the isl_maps containing it.
Another bug found thanks to Rafael.
llvm-svn: 187339
|
| |
|
|
| |
llvm-svn: 186248
|
| |
|
|
| |
llvm-svn: 184655
|
| |
|
|
| |
llvm-svn: 181297
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use the new cl::OptionCategory support to move the Polly options into a separate
option category. The aim is to hide most options and show by default only the
options a user needs to influence '-O3 -polly'. The available options probably
need some care, but here is the current status:
Polly Options:
Configure the polly loop optimizer
-enable-polly-openmp - Generate OpenMP parallel code
-polly - Enable the polly optimizer (only at -O3)
-polly-no-tiling - Disable tiling in the scheduler
-polly-only-func=<function-name> - Only run on a single function
-polly-report - Print information about the activities
of Polly
-polly-vectorizer - Select the vectorization strategy
=none - No Vectorization
=polly - Polly internal vectorizer
=unroll-only - Only grouped unroll the vectorize
candidate loops
=bb - The Basic Block vectorizer driven by
Polly
llvm-svn: 181295
|
| |
|
|
|
|
|
| |
clang-format become way more stable. This time we mainly reformat function
signatures.
llvm-svn: 181294
|
| |
|
|
| |
llvm-svn: 179160
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
After this commit, polly is clang-format clean. This can be tested with
'ninja polly-check-format'. Updates to clang-format may change this, but the
differences will hopefully be both small and general improvements to the
formatting.
We currently have some not very nice formatting for a couple of items, DEBUG()
stmts for example. I believe the benefit of being clang-format clean outweights
the not perfect layout of this code.
llvm-svn: 177796
|
| |
|
|
| |
llvm-svn: 171224
|
| |
|
|
|
|
|
|
| |
Store a pointer to each ScopStmt in the isl_id associated with the space of its
domain. This will later allow us to recover the statement during code
generation with isl.
llvm-svn: 157607
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The FinalRead statement represented a virtual read that is executed after the
SCoP. It was used when we verified the correctness of a schedule by checking if
it yields the same FLOW dependences as the original code. This is only works, if
we have a final read that reads all memory at the end of the SCoP.
We now switched to just checking if a schedule does not introduce negative
dependences and also consider WAW WAR dependences. This restricts the schedules
a little bit more, but we do not have any optimizer that would calculate a more
complex schedule. Hence, for now final reads are obsolete.
llvm-svn: 152319
|
| |
|
|
|
|
|
| |
Instead we switch to the recommended getName(). This fixes compilation with
recent versions of LLVM.
llvm-svn: 144909
|
| |
|
|
|
|
|
|
|
|
| |
The new isl_id support for parmeters created problems when importing new
access functions. Even though the parameters had the same names,
they were mapped to different ids and where therefore incompatible.
We copy the ids now from the old parameter dimensions. This fixes the
problem.
llvm-svn: 144642
|
| |
|
|
| |
llvm-svn: 144639
|
| |
|
|
| |
llvm-svn: 144638
|
| |
|
|
|
|
|
|
| |
Also take the chance and rename access functions to access relations. This is
because we do not only allow plain functions to describe an access, but we
can have any access relation that can be described with linear constraints.
llvm-svn: 141257
|
| |
|
|
| |
llvm-svn: 141254
|
| |
|
|
|
|
|
|
| |
Polly should now be compiled with CLooG 0c252c88946b27b7b61a1a8d8fd7f94d2461dbfd
and isl 56b7d238929980e62218525b4b3be121af386edf. The most convenient way to
update is utils/checkout_cloog.sh.
llvm-svn: 141251
|
| |
|
|
|
|
|
|
|
| |
Because of me not understanding the LLVM pass structure well, I did not find a
good way to allocate isl_ctx and to free it later without getting issues with
reference counting. I now found this place, such that we can free isl_ctx. This
patch also fixes the memory leaks that were ignored beforehand.
llvm-svn: 138204
|
| |
|
|
|
|
|
| |
Support for generating code for an access function change which is
a constant is added.
llvm-svn: 137603
|
| |
|
|
|
|
|
| |
The changed access relations imported from JSCOP file is shown
as output of -analyze pass.
llvm-svn: 136774
|
| |
|
|
|
|
|
| |
While iterating through the memory accesses in JSCOP file
the inner loop index was not initialized to zero.
llvm-svn: 135340
|
| |
|
|
|
|
|
| |
This patch reads the change in access functions from
imported JSCOP file. A test case is also added.
llvm-svn: 134991
|
| |
|
|
| |
llvm-svn: 130481
|
| |
|
|
| |
llvm-svn: 130477
|
|
|
This version is equivalent to commit ba26ebece8f5be84e9bd6315611d412af797147e
in the old git repository.
llvm-svn: 130476
|