Tobias Grosser
a187964bac
Support non-affine access functions in Polly.
...
In case we can not analyze an access function, we do not discard the SCoP, but
assume conservatively that all memory accesses that can be derived from our base
pointer may be accessed.
Patch provided by: Marcello Maggioni <hayarms@gmail.com>
llvm-svn: 146972
2011-12-20 10:43:14 +00:00
Tobias Grosser
b6033396fd
ScheduleOptimizer: Do not tile bands with just one dimension
...
llvm-svn: 146149
2011-12-08 13:02:58 +00:00
Tobias Grosser
595ec0d0e3
ClooG: Make sure ambigous schedules do not introduce complicated code
...
Cloog continued to split the domains even after the scattering. This lead to
complicated code.
llvm-svn: 146033
2011-12-07 11:03:48 +00:00
Tobias Grosser
39913e3648
test: Switch to new atomic instructions
...
This fixes the test with recent versions of LLVM that do not support
the old atomic instructions any more.
llvm-svn: 145402
2011-11-29 14:51:05 +00:00
Tobias Grosser
1e06003227
test: Add more dependences to cmake build
...
llvm-svn: 145400
2011-11-29 14:50:47 +00:00
Tobias Grosser
f281702686
test: Do not hardcode '.so' as library suffix
...
Contributed by: Marcello Maggioni <hayarms@gmail.com>
llvm-svn: 145076
2011-11-22 19:40:38 +00:00
Tobias Grosser
4dca439cfc
Register Passes: Use -polly-optimizer=(isl|pocc) to switch optimizers
...
This replaces the old option -polly-use-pocc. Also call the passes uniformly
-polly-opt-pocc and -polly-opt-isl.
llvm-svn: 145071
2011-11-22 19:40:19 +00:00
Tobias Grosser
8f99c167cd
ScopInfo: Use names of simple parameters to name the isl parameter dimensions.
...
Parameters can be complex SCEV expressions, but they can also be single scalar
values. If a parameters is such a simple scalar value and the value is named,
use this name to name the isl parameter dimensions.
llvm-svn: 144641
2011-11-15 11:38:55 +00:00
Tobias Grosser
f50fc50c80
Remove unused parameters from TempScop
...
llvm-svn: 144232
2011-11-09 22:35:15 +00:00
Tobias Grosser
6e9f25a5d5
Remove AffineSCEVIterator
...
We do not use it anymore. It was replaced by SCEVVisitors like the
SCEVValidator.
llvm-svn: 144229
2011-11-09 22:35:00 +00:00
Tobias Grosser
fb47d66a06
Remove unused code from SCEVAffFunc constructor
...
llvm-svn: 144224
2011-11-09 22:34:39 +00:00
Tobias Grosser
5683df4a23
Remove more of SCEVAffineFunc
...
llvm-svn: 144223
2011-11-09 22:34:34 +00:00
Tobias Grosser
db87142b26
TempScop: Remove more of the buildAffineFunction
...
llvm-svn: 144221
2011-11-09 22:34:24 +00:00
Tobias Grosser
e6efa37e76
TempScopInfo: Remove unneeded construction of SCEVAffFunc
...
llvm-svn: 144220
2011-11-09 22:34:18 +00:00
Tobias Grosser
60b54f19e6
Detect Parameters directly on the SCEV.
...
Instead of using TempScop to find parameters, we detect them directly
on the SCEV. This allows us to remove the TempScop parameter detection
in a subsequent commit.
This fixes a bug reported by Marcello Maggioni <hayarms@gmail.com>
llvm-svn: 144087
2011-11-08 15:41:28 +00:00
Tobias Grosser
65fa78e975
TempScopInfo: Print the original SCEV instead of using SCEVAffFunc
...
This is reducing the impact of SCEVAffFunc
llvm-svn: 143574
2011-11-02 21:37:06 +00:00
Tobias Grosser
67707b7131
Enable prevectorization with -enable-polly-vector.
...
This removes the separate prevector options for the Pluto and isl scheduler.
llvm-svn: 142774
2011-10-23 20:59:40 +00:00
Tobias Grosser
22636bf498
Rename -enable-schedule-prevector to -polly-prevector
...
llvm-svn: 142771
2011-10-23 20:59:29 +00:00
Tobias Grosser
2ff8723d5d
ScopDetection: Allow to limit the scop detection to a single function
...
-polly-detect-only=<functionname> allows to limit the scop detection to
a single function.
llvm-svn: 142750
2011-10-23 11:17:06 +00:00
Tobias Grosser
0e27e24751
ScopInfo: Use separate function to build context
...
llvm-svn: 141253
2011-10-06 00:03:48 +00:00
Tobias Grosser
7a5246a371
Test: Convert to new exception handling
...
llvm-svn: 141069
2011-10-04 07:53:21 +00:00
Tobias Grosser
c92151516f
CodeGen: Support for Cast Operations in vector code generation
...
llvm-svn: 139097
2011-09-04 11:45:52 +00:00
Tobias Grosser
7551c3000a
CodeGen: Better separate scalar and vector code generation.
...
llvm-svn: 139095
2011-09-04 11:45:41 +00:00
Tobias Grosser
8ae9aca5cc
CodeGen: Improve naming of copied basic blocks
...
It may happen that we generate the code of a basic block from the original
scop is code generated several times. The new naming scheme reduces confusing
that earlier appeared as the version numbers of the new basic blocks could
have been interpreted as part of the name of the original basic block.
llvm-svn: 139092
2011-09-04 11:45:22 +00:00
Tobias Grosser
c532f12965
Fix crashes due to unaligned parameters
...
Due to the recent introduction of isl_id, parameters need now always to be
aligned. This was not yet taken care of in the code path of vectorization and
dependence analysis.
llvm-svn: 138555
2011-08-25 08:40:59 +00:00
Tobias Grosser
604c981f40
Temporarily remove reduction support and interchange pass
...
I am planning to eliminate the TempScopInfo pass. To simplify this I remove
some features that may later be added to the ScopInfo pass.
The interchange pass is currently strongly tested and furthermore ment to be
replaced by the general scheduling optimizer. Reductions itself can later
be added easily.
llvm-svn: 138219
2011-08-21 14:57:58 +00:00
Raghesh Aloor
129e867865
Memaccess: Code generation for constant access function change
...
Support for generating code for an access function change which is
a constant is added.
llvm-svn: 137603
2011-08-15 02:33:39 +00:00
Raghesh Aloor
62b13120ee
Memaccess: Codegeneration for a simple access function change
...
Code is generated for a simple access function change imported
from JSCOP file. An access of A[i] is changed to A[0]. The code
for A[0] is generated directly without refering to isl function calls.
llvm-svn: 136789
2011-08-03 17:02:50 +00:00
Raghesh Aloor
7a04f4f9ba
Memaccess: Display Changed Access Relation
...
The changed access relations imported from JSCOP file is shown
as output of -analyze pass.
llvm-svn: 136774
2011-08-03 13:47:59 +00:00
Tobias Grosser
bd2b2c7117
Add a vect target to the polly testsuite
...
Contributed by: Sebastian Pop <sebpop@gmail.com>
llvm-svn: 136685
2011-08-02 07:22:05 +00:00
Raghesh Aloor
3cb6628d7c
MemAccess: Reading Change in Access Function
...
This patch reads the change in access functions from
imported JSCOP file. A test case is also added.
llvm-svn: 134991
2011-07-12 17:14:03 +00:00
Tobias Grosser
851b96e7f0
Adapt to LLVM type system changes
...
Remove constness of Types and do not name the structures generated in the OpenMP
code.
llvm-svn: 134980
2011-07-12 12:42:54 +00:00
Tobias Grosser
928b2d16a6
test: Do not pipe the .ll file into opt
...
The construct '< %s' complicates debugging with gdb --args as the content of
%s is interpreted as gdb input.
llvm-svn: 134432
2011-07-05 19:13:21 +00:00
Tobias Grosser
3770157502
test: Remove redundant function definition
...
The latest version of LLVM fails, if a function is defined twice in an LLVM
bitcode file.
llvm-svn: 134400
2011-07-04 23:18:17 +00:00
Tobias Grosser
8c4cfc327b
CodeGeneration: Do not delete the old version of the Scop.
...
Instead of deleting the old code, keep it on the side in an if-branch. It will
either be deleted by the dead code elimination or we can use it as fallback.
llvm-svn: 131352
2011-05-14 19:01:49 +00:00
Hongbin Zheng
94c5df16e2
ScopDetection: Remember the functions generated by backend in a pointer set, so we
...
do not re-generate code for these functions.
llvm-svn: 130975
2011-05-06 02:38:20 +00:00
Hongbin Zheng
e1bd40cfbd
Partial support test polly for out of tree build.
...
llvm-svn: 130482
2011-04-29 07:34:54 +00:00
Tobias Grosser
758053788b
Add initial version of Polly
...
This version is equivalent to commit ba26ebece8f5be84e9bd6315611d412af797147e
in the old git repository.
llvm-svn: 130476
2011-04-29 06:27:02 +00:00