platform/upstream/isl.git
13 years agoadd isl_union_map_read_from_file
Sven Verdoolaege [Wed, 16 Feb 2011 18:47:17 +0000 (19:47 +0100)]
add isl_union_map_read_from_file

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_stream_read_map: accept 'true' and 'false' constraints
Sven Verdoolaege [Wed, 16 Feb 2011 15:07:11 +0000 (16:07 +0100)]
isl_stream_read_map: accept 'true' and 'false' constraints

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_stream_read_map: allow extra ';' at end of map description
Sven Verdoolaege [Tue, 15 Feb 2011 15:01:16 +0000 (16:01 +0100)]
isl_stream_read_map: allow extra ';' at end of map description

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_stream_read_map: allow negations
Sven Verdoolaege [Sun, 13 Feb 2011 14:11:41 +0000 (15:11 +0100)]
isl_stream_read_map: allow negations

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_stream_read_map: allow existential quantification over disjunctions
Sven Verdoolaege [Sun, 13 Feb 2011 13:34:24 +0000 (14:34 +0100)]
isl_stream_read_map: allow existential quantification over disjunctions

Before, we would only allow existential quantification within a single
disjunct because the existentially quantified variables were being
added directly to a basic map.
Now, we first add extra output variables and project them out at the end.
The disadvantage is that we currently lose any explicit definition of
the existentially quantified variables in the input.  Usually, we can
recover them from the constraints that are added when we meet such a
definition, but it does require some extra processing.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoprivately export isl_basic_map_add_div_constraints_var
Sven Verdoolaege [Sun, 13 Feb 2011 13:23:02 +0000 (14:23 +0100)]
privately export isl_basic_map_add_div_constraints_var

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_morph_basic_set: preserve rationality of input
Sven Verdoolaege [Sun, 13 Feb 2011 09:15:25 +0000 (10:15 +0100)]
isl_morph_basic_set: preserve rationality of input

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoadd isl_basic_set_is_rational
Sven Verdoolaege [Sun, 13 Feb 2011 09:15:09 +0000 (10:15 +0100)]
add isl_basic_set_is_rational

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_printer_print_basic_map: explicitly mark rational maps
Sven Verdoolaege [Sun, 13 Feb 2011 09:14:08 +0000 (10:14 +0100)]
isl_printer_print_basic_map: explicitly mark rational maps

13 years agoisl_stream_read_map: read rational maps
Sven Verdoolaege [Sun, 13 Feb 2011 09:07:31 +0000 (10:07 +0100)]
isl_stream_read_map: read rational maps

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_basic_map_insert: preserve rationality of input
Sven Verdoolaege [Sun, 13 Feb 2011 09:05:01 +0000 (10:05 +0100)]
isl_basic_map_insert: preserve rationality of input

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoadd isl_basic_map_set_rational
Sven Verdoolaege [Sun, 13 Feb 2011 08:44:53 +0000 (09:44 +0100)]
add isl_basic_map_set_rational

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_basic_map_fast_cmp: differentiate between rational and integer sets
Sven Verdoolaege [Sun, 13 Feb 2011 08:22:14 +0000 (09:22 +0100)]
isl_basic_map_fast_cmp: differentiate between rational and integer sets

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_output.c: remove some code duplication
Sven Verdoolaege [Sun, 13 Feb 2011 08:08:45 +0000 (09:08 +0100)]
isl_output.c: remove some code duplication

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_printer_print_basic_{set,map}: don't start new line in isl format
Sven Verdoolaege [Sun, 13 Feb 2011 08:05:48 +0000 (09:05 +0100)]
isl_printer_print_basic_{set,map}: don't start new line in isl format

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_stream_read_map: accept '|' at start of constraints
Sven Verdoolaege [Sat, 12 Feb 2011 15:55:03 +0000 (16:55 +0100)]
isl_stream_read_map: accept '|' at start of constraints

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_stream: keep track of textual representation of tokens for better error reporting
Sven Verdoolaege [Sat, 12 Feb 2011 15:48:34 +0000 (16:48 +0100)]
isl_stream: keep track of textual representation of tokens for better error reporting

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_input.c: clean up read_disjuncts
Sven Verdoolaege [Fri, 11 Feb 2011 16:06:26 +0000 (17:06 +0100)]
isl_input.c: clean up read_disjuncts

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_stream_read_map: accept disjunctions within a conjunct
Sven Verdoolaege [Fri, 11 Feb 2011 16:02:23 +0000 (17:02 +0100)]
isl_stream_read_map: accept disjunctions within a conjunct

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_convex_hull.c: explicitly mark wrapping lp problem as rational
Sven Verdoolaege [Thu, 10 Feb 2011 13:01:27 +0000 (14:01 +0100)]
isl_convex_hull.c: explicitly mark wrapping lp problem as rational

This shouldn't have any effect at the moment, but in future we may
want to be more aggressive on non-rational tableau.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_tab_min: micro-optimization: postpone taking into account denominator
Sven Verdoolaege [Thu, 10 Feb 2011 12:52:04 +0000 (13:52 +0100)]
isl_tab_min: micro-optimization: postpone taking into account denominator

The denominator of the affine expression shouldn't have any effect
on the point where the minimum is reached.  Moreover, for non-rational
tableaus, it may be confusing for future optimizations to have a row
that may attain rational values.  It is therefore beter to multiply
in the denominator after the optimum has been computed.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoMerge branch 'maint'
Sven Verdoolaege [Sat, 5 Feb 2011 20:05:07 +0000 (21:05 +0100)]
Merge branch 'maint'

13 years agoisl_tab_add_row: add further explanation
Sven Verdoolaege [Sat, 5 Feb 2011 19:02:44 +0000 (20:02 +0100)]
isl_tab_add_row: add further explanation

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_tab.c: fix typos in comments
Sven Verdoolaege [Sat, 5 Feb 2011 18:57:49 +0000 (19:57 +0100)]
isl_tab.c: fix typos in comments

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_tab_pip.c: correctly detect non-negativity of divs in lexmin contexts
Sven Verdoolaege [Sat, 5 Feb 2011 20:01:22 +0000 (21:01 +0100)]
isl_tab_pip.c: correctly detect non-negativity of divs in lexmin contexts

In particular, the variables used to encode the div in the context
tableau is always non-negative, but the actual variable used in the main
tableau may not be non-negative.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoadd test
Sven Verdoolaege [Sat, 5 Feb 2011 19:51:26 +0000 (20:51 +0100)]
add test

13 years agotest both context handling mechanisms of isl_pip
Sven Verdoolaege [Sat, 5 Feb 2011 15:48:07 +0000 (16:48 +0100)]
test both context handling mechanisms of isl_pip

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_tab_is_equality: properly support "big parameter"
Sven Verdoolaege [Sat, 5 Feb 2011 18:53:45 +0000 (19:53 +0100)]
isl_tab_is_equality: properly support "big parameter"

An attempt was made in 40b68af (isl_tab: introduce support for "big parameters",
Wed Aug 5 10:22:52 2009 +0200), but the change to isl_tab_is_equality
was incomplete.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_tab_pip.c: fix typo in comment
Sven Verdoolaege [Thu, 3 Feb 2011 15:39:49 +0000 (16:39 +0100)]
isl_tab_pip.c: fix typo in comment

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_affine_hull.c: fix typos in comments
Sven Verdoolaege [Tue, 1 Feb 2011 09:48:55 +0000 (10:48 +0100)]
isl_affine_hull.c: fix typos in comments

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_union_map_compute_flow: return accesses with no source
Sven Verdoolaege [Sat, 29 Jan 2011 08:47:01 +0000 (09:47 +0100)]
isl_union_map_compute_flow: return accesses with no source

And similarly for isl_flow_get_no_source.
Before, we would return the iterations where those accesses occur,
but if more than one element is accessed from within the same iteration,
then this does not provide enough information.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoMerge branch 'maint'
Sven Verdoolaege [Sat, 5 Feb 2011 09:40:15 +0000 (10:40 +0100)]
Merge branch 'maint'

13 years agoisl_union_map.c: inplace: pass data pointer to isl_hash_table_foreach
Sven Verdoolaege [Sat, 5 Feb 2011 09:09:16 +0000 (10:09 +0100)]
isl_union_map.c: inplace: pass data pointer to isl_hash_table_foreach

isl_hash_table_foreach expects a data pointer but was being passed
a code pointer from within inplace.  On some systems data pointers
may be different from code pointers.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_dim_move: update parameters of nested spaces
Sven Verdoolaege [Thu, 27 Jan 2011 19:01:28 +0000 (20:01 +0100)]
isl_dim_move: update parameters of nested spaces

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoadd isl_map_nat_universe
Sven Verdoolaege [Wed, 26 Jan 2011 20:59:54 +0000 (21:59 +0100)]
add isl_map_nat_universe

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoclean up isl_set_from_basic_set
Sven Verdoolaege [Wed, 26 Jan 2011 18:47:22 +0000 (19:47 +0100)]
clean up isl_set_from_basic_set

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agomerge isl_basic_set/isl_basic_map and isl_set/isl_map
Sven Verdoolaege [Wed, 26 Jan 2011 18:23:39 +0000 (19:23 +0100)]
merge isl_basic_set/isl_basic_map and isl_set/isl_map

Internally, these are essentially the same.
We do keep the distinction in the external interface.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agorename "omega" transitive closure to "box" transitive closure
Sven Verdoolaege [Wed, 26 Jan 2011 10:58:17 +0000 (11:58 +0100)]
rename "omega" transitive closure to "box" transitive closure

Calling it "omega" is confusing because it doesn't actually call
omega or even implement the same algorithm that is implemented
in omega.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoexport isl_int_obj_free
Sven Verdoolaege [Sun, 23 Jan 2011 17:40:21 +0000 (18:40 +0100)]
export isl_int_obj_free

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_vertices.c: fix typos
Sven Verdoolaege [Sun, 23 Jan 2011 14:43:14 +0000 (15:43 +0100)]
isl_vertices.c: fix typos

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_union_templ.c: fix typo
Sven Verdoolaege [Sun, 23 Jan 2011 14:42:47 +0000 (15:42 +0100)]
isl_union_templ.c: fix typo

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_map_subtract.c: n_non_redundant: propage isl_ctx
Sven Verdoolaege [Sun, 23 Jan 2011 14:42:21 +0000 (15:42 +0100)]
isl_map_subtract.c: n_non_redundant: propage isl_ctx

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_bernstein.c: fix typo
Sven Verdoolaege [Sun, 23 Jan 2011 14:41:41 +0000 (15:41 +0100)]
isl_bernstein.c: fix typo

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoadd isl_union_pw_qpolynomial_mul_isl_int
Sven Verdoolaege [Fri, 10 Dec 2010 17:07:01 +0000 (18:07 +0100)]
add isl_union_pw_qpolynomial_mul_isl_int

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_stream_read_obj: read int objects
Sven Verdoolaege [Thu, 9 Dec 2010 18:56:31 +0000 (19:56 +0100)]
isl_stream_read_obj: read int objects

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoadd int objects for use in iscc
Sven Verdoolaege [Thu, 9 Dec 2010 18:06:22 +0000 (19:06 +0100)]
add int objects for use in iscc

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_basic_map_remove_divs: finalize result
Sven Verdoolaege [Mon, 10 Jan 2011 16:46:52 +0000 (17:46 +0100)]
isl_basic_map_remove_divs: finalize result

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoadd isl_basic_set_get_tuple_name
Sven Verdoolaege [Fri, 21 Jan 2011 15:19:44 +0000 (16:19 +0100)]
add isl_basic_set_get_tuple_name

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoMerge branch 'maint'
Sven Verdoolaege [Sat, 22 Jan 2011 12:22:15 +0000 (13:22 +0100)]
Merge branch 'maint'

13 years agoisl_union_map_sample: don't return NULL on empty input
Sven Verdoolaege [Sat, 22 Jan 2011 12:17:10 +0000 (13:17 +0100)]
isl_union_map_sample: don't return NULL on empty input

Throughout isl, NULL is used to mark an error return, so we shouldn't
return NULL simply because the input is empty.  Instead, we now return
an empty basic map living in a fairly arbitrary space, but that shouldn't
be a problem.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_basic_map_set_tuple_name: finalize result
Sven Verdoolaege [Fri, 21 Jan 2011 15:44:29 +0000 (16:44 +0100)]
isl_basic_map_set_tuple_name: finalize result

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_transitive_closure.c: more anonymize input map during incremental computation
Sven Verdoolaege [Thu, 20 Jan 2011 14:30:52 +0000 (15:30 +0100)]
isl_transitive_closure.c: more anonymize input map during incremental computation

This instance was missed in 5292e00 (isl_transitive_closure.c: anonymize
input map during incremental computation, Mon Aug 2 11:57:07 2010 +0200).

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_basic_set_factorizer: make sure group information gets updated
Sven Verdoolaege [Thu, 20 Jan 2011 13:42:37 +0000 (14:42 +0100)]
isl_basic_set_factorizer: make sure group information gets updated

We lazily keep track of which group a column belongs to.
The actual construction of the factors assumes the groups have been
updated, however, so we need to make sure that the group of each
column eventually gets updated.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoadd isl_union_map_range_product
Sven Verdoolaege [Sun, 26 Dec 2010 12:12:05 +0000 (13:12 +0100)]
add isl_union_map_range_product

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agodoc: document product functions
Sven Verdoolaege [Wed, 19 Jan 2011 20:26:28 +0000 (21:26 +0100)]
doc: document product functions

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agorename isl_basic_set_product to isl_basic_set_list_product
Sven Verdoolaege [Sun, 26 Dec 2010 22:14:34 +0000 (23:14 +0100)]
rename isl_basic_set_product to isl_basic_set_list_product

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_set_convex_hull: optionally use Fourier-Motzkin based algorithm
Sven Verdoolaege [Tue, 18 Jan 2011 13:17:25 +0000 (14:17 +0100)]
isl_set_convex_hull: optionally use Fourier-Motzkin based algorithm

The Fourier-Motzkin based algorithm used to be the default but was
disabled when the wrapping based algorithm was completed in 6371ed7
(isl_map_convex_hull: handle unbounded, but pointed, case using wrapping,
Mon Apr 13 23:11:19 2009 +0200).

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_basic_set_sample_point: exploit factorization if any
Sven Verdoolaege [Sat, 15 Jan 2011 15:54:28 +0000 (16:54 +0100)]
isl_basic_set_sample_point: exploit factorization if any

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoadd isl_morph_vec
Sven Verdoolaege [Sun, 16 Jan 2011 11:24:37 +0000 (12:24 +0100)]
add isl_morph_vec

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agochange prototype of isl_vec_dump
Sven Verdoolaege [Sat, 15 Jan 2011 15:52:26 +0000 (16:52 +0100)]
change prototype of isl_vec_dump

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoadd isl_printer_print_vec
Sven Verdoolaege [Sat, 15 Jan 2011 15:48:36 +0000 (16:48 +0100)]
add isl_printer_print_vec

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoadd isl_union_set_apply_union_pw_qpolynomial_fold
Sven Verdoolaege [Sat, 15 Jan 2011 09:57:36 +0000 (10:57 +0100)]
add isl_union_set_apply_union_pw_qpolynomial_fold

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoexport isl_union_map_from_domain and isl_union_map_from_range
Sven Verdoolaege [Sat, 15 Jan 2011 09:40:31 +0000 (10:40 +0100)]
export isl_union_map_from_domain and isl_union_map_from_range

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_basic_map_intersect_domain: replace open-coded isl_basic_map_from_domain
Sven Verdoolaege [Fri, 14 Jan 2011 18:15:15 +0000 (19:15 +0100)]
isl_basic_map_intersect_domain: replace open-coded isl_basic_map_from_domain

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_stream_read_map: accept modulo expressions
Sven Verdoolaege [Thu, 13 Jan 2011 15:30:24 +0000 (16:30 +0100)]
isl_stream_read_map: accept modulo expressions

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_basic_map_insert: don't simplify the result
Sven Verdoolaege [Thu, 13 Jan 2011 11:23:49 +0000 (12:23 +0100)]
isl_basic_map_insert: don't simplify the result

None of the constraints are changed in any way, so there shouldn't
be any need to call isl_basic_map_simplify.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoMerge branch 'maint'
Sven Verdoolaege [Sun, 16 Jan 2011 14:04:07 +0000 (15:04 +0100)]
Merge branch 'maint'

13 years agoisl_basic_map_from_constraint_matrices: clear newly created divs
Sven Verdoolaege [Sun, 16 Jan 2011 14:00:31 +0000 (15:00 +0100)]
isl_basic_map_from_constraint_matrices: clear newly created divs

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_token_free: free string representation of keywords
Sven Verdoolaege [Wed, 12 Jan 2011 16:27:07 +0000 (17:27 +0100)]
isl_token_free: free string representation of keywords

This should have been part of ab6eaa2 (isl_stream_next_token: keep track
of string representation of keywords, Thu Dec 23 15:32:27 2010 +0100).

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_input.c: read_factor: drop unexpected identifier
Sven Verdoolaege [Wed, 12 Jan 2011 16:06:49 +0000 (17:06 +0100)]
isl_input.c: read_factor: drop unexpected identifier

We need to keep the internal state consistent, even if we get unexpected input.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_input.c: accept_affine_factor: avoid double free on invalid input
Sven Verdoolaege [Tue, 11 Jan 2011 23:43:20 +0000 (00:43 +0100)]
isl_input.c: accept_affine_factor: avoid double free on invalid input

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoAdd isl_union_(set/map)_detect_equalities
Tobias Grosser [Fri, 7 Jan 2011 22:45:03 +0000 (17:45 -0500)]
Add isl_union_(set/map)_detect_equalities

Document also all *_detect_equalities functions.

Signed-off-by: Tobias Grosser <grosser@fim.uni-passau.de>
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_stream_read_map: allow space names that happen to be keywords
Sven Verdoolaege [Thu, 23 Dec 2010 14:33:26 +0000 (15:33 +0100)]
isl_stream_read_map: allow space names that happen to be keywords

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_stream_next_token: keep track of string representation of keywords
Sven Verdoolaege [Thu, 23 Dec 2010 14:32:27 +0000 (15:32 +0100)]
isl_stream_next_token: keep track of string representation of keywords

This allows us to print a more meaningful error message when a keyword
is used in an unexpected place.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoadd isl_basic_set_flatten
Sven Verdoolaege [Mon, 3 Jan 2011 12:05:10 +0000 (13:05 +0100)]
add isl_basic_set_flatten

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoadd isl_union_map_simple_hull
Sven Verdoolaege [Mon, 3 Jan 2011 11:08:40 +0000 (12:08 +0100)]
add isl_union_map_simple_hull

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoMerge branch 'maint'
Sven Verdoolaege [Fri, 7 Jan 2011 15:04:56 +0000 (16:04 +0100)]
Merge branch 'maint'

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoadd isl_set_remove_unknown_divs
Sven Verdoolaege [Sun, 2 Jan 2011 14:12:20 +0000 (15:12 +0100)]
add isl_set_remove_unknown_divs

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_map_is_subset: don't compute divs of minuend
Sven Verdoolaege [Sat, 1 Jan 2011 11:09:01 +0000 (12:09 +0100)]
isl_map_is_subset: don't compute divs of minuend

The knowns divs of the minuend can be exploited, but only those
of the subtrahend are essential for the implementation.
Since the computation of divs can be expensive and since they
are just thrown away afterwards, it's probably best not to compute
the divs of the minuend explicitly.

In principle, isl_map_subtract could be changed in a similar way,
but there the divs are actually visible in the result, so it may
be worth it to compute them.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agorename isl_map_is_singleton to isl_map_fast_is_singleton
Sven Verdoolaege [Sat, 1 Jan 2011 09:48:08 +0000 (10:48 +0100)]
rename isl_map_is_singleton to isl_map_fast_is_singleton

The function is only meant to detect obvious cases.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoadd isl_map_fast_is_single_valued
Sven Verdoolaege [Sat, 1 Jan 2011 09:44:18 +0000 (10:44 +0100)]
add isl_map_fast_is_single_valued

This is mainly meant to deal with the easy cases in isl_map_is_single_valued.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoadd isl_qpolynomial_dump
Sven Verdoolaege [Mon, 3 Jan 2011 11:53:55 +0000 (12:53 +0100)]
add isl_qpolynomial_dump

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoexport isl_union_set_dump
Sven Verdoolaege [Thu, 30 Dec 2010 15:19:18 +0000 (16:19 +0100)]
export isl_union_set_dump

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_qpolynomial_add_on_domain: compute gist with respect to domain
Sven Verdoolaege [Tue, 28 Dec 2010 17:36:34 +0000 (18:36 +0100)]
isl_qpolynomial_add_on_domain: compute gist with respect to domain

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_union_map_coalesce and isl_union_map_compute_divs: properly handle errors
Sven Verdoolaege [Thu, 6 Jan 2011 19:56:26 +0000 (20:56 +0100)]
isl_union_map_coalesce and isl_union_map_compute_divs: properly handle errors

Since we are modifying a union_map that may be used elsewhere,
we need to make sure to not invalidate part of it.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_basic_map_solve_lp: use denominator
Sven Verdoolaege [Sun, 26 Dec 2010 13:37:00 +0000 (14:37 +0100)]
isl_basic_map_solve_lp: use denominator

Before, the denominator would simply be ignored and denominator one
was used instead.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoMerge commit 'isl-0.05.1'
Sven Verdoolaege [Wed, 5 Jan 2011 09:26:32 +0000 (10:26 +0100)]
Merge commit 'isl-0.05.1'

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl 0.05.1 isl-0.05.1
Sven Verdoolaege [Wed, 5 Jan 2011 09:23:11 +0000 (10:23 +0100)]
isl 0.05.1

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_tab_basic_map_partial_lexopt: fix up symmetry detection
Sven Verdoolaege [Wed, 5 Jan 2011 08:50:28 +0000 (09:50 +0100)]
isl_tab_basic_map_partial_lexopt: fix up symmetry detection

The symmetry detection of a41dca9 (isl_tab_basic_map_partial_lexopt:
detect and exploit simple symmetries, Mon Dec 13 16:45:44 2010 +0100)
was a bit too eager in that it would also detect symmetries on affine
expressions involving existentially quantified variables.
Those variables are only available in the input and therefore the
mechanism for exploiting symmetries does not work on them, leading
to incorrect results.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_basic_map_universe: finalize result
Sven Verdoolaege [Sun, 26 Dec 2010 21:42:41 +0000 (22:42 +0100)]
isl_basic_map_universe: finalize result

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_seq.h: allow inclusion from C++
Sven Verdoolaege [Sun, 26 Dec 2010 15:55:11 +0000 (16:55 +0100)]
isl_seq.h: allow inclusion from C++

13 years agoAdd GDB module that defines an islprint command
Tobias Grosser [Thu, 30 Dec 2010 20:12:21 +0000 (15:12 -0500)]
Add GDB module that defines an islprint command

Add a python library that is installed next to libisl. GDB will automatically
load it and add a new gdbcommand called "islprint". This command can be used to
prettyprint isl values. It does not install an official pretty printer, as such
a printer will also pretty print stacktraces which may reference values already
freed.

Before:
(gdb) print stride
$1 = (isl_set *) 0x122e6c0

Now also possible:
(gdb) islprint stride
$1 = "{ MemRef_A[1] }"
(gdb) is stride
$1 = "{ MemRef_A[1] }"

Signed-off-by: Tobias Grosser <grosser@fim.uni-passau.de>
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoreimplement isl_map_partial_lexopt
Sven Verdoolaege [Thu, 30 Dec 2010 14:02:30 +0000 (15:02 +0100)]
reimplement isl_map_partial_lexopt

In case of a map that is a union of more than one basic map,
the old implementation would look for solutions of later basic
maps in those pieces of the domain where earlier basic maps
have no solutions.  This could lead to the domain being broken
up into many small pieces, sometimes dramatically so.
The new implementation tries to avoid some of this splintering
by computing solutions for each basic map separately and then
combining the results.

In the reported case, the map was actually single-valued, so
instead we could have also detected this special case and just
returned the input or we could have tried to make the parametric
integer programming integer return a more compact result,
but the new implementation is more general that the first option
and easier than the second option.

Reported-by: Tobias Grosser <grosser@fim.uni-passau.de>
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoisl_map: fix typos in comments
Sven Verdoolaege [Thu, 30 Dec 2010 14:08:09 +0000 (15:08 +0100)]
isl_map: fix typos in comments

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoadd some more isl_map_lexmin tests
Sven Verdoolaege [Thu, 30 Dec 2010 12:47:49 +0000 (13:47 +0100)]
add some more isl_map_lexmin tests

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoadd isl_qpolynomial_add_isl_int
Sven Verdoolaege [Mon, 27 Dec 2010 20:30:36 +0000 (21:30 +0100)]
add isl_qpolynomial_add_isl_int

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoadd isl_pw_qpolynomial_fold_dump
Sven Verdoolaege [Tue, 28 Dec 2010 09:53:06 +0000 (10:53 +0100)]
add isl_pw_qpolynomial_fold_dump

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoadd isl_pw_qpolynomial_dump
Sven Verdoolaege [Tue, 28 Dec 2010 09:49:54 +0000 (10:49 +0100)]
add isl_pw_qpolynomial_dump

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoadd isl_qpolynomial_fold_dump
Sven Verdoolaege [Mon, 27 Dec 2010 19:06:01 +0000 (20:06 +0100)]
add isl_qpolynomial_fold_dump

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
13 years agoadd isl_qpolynomial_fold_get_ctx
Sven Verdoolaege [Mon, 27 Dec 2010 19:03:37 +0000 (20:03 +0100)]
add isl_qpolynomial_fold_get_ctx

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>