introduce isl_args structure that constains isl_arg list and size of options
[isl.git] / include / isl / options.h
blob8ef0f7f71c21de52ba9d6b1a271ef9b2e3f0b350
1 /*
2 * Copyright 2008-2009 Katholieke Universiteit Leuven
4 * Use of this software is governed by the GNU LGPLv2.1 license
6 * Written by Sven Verdoolaege, K.U.Leuven, Departement
7 * Computerwetenschappen, Celestijnenlaan 200A, B-3001 Leuven, Belgium
8 */
10 #ifndef ISL_OPTIONS_H
11 #define ISL_OPTIONS_H
13 #include <isl/arg.h>
15 #if defined(__cplusplus)
16 extern "C" {
17 #endif
19 struct isl_options {
20 #define ISL_LP_TAB 0
21 #define ISL_LP_PIP 1
22 unsigned lp_solver;
24 #define ISL_ILP_GBR 0
25 #define ISL_ILP_PIP 1
26 unsigned ilp_solver;
28 #define ISL_PIP_TAB 0
29 #define ISL_PIP_PIP 1
30 unsigned pip;
32 #define ISL_CONTEXT_GBR 0
33 #define ISL_CONTEXT_LEXMIN 1
34 unsigned context;
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;
42 #define ISL_CLOSURE_ISL 0
43 #define ISL_CLOSURE_BOX 1
44 unsigned closure;
46 #define ISL_BOUND_BERNSTEIN 0
47 #define ISL_BOUND_RANGE 1
48 int bound;
50 #define ISL_BERNSTEIN_FACTORS 1
51 #define ISL_BERNSTEIN_INTERVALS 2
52 int bernstein_recurse;
54 int bernstein_triangulate;
56 int pip_symmetry;
58 #define ISL_CONVEX_HULL_WRAP 0
59 #define ISL_CONVEX_HULL_FM 1
60 int convex;
62 int schedule_parametric;
63 int schedule_outer_zero_distance;
64 int schedule_maximize_band_depth;
65 int schedule_split_parallel;
68 ISL_ARG_DECL(isl_options, struct isl_options, isl_options_args)
70 #if defined(__cplusplus)
72 #endif
74 #endif