1#ifndef ISL_OPTIONS_PRIVATE_H
2#define ISL_OPTIONS_PRIVATE_H
3
4#include <isl/options.h>
5
6struct 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	int			tile_shift_point_loops;
62
63	char			*ast_iterator_type;
64
65	int			ast_build_atomic_upper_bound;
66	int			ast_build_prefer_pdiv;
67	int			ast_build_exploit_nested_bounds;
68	int			ast_build_group_coscheduled;
69	int			ast_build_separation_bounds;
70	int			ast_build_scale_strides;
71	int			ast_build_allow_else;
72	int			ast_build_allow_or;
73};
74
75#endif
76