Commit Graph

727 Commits

Author SHA1 Message Date
Tobias Grosser 0ad4caa263 ScopInfo: Proporly free the local space
llvm-svn: 141459
2011-10-08 00:35:17 +00:00
Tobias Grosser 73600b8edd Initialize the passes early and properly.
llvm-svn: 141455
2011-10-08 00:30:40 +00:00
Tobias Grosser e19661e0ca ScopInfo: Some cleanups
- Use __isl_give and __isl_take
- Convert variables to start with Uppercase letter
- Only assign the 'domain' after it is fully constructed
- Only name it after it is fully constructed

llvm-svn: 141361
2011-10-07 08:46:57 +00:00
Tobias Grosser 9b13d3dbe5 ScopInfo: Simplify the construction of the iteration domain.
llvm-svn: 141325
2011-10-06 22:32:58 +00:00
Tobias Grosser 5d45381294 ScopInfo: Only give away a copy of the access relation.
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
2011-10-06 00:04:11 +00:00
Tobias Grosser cf3942dfa6 ScopInfo: Only give away a copy of the schedule.
llvm-svn: 141256
2011-10-06 00:04:05 +00:00
Tobias Grosser 4da8d9fc15 ScopInfo: Only give away a copy of the Context
llvm-svn: 141255
2011-10-06 00:03:59 +00:00
Tobias Grosser 3c69fab0e8 ScopInfo: Get the isl_ctx always with getIslCtx()
llvm-svn: 141254
2011-10-06 00:03:54 +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 3748705fff Export the parameter space directly from the SCoP.
Use this to simplify some code.

llvm-svn: 141252
2011-10-06 00:03:42 +00:00
Tobias Grosser f53388034d Adapt to introduction of isl_space
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
2011-10-06 00:03:35 +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
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 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
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 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
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 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
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
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