Merge branch 'maint'
[platform/upstream/isl.git] / include / isl / options.h
1 /*
2  * Copyright 2008-2009 Katholieke Universiteit Leuven
3  *
4  * Use of this software is governed by the GNU LGPLv2.1 license
5  *
6  * Written by Sven Verdoolaege, K.U.Leuven, Departement
7  * Computerwetenschappen, Celestijnenlaan 200A, B-3001 Leuven, Belgium
8  */
9
10 #ifndef ISL_OPTIONS_H
11 #define ISL_OPTIONS_H
12
13 #include <isl/arg.h>
14 #include <isl/ctx.h>
15
16 #if defined(__cplusplus)
17 extern "C" {
18 #endif
19
20 struct isl_options;
21
22 ISL_ARG_DECL(isl_options, struct isl_options, isl_options_args)
23
24 #define                 ISL_BOUND_BERNSTEIN     0
25 #define                 ISL_BOUND_RANGE         1
26 int isl_options_set_bound(isl_ctx *ctx, int val);
27 int isl_options_get_bound(isl_ctx *ctx);
28
29 #define                 ISL_ON_ERROR_WARN       0
30 #define                 ISL_ON_ERROR_CONTINUE   1
31 #define                 ISL_ON_ERROR_ABORT      2
32 int isl_options_set_on_error(isl_ctx *ctx, int val);
33 int isl_options_get_on_error(isl_ctx *ctx);
34
35 int isl_options_set_gbr_only_first(isl_ctx *ctx, int val);
36 int isl_options_get_gbr_only_first(isl_ctx *ctx);
37
38 #define         ISL_SCHEDULE_ALGORITHM_ISL              0
39 #define         ISL_SCHEDULE_ALGORITHM_FEAUTRIER        1
40 int isl_options_set_schedule_algorithm(isl_ctx *ctx, int val);
41 int isl_options_get_schedule_algorithm(isl_ctx *ctx);
42
43 int isl_options_set_coalesce_bounded_wrapping(isl_ctx *ctx, int val);
44 int isl_options_get_coalesce_bounded_wrapping(isl_ctx *ctx);
45
46 #if defined(__cplusplus)
47 }
48 #endif
49
50 #endif