67
static struct isl_arg_choice on_error[] = {
68
{"warn", ISL_ON_ERROR_WARN},
69
{"continue", ISL_ON_ERROR_CONTINUE},
70
{"abort", ISL_ON_ERROR_ABORT},
67
74
static struct isl_arg_flags bernstein_recurse[] = {
68
75
{"none", ISL_BERNSTEIN_FACTORS | ISL_BERNSTEIN_INTERVALS, 0},
69
76
{"factors", ISL_BERNSTEIN_FACTORS | ISL_BERNSTEIN_INTERVALS,
86
93
printf("%s", isl_version());
89
struct isl_arg isl_options_arg[] = {
96
ISL_ARGS_START(struct isl_options, isl_options_args)
90
97
ISL_ARG_CHOICE(struct isl_options, lp_solver, 0, "lp-solver", \
91
98
isl_lp_solver_choice, ISL_LP_TAB, "lp solver to use")
92
99
ISL_ARG_CHOICE(struct isl_options, ilp_solver, 0, "ilp-solver", \
106
113
"only perform basis reduction in first direction")
107
114
ISL_ARG_CHOICE(struct isl_options, bound, 0, "bound", bound,
108
115
ISL_BOUND_BERNSTEIN, "algorithm to use for computing bounds")
116
ISL_ARG_CHOICE(struct isl_options, on_error, 0, "on-error", on_error,
117
ISL_ON_ERROR_WARN, "how to react if an error is detected")
109
118
ISL_ARG_FLAGS(struct isl_options, bernstein_recurse, 0,
110
119
"bernstein-recurse", bernstein_recurse, ISL_BERNSTEIN_FACTORS, NULL)
111
120
ISL_ARG_BOOL(struct isl_options, bernstein_triangulate, 0,
115
124
"detect simple symmetries in PIP input")
116
125
ISL_ARG_CHOICE(struct isl_options, convex, 0, "convex-hull", \
117
126
convex, ISL_CONVEX_HULL_WRAP, "convex hull algorithm to use")
127
ISL_ARG_INT(struct isl_options, schedule_max_constant_term, 0,
128
"schedule-max-constant-term", "limit", -1, "Only consider schedules "
129
"where the coefficients of the constant dimension do not exceed "
130
"<limit>. A value of -1 allows arbitrary coefficients.")
118
131
ISL_ARG_BOOL(struct isl_options, schedule_parametric, 0,
119
132
"schedule-parametric", 1, "construct possibly parametric schedules")
120
133
ISL_ARG_BOOL(struct isl_options, schedule_outer_zero_distance, 0,
122
135
"try to construct schedules with outer zero distances over "
123
136
"proximity dependences")
124
137
ISL_ARG_BOOL(struct isl_options, schedule_maximize_band_depth, 0,
125
"schedule-maximize-band-depth", 0,
138
"schedule-maximize-band-depth", 1,
126
139
"maximize the number of scheduling dimensions in a band")
127
140
ISL_ARG_BOOL(struct isl_options, schedule_split_parallel, 0,
128
141
"schedule-split-parallel", 1,
129
142
"split non-tilable bands with parallel schedules")
130
143
ISL_ARG_VERSION(print_version)
134
ISL_ARG_DEF(isl_options, struct isl_options, isl_options_arg)
146
ISL_ARG_DEF(isl_options, struct isl_options, isl_options_args)
148
ISL_ARG_CTX_DEF(isl_options, struct isl_options, isl_options_args)
150
ISL_CTX_SET_CHOICE_DEF(isl_options, struct isl_options, isl_options_args, bound)
151
ISL_CTX_GET_CHOICE_DEF(isl_options, struct isl_options, isl_options_args, bound)
153
ISL_CTX_SET_CHOICE_DEF(isl_options, struct isl_options, isl_options_args,
155
ISL_CTX_GET_CHOICE_DEF(isl_options, struct isl_options, isl_options_args,
158
ISL_CTX_SET_BOOL_DEF(isl_options, struct isl_options, isl_options_args,
160
ISL_CTX_GET_BOOL_DEF(isl_options, struct isl_options, isl_options_args,
163
ISL_CTX_SET_INT_DEF(isl_options, struct isl_options, isl_options_args,
164
schedule_max_constant_term)
165
ISL_CTX_GET_INT_DEF(isl_options, struct isl_options, isl_options_args,
166
schedule_max_constant_term)
168
ISL_CTX_SET_BOOL_DEF(isl_options, struct isl_options, isl_options_args,
169
schedule_maximize_band_depth)
170
ISL_CTX_GET_BOOL_DEF(isl_options, struct isl_options, isl_options_args,
171
schedule_maximize_band_depth)
173
ISL_CTX_SET_BOOL_DEF(isl_options, struct isl_options, isl_options_args,
174
schedule_outer_zero_distance)
175
ISL_CTX_GET_BOOL_DEF(isl_options, struct isl_options, isl_options_args,
176
schedule_outer_zero_distance)