Tobias Grosser
b76f385334
Free isl_ctx and fix several memory leaks
...
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
2011-08-20 11:11:25 +00:00
Tobias Grosser
15f5efff8f
GICHelper: Fix memory leaks, as we forgot to free some strings.
...
llvm-svn: 138203
2011-08-20 11:11:18 +00:00
Tobias Grosser
eec4d56e63
Move common code into the function it belongs to
...
llvm-svn: 138202
2011-08-20 11:11:14 +00:00
Tobias Grosser
fa7bc2f1a3
ScopInfo/Dependences: Use parameter ids everywhere
...
llvm-svn: 138155
2011-08-20 00:03:28 +00:00
Tobias Grosser
7d4cee4b02
ScopInfo: Construct the accessrelations with isl_pw_aff
...
This simplifies the code quite a bit.
llvm-svn: 138147
2011-08-19 23:34:28 +00:00
Tobias Grosser
d2795d0365
ScopInfo: Remove adhoc comparision of affine expressions
...
Until today, we compared two affine expressions by defining two maps describing
them, creating an union of those maps, adding constraints that do the comparison
and projecting out unneeded dimensions.
This was simplified to using the isl_pw_aff representation of the affine
expressions and using the relevant isl functions to compare them.
llvm-svn: 137932
2011-08-18 07:51:40 +00:00
Tobias Grosser
30b8a092d8
ScopInfo: Create all isl data structures with dimension ids
...
At the moment, we still remove the ids after all data structures are created,
as later passes do not yet support ids. This limitation will be removed later.
llvm-svn: 137931
2011-08-18 07:51:37 +00:00
Tobias Grosser
33ba62ad11
ScopInfo: Build isl_pw_aff directly from SCEV.
...
Do not use AffFunc to derive the affine expressions, but use isl_pw_aff to
analyze the original SCEV directly. This will allow several simplifications in
follow up patches, with the final goal of removing AffFunc completely.
llvm-svn: 137930
2011-08-18 06:31:50 +00:00
Tobias Grosser
54a86e6c2a
ScopInfo: Simplify code
...
llvm-svn: 137929
2011-08-18 06:31:46 +00:00
Tobias Grosser
edd8372d4f
TempSCoP: Store SCEV a SCEVAffFunc was derived from
...
llvm-svn: 137928
2011-08-18 06:31:43 +00:00
Tobias Grosser
223d4d0b37
TempScopInfo: Improve formatiing
...
llvm-svn: 137927
2011-08-18 06:29:25 +00:00
Raghesh Aloor
5d1b6ce83c
www: Updating memaccess Documentation
...
llvm-svn: 137607
2011-08-15 09:37:46 +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
e75e986d03
Removing some trailing whitespaces
...
llvm-svn: 137304
2011-08-11 08:44:56 +00:00
Raghesh Aloor
490c5988f9
Memaccess: Some style changes
...
llvm-svn: 137043
2011-08-08 08:34:16 +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
3b660f8585
ScopInfo: Do not use >"< in statement names.
...
Signed-off-by: Tobias Grosser <tobias@grosser.es>
llvm-svn: 136750
2011-08-03 00:12:11 +00:00
Tobias Grosser
51e89bf87f
Dependences: Fix memory corruption.
...
Signed-off-by: Tobias Grosser <tobias@grosser.es>
llvm-svn: 136749
2011-08-03 00:09:49 +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
Tobias Grosser
2bd3af1e89
Fix two compiler warnings
...
One of them actually pointed to an invalid condition in an assert.
llvm-svn: 136657
2011-08-01 22:39:00 +00:00
Raghesh Aloor
ac4dacfb1f
www: Memory Access Documentation Update
...
llvm-svn: 135641
2011-07-21 00:08:23 +00:00
Tobias Grosser
0c0acb02d5
www: Fix typo
...
Reported by: Chad Rosier <mcrosier@apple.com>
llvm-svn: 135428
2011-07-18 21:27:42 +00:00
Tobias Grosser
276aab5a21
www: Mention new Polly Builder in News
...
llvm-svn: 135421
2011-07-18 20:34:41 +00:00
Tobias Grosser
6121eb346f
www: Add link to buildbot into main menu
...
llvm-svn: 135387
2011-07-18 11:00:13 +00:00
Tobias Grosser
d3ffabfc7a
www: Buildbot set up
...
llvm-svn: 135385
2011-07-18 09:53:35 +00:00
Tobias Grosser
55927aa400
Use llvm::*Type without const
...
llvm-svn: 135384
2011-07-18 09:53:32 +00:00
NAKAMURA Takumi
a7913cd841
(Test commit for polly)
...
llvm-svn: 135345
2011-07-16 13:30:03 +00:00
Raghesh Aloor
9ca0e917a3
Memaccess: Bugfix-Reading of JSCoP file fails
...
While iterating through the memory accesses in JSCOP file
the inner loop index was not initialized to zero.
llvm-svn: 135340
2011-07-16 04:55:09 +00:00
Tobias Grosser
0679e17644
CodeGeneration: Adjust call to CreateCall.
...
Needed to avoid compile error after the patch "Convert CallInst and
InvokeInst APIs to use ArrayRef.
Contributed by: Sebastian Pop <sebpop@gmail.com>
llvm-svn: 135321
2011-07-15 22:54:41 +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
0a33f7e678
www: Fix typo
...
llvm-svn: 134981
2011-07-12 12:43:00 +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
Raghesh Aloor
7eb661e636
Fix for broken build
...
isl/map.h is included in OpenScopExporter.cpp and
OpenScopImporter.cpp
llvm-svn: 134786
2011-07-09 03:10:22 +00:00
Tobias Grosser
e790a8dac9
ScopLib: Add missing include
...
llvm-svn: 134513
2011-07-06 18:05:05 +00:00
Tobias Grosser
fe37f8d0ac
pollycc: Fix error message if PoCC/Pluto are not available
...
llvm-svn: 134512
2011-07-06 18:04:59 +00:00
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
e1bb3cbf65
www/memaccess: Fix forgotten typo
...
llvm-svn: 134435
2011-07-05 19:13:41 +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
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
Raghesh Aloor
77e4c595b0
www: Updating memaccess documentation
...
This is a complete rewrite to memaccess.html file. This removed
some unwanted html tags.
llvm-svn: 134429
2011-07-05 18:51:34 +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
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
080307119e
Buildsystem: Add -no-rtti
...
Build Polly without run time type info (rtti), as otherwise Polly cannot be
loaded into a LLVM that is built without rtti.
llvm-svn: 134180
2011-06-30 19:50:04 +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
538d458bbc
www: Fix typos.
...
llvm-svn: 134158
2011-06-30 14:43:35 +00:00
Tobias Grosser
1dbc8a00a2
www/contributers: Add founding through Google Doctoral Fellowship
...
llvm-svn: 134156
2011-06-30 14:32:33 +00:00
Tobias Grosser
3fb8c11bd0
www/get_started: Explain when PoCC is needed
...
llvm-svn: 134153
2011-06-30 14:07:35 +00:00
Tobias Grosser
672137eaa0
www: How to use most recent version of isl
...
In some cases it is necessary to use a version of isl that is more recent than
the one included with CLooG. Point out what is needed to get such a version.
llvm-svn: 134152
2011-06-30 14:07:23 +00:00
Raghesh Aloor
49a3a7ba20
www: Adding webpage to track memory access transformation
...
llvm-svn: 133354
2011-06-18 17:17:16 +00:00
Raghesh Aloor
94085eaa83
www: Adding link to memaccess.html
...
llvm-svn: 133353
2011-06-18 17:09:33 +00:00
Tobias Grosser
3d2efafb36
www: Fix path to git repository.
...
llvm-svn: 132761
2011-06-08 22:46:40 +00:00
Tobias Grosser
d0357f8cc8
www: Allow file listing in directory of example files.
...
llvm-svn: 132755
2011-06-08 17:36:11 +00:00
Tobias Grosser
7e01c25f45
www: Add website for the LLVM bugtracker use
...
llvm-svn: 132678
2011-06-06 15:50:09 +00:00
Tobias Grosser
64cae02ec2
www: Enable SSI on the webserver.
...
llvm-svn: 132120
2011-05-26 12:20:16 +00:00
Tobias Grosser
cf771b146b
www: Use absolute links
...
Like this the menu can also be used in subdirectories.
llvm-svn: 131964
2011-05-24 13:56:06 +00:00
Tobias Grosser
e7f23ffa66
www: Add documentation.html
...
llvm-svn: 131963
2011-05-24 13:29:23 +00:00
Tobias Grosser
efe01ce677
www: Add a separarate documentation section.
...
llvm-svn: 131962
2011-05-24 13:15:01 +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
766b4742cc
www: Add two publications
...
Tobias' diploma thesis and Raghesh's master thesis.
llvm-svn: 131959
2011-05-24 12:20:00 +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
f6ed8ffd69
www: Colorize TODO status
...
llvm-svn: 131361
2011-05-14 19:02:51 +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
c0b259ad90
www: Update status of our move to the LLVM infrastructure
...
llvm-svn: 131307
2011-05-13 20:51:45 +00:00
Tobias Grosser
1aabf2777b
www: Use german 'umlaut' in Simbuerger
...
llvm-svn: 131247
2011-05-12 21:36:27 +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
Tobias Grosser
e79a5e65c0
www: Finish first draft of the matmul example
...
llvm-svn: 130751
2011-05-03 09:40:40 +00:00
Tobias Grosser
fe6d9849a1
Add new website for Polly
...
Use the content of the Polly wiki page[1] to create a new website. I do not yet
plan to officially promote this website, but it is already a solid base that we
can improve and peer review.
[1] http://wiki.llvm.org/Polly
llvm-svn: 130689
2011-05-02 07:48:29 +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
Andreas Simbuerger
0593f53295
Add e-mail to credits file.
...
llvm-svn: 130484
2011-04-29 07:54: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
ca3bef8461
JSONExport: Some cleanups
...
llvm-svn: 130481
2011-04-29 06:52:36 +00:00
Tobias Grosser
b4c99fae86
CREDITS: Replace LLVM with Polly
...
llvm-svn: 130480
2011-04-29 06:42:42 +00:00
Tobias Grosser
b6a7c8d76b
Add a converter from jscop to iscc input
...
llvm-svn: 130478
2011-04-29 06:29:20 +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