Sven Verdoolaege [Tue, 17 Apr 2012 10:50:27 +0000 (12:50 +0200)]
isl_basic_map_insert: preserve emptiness
isl_basic_map_plain_is_empty doesn't look at the constraints but only
at the ISL_BASIC_MAP_EMPTY flag. We therefore need to make sure the
flag is set on the output of isl_basic_map_insert if it was set on the
input.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Tue, 17 Apr 2012 10:34:22 +0000 (12:34 +0200)]
isl_basic_set_total_dim: handle NULL input
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Tue, 10 Apr 2012 16:41:28 +0000 (18:41 +0200)]
isl_map_coalesce: don't try to relax (implicit) equalities
An inequality that turns out to be an equality may have been removed
from the tableau, so we cannot relax it.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Fri, 13 Apr 2012 11:01:21 +0000 (13:01 +0200)]
isl_tab_relax: prevent relaxation on dead or redundant constraints
Trying to relax such constraints can only lead to problems,
especially if the constraints have been removed from the tableau.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 11 Apr 2012 12:15:29 +0000 (14:15 +0200)]
isl_basic_map_union: plug memory leak on error path
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Louis-Noel Pouchet [Wed, 11 Apr 2012 14:08:15 +0000 (10:08 -0400)]
Fix a typo in isl_term_dup
Signed-off-by: Louis-Noel Pouchet <pouchet@cse.ohio-state.edu>
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Thu, 1 Mar 2012 10:25:22 +0000 (11:25 +0100)]
isl_pw_*_on_shared_domain: improve error handling
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sat, 3 Mar 2012 22:52:06 +0000 (23:52 +0100)]
isl_union_map_is_subset: properly handle non-obviously empty subsets
If the first argument of isl_union_map_is_subset contains an empty
set in some space that is not present in the second argument,
then isl_union_map_is_subset would incorrectly draw the conclusion
that the first is not a subset of the second.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Thu, 23 Feb 2012 14:51:59 +0000 (15:51 +0100)]
isl_coalesce.c: wrap_in_facets: bail out if any of the facets are empty
It the tableau corresponding to a facet is empty, then we don't have
accurate information on the ridges and we can't call add_wraps.
The facet can have no integer points due to other constraints.
An alternative would be to temporarily treat the tableau as a rational
tableau.
Reported-by: Tobias Grosser <tobias@grosser.es>
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Thu, 23 Feb 2012 15:16:56 +0000 (16:16 +0100)]
isl_test: test_coalesce_set: fail if coalescing failed
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Tue, 14 Feb 2012 22:55:22 +0000 (23:55 +0100)]
isl_convex_hull.c: uset_convex_hull_wrap_bounded: remove redundant constraints
The caller compute_facet expects the result to not contain any redundant
constraints. The input to uset_convex_hull_wrap_bounded, however, might
contain redundant constraints so if this input consists of only one
basic set, we need to make sure redundant constraints are removed.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Tue, 14 Feb 2012 19:02:43 +0000 (20:02 +0100)]
isl_basic_map_realign: preserve (most) flags
In particular, preserve the ISL_BASIC_MAP_EMPTY flag.
Many parts of the code check for this flags so they do not have
to deal with the "1 = 0" constraint.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Tue, 7 Feb 2012 11:13:23 +0000 (12:13 +0100)]
isl_printer_print_pw_aff: fix printing in C format
In 3280c05 (make isl_pw_* object live in a map space,
Tue Aug 30 16:47:59 2011 +0200), the space in which objects live was
changed from that of its domain to that of a map, but
isl_printer_print_pw_aff was not changed accordingly.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Tue, 7 Feb 2012 11:09:03 +0000 (12:09 +0100)]
isl_stream_read_pw_aff: call isl_pw_aff_union_add instead of isl_pw_aff_add
We missed this in 7a86dd8 (rename isl_pw_aff_add to isl_pw_aff_union_add,
Thu Oct 13 12:16:45 2011 +0200).
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Tue, 7 Feb 2012 11:55:43 +0000 (12:55 +0100)]
isl_vertices.c: compute_chambers: avoid access to freed data structure
The problem was introduced in 328c78f (isl_tab_from_basic_map: preserve all
constraints in input when tracking, Mon Jan 16 16:55:44 2012 +0100).
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 1 Feb 2012 17:01:31 +0000 (18:01 +0100)]
isl_basic_set_full_compression: detect equalities in input first
Without this explicit detection of equalities, some equalities
may be discovered in the middle of the computation, possibly
leading to the introduction of existentially quantified variables,
while callers of isl_basic_set_full_compression typically do not
want such variables.
Since the detection of equalities can in some cases be fairly expensive,
we may have to find a better way of dealing with this problem at some point.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 1 Feb 2012 11:34:30 +0000 (12:34 +0100)]
isl_stream_read_pw_qpolynomial: accept products of integer divisions
Before, we called accept_affine to parse an integer division that appears
inside a function, but accept_affine also parses a subsequent '*' and
then expects this '*' to be followed by a constant.
Call accept_div directly intead.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Tue, 31 Jan 2012 18:18:23 +0000 (19:18 +0100)]
isl_union_set_product: call isl_set_product on entries
Before, we would simply delegate control to isl_union_map_product,
which calls isl_map_product on the entries. This doesn't work
on isl_sets because they only have a "range" and no "domain".
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Tue, 31 Jan 2012 14:09:12 +0000 (15:09 +0100)]
isl_tab_pip.c: sol_add: skip empty contexts
If the context becomes non-empty inside find_solutions, we stop
looking for solutions since a89841a (isl_tab_pip.c: find_solutions: break
when context becomes empty, Sun Jan 31 18:29:12 2010 +0100), but
we still call sol_add. We need to return from sol_add early in
such cases because there is nothing to do and, more importantly,
when a basic set is marked empty, its existentials are removed,
resulting in a mismatch in the number of dimensions. In particular,
the basic set returned by sol_domain may not satisfy all assumptions
made by the remainder of sol_add.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Tue, 31 Jan 2012 11:27:09 +0000 (12:27 +0100)]
isl_space_set_dim_id: also set id of parameter in nested spaces
A nested space is supposed to have the same parameters as
the nesting space, so if the id of a parameter in the nesting
space space changes, it has to be changed in the nested spaces too.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Tue, 31 Jan 2012 11:24:38 +0000 (12:24 +0100)]
isl_space_set_dim_id: rename "dim" variable to "space"
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Mon, 30 Jan 2012 14:23:18 +0000 (15:23 +0100)]
schedule.c: split_parallel: avoid invalid memory accesses
The original code incorrectly assumed that the schedules for
all statements have the same number of columns, i.e., that the
dimensions of the iteration domains of all statements are the same.
We fix this up by simply bailing out if we find this assumption not to hold.
We will improve the applicability of the transformation performed by
split_parallel in a subsequent patch.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Tue, 17 Jan 2012 12:52:09 +0000 (13:52 +0100)]
isl_pw_aff_non_zero_set: don't assume isl_pw_aff is total
Before, we would return the domain where the function is not zero
or undefined, whereas we should only return the domain where the function
is not zero.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 18 Jan 2012 17:36:53 +0000 (18:36 +0100)]
isl_aff_nonneg_basic_set and isl_aff_zero_basic_set: simplify result
The constructed constraint may be a tautology in which case it needs
to be simplified away, especially if it is an equality.
We probably want to perform this simplification in
isl_basic_set_from_constraint instead, but CLooG currently depends
on the resulting basic set not being simplified.
We would have to fix CLooG first before we can change this behavior.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Mon, 16 Jan 2012 15:55:44 +0000 (16:55 +0100)]
isl_tab_from_basic_map: preserve all constraints in input when tracking
If the user wants to keep track of a basic map representation of the tableau,
then we need to make sure that the initial tableau corresponds exactly to
the input. In particular, we need to make sure that no (redundant) constraints
are removed.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Mon, 16 Jan 2012 15:46:55 +0000 (16:46 +0100)]
isl_tab_track_bmap: drop sanity checks in case of empty tab
If tab is empty, then we may not have added all constraints of "bmap"
and so the number of constraints in tab and bmap may be different.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Mon, 16 Jan 2012 15:21:49 +0000 (16:21 +0100)]
isl_tab_track_bmap: make sure we have a unique copy of the basic map
The basic map will be modified in place by isl_tab_add_ineq.
Some callers were passing a unique copy to isl_tab_track_bmap
already, but some others apparently were not.
It's safer to just let isl_tab_track_bmap take care of this.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Mon, 16 Jan 2012 11:59:33 +0000 (12:59 +0100)]
isl_tab_track_bmap: fix memory leak on error path
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sun, 15 Jan 2012 15:12:49 +0000 (16:12 +0100)]
isl_basic_map_remove_unknown_divs: restart whenever div has been removed
The call to isl_basic_map_remove_dims may end up calling
isl_basic_map_simplify, which may in turn remove additional divs
if they no longer occur in any constraint.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sun, 15 Jan 2012 14:21:17 +0000 (15:21 +0100)]
isl_map_simple_hull: improve error handling
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Tue, 3 Jan 2012 09:05:50 +0000 (10:05 +0100)]
isl_schedule.c: mark row constructed by compute_split_schedule as non-zero
compute_split_schedule is only called when no zero-distance schedule row
could be found on the entire graph.
We missed this part in ee1ca56 (isl_schedule.c: keep track of parallel loops,
Sun May 29 19:41:55 2011 +0200).
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Mon, 2 Jan 2012 13:10:50 +0000 (14:10 +0100)]
isl_map_project_out: properly handle named or nested spaces
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Fri, 30 Dec 2011 23:18:11 +0000 (00:18 +0100)]
isl_morph_{dom,ran}_params: add missing isl_morph_cow
Usually, isl_morph_remove_{dom,ran}_dims will call isl_morph_cow for us,
but not when n == 0.
Reported-by: Tobias Grosser <tobias@grosser.es>
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sat, 17 Dec 2011 17:19:52 +0000 (18:19 +0100)]
isl 0.09
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sun, 18 Dec 2011 08:41:15 +0000 (09:41 +0100)]
avoid "errno" argument name
On mingw, errno is defined as (*_errno()) in stdlib.h
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sat, 17 Dec 2011 09:14:59 +0000 (10:14 +0100)]
add isl_morph_dump
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sat, 17 Dec 2011 09:13:43 +0000 (10:13 +0100)]
rename isl_morph_dump to isl_morph_print_internal
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Fri, 16 Dec 2011 08:20:34 +0000 (09:20 +0100)]
isl_basic_set_compute_vertices: fix handling of lower-dimensional input
Support was broken by 9043b59 (explicitly differentiate between spaces
of maps, sets and parameter sets, Thu Aug 25 19:21:05 2011 +0200).
This fix should have gone in before that commit.
Reported-by: Tobias Grosser <tobias@grosser.es>
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 14 Dec 2011 10:45:51 +0000 (11:45 +0100)]
doc: improve consistency in list of schedule options
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven van Haastregt [Wed, 14 Dec 2011 09:55:18 +0000 (10:55 +0100)]
add Feautrier's scheduling algorithm
Offer Feautrier's algorithm as an alternative to isl's default scheduling
algorithm. The schedule is extended to a full-dimensional schedule.
To select the scheduling algorithm to use, we introduce isl option
schedule-algorithm.
Signed-off-by: Sven van Haastregt <svhaastr@liacs.nl>
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Tobias Grosser [Mon, 12 Dec 2011 16:07:18 +0000 (17:07 +0100)]
add option to bound the constant scheduling coefficients
If larger coefficients appear as part of the input dependences, the
schedule calculation can take a very long time. We observed that the
main overhead in this calculation is due to optimizing the constant
coefficients. They are misused to increase locality by merging several
unrelated dimensions into a single dimension. This unwanted optimization
increases the complexity of the code and slows down the generated code.
We introduce a new option that bounds the values in the constant
dimension by a user defined value. If the right value is choosen,
costly overoptimization can be prevented.
This solution works, but requires the user to specify the value by
which the constants are bound. For the moment, this is our best
solution, but we hope to to find a more generic one later on.
Signed-off-by: Tobias Grosser <tobias@grosser.es>
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Tobias Grosser [Sun, 11 Dec 2011 23:21:55 +0000 (00:21 +0100)]
Introduce new ISL_CTX_(GET|SET)_INT_DEF macro
This macro uses the same implementation as the corresponding
BOOL and CHOICE macros. Hence, we simplify BOOL and CHOICE by
forwarding to the new INT macro.
Signed-off-by: Tobias Grosser <tobias@grosser.es>
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Tobias Grosser [Sun, 11 Dec 2011 23:21:53 +0000 (00:21 +0100)]
Fix typo in documentation
Signed-off-by: Tobias Grosser <tobias@grosser.es>
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Tobias Grosser [Sun, 11 Dec 2011 23:21:52 +0000 (00:21 +0100)]
Add interface to set schedule_maximize_band_depth
Previously, schedule_maximize_band_depth could only be set with the
corresponding command line option. This patch adds two functions
to change this option when using isl as a library.
int isl_options_set_schedule_maximize_band_depth(
isl_ctx *ctx, int val);
int isl_options_get_schedule_maximize_band_depth(
isl_ctx *ctx);
Signed-off-by: Tobias Grosser <tobias@grosser.es>
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven van Haastregt [Mon, 12 Dec 2011 15:28:32 +0000 (16:28 +0100)]
doc/SubmittingPatches: fix typo in email address
Signed-off-by: Sven van Haastregt <svhaastr@liacs.nl>
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven van Haastregt [Mon, 12 Dec 2011 10:45:17 +0000 (11:45 +0100)]
export schedule_split_parallel option
Signed-off-by: Sven van Haastregt <svhaastr@liacs.nl>
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sun, 11 Dec 2011 12:12:29 +0000 (13:12 +0100)]
add isl_pw_multi_aff_get_pw_aff
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sat, 10 Dec 2011 18:43:38 +0000 (19:43 +0100)]
Merge branch 'maint'
Sven Verdoolaege [Fri, 9 Dec 2011 18:51:06 +0000 (19:51 +0100)]
isl_map_from_pw_aff: handle NULL input
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Tue, 6 Dec 2011 08:17:03 +0000 (09:17 +0100)]
add isl_space_map_from_domain_and_range
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Tobias Grosser [Sat, 3 Dec 2011 15:52:35 +0000 (16:52 +0100)]
Introduce option 'on_error'
The option on_error defines the behaviour of isl in case of an error.
By default, the option is set to 'warn'. This is the current behaviour
and means isl prints a warning and continues the execution of the
program. We also introduce two new modes: 'continue' and 'abort'.
'continue' does not print any warning, but continues execution and 'abort'
abort the program from within isl. 'abort' is useful for debuggers as
they automatically break at the place of the error condition.
Signed-off-by: Tobias Grosser <tobias@grosser.es>
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Thu, 1 Dec 2011 15:02:22 +0000 (16:02 +0100)]
export isl_map_eliminate
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Tobias Grosser [Thu, 1 Dec 2011 14:15:45 +0000 (15:15 +0100)]
Improve message when ctx is freed, but still referenced
Instead of a cryptic 'Assertion "ctx->ref == 0" failed' we report
'isl_ctx freed, but some objects still reference it'.
Signed-off-by: Tobias Grosser <tobias@grosser.es>
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Tobias Grosser [Thu, 1 Dec 2011 14:15:44 +0000 (15:15 +0100)]
add isl_local_space_range
Signed-off-by: Tobias Grosser <tobias@grosser.es>
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Fri, 2 Dec 2011 15:39:58 +0000 (16:39 +0100)]
Merge branch 'maint'
Sven Verdoolaege [Thu, 1 Dec 2011 10:34:31 +0000 (11:34 +0100)]
isl_pw_aff_scale: don't special case multiplication with zero
isl_pw_*_scale returns an empty result if a multiplication with zero
is being performed. We do this because zero is the default value
for polynomials. Affine expressions, by contrast, have no default value
and so we should not return an empty result in this case.
Reported-by: Tomofumi Yuki <tomofumi.yuki@gmail.com>
Tested-by: Tomofumi Yuki <tomofumi.yuki@gmail.com>
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Mon, 28 Nov 2011 15:45:16 +0000 (16:45 +0100)]
add isl_set_find_dim_by_name
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Tue, 29 Nov 2011 09:17:46 +0000 (10:17 +0100)]
isl_basic_map_involves_dims: double-check divs
In principle, the extra test is not needed at this moment, but
this may change in future.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sat, 26 Nov 2011 09:40:31 +0000 (10:40 +0100)]
isl_schedule.c: fix typo in comment
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Fri, 25 Nov 2011 10:00:17 +0000 (11:00 +0100)]
configure.ac: only create interface/Makefile if user has clang
This allows users without clang to perform a "make dist".
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Mon, 21 Nov 2011 21:27:28 +0000 (22:27 +0100)]
add isl_pw_aff_has_dim_id
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Tue, 22 Nov 2011 22:28:39 +0000 (23:28 +0100)]
add missing namespace qualification on llvm::ArrayRef
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 23 Nov 2011 09:33:26 +0000 (10:33 +0100)]
Merge branch 'maint'
Sven Verdoolaege [Tue, 22 Nov 2011 12:54:00 +0000 (13:54 +0100)]
isl_union_pw_*_{intersect_domain,gist}: update to change of isl_pw_* space
In 3280c05 (make isl_pw_* object live in a map space,
Tue Aug 30 16:47:59 2011 +0200), the space in which objects live was
changed from that of its domain to that of a map, but
isl_union_pw_*_{intersect_domain,gist} were not changed accordingly.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sat, 19 Nov 2011 13:48:30 +0000 (14:48 +0100)]
isl_map_insert_dims: handle NULL input
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sat, 19 Nov 2011 13:47:58 +0000 (14:47 +0100)]
isl_set_from_pw_aff: handle NULL input
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Thu, 17 Nov 2011 14:34:33 +0000 (15:34 +0100)]
document isl_basic_map_set_tuple_name
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 16 Nov 2011 14:28:53 +0000 (15:28 +0100)]
.gitignore: add isl_config.h.in~
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Fri, 11 Nov 2011 19:30:18 +0000 (20:30 +0100)]
isl_arg_parse: support string list arguments
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Fri, 11 Nov 2011 10:32:49 +0000 (11:32 +0100)]
hide isl_options structure
We also add some getters and setters for options that are known to
be used from outside of isl.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Thu, 3 Nov 2011 09:19:43 +0000 (10:19 +0100)]
introduce isl_args structure that constains isl_arg list and size of options
Before, the size of the options structure of a submodule was stored
inside the corresponding child option of the parent.
This however, requires that the options structure of the submodule
is visible to the parent so that it can compute the size of this structure.
Moreover, if the size of this structure changes, then the code
containing the child option, which may reside in a different module,
would have to be recompiled.
Now, we store the size of the options structure together with the list
of option descriptions. In particular, it is stored in the same module
as the options structure itself, so that this structure no longer needs
to be exposed.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 9 Nov 2011 09:33:04 +0000 (10:33 +0100)]
add isl_ctx_parse_options
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Thu, 10 Nov 2011 11:27:01 +0000 (12:27 +0100)]
isl_arg_parse: print current option values as defaults
In the --help output, we used to print the default values stored
in the isl_arg objects as the defaults for options.
It is however sometimes convenient to change some of the options
to values different from their true defaults before allowing
the user to override these options. It then makes more sense
to print the current values of the options as defaults, rather
than the defaults that were used during the construction of
options object.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sun, 13 Nov 2011 14:39:55 +0000 (15:39 +0100)]
use the clang driver to obtain command line arguments for the clang frontend
Recent clang perform the Linux header searching in the driver instead
of the fronted. We therefore need to call the driver to obtain
the system include paths and pass them along to the frontend.
Helped-by: Chandler Carruth <chandlerc@google.com>
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Thu, 10 Nov 2011 18:47:04 +0000 (19:47 +0100)]
support more recent LLVMs
In particular, getHostTriple has been renamed to getDefaultTargetTriple.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Thu, 10 Nov 2011 13:57:41 +0000 (14:57 +0100)]
add isl_map_subtract_range
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Serge Belyshev [Sun, 6 Nov 2011 12:45:32 +0000 (16:45 +0400)]
allow --with-gmp=build
This patch allows --with-gmp=build (and thus makes --with-gmp-builddir= work)
This patch is required to restore possibility to build gmp and cloog in a
combined tree with gcc.
Signed-off-by: Serge Belyshev <belyshev@depni.sinp.msu.ru>
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Fri, 28 Oct 2011 12:10:46 +0000 (14:10 +0200)]
isl_map_gist: return empty set if context is obviously empty
This is more consistent with what happens if the intersection
of input and context turns out to be empty.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Thu, 27 Oct 2011 10:29:46 +0000 (12:29 +0200)]
add isl_map_gist_range
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 19 Oct 2011 09:13:31 +0000 (11:13 +0200)]
add isl_map_subtract_domain
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 2 Nov 2011 15:52:54 +0000 (16:52 +0100)]
add isl_set_upper_bound_si
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 2 Nov 2011 15:44:52 +0000 (16:44 +0100)]
document *lower_bound_si functions
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 2 Nov 2011 12:06:44 +0000 (13:06 +0100)]
isl_union_pw_*_gist: special case gist with respect to parameter domains
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 2 Nov 2011 12:05:43 +0000 (13:05 +0100)]
add isl_union_pw_*_gist_params
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 2 Nov 2011 11:39:50 +0000 (12:39 +0100)]
add isl_pw_*_gist_params
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 2 Nov 2011 11:54:28 +0000 (12:54 +0100)]
export isl_pw_multi_aff_gist
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 2 Nov 2011 11:38:39 +0000 (12:38 +0100)]
add isl_multi_aff_gist_params
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 2 Nov 2011 11:34:16 +0000 (12:34 +0100)]
add isl_qpolynomial_gist_params
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 2 Nov 2011 11:30:13 +0000 (12:30 +0100)]
add isl_qpolynomial_fold_gist_params
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 2 Nov 2011 11:47:48 +0000 (12:47 +0100)]
export isl_qpolynomial_fold_gist
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 2 Nov 2011 11:26:28 +0000 (12:26 +0100)]
add isl_aff_gist_params
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 2 Nov 2011 11:24:05 +0000 (12:24 +0100)]
add isl_set_gist_params_basic_set
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 2 Nov 2011 11:22:20 +0000 (12:22 +0100)]
add isl_basic_set_intersect_params
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 2 Nov 2011 10:30:40 +0000 (11:30 +0100)]
isl_union_pw_*_intersect_domain: special case parameter domains
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 2 Nov 2011 10:28:38 +0000 (11:28 +0100)]
add union_pw_*_intersect_params
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 2 Nov 2011 10:16:27 +0000 (11:16 +0100)]
add isl_pw_*_intersect_params
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Sat, 29 Oct 2011 11:49:45 +0000 (13:49 +0200)]
add isl_union_map_params
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Mon, 24 Oct 2011 08:05:06 +0000 (10:05 +0200)]
doc: explain direction of dependence relations from the start
Reported-by: Yi Zhang <yizhang84@gmail.com>
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Wed, 26 Oct 2011 11:49:16 +0000 (13:49 +0200)]
isl_map_is_subset: align parameters if needed
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Sven Verdoolaege [Tue, 25 Oct 2011 14:40:19 +0000 (16:40 +0200)]
isl_pw_*_opt: use correct space in case of empty input
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>