]>
Commit | Line | Data |
---|---|---|
b5b0b447 ER |
1 | --- gcc/Makefile.in.jj 2012-12-13 17:09:20.000000000 +0100 |
2 | +++ gcc/Makefile.in 2012-12-14 11:45:22.585670055 +0100 | |
3 | @@ -1006,7 +1006,7 @@ BUILD_LIBDEPS= $(BUILD_LIBIBERTY) | |
4 | # and the system's installed libraries. | |
5 | LIBS = @LIBS@ libcommon.a $(CPPLIB) $(LIBINTL) $(LIBICONV) $(LIBBACKTRACE) \ | |
6 | $(LIBIBERTY) $(LIBDECNUMBER) $(HOST_LIBS) | |
7 | -BACKENDLIBS = $(CLOOGLIBS) $(GMPLIBS) $(PLUGINLIBS) $(HOST_LIBS) \ | |
8 | +BACKENDLIBS = $(if $(CLOOGLIBS),-ldl) $(GMPLIBS) $(PLUGINLIBS) $(HOST_LIBS) \ | |
9 | $(ZLIB) | |
10 | # Any system libraries needed just for GNAT. | |
11 | SYSLIBS = @GNAT_LIBEXC@ | |
12 | @@ -2011,6 +2011,15 @@ $(out_object_file): $(out_file) | |
13 | $(common_out_object_file): $(common_out_file) | |
14 | $(COMPILE) $< | |
15 | $(POSTCOMPILE) | |
16 | + | |
17 | +graphite%.o : \ | |
18 | + ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS)) | |
19 | +graphite.o : \ | |
20 | + ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS)) | |
21 | +graphite%.o : \ | |
22 | + ALL_CXXFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CXXFLAGS)) | |
23 | +graphite.o : \ | |
24 | + ALL_CXXFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CXXFLAGS)) | |
25 | #\f | |
26 | # Generate header and source files from the machine description, | |
27 | # and compile them. | |
28 | --- gcc/graphite-poly.h.jj 2012-12-13 11:31:27.000000000 +0100 | |
29 | +++ gcc/graphite-poly.h 2012-12-14 13:41:41.970800726 +0100 | |
30 | @@ -22,6 +22,371 @@ along with GCC; see the file COPYING3. | |
31 | #ifndef GCC_GRAPHITE_POLY_H | |
32 | #define GCC_GRAPHITE_POLY_H | |
33 | ||
34 | +#include <isl/aff.h> | |
35 | +#include <isl/schedule.h> | |
36 | +#include <isl/ilp.h> | |
37 | +#include <isl/flow.h> | |
38 | +#include <isl/options.h> | |
39 | +#include <cloog/isl/cloog.h> | |
40 | +#include <dlfcn.h> | |
41 | +#define DYNSYMS \ | |
42 | + DYNSYM (clast_pprint); \ | |
43 | + DYNSYM (cloog_clast_create_from_input); \ | |
44 | + DYNSYM (cloog_clast_free); \ | |
45 | + DYNSYM (cloog_domain_from_isl_set); \ | |
46 | + DYNSYM (cloog_input_alloc); \ | |
47 | + DYNSYM (cloog_isl_state_malloc); \ | |
48 | + DYNSYM (cloog_options_free); \ | |
49 | + DYNSYM (cloog_options_malloc); \ | |
50 | + DYNSYM (cloog_scattering_from_isl_map); \ | |
51 | + DYNSYM (cloog_state_free); \ | |
52 | + DYNSYM (cloog_union_domain_add_domain); \ | |
53 | + DYNSYM (cloog_union_domain_alloc); \ | |
54 | + DYNSYM (cloog_union_domain_set_name); \ | |
55 | + DYNSYM (isl_aff_add_coefficient_si); \ | |
56 | + DYNSYM (isl_aff_add_constant); \ | |
57 | + DYNSYM (isl_aff_free); \ | |
58 | + DYNSYM (isl_aff_get_coefficient); \ | |
59 | + DYNSYM (isl_aff_get_space); \ | |
60 | + DYNSYM (isl_aff_mod); \ | |
61 | + DYNSYM (isl_aff_set_coefficient_si); \ | |
62 | + DYNSYM (isl_aff_set_constant_si); \ | |
63 | + DYNSYM (isl_aff_zero_on_domain); \ | |
64 | + DYNSYM (isl_band_free); \ | |
65 | + DYNSYM (isl_band_get_children); \ | |
66 | + DYNSYM (isl_band_get_partial_schedule); \ | |
67 | + DYNSYM (isl_band_has_children); \ | |
68 | + DYNSYM (isl_band_list_free); \ | |
69 | + DYNSYM (isl_band_list_get_band); \ | |
70 | + DYNSYM (isl_band_list_get_ctx); \ | |
71 | + DYNSYM (isl_band_list_n_band); \ | |
72 | + DYNSYM (isl_band_member_is_zero_distance); \ | |
73 | + DYNSYM (isl_band_n_member); \ | |
74 | + DYNSYM (isl_basic_map_add_constraint); \ | |
75 | + DYNSYM (isl_basic_map_project_out); \ | |
76 | + DYNSYM (isl_basic_map_universe); \ | |
77 | + DYNSYM (isl_constraint_set_coefficient); \ | |
78 | + DYNSYM (isl_constraint_set_coefficient_si); \ | |
79 | + DYNSYM (isl_constraint_set_constant); \ | |
80 | + DYNSYM (isl_constraint_set_constant_si); \ | |
81 | + DYNSYM (isl_ctx_alloc); \ | |
82 | + DYNSYM (isl_ctx_free); \ | |
83 | + DYNSYM (isl_equality_alloc); \ | |
84 | + DYNSYM (isl_id_alloc); \ | |
85 | + DYNSYM (isl_id_copy); \ | |
86 | + DYNSYM (isl_id_free); \ | |
87 | + DYNSYM (isl_inequality_alloc); \ | |
88 | + DYNSYM (isl_local_space_copy); \ | |
89 | + DYNSYM (isl_local_space_free); \ | |
90 | + DYNSYM (isl_local_space_from_space); \ | |
91 | + DYNSYM (isl_local_space_range); \ | |
92 | + DYNSYM (isl_map_add_constraint); \ | |
93 | + DYNSYM (isl_map_add_dims); \ | |
94 | + DYNSYM (isl_map_align_params); \ | |
95 | + DYNSYM (isl_map_apply_range); \ | |
96 | + DYNSYM (isl_map_copy); \ | |
97 | + DYNSYM (isl_map_dim); \ | |
98 | + DYNSYM (isl_map_dump); \ | |
99 | + DYNSYM (isl_map_equate); \ | |
100 | + DYNSYM (isl_map_fix_si); \ | |
101 | + DYNSYM (isl_map_flat_product); \ | |
102 | + DYNSYM (isl_map_flat_range_product); \ | |
103 | + DYNSYM (isl_map_free); \ | |
104 | + DYNSYM (isl_map_from_basic_map); \ | |
105 | + DYNSYM (isl_map_from_pw_aff); \ | |
106 | + DYNSYM (isl_map_from_union_map); \ | |
107 | + DYNSYM (isl_map_get_ctx); \ | |
108 | + DYNSYM (isl_map_get_space); \ | |
109 | + DYNSYM (isl_map_get_tuple_id); \ | |
110 | + DYNSYM (isl_map_insert_dims); \ | |
111 | + DYNSYM (isl_map_intersect); \ | |
112 | + DYNSYM (isl_map_intersect_domain); \ | |
113 | + DYNSYM (isl_map_intersect_range); \ | |
114 | + DYNSYM (isl_map_is_empty); \ | |
115 | + DYNSYM (isl_map_lex_ge); \ | |
116 | + DYNSYM (isl_map_lex_le); \ | |
117 | + DYNSYM (isl_map_n_out); \ | |
118 | + DYNSYM (isl_map_range); \ | |
119 | + DYNSYM (isl_map_set_tuple_id); \ | |
120 | + DYNSYM (isl_map_universe); \ | |
121 | + DYNSYM (isl_options_set_on_error); \ | |
122 | + DYNSYM (isl_options_set_schedule_fuse); \ | |
123 | + DYNSYM (isl_options_set_schedule_max_constant_term); \ | |
124 | + DYNSYM (isl_options_set_schedule_maximize_band_depth); \ | |
125 | + DYNSYM (isl_printer_free); \ | |
126 | + DYNSYM (isl_printer_print_aff); \ | |
127 | + DYNSYM (isl_printer_print_constraint); \ | |
128 | + DYNSYM (isl_printer_print_map); \ | |
129 | + DYNSYM (isl_printer_print_set); \ | |
130 | + DYNSYM (isl_printer_to_file); \ | |
131 | + DYNSYM (isl_pw_aff_add); \ | |
132 | + DYNSYM (isl_pw_aff_alloc); \ | |
133 | + DYNSYM (isl_pw_aff_copy); \ | |
134 | + DYNSYM (isl_pw_aff_eq_set); \ | |
135 | + DYNSYM (isl_pw_aff_free); \ | |
136 | + DYNSYM (isl_pw_aff_from_aff); \ | |
137 | + DYNSYM (isl_pw_aff_ge_set); \ | |
138 | + DYNSYM (isl_pw_aff_gt_set); \ | |
139 | + DYNSYM (isl_pw_aff_is_cst); \ | |
140 | + DYNSYM (isl_pw_aff_le_set); \ | |
141 | + DYNSYM (isl_pw_aff_lt_set); \ | |
142 | + DYNSYM (isl_pw_aff_mod); \ | |
143 | + DYNSYM (isl_pw_aff_mul); \ | |
144 | + DYNSYM (isl_pw_aff_ne_set); \ | |
145 | + DYNSYM (isl_pw_aff_nonneg_set); \ | |
146 | + DYNSYM (isl_pw_aff_set_tuple_id); \ | |
147 | + DYNSYM (isl_pw_aff_sub); \ | |
148 | + DYNSYM (isl_pw_aff_zero_set); \ | |
149 | + DYNSYM (isl_schedule_free); \ | |
150 | + DYNSYM (isl_schedule_get_band_forest); \ | |
151 | + DYNSYM (isl_set_add_constraint); \ | |
152 | + DYNSYM (isl_set_add_dims); \ | |
153 | + DYNSYM (isl_set_apply); \ | |
154 | + DYNSYM (isl_set_coalesce); \ | |
155 | + DYNSYM (isl_set_copy); \ | |
156 | + DYNSYM (isl_set_dim); \ | |
157 | + DYNSYM (isl_set_fix_si); \ | |
158 | + DYNSYM (isl_set_free); \ | |
159 | + DYNSYM (isl_set_from_cloog_domain); \ | |
160 | + DYNSYM (isl_set_get_space); \ | |
161 | + DYNSYM (isl_set_get_tuple_id); \ | |
162 | + DYNSYM (isl_set_intersect); \ | |
163 | + DYNSYM (isl_set_is_empty); \ | |
164 | + DYNSYM (isl_set_max); \ | |
165 | + DYNSYM (isl_set_min); \ | |
166 | + DYNSYM (isl_set_n_dim); \ | |
167 | + DYNSYM (isl_set_nat_universe); \ | |
168 | + DYNSYM (isl_set_project_out); \ | |
169 | + DYNSYM (isl_set_set_tuple_id); \ | |
170 | + DYNSYM (isl_set_universe); \ | |
171 | + DYNSYM (isl_space_add_dims); \ | |
172 | + DYNSYM (isl_space_alloc); \ | |
173 | + DYNSYM (isl_space_copy); \ | |
174 | + DYNSYM (isl_space_dim); \ | |
175 | + DYNSYM (isl_space_domain); \ | |
176 | + DYNSYM (isl_space_find_dim_by_id); \ | |
177 | + DYNSYM (isl_space_free); \ | |
178 | + DYNSYM (isl_space_from_domain); \ | |
179 | + DYNSYM (isl_space_get_tuple_id); \ | |
180 | + DYNSYM (isl_space_params_alloc); \ | |
181 | + DYNSYM (isl_space_range); \ | |
182 | + DYNSYM (isl_space_set_alloc); \ | |
183 | + DYNSYM (isl_space_set_dim_id); \ | |
184 | + DYNSYM (isl_space_set_tuple_id); \ | |
185 | + DYNSYM (isl_union_map_add_map); \ | |
186 | + DYNSYM (isl_union_map_align_params); \ | |
187 | + DYNSYM (isl_union_map_apply_domain); \ | |
188 | + DYNSYM (isl_union_map_apply_range); \ | |
189 | + DYNSYM (isl_union_map_compute_flow); \ | |
190 | + DYNSYM (isl_union_map_copy); \ | |
191 | + DYNSYM (isl_union_map_empty); \ | |
192 | + DYNSYM (isl_union_map_flat_range_product); \ | |
193 | + DYNSYM (isl_union_map_foreach_map); \ | |
194 | + DYNSYM (isl_union_map_free); \ | |
195 | + DYNSYM (isl_union_map_from_map); \ | |
196 | + DYNSYM (isl_union_map_get_ctx); \ | |
197 | + DYNSYM (isl_union_map_get_space); \ | |
198 | + DYNSYM (isl_union_map_gist_domain); \ | |
199 | + DYNSYM (isl_union_map_gist_range); \ | |
200 | + DYNSYM (isl_union_map_intersect_domain); \ | |
201 | + DYNSYM (isl_union_map_is_empty); \ | |
202 | + DYNSYM (isl_union_map_subtract); \ | |
203 | + DYNSYM (isl_union_map_union); \ | |
204 | + DYNSYM (isl_union_set_add_set); \ | |
205 | + DYNSYM (isl_union_set_compute_schedule); \ | |
206 | + DYNSYM (isl_union_set_copy); \ | |
207 | + DYNSYM (isl_union_set_empty); \ | |
208 | + DYNSYM (isl_union_set_from_set); \ | |
209 | + DYNSYM (stmt_ass); \ | |
210 | + DYNSYM (stmt_block); \ | |
211 | + DYNSYM (stmt_for); \ | |
212 | + DYNSYM (stmt_guard); \ | |
213 | + DYNSYM (stmt_root); \ | |
214 | + DYNSYM (stmt_user); | |
215 | +extern struct cloog_pointers_s__ | |
216 | +{ | |
217 | + bool inited; | |
218 | + void *h; | |
219 | +#define DYNSYM(x) __typeof (x) *p_##x | |
220 | + DYNSYMS | |
221 | +#undef DYNSYM | |
222 | +} cloog_pointers__; | |
223 | + | |
224 | +#define cloog_block_alloc (*cloog_pointers__.p_cloog_block_alloc) | |
225 | +#define clast_pprint (*cloog_pointers__.p_clast_pprint) | |
226 | +#define cloog_clast_create_from_input (*cloog_pointers__.p_cloog_clast_create_from_input) | |
227 | +#define cloog_clast_free (*cloog_pointers__.p_cloog_clast_free) | |
228 | +#define cloog_domain_from_isl_set (*cloog_pointers__.p_cloog_domain_from_isl_set) | |
229 | +#define cloog_input_alloc (*cloog_pointers__.p_cloog_input_alloc) | |
230 | +#define cloog_isl_state_malloc (*cloog_pointers__.p_cloog_isl_state_malloc) | |
231 | +#define cloog_options_free (*cloog_pointers__.p_cloog_options_free) | |
232 | +#define cloog_options_malloc (*cloog_pointers__.p_cloog_options_malloc) | |
233 | +#define cloog_scattering_from_isl_map (*cloog_pointers__.p_cloog_scattering_from_isl_map) | |
234 | +#define cloog_state_free (*cloog_pointers__.p_cloog_state_free) | |
235 | +#define cloog_union_domain_add_domain (*cloog_pointers__.p_cloog_union_domain_add_domain) | |
236 | +#define cloog_union_domain_alloc (*cloog_pointers__.p_cloog_union_domain_alloc) | |
237 | +#define cloog_union_domain_set_name (*cloog_pointers__.p_cloog_union_domain_set_name) | |
238 | +#define isl_aff_add_coefficient_si (*cloog_pointers__.p_isl_aff_add_coefficient_si) | |
239 | +#define isl_aff_add_constant (*cloog_pointers__.p_isl_aff_add_constant) | |
240 | +#define isl_aff_free (*cloog_pointers__.p_isl_aff_free) | |
241 | +#define isl_aff_get_coefficient (*cloog_pointers__.p_isl_aff_get_coefficient) | |
242 | +#define isl_aff_get_space (*cloog_pointers__.p_isl_aff_get_space) | |
243 | +#define isl_aff_mod (*cloog_pointers__.p_isl_aff_mod) | |
244 | +#define isl_aff_set_coefficient_si (*cloog_pointers__.p_isl_aff_set_coefficient_si) | |
245 | +#define isl_aff_set_constant_si (*cloog_pointers__.p_isl_aff_set_constant_si) | |
246 | +#define isl_aff_zero_on_domain (*cloog_pointers__.p_isl_aff_zero_on_domain) | |
247 | +#define isl_band_free (*cloog_pointers__.p_isl_band_free) | |
248 | +#define isl_band_get_children (*cloog_pointers__.p_isl_band_get_children) | |
249 | +#define isl_band_get_partial_schedule (*cloog_pointers__.p_isl_band_get_partial_schedule) | |
250 | +#define isl_band_has_children (*cloog_pointers__.p_isl_band_has_children) | |
251 | +#define isl_band_list_free (*cloog_pointers__.p_isl_band_list_free) | |
252 | +#define isl_band_list_get_band (*cloog_pointers__.p_isl_band_list_get_band) | |
253 | +#define isl_band_list_get_ctx (*cloog_pointers__.p_isl_band_list_get_ctx) | |
254 | +#define isl_band_list_n_band (*cloog_pointers__.p_isl_band_list_n_band) | |
255 | +#define isl_band_member_is_zero_distance (*cloog_pointers__.p_isl_band_member_is_zero_distance) | |
256 | +#define isl_band_n_member (*cloog_pointers__.p_isl_band_n_member) | |
257 | +#define isl_basic_map_add_constraint (*cloog_pointers__.p_isl_basic_map_add_constraint) | |
258 | +#define isl_basic_map_project_out (*cloog_pointers__.p_isl_basic_map_project_out) | |
259 | +#define isl_basic_map_universe (*cloog_pointers__.p_isl_basic_map_universe) | |
260 | +#define isl_constraint_set_coefficient (*cloog_pointers__.p_isl_constraint_set_coefficient) | |
261 | +#define isl_constraint_set_coefficient_si (*cloog_pointers__.p_isl_constraint_set_coefficient_si) | |
262 | +#define isl_constraint_set_constant (*cloog_pointers__.p_isl_constraint_set_constant) | |
263 | +#define isl_constraint_set_constant_si (*cloog_pointers__.p_isl_constraint_set_constant_si) | |
264 | +#define isl_ctx_alloc (*cloog_pointers__.p_isl_ctx_alloc) | |
265 | +#define isl_ctx_free (*cloog_pointers__.p_isl_ctx_free) | |
266 | +#define isl_equality_alloc (*cloog_pointers__.p_isl_equality_alloc) | |
267 | +#define isl_id_alloc (*cloog_pointers__.p_isl_id_alloc) | |
268 | +#define isl_id_copy (*cloog_pointers__.p_isl_id_copy) | |
269 | +#define isl_id_free (*cloog_pointers__.p_isl_id_free) | |
270 | +#define isl_inequality_alloc (*cloog_pointers__.p_isl_inequality_alloc) | |
271 | +#define isl_local_space_copy (*cloog_pointers__.p_isl_local_space_copy) | |
272 | +#define isl_local_space_free (*cloog_pointers__.p_isl_local_space_free) | |
273 | +#define isl_local_space_from_space (*cloog_pointers__.p_isl_local_space_from_space) | |
274 | +#define isl_local_space_range (*cloog_pointers__.p_isl_local_space_range) | |
275 | +#define isl_map_add_constraint (*cloog_pointers__.p_isl_map_add_constraint) | |
276 | +#define isl_map_add_dims (*cloog_pointers__.p_isl_map_add_dims) | |
277 | +#define isl_map_align_params (*cloog_pointers__.p_isl_map_align_params) | |
278 | +#define isl_map_apply_range (*cloog_pointers__.p_isl_map_apply_range) | |
279 | +#define isl_map_copy (*cloog_pointers__.p_isl_map_copy) | |
280 | +#define isl_map_dim (*cloog_pointers__.p_isl_map_dim) | |
281 | +#define isl_map_dump (*cloog_pointers__.p_isl_map_dump) | |
282 | +#define isl_map_equate (*cloog_pointers__.p_isl_map_equate) | |
283 | +#define isl_map_fix_si (*cloog_pointers__.p_isl_map_fix_si) | |
284 | +#define isl_map_flat_product (*cloog_pointers__.p_isl_map_flat_product) | |
285 | +#define isl_map_flat_range_product (*cloog_pointers__.p_isl_map_flat_range_product) | |
286 | +#define isl_map_free (*cloog_pointers__.p_isl_map_free) | |
287 | +#define isl_map_from_basic_map (*cloog_pointers__.p_isl_map_from_basic_map) | |
288 | +#define isl_map_from_pw_aff (*cloog_pointers__.p_isl_map_from_pw_aff) | |
289 | +#define isl_map_from_union_map (*cloog_pointers__.p_isl_map_from_union_map) | |
290 | +#define isl_map_get_ctx (*cloog_pointers__.p_isl_map_get_ctx) | |
291 | +#define isl_map_get_space (*cloog_pointers__.p_isl_map_get_space) | |
292 | +#define isl_map_get_tuple_id (*cloog_pointers__.p_isl_map_get_tuple_id) | |
293 | +#define isl_map_insert_dims (*cloog_pointers__.p_isl_map_insert_dims) | |
294 | +#define isl_map_intersect (*cloog_pointers__.p_isl_map_intersect) | |
295 | +#define isl_map_intersect_domain (*cloog_pointers__.p_isl_map_intersect_domain) | |
296 | +#define isl_map_intersect_range (*cloog_pointers__.p_isl_map_intersect_range) | |
297 | +#define isl_map_is_empty (*cloog_pointers__.p_isl_map_is_empty) | |
298 | +#define isl_map_lex_ge (*cloog_pointers__.p_isl_map_lex_ge) | |
299 | +#define isl_map_lex_le (*cloog_pointers__.p_isl_map_lex_le) | |
300 | +#define isl_map_n_out (*cloog_pointers__.p_isl_map_n_out) | |
301 | +#define isl_map_range (*cloog_pointers__.p_isl_map_range) | |
302 | +#define isl_map_set_tuple_id (*cloog_pointers__.p_isl_map_set_tuple_id) | |
303 | +#define isl_map_universe (*cloog_pointers__.p_isl_map_universe) | |
304 | +#define isl_options_set_on_error (*cloog_pointers__.p_isl_options_set_on_error) | |
305 | +#define isl_options_set_schedule_fuse (*cloog_pointers__.p_isl_options_set_schedule_fuse) | |
306 | +#define isl_options_set_schedule_max_constant_term (*cloog_pointers__.p_isl_options_set_schedule_max_constant_term) | |
307 | +#define isl_options_set_schedule_maximize_band_depth (*cloog_pointers__.p_isl_options_set_schedule_maximize_band_depth) | |
308 | +#define isl_printer_free (*cloog_pointers__.p_isl_printer_free) | |
309 | +#define isl_printer_print_aff (*cloog_pointers__.p_isl_printer_print_aff) | |
310 | +#define isl_printer_print_constraint (*cloog_pointers__.p_isl_printer_print_constraint) | |
311 | +#define isl_printer_print_map (*cloog_pointers__.p_isl_printer_print_map) | |
312 | +#define isl_printer_print_set (*cloog_pointers__.p_isl_printer_print_set) | |
313 | +#define isl_printer_to_file (*cloog_pointers__.p_isl_printer_to_file) | |
314 | +#define isl_pw_aff_add (*cloog_pointers__.p_isl_pw_aff_add) | |
315 | +#define isl_pw_aff_alloc (*cloog_pointers__.p_isl_pw_aff_alloc) | |
316 | +#define isl_pw_aff_copy (*cloog_pointers__.p_isl_pw_aff_copy) | |
317 | +#define isl_pw_aff_eq_set (*cloog_pointers__.p_isl_pw_aff_eq_set) | |
318 | +#define isl_pw_aff_free (*cloog_pointers__.p_isl_pw_aff_free) | |
319 | +#define isl_pw_aff_from_aff (*cloog_pointers__.p_isl_pw_aff_from_aff) | |
320 | +#define isl_pw_aff_ge_set (*cloog_pointers__.p_isl_pw_aff_ge_set) | |
321 | +#define isl_pw_aff_gt_set (*cloog_pointers__.p_isl_pw_aff_gt_set) | |
322 | +#define isl_pw_aff_is_cst (*cloog_pointers__.p_isl_pw_aff_is_cst) | |
323 | +#define isl_pw_aff_le_set (*cloog_pointers__.p_isl_pw_aff_le_set) | |
324 | +#define isl_pw_aff_lt_set (*cloog_pointers__.p_isl_pw_aff_lt_set) | |
325 | +#define isl_pw_aff_mod (*cloog_pointers__.p_isl_pw_aff_mod) | |
326 | +#define isl_pw_aff_mul (*cloog_pointers__.p_isl_pw_aff_mul) | |
327 | +#define isl_pw_aff_ne_set (*cloog_pointers__.p_isl_pw_aff_ne_set) | |
328 | +#define isl_pw_aff_nonneg_set (*cloog_pointers__.p_isl_pw_aff_nonneg_set) | |
329 | +#define isl_pw_aff_set_tuple_id (*cloog_pointers__.p_isl_pw_aff_set_tuple_id) | |
330 | +#define isl_pw_aff_sub (*cloog_pointers__.p_isl_pw_aff_sub) | |
331 | +#define isl_pw_aff_zero_set (*cloog_pointers__.p_isl_pw_aff_zero_set) | |
332 | +#define isl_schedule_free (*cloog_pointers__.p_isl_schedule_free) | |
333 | +#define isl_schedule_get_band_forest (*cloog_pointers__.p_isl_schedule_get_band_forest) | |
334 | +#define isl_set_add_constraint (*cloog_pointers__.p_isl_set_add_constraint) | |
335 | +#define isl_set_add_dims (*cloog_pointers__.p_isl_set_add_dims) | |
336 | +#define isl_set_apply (*cloog_pointers__.p_isl_set_apply) | |
337 | +#define isl_set_coalesce (*cloog_pointers__.p_isl_set_coalesce) | |
338 | +#define isl_set_copy (*cloog_pointers__.p_isl_set_copy) | |
339 | +#define isl_set_dim (*cloog_pointers__.p_isl_set_dim) | |
340 | +#define isl_set_fix_si (*cloog_pointers__.p_isl_set_fix_si) | |
341 | +#define isl_set_free (*cloog_pointers__.p_isl_set_free) | |
342 | +#define isl_set_from_cloog_domain (*cloog_pointers__.p_isl_set_from_cloog_domain) | |
343 | +#define isl_set_get_space (*cloog_pointers__.p_isl_set_get_space) | |
344 | +#define isl_set_get_tuple_id (*cloog_pointers__.p_isl_set_get_tuple_id) | |
345 | +#define isl_set_intersect (*cloog_pointers__.p_isl_set_intersect) | |
346 | +#define isl_set_is_empty (*cloog_pointers__.p_isl_set_is_empty) | |
347 | +#define isl_set_max (*cloog_pointers__.p_isl_set_max) | |
348 | +#define isl_set_min (*cloog_pointers__.p_isl_set_min) | |
349 | +#define isl_set_n_dim (*cloog_pointers__.p_isl_set_n_dim) | |
350 | +#define isl_set_nat_universe (*cloog_pointers__.p_isl_set_nat_universe) | |
351 | +#define isl_set_project_out (*cloog_pointers__.p_isl_set_project_out) | |
352 | +#define isl_set_set_tuple_id (*cloog_pointers__.p_isl_set_set_tuple_id) | |
353 | +#define isl_set_universe (*cloog_pointers__.p_isl_set_universe) | |
354 | +#define isl_space_add_dims (*cloog_pointers__.p_isl_space_add_dims) | |
355 | +#define isl_space_alloc (*cloog_pointers__.p_isl_space_alloc) | |
356 | +#define isl_space_copy (*cloog_pointers__.p_isl_space_copy) | |
357 | +#define isl_space_dim (*cloog_pointers__.p_isl_space_dim) | |
358 | +#define isl_space_domain (*cloog_pointers__.p_isl_space_domain) | |
359 | +#define isl_space_find_dim_by_id (*cloog_pointers__.p_isl_space_find_dim_by_id) | |
360 | +#define isl_space_free (*cloog_pointers__.p_isl_space_free) | |
361 | +#define isl_space_from_domain (*cloog_pointers__.p_isl_space_from_domain) | |
362 | +#define isl_space_get_tuple_id (*cloog_pointers__.p_isl_space_get_tuple_id) | |
363 | +#define isl_space_params_alloc (*cloog_pointers__.p_isl_space_params_alloc) | |
364 | +#define isl_space_range (*cloog_pointers__.p_isl_space_range) | |
365 | +#define isl_space_set_alloc (*cloog_pointers__.p_isl_space_set_alloc) | |
366 | +#define isl_space_set_dim_id (*cloog_pointers__.p_isl_space_set_dim_id) | |
367 | +#define isl_space_set_tuple_id (*cloog_pointers__.p_isl_space_set_tuple_id) | |
368 | +#define isl_union_map_add_map (*cloog_pointers__.p_isl_union_map_add_map) | |
369 | +#define isl_union_map_align_params (*cloog_pointers__.p_isl_union_map_align_params) | |
370 | +#define isl_union_map_apply_domain (*cloog_pointers__.p_isl_union_map_apply_domain) | |
371 | +#define isl_union_map_apply_range (*cloog_pointers__.p_isl_union_map_apply_range) | |
372 | +#define isl_union_map_compute_flow (*cloog_pointers__.p_isl_union_map_compute_flow) | |
373 | +#define isl_union_map_copy (*cloog_pointers__.p_isl_union_map_copy) | |
374 | +#define isl_union_map_empty (*cloog_pointers__.p_isl_union_map_empty) | |
375 | +#define isl_union_map_flat_range_product (*cloog_pointers__.p_isl_union_map_flat_range_product) | |
376 | +#define isl_union_map_foreach_map (*cloog_pointers__.p_isl_union_map_foreach_map) | |
377 | +#define isl_union_map_free (*cloog_pointers__.p_isl_union_map_free) | |
378 | +#define isl_union_map_from_map (*cloog_pointers__.p_isl_union_map_from_map) | |
379 | +#define isl_union_map_get_ctx (*cloog_pointers__.p_isl_union_map_get_ctx) | |
380 | +#define isl_union_map_get_space (*cloog_pointers__.p_isl_union_map_get_space) | |
381 | +#define isl_union_map_gist_domain (*cloog_pointers__.p_isl_union_map_gist_domain) | |
382 | +#define isl_union_map_gist_range (*cloog_pointers__.p_isl_union_map_gist_range) | |
383 | +#define isl_union_map_intersect_domain (*cloog_pointers__.p_isl_union_map_intersect_domain) | |
384 | +#define isl_union_map_is_empty (*cloog_pointers__.p_isl_union_map_is_empty) | |
385 | +#define isl_union_map_subtract (*cloog_pointers__.p_isl_union_map_subtract) | |
386 | +#define isl_union_map_union (*cloog_pointers__.p_isl_union_map_union) | |
387 | +#define isl_union_set_add_set (*cloog_pointers__.p_isl_union_set_add_set) | |
388 | +#define isl_union_set_compute_schedule (*cloog_pointers__.p_isl_union_set_compute_schedule) | |
389 | +#define isl_union_set_copy (*cloog_pointers__.p_isl_union_set_copy) | |
390 | +#define isl_union_set_empty (*cloog_pointers__.p_isl_union_set_empty) | |
391 | +#define isl_union_set_from_set (*cloog_pointers__.p_isl_union_set_from_set) | |
392 | +#define stmt_ass (*cloog_pointers__.p_stmt_ass) | |
393 | +#define stmt_block (*cloog_pointers__.p_stmt_block) | |
394 | +#define stmt_for (*cloog_pointers__.p_stmt_for) | |
395 | +#define stmt_guard (*cloog_pointers__.p_stmt_guard) | |
396 | +#define stmt_root (*cloog_pointers__.p_stmt_root) | |
397 | +#define stmt_user (*cloog_pointers__.p_stmt_user) | |
398 | + | |
399 | typedef struct poly_dr *poly_dr_p; | |
400 | ||
401 | typedef struct poly_bb *poly_bb_p; | |
402 | --- gcc/graphite.c.jj 2012-12-13 11:31:00.000000000 +0100 | |
403 | +++ gcc/graphite.c 2012-12-14 13:40:44.155136961 +0100 | |
404 | @@ -78,6 +78,34 @@ along with GCC; see the file COPYING3. | |
405 | ||
406 | CloogState *cloog_state; | |
407 | ||
408 | +__typeof (cloog_pointers__) cloog_pointers__; | |
409 | + | |
410 | +static bool | |
411 | +init_cloog_pointers (void) | |
412 | +{ | |
413 | + void *h; | |
414 | + | |
415 | + if (cloog_pointers__.inited) | |
416 | + return cloog_pointers__.h != NULL; | |
417 | + h = dlopen ("libcloog-isl.so.4", RTLD_LAZY); | |
418 | + cloog_pointers__.h = h; | |
419 | + if (h == NULL) | |
420 | + return false; | |
421 | +#define DYNSYM(x) \ | |
422 | + do \ | |
423 | + { \ | |
424 | + union { __typeof (cloog_pointers__.p_##x) p; void *q; } u; \ | |
425 | + u.q = dlsym (h, #x); \ | |
426 | + if (u.q == NULL) \ | |
427 | + return false; \ | |
428 | + cloog_pointers__.p_##x = u.p; \ | |
429 | + } \ | |
430 | + while (0) | |
431 | + DYNSYMS | |
432 | +#undef DYNSYM | |
433 | + return true; | |
434 | +} | |
435 | + | |
436 | /* Print global statistics to FILE. */ | |
437 | ||
438 | static void | |
439 | @@ -277,6 +305,15 @@ graphite_transform_loops (void) | |
440 | if (parallelized_function_p (cfun->decl)) | |
441 | return; | |
442 | ||
443 | + if (number_of_loops (cfun) <= 1) | |
444 | + return; | |
445 | + | |
446 | + if (!init_cloog_pointers ()) | |
447 | + { | |
448 | + sorry ("Graphite loop optimizations cannot be used"); | |
449 | + return; | |
450 | + } | |
451 | + | |
452 | ctx = isl_ctx_alloc (); | |
453 | isl_options_set_on_error (ctx, ISL_ON_ERROR_ABORT); | |
454 | if (!graphite_initialize (ctx)) | |
455 | --- gcc/graphite-clast-to-gimple.c.jj 2012-12-13 11:31:27.000000000 +0100 | |
456 | +++ gcc/graphite-clast-to-gimple.c 2012-12-14 13:27:47.196519858 +0100 | |
457 | @@ -910,7 +910,7 @@ compute_bounds_for_loop (struct clast_fo | |
458 | from STMT_FOR. */ | |
459 | ||
460 | static tree | |
461 | -type_for_clast_for (struct clast_for *stmt_for, ivs_params_p ip) | |
462 | +type_for_clast_for (struct clast_for *stmt_fora, ivs_params_p ip) | |
463 | { | |
464 | mpz_t bound_one, bound_two; | |
465 | tree lb_type, ub_type; | |
466 | @@ -918,8 +918,8 @@ type_for_clast_for (struct clast_for *st | |
467 | mpz_init (bound_one); | |
468 | mpz_init (bound_two); | |
469 | ||
470 | - lb_type = type_for_clast_expr (stmt_for->LB, ip, bound_one, bound_two); | |
471 | - ub_type = type_for_clast_expr (stmt_for->UB, ip, bound_one, bound_two); | |
472 | + lb_type = type_for_clast_expr (stmt_fora->LB, ip, bound_one, bound_two); | |
473 | + ub_type = type_for_clast_expr (stmt_fora->UB, ip, bound_one, bound_two); | |
474 | ||
475 | mpz_clear (bound_one); | |
476 | mpz_clear (bound_two); |