isl_basic_set_opt: avoid invalid access on error path
[platform/upstream/isl.git] / isl_options_private.h
1 #ifndef ISL_OPTIONS_PRIVATE_H
2 #define ISL_OPTIONS_PRIVATE_H
3
4 #include <isl/options.h>
5
6 struct isl_options {
7         #define                 ISL_LP_TAB      0
8         #define                 ISL_LP_PIP      1
9         unsigned                lp_solver;
10
11         #define                 ISL_ILP_GBR     0
12         #define                 ISL_ILP_PIP     1
13         unsigned                ilp_solver;
14
15         #define                 ISL_PIP_TAB     0
16         #define                 ISL_PIP_PIP     1
17         unsigned                pip;
18
19         #define                 ISL_CONTEXT_GBR         0
20         #define                 ISL_CONTEXT_LEXMIN      1
21         unsigned                context;
22
23         #define                 ISL_GBR_NEVER   0
24         #define                 ISL_GBR_ONCE    1
25         #define                 ISL_GBR_ALWAYS  2
26         unsigned                gbr;
27         unsigned                gbr_only_first;
28
29         #define                 ISL_CLOSURE_ISL         0
30         #define                 ISL_CLOSURE_BOX         1
31         unsigned                closure;
32
33         int                     bound;
34         unsigned                on_error;
35
36         #define                 ISL_BERNSTEIN_FACTORS   1
37         #define                 ISL_BERNSTEIN_INTERVALS 2
38         int                     bernstein_recurse;
39
40         int                     bernstein_triangulate;
41
42         int                     pip_symmetry;
43
44         #define                 ISL_CONVEX_HULL_WRAP    0
45         #define                 ISL_CONVEX_HULL_FM      1
46         int                     convex;
47
48         int                     coalesce_bounded_wrapping;
49
50         int                     schedule_max_coefficient;
51         int                     schedule_max_constant_term;
52         int                     schedule_parametric;
53         int                     schedule_outer_zero_distance;
54         int                     schedule_maximize_band_depth;
55         int                     schedule_split_scaled;
56         int                     schedule_separate_components;
57         unsigned                schedule_algorithm;
58         int                     schedule_fuse;
59
60         int                     tile_scale_tile_loops;
61
62         char                    *ast_iterator_type;
63
64         int                     ast_build_atomic_upper_bound;
65         int                     ast_build_prefer_pdiv;
66         int                     ast_build_exploit_nested_bounds;
67         int                     ast_build_group_coscheduled;
68         int                     ast_build_separation_bounds;
69         int                     ast_build_scale_strides;
70         int                     ast_build_allow_else;
71 };
72
73 #endif