Sven Verdoolaege [Fri, 28 Sep 2012 17:36:50 +0000 (19:36 +0200)]
add extra AST generation test case from CLooG
The test case was not added before because the output had not been
tested yet.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>