a60d2c8e89e0aa7c6e12ee3c127ba4c701720baf
[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
15 #if defined(__cplusplus)
16 extern "C" {
17 #endif
18
19 struct isl_options {
20         #define                 ISL_LP_TAB      0
21         #define                 ISL_LP_PIP      1
22         unsigned                lp_solver;
23
24         #define                 ISL_ILP_GBR     0
25         #define                 ISL_ILP_PIP     1
26         unsigned                ilp_solver;
27
28         #define                 ISL_PIP_TAB     0
29         #define                 ISL_PIP_PIP     1
30         unsigned                pip;
31
32         #define                 ISL_CONTEXT_GBR         0
33         #define                 ISL_CONTEXT_LEXMIN      1
34         unsigned                context;
35
36         #define                 ISL_GBR_NEVER   0
37         #define                 ISL_GBR_ONCE    1
38         #define                 ISL_GBR_ALWAYS  2
39         unsigned                gbr;
40         unsigned                gbr_only_first;
41
42         #define                 ISL_CLOSURE_ISL         0
43         #define                 ISL_CLOSURE_BOX         1
44         unsigned                closure;
45
46         #define                 ISL_BOUND_BERNSTEIN     0
47         #define                 ISL_BOUND_RANGE         1
48         int                     bound;
49
50         #define                 ISL_BERNSTEIN_FACTORS   1
51         #define                 ISL_BERNSTEIN_INTERVALS 2
52         int                     bernstein_recurse;
53
54         int                     bernstein_triangulate;
55
56         int                     pip_symmetry;
57
58         #define                 ISL_CONVEX_HULL_WRAP    0
59         #define                 ISL_CONVEX_HULL_FM      1
60         int                     convex;
61
62         int                     schedule_parametric;
63 };
64
65 ISL_ARG_DECL(isl_options, struct isl_options, isl_options_arg)
66
67 extern struct isl_arg isl_options_arg[];
68
69 #if defined(__cplusplus)
70 }
71 #endif
72
73 #endif