platform/upstream/isl.git
12 years agoisl_printer_print_str: handle NULL input
Sven Verdoolaege [Fri, 21 Sep 2012 19:57:19 +0000 (21:57 +0200)]
isl_printer_print_str: handle NULL input

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_ast_expr_mod: perform missing multiplication
Sven Verdoolaege [Fri, 21 Sep 2012 16:11:07 +0000 (18:11 +0200)]
isl_ast_expr_mod: perform missing multiplication

The function was documented as multiplying the constructed modulo expression
by the first argument, but failed to do so.
The problem went unnoticed because the first argument is usually equal to 1.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoMake sed expression in Makefile compatible with BSD style sed
Tobias Grosser [Fri, 21 Sep 2012 10:50:08 +0000 (12:50 +0200)]
Make sed expression in Makefile compatible with BSD style sed

Apparently sed as available on Mac, requires a terminating semicolon
in the command list. As gnu-sed is OK with and without the semicolon
we add it for compatibility.

Note that the "{" command of historical seds may not support multiple
commands on a single line.

Reported-by: Georg <georggcc@googlemail.com>
Signed-off-by: Tobias Grosser <tobias@grosser.es>
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_id_set_free_user
Sven Verdoolaege [Mon, 10 Sep 2012 12:23:40 +0000 (14:23 +0200)]
add isl_id_set_free_user

Allow the user to specify a callback to be called on the user pointer
when the last reference to the isl_id disappears.  This is convenient
for attaching dynamically allocated data structures to isl_ids,
especially in annotations to AST nodes.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_printer_print_pw_aff: use isl_ast_expr when printing in C format
Sven Verdoolaege [Mon, 14 May 2012 15:30:25 +0000 (17:30 +0200)]
isl_printer_print_pw_aff: use isl_ast_expr when printing in C format

isl_ast_expr_from_aff tries a bit harder to print a nice result,
so we might as well reuse that functionality.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd support for generating ASTs from schedule relations
Sven Verdoolaege [Mon, 17 Sep 2012 20:11:06 +0000 (22:11 +0200)]
add support for generating ASTs from schedule relations

This functionality is similar to that offered by CLooG and codegen(+).
The implementation in isl allows for a bit more control on how
the ASTs are generated by means of fairly flexible options.
It also has proper support for nested AST generation.

The outputs of all test cases have been verified by parsing them
using pet and then checking that the set of calls corresponds exactly
to the domain of the schedule and that they are called in an order
that matches the schedule.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd ISL_CTX_{GET,SET}_STR_DEF macros
Sven Verdoolaege [Mon, 17 Sep 2012 15:34:48 +0000 (17:34 +0200)]
add ISL_CTX_{GET,SET}_STR_DEF macros

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agodoc: separate out polyhedral compilation functionality
Sven Verdoolaege [Thu, 24 May 2012 17:48:01 +0000 (19:48 +0200)]
doc: separate out polyhedral compilation functionality

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_set_dim_has_{lower,upper}_bound
Sven Verdoolaege [Sun, 26 Aug 2012 13:53:42 +0000 (15:53 +0200)]
add isl_set_dim_has_{lower,upper}_bound

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_basic_set_substitute: check that input affine expression is integral
Sven Verdoolaege [Thu, 1 Mar 2012 10:02:51 +0000 (11:02 +0100)]
isl_basic_set_substitute: check that input affine expression is integral

Otherwise, we may have to add stride constraints.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_pw_multi_aff_substitute: improve error handling
Sven Verdoolaege [Wed, 29 Feb 2012 16:58:47 +0000 (17:58 +0100)]
isl_pw_multi_aff_substitute: improve error handling

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_basic_map_align_divs: fix potential invalid access
Sven Verdoolaege [Sat, 3 Mar 2012 12:55:54 +0000 (13:55 +0100)]
isl_basic_map_align_divs: fix potential invalid access

isl_basic_map_align_divs is currently only called on inputs that are
known not to be NULL, but since we check whether they are NULL anyway,
we might as well only access them after this test.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_pw_multi_aff_from_map: detect strides in output dimensions
Sven Verdoolaege [Fri, 14 Sep 2012 21:43:26 +0000 (23:43 +0200)]
isl_pw_multi_aff_from_map: detect strides in output dimensions

If the input map is of the form

{ [i] -> [j] : exists a: j = 4 a and i - 1 <= j <= i }

then the detection mechanism of the previous commit will not
be able to read off the definition of j directly from the constraints.
However, if we plug in j = 4 j', we obtain

{ [i] -> [j'] : i - 1 <= 4 j' <= i }

from which we can read off j' = floor(i/4), which can then be plugged
back into j = 4 j' to obitain j = 4 * floor(i/4).

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_pw_multi_aff_from_map: detect easy floors directly from constraints
Sven Verdoolaege [Tue, 11 Sep 2012 13:26:42 +0000 (15:26 +0200)]
isl_pw_multi_aff_from_map: detect easy floors directly from constraints

If the input map has constraints of the form

{ [i] -> [j] : i - 1 <= 2 j <= i }

then we can easily detect that j can be taken to be equal to floor(i / 2).
Detecting these conditions directly from the constraints saves us
from having to compute a minimum on this dimension
using parametric integer programming.  Not only can such an operation
be fairly costly, it can also lead to needless subdivisions if there
are any other constraints on the dimension to be minimized.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoprivately export isl_map_is_set
Sven Verdoolaege [Mon, 17 Sep 2012 11:58:41 +0000 (13:58 +0200)]
privately export isl_map_is_set

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_pw_*_pullback_pw_multi_aff
Sven Verdoolaege [Sat, 15 Sep 2012 07:16:04 +0000 (09:16 +0200)]
add isl_pw_*_pullback_pw_multi_aff

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_pw_*_pullback_multi_aff
Sven Verdoolaege [Fri, 20 Jul 2012 13:28:12 +0000 (15:28 +0200)]
add isl_pw_*_pullback_multi_aff

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_multi_aff_pullback_multi_aff
Sven Verdoolaege [Fri, 20 Jul 2012 12:07:37 +0000 (14:07 +0200)]
add isl_multi_aff_pullback_multi_aff

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_aff_pullback_multi_aff
Sven Verdoolaege [Fri, 20 Jul 2012 11:51:33 +0000 (13:51 +0200)]
add isl_aff_pullback_multi_aff

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_local_space_preimage_multi_aff
Sven Verdoolaege [Fri, 20 Jul 2012 11:32:10 +0000 (13:32 +0200)]
add isl_local_space_preimage_multi_aff

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_set_preimage_pw_multi_aff
Sven Verdoolaege [Sat, 25 Aug 2012 09:18:40 +0000 (11:18 +0200)]
add isl_set_preimage_pw_multi_aff

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_set_preimage_multi_aff
Sven Verdoolaege [Wed, 18 Jul 2012 10:41:32 +0000 (12:41 +0200)]
add isl_set_preimage_multi_aff

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_basic_set_preimage_multi_aff
Sven Verdoolaege [Sat, 14 Jul 2012 11:50:29 +0000 (13:50 +0200)]
add isl_basic_set_preimage_multi_aff

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_stream_new_str: fail on NULL input
Sven Verdoolaege [Tue, 17 Jul 2012 17:01:21 +0000 (19:01 +0200)]
isl_stream_new_str: fail on NULL input

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoprivately export isl_multi_aff_align_divs
Sven Verdoolaege [Sun, 15 Jul 2012 10:26:19 +0000 (12:26 +0200)]
privately export isl_multi_aff_align_divs

We will need it in the next commit.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_basic_set_add_div_constraints
Sven Verdoolaege [Wed, 29 Feb 2012 17:55:46 +0000 (18:55 +0100)]
add isl_basic_set_add_div_constraints

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_map_is_subset: support rational maps
Sven Verdoolaege [Sun, 15 Jul 2012 08:17:37 +0000 (10:17 +0200)]
isl_map_is_subset: support rational maps

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_stream_read_map: fix parsing of Omega input
Sven Verdoolaege [Sat, 15 Sep 2012 11:42:30 +0000 (13:42 +0200)]
isl_stream_read_map: fix parsing of Omega input

Support for parsing such input was broken by fc5018d (isl_stream_read_map:
accept alternative [i][j] tuple syntax, Sun Jul 3 21:01:01 2011 +0200)
as the two tuples in, say, {Sym=[n] [i] : i <= n } would get merged
into a single tuple (i.e., [n,i]).

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_stream_read_map: add partial support for reading rational sets
Sven Verdoolaege [Sun, 15 Jul 2012 07:52:53 +0000 (09:52 +0200)]
isl_stream_read_map: add partial support for reading rational sets

The support is incomplete, but enough to read the inputs in the test
cases of the next commit.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_pw_aff_nonneg_set: return a rational set if the input is marked rational
Sven Verdoolaege [Wed, 22 Aug 2012 18:10:10 +0000 (20:10 +0200)]
isl_pw_aff_nonneg_set: return a rational set if the input is marked rational

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_pw_aff_zero_set: return a rational set if the input is marked rational
Sven Verdoolaege [Mon, 16 Jul 2012 17:32:22 +0000 (19:32 +0200)]
isl_pw_aff_zero_set: return a rational set if the input is marked rational

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_pw_aff_list_set_rational
Sven Verdoolaege [Wed, 22 Aug 2012 18:11:12 +0000 (20:11 +0200)]
add isl_pw_aff_list_set_rational

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_pw_aff_set_rational
Sven Verdoolaege [Mon, 16 Jul 2012 17:27:24 +0000 (19:27 +0200)]
add isl_pw_aff_set_rational

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoprivately export isl_set_set_rational
Sven Verdoolaege [Sun, 15 Jul 2012 07:52:13 +0000 (09:52 +0200)]
privately export isl_set_set_rational

We will need it in the next commit.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_set_has_rational
Sven Verdoolaege [Mon, 16 Jul 2012 17:19:23 +0000 (19:19 +0200)]
add isl_set_has_rational

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoreimplement isl_stream_read_aff in terms of isl_stream_read_multi_aff
Sven Verdoolaege [Sun, 15 Jul 2012 11:50:46 +0000 (13:50 +0200)]
reimplement isl_stream_read_aff in terms of isl_stream_read_multi_aff

Reading an isl_aff is essentially a special case of reading an isl_multi_aff.
We therefore do not need any special code for reading an isl_aff, but can
instead read it as an isl_multi_aff and then extract out the isl_aff.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agodeclare isl_stream_read_multi_aff
Sven Verdoolaege [Sun, 15 Jul 2012 11:50:22 +0000 (13:50 +0200)]
declare isl_stream_read_multi_aff

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_stream_read_multi_aff: read tuples directly
Sven Verdoolaege [Sat, 14 Jul 2012 21:41:53 +0000 (23:41 +0200)]
isl_stream_read_multi_aff: read tuples directly

The original code would call isl_stream_read_pw_multi_aff, which in
turn first parsed the input as a map.  Not only does this lead to
needless, potentially expensive, conversions, it also makes it difficult
to parse rational expressions.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_input.c: change tuple parsing
Sven Verdoolaege [Sat, 14 Jul 2012 20:42:17 +0000 (22:42 +0200)]
isl_input.c: change tuple parsing

Instead of immediately updating an isl_map, we first collect the
information in an isl_multi_pw_aff and then update the isl_map
based on this information.
This will allow us to reuse the tuple parsing in an improved
isl_stream_read_multi_aff.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_pw_multi_aff_range_product
Sven Verdoolaege [Sat, 15 Sep 2012 07:08:29 +0000 (09:08 +0200)]
add isl_pw_multi_aff_range_product

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_multi_*_splice
Sven Verdoolaege [Sun, 19 Aug 2012 18:01:04 +0000 (20:01 +0200)]
add isl_multi_*_splice

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_multi_*_range_splice
Sven Verdoolaege [Sun, 19 Aug 2012 17:59:29 +0000 (19:59 +0200)]
add isl_multi_*_range_splice

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_multi_*_set_tuple_name
Sven Verdoolaege [Sun, 15 Jul 2012 19:52:51 +0000 (21:52 +0200)]
add isl_multi_*_set_tuple_name

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_multi_*_range_product
Sven Verdoolaege [Sun, 15 Jul 2012 19:45:42 +0000 (21:45 +0200)]
add isl_multi_*_range_product

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_multi_*_add_dims
Sven Verdoolaege [Sun, 15 Jul 2012 19:17:01 +0000 (21:17 +0200)]
add isl_multi_*_add_dims

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_multi_*_insert_dims
Sven Verdoolaege [Sun, 15 Jul 2012 19:14:52 +0000 (21:14 +0200)]
add isl_multi_*_insert_dims

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_multi_pw_aff
Sven Verdoolaege [Mon, 16 Jul 2012 10:39:41 +0000 (12:39 +0200)]
add isl_multi_pw_aff

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_multi_aff_from_aff
Sven Verdoolaege [Mon, 16 Jul 2012 13:00:42 +0000 (15:00 +0200)]
add isl_multi_aff_from_aff

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_multi_templ.c: rename align_params_multi_set_and to include MULTI(BASE)
Sven Verdoolaege [Mon, 16 Jul 2012 13:44:07 +0000 (15:44 +0200)]
isl_multi_templ.c: rename align_params_multi_set_and to include MULTI(BASE)

This allows isl_pw_multi.c to be included twice from the same file.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_multi_templ.h: avoid reference to explicit element type
Sven Verdoolaege [Mon, 16 Jul 2012 10:52:31 +0000 (12:52 +0200)]
isl_multi_templ.h: avoid reference to explicit element type

This will make it easier to create additional isl_multi_* types.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_multi_*_reset_space_and_domain: call isl_*_reset_domain_space
Sven Verdoolaege [Mon, 16 Jul 2012 10:39:28 +0000 (12:39 +0200)]
isl_multi_*_reset_space_and_domain: call isl_*_reset_domain_space

The original code would call isl_*_reset_space_and_domain,
but the space of the multi_* is clearly different from the space of the *,
so it does not make sense to pass that space to the *.
In case of isl_multi_aff, this does not cause any problems because
isl_aff_reset_space_and_domain ignore the first argument.
However, for an isl_multi_pw_aff, this would cause problems.
Call isl_*_reset_domain_space instead.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agogeneralize isl_multi_aff_flat_range_product
Sven Verdoolaege [Mon, 16 Jul 2012 12:39:41 +0000 (14:39 +0200)]
generalize isl_multi_aff_flat_range_product

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agogeneralize isl_multi_aff_drop_dims
Sven Verdoolaege [Sun, 19 Aug 2012 17:29:48 +0000 (19:29 +0200)]
generalize isl_multi_aff_drop_dims

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agogeneralize isl_multi_aff_set_dim_name
Sven Verdoolaege [Mon, 16 Jul 2012 12:30:36 +0000 (14:30 +0200)]
generalize isl_multi_aff_set_dim_name

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agogeneralize isl_multi_aff_zero
Sven Verdoolaege [Tue, 18 Sep 2012 12:57:58 +0000 (14:57 +0200)]
generalize isl_multi_aff_zero

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agogeneralize isl_multi_aff_identity
Sven Verdoolaege [Sat, 25 Aug 2012 08:50:52 +0000 (10:50 +0200)]
generalize isl_multi_aff_identity

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_pw_aff_zero_on_domain
Sven Verdoolaege [Tue, 18 Sep 2012 12:51:11 +0000 (14:51 +0200)]
add isl_pw_aff_zero_on_domain

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_pw_aff_var_on_domain
Sven Verdoolaege [Sat, 25 Aug 2012 08:43:43 +0000 (10:43 +0200)]
add isl_pw_aff_var_on_domain

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_aff_var_on_domain
Sven Verdoolaege [Sat, 25 Aug 2012 08:37:02 +0000 (10:37 +0200)]
add isl_aff_var_on_domain

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_input.c: obj_read_body: simplify error handling
Sven Verdoolaege [Sun, 15 Jul 2012 12:06:12 +0000 (14:06 +0200)]
isl_input.c: obj_read_body: simplify error handling

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_basic_set_drop_constraints_not_involving_dims
Sven Verdoolaege [Fri, 7 Sep 2012 13:46:54 +0000 (15:46 +0200)]
add isl_basic_set_drop_constraints_not_involving_dims

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_{set,map}_drop_constraints_involving_dims
Sven Verdoolaege [Mon, 20 Aug 2012 12:51:55 +0000 (14:51 +0200)]
add isl_{set,map}_drop_constraints_involving_dims

We implement these functions on top of the existing
isl_basic_set_drop_constraints_involving which handles dimensions
in terms of absolute positions.  We may want to convert the users
of this old function over to the new functions at some point.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_set_unshifted_simple_hull
Sven Verdoolaege [Thu, 19 Apr 2012 14:09:42 +0000 (16:09 +0200)]
add isl_set_unshifted_simple_hull

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_stream_read_union_map: force result to be a map
Sven Verdoolaege [Mon, 17 Sep 2012 15:13:49 +0000 (17:13 +0200)]
isl_stream_read_union_map: force result to be a map

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_union_map_subtract_range
Sven Verdoolaege [Mon, 17 Sep 2012 13:57:26 +0000 (15:57 +0200)]
add isl_union_map_subtract_range

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_set_from_pw_multi_aff: handle NULL input
Sven Verdoolaege [Mon, 17 Sep 2012 11:47:48 +0000 (13:47 +0200)]
isl_set_from_pw_multi_aff: handle NULL input

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_union_map.c: plain_injective_on_range: silence clang warning
Sven Verdoolaege [Sat, 15 Sep 2012 08:21:47 +0000 (10:21 +0200)]
isl_union_map.c: plain_injective_on_range: silence clang warning

Recent clangs complain that "n" may be used uninitialized in the call
to free_isl_fixed_map_array.  However, this only happens data.v is NULL,
in which case free_isl_fixed_map_array does not even look at n.

By moving the initialization of n up, we can silence this warning.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_transitive_closure.c: union_components: avoid invalid access on error path
Sven Verdoolaege [Sat, 15 Sep 2012 08:20:54 +0000 (10:20 +0200)]
isl_transitive_closure.c: union_components: avoid invalid access on error path

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_range.c qpolynomial_bound_on_domain_range: avoid invalid access on error path
Sven Verdoolaege [Sat, 15 Sep 2012 08:20:28 +0000 (10:20 +0200)]
isl_range.c qpolynomial_bound_on_domain_range: avoid invalid access on error path

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_convex_hull.c: initial_facet_constraint: avoid invalid access on error path
Sven Verdoolaege [Sat, 15 Sep 2012 08:19:56 +0000 (10:19 +0200)]
isl_convex_hull.c: initial_facet_constraint: avoid invalid access on error path

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_map_union: special case universal input
Sven Verdoolaege [Fri, 14 Sep 2012 08:15:55 +0000 (10:15 +0200)]
isl_map_union: special case universal input

In particular, there is no need to construct a new isl_map
as we can simply return the universal input map.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_map_gist: special case universal and equal inputs
Sven Verdoolaege [Fri, 14 Sep 2012 07:49:58 +0000 (09:49 +0200)]
isl_map_gist: special case universal and equal inputs

In both these cases, the solution is trivial and we do not need to
go into the regular computation.
Moreover, if the inputs are equal but not convex, then the original
code would not be able to come to the conclusion that the gist
is the universe.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoexport isl_set_plain_cmp
Sven Verdoolaege [Wed, 12 Sep 2012 08:25:09 +0000 (10:25 +0200)]
export isl_set_plain_cmp

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agodoc: clarify use of identifiers
Sven Verdoolaege [Mon, 10 Sep 2012 12:40:37 +0000 (14:40 +0200)]
doc: clarify use of identifiers

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_basic_set_remove_unknown_divs
Sven Verdoolaege [Fri, 7 Sep 2012 21:21:47 +0000 (23:21 +0200)]
add isl_basic_set_remove_unknown_divs

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoand isl_pw_aff_tdiv_q and isl_pw_aff_tdiv_r
Sven Verdoolaege [Wed, 12 Sep 2012 17:48:57 +0000 (19:48 +0200)]
and isl_pw_aff_tdiv_q and isl_pw_aff_tdiv_r

These are useful for expressing the result of the corresponding C operators.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_pw_aff_div
Sven Verdoolaege [Wed, 12 Sep 2012 17:31:54 +0000 (19:31 +0200)]
add isl_pw_aff_div

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_set_is_disjoint
Sven Verdoolaege [Wed, 12 Sep 2012 10:30:46 +0000 (12:30 +0200)]
add isl_set_is_disjoint

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_map_plain_is_disjoint: special case obviously empty inputs
Sven Verdoolaege [Wed, 12 Sep 2012 10:27:53 +0000 (12:27 +0200)]
isl_map_plain_is_disjoint: special case obviously empty inputs

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_basic_map_is_empty: special case universal input
Sven Verdoolaege [Wed, 12 Sep 2012 10:25:46 +0000 (12:25 +0200)]
isl_basic_map_is_empty: special case universal input

In particular, there is no need to compute any sample point on
universal inputs.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_map_plain_is_disjoint: fix error handling
Sven Verdoolaege [Wed, 12 Sep 2012 10:22:11 +0000 (12:22 +0200)]
isl_map_plain_is_disjoint: fix error handling

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_aff.c: fix typo in comment
Sven Verdoolaege [Tue, 11 Sep 2012 10:25:35 +0000 (12:25 +0200)]
isl_aff.c: fix typo in comment

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_aff_normalize: combine identical divs
Sven Verdoolaege [Sat, 8 Sep 2012 12:46:33 +0000 (14:46 +0200)]
isl_aff_normalize: combine identical divs

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_aff_normalize: plug in divs with denominator one
Sven Verdoolaege [Fri, 20 Jul 2012 10:21:35 +0000 (12:21 +0200)]
isl_aff_normalize: plug in divs with denominator one

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoextract out isl_local_space_substitute_seq
Sven Verdoolaege [Fri, 20 Jul 2012 09:49:36 +0000 (11:49 +0200)]
extract out isl_local_space_substitute_seq

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoextract out common isl_seq_substitute
Sven Verdoolaege [Thu, 19 Jul 2012 19:27:28 +0000 (21:27 +0200)]
extract out common isl_seq_substitute

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_aff_normalize: sort divs in local space of affine expression
Sven Verdoolaege [Thu, 19 Jul 2012 18:27:28 +0000 (20:27 +0200)]
isl_aff_normalize: sort divs in local space of affine expression

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_local_space_swap_div
Sven Verdoolaege [Thu, 19 Jul 2012 16:20:57 +0000 (18:20 +0200)]
add isl_local_space_swap_div

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoprivately export isl_mat_cmp_div
Sven Verdoolaege [Thu, 19 Jul 2012 12:12:51 +0000 (14:12 +0200)]
privately export isl_mat_cmp_div

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agofix isl_union_map_detect_equalities memory management annotation
Tobias Grosser [Sun, 9 Sep 2012 18:38:57 +0000 (20:38 +0200)]
fix isl_union_map_detect_equalities memory management annotation

The signature of that function had accidently an __isl_keep annotation
instead of an __isl_take. Fix this such that the signature in the
header matches the signature of the implementation.

Signed-off-by: Tobias Grosser <tobias@grosser.es>
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_map_uncurry
Sven Verdoolaege [Thu, 6 Sep 2012 13:42:24 +0000 (15:42 +0200)]
add isl_map_uncurry

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_union_map_subtract_domain
Sven Verdoolaege [Thu, 6 Sep 2012 13:16:05 +0000 (15:16 +0200)]
add isl_union_map_subtract_domain

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_pw_*_gist: avoid intersection of domain with context
Sven Verdoolaege [Fri, 24 Aug 2012 17:38:39 +0000 (19:38 +0200)]
isl_pw_*_gist: avoid intersection of domain with context

The intersection was introduced in cf42ba2 (isl_pw_qpolynomial_gist:
substitute equalities in polynomials, Mon Oct 25 13:49:22 2010 +0200)
in order to be able to detect and exploit equalities in the intersection.
However, there is no need to change the domain itself as we can just
as well use a temporary object.

Intersecting the domain with the context is not what the user would
expect as the purpose of the gist operation is to only keep the most
salient information, which is quite the opposite of introducing
extra constraints.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_map_intersect_domain: avoid useless double reverse
Sven Verdoolaege [Wed, 22 Aug 2012 12:52:22 +0000 (14:52 +0200)]
isl_map_intersect_domain: avoid useless double reverse

Implementing isl_map_intersect_domain in terms of isl_map_intersect_range
was easier than a proper implementation, but the two calls to
isl_map_reverse can lead to needless inefficiencies.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_map_intersect_{range,domain}: stop allowing intersection with parameter set
Sven Verdoolaege [Wed, 22 Aug 2012 08:47:33 +0000 (10:47 +0200)]
isl_map_intersect_{range,domain}: stop allowing intersection with parameter set

The test was in fact too liberal and would also allow presumably unintended
cases.  Users should call isl_map_intersect_params instead.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoisl_map_intersect: special case universal input
Sven Verdoolaege [Wed, 22 Aug 2012 15:33:55 +0000 (17:33 +0200)]
isl_map_intersect: special case universal input

In particular, there is no need to construct a new isl_map
if one of the arguments to isl_map_intersect is obviously universal.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_constraint_list
Sven Verdoolaege [Fri, 24 Aug 2012 13:08:25 +0000 (15:08 +0200)]
add isl_constraint_list

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_pw_multi_aff_set_pw_aff
Sven Verdoolaege [Sat, 25 Aug 2012 10:57:46 +0000 (12:57 +0200)]
add isl_pw_multi_aff_set_pw_aff

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agoadd isl_pw_multi_aff_identity
Sven Verdoolaege [Sat, 25 Aug 2012 10:34:40 +0000 (12:34 +0200)]
add isl_pw_multi_aff_identity

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
12 years agodeclare isl_pw_multi_aff_align_params
Sven Verdoolaege [Sat, 25 Aug 2012 09:04:42 +0000 (11:04 +0200)]
declare isl_pw_multi_aff_align_params

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