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_CONTEXT_GBR		0
8 	#define			ISL_CONTEXT_LEXMIN	1
9 	unsigned		context;
10 
11 	#define			ISL_GBR_NEVER	0
12 	#define			ISL_GBR_ONCE	1
13 	#define			ISL_GBR_ALWAYS	2
14 	unsigned		gbr;
15 	unsigned		gbr_only_first;
16 
17 	#define			ISL_CLOSURE_ISL		0
18 	#define			ISL_CLOSURE_BOX		1
19 	unsigned		closure;
20 
21 	int			bound;
22 	unsigned		on_error;
23 
24 	#define			ISL_BERNSTEIN_FACTORS	1
25 	#define			ISL_BERNSTEIN_INTERVALS	2
26 	int			bernstein_recurse;
27 
28 	int			bernstein_triangulate;
29 
30 	int			pip_symmetry;
31 
32 	#define			ISL_CONVEX_HULL_WRAP	0
33 	#define			ISL_CONVEX_HULL_FM	1
34 	int			convex;
35 
36 	int			coalesce_bounded_wrapping;
37 	int			coalesce_preserve_locals;
38 
39 	int			schedule_max_coefficient;
40 	int			schedule_max_constant_term;
41 	int			schedule_parametric;
42 	int			schedule_outer_coincidence;
43 	int			schedule_maximize_band_depth;
44 	int			schedule_maximize_coincidence;
45 	int			schedule_split_scaled;
46 	int			schedule_treat_coalescing;
47 	int			schedule_separate_components;
48 	int			schedule_whole_component;
49 	unsigned		schedule_algorithm;
50 	int			schedule_carry_self_first;
51 	int			schedule_serialize_sccs;
52 
53 	int			tile_scale_tile_loops;
54 	int			tile_shift_point_loops;
55 
56 	char			*ast_iterator_type;
57 	int			ast_always_print_block;
58 	int			ast_print_outermost_block;
59 	int			ast_print_macro_once;
60 
61 	int			ast_build_atomic_upper_bound;
62 	int			ast_build_prefer_pdiv;
63 	int			ast_build_detect_min_max;
64 	int			ast_build_exploit_nested_bounds;
65 	int			ast_build_group_coscheduled;
66 	int			ast_build_separation_bounds;
67 	int			ast_build_scale_strides;
68 	int			ast_build_allow_else;
69 	int			ast_build_allow_or;
70 
71 	int			print_stats;
72 	unsigned long		max_operations;
73 };
74 
75 #endif
76