Tobias Grosser
44f19ac3fb
ScheduleOpt: Fix some bugs
...
isl changed a function name, we did not properly initialize some variables
and we freed an isl_ctx object.
llvm-svn: 134448
2011-07-05 22:15:53 +00:00
Tobias Grosser
9611623d02
CodeGen: Adapt to change of PHI operand storage
...
Commit 133435 "Change how PHINodes store their operands" broke Polly. Fix this
breakage by adapting to the changes in the commit.
llvm-svn: 134434
2011-07-05 19:13:31 +00:00
Tobias Grosser
7c5ba83015
ScheduleOpt: Prevectorize the innermost parallel loop
...
Only prevectorize loops that are actually parallel and can
be vectorized. Take the innermost loop that is eligible.
llvm-svn: 134187
2011-06-30 20:29:20 +00:00
Tobias Grosser
c6699b7fe8
ScheduleOpt: Add first version of prevectorization
...
We just strip-mine the innermost dimension by the vector width. This does not
take into account if this dimension is parallel nor if it is constant.
llvm-svn: 134186
2011-06-30 20:29:13 +00:00
Tobias Grosser
de68cc91cf
ScheduleOpt: Use band forest to get the schedules
...
isl introduced a new representation for the schedules it calculates. The new
representation uses a forest of bands and is closer to the structure of the
data as the old interface. Switch to the new interface, as it is nicer to use
and as the old interface will soon be removed from isl.
WARNING: This commit needs a version of isl that is more recent that the one
included in CLooG. See:
http://polly.grosser.es/get_started.html#islTrunk
llvm-svn: 134181
2011-06-30 20:01:02 +00:00
Tobias Grosser
97fb5acf48
CodeGeneration: Adapt to SCEVExpander change
...
Reported-By: Sebastian Pop <sebpop@gmail.com>
llvm-svn: 134179
2011-06-30 19:39:10 +00:00
Tobias Grosser
76747f76a0
ScheduleOptimizer: Declare functions static
...
Functions that are currently only used in this file can be declared static.
Suggested by: ether
llvm-svn: 131960
2011-05-24 12:20:07 +00:00
Tobias Grosser
4e3f9a4c5c
CodeGeneration: Use FIXME instead of XXX
...
Cleanup suggested by ether.
llvm-svn: 131898
2011-05-23 15:23:36 +00:00
Tobias Grosser
5d6eb86965
CodeGeneration: Cleanup getAnalysis/addPreserved
...
llvm-svn: 131360
2011-05-14 19:02:45 +00:00
Tobias Grosser
3fdecaee2a
CodeGeneration: Localize variables
...
llvm-svn: 131359
2011-05-14 19:02:39 +00:00
Tobias Grosser
abb6dcd865
CodeGeneration: Admit that we change the code.
...
No need to pretend anymore that we do not update the LLVM-IR.
llvm-svn: 131358
2011-05-14 19:02:34 +00:00
Tobias Grosser
2aec339d28
Cloog: Export clast_root
...
llvm-svn: 131357
2011-05-14 19:02:29 +00:00
Tobias Grosser
e91c53d2a9
CodeGeneration: No need to forget SCoP.
...
As we do not delete the SCoP, there is no need to remove it from the SCoP
detection.
llvm-svn: 131356
2011-05-14 19:02:21 +00:00
Tobias Grosser
678dbbf3b0
CodeGeneration: We do not preserve the PostDominatorTree
...
llvm-svn: 131355
2011-05-14 19:02:12 +00:00
Tobias Grosser
30aa24cd6b
ScheduleOptimizer: Add an isl based schedule optimizer
...
The isl based routines implement a new interpretation of the Pluto algorithm
new interpretation. This patch requires a recent version of isl to be installed.
llvm-svn: 131354
2011-05-14 19:02:06 +00:00
Tobias Grosser
7a16c895ac
CodeGeneration: Remove -polly-codegen-only
...
If we only want to optimize a single function, we should extract this function
into a separate .ll file. This simplifies the code.
llvm-svn: 131353
2011-05-14 19:01:55 +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
Tobias Grosser
76d7c529fb
CodeGeneration: Support only simple regions
...
llvm-svn: 131351
2011-05-14 19:01:37 +00:00
Tobias Grosser
a806606aaa
ScopDetection: Move implementation of function from header to .cpp file
...
llvm-svn: 131246
2011-05-12 21:33:28 +00:00
Tobias Grosser
d5a7bfc51d
ScopInfo: Do not return reference to member variable 'domain'.
...
Instead of returning a pointer to the domain, we return a new copy of it. This
is safer, as we do not give access to internal objects. It is also not
expensive, as isl will just increment a reference counter.
llvm-svn: 131010
2011-05-06 19:52:19 +00:00
Tobias Grosser
69f8514cb7
Dependences: Add interface to retrieve dependences.
...
llvm-svn: 131009
2011-05-06 19:52:09 +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
dbdebe28de
Refactor: Move 'isParallelFor' from codegen backend to Dependences analysis, so other passes can also use it.
...
llvm-svn: 130752
2011-05-03 13:46:58 +00:00
Hongbin Zheng
27f3afbc1a
ScopInfo: Rememeber the induction variable and its parent loop at the same thime.
...
llvm-svn: 130586
2011-04-30 03:26:51 +00:00
Hongbin Zheng
ad6915685e
JSON: Do not use throw when exception is disabled.
...
llvm-svn: 130575
2011-04-30 02:47:34 +00:00
Hongbin Zheng
986fee0055
JSON: Disable exception in JSON library, because exception is disable by by default.
...
llvm-svn: 130574
2011-04-30 02:30:58 +00:00
Tobias Grosser
ca3bef8461
JSONExport: Some cleanups
...
llvm-svn: 130481
2011-04-29 06:52:36 +00:00
Tobias Grosser
b0927ea141
JSONExporter: Remove unused variable
...
llvm-svn: 130477
2011-04-29 06:27:09 +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