]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog.graphite
Add testcase for PR45230.
[thirdparty/gcc.git] / gcc / ChangeLog.graphite
CommitLineData
36f62589 12010-08-20 Sebastian Pop <sebastian.pop@amd.com>
2
3 PR middle-end/45230
4 * gcc.dg/graphite/id-pr45230.c: New.
5
3e0b5bba 62010-08-20 Sebastian Pop <sebastian.pop@amd.com>
7
8 * tree-scalar-evolution.c (instantiate_array_ref): New.
9 (instantiate_scev_r): Also handle ARRAY_REFs.
10
a05095f9 112010-08-20 Sebastian Pop <sebastian.pop@amd.com>
12
13 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
14 Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
15 RESULT_DECL, and FIELD_DECL. Return false for an
16 SSA_NAME_IS_DEFAULT_DEF.
17 (compute_scalar_evolution_in_loop): Do not further analyze the
18 scalar evolution when no_evolution_in_loop_p returns true.
19
bef5a5f5 202010-08-20 Sebastian Pop <sebastian.pop@amd.com>
21
22 * tree-chrec.h (evolution_function_is_affine_p): Do not check
23 whether CHREC_LEFT is invariant. A function is affine when
24 CHREC_RIGHT is invariant.
25
7ba04629 262010-08-20 Sebastian Pop <sebastian.pop@amd.com>
27
28 * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
29 is_gimple_reg.
30 (rewrite_degenerate_phi): Same.
31 (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
32
e3135850 332010-08-18 Vladimir Kargov <kargov@gmail.com>
34
35 * graphite-scop-detection.c (graphite_can_represent_scev,
7ba04629 36 graphite_can_represent_expr, stmt_has_simple_data_refs_p,
e3135850 37 graphite_can_represent_loop): Remove outermost_loop.
38
a4a4b66a 392010-08-17 Sebastian Pop <sebastian.pop@amd.com>
40
41 PR middle-end/45229
42 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
43 handle GIMPLE_CALLs with no LHS.
44
0d5d0b4d 452010-08-17 Riyadh Baghdadi <baghdadi.mr@gmail.com>
46 Sebastian Pop <sebastian.pop@amd.com>
47
48 * gcc.dg/graphite/graphite.exp: Add test rules for openscop read/write.
49 Call remove-build-file to clean up the generated *.graphite files.
50
512010-08-17 Riyadh Baghdadi <baghdadi.mr@gmail.com>
1aefcf09 52
53 * doc/invoke.texi (debugging options): Update documentation.
54 (-floop-interchange): Same.
55 (-flopp-strip-mine): Same.
56 (-floop-block): Same.
57 (-fgraphite-read): Add documentation.
58 (-fgraphite-write): Same.
59
0d5d0b4d 602010-08-17 Riyadh Baghdadi <baghdadi.mr@gmail.com>
91a594b4 61
62 * toplev.c (process_options): Disable graphite loop optimization
63 options when -fgraphite-read flag is used.
64
c64f5631 652010-08-17 Riyadh Baghdadi <baghdadi.mr@gmail.com>
66
67 * graphite-poly.c (init_graphite_out_file): New.
68 (init_graphite_in_file): New.
69 (apply_poly_transforms): Updated to enable reading and writing of
70 multiple scop files.
71 * toplev.c (init_asm_output): Remove graphite in/out file initialization.
72
629787af 732010-08-17 Tobias Grosser <grosser@fim.uni-passau.de>
74
75 * graphite-scop-detection.c (graphite_can_represent_scev): Remove
76 redundant checks.
77
3648398c 782010-08-12 Sebastian Pop <sebastian.pop@amd.com>
79
80 * graphite-clast-to-gimple.c (precision_for_value): Adjust
81 computation of precision by 1.
82
63b03ccf 832010-08-12 Riyadh Baghdadi <baghdadi.mr@gmail.com>
84
85 * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
86 (openscop_read_polyhedron_matrix): New.
87 * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
88 (openscop_read_N_int): Same.
89 * graphite-poly.c (openscop_read_N_int): New.
90 (openscop_read_one_int): New.
91 (openscop_read_N_string): New.
92 (openscop_read_one_string): New.
93 (openscop_read_powerset_matrix): New.
94 (graphite_read_transforms): Remove.
95 (graphite_read_scatt): New.
96 (graphite_read_scop_file): New.
97 (apply_poly_transforms): Updated to call graphite_read_scop_file.
98
f2459691 992010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
100
101 * graphite-poly.c: Change include order.
102
f366948c 1032010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
104
105 * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
106 (cloog_matrix_nrows): New.
107
086610eb 1082010-08-11 Riyadh Baghdadi <baghdadi.mr@gmail.com>
109
110 * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
111 from matrix lines.
112 * graphite-poly.c (openscop_print_scattering_function_1): Same.
113 (print_scattering_function_1): Same.
114 (openscop_print_pbb_domain): Same.
115 (openscop_print_scop_context): Same.
116 (print_scop_context): Same.
117
c8f5df71 1182010-08-11 Riyadh Baghdadi <baghdadi.mr@gmail.com>
119
120 * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
121 (openscop_print_pdr_polyhedron): Print pph.
122
650f2420 1232010-07-29 Sebastian Pop <sebastian.pop@amd.com>
124
125 * gcc.dg/graphite/graphite.exp: Add compile rules for vect-* files.
126 * gfortran.dg/graphite/graphite.exp: Same.
127 * gcc.dg/graphite/vect-pr43423.c: New.
128
be90fd3f 1292010-07-29 Sebastian Pop <sebastian.pop@amd.com>
130
131 * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
132 priority signed types.
133
e84af3c1 1342010-07-29 Sebastian Pop <sebastian.pop@amd.com>
135
136 * graphite-clast-to-gimple.c (max_signed_precision_type): Remove the call
137 to lang_hooks.types.type_for_size. Call build_nonstandard_integer_type.
138
8c4b14b0 1392010-07-29 Riyadh Baghdadi <baghdadi.mr@gmail.com>
140
141 * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
142 (openscop_print_polyhedron_matrix): New.
143 * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
144 * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
145 (openscop_print_pdr_powerset): New.
146 (openscop_print_powerset_matrix): New.
147 (openscop_print_scattering_function_1): New.
148 (print_scattering_function): Add support for scattering names and
149 OpenScop format.
150 (graphite_write_transforms): Remove.
151 (apply_poly_transforms): Updated to call print_scop.
152 (print_pdr_access_layout): Updated to support OpenScop format.
153 (print_pdr): Same.
154 (openscop_print_pbb_domain): New.
155 (print_pbb_body): Added a parameter to allow indicating that pbb_body is
156 not provided.
157 (print_pbb): Updated to call the new print_pbb_body.
158 (openscop_print_scop_context): New.
159 (print_scop_header): New.
160 (print_scop): Updated to call print_scop_header.
161 * graphite-poly.h: Document OpenScop format.
162
68a6a8ba 1632010-07-29 Sebastian Pop <sebastian.pop@amd.com>
164
165 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
166 the case removed in the previous patch, when the only phi argument
167 is defined in the same loop as the phi node itself. Handle it
168 separately from the invariant case by both propagating it outside
169 the region and replacing the phi node with an assign.
170
51ec8951 1712010-07-28 Sebastian Pop <sebastian.pop@amd.com>
172
173 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
174 constant phi nodes with one argument are is_gimple_min_invariant
175 and SSA_NAME_IS_DEFAULT_DEF.
176
177 * gfortran.dg/graphite/id-22.f: New.
178
04b8cadb 1792010-07-27 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
180
f0fc00f2 181 * graphite.c (graphite_initialize): Do not initialize
182 CLooG and initialize the Parma Polyhedra Library
183 manually when using CLOOG_ORG.
184 (graphite_finalize): Do not finalize CLooG and finalize
185 the Parma Polyhedra Library manually when using CLOOG_ORG.
186 * graphite-cloog-compat.h (cloog_initialize): Hide function
187 when using CLOOG_ORG.
188 (cloog_finalize): Same.
189
a2c572ef 1902010-07-27 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
f0fc00f2 191
04b8cadb 192 * graphite-clast-to-gimple.c (free_scattering): Change
193 CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
194 (CLOOG_ORG).
195 (build_cloog_prog): Same.
196 * graphite-cloog-compat.h (cloog_domain): Removed.
197 (cloog_scattering): New.
198 (cloog_set_domain): Removed.
199 (cloog_set_scattering): New.
200 (cloog_next_domain): Removed.
201 (cloog_next_scattering): New.
202 (cloog_set_next_domain): Removed.
203 (cloog_set_next_scattering): New.
204 (CloogScatteringList): New.
205 (CloogScattering): New.
206 (cloog_scattering_free): New.
207 (new_Cloog_Scattering_from_ppl_Polyhedron): New.
208 * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
209 New.
210
08a88144 2112010-07-27 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
212
213 * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
214 CloogState.
215 (set_cloog_options): Same.
216 (print_clast_stmt): Same.
217 (scop_to_clast): Same.
218 (print_generated_program): Same.
219 (gloog): Same.
220 * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
221 (scop_to_clast): Extend with CloogState.
222 * graphite-cloog-util.c: Include graphite-cloog-compat.h
223 (new_Cloog_Domain_from_ppl_Polyhedron):
224 Extend with CloogState. Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
225 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
226 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
227 * graphite-cloog-util.h (build_cloog_prog): Same.
228 * graphite-cloog-copat.h (build_cloog_prog): New.
229 (CloogState): New.
230 (cloog_state_malloc): New.
231 (cloog_state_free): New.
232 (cloog_loop_malloc): New.
233 (cloog_options_malloc): New.
234 (cloog_statement_alloc): New.
235 (cloog_domain_from_cloog_matrix): New.
236 (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
237 (new_Cloog_Domain_from_ppl_Polyhedron): New.
238
2e6bc1c7 2392010-07-27 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
240
241 * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
242 type of NAME now depends on used CLooG version.
243 (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
244 (gcc_type_for_clast_expr): Same.
245 (print_clast_stmt): Replace pprint with clast_pprint.
246 * graphite-cloog-compat.h: Provide compatibility macros for
247 CLooG Legacy.
248 (clast_name_p): New.
249 (clast_expr_term): New.
250 (clast_expr_red): New.
251 (clast_expr_bin): New.
252 (clast_pprint): New.
253
ebd32a89 2542010-07-27 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
255
256 * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
257 compatible to newer CLooG releases (CLOOG_ORG).
258 (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
259 (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
260 * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
261 (build_cloog_prog) : New.
262 (cloog_program_extract_scalars): New.
263 (cloog_program_scatter): New.
264
1b2c23d4 2652010-07-27 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
266
267 * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
268 conditionally (CLOOG_ORG).
269 * graphite-cloog-compat.h: New. Include graphite-cloog-compat.h.
270 (cloog_statement_usr): New.
271 (cloog_domain): Same.
272 (cloog_set_domain): Same.
273 (cloog_next_domain): Same.
274 (cloog_set_next_domain): Same.
275 (cloog_program_nb_scattdims): Same.
276 (cloog_program_set_nb_scattdims): Same.
277 (cloog_program_names): Same.
278 (cloog_program_set_names): Same.
279 (cloog_program_set_context): Same.
280 (cloog_program_set_loop): Same.
281 (cloog_program_blocklist): Same.
282 (cloog_program_set_blocklist): Same.
283 (cloog_program_scaldims): Same.
284 (cloog_program_set_scaldims): Same.
285 (cloog_names_nb_parameters): Same.
286 (cloog_names_set_nb_parameters): Same.
287 (cloog_names_parameters): Same.
288 (cloog_names_set_parameters): Same.
289 (cloog_names_set_nb_iterators): Same.
290 (cloog_names_set_iterators): Same.
291 (cloog_names_set_nb_scattering): Same.
292 (cloog_names_set_scattering): Same.
293 (cloog_statement_set_usr): Same.
294 (cloog_loop_set_next): Same.
295 (cloog_loop_set_domain): Same.
296 (cloog_loop_set_block): Same.
297 (cloog_block_list_next): Same.
298 (cloog_block_list_set_next):
299 (cloog_block_list_set_block): Same.
300
c9a67530 3012010-07-27 Sebastian Pop <sebastian.pop@amd.com>
302
303 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
304 a bool.
305 (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
306 (rewrite_commutative_reductions_out_of_ssa_loop): Same.
307 (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
308 when something has been changed.
309 (rewrite_commutative_reductions_out_of_ssa): Same.
310
311 * gcc.dg/graphite/id-26.c: New.
312
ed455480 3132010-07-26 Sebastian Pop <sebastian.pop@amd.com>
314
315 * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
316 handle the case when def is in the sese region.
317 (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
318 for invariant expressions.
319 (rewrite_cross_bb_phi_deps): Removed.
320 (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
321 (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
322 rewrite_cross_bb_phi_deps.
323
72085fb7 3242010-07-26 Sebastian Pop <sebastian.pop@amd.com>
325
326 * graphite-sese-to-poly.c
327 (rewrite_commutative_reductions_out_of_ssa_loop): Call
328 scev_analyzable_p only on is_gimple_reg
329
330 * gcc.dg/graphite/id-25.c: New.
331
5d21c24a 3322010-07-22 Sebastian Pop <sebastian.pop@amd.com>
333
334 * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
335 (rewrite_close_phi_out_of_ssa): Propagate constant values or
336 parametric expressions outside the scop region.
337 (rewrite_cross_bb_scalar_deps): Same.
338 * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
339
340 * gcc.dg/graphite/run-id-5.c: New.
341 * gcc.dg/graphite/run-id-6.c: New.
342 * gfortran.dg/graphite/id-21.f: New.
343
a865acd7 3442010-07-22 Sebastian Pop <sebastian.pop@amd.com>
345
346 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
347 SSA_NAME_DEF_STMT only on SSA_NAMEs.
348
349 * gcc.dg/graphite/id-24.c: New.
350
52f57b4e 3512010-07-22 Sebastian Pop <sebastian.pop@amd.com>
352
353 * tree-scalar-evolution.c (instantiate_scev_name): Do not
354 instantiate default definitions.
355
c07c57fb 3562010-07-20 Vladimir Kargov <kargov@gmail.com>
357
358 * graphite-scop-detection.c (is_valid_stmt_p): New.
359 (is_valid_bb_p): New.
360
259c0e44 3612010-07-20 Vladimir Kargov <kargov@gmail.com>
362 Sebastian Pop <sebastian.pop@amd.com>
363
364 * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
365 (loop_exits_from_bb_p): New.
366 * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
367 (loop_exits_from_bb_p): Declared.
368 * graphite-scop-detection.c (scopdet_basic_block_info): Call
369 loop_exits_to_bb_p.
370
000edd14 3712010-07-20 Vladimir Kargov <kargov@gmail.com>
372
373 * refined-regions.c: Include tree-pass.h, cfgloop.h, gimple.h, and
374 tree-data-ref.h.
375 (dot_regions_1): New.
376 (dot_regions): New.
377 * refined-regions.h (dot_regions): Declared.
378 * Makefile.in (refined-regions.o): Update dependences.
379
38f26d41 3802010-07-20 Sebastian Pop <sebastian.pop@amd.com>
381
382 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
383 extra parameter for the region. Call scev_analyzable_p.
384 (rewrite_reductions_out_of_ssa): Update call to
385 rewrite_close_phi_out_of_ssa.
386 (rewrite_cross_bb_phi_deps): Same.
387 (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
388 parameter for the region. Call scev_analyzable_p.
389 (rewrite_commutative_reductions_out_of_ssa): Update call to
390 rewrite_commutative_reductions_out_of_ssa_loop.
391
e075a7a2 3922010-07-20 Sebastian Pop <sebastian.pop@amd.com>
393
394 * gcc.dg/tree-ssa/pr20742.c: New.
395
39888e8f 3962010-07-15 Sebastian Pop <sebastian.pop@amd.com>
397
398 * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
399
400 * gcc.dg/graphite/id-23.c: New.
401
15822b8e 4022010-07-15 Sebastian Pop <sebastian.pop@amd.com>
403
404 * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
405 SSA scalar phi nodes that can be scev_analyzable_p.
406
407 * gfortran.dg/graphite/id-20.f: Adjust testcase.
408
49253930 4092010-07-15 Sebastian Pop <sebastian.pop@amd.com>
410
411 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
412 handle SSA_NAME_IS_DEFAULT_DEF.
413
bac2de0b 4142010-07-15 Sebastian Pop <sebastian.pop@amd.com>
415
416 * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
417
418 * gcc.dg/graphite/pr42729.c: New.
419
55c89f69 4202010-07-15 Sebastian Pop <sebastian.pop@amd.com>
421
422 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
423 case non close-phi nodes with one argument.
424
32a6e336 4252010-07-15 Sebastian Pop <sebastian.pop@amd.com>
426
427 * sese.h (scev_analyzable_p): Scevs could be expressions without
428 chrecs and still be scev_analyzable_p.
429
a73166c0 4302010-07-15 Sebastian Pop <sebastian.pop@amd.com>
431
432 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
433
18046220 4342010-07-15 Sebastian Pop <sebastian.pop@amd.com>
435
436 * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
437 * cfgloop.h (struct loop): Remove single_iv field.
438 * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
439 (scop_canonicalize_loops): Removed.
440 (scop_ivs_can_be_represented): Do not use loop->single_iv. Iterate
441 over all the loop phi nodes in loop->header.
442 (build_poly_scop): Remove use of scop_canonicalize_loops.
443
b19b9f62 4442010-07-15 Sebastian Pop <sebastian.pop@amd.com>
445
446 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
447 handle GIMPLE_CALL.
448
9e4cd968 4492010-07-15 Sebastian Pop <sebastian.pop@amd.com>
450
451 * tree-chrec.c (chrec_apply): Should only apply to the specified
452 variable. Also handle multivariate chains of recurrences that
453 satisfy evolution_function_is_affine_p. Also handle CASE_CONVERT.
454
4ed27c8e 4552010-07-15 Sebastian Pop <sebastian.pop@amd.com>
456
457 * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
458 (debug_clast_name_indexes_1): Removed.
459 (debug_clast_name_indexes): Removed.
460 (pbb_to_depth_to_oldiv): Removed.
461 (build_iv_mapping): Replace the use of rename_map with iv_map.
462 (translate_clast_user): Remove uses of rename_map. Allocate and
463 free iv_map.
464 (translate_clast_for_loop): Remove uses of rename_map.
465 (translate_clast_for): Same.
466 (translate_clast_guard): Same.
467 (translate_clast): Same.
468 (gloog): Same.
469 * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
470 * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
471 * sese.c (set_rename): Now static.
472 (rename_variables_in_stmt): Removed.
473 (rename_uses): New.
474 (is_parameter): Removed.
475 (is_iv): Removed.
476 (expand_scalar_variables_call): Removed.
477 (expand_scalar_variables_ssa_name): Removed.
478 (expand_scalar_variables_expr): Removed.
479 (expand_scalar_variables_stmt): Removed.
480 (expand_scalar_variables): Removed.
481 (rename_variables): Removed.
482 (remove_condition): Removed.
483 (get_true_edge_from_guard_bb): Removed.
484 (get_false_edge_from_guard_bb): Removed.
485 (struct igp): Removed.
486 (default_before_guard): Removed.
487 (convert_for_phi_arg): Removed.
488 (add_guard_exit_phis): Removed.
489 (insert_guard_phis): Removed.
490 (graphite_copy_stmts_from_block): Now also uses iv_map and a
491 region. Do not copy conditions. Do not copy induction variables.
492 Call rename_uses.
493 (copy_bb_and_scalar_dependences): Allocate a local rename_map for
494 the translated statement. Use the iv_map for the induction
495 variable renaming.
496 * sese.h (copy_bb_and_scalar_dependences): Update declaration.
497 (set_rename): Removed declaration.
498 (scev_analyzable_p): ...here.
499 * tree-chrec.c (chrec_apply_map): New.
500 * tree-chrec.h (chrec_apply_map): Declared.
501
5b87c555 5022010-07-15 Sebastian Pop <sebastian.pop@amd.com>
503
504 * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
505 insert_loop_close_phis.
506 * sese.c (name_defined_in_loop_p): Removed.
507 (expr_defined_in_loop_p): Removed.
508 (alive_after_loop): Removed.
509 (close_phi_not_yet_inserted_p): Removed.
510 (struct alep): Removed.
511 (add_loop_exit_phis): Removed.
512 (insert_loop_close_phis): Removed.
513
2c4340a8 5142010-07-15 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
515
5b87c555 516 * graphite-cloog-util.c (cloog_matrix_to_ppl_constraint): Fix flipped
517 condition.
518 * graphite-poly.c (psct_scattering_dim_for_loop_depth): Same.
2c4340a8 519
38df5b0a 5202010-07-07 Sebastian Pop <sebastian.pop@amd.com>
521
522 * gfortran.dg/graphite/id-20.f: New.
523
e0e27d35 5242010-07-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
525
526 * graphite-cloog-util.h: Added cloog.h.
527 * graphite-blocking.c: Removed cloog.h.
528 * graphite-dependences.c: Same.
529 * graphite-interchange.c: Same.
530 * graphite-poly.c: Same.
531 * graphite-ppl.c: Same.
532 * graphite-scop-detection.c: Same.
533 * graphite-sese-to-poly.c:
534 Removed cloog.h.
535 Removed graphite-clast-to-gimple.h.
536 (check_poly_representation): Removed (unused).
537 * graphite-sese-to-poly.h
538 (check_poly_representation): Removed (unused).
539
30185452 5402010-07-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
541
542 * Makefile.in
543 (OBJS-common): Added graphite-cloog-util.o.
544 (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
545 (graphite-cloog-util.o): New.
546 (graphite-ppl.o): Added graphite-cloog-util.h.
547 * graphite-clast-to-gimple.c:
548 Added graphite-cloog-util.h to include statements.
549 * graphite-cloog-util.c: New.
550 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
551 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
552 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
553 (new_C_Polyhedron_from_Cloog_Matrix): Same.
554 (ppl_Constrain_System_number_of_constraints): Same.
555 (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
556 (oppose_constraint): Same.
557 (cloog_matrix_to_ppl_constraint): Same.
558 (new_Constraint_System_from_Cloog_Matrix): Same.
559 (insert_constraint_into_matrix): Same. Declared static.
560 * graphite-cloog-util.h: New.
561 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
562 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
563 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
564 (new_C_Polyhedron_from_Cloog_Matrix): Same.
565 (insert_constraint_into_matrix): Same.
566 * graphite-ppl.c:
567 Added graphite-cloog-util.h to include statements.
568 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
569 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
570 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
571 (new_C_Polyhedron_from_Cloog_Matrix): Same.
572 (insert_constraint_into_matrix): Same.
573 (ppl_Constrain_System_number_of_constraints): Same.
574 (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
575 (oppose_constraint): Same.
576 (cloog_matrix_to_ppl_constraint): Same.
577 (new_Constraint_System_from_Cloog_Matrix): Same.
578 * graphite-ppl.h:
579 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
580 graphite-cloog-util.h.
581 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
582 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
583 (new_C_Polyhedron_from_Cloog_Matrix): Same.
584 (insert_constraint_into_matrix): Removed.
585
6955599b 5862010-07-04 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
587
588 * graphite-clast-to-gimple.c
589 (precision_for_value): Resolve value_* calls to matching mpz_* calls.
590 (precision_for_interval): Same.
591 (gcc_type_for_interval): Same.
592 (compute_type_for_level): Same.
593 * graphite-interchange.c
594 (lst_interchange_profitable_p): Same.
595 * graphite-poly.c
596 (psct_scattering_dim_for_loop_depth): Same.
597 * graphite-ppl.c
598 (ppl_max_for_le_pointset): Same.
599 (ppl_min_for_le_pointset): Same.
600
6fba926c 6012010-06-25 Vladimir Kargov <kargov@gmail.com>
602
603 * refined-regions.c (bb_index_compare): New.
604 (get_bbs_in_region): New.
605 (print_bbs_in_region): New.
606 (print_refined_region): Add an argument that allows to print
607 all basic blocks contained in regions.
608 (debug_refined_region): Update call to print_refined_region.
609 * refined-regions.h (print_refined_region): Update declaration.
610 (get_bbs_in_region): Declared.
611 * graphite-scop-detection.c (build_scops_new): Print the refined
612 region tree into the Grahite dump file.
613
b8046a12 6142010-06-24 Sebastian Pop <sebastian.pop@amd.com>
615
616 * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
617 (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
618
dd966e1f 6192010-06-24 Sebastian Pop <sebastian.pop@amd.com>
620
621 * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
622 rewrite_close_phi_out_of_ssa.
623
624 * gcc.dg/graphite/id-22.c: New.
625
0569d480 6262010-06-24 Sebastian Pop <sebastian.pop@amd.com>
627
628 * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
629
97142493 6302010-06-24 Sebastian Pop <sebastian.pop@amd.com>
631
632 * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
633 rename_map.
634 * sese.c (debug_rename_map): Same.
635 (get_rename): Same.
636 (set_rename): Same.
637 (rename_variables_in_stmt): Same.
638 (expand_scalar_variables_call): Same.
639 (expand_scalar_variables_ssa_name): Same.
640 (expand_scalar_variables_expr): Same.
641 (expand_scalar_variables_stmt): Same.
642 (expand_scalar_variables): Same.
643 (rename_variables): Same.
644 (graphite_copy_stmts_from_block): Same.
645 (copy_bb_and_scalar_dependences): Same.
646
0c663bd0 6472010-06-24 Sebastian Pop <sebastian.pop@amd.com>
648
649 * graphite-clast-to-gimple.c (copy_renames): Removed.
650 (translate_clast_for): Do not call copy_renames.
651 (translate_clast_guard): Same.
652
42ad5d61 6532010-06-23 Sebastian Pop <sebastian.pop@amd.com>
654
655 * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
656 (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
657 (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
658 before rewrite_cross_bb_scalar_deps.
659
8643dd0a 6602010-06-23 Sebastian Pop <sebastian.pop@amd.com>
661
662 * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
663 Early return in when flag_associative_math is not set.
664
9a34ebd6 6652010-06-23 Sebastian Pop <sebastian.pop@amd.com>
666
667 * gcc.dg/graphite/run-id-2.c: Call abort.
668
097e870c 6692010-06-23 Sebastian Pop <sebastian.pop@amd.com>
670
671 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
672 of SSA copies on edges except for loop->latch.
673
bf8b5699 6742010-06-23 Sebastian Pop <sebastian.pop@amd.com>
675
676 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
677 Split out of rewrite_reductions_out_of_ssa.
678 * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
679 Declared.
680 * graphite.c (graphite_transform_loops): Call it.
681
e819c864 6822010-06-23 Sebastian Pop <sebastian.pop@amd.com>
683
684 * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
685
b90bb125 6862010-06-15 Sebastian Pop <sebastian.pop@amd.com>
687
688 * passes.c (init_optimization_passes): Add pass_graphite.
689 Schedule a pass_copy_prop before pass_graphite_transforms.
690 * timevar.def (TV_GRAPHITE): Declared.
691 * tree-pass.h (pass_graphite): Declared.
692 * tree-ssa-loop.c (pass_graphite): New.
693
694 * gcc.dg/graphite/id-20.c: New.
695
93206bb0 6962010-06-12 Sebastian Pop <sebastian.pop@amd.com>
697
698 * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
699 Remove calls to rename_nb_iterations and rename_sese_parameters.
700 * graphite-clast-to-gimple.h (gloog): Update declaration.
701 * graphite.c (graphite_transform_loops): Update call to gloog.
702 * sese.c (rename_variables_in_expr): Removed.
703 (rename_nb_iterations): Removed.
704 (rename_sese_parameters): Removed.
705 * sese.h (rename_nb_iterations): Removed.
706 (rename_sese_parameters): Removed.
707
88a551f1 7082010-06-12 Sebastian Pop <sebastian.pop@amd.com>
709
710 * graphite-clast-to-gimple.c (gloog): Remove call to
711 sese_adjust_liveout_phis.
712 * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
713 SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
714 (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
715 rewrite_phi_out_of_ssa.
716 * sese.c (get_vdef_before_sese): Removed.
717 (sese_adjust_vphi): Removed.
718 (sese_adjust_liveout_phis): Removed.
719 * sese.h (sese_adjust_liveout_phis): Removed.
720
39a34dd8 7212010-06-12 Sebastian Pop <sebastian.pop@amd.com>
722
723 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
724 argument for the place after which to insert the out of SSA copy.
725 (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
726 (rewrite_phi_out_of_ssa): Same.
727 (rewrite_cross_bb_scalar_deps): Same.
728 (insert_copyout): Removed.
729 (insert_copyin): Removed.
730 (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
731 insert_out_of_ssa_copy_on_edge instead of insert_copyout and
732 insert_copyin.
733
5d2603f9 7342010-06-12 Sebastian Pop <sebastian.pop@amd.com>
735
736 * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
737 (rewrite_reductions_out_of_ssa): Same.
738 (rewrite_commutative_reductions_out_of_ssa): Same.
739 (build_poly_scop): Do not call these functions.
740 * graphite-sese-to-poly.h (build_poly_scop): Declared.
741 (rewrite_reductions_out_of_ssa): Declared.
742 (rewrite_commutative_reductions_out_of_ssa): Declared.
743 * graphite.c (graphite_transform_loops): Call on every scop
744 rewrite_commutative_reductions_out_of_ssa before calling
745 rewrite_reductions_out_of_ssa and build_scop_bbs.
746
189cea68 7472010-06-12 Sebastian Pop <sebastian.pop@amd.com>
748
749 * graphite-dependences.c (dot_deps): Make system call to dotty run
750 in background.
751 (dot_deps_stmt): Same.
752 * graphite-poly.c (dot_lst): Same.
753
1861e127 7542010-06-11 Sebastian Pop <sebastian.pop@amd.com>
755
756 * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
757 old_type in parameter.
758 (gcc_type_for_value): Update call to gcc_type_for_interval.
759 (compute_type_for_level_1): Renamed compute_type_for_level.
760 Update call to gcc_type_for_interval.
761
f6a2a688 7622010-06-09 Sebastian Pop <sebastian.pop@amd.com>
763
764 * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
765 the scev analysis when the variable is not used outside the loop
766 in a close phi node: call compute_overall_effect_of_inner_loop.
767
3662a419 7682010-06-09 Sebastian Pop <sebastian.pop@amd.com>
769
770 * graphite-sese-to-poly.c (single_pred_cond): Renamed
771 single_pred_cond_non_loop_exit. Return NULL for loop exit edges.
772 (build_sese_conditions_before): Renamed call to single_pred_cond.
773 (build_sese_conditions_after): Same.
774
a344bb22 7752010-06-09 Sebastian Pop <sebastian.pop@amd.com>
776
777 * graphite-poly.h: Fix comments and indentation.
778 * graphite-sese-to-poly.c: Same.
779 (build_sese_conditions_before): Compute stmt and gbb only when needed.
780 * tree-chrec.c: Fix comments and indentation.
781 (tree-ssa-loop-niter.c): Same.
782
9ac63ea9 7832010-06-08 Tobias Grosser <grosser@fim.uni-passau.de>
784
785 * refined-regions.c (create_region): Only initialize the region.
786 (find_regions_with_entry): Initialize parent relation and bbmap
787 correctly.
788 (build_regions_tree): Set outermost_region to region instead of
789 topmost_region.
790 (calculate_region_tree): Remove unneeded parameters.
791
441c9c1d 7922010-06-02 Tobias Grosser <grosser@fim.uni-passau.de>
793
794 * graphite-scop-detection.c (is_scop_p): New.
795 (build_scops_new): New. A skeleton for the new scop detection.
796 (build_scops_old): Renamed from build_scops.
797 (build_scops): New version. Call the new and the old scop
798 detection.
799
93bdb320 8002010-05-27 Tobias Grosser <grosser@fim.uni-passau.de>
801 Antoniu Pop <antoniu.pop@gmail.com>
802
803 * Makefile.in (OBJS-common): Add refined-regions.o.
804 (refined-regions.o): New.
805 (graphite-scop-detection.o): Use refined-regions.h.
806 * graphite-scop-detection.c: Include refined-regions.h
807 (build_scops): Also build the refined region tree.
808 * refined-regions.c: New. Adds an algorithm to detect refined
809 regions.
810 (print_refined_region): New.
811 (debug_refined_region): New.
812 (refined_region_contains_bb_p): New.
813 (refined_region_contains_region_p): New.
814 (is_common_df): New.
815 (struct find_regions_global_data): New.
816 (is_region): New.
817 (typedef struct bb_bb_def): New.
818 (new_bb_bb_def): New.
819 (bb_bb_map_hash): New.
820 (eq_bb_bb_map): New.
821 (find_new_bb): New.
822 (bb_reg_def): New.
823 (new_bb_reg_def): New.
824 (bb_reg_map_hash): New.
825 (eq_bb_reg_map): New.
826 (find_new_region): New.
827 (insert_new_reg): New.
828 (insert_new_bb): New.
829 (insert_shortcut): New.
830 (get_next_postdom): New.
831 (create_region): New.
832 (find_regions_with_entry): New.
833 (find_regions_adc): New.
834 (find_regions): New.
835 (get_topmost_parent): New.
836 (build_regions_tree): New.
837 (calculate_region_tree): New.
838 (free_region_tree): New.
839 * refined-regions.h: New.
840 (struct refined_region): New.
841 (calculate_region_tree): New.
842 (free_region_tree): New.
843 (refined_region_contains_bb_p): New.
844 (refined_region_contains_region_p): New.
845 (print_refined_region): New.
846 (debug_refined_region): New.
847
78b58940 8482010-05-26 Sebastian Pop <sebastian.pop@amd.com>
849
850 * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
851 size_one_node.
852
9acb79e3 8532010-05-07 Sebastian Pop <sebastian.pop@amd.com>
854
855 * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Fix
856 type of integer_one_node for fold_build of POINTER_PLUS_EXPR.
857
9d828157 8582010-05-07 Sebastian Pop <sebastian.pop@amd.com>
859
860 * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
861 phi_arg_in_outermost_loop.
862 (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
863 (remove_invariant_phi): Same.
864
0ef84e3b 8652010-04-12 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
866
867 * graphite-blocking.c
868 (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
869 * graphite-clast-to-gimple.c
870 (clast_to_gcc_expression): Same.
871 (precision_for_value): Same.
872 (precision_for_interval): Same.
873 (gcc_type_for_interval): Same.
874 (graphite_create_new_guard): Same.
875 (compute_bounds_for_level): Same.
876 (graphite_create_new_loop_guard): Same.
877 * graphite-interchange.c
878 (build_linearized_memory_access): Same.
879 (pdr_stride_in_loop): Same.
880 (memory_strides_in_loop_1): Same.
881 (memory_strides_in_loop): Same.
882 (extend_scattering): Same.
883 (psct_scattering_dim_for_loop_depth): Same.
884 (pbb_number_of_iterations): Same.
885 * graphite-poly.h
886 (debug_iteration_domains): Same.
887 * graphite-ppl.c
888 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
889 (ppl_set_inhomogeneous_gmp): Same.
890 (ppl_strip_loop): Same.
891 (ppl_lexico_compare_linear_expressions): Same.
892 (ppl_read_polyhedron_matrix): Same.
893 (ppl_max_for_le_pointset): Same.
894 * graphite-ppl.h
895 (ppl_read_polyhedron_matrix): Same.
896 (tree_int_to_gmp): Same.
897 (gmp_cst_to_tree): Same.
898 (ppl_set_inhomogeneous): Same.
899 (ppl_set_inhomogeneous_tree): Same.
900 (ppl_set_coef): Same.
901 (ppl_set_coef_tree): Same.
902 * graphite-sese-to-poly.c
903 (build_pbb_scattering_polyhedrons): Same.
904 (build_scop_scattering): Same.
905 (scan_tree_for_params_right_scev): Same.
906 (scan_tree_for_params): Same.
907 (find_params_in_bb): Same.
908 (find_scop_parameters): Same.
909 (add_upper_bounds_from_estimated_nit): Same.
910 (build_loop_iteration_domains): Same.
911 (add_condition_to_domain): Same.
912 (pdr_add_memory_accesses): Same.
913
2d6fe479 9142010-04-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
915
a2c572ef 916 * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
2d6fe479 917 CLooG's value_* macros to their respective mpz_* counterparts.
918 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
919 (graphite_create_new_loop_guard): Same.
920 * graphite-interchange.c (build_linearized_memory_access): Same.
921 (pdr_stride_in_loop): Same.
922 (memory_strides_in_loop_1): Same.
923 (1st_interchange_profitable_p): Same.
924 * graphite-poly.c (extend_scattering): Same.
925 (psct_scattering_dim_for_loop_depth): Same.
926 (pbb_number_of_iterations): Same.
927 (pbb_number_of_iterations_at_time): Same.
928 * graphite-poly.h (new_1st_loop): Same.
929 * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
930 (oppose_constraint): Same.
931 (insert_constraint_into_matrix): Same.
932 (ppl_set_inhomogeneous_gmp): Same.
933 (ppl_set_coef_gmp): Same.
934 (ppl_strip_loop): Same.
935 (ppl_lexico_compare_linear_expressions): Same.
936 (ppl_max_for_le_pointset): Same.
937 (ppl_min_for_le_pointset): Same.
938 (ppl_build_realtion): Same.
939 * graphite-ppl.h (gmp_cst_to_tree): Same.
940 (ppl_set_inhomogeneous): Same.
941 (ppl_set_inhomogeneous_tree): Same.
942 (ppl_set_coef): Same.
943 (ppl_set_coef_tree): Same.
944 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
945 (build_scop_scattering): Same.
946 (add_value_to_dim): Same.
947 (scan_tree_for_params_right_scev): Same.
948 (scan_tree_for_params_int): Same.
949 (scan_tree_for_params): Same.
950 (find_params_in_bb): Same.
951 (find_scop_parameters): Same.
952 (add_upper_bounds_from_estimated_nit): Same.
953 (build_loop_iteration_domains): Same.
954 (create_linear_expr_from_tree): Same.
955 (add_condition_to_domain): Same.
956 (pdr_add_memory_accesses): Same.
957
7c0d15dc 9582010-04-05 Sebastian Pop <sebastian.pop@amd.com>
959
960 PR middle-end/43519
961 * graphite-clast-to-gimple.c (max_signed_precision_type): Use
962 lang_hooks.types.type_for_size instead of build_nonstandard_integer_type.
963 When converting an unsigned type to signed, double its precision.
964 (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
965 (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
966 (graphite_create_new_loop_guard): When ub + 1 wraps around, use lb <= ub.
967
9682010-04-05 Sebastian Pop <sebastian.pop@amd.com>
969
970 PR middle-end/43519
971 * graphite-clast-to-gimple.c (max_signed_precision_type): Use
972 build_nonstandard_integer_type.
973 (gcc_type_for_interval): Same.
974
9752010-04-05 Sebastian Pop <sebastian.pop@amd.com>
7778680e 976
977 PR middle-end/43519
978 * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
979 POINTER_PLUS_EXPR for pointer types.
980
981 * gcc.dg/graphite/id-19.c: New.
982
f20b6ea9 9832010-04-04 Sebastian Pop <sebastian.pop@amd.com>
984
985 PR middle-end/43519
986 * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
987 * graphite-clast-to-gimple.c: Include langhooks.h.
988 (max_signed_precision_type): New.
989 (max_precision_type): Takes two types as arguments.
990 (precision_for_value): New.
991 (precision_for_interval): New.
992 (gcc_type_for_interval): New.
993 (gcc_type_for_value): New.
994 (gcc_type_for_clast_term): New.
995 (gcc_type_for_clast_red): New.
996 (gcc_type_for_clast_bin): New.
997 (gcc_type_for_clast_expr): Split up into several functions.
998 (gcc_type_for_clast_eq): Rewritten.
999 (compute_bounds_for_level): New.
1000 (compute_type_for_level_1): New.
1001 (compute_type_for_level): New.
1002 (gcc_type_for_cloog_iv): Removed.
1003 (gcc_type_for_iv_of_clast_loop): Rewritten.
1004 (graphite_create_new_loop): Compute the lower and upper bound types
1005 with gcc_type_for_clast_expr.
1006 (graphite_create_new_loop_guard): Same.
1007 (find_cloog_iv_in_expr): Removed.
1008 (compute_cloog_iv_types_1): Removed.
1009 (compute_cloog_iv_types): Removed.
1010 (gloog): Do not call compute_cloog_iv_types.
1011 * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
1012 GBB_CLOOG_IV_TYPES.
1013 (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
1014 * sese.h (struct gimple_bb): Removed field cloog_iv_types.
1015 (GBB_CLOOG_IV_TYPES): Removed.
1016
1017 * gcc.dg/graphite/run-id-pr42644.c: Call abort.
1018
03ce78db 10192010-04-02 Sebastian Pop <sebastian.pop@amd.com>
1020
1021 Reverted this commit: as at this point the loop closed SSA form
1022 is under a canonical form respecting the single argument condition.
1023 * graphite-sese-to-poly.c (scalar_close_phi_node_p): Loop
1024 close phi nodes may have more than one argument.
1025
10262010-04-01 Sebastian Pop <sebastian.pop@amd.com>
1027
1028 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
1029 gimple_phi_num_args of the loop close SSA phi node is equal to 1.
1030 (detect_commutative_reduction): Same.
1031
10322010-03-31 Sebastian Pop <sebastian.pop@amd.com>
1033
1034 * graphite-sese-to-poly.c (scalar_close_phi_node_p): Loop
1035 close phi nodes may have more than one argument.
1036
67e28d17 10372010-03-30 Richard Guenther <rguenther@suse.de>
1038 Zdenek Dvorak <ook@ucw.cz>
1039 Sebastian Pop <sebastian.pop@amd.com>
1040
1041 PR middle-end/43464
1042 * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
1043 with multiple arguments.
1044 (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
1045
ff4c7a5a 10462010-03-23 Sebastian Pop <sebastian.pop@amd.com>
1047
1048 * graphite-dependences.c (print_pddr): Call print_pdr with an
1049 extra argument.
1050 * graphite-poly.c (debug_pdr): Add an extra argument for the
1051 verbosity level.
1052 (print_pdr): Same.
1053 (print_pbb_domain): Same.
1054 (print_pbb): Same.
1055 (print_scop_context): Same.
1056 (print_scop): Same.
1057 (print_cloog): Same.
1058 (debug_pbb_domain): Same.
1059 (debug_pbb): Same.
1060 (print_pdrs): Same.
1061 (debug_pdrs): Same.
1062 (debug_scop_context): Same.
1063 (debug_scop): Same.
1064 (debug_cloog): Same.
1065 (print_scop_params): Same.
1066 (debug_scop_params): Same.
1067 (print_iteration_domain): Same.
1068 (print_iteration_domains): Same.
1069 (debug_iteration_domain): Same.
1070 (debug_iteration_domains): Same.
1071 (print_scattering_function): Same.
1072 (print_scattering_functions): Same.
1073 (debug_scattering_function): Same.
1074 (debug_scattering_functions): Same.
1075 * graphite-poly.h (debug_pdr): Update declaration.
1076 (print_pdr): Same.
1077 (print_pbb_domain): Same.
1078 (print_pbb): Same.
1079 (print_scop_context): Same.
1080 (print_scop): Same.
1081 (print_cloog): Same.
1082 (debug_pbb_domain): Same.
1083 (debug_pbb): Same.
1084 (print_pdrs): Same.
1085 (debug_pdrs): Same.
1086 (debug_scop_context): Same.
1087 (debug_scop): Same.
1088 (debug_cloog): Same.
1089 (print_scop_params): Same.
1090 (debug_scop_params): Same.
1091 (print_iteration_domain): Same.
1092 (print_iteration_domains): Same.
1093 (debug_iteration_domain): Same.
1094 (debug_iteration_domains): Same.
1095 (print_scattering_function): Same.
1096 (print_scattering_functions): Same.
1097 (debug_scattering_function): Same.
1098 (debug_scattering_functions): Same.
1099
1f8d6d4d 11002010-03-23 Sebastian Pop <sebastian.pop@amd.com>
1101
1102 * graphite-poly.c (print_scattering_function_1): New.
1103 (print_scattering_function): Call it.
1104 (print_scop_params): Remove spaces at the end of lines.
1105 (print_cloog): New.
1106 (debug_cloog): New.
1107 * graphite-poly.h (print_cloog): Declared.
1108 (debug_cloog): Declared.
1109
4de8824d 11102010-03-23 Sebastian Pop <sebastian.pop@amd.com>
1111
1112 * tree-ssa-copy.c: Revert this previous change:
1113 (init_copy_prop): Loop closed phi nodes cancontain more than one
1114 argument.
1115 (execute_copy_prop): Revert the previous change: do not call
1116 rewrite_into_loop_closed_ssa.
1117
11182010-03-21 Sebastian Pop <sebastian.pop@amd.com>
1119 Richard Guenther <rguenther@suse.de>
1120
1121 PR middle-end/43464
1122 * tree-ssa-copy.c (init_copy_prop): Loop closed phi nodes can
1123 contain more than one argument.
1124 (execute_copy_prop): Revert the previous change: do not call
1125 rewrite_into_loop_closed_ssa.
1126
1127 * gcc.dg/graphite/id-pr43464.c: Remove compile warning.
1128 * gcc.dg/graphite/id-pr43464-1.c: New.
1129
11302010-03-21 Sebastian Pop <sebastian.pop@amd.com>
1131
1132 PR middle-end/43464
1133 * tree-ssa-copy.c (execute_copy_prop): Call rewrite_into_loop_closed_ssa
1134 and verify_loop_closed_ssa when copy prop is executed in the LNO.
1135
1136 * gcc.dg/graphite/id-pr43464.c: New.
1137
0207206d 11382010-03-16 Sebastian Pop <sebastian.pop@amd.com>
1139
1140 * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
1141 in loop->header.
1142 * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
1143 * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
1144 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
1145 to switch between adding the IV bump in loop->latch or in loop->header.
1146
a751953f 11472010-03-16 Sebastian Pop <sebastian.pop@amd.com>
1148
1149 * passes.c (init_optimization_passes): Add pass_copy_prop
1150 after Graphite.
1151
5dc5fe13 11522010-03-16 Sebastian Pop <sebastian.pop@amd.com>
1153
1154 * graphite-poly.c (print_scattering_function): Pretty print following
1155 the scoplib format.
1156 (print_pdr): Same.
1157 (print_pbb_domain): Same.
1158 (dump_gbb_cases): Same.
1159 (dump_gbb_conditions): Same.
1160 (print_pdrs): Same.
1161 (print_pbb): Same.
1162 (print_scop_params): Same.
1163 (print_scop_context): Same.
1164 (print_scop): Same.
1165 (print_pbb_body): New.
1166 (lst_indent_to): New.
1167 (print_lst): Start new lines with a #.
1168 * graphite-poly.h (pbb_bb): New.
1169 (pbb_index): Use pbb_bb.
1170 * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
1171 disjuncts.
1172 * tree-data-ref.c (dump_data_reference): Start new lines with a #.
1173
9251755b 11742010-03-13 Sebastian Pop <sebastian.pop@amd.com>
1175
1176 PR middle-end/43351
1177 * gcc.dg/graphite/id-pr43351.c
1178
5a644317 11792010-03-13 Sebastian Pop <sebastian.pop@amd.com>
1180
1181 PR middle-end/43354
1182 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
1183 call insert_out_of_ssa_copy for default definitions.
1184 * gfortran.dg/graphite/id-pr43354.f: New.
1185
11862010-03-13 Sebastian Pop <sebastian.pop@amd.com>
197de505 1187
1188 PR middle-end/43349
1189 * gfortran.dg/graphite/pr43349.f: New.
1190
119adb56 11912010-03-11 Sebastian Pop <sebastian.pop@amd.com>
1192
1193 * graphite-clast-to-gimple.c (my_long_long): Defined.
1194 (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
1195 * graphite-sese-to-poly.c (my_long_long): Defined.
1196 (scop_ivs_can_be_represented): Use it.
1197
578e3456 11982010-03-10 Sebastian Pop <sebastian.pop@amd.com>
1199
1200 * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
1201 graphite-max-bbs-per-function, and loop-block-tile-size.
1202 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
1203 with "maximum".
1204 (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
1205
5d92ac74 12062010-03-10 Sebastian Pop <sebastian.pop@amd.com>
1207
1208 * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
1209 forward declaration.
1210 * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
1211 (add_upper_bounds_from_estimated_nit): New.
1212 (build_loop_iteration_domains): Use it.
1213
89466e43 12142010-03-09 Sebastian Pop <sebastian.pop@amd.com>
1215
1216 * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
1217
c4ccbe87 12182010-03-09 Sebastian Pop <sebastian.pop@amd.com>
1219
1220 PR middle-end/43306
1221 * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
1222 should be an INTEGER_CST. Also handle CASE_CONVERT.
1223 * gcc.dg/graphite/pr43306.c: New.
1224
94ba21de 12252010-03-09 Sebastian Pop <sebastian.pop@amd.com>
1226
1227 * graphite.c (graphite_initialize): To bound the number of bbs per
1228 function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
1229 * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
1230 * doc/invoke.texi: Document it.
1231
f49215ce 12322010-03-09 Sebastian Pop <sebastian.pop@amd.com>
1233
1234 * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
1235 * graphite-sese-to-poly.h (build_poly_scop): Same.
1236
c2e502a5 12372010-03-09 Sebastian Pop <sebastian.pop@amd.com>
1238
1239 * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
1240 the number of parameters in the scop. Use as an upper bound
1241 PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
1242 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
1243 * doc/invoke.texi: Document it.
1244
8424df5f 12452010-03-05 Sebastian Pop <sebastian.pop@amd.com>
1246
1247 * graphite-sese-to-poly.c (add_param_constraints): Use
1248 lower_bound_in_type and upper_bound_in_type.
1249
d6ad5c2f 12502010-03-05 Sebastian Pop <sebastian.pop@amd.com>
1251
1252 * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
1253 instead of unsigned_type_node.
1254
88a62e9b 12552010-03-05 Sebastian Pop <sebastian.pop@amd.com>
1256 Reza Yazdani <reza.yazdani@amd.com>
1257
1258 PR middle-end/43065
1259 * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
1260 on pointer type parameters.
1261
1262 * gcc.dg/graphite/run-id-4.c: New.
1263
12642010-03-05 Sebastian Pop <sebastian.pop@amd.com>
bc1b5a1d 1265
1266 PR middle-end/43065
1267 * gcc.dg/graphite/run-id-3.c: New.
1268
f6fb4255 12692010-03-05 Tobias Grosser <grosser@fim.uni-passau.de>
1270 Ramakrishna Upadrasta <Ramakrishna.Upadrasta@inria.fr>
1271
1272 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
1273 handle conversions from pointer to integers.
1274 (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
1275 induction variable, to be able to work with code generated by CLooG.
1276 * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
1277 (build_poly_scop): Bail out if we cannot codegen a loop.
1278
2d0a2aaa 12792010-03-04 Tobias Grosser <grosser@fim.uni-passau.de>
1280
1281 * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
1282 code generation with gloog_error.
1283
2996b712 12842010-03-04 Sebastian Pop <sebastian.pop@amd.com>
1285
1286 * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
1287 Call fold_convert on all the returned values.
1288 (expand_scalar_variables_expr): Pass to expand_scalar_variables_ssa_name
1289 the type of the resulting expression.
1290
c817e987 12912010-03-04 Sebastian Pop <sebastian.pop@amd.com>
1292
1293 * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
1294 ppl_min_for_le_pointset. Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
1295 * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
1296
5f2e51eb 12972010-03-04 Sebastian Pop <sebastian.pop@amd.com>
1298
1299 * graphite-dependences.c (map_into_dep_poly): Removed.
1300 (dependence_polyhedron_1): Use combine_context_id_scat.
1301
7453bc3b 13022010-03-04 Sebastian Pop <sebastian.pop@amd.com>
1303
1304 * graphite-poly.h (struct poly_scattering): Add layout documentation.
1305 (struct poly_bb): Same.
1306 (combine_context_id_scat): New.
1307
13dca219 13082010-03-02 Sebastian Pop <sebastian.pop@amd.com>
1309
1310 PR middle-end/42326
1311 * sese.c (name_defined_in_loop_p): Return false for default
1312 definitions.
1313
1314 * gcc.dg/graphite/pr42326.c: New.
1315
fc830e2d 13162010-02-23 Sebastian Pop <sebastian.pop@amd.com>
1317
1318 * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
1319 and clean up the logic.
1320
bde82a01 13212010-02-23 Sebastian Pop <sebastian.pop@amd.com>
1322
1323 * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
1324 early return.
1325
bbf92068 13262010-02-22 Sebastian Pop <sebastian.pop@amd.com>
1327
1328 PR middle-end/43083
1329 * graphite-scop-detection.c (create_single_exit_edge): Move
1330 the call to find_single_exit_edge to....
1331 (create_sese_edges): ...here. Don't handle multiple edges
1332 exiting the function.
1333 (build_graphite_scops): Don't handle multiple edges
1334 exiting the function.
1335
1336 * gcc.dg/graphite/pr43083.c: New.
1337
27f9c4ff 13382010-02-22 Sebastian Pop <sebastian.pop@amd.com>
1339
66bb96d4 1340 PR middle-end/43097
27f9c4ff 1341 * sese.c (get_rename): Assert that old_name is an SSA_NAME.
1342 (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
1343
1344 * gfortran.dg/graphite/pr43097.f: New.
1345
c3eecfcf 13462010-02-22 Sebastian Pop <sebastian.pop@amd.com>
1347 Manuel López-Ibáñez <manu@gcc.gnu.org>
1348
1349 PR middle-end/43140
1350 * g++.dg/graphite/pr41305.C: Add -Wno-conversion-null.
1351
13522010-02-22 Sebastian Pop <sebastian.pop@amd.com>
550c39c3 1353
1354 PR middle-end/43026
1355 * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
1356
1357 * g++.dg/graphite/pr43026.C: New.
1358
3dc0020f 13592010-02-13 Tobias Grosser <grosser@fim.uni-passau.de>
1360
1361 * Merge from mainline (154736:156693).
1362
5b3c8b56 13632010-02-11 Sebastian Pop <sebastian.pop@amd.com>
1364
1365 PR middle-end/43012
1366 * gcc.dg/graphite/pr43012.c: New.
65084500 1367
5b3c8b56 13682010-02-10 Sebastian Pop <sebastian.pop@amd.com>
65084500 1369
5b3c8b56 1370 * graphite.c (graphite_transform_loops): Re-enable dbg_cnt.
65084500 13712010-02-10 Sebastian Pop <sebastian.pop@amd.com>
1372
1373 * g++.dg/graphite/pr42930.C: New.
1374
5dcbb45f 13752010-02-10 Sebastian Pop <sebastian.pop@amd.com>
ce0ae3b6 1376
1377 PR middle-end/42930
1378 * graphite-scop-detection.c (graphite_can_represent_scev): Call
1379 graphite_can_represent_init for MULT_EXPR.
1380
5dcbb45f 13812010-02-10 Sebastian Pop <sebastian.pop@amd.com>
eae8f2a1 1382
1383 PR middle-end/42914
1384 PR middle-end/42530
1385 * graphite-sese-to-poly.c (remove_phi): New.
1386 (translate_scalar_reduction_to_array): Call remove_phi.
1387
1388 * gcc.dg/graphite/pr42530.c: New.
1389 * gcc.dg/graphite/pr42914.c: New.
1390
5dcbb45f 13912010-02-10 Sebastian Pop <sebastian.pop@amd.com>
94bdcd77 1392
1393 PR middle-end/42771
1394 * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
1395 * graphite-clast-to-gimple.h (gloog): Update declaration.
1396 * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
1397 * graphite-poly.h (struct poly_bb): Add missing comments.
1398 (struct scop): Add poly_scop_p field.
1399 (POLY_SCOP_P): New.
1400 * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
1401 * graphite.c (graphite_transform_loops): Build the polyhedral
1402 representation for each scop before code generation.
1403 * sese.c (rename_variables_in_operand): Removed.
1404 (rename_variables_in_expr): Return the renamed expression.
1405 (rename_sese_parameters): New.
1406 * sese.h (rename_sese_parameters): Declared.
1407
1408 * gcc.dg/graphite/pr42771.c: New.
1409
9fe3fe75 14102010-02-07 Sebastian Pop <sebastian.pop@amd.com>
1411
1412 * gcc.dg/graphite/block-0.c: Call abort for runtime test. Always
1413 return 0 from main.
1414 * gcc.dg/graphite/block-1.c: Same.
1415 * gcc.dg/graphite/block-3.c: Same.
1416 * gcc.dg/graphite/block-4.c: Same.
1417 * gcc.dg/graphite/block-5.c: Same.
1418 * gcc.dg/graphite/block-6.c: Same.
1419 * gcc.dg/graphite/block-7.c: Same.
1420 * gcc.dg/graphite/interchange-0.c: Same.
1421 * gcc.dg/graphite/interchange-1.c: Same.
1422 * gcc.dg/graphite/interchange-10.c: Same.
1423 * gcc.dg/graphite/interchange-11.c: Same.
1424 * gcc.dg/graphite/interchange-12.c: Same.
1425 * gcc.dg/graphite/interchange-2.c: Same.
1426 * gcc.dg/graphite/interchange-3.c: Same.
1427 * gcc.dg/graphite/interchange-4.c: Same.
1428 * gcc.dg/graphite/interchange-5.c: Same.
1429 * gcc.dg/graphite/interchange-6.c: Same.
1430 * gcc.dg/graphite/interchange-7.c: Same.
1431 * gcc.dg/graphite/interchange-8.c: Same.
1432 * gcc.dg/graphite/interchange-9.c: Same.
1433 * gcc.dg/graphite/interchange-mvt.c: Same.
1434
422538b1 14352010-02-07 Sebastian Pop <sebastian.pop@amd.com>
1436
1437 * gfortran.dg/graphite/id-19.f: New.
1438 * gfortran.dg/graphite/pr14741.f90: New.
1439 * gfortran.dg/graphite/pr41924.f90: New.
1440 * gfortran.dg/graphite/run-id-2.f90: New.
1441
8fe76250 14422010-02-07 Sebastian Pop <sebastian.pop@amd.com>
1443
1444 PR middle-end/42988
1445 * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
1446 to unknown_dependence.
1447 (graphite_legal_transform_dr): Handle the unknown_dependence.
1448 (graphite_carried_dependence_level_k): Same.
1449
6c9df8cb 14502010-02-07 Sebastian Pop <sebastian.pop@amd.com>
1451
1452 * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
1453
b7ac929d 14542010-02-05 Sebastian Pop <sebastian.pop@amd.com>
1455 Konrad Trifunovic <konrad.trifunovic@inria.fr>
1456
1457 PR middle-end/42637
1458 * graphite-dependences.c (build_lexicographical_constraint): Return
1459 a union of dependence polyhedra.
1460 (dependence_polyhedron_1): Adapt for build_lexicographical_constraint.
1461
6c9df8cb 1462 * gcc.dg/graphite/block-0.c: Enable runtime check. XFAILed.
1463 * gcc.dg/graphite/block-4.c: Same.
1464 * gcc.dg/graphite/block-7.c: Same.
1465 * gcc.dg/graphite/interchange-12.c: Same.
1466 * gcc.dg/graphite/interchange-mvt.c: Same.
1467 * gfortran.dg/graphite/interchange-1.f: XFAILed.
1468 * gfortran.dg/graphite/interchange-3.f90: XFAILed.
1469 * gfortran.dg/graphite/run-id-1.f: New testcase for PR42637.
b7ac929d 1470
015d0b5c 14712010-02-03 Sebastian Pop <sebastian.pop@amd.com>
1472
6c9df8cb 1473 * gcc.dg/graphite/interchange-12.c: Return 0 to avoid
015d0b5c 1474 the execution check to FAIL. This testcase is miscompiled by Graphite
1475 and the check should be re-enabled.
6c9df8cb 1476 * gcc.dg/graphite/interchange-mvt.c: Same.
1477 * gcc.dg/graphite/block-0.c: Same.
1478 * gcc.dg/graphite/block-4.c: Same.
1479 * gcc.dg/graphite/block-7.c: Same.
015d0b5c 1480
a5414f1f 14812010-02-03 Sebastian Pop <sebastian.pop@amd.com>
1482
6c9df8cb 1483 * gcc.dg/graphite/interchange-mvt.c: Un-XFAILed.
1484 * gcc.dg/graphite/scop-0.c: Fix spaces.
1485 * gfortran.dg/graphite/block-1.f90: Rewrite expected output.
1486 * gfortran.dg/graphite/block-2.f: Same.
1487 * gfortran.dg/graphite/block-3.f90: Same.
1488 * gfortran.dg/graphite/block-4.f90: Same.
1489 * gfortran.dg/graphite/interchange-1.f: Un-XFAILed.
1490 * gfortran.dg/graphite/interchange-3.f90: Un-XFAILed.
a5414f1f 1491
a071b80b 14922010-02-03 Sebastian Pop <sebastian.pop@amd.com>
1493
1494 * graphite-dependences.c (new_poly_ddr): Initialize PDDR_KIND and
1495 PDDR_ORIGINAL_SCATTERING_P.
1496 (pddr_is_empty): Rewritten.
1497 (print_dependence_polyhedron_layout): New.
1498 (print_pddr): New.
1499 (debug_pddr): New.
1500 (build_alias_set_powerset): Moved up.
1501 (poly_drs_may_alias_p): Moved up.
1502 (lexicographically_gt_p): Removed.
1503 (build_lexicographically_gt_constraint): Renamed
1504 build_lexicographical_constraint, reimplemented.
1505 (dependence_polyhedron_1): Simplified parameters.
1506 (dependence_polyhedron): Same. Keep along empty PDDRs
1507 to make efficient use of the cache.
1508 (reduction_dr_p): Compute the PBBs don't pass them as parameters.
1509 (graphite_legal_transform_dr): Rewritten.
1510 (graphite_legal_transform_bb): Pass fewer arguments to
1511 graphite_legal_transform_dr.
1512 (graphite_carried_dependence_level_k): Simplified implementation.
1513 (dot_original_deps_stmt_1): Call dependence_polyhedron.
1514 (dot_transformed_deps_stmt_1): Same.
1515 (dot_original_deps): Same.
1516 (dot_transformed_deps): Same.
1517 * graphite-dependences.h (struct poly_ddr): Added a new field
1518 original_scattering_p.
1519 (PDDR_ORIGINAL_SCATTERING_P): New.
1520 (print_pddr): Declared.
1521 (debug_pddr): Declared.
1522 * graphite-ppl.c: Clarify comment.
1523 * sese.h (print_gimple_bb): Removed unused declaration.
1524 (debug_gbb): Same.
1525
d0546b2e 15262010-02-03 Sebastian Pop <sebastian.pop@amd.com>
1527
6c9df8cb 1528 * g++.dg/graphite/graphite.exp: Rewritten.
1529 * gcc.dg/graphite/graphite.exp: Rewritten.
1530 * gfortran.dg/graphite/graphite.exp: Rewritten.
1531 * gcc.dg/graphite/block-0.c: Added runtime test.
1532 * gcc.dg/graphite/block-1.c: Same.
1533 * gcc.dg/graphite/block-3.c: Same.
1534 * gcc.dg/graphite/block-4.c: Same.
1535 * gcc.dg/graphite/block-5.c: Same.
1536 * gcc.dg/graphite/block-6.c: Same.
1537 * gcc.dg/graphite/block-7.c: Same.
1538 * gcc.dg/graphite/interchange-0.c: Same.
1539 * gcc.dg/graphite/interchange-1.c: Same.
1540 * gcc.dg/graphite/interchange-10.c: Same.
1541 * gcc.dg/graphite/interchange-11.c: Same.
1542 * gcc.dg/graphite/interchange-12.c: Same.
1543 * gcc.dg/graphite/interchange-2.c: Same.
1544 * gcc.dg/graphite/interchange-3.c: Same.
1545 * gcc.dg/graphite/interchange-4.c: Same.
1546 * gcc.dg/graphite/interchange-5.c: Same.
1547 * gcc.dg/graphite/interchange-6.c: Same.
1548 * gcc.dg/graphite/interchange-7.c: Same.
1549 * gcc.dg/graphite/interchange-8.c: Same.
1550 * gcc.dg/graphite/interchange-9.c: Same.
1551 * gcc.dg/graphite/interchange-mvt.c: Same.
1552 * gcc.dg/graphite/run-id-2.c: Remove useless dg-do run.
d0546b2e 1553
ce363cd5 15542010-01-22 Ramakrishna Upadrasta <Ramakrishna.Upadrasta@inria.fr>
1555
1556 * graphite-scop-detection.c (dot_all_scops): Make calls to dot run in
1557 background.
1558
15592010-01-22 Ramakrishna Upadrasta <Ramakrishna.Upadrasta@inria.fr>
1560
1561 * common.opt: Add -fgraphite-cloog-opts.
1562 * graphite-clast-to-gimple.c (set_cloog_options): Same.
1563 * opts.c (decode_options): Same.
1564
7bcf2a47 15652010-01-20 Sebastian Pop <sebastian.pop@amd.com>
1566
6c9df8cb 1567 * gcc.dg/graphite/id-17.c: New.
1568 * gcc.dg/graphite/pr41888.c: New.
1569 * gcc.dg/graphite/scop-22.c: New.
1570 * gfortran.dg/graphite/pr40982.f90: New.
7bcf2a47 1571
f21ef1e7 15722010-01-20 Sebastian Pop <sebastian.pop@amd.com>
1573
1574 * graphite-dependences.c: Clarify comments.
1575 (build_pddr): Add an extra parameter direction.
1576 (graphite_legal_transform_dr): Use build_pddr.
1577 (dot_original_deps_stmt_1): Update use of build_pddr.
1578 (dot_transformed_deps_stmt_1): Same.
1579 (dot_original_deps): Same.
1580 (dot_transformed_deps): Same.
1581
6c9df8cb 1582 * gcc.dg/graphite/interchange-12.c: New.
1583 * gcc.dg/graphite/block-7.c: New.
f21ef1e7 1584
4f19d858 15852010-01-20 Sebastian Pop <sebastian.pop@amd.com>
1586
1587 * graphite-dependences.c (pddr_original_scattering): Renamed build_pddr.
1588 (pddr_transformed_scattering): Removed.
1589 (graphite_legal_transform_dr): Use build_pddr.
1590 (dot_original_deps_stmt_1): Same.
1591 (dot_transformed_deps_stmt_1): Same.
1592 (dot_original_deps): Same.
1593 (dot_transformed_deps): Same.
1594
4fe30658 15952010-01-20 Sebastian Pop <sebastian.pop@amd.com>
1596
1597 * graphite-dependences.c (lexicographically_gt_p): Add comments.
1598 (build_lexicographically_gt_constraint): Same.
1599 (dependence_polyhedron_1): Same.
1600 (dependence_polyhedron): Same.
1601
abc97125 16022010-01-20 Sebastian Pop <sebastian.pop@amd.com>
1603
1604 * graphite-dependences.c (build_pairwise_scheduling_equality): Removed.
1605 (build_pairwise_scheduling_inequality): Renamed build_pairwise_scheduling.
1606 (lexicographically_gt_p): Change type of direction to int.
1607 (build_lexicographically_gt_constraint): Same.
1608 (dependence_polyhedron_1): Same.
1609 (dependence_polyhedron): Same.
1610 (pddr_original_scattering): Use integers for direction.
1611 (pddr_transformed_scattering): Same.
1612 (graphite_legal_transform_dr): Same.
1613 (graphite_carried_dependence_level_k): Same.
1614
b57cb73e 16152010-01-20 Sebastian Pop <sebastian.pop@amd.com>
1616
1617 * graphite-dependences.c (build_pairwise_constraint): Renamed
1618 ppl_build_relation. Moved...
1619 (dr_equality_constraints): Use ppl_build_relation.
1620 (build_pairwise_scheduling_equality): Same.
1621 (build_pairwise_scheduling_inequality): Same.
1622 * graphite-ppl.c (ppl_build_relation): ...here.
1623 * graphite-ppl.h (ppl_build_relation): Declared.
1624
2487de19 16252010-01-14 Sebastian Pop <sebastian.pop@amd.com>
1626
1627 PR middle-end/42681
1628 * graphite-clast-to-gimple.c (gloog_error): New static variable.
1629 (clast_to_gcc_expression): Do not build MULT_EXPR of POINTER_TYPE_P.
1630 Set gloog_error when such an expression failed to be built.
1631 (translate_clast): Early return when gloog_error is set.
1632 (gloog): Clear gloog_error. When gloog_error is set, call
1633 set_ifsese_condition to enable the original code. Return the status
1634 of the code generation based on gloog_error.
1635 * sese.c (set_ifsese_condition): New.
1636 * sese.h (set_ifsese_condition): Declared.
1637
6c9df8cb 1638 * g++.dg/graphite/pr42681.C: New.
2487de19 1639
efe339e3 16402010-01-14 Sebastian Pop <sebastian.pop@amd.com>
1641
1642 PR middle-end/42732
1643 * graphite-clast-to-gimple.c (gloog): Call scev_reset_htab and
1644 rename_nb_iterations.
1645 * sese.c (rename_variables_in_operand): New.
1646 (rename_variables_in_expr): New.
1647 (rename_nb_iterations): New.
1648 (sese_adjust_liveout_phis): Update the rename_map.
1649 * sese.h (rename_nb_iterations): Declared.
1650 * tree-scalar-evolution.c (scev_reset_htab): New.
1651 (scev_reset): Call scev_reset_htab.
1652 * tree-scalar-evolution.h (scev_reset_htab): Declared.
1653
6c9df8cb 1654 * gfortran.dg/graphite/pr42732.f: New.
efe339e3 1655
a77f6f84 16562010-01-08 Sebastian Pop <sebastian.pop@amd.com>
1657
1658 PR middle-end/42393
1659 * graphite-clast-to-gimple.c: Fix formatting.
1660 * sese.c (defined_in_loop_p): Renamed name_defined_in_loop_p.
1661 (expr_defined_in_loop_p): New.
1662 (add_loop_exit_phis): Also handle full expressions: remove from
1663 the rename_map the expressions defined in the loop that we're closing.
1664
6c9df8cb 1665 * gfortran.dg/graphite/pr42393-1.f90: New.
1666 * gfortran.dg/graphite/pr42393.f90: Add new flags
a77f6f84 1667 -fno-loop-block -fno-loop-interchange -fno-loop-strip-mine to also
1668 make this testcase useful in the Graphite branch.
1669
01e31b4b 16702010-01-08 Sebastian Pop <sebastian.pop@amd.com>
1671
1672 * graphite-scop-detection.c (exclude_component_ref): Removed.
1673 (is_simple_operand): Removed.
1674 (stmt_simple_for_scop_p): Remove use of is_simple_operand.
1675
2379556f 16762010-01-07 Sebastian Pop <sebastian.pop@amd.com>
1677
1678 PR middle-end/42221
1679 * sese.c (expand_scalar_variables_expr): Follow the SSA links into
1680 the array indexing of ADDR_EXPRs.
1681
6c9df8cb 1682 * gcc.dg/graphite/pr42221.c: New.
2379556f 1683
d9458edc 16842010-01-07 Sebastian Pop <sebastian.pop@amd.com>
1685
1686 PR middle-end/42521
1687 * graphite.c (graphite_finalize): Call scev_reset.
1688 (graphite_transform_loops): Do not call scev_reset between the code
1689 generation of scops.
1690
6c9df8cb 1691 * gcc.dg/graphite/pr42521.c: New.
d9458edc 1692
b33d4eb4 16932010-01-07 Sebastian Pop <sebastian.pop@amd.com>
1694
1695 * graphite-interchange.c (memory_stride_in_loop): Renamed
1696 pdr_stride_in_loop.
1697 (memory_strides_in_loop): Renamed memory_strides_in_loop_1.
1698 (memory_strides_in_loop): Memoize the memory strides per loop.
1699 (lst_interchange_profitable_p): Do not initialize to zero the memory
1700 strides.
1701 * graphite-poly.h (struct lst): Add a field memory_strides.
1702 (LST_LOOP_MEMORY_STRIDES): New.
1703 (new_lst_loop): Initialize LST_LOOP_MEMORY_STRIDES to -1.
1704 (free_lst): Clear LST_LOOP_MEMORY_STRIDES.
1705
a16e8346 17062010-01-07 Sebastian Pop <sebastian.pop@amd.com>
1707
1708 * graphite-interchange.c (memory_strides_in_loop_depth): Renamed
1709 memory_strides_in_loop. Gather memory strides on a whole loop.
1710 (pbb_interchange_profitable_p): Renamed lst_interchange_profitable_p.
1711 (lst_interchange_profitable_p): Removed.
1712 (lst_try_interchange_loops): Call lst_interchange_profitable_p.
1713
2edfa860 17142010-01-07 Sebastian Pop <sebastian.pop@amd.com>
1715
1716 Revert patch 2009-11-23 Tobias Grosser <grosser@fim.uni-passau.de>
1717 * graphite-clast-to-gimple.c (try_mark_loop_parallel): New.
1718 (translate_clast_for, translate_clast_guard, translate_clast, gloog):
1719 Remove context_loop and level.
1720
3f12432d 17212010-01-07 Richard Guenther <rguenther@suse.de>
1722
1723 PR tree-optimization/42641
1724 * sese.c (rename_map_elt_info): Use the SSA name version, do
1725 not hash pointers.
1726
17272010-01-06 Sebastian Pop <sebastian.pop@amd.com>
1728
1729 * graphite-blocking.c (scop_do_block): Print "SCoP will be loop
1730 blocked" only when both the strip mine and the interchange have
1731 been applied.
1732
6c9df8cb 1733 * gcc.dg/graphite/block-2.c: Removed.
1734 * gcc.dg/graphite/block-3.c: Add scan pattern.
1735 * gcc.dg/graphite/block-4.c: Same.
1736 * gcc.dg/graphite/block-5.c: Same.
1737 * gcc.dg/graphite/block-6.c: Same.
3f12432d 1738
cfd3faac 17392010-01-06 Sebastian Pop <sebastian.pop@amd.com>
1740
1741 * graphite-clast-to-gimple.c (save_clast_name_index): Free slot
1742 before allocating a new one.
1743 (copy_renames): Check that slot is not NULL.
1744 (mark_bb_with_pbb): Same.
1745 (compute_cloog_iv_types_1): Same.
1746 * graphite-interchange.c (lst_perfect_nestify): Free the before,
1747 nest, and after LSTs.
1748 (lst_try_interchange_loops): Same.
1749
a1a6700b 17502010-01-05 Sebastian Pop <sebastian.pop@amd.com>
1751
1752 PR middle-end/42178
1753 * graphite-interchange.c (lst_try_interchange_loops): Do not return
1754 the before, nest, and after LSTs.
1755 (lst_try_interchange): Removed.
1756 (lst_interchange_select_inner): Do not iterate over the LSTs if they
1757 were modified.
1758 (lst_interchange_select_outer): Apply interchange on the outer loop
1759 until there are no more changes in the inner loops.
1760
7f60ea7e 17612009-12-18 Sebastian Pop <sebastian.pop@amd.com>
1762
1763 Revert patch fixing PR middle-end/42221.
1764
17652009-12-18 Sebastian Pop <sebastian.pop@amd.com>
1766
1767 PR middle-end/42180
1768 * graphite-sese-to-poly.c (follow_ssa_with_commutative_ops): Handle
1769 GIMPLE_CALL.
1770
6c9df8cb 1771 * gfortran.dg/graphite/pr42180.f90: Add compile flags.
7f60ea7e 1772
c668dee5 17732009-12-18 Sebastian Pop <sebastian.pop@amd.com>
1774
1775 PR middle-end/42180
1776 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split blocks
1777 that contain only one statement.
1778
6c9df8cb 1779 * gfortran.dg/graphite/pr42180.f90: New.
7f60ea7e 1780
a190b734 17812009-12-17 Sebastian Pop <sebastian.pop@amd.com>
1782
1783 PR middle-end/42393
6c9df8cb 1784 * gfortran.dg/graphite/pr42393.f90: New.
a190b734 1785
1747b6ef 17862009-12-17 Sebastian Pop <sebastian.pop@amd.com>
1787
1788 PR middle-end/42186
6c9df8cb 1789 * gfortran.dg/graphite/pr42186.f90: New.
1747b6ef 1790
36f22aa0 17912009-12-17 Sebastian Pop <sebastian.pop@amd.com>
1792
1793 PR middle-end/42205
1794 * graphite-sese-to-poly.c (translate_scalar_reduction_to_array_for_stmt):
1795 Insert the reduction copy in the same block as the phi node.
1796 (follow_ssa_with_commutative_ops): Handle GIMPLE_NOPs.
1797
6c9df8cb 1798 * gcc.dg/graphite/pr42205-1.c: New.
1799 * gcc.dg/graphite/pr42205-2.c: New.
36f22aa0 1800
18012009-12-17 Sebastian Pop <sebastian.pop@amd.com>
1802
1803 PR middle-end/42221
1804 * sese.c (expand_scalar_variables_expr): Follow the SSA links into
1805 the array indexing of ADDR_EXPRs.
1806
6c9df8cb 1807 * gcc.dg/graphite/pr42221.c: New.
36f22aa0 1808
673c512e 18092009-12-17 Sebastian Pop <sebastian.pop@amd.com>
1810
1811 PR middle-end/42178
1812 PR middle-end/42334
1813 * graphite-interchange.c (lst_try_interchange): Do not modify OUTER
1814 index. Call lst_interchange_select_inner only once.
1815 (lst_interchange_select_inner): Update use of lst_try_interchange.
1816 (lst_interchange_select_outer): Update.
1817
18182009-12-15 Sebastian Pop <sebastian.pop@amd.com>
1819
1820 PR middle-end/42178
1821 PR middle-end/42334
1822 * graphite-interchange.c (lst_try_interchange): Do not increment the
1823 the OUTER index when there is no AFTER kernel. Do not increment the
1824 OUTER index for after processing the AFTER kernel.
1825 (lst_interchange_select_inner): Call lst_try_interchange only on loops.
1826 (lst_interchange_select_outer): Do not pass in a pointer to the OUTER
1827 index. Do not pass to lst_interchange_select_inner the OUTER index.
1828 (scop_do_interchange): Update use of lst_interchange_select_outer.
1829
6c9df8cb 1830 * gfortran.dg/graphite/graphite.exp
673c512e 1831 (DEFAULT_FLAGS_GRAPHITE_IDENTITY): Remove -fdump-tree-graphite-all.
6c9df8cb 1832 * gfortran.dg/graphite/interchange-1.f: Add comment. Clean
673c512e 1833 the graphite dump file.
6c9df8cb 1834 * gfortran.dg/graphite/interchange-2.f: Same.
1835 * gfortran.dg/graphite/pr42334-1.f: New.
673c512e 1836
18372009-12-15 Sebastian Pop <sebastian.pop@amd.com>
1838
1839 PR middle-end/42178
1840 PR middle-end/42334
1841 * graphite-interchange.c (lst_perfect_nestify): Reset to NULL the LSTs
1842 that are empty.
1843 (lst_do_interchange_1): Renamed lst_interchange_select_inner.
1844 (lst_try_interchange): Reimplemented.
1845 (lst_interchange_select_inner): Same.
1846 (lst_do_interchange): Renamed lst_interchange_select_outer.
1847 Reimplemented.
1848 (scop_do_interchange): Update use of lst_interchange_select_outer.
1849
6c9df8cb 1850 * g++.dg/graphite/pr42130.C: Add -fgraphite-identity.
1851 * gcc.dg/graphite/block-0.c: Un-XFAILed.
1852 * gcc.dg/graphite/pr42211.c: New.
1853 * gfortran.dg/graphite/pr42334.f90: New.
673c512e 1854
99c136a5 18552009-12-14 Sebastian Pop <sebastian.pop@amd.com>
1856
1857 PR middle-end/42181
1858 * graphite-scop-detection.c (graphite_can_represent_scev): Handle more
1859 carefully PLUS_EXPR, MINUS_EXPR, and MULT_EXPR.
1860
6c9df8cb 1861 * gfortran.dg/graphite/pr42181.f90: New.
99c136a5 1862
5184a05f 18632009-12-12 Sebastian Pop <sebpop@gmail.com>
1864
1865 PR middle-end/42284
1866 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Call
1867 insert_out_of_ssa_copy_on_edge for anything else than SSA_NAMEs.
1868 (detect_commutative_reduction_arg): Simplified.
1869 (detect_commutative_reduction): Early return when the argument of
1870 the close phi is not of an SSA_NAME.
1871
6c9df8cb 1872 * gcc.dg/graphite/pr42284.c: New.
5184a05f 1873
18742009-12-11 Alexander Monakov <amonakov@ispras.ru>
1875
1876 * dbgcnt.def (graphite_scop): New counter.
1877 * graphite.c: Include dbgcnt.h
1878 (graphite_transform_loops): Use new counter to limit transformations.
1879
7464e753 18802009-12-08 Sebastian Pop <sebpop@gmail.com>
1881
1882 PR middle-end/42285
1883 * graphite-scop-detection.c (graphite_can_represent_init): Also
1884 handle more complex MULT_EXPRs containing parameters by recursion
1885 on the structure.
1886
6c9df8cb 1887 * gfortran.dg/graphite/pr42285.f90: New.
7464e753 1888
18892009-12-01 Tobias Grosser <grosser@fim.uni-passau.de>
1890
6c9df8cb 1891 * g++.dg/graphite/pr42130.C: Fix type.
7464e753 1892
f96db528 18932009-11-29 Alexander Monakov <amonakov@gcc.gnu.org>
1894
6c9df8cb 1895 * g++.dg/graphite/pr42130.C: Correct testcase.
1896
18972009-11-28 Tobias Grosser <grosser@fim.uni-passau.de>
1898
1899 * Merge from mainline (154493:154734).
1900
19012009-11-28 Tobias Grosser <grosser@fim.uni-passau.de>
1902
1903 * Merge from mainline (151362:154491).
f96db528 1904
b7bde372 19052009-11-24 Tobias Grosser <grosser@fim.uni-passau.de>
1906
1907 * graphite-clast-to-gimple.c (try_mark_loop_parallel,
1908 graphite_create_new_loop_guard, translate_clast_for): Fix comments.
1909
32e78944 19102009-11-23 Tobias Grosser <grosser@fim.uni-passau.de>
1911
1912 PR middle-end/42130
1913 * graphite-clast-to-gimple.c (graphite_create_new_loop_guard,
1914 translate_clast_for_loop): New.
1915 (translate_clast_for): Add a condition around the loop, to do not
1916 execute loops with zero iterations.
6c9df8cb 1917 * g++.dg/graphite/pr42130.C: New.
1918 * gcc.dg/graphite/pr35356-2.c: Adapt.
32e78944 1919
bafaa7f6 19202009-11-23 Tobias Grosser <grosser@fim.uni-passau.de>
1921
1922 * graphite-clast-to-gimple.c (try_mark_loop_parallel): New.
1923 (translate_clast_for, translate_clast_guard, translate_clast, gloog):
1924 Remove context_loop and level.
1925
0f5b569a 19262009-11-23 Tobias Grosser <grosser@fim.uni-passau.de>
1927
1928 * graphite-clast-to-gimple.c (translate_clast_user,
1929 translate_clast_for, translate_clast_guard): Simplify and move common
1930 elements to translate_clast().
1931 (translate_clast): Simplify and get common elements.
1932
9a75e57c 19332009-11-23 Tobias Grosser <grosser@fim.uni-passau.de>
1934
1935 * graphite-clast-to-gimple.c (translate_clast_user,
1936 translate_clast_for, translate_clast_guard): Split out of
1937 translate_clast.
1938
c9ef6b0e 19392009-11-21 Tobias Grosser <grosser@fim.uni-passau.de>
1940
1941 * graphite-clast-to-gimple.c (clast_name_index, new_clast_name_index,
1942 clast_name_to_index, save_clast_name_index, debug_clast_name_index,
1943 debug_clast_name_indexes_1, debug_clast_name_indexes,
1944 clast_name_index_elt_info, eq_clast_name_indexes): Moved from sese.h.
1945 (clast_name_to_gcc, clast_to_gcc_expression,
1946 clast_to_gcc_expression_red, gcc_type_for_clast_expr,
1947 gcc_type_for_clast_eq, graphite_translate_clast_equation,
1948 graphite_create_guard_cond_expr, graphite_create_new_loop,
1949 translate_clast): Add params_index.
1950 (initialize_cloog_names): Create parameter strings from scratch, do
1951 not reference other strings.
1952 (create_params_index): New.
1953 (gloog): Initialize params_index.
1954 * graphite-scop-detection (free_scops_1): Removed.
1955 (limit_scops): Use normal free_scops.
1956 * graphite-sese-to-poly.c (save_var_names): Removed.
1957 (parameter_index_in_region): Do not initialize SESE_PARAM_NAMES
1958 and SESE_PARAMS_INDEX.
1959 * sese.c (new_sese, free_sese): Dito.
1960 * sese.h (struct sese): Remove params_index, params_names.
1961 (SESE_PARAMS_INDEX, SESE_PARAMS_NAMES): Removed.
1962
a2a00920 19632009-11-20 Sebastian Pop <sebastian.pop@amd.com>
1964
1965 Revert the following patch from 2009-09-14:
1966 * graphite-blocking.c: Fix order of includes: tree-chrec.h, then
1967 tree-scalar-evolution.h, and then tree-data-ref.h.
1968 * graphite-clast-to-gimple.c: Same.
1969 * graphite-dependences.c: Same.
1970 * graphite-interchange.c: Same.
1971 * graphite-poly.c: Same.
1972 * graphite-scop-detection.c: Same.
1973 * graphite-sese-to-poly.c: Same.
1974 * graphite.c: Same.
1975 * lambda-code.c: Same.
1976 * matrix-reorg.c: Same.
1977 * tree-data-ref.c: Same.
1978 * tree-if-conv.c: Same.
1979 * tree-loop-distribu: Same.: Same.
1980 * tree-loop-linear.c: Same.
1981 * tree-parloops.c: Same.
1982 * tree-predcom.c: Same.
1983 * tree-vect-patterns.c: Same.
1984
2bc59caa 19852009-11-20 Sebastian Pop <sebastian.pop@amd.com>
1986
1987 Revert patch from 2009-09-14.
1988 * tree-ssa-loop.c (gate_graphite_transforms): Re-enable Graphite
1989 passes at -O1 and below.
1990
1d4dd1ed 19912009-11-18 Sebastian Pop <sebastian.pop@amd.com>
1992
1993 PR middle-end/40281
6c9df8cb 1994 * gcc.dg/graphite/pr40281.c: New.
1d4dd1ed 1995
1996 * tree-scalar-evolution.c (instantiate_scev_poly): Base and stride
1997 evolutions should not variate in inner loops.
1998
efe7b64c 19992009-11-18 Sebastian Pop <sebastian.pop@amd.com>
2000
2001 PR middle-end/42050
6c9df8cb 2002 * gfortran.dg/graphite/pr42050.f90: New.
efe7b64c 2003
acba5819 20042009-11-18 Sebastian Pop <sebastian.pop@amd.com>
2005
2006 * graphite-interchange.c (memory_strides_in_loop_depth): New.
2007 (pbb_interchange_profitable_p): Call memory_strides_in_loop_depth.
2008
64d8f27a 20092009-11-18 Sebastian Pop <sebastian.pop@amd.com>
2010
2011 * graphite-blocking.c (scop_do_block): New.
2012 * graphite-poly.c (apply_poly_transforms): Call scop_do_block.
2013 * graphite-poly.h (scop_do_block): Declared.
2014
9a0158f5 20152009-11-18 Sebastian Pop <sebastian.pop@amd.com>
2016
2017 * graphite-blocking.c (pbb_strip_mine_profitable_p): The parameter
2018 depth is the loop nesting depth in the LST. Call psct_dynamic_dim
2019 to transform depth into the time_depth before calling
2020 pbb_number_of_iterations_at_time.
2021 (lst_do_strip_mine): Use a scalar variable instead of recomputing
2022 lst_depth.
2023
9d274e75 20242009-11-18 Sebastian Pop <sebastian.pop@amd.com>
2025
2026 Reverted the patch for "scattering permutations" from 2009-10-28.
2027
2028 * graphite-poly.c (print_permutation): New.
2029 (debug_permutation): New.
2030 (new_poly_bb): Initialize PBB_PERMUTATION.
2031 (free_poly_bb): Free PBB_PERMUTATION.
2032 * graphite-poly.h (pbb_permutation_elt_p): Declared.
2033 (struct pbb_permutation_elt): New.
2034 (PBB_PERMUTATION_ELT_STRIDE): New.
2035 (PBB_PERMUTATION_ELT_STRIDED_P): New.
2036 (PBB_PERMUTATION_ELT_TIME_DIMENSION): New.
2037 (new_pbb_permutation_elt): New.
2038 (pbb_permutation_elt_free): New.
2039 (struct poly_bb): Add field permutation.
2040 (PBB_PERMUTATION): New.
2041 (print_permutation): Declared.
2042 (debug_permutation): Declared.
2043
3bcc3204 20442009-11-04 Konrad Trifunovic <konrad.trifunovic@inria.fr>
2045
2046 * graphite-interchange.c (build_partial_difference): New.
2047 (memory_stride_in_loop): Refactored the computation of
2048 equality constraints into build_partial_difference function.
2049 Added support for debugging stride computations.
2050
d996851c 20512009-11-03 Sebastian Pop <sebastian.pop@amd.com>
2052
2053 * graphite-clast-to-gimple.c (gloog): Free if_region,
2054 if_region->true_region, and if_region->region.
2055 * sese.c (if_region_set_false_region): Free if_region->false_region.
2056 (create_if_region_on_edge): Do not use GGC_NEW.
2057 (move_sese_in_condition): Remove useless initialization.
2058
87d25ca7 20592009-11-03 Sebastian Pop <sebastian.pop@amd.com>
2060
2061 * graphite-interchange.c (lst_perfect_nestify): Pass 3 parameters
2062 for the loops created by the loop distribution. Do not modify the
2063 input LSTs.
2064 (lst_try_interchange_loops): Same. Use a temporary LST for the
2065 transformed schedule. Call lst_update_scattering before data
2066 dependence analysis.
2067 (lst_try_interchange): Pass an extra parameter INDEX.
2068 (lst_do_interchange_1): New.
2069 (lst_do_interchange): Call lst_do_interchange_1.
2070 (scop_do_interchange): Call lst_update_scattering.
2071 * graphite-poly.c (apply_poly_transforms): Do not call
2072 lst_update_scattering.
2073 * graphite-poly.h (lst_pred): New.
2074 (lst_succ): New.
2075 (lst_find_first_pbb): Return NULL when not found.
2076 (lst_empty_p): New.
2077 (lst_insert_in_sequence): Allow LST1 to be NULL.
2078 (lst_replace): New.
2079 (lst_substitute_3): New.
2080 * gcc.dg/graphite/interchange-1.c: XFail.
2081 * gcc.dg/graphite/interchange-8.c: XFail.
2082 * gcc.dg/graphite/interchange-11.c: XFail.
2083
06ced013 20842009-10-30 Sebastian Pop <sebastian.pop@amd.com>
2085
2086 * graphite-interchange.c (lst_perfectly_nested_p): New.
2087 (lst_perfect_nestify): New.
2088 (lst_try_interchange_loops): Call store_lst_schedule,
2089 lst_perfectly_nested_p, lst_perfect_nestify and restore_lst_schedule.
2090 (scop_do_interchange): Avoid redundant legality test.
2091 Call lst_do_interchange on a copy of SCOP_TRANSFORMED_SCHEDULE.
2092 * graphite-poly.c (apply_poly_transforms): Call lst_update_scattering.
2093 * graphite-poly.h (psct_static_dim): New.
2094 (lst_dewey_number_at_depth): New.
2095 (lst_find_pbb): Restructured.
2096 (lst_find_first_pbb): Restructured.
2097 (lst_find_last_pbb): New.
2098 (lst_contains_p): New.
2099 (lst_contains_pbb): New.
2100 (lst_create_nest): New.
2101 (lst_remove_from_sequence): New.
2102 (pbb_update_scattering): New.
2103 (lst_update_scattering_under): New.
2104 (lst_update_scattering_seq): New.
2105 (lst_update_scattering): New.
2106 (lst_insert_in_sequence): New.
2107 (lst_distribute_lst): New.
2108 (lst_remove_all_before_including_pbb): New.
2109 (lst_remove_all_before_excluding_pbb): New.
2110
bf3aab8f 21112009-10-30 Sebastian Pop <sebastian.pop@amd.com>
2112
2113 * tree-ssa-loop-niter.c (finite_loop_p): Do not call twice
2114 get_loop_exit_edges.
2115
06b1d38c 21162009-10-30 Sebastian Pop <sebastian.pop@amd.com>
2117
2118 * graphite-poly.c (pbb_remove_duplicate_pdrs): Free collapsed.
2119
22467ffb 21202009-10-28 Konrad Trifunovic <konrad.trifunovic@gmail.com>
2121
2122 * graphite-poly.c (print_permutation): New.
2123 (debug_permutation): New.
2124 (new_poly_bb): Initialize PBB_PERMUTATION.
2125 (free_poly_bb): Free PBB_PERMUTATION.
2126 * graphite-poly.h (pbb_permutation_elt_p): Declared.
2127 (struct pbb_permutation_elt): New.
2128 (PBB_PERMUTATION_ELT_STRIDE): New.
2129 (PBB_PERMUTATION_ELT_STRIDED_P): New.
2130 (PBB_PERMUTATION_ELT_TIME_DIMENSION): New.
2131 (new_pbb_permutation_elt): New.
2132 (pbb_permutation_elt_free): New.
2133 (struct poly_bb): Add field permutation.
2134 (PBB_PERMUTATION): New.
2135 (print_permutation): Declared.
2136 (debug_permutation): Declared.
2137
628eaf60 21382009-10-26 Sebastian Pop <sebastian.pop@amd.com>
2139
2140 * graphite-clast-to-gimple.c (gloog): Do not call
2141 sese_reset_aux_in_loops.
2142 * graphite-sese-to-poly.c (build_loop_iteration_domains): Pass an
2143 extra argument for domains. Do not use loop->aux.
2144 (build_scop_iteration_domain): Initialize and free domains, pass it
2145 to build_loop_iteration_domains and extract the information from
2146 domains. Do not use loop->aux.
2147 * sese.c (sese_reset_aux_in_loops): Removed.
2148 * sese.h (sese_reset_aux_in_loops): Removed.
2149
2eb8c11d 21502009-10-26 Sebastian Pop <sebastian.pop@amd.com>
2151
2152 * graphite-clast-to-gimple.c (find_pbb_via_hash): Moved up.
2153 (dependency_in_loop_p): Same.
2154 (translate_clast): Do not use loop->aux. Initialize
2155 loop->can_be_parallel.
2156 (mark_loops_parallel): Removed.
2157 * graphite-clast-to-gimple.h (mark_loops_parallel): Removed.
2158 * graphite.c (free_aux_in_new_loops): Removed.
2159 (graphite_finalize): Do not call free_aux_in_new_loops.
2160 (graphite_transform_loops): Do not call mark_loops_parallel.
2161
21622009-10-26 Li Feng <nemokingdom@gmail.com>
86cbf617 2163
2164 * graphite-clast-to-gimple.c (get_stmtfor_depth): Removed.
2165 (translate_clast): Pass an extra parameter LEVEL.
2166 Call get_scattering_level.
2167 * graphite-clast-to-gimple.h (get_scattering_level): New.
2168
314c9614 21692009-10-22 Sebastian Pop <sebastian.pop@amd.com>
2170
2171 * cfgloop.c (alloc_loop): Initialize loop->single_iv.
2172 * cfgloop.h (struct loop): New field single_iv.
2173
2174 * graphite-clast-to-gimple.c (pbb_to_depth_to_oldiv): Do not use
2175 loop->aux anymore: use loop->single_iv.
2176 (graphite_loop_normal_form): Moved...
2177 (build_graphite_loop_normal_form): Removed.
2178 (gloog): Do not call build_graphite_loop_normal_form.
2179 (free_aux_in_new_loops): Moved...
2180 (mark_loops_parallel): Restructure.
2181 * graphite-clast-to-gimple.h (free_aux_in_new_loops): Do not declare.
2182 * graphite-sese-to-poly.c (graphite_loop_normal_form): ...here.
2183 (scop_canonicalize_loops): New.
2184 (build_poly_scop): Call scop_canonicalize_loops.
2185 * graphite.c (free_aux_in_new_loops): ...here.
2186
71bc7526 21872009-10-22 Sebastian Pop <sebastian.pop@amd.com>
2188
2189 * g++.dg/graphite/graphite.exp: Add the same rules as in
2190 gcc.dg/graphite/graphite.exp.
2191
24af1ef8 21922009-10-22 Sebastian Pop <sebastian.pop@amd.com>
2193
2194 * g++.dg/graphite/id-1.C: New.
2195
03c1327b 21962009-10-22 Sebastian Pop <sebastian.pop@amd.com>
2197
2198 * graphite-sese-to-poly.c (create_zero_dim_array): Pass an extra
2199 argument base_name.
2200 (rewrite_close_phi_out_of_ssa): Update use of create_zero_dim_array.
2201 (rewrite_phi_out_of_ssa): Same.
2202 (rewrite_cross_bb_scalar_deps): Same.
2203 (translate_scalar_reduction_to_array): Same.
2204
8f9b64ca 22052009-10-22 Sebastian Pop <sebastian.pop@amd.com>
2206
2207 * graphite-sese-to-poly.c (build_scop_drs): Disable call to
2208 dump_alias_graphs.
2209
aa16918e 22102009-10-22 Sebastian Pop <sebastian.pop@amd.com>
2211
2212 * graphite-sese-to-poly.c (dump_alias_graphs): New.
2213 (build_scop_drs): Call dump_alias_graphs.
2214
7e7ffe19 22152009-10-22 Sebastian Pop <sebastian.pop@amd.com>
2216
2217 * graphite-poly.c (new_scop): Initialize SCOP_ORIGINAL_SCHEDULE,
2218 SCOP_TRANSFORMED_SCHEDULE, and SCOP_SAVED_SCHEDULE.
2219 (free_scop): Call free_lst on SCOP_ORIGINAL_SCHEDULE,
2220 SCOP_TRANSFORMED_SCHEDULE, and SCOP_SAVED_SCHEDULE.
2221 * graphite-poly.h (free_lst): New.
2222 (store_lst_schedule): Free SCOP_SAVED_SCHEDULE.
2223 (restore_lst_schedule): Free SCOP_TRANSFORMED_SCHEDULE.
2224
e2622b4f 22252009-10-22 Sebastian Pop <sebastian.pop@amd.com>
2226
2227 * graphite-poly.h (struct scop): Add a field saved_schedule.
2228 (SCOP_SAVED_SCHEDULE): New.
2229 (store_lst_schedule): New.
2230 (restore_lst_schedule): New.
2231 (store_scattering): Call store_lst_schedule.
2232 (restore_scattering): Call restore_lst_schedule.
2233
1a95516e 22342009-10-20 Sebastian Pop <sebastian.pop@amd.com>
2235
2236 * graphite-sese-to-poly.c (free_data_refs_aux): Fix formatting.
2237 (pdr_add_alias_set): Same.
2238 (build_poly_dr): Same.
2239 (build_alias_set_optimal_p): Same.
2240 (build_base_obj_set_for_drs): Same. Do not store the result of
2241 graphds_dfs.
2242
f289f81b 22432009-10-20 Sebastian Pop <sebastian.pop@amd.com>
2244
2245 * graphite-sese-to-poly.c (build_alias_set_optimal_p): Initialize
2246 all_components_are_cliques to 1.
2247
e9a3f95f 22482009-10-20 Li Feng <nemokingdom@gmail.com>
2249
2250 * graphite-sese-to-poly.c (free_data_refs_aux): Update to free
2251 the new structure.
2252 (pdr_add_alias_set): Update retrieving alias_set_num.
2253 (build_poly_dr): Update retrieving dr_base_object_set.
2254 (partition_drs_to_sets): Remove.
2255 (build_alias_set_optimal_p): New.
2256 (build_alias_set_for_drs): Rename.
2257 (build_scop_drs): Update.
2258 * graphite-sese-to-poly.h (struct base_alias_pair): New.
2259 (ALIAS_SET_INDEX): Remove.
2260 (BASE_OBJECT_SET_INDEX): Remove.
2261
a6457fb8 22622009-10-20 Sebastian Pop <sebastian.pop@amd.com>
2263
2264 * sese.c (get_vdef_before_sese): Handle GIMPLE_ASSIGN and GIMPLE_CALL.
2265
3354e72e 22662009-10-20 Sebastian Pop <sebastian.pop@amd.com>
2267
2268 * graphite-sese-to-poly.c (pdr_add_data_dimensions): Do not infer
2269 loop upper bounds for 1-element arrays at end of structures.
2270 * tree-flow.h (array_at_struct_end_p): Declared.
2271 * tree-ssa-loop-niter.c (array_at_struct_end_p): Not static anymore.
2272
917c8e43 22732009-10-20 Sebastian Pop <sebastian.pop@amd.com>
2274
2275 * g++.dg/graphite/pr41305.C: New.
2276
b6410506 22772009-10-20 Alexander Monakov <amonakov@ispras.ru>
2278
2279 * graphite-sese-to-poly.c (build_loop_iteration_domains): Generalize
2280 construction of parameter constraints from loop iteration analysis.
2281 * gcc.dg/graphite/run-id-2.c: New test.
2282
a66257d5 22832009-10-17 Sebastian Pop <sebastian.pop@amd.com>
2284
2285 * graphite-interchange.c (memory_stride_in_loop): Delete p1, lma
2286 and new_cstr.
2287
38e3217b 22882009-10-17 Sebastian Pop <sebastian.pop@amd.com>
2289
2290 * graphite-dependences.c (dependence_polyhedron_1): Remove
2291 unused gdim dimensions from the DDR polyhedron.
2292
de38f9c0 22932009-10-17 Sebastian Pop <sebastian.pop@amd.com>
2294
2295 * graphite-dependences.c (pddr_transformed_scattering): New.
2296 (dot_original_deps_stmt_1): New.
2297 (dot_transformed_deps_stmt_1): New.
2298 (dot_deps_stmt_1): Call dot_original_deps_stmt_1 and
2299 dot_transformed_deps_stmt_1.
2300 (dot_original_deps): New.
2301 (dot_transformed_deps): New.
2302 (dot_deps_1): Call dot_original_deps and dot_transformed_deps.
2303
ba01d66f 23042009-10-17 Sebastian Pop <sebastian.pop@amd.com>
2305
2306 * graphite-dependences.c (reduction_dr_1): Remove wrong
2307 assert: reduction BBs can have multiple reduction writes
de38f9c0 2308 to memory. interchange-3.f90 is an example.
ba01d66f 2309
9050e62f 23102009-10-17 Sebastian Pop <sebastian.pop@amd.com>
2311
2312 * gfortran.dg/graphite/interchange-3.f90: New.
2313
d26b2d30 23142009-10-17 Sebastian Pop <sebastian.pop@amd.com>
2315
2316 * gcc.dg/graphite/interchange-1.c: Un-XFAILed.
2317
bff9278d 23182009-10-17 Sebastian Pop <sebastian.pop@amd.com>
2319
2320 * graphite-dependences.c (dependence_polyhedron_1): Add the
2321 context to the dependence polyhedron.
2322
13d0cae2 23232009-10-17 Sebastian Pop <sebastian.pop@amd.com>
2324
2325 * graphite-poly.c (pbb_remove_duplicate_pdrs): Initialize
2326 PBB_PDR_DUPLICATES_REMOVED.
2327 (new_poly_bb): Same.
2328
acb3969f 23292009-10-17 Sebastian Pop <sebastian.pop@amd.com>
2330
2331 * graphite-sese-to-poly.c (find_scop_parameters): Initialize
2332 SCOP_CONTEXT.
2333 (build_loop_iteration_domains): Extract bounds on parameters
2334 based on the data size.
2335 (build_scop_context): Do not initialize SCOP_CONTEXT;
2336 add new constraints.
2337
e6d78739 23382009-10-17 Sebastian Pop <sebastian.pop@amd.com>
2339
2340 * graphite-ppl.c (ppl_min_for_le_polyhedron): New.
2341 * graphite-ppl.h (graphite-ppl.h): Declared.
2342
409f96c1 23432009-10-17 Sebastian Pop <sebastian.pop@amd.com>
2344
2345 * graphite-ppl.c (ppl_print_linear_expr): New.
2346 (debug_ppl_linear_expr): New.
2347 * graphite-ppl.h (ppl_print_linear_expr): Declared.
2348 (debug_ppl_linear_expr): Declared.
2349
3d695986 23502009-10-16 Sebastian Pop <sebastian.pop@amd.com>
2351
2352 * graphite-interchange.c: Fix comments.
2353 * gcc.dg/graphite/block-1.c: Fix comments.
2354
ecab863e 23552009-10-16 Sebastian Pop <sebastian.pop@amd.com>
2356
2357 * gcc.dg/graphite/interchange-7.c: Un-XFAILed.
2358 * gcc.dg/graphite/interchange-9.c: Un-XFAILed.
2359
3dfb9fc0 23602009-10-16 Sebastian Pop <sebastian.pop@amd.com>
2361
2362 Reapply the patch from Alexander Monakov that disappeared during
2363 the last merges from trunk.
2364
2365 2009-09-16 Alexander Monakov <amonakov@ispras.ru>
2366
2367 * graphite-sese-to-poly.c (pdr_add_data_dimensions): Add bounds only
2368 for ARRAY_REFs. Use array_ref_{low,up}_bound to determine bounds.
2369
a1190c1b 23702009-10-15 Sebastian Pop <sebastian.pop@amd.com>
2371
2372 * graphite-interchange.c (memory_stride_in_loop): The depth
2373 argument corresponds to a dynamic time dimension, so use
2374 psct_dynamic_dim to refer to the transformed scattering dimension.
2375
dd3d3fae 23762009-10-15 Sebastian Pop <sebastian.pop@amd.com>
2377
2378 * graphite-interchange.c (memory_stride_in_loop): Fix comments.
2379
43217ce9 23802009-10-15 Sebastian Pop <sebastian.pop@amd.com>
2381
2382 * graphite-blocking.c (lst_do_strip_mine): Avoid strip mining the
2383 root of the LST.
2384 * graphite-interchange.c (lst_do_interchange): Avoid interchanging
2385 the root of the LST.
2386 * graphite-poly.c (scop_to_lst): Fix LST sequence in an outermost
2387 fake loop.
2388 (print_lst): Print the root of LST in a different format.
2389 * graphite-poly.h (lst_depth): Adjust to include the root of the LST.
2390
9b6c835c 23912009-10-15 Sebastian Pop <sebastian.pop@amd.com>
2392
2393 * graphite-poly.c (print_scop): Fix pretty printing of a SCoP.
2394
1e2a9aa7 23952009-10-15 Sebastian Pop <sebastian.pop@amd.com>
2396
2397 * doc/passes.texi: Document the Graphite infrastructure.
2398
ff010926 23992009-10-15 Sebastian Pop <sebastian.pop@amd.com>
2400
2401 * graphite-sese-to-poly.c (insert_copyin): Use gsi_insert_seq_on_edge.
2402 (rewrite_commutative_reductions_out_of_ssa): Call gsi_commit_edge_inserts,
2403 and check the SSA representation.
2404
2405 * gfortran.dg/graphite/id-18.f90: New, reduced from PR41193.
2406
fa846ea9 24072009-10-15 Sebastian Pop <sebastian.pop@amd.com>
2408
2409 * gcc.dg/graphite/pr40157.c: Use -floop-block as reported in the PR.
2410
fe45c436 24112009-10-14 Sebastian Pop <sebastian.pop@amd.com>
2412
2413 * gcc.dg/graphite/interchange-11.c: New.
2414
2e3e5ac8 24152009-10-14 Sebastian Pop <sebastian.pop@amd.com>
2416
2417 * gcc.dg/graphite/interchange-8.c: Enable loop interchange.
2418
93a95718 24192009-10-14 Sebastian Pop <sebastian.pop@amd.com>
2420
2421 * gcc.dg/graphite/graphite.exp (DEFAULT_CFLAGS_GRAPHITE_BLOCK):
2422 Add -fno-loop-strip-mine and -fno-loop-interchange.
2423 (DEFAULT_FLAGS_GRAPHITE_INTERCHANGE): Add -fno-loop-block and
2424 -fno-loop-strip-mine.
2425 * gfortran.dg/graphite/graphite.exp: Same.
2426
196689e3 24272009-10-14 Sebastian Pop <sebastian.pop@amd.com>
2428
2429 * gcc.dg/graphite/graphite.exp (DEFAULT_CFLAGS_GRAPHITE_BLOCK):
2430 Renamed DEFAULT_FLAGS_GRAPHITE_BLOCK.
2431 (DEFAULT_CFLAGS_GRAPHITE_IDENTITY): Renamed
2432 DEFAULT_FLAGS_GRAPHITE_IDENTITY.
2433 (DEFAULT_CFLAGS_GRAPHITE_INTERCHANGE): Renamed
2434 DEFAULT_FLAGS_GRAPHITE_INTERCHANGE.
2435 (DEFAULT_CFLAGS_GRAPHITE_SCOP): Renamed
2436 DEFAULT_FLAGS_GRAPHITE_SCOP.
2437 (DEFAULT_CFLAGS_RUN_ID): Renamed DEFAULT_FLAGS_RUN_ID.
2438 (DEFAULT_CFLAGS_GRAPHITE): Renamed DEFAULT_FLAGS_GRAPHITE.
2439
d9e94834 24402009-10-14 Sebastian Pop <sebastian.pop@amd.com>
2441
2442 * graphite-poly.c (pbb_number_of_iterations_at_time): Cleanup comments.
2443
5e18ab2b 24442009-10-14 Konrad Trifunovic <konrad.trifunovic@gmail.com>
2445 Sebastian Pop <sebastian.pop@amd.com>
2446
2447 * graphite-interchange.c (build_linearized_memory_access): Pass an
2448 offset as parameter.
2449 (memory_stride_in_loop): Include transform scattering in the
2450 access functions to be able to querry the strides in the
2451 transformed loops.
2452 (pbb_interchange_loop_depths): Interchange the psct_dynamic_dim,
2453 not the psct_iterator_dim.
2454
0befefcc 24552009-10-14 Sebastian Pop <sebastian.pop@amd.com>
2456
2457 * graphite-blocking.c (pbb_do_strip_mine): Removed.
2458 (lst_do_strip_mine_loop): New.
2459 (lst_do_strip_mine): New.
2460 (scop_do_strip_mine): Call lst_do_strip_mine.
2461 * graphite-poly.h (lst_add_loop_under_loop): New.
2462 (lst_find_first_pbb): New.
2463
71b90bc3 24642009-10-14 Sebastian Pop <sebastian.pop@amd.com>
2465
2466 * graphite-poly.c (loop_to_lst): Fix LST creation.
2467
4d6599d0 24682009-10-14 Tobias Grosser <grosser@fim.uni-passau.de>
2469
6c9df8cb 2470 * gcc.dg/graphite/id-15.c: (8 * 8) replaced with
4d6599d0 2471 sizeof(unsigned long) to make it run on 32bit systems.
2472
24732009-10-14 Tobias Grosser <grosser@fim.uni-passau.de>
2474
6c9df8cb 2475 * gcc.dg/graphite/run-id-1.c: Use smaller matrix to not
4d6599d0 2476 SEGFAULT on 32bit.
2477
96233858 24782009-10-14 Ramakrishna Upadrasta <Ramakrishna.Upadrasta@inria.fr>
2479
4d6599d0 2480 * graphite-sese-to-poly.c (write_alias_graph_to_ascii_dimacs): Fix
2481 Comment.
96233858 2482 (write_alias_graph_to_ascii_dot): New.
2483 (write_alias_graph_to_ascii_ecc): Ditto.
4d6599d0 2484 (partition_drs_to_sets): Add testing of optimality of current method
2485 which assigns alias numbers according to DFS Comopnent number. used
2486 as heuristic for the upcoming ECC algorithm.
96233858 2487 (build_scop_drs): Write to file also with the ecc and dot format.
2488
8eedbd74 24892009-10-13 Sebastian Pop <sebastian.pop@amd.com>
2490
2491 * gfortran.dg/graphite/interchange-1.f: XFail.
2492
ef98ee10 24932009-10-13 Sebastian Pop <sebastian.pop@amd.com>
2494
2495 * graphite.c (graphite_initialize): Do not handle functions with
2496 more than 100 basic blocks.
2497
b8ad26cc 24982009-10-13 Sebastian Pop <sebastian.pop@amd.com>
2499
2500 * graphite-blocking.c (pbb_do_strip_mine): Use
2501 PARAM_LOOP_BLOCK_TILE_SIZE.
2502
4938b827 25032009-10-13 Sebastian Pop <sebastian.pop@amd.com>
2504
2505 * graphite-poly.c (dot_lst_1): New.
2506 (dot_lst): New.
2507 * graphite-poly.h (dot_lst): Declared.
2508
a7d089ac 25092009-10-13 Sebastian Pop <sebastian.pop@amd.com>
2510
2511 * graphite-dependences.c (dot_deps_stmt_1): New.
2512 (dot_deps_stmt): New.
2513 * graphite-dependences.h (dot_deps_stmt): Declared.
2514
dd27e8aa 25152009-10-09 Sebastian Pop <sebastian.pop@amd.com>
2516
2517 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_dependence): Do
2518 not replace cross BB scalar dependences ending on PHI nodes.
2519 (rewrite_cross_bb_scalar_deps): Filter out GIMPLE_PHI nodes.
2520
dbe2e816 25212009-10-09 Sebastian Pop <sebastian.pop@amd.com>
2522
2523 * graphite-poly.c (apply_poly_transforms): Implement the high
2524 level driver for flag_loop_block.
6c9df8cb 2525 * opts.c (decode_options): Enable flag_loop_block at -O2.
dbe2e816 2526 * tree-ssa-loop.c (gate_graphite_transforms): Remove call to sorry for
2527 flag_loop_block.
2528
2529 * gcc.dg/graphite/graphite.exp (DEFAULT_CFLAGS_GRAPHITE_BLOCK): Add
2530 -floop-block.
2531 * gfortran.dg/graphite/graphite.exp (DEFAULT_CFLAGS_GRAPHITE_BLOCK):
2532 Add -floop-block.
2533
89d077e8 25342009-10-09 Sebastian Pop <sebastian.pop@amd.com>
2535
2536 * graphite-poly.h (lst_find_pbb): New.
2537 (find_lst_loop): New.
2538
220b380e 25392009-10-09 Sebastian Pop <sebastian.pop@amd.com>
2540
2541 * graphite-poly.c (new_scop): Remove init of SCOP_DEP_GRAPH.
2542 * graphite-poly.h (struct scop): Remove dep_graph field.
2543 (SCOP_DEP_GRAPH): Removed.
2544
554eeadb 25452009-10-09 Sebastian Pop <sebastian.pop@amd.com>
2546
2547 * graphite-poly.h (copy_lst): Do full copy of LST.
2548
30105622 25492009-10-07 Sebastian Pop <sebastian.pop@amd.com>
2550
2551 * graphite-sese-to-poly.c (reduction_phi_p): Call remove_invariant_phi
2552 when the loop stride is zero.
2553
2554 * gcc.dg/graphite/id-16.c: New.
2555
f007fe97 25562009-10-06 Sebastian Pop <sebastian.pop@amd.com>
2557
2558 * graphite-dependences.c (reduction_dr_1): New.
2559 (reduction_dr_p): New.
2560 (graphite_legal_transform_dr): Call reduction_dr_p.
2561 (reduction_ddr): Renamed reduction_ddr_p.
2562 * graphite-poly.h (same_pdr_p): New.
2563 (number_of_write_pdrs): New.
2564 * graphite-sese-to-poly.c (nb_data_writes_in_bb): New.
2565 (split_reduction_stmt): Do not split reduction statements
2566 when there are no writes to memory.
2567 (translate_scalar_reduction_to_array_for_stmt): Insert the
2568 memory reduction statement just after the scalar reduction statement.
2569
2570 * gcc.dg/graphite/interchange-10.c: Updated to differ from interchange-4.c.
2571 Un-XFAIL-ed.
2572 * gcc.dg/graphite/interchange-3.c: Un-XFAIL-ed.
2573 * gcc.dg/graphite/interchange-4.c: Un-XFAIL-ed.
2574
4d0382bc 25752009-10-06 Sebastian Pop <sebastian.pop@amd.com>
2576
2577 * graphite-interchange.c (lst_apply_interchange): New.
2578 (lst_interchange_profitable_p): New.
2579 (lst_try_interchange_loops): New.
2580 (lst_try_interchange): New.
2581 (lst_do_interchange): New.
2582 (pbb_do_interchange): Removed.
2583 (scop_do_interchange): Call lst_do_interchange.
2584
f77385d3 25852009-10-06 Sebastian Pop <sebastian.pop@amd.com>
2586
2587 * graphite-poly.c (print_scop): Print SCOP_ORIGINAL_SCHEDULE and
2588 SCOP_TRANSFORMED_SCHEDULE.
2589 (loop_to_lst): New.
2590 (scop_to_lst): New.
2591 (print_lst): New.
2592 (debug_lst): New.
2593 * graphite-poly.h (lst_p): New.
2594 (struct lst): New.
2595 (LST_LOOP_P): New.
2596 (LST_LOOP_FATHER): New.
2597 (LST_PBB): New.
2598 (LST_SEQ): New.
2599 (scop_to_lst): Declared.
2600 (print_lst): Declared.
2601 (debug_lst): Declared.
2602 (new_lst_loop): New.
2603 (new_lst_stmt): New.
2604 (copy_lst): New.
2605 (lst_depth): New.
2606 (lst_dewey_number): New.
2607 (struct scop): Add original_schedule and transformed_schedule fields.
2608 (SCOP_ORIGINAL_SCHEDULE): New.
2609 (SCOP_TRANSFORMED_SCHEDULE): New.
2610 * graphite-sese-to-poly.c (build_poly_scop): Call scop_to_lst.
2611
30f4f4a6 26122009-10-05 Sebastian Pop <sebastian.pop@amd.com>
2613
2614 * graphite-dependences.c (reduction_ddr): New.
2615 (graphite_legal_transform_bb): Call reduction_ddr.
2616 * graphite-poly.c (new_poly_bb): Pass a new bool parameter.
2617 Initialize PBB_IS_REDUCTION.
2618 * graphite-poly.h (struct poly_bb): New bool field is_reduction.
2619 (PBB_IS_REDUCTION): New.
2620 (new_poly_bb): Update declaration.
2621 * graphite-scop-detection.h (build_scop_bbs): Removed.
2622 (nb_reductions_in_loop): Removed.
2623 * graphite-sese-to-poly.c (try_generate_gimple_bb): Pass a sbitmap
2624 parameter for reductions.
2625 (try_generate_gimple_bb): Update call to new_poly_bb.
2626 (build_scop_bbs_1): Same.
2627 (build_scop_bbs): Same.
2628 (gsi_for_phi_node): New.
2629 (scalar_close_phi_node_p): Remove gcc_assert.
2630 (split_reduction_stmt): New.
2631 (is_reduction_operation_p): New.
2632 (phi_contains_arg): New.
2633 (follow_ssa_with_commutative_ops): New.
2634 (detect_commutative_reduction_arg): New.
2635 (detect_commutative_reduction_assign): New.
2636 (follow_inital_value_to_phi): New.
2637 (edge_initial_value_for_loop_phi): New.
2638 (initial_value_for_loop_phi): New.
2639 (detect_commutative_reduction): New.
2640 (translate_scalar_reduction_to_array_for_stmt): New.
2641 (insert_copyout): New.
2642 (insert_copyin): New.
2643 (translate_scalar_reduction_to_array): New.
2644 (rewrite_commutative_reductions_out_of_ssa_close_phi): New.
2645 (rewrite_commutative_reductions_out_of_ssa_loop): New.
2646 (rewrite_commutative_reductions_out_of_ssa): New.
2647 (build_poly_scop): Call rewrite_commutative_reductions_out_of_ssa.
2648 * sese.h (split_region_for_bb): New.
2649
2650 * gcc.dg/graphite/graphite.exp (DEFAULT_CFLAGS_GRAPHITE_BLOCK): Add -ffast-math.
2651 * gcc.dg/graphite/interchange-1.c: Fix format.
2652 * gcc.dg/graphite/interchange-10.c: New.
2653
dcdff5dc 26542009-10-05 Sebastian Pop <sebastian.pop@amd.com>
2655
2656 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Remove
2657 buggy assert.
2658
5061777c 26592009-10-05 Sebastian Pop <sebastian.pop@amd.com>
2660
2661 * graphite-sese-to-poly.c (scev_analyzable_p): New.
2662 (rewrite_cross_bb_scalar_dependence): New.
2663 (rewrite_cross_bb_scalar_deps): New.
2664 (rewrite_reductions_out_of_ssa): Use bb_in_sese_p.
2665 Call rewrite_cross_bb_scalar_deps.
2666
52123e43 26672009-10-05 Sebastian Pop <sebastian.pop@amd.com>
2668
2669 * graphite-sese-to-poly.c (gsi_for_ssa_name_def): Removed.
2670 (insert_out_of_ssa_copy): Directly use gsi_after_labels and
2671 gsi_for_stmt.
2672
ef43e998 26732009-10-05 Sebastian Pop <sebastian.pop@amd.com>
2674
2675 * graphite-clast-to-gimple.c (build_cloog_prog): Use pbb_index.
2676 * graphite-interchange.c (pbb_do_interchange): Same.
2677 * graphite-poly.c (print_scattering_function): Same.
2678 (debug_pdrs): Same.
2679 * graphite-poly.h (pbb_loop): New.
2680 * graphite-sese-to-poly.c (create_linear_expr_from_tree): Use pbb_loop.
2681
7bf7d520 26822009-09-27 Sebastian Pop <sebastian.pop@amd.com>
2683
2684 * graphite-scop-detection.c (limit_scops): Do not build poly_bbs.
2685
9c48819a 26862009-09-27 Sebastian Pop <sebastian.pop@amd.com>
2687
2688 * graphite-sese-to-poly.c (partition_drs_to_sets): Drs is not modified,
2689 so don't pass a pointer to it.
2690 (build_alias_set_for_drs): Same.
2691 (build_base_obj_set_for_drs): Same.
2692 (build_scop_drs): Same.
2693
af3b89d1 26942009-09-26 Li Feng <nemokingdom@gmail.com>
2695
2696 * graphite-sese-to-poly.c (build_scop_drs): Disable writing to file
2697 the alias graph of data references.
2698
8dee37ec 26992009-09-25 Li Feng <nemokingdom@gmail.com>
2700
2701 * graphite-sese-to-poly.c (write_alias_graph_to_ascii_dimacs): New.
2702 (build_scop_drs): When debugging, write the alias graph to file,
2703 otherwise, should be disabled.
2704
6c9df8cb 27052009-09-17 Sebastian Pop <sebastian.pop@amd.com>
2706
2707 * Merge from mainline (151310:151361).
2708
27092009-09-17 Sebastian Pop <sebastian.pop@amd.com>
2710
2711 * Merge from mainline (151171:151310).
2712
27132009-09-17 Sebastian Pop <sebastian.pop@amd.com>
2714
2715 * Merge from mainline (151171:151806).
2716
27172009-09-17 Sebastian Pop <sebastian.pop@amd.com>
2718
2719 * Revert the last commit.
2720
27212009-09-17 Sebastian Pop <sebastian.pop@amd.com>
2722
2723 * Merge from mainline (151171:151819).
2724
3cc56eaf 27252009-09-17 Sebastian Pop <sebastian.pop@amd.com>
2726
2727 * graphite-scop-detection.c (stmt_simple_memref_p): Removed.
2728 (is_simple_operand): Remove call to stmt_simple_memref_p.
2729 (stmt_simple_for_scop_p): Update call to is_simple_operand.
2730
4d62cf0c 27312009-09-17 David Edelsohn <edelsohn@gnu.org>
2732
6c9df8cb 2733 * gcc.dg/graphite/interchange-mvt.c: New File.
2734 * gcc.dg/graphite/scop-dsyrk.c: New File.
2735 * gcc.dg/graphite/scop-dsyr2k.c: New File.
2736 * gcc.dg/graphite/scop-mvt.c: New File.
2737 * gcc.dg/graphite/scop-sor.c: New File.
4d62cf0c 2738
ae11f03b 27392009-09-17 Li Feng <nemokingdom@gmail.com>
2740
ae11f03b 2741 * graphite-dependences.c (poly_drs_may_alias_p): Adjust definition.
2742 (pddr_original_scattering): Make sure 2 pdr2 in the same base object set.
2743 (graphite_carried_dependence_level_k): Ditto.
2744 * graphite-poly.c (new_poly_dr): Add init of PDR_BASE_OBJECT_SET.
2745 * graphite-poly.h (struct poly_dr): Add member dr_base_object_set.
2746 (new_poly_dr): Adjust declaration.
2747 * graphite-sese-to-poly.c (free_data_refs_aux): New.
2748 (free_gimple_bb): Added free_data_refs_aux.
2749 (build_poly_dr): Add dr_base_object_set.
2750 (partition_drs_to_sets): New.
2751 (dr_same_base_object_p): New.
2752 (build_alias_set_for_drs): New.
2753 (build_base_object_set_for_drs): New.
2754 (build_scop_drs): Add build_base_obj_set_for_drs.
2755 * graphite-sese-to-poly.h: Added #define for alias set number index and
2756 base object set index.
2757 * libgomp/testsuite/libgomp.graphite/force-parallel-6.c: Refine tests.
2758 * libgomp/testsuite/libgomp.graphite/pr4118.c: New.
2759
e5d72697 27602009-09-16 Alexander Monakov <amonakov@ispras.ru>
2761
2762 * graphite-sese-to-poly.c (pdr_add_data_dimensions): Add bounds only
2763 for ARRAY_REFs. Use array_ref_{low,up}_bound to determine bounds.
2764
db899978 27652009-09-14 Sebastian Pop <sebastian.pop@amd.com>
2766
2767 * graphite-sese-to-poly.c (struct irp_data): Removed.
2768 (idx_record_params): Removed.
2769 (find_params_in_bb): Scan for parameters the access functions; don't
2770 parse the tree representation.
2771
e5b6be5e 27722009-09-14 Sebastian Pop <sebastian.pop@amd.com>
2773
2774 * tree-ssa-loop.c (gate_graphite_transforms): Disable Graphite
2775 passes at -O1 and below.
2776
f631009f 27772009-09-14 Sebastian Pop <sebastian.pop@amd.com>
2778
2779 * graphite-blocking.c: Fix order of includes: tree-chrec.h, then
2780 tree-scalar-evolution.h, and then tree-data-ref.h.
2781 * graphite-clast-to-gimple.c: Same.
2782 * graphite-dependences.c: Same.
2783 * graphite-interchange.c: Same.
2784 * graphite-poly.c: Same.
2785 * graphite-scop-detection.c: Same.
2786 * graphite-sese-to-poly.c: Same.
2787 * graphite.c: Same.
2788 * lambda-code.c: Same.
2789 * matrix-reorg.c: Same.
2790 * tree-data-ref.c: Same.
2791 * tree-if-conv.c: Same.
2792 * tree-loop-distribu: Same.: Same.
2793 * tree-loop-linear.c: Same.
2794 * tree-parloops.c: Same.
2795 * tree-predcom.c: Same.
2796 * tree-vect-patterns.c: Same.
2797
5e803fbe 27982009-09-02 Sebastian Pop <sebastian.pop@amd.com>
2799
2800 Partially revert the previous patch, except the following.
2801 * tree-scalar-evolution.c (instantiate_scev_not): Adapted to pass
2802 as parameters the operands of the not expression.
2803
c43f1e90 28042009-09-01 Sebastian Pop <sebastian.pop@amd.com>
2805
2806 * tree-scalar-evolution.c (instantiate_scev_assign): New.
2807 Do not call analyze_scalar_evolution on assignments.
2808 (instantiate_scev_phi): Call analyze_scalar_evolution.
2809 (instantiate_scev_name): Call instantiate_scev_assign and
2810 instantiate_scev_phi.
2811 (instantiate_scev_not): Adapted to pass as parameters the operands
2812 of the not expression.
2813
9e9aa0c6 28142009-09-01 Sebastian Pop <sebastian.pop@amd.com>
2815
2816 * tree-scalar-evolution.c (instantiate_scev_binary): Adapted
2817 to pass as parameters the operands of the binary expression.
2818
9d206f16 28192009-09-01 Sebastian Pop <sebastian.pop@amd.com>
2820
2821 * tree-scalar-evolution.c (instantiate_scev_bitnot): Renamed
2822 instantiate_scev_not. Handle NEGATE_EXPR.
2823 (instantiate_scev_r): Handle NEGATE_EXPR.
2824
d91a99f1 28252009-09-01 Sebastian Pop <sebastian.pop@amd.com>
2826
2827 * tree-scalar-evolution.c (instantiate_scev_1): Renamed
2828 instantiate_scev_r.
2829 (instantiate_scev_r): Move code in instantiate_scev_2
2830 and instantiate_scev_1.
2831
378a6626 28322009-09-01 Sebastian Pop <sebastian.pop@amd.com>
2833
2834 * tree-scalar-evolution.c (instantiate_scev_3): New.
2835 (instantiate_scev_1): Move code in instantiate_scev_3.
2836
a819f845 28372009-09-01 Sebastian Pop <sebastian.pop@amd.com>
2838
2839 * tree-scalar-evolution.c (instantiate_scev_poly): New.
2840 (instantiate_scev_1): Move code in instantiate_scev_poly.
2841
39251a91 28422009-09-01 Sebastian Pop <sebastian.pop@amd.com>
2843
2844 * tree-scalar-evolution.c (instantiate_scev_bitnot): New.
2845 (instantiate_scev_1): Move code in instantiate_scev_bitnot.
2846
7723692a 28472009-09-01 Sebastian Pop <sebastian.pop@amd.com>
2848
2849 * tree-scalar-evolution.c (instantiate_scev_convert): New.
2850 (instantiate_scev_1): Move code in instantiate_scev_convert.
2851
5a10dfba 28522009-09-01 Sebastian Pop <sebastian.pop@amd.com>
2853
2854 * tree-scalar-evolution.c (instantiate_scev_binary): New.
2855 (instantiate_scev_1): Move code in instantiate_scev_binary.
2856
0731d869 28572009-09-01 Sebastian Pop <sebastian.pop@amd.com>
2858
2859 * tree-scalar-evolution.c (instantiate_scev_name): New.
2860 (instantiate_scev_1): Move code in instantiate_scev_name.
2861
28622009-08-28 Sebastian Pop <sebastian.pop@amd.com>
2863
2864 * Merge from mainline (150992:151171).
2865
6c9df8cb 28662009-08-25 Sebastian Pop <sebastian.pop@amd.com>
2867
2868 * opts.c (decode_options): Enable flag_loop_interchange at -O2.
2869
9e3531b5 28702009-08-25 Sebastian Pop <sebastian.pop@amd.com>
2871
2872 * graphite-dependences.c (graphite_legal_transform_bb): Call
2873 pbb_remove_duplicate_pdrs.
2874 * graphite-poly.c (can_collapse_pdr): Removed.
2875 (pdr_find_duplicate): Removed.
2876 (can_collapse_pdrs): New.
2877 (pbb_remove_duplicate_pdrs): New.
2878 (new_poly_dr): Do not look for duplicates.
2879 * graphite-poly.h (struct poly_bb): New field pdr_duplicates_removed.
2880 (PBB_PDR_DUPLICATES_REMOVED): New.
2881 (pbb_remove_duplicate_pdrs): Declared.
2882
11b2102e 28832009-08-25 Sebastian Pop <sebastian.pop@amd.com>
2884
2885 * graphite-interchange.c (pbb_interchange_profitable_p): Adjust
2886 the strides by multiplying by PDR_NB_REFS.
2887 * graphite-poly.c (can_collapse_pdr): New.
2888 (pdr_find_duplicate): New.
2889 (new_poly_dr): Call pdr_find_duplicate. Collapse duplicate PDRs.
2890 Initialize PDR_NB_REFS.
2891 * graphite-poly.h (struct poly_dr): Add field nb_refs.
2892 (PDR_NB_REFS): New.
2893 (new_poly_dr): Number of subscripts is a graphite_dim_t.
2894
28952009-08-25 Sebastian Pop <sebastian.pop@amd.com>
2896
2897 Revert one of the previous commits:
2898 * graphite-dependences.c (graphite_legal_transform_bb): Avoid
2899 the computation of symmetric data dependence relations.
2900 (dependency_between_pbbs_p): Same.
2901
d0aaf399 29022009-08-25 Sebastian Pop <sebastian.pop@amd.com>
2903
2904 PR middle-end/40965
2905 * graphite-poly.c (apply_poly_transforms): Remove legality test before
2906 any transform.
2907
79698ff3 29082009-08-25 Sebastian Pop <sebastian.pop@amd.com>
2909
2910 * graphite-dependences.c (pddr_original_scattering): Return NULL
2911 for read-read dependence relations.
2912 * graphite-poly.h (enum poly_dr_type): Fix comment.
2913 (pdr_read_p): New.
2914 (pdr_write_p): New.
2915 (pdr_may_write_p): New.
2916
c04f2da7 29172009-08-25 Sebastian Pop <sebastian.pop@amd.com>
2918
2919 * graphite-poly.h (enum POLY_DR_TYPE): Renamed poly_dr_type.
2920 (struct poly_dr): Same.
2921 (new_poly_dr): Same.
2922 * graphite-poly.c (new_poly_dr): Same.
2923
ee0d08ad 29242009-08-25 Konrad Trifunovic <konrad.trifunovic@gmail.com>
2925 Sebastian Pop <sebastian.pop@amd.com>
2926
2927 * graphite-blocking.c (pbb_strip_mine_loop_depth): Renamed
2928 pbb_strip_mine_time_depth. Changed the implementation so that
2929 transformation is expressed as a transformation on
2930 time (scatttering) dimensions. Also, ensures that the 2d+1
2931 scheduling format is preserved.
2932 (pbb_strip_mine_profitable_p): Profitability is based on the
2933 iteration number of a given time (scattering) dimension,
2934 and not on a original loop depth dimension.
2935 (pbb_strip_mine): Call pbb_number_of_iterations_at_time.
2936 (pbb_do_strip_mine): Call psct_dynamic_dim.
2937 * graphite-poly.c (pbb_number_of_iterations_at_time): New.
2938 * graphite-poly.h (pbb_number_of_iterations_at_time): Declared.
2939 (pbb_nb_dynamic_scattering_transform): New.
2940 (psct_dynamic_dim): New.
2941
55c54afb 29422009-08-25 Konrad Trifunovic <konrad.trifunovic@gmail.com>
2943
2944 * graphite-ppl.c (ppl_max_for_le): Renamed ppl_max_for_le_pointset.
2945 * graphite-ppl.h (ppl_max_for_le): Renamed ppl_max_for_le_pointset.
2946 * graphite-poly.c (pbb_number_of_iterations): Rename ppl_max_for_le.
2947 * graphite-interchange.c (build_linearized_memory_access): Same.
2948 (memory_stride_in_loop): Same.
2949
96b6d5d7 29502009-08-25 Sebastian Pop <sebastian.pop@amd.com>
2951
2952 * graphite-dependences.c (pddr_original_scattering): New.
2953 (graphite_legal_transform_dr): Call pddr_original_scattering.
2954 (dot_deps_1): New.
2955 (dot_deps): New.
2956 * graphite-dependences.h (dot_deps): Declared.
2957 * graphite-poly.c (new_poly_dr): Initialize PDR_ID.
2958 (print_pdr): Print PDR_ID.
2959 * graphite-poly.h (struct poly_dr): Add field id.
2960 (PDR_ID): New.
2961 (pbb_index): New.
2962 * graphite-scop-detection.c (dot_all_scops_1): Cleanup comment.
2963
2b3a572c 29642009-08-22 Sebastian Pop <sebastian.pop@amd.com>
2965
2966 * graphite-dependences.c (graphite_carried_dependence_level_k): Do
2967 not delete the original dependence relation.
2968
29692009-08-21 Sebastian Pop <sebastian.pop@amd.com>
2970
2971 * graphite-dependences.c (graphite_legal_transform_bb): Avoid
2972 the computation of symmetric data dependence relations.
2973 (dependency_between_pbbs_p): Same.
2974
0d6b5db2 29752009-08-21 Sebastian Pop <sebastian.pop@amd.com>
2976
2977 * graphite-dependences.c (new_poly_dr_pair): Renamed new_poly_ddr.
2978 (eq_poly_dr_pair_p): Renamed eq_poly_ddr_p.
2979 (hash_poly_dr_pair_p): Renamed hash_poly_ddr_p.
2980 (free_poly_ddr): New.
2981 (pddr_is_empty): New.
2982 (dependence_polyhedron_1): Now returns a poly_ddr_p.
2983 (dependence_polyhedron): Same. Remove useless gcc_assert.
2984 Remove fprintfs.
2985 (graphite_legal_transform_dr): Call pddr_is_empty and free_poly_ddr.
2986 (graphite_carried_dependence_level_k): Call pddr_is_empty.
2987 * graphite-dependences.h (enum poly_dependence_kind): New.
2988 (poly_dr_pair): Renamed poly_ddr. Added a field kind.
2989 (PDRP_SOURCE): Renamed PDDR_SOURCE.
2990 (PDRP_SINK): Renamed PDDR_SINK.
2991 (PDRP_DDP): Renamed PDDR_DDP.
2992 (PDDR_KIND): New.
2993 (free_poly_ddr): Declared.
2994 * graphite-poly.c (new_scop): Use the new hash function names.
2995 * graphite-poly.h (struct scop): Renamed field original_pdr_pairs
2996 into original_pddrs.
2997 (SCOP_ORIGINAL_PDR_PAIRS): Renamed SCOP_ORIGINAL_PDDRS.
2998
29992009-08-21 Sebastian Pop <sebastian.pop@amd.com>
3000
3001 * Merge from mainline (150764:150992).
3002
02df46c6 30032009-08-18 Sebastian Pop <sebastian.pop@amd.com>
3004
3005 * cfgloopmanip.c (create_empty_loop_on_edge): Generate upper
3006 bounds with LT_EXPR to make niter analysis more precise on code
3007 generated by Graphite.
3008
70a1a7a2 30092009-08-18 Sebastian Pop <sebastian.pop@amd.com>
3010
3011 * graphite-dependences.c (graphite_legal_transform_dr): Fix formatting.
3012 (graphite_legal_transform_bb): Same.
3013 (poly_drs_may_alias_p): Same.
3014
19eec579 30152009-08-15 Sebastian Pop <sebastian.pop@amd.com>
3016
3017 PR middle-end/40981
3018 * graphite-ppl.c (ppl_max_for_le): Correct the use of
3019 ppl_Pointset_Powerset_C_Polyhedron_maximize.
3020
30212009-08-13 Sebastian Pop <sebastian.pop@amd.com>
3022
3023 * graphite-poly.c (print_pbb): Print PBB index.
3024
30252009-08-13 Sebastian Pop <sebastian.pop@amd.com>
3026
3027 * Merge from mainline (r150672:150764).
3028
30292009-08-13 Sebastian Pop <sebastian.pop@amd.com>
3030
3031 * graphite-interchange.c (ppl_max_for_le): Moved...
3032 * graphite-poly.c (pbb_number_of_iterations): Call ppl_max_for_le.
3033 * graphite-ppl.c (ppl_max_for_le): ... here.
3034 * graphite-ppl.h (ppl_max_for_le): Declared.
3035
30362009-08-12 Sebastian Pop <sebastian.pop@amd.com>
3037
3038 * Merge from mainline (r150372:150672).
3039
43f8b6ab 30402009-08-11 Sebastian Pop <sebastian.pop@amd.com>
3041
3042 PR middle-end/40980
3043 * sese.c (convert_for_phi_arg): New.
3044 (add_guard_exit_phis): Use convert_for_phi_arg.
3045
6c9df8cb 3046 * gfortran.dg/graphite/id-17.f: New.
43f8b6ab 3047
96da1999 30482009-08-11 Sebastian Pop <sebastian.pop@amd.com>
3049
3050 * graphite-sese-to-poly.c (pdr_add_data_dimensions): Dont add
3051 unknown subscript upper bounds.
3052
6c9df8cb 3053 * gcc.dg/graphite/interchange-6.c: Un-XFAIL.
96da1999 3054
80020e9d 30552009-08-11 Sebastian Pop <sebastian.pop@amd.com>
3056 Pranav Garg <pranav.garg2107@gmail.com>
3057
3058 * graphite-interchange.c (gather_access_strides): Removed.
3059 (ppl_max_for_le): New.
3060 (build_linearized_memory_access): New.
3061 (memory_stride_in_loop): New.
3062 (pbb_interchange_profitable_p): Reimplemented.
3063 * graphite-ppl.h (ppl_new_id_map): New.
3064 (ppl_interchange): New.
3065
6c9df8cb 3066 * gcc.dg/graphite/interchange-6.c: XFAILed.
80020e9d 3067
c9fce634 30682009-08-11 Sebastian Pop <sebastian.pop@amd.com>
3069
3070 * graphite-interchange.c (compute_subscript): Removed.
3071 (compute_array_size_cstr): Removed.
3072 (compute_array_size_poly): Removed.
3073 (compute_array_size): Removed.
3074 (gather_access_strides_poly): Removed.
3075 (gather_access_strides): Empty.
3076
85f74b79 30772009-08-11 Sebastian Pop <sebastian.pop@amd.com>
3078
3079 * graphite-dependences.c (dependence_polyhedron_1): Replace
3080 pdr_nb_subscripts with PDR_NB_SUBSCRIPTS.
3081 (graphite_legal_transform_dr): Same.
3082 (graphite_carried_dependence_level_k): Same.
3083 * graphite-poly.c (new_poly_dr): Add a parameter nb_subscripts.
3084 Initialize PDR_NB_SUBSCRIPTS.
3085 (print_pdr_access_layout): Replace pdr_nb_subscripts with
3086 PDR_NB_SUBSCRIPTS.
3087 * graphite-poly.h (struct poly_dr): Add nb_subscripts field.
3088 (PDR_NB_SUBSCRIPTS): New.
3089 (pdr_nb_subscripts): Removed.
3090 (pdr_dim): Simplified.
3091 * graphite-sese-to-poly.c (build_poly_dr): Replace pdr_nb_subscripts
3092 with PDR_NB_SUBSCRIPTS.
3093
19b42529 30942009-08-11 Sebastian Pop <sebastian.pop@amd.com>
3095
3096 * graphite-interchange.c (compute_array_size): Remove use of
3097 PDR_DATA_CONTAINER.
3098 * graphite-poly.c (new_poly_dr): Remove argument data_container.
3099 Do not initialize PDR_DATA_CONTAINER.
3100 (print_pdr): Do not print PDR_DATA_CONTAINER.
3101 * graphite-poly.h (struct poly_dr): Remove data_container field.
3102 (PDR_DATA_CONTAINER): Removed.
3103 * graphite-sese-to-poly.c (pdr_add_data_dimensions): Remove use of
3104 PDR_DATA_CONTAINER.
3105 (build_poly_dr): Same.
3106
9daa8810 31072009-08-11 Sebastian Pop <sebastian.pop@amd.com>
3108
6c9df8cb 3109 * gcc.dg/graphite/interchange-9.c: New.
9daa8810 3110
0835eab6 31112009-08-05 Konrad Trifunovic <konrad.trifunovic@gmail.com>
3112 Sebastian Pop <sebastian.pop@amd.com>
3113
3114 * graphite-dependences.c (graphite_legal_transform_dr): Work on a
3115 copy of the dependence polyhedron. Free the temporary objects.
3116 (graphite_carried_dependence_level_k): Free unused objects before
3117 returning.
3118
6c9df8cb 3119 * gcc.dg/graphite/interchange-1.c: XFAILed.
3120 * gcc.dg/graphite/interchange-2.c: XFAILed.
3121 * gcc.dg/graphite/interchange-3.c: XFAILed.
3122 * gcc.dg/graphite/interchange-4.c: XFAILed.
3123 * gcc.dg/graphite/interchange-7.c: XFAILed.
0835eab6 3124
a741358d 31252009-08-05 Sebastian Pop <sebastian.pop@amd.com>
3126
3127 * graphite-blocking.c (scop_do_strip_mine): Call store_scattering.
3128 Early return without analyzing the data dependences if no
3129 transform has been done. Call restore_scattering if the transform
3130 is not legal.
3131 (graphite-interchange.c): Same.
3132 * graphite-poly.c (print_scattering_function): Test for PBB_TRANSFORMED.
3133 (graphite_read_transforms): Initialize PBB_TRANSFORMED.
3134 (apply_poly_transforms): Do not gcc_assert that
3135 the transform is legal.
3136 (new_poly_bb): Initialize PBB_TRANSFORMED, PBB_SAVED, and PBB_ORIGINAL.
3137 Do not initialize PBB_NB_SCATTERING_TRANSFORM, PBB_NB_LOCAL_VARIABLES,
3138 PBB_TRANSFORMED_SCATTERING, and PBB_ORIGINAL_SCATTERING.
3139 (free_poly_dr): Free PBB_TRANSFORMED, PBB_SAVED, and PBB_ORIGINAL.
3140 * graphite-poly.h (struct poly_scattering): New.
3141 (struct poly_bb): Add original, transformed, and saved fields.
3142 Remove transformed_scattering, original_scattering, nb_local_variables,
3143 and nb_scattering_transform fields.
3144 (PBB_ORIGINAL, PBB_TRANSFORMED, PBB_SAVED): New.
3145 (poly_scattering_new): New.
3146 (poly_scattering_free): New.
3147 (poly_scattering_copy): New.
3148 (store_scattering_pbb): New.
3149 (store_scattering): New.
3150 (restore_scattering_pbb): New.
3151 (restore_scattering): New.
3152 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons):
3153 Initialize PBB_TRANSFORMED and PBB_ORIGINAL.
9daa8810 3154
95b2e0d3 31552009-08-05 Sebastian Pop <sebastian.pop@amd.com>
3156
3157 * graphite-poly.c (print_pbb): Add parentheses in the pretty print.
3158 (print_scop): Same.
3159
675d86b2 31602009-08-05 Sebastian Pop <sebastian.pop@amd.com>
3161
3162 * Makefile.in (graphite.o): Depends on PREDICT_H.
3163 * graphite.c: Include predict.h.
3164 (graphite_finalize): Call tree_estimate_probability.
3165 * predict.c (predict_loops): Do not call scev_initialize and
3166 scev_finalize.
3167 (tree_estimate_probability_bb): New.
3168 (tree_estimate_probability): Do not initialize loops: move that
3169 code to the driver. Call tree_estimate_probability_bb.
3170 (tree_estimate_probability_driver): New.
3171 (pass_profile): Use tree_estimate_probability_driver.
3172 * predict.h (tree_estimate_probability): Declared.
3173
525c22c4 31742009-08-05 Sebastian Pop <sebastian.pop@amd.com>
3175
3176 * graphite-clast-to-gimple.c (gloog): Add time to TV_GRAPHITE_CODE_GEN.
3177 * graphite-dependences.c (graphite_legal_transform): Add time to
3178 TV_GRAPHITE_DATA_DEPS.
3179 (dependency_between_pbbs_p): Same.
3180 * timevar.def (TV_GRAPHITE_DATA_DEPS, TV_GRAPHITE_CODE_GEN): New.
3181
31822009-08-03 Sebastian Pop <sebastian.pop@amd.com>
3183
3184 * Merge from mainline (r149952:150372).
3185
c6bb733d 31862009-07-28 Sebastian Pop <sebastian.pop@amd.com>
3187
3188 * ChangeLog.graphite: Fix indenting, white spaces and 80 columns.
3189 * graphite-blocking.c: Same.
3190 * graphite-clast-to-gimple.c: Same.
3191 * graphite-dependences.c: Same.
3192 * graphite-poly.c: Same.
3193 * graphite-poly.h: Same.
3194 * graphite-ppl.c: Same.
3195 * graphite-scop-detection.c: Same.
3196 * graphite-sese-to-poly.c: Same.
3197 * graphite.c: Same.
3198
31992009-07-28 Sebastian Pop <sebastian.pop@amd.com>
3200
3201 * graphite-sese-to-poly.c (loop_entry_phi_arg): New.
3202 (remove_simple_copy_phi): New.
3203 (remove_invariant_phi): New.
3204 (simple_copy_phi_p): New.
3205 (reduction_phi_p): New.
3206 (gsi_for_ssa_name_def): New.
3207 (insert_out_of_ssa_copy): New.
3208 (insert_out_of_ssa_copy_on_edge): New.
3209 (create_zero_dim_array): New.
3210 (scalar_close_phi_node_p): New.
3211 (rewrite_close_phi_out_of_ssa): New.
3212 (rewrite_phi_out_of_ssa): New.
3213 (rewrite_reductions_out_of_ssa): New.
3214 (build_poly_scop): Call rewrite_reductions_out_of_ssa.
3215
6c9df8cb 3216 * gcc.dg/graphite/id-11.c: New.
3217 * gcc.dg/graphite/id-15.c: New.
3218 * gcc.dg/graphite/interchange-1.c: Un-XFAIL.
3219 * gcc.dg/graphite/interchange-2.c: Un-XFAIL.
3220 * gcc.dg/graphite/interchange-3.c: Un-XFAIL.
3221 * gcc.dg/graphite/interchange-4.c: Un-XFAIL.
3222 * gcc.dg/graphite/interchange-7.c: Un-XFAIL.
3223 * gcc.dg/graphite/scop-matmult.c: Un-XFAIL.
3224 * gfortran.dg/graphite/id-13.f: New.
3225 * gfortran.dg/graphite/id-5.f: New.
c6bb733d 3226
32272009-07-28 Sebastian Pop <sebastian.pop@amd.com>
3228
3229 * graphite-clast-to-gimple.c (graphite_loop_normal_form): Do not
3230 check that nb_reductions_in_loop is zero.
3231 * graphite-scop-detection.c (harmful_stmt_in_bb): Don't filter out
3232 reduction phi nodes.
3233 (nb_reductions_in_loop): Removed.
3234 (graphite_can_represent_loop): Do not call nb_reductions_in_loop.
3235 * graphite-sese-to-poly.c (phi_node_is_iv): Removed.
3236 (bb_contains_non_iv_scalar_phi_nodes): Removed.
3237 (scop_contains_non_iv_scalar_phi_nodes): Removed.
3238 (build_poly_scop): Do not call scop_contains_non_iv_scalar_phi_nodes.
3239
32402009-07-28 Sebastian Pop <sebastian.pop@amd.com>
3241
3242 * graphite-clast-to-gimple.c (build_cloog_prog): Do not code generate
3243 statements that have an empty iteration domain.
6c9df8cb 3244 * gfortran.dg/graphite/id-16.f: New.
c6bb733d 3245
32462009-07-28 Sebastian Pop <sebastian.pop@amd.com>
3247
3248 * tree-scalar-evolution.c (instantiate_scev_1): Return
3249 chrec_dont_know when the result is not above instantiate_below.
3250 * graphite-scop-detection.c (scopdet_basic_block_info): Fix formatting.
3251 * graphite-sese-to-poly.c (create_linear_expr_from_tree): Assert that
3252 the tree has a known scalar evolution.
6c9df8cb 3253 * gfortran.dg/graphite/id-14.f: New.
3254 * gfortran.dg/graphite/id-15.f: New.
c6bb733d 3255
32562009-07-28 Sebastian Pop <sebastian.pop@amd.com>
3257
3258 * sese.c (rename_variables_in_stmt): Pass in an extra parameter
3259 insert_gsi.
3260 (rename_variables): Keep inserting renames after the ones already
3261 inserted.
3262
32632009-07-28 Sebastian Pop <sebastian.pop@amd.com>
3264
3265 * graphite-sese-to-poly.c (compare_bb_depths): New.
3266 (graphite_sort_dominated_info): New.
3267 (build_scop_bbs_1): Call graphite_sort_dominated_info.
3268 (build_scop_scattering): Fix comment.
3269
32702009-07-28 Sebastian Pop <sebastian.pop@amd.com>
3271
3272 * graphite.c (graphite_finalize): Call print_loops instead of
3273 dump_function_to_file.
6c9df8cb 3274 * gcc.dg/graphite/graphite.exp: Fix formatting.
3275 * gcc.dg/graphite/pr35356-1.c: New. Look for the number of
c6bb733d 3276 loops generated in the graphite output file.
6c9df8cb 3277 * gcc.dg/graphite/pr35356-2.c: New.
3278 * gcc.dg/graphite/pr35356-3.c: New. XFAILed for now.
3279 * gfortran.dg/graphite/id-12.f: New.
c6bb733d 3280
32812009-07-24 Li Feng <nemokingdom@gmail.com>
3282
6c9df8cb 3283 * gcc.dg/graphite/graphite_autopar/force-parallel-8.c:
c6bb733d 3284 Remove 2 XFAIL.
3285
32862009-07-24 Li Feng <nemokingdom@gmail.com>
3287 Tobias Grosser <grosser@fim.uni-passau.de>
3288
3289 * graphite-sese-to-poly.c (pdr_add_alias_set): Use data reference's
3290 alias set number build alias in ACCESSES polyhedron.
3291 (build_alias_set_for_drs): New.
3292 (build_pbb_drs): Added build_alias_set_for_drs.
3293 * graphite-dependences.c (poly_drs_may_alias_p): New.
3294 (graphite_carried_dependence_level_k): Check alias information
3295 before building polyhedron.
3296
32972009-07-24 Tobias Grosser <grosser@fim.uni-passau.de>
3298
3299 * Makefile.in (lambda-code.o): Fix formatting.
3300
33012009-07-24 Tobias Grosser <grosser@fim.uni-passau.de>
3302
3303 * Merge from mainline (r149350-149952)
3304
33052009-07-18 Tobias Grosser <grosser@fim.uni-passau.de>
3306
3307 * graphite-poly.c (apply_poly_transforms): Move strip_mine
3308 before interchange to prepare for loop blocking.
3309
33102009-07-18 Tobias Grosser <grosser@fim.uni-passau.de>
3311
3312 * graphite-poly.c (apply_poly_transforms): Add checks after every
3313 transformation.
3314 * graphite-sese-to-poly.c (build_poly_scop): Remove check, as already
3315 done in apply_poly_transforms.
3316
33172009-07-17 Konrad Trifunovic <konrad.trifunovic@gmail.com>
3318
3319 * graphite-dependences.c (build_lexicographically_gt_constraint):
3320 Replace RES parameter with *RES.
3321 (dependence_polyhedron_1): Pass an address of the parameter RES
3322 instead of value of RES.
3323
33242009-07-16 Sebastian Pop <sebastian.pop@amd.com>
3325
3326 * graphite.c (graphite_finalize): Fix comment.
3327 (graphite_transform_loops): Reset scev info after code generation
3328 of each scop.
3329
33302009-07-16 Sebastian Pop <sebastian.pop@amd.com>
3331
3332 * graphite.c (graphite_finalize): Call scev_reset.
3333
33342009-07-16 Sebastian Pop <sebastian.pop@amd.com>
3335
3336 * graphite-clast-to-gimple.c (compute_cloog_iv_types): Do not create
3337 GBB_CLOOG_IV_TYPES hash table twice.
3338 * graphite-sese-to-poly.c (free_gimple_bb): Call free_data_refs.
3339 (add_condition_to_domain): Clear GMP values.
3340
33412009-07-16 Sebastian Pop <sebastian.pop@amd.com>
3342
3343 * graphite-dependences.c: Fix formatting.
3344 * graphite-poly.c (free_poly_dr): Also free PDR_DATA_CONTAINER.
3345 (pbb_number_of_iterations): Free ppl_Linear_Expression.
3346 * graphite-sese-to-poly.c: Fix formatting.
3347 * graphite.c (graphite_transform_loops): Create the hash table
3348 after the early return.
3349
33502009-07-16 Sebastian Pop <sebastian.pop@amd.com>
3351
6c9df8cb 3352 * gcc.dg/graphite/id-14.c: New.
3353 * gcc.dg/graphite/pr40157.c: New.
3354 * gfortran.dg/graphite/id-11.f: New.
c6bb733d 3355
33562009-07-16 Sebastian Pop <sebastian.pop@amd.com>
3357
3358 * graphite-sese-to-poly.c (nb_pbbs_in_loops): New.
3359 (build_poly_scop): Return false when there are no pbbs within
3360 loops to avoid to pass to cloog scops with no loops.
3361
33622009-07-16 Sebastian Pop <sebastian.pop@amd.com>
3363
3364 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Avoid
3365 useless test "i % 2".
3366 (build_pbb_scattering_polyhedrons): Fix formatting.
3367 (build_poly_dr): Same.
3368 * graphite.c (graphite_transform_loops): Restructure.
3369
33702009-07-14 Razya Ladelsky <razya@il.ibm.com>
3371
3372 * tree-ssa-loop-manip.c (rewrite_phi_with_iv): Remove
3373 reduction_list parameter.
3374 (rewrite_all_phi_nodes_with_iv): Same.
3375 (canonicalize_loop_ivs): Same.
3376 * tree-parloops.c (struct brli): Removed.
3377 (build_reduction_list_info): Removed.
3378 (build_new_reduction): New.
3379 (analyze_reduction_list): Removed.
3380 (gather_scalar_reductions): Find reductions instead of phi
3381 nodes that can't be canonicalized.
3382 (try_create_reduction_list): Remove reduction_list parameter.
3383 (gen_parallel_loop): Same.
3384 (parallelize_loops): Remove analyze_reductions variable,
3385 initialization and free.
3386 Change reduction_list htab initialization to reduction_info
3387 elements instead of ssa names.
3388 Call try_create_reduction_list and gen_parallel_loop without
3389 analyzed_reduction argument.
3390 * graphite-clast-to-gimple (graphite_loop_normal_form): Call
3391 canonicalize_loop_ivs with one less argument.
3392 * tree-flow.h (canonicalize_loop_ivs): Remove one argument.
3393
33942009-07-14 Konrad Trifunovic <konrad.trifunovic@gmail.com>
3395
3396 * graphite-dependences.c (new_poly_dr_pair): New.
3397 (dependence_polyhedron): Renamed into dependence_polyhedron_1.
3398 (new_poly_dr_pair): New.
3399 (eq_poly_dr_pair_p): New.
3400 (hash_poly_dr_pair_p): New.
3401 * graphite-dependences.h (struct poly_dr_pair): New.
3402 (eq_poly_dr_pair_p): Declared.
3403 (hash_poly_dr_pair_p): Declared.
3404 * graphite-poly.c (new_scop): Initialize SCOP_ORIGINAL_PDR_PAIRS.
3405 (free_scop): Free SCOP_ORIGINAL_PDR_PAIRS.
3406 * graphite-poly.h (struct scop): Add original_pdr_pairs field.
3407 * Makefile.in (graphite-poly.o): Add dependence on
3408 graphite-dependences.h.
3409
34102009-07-14 Sebastian Pop <sebastian.pop@amd.com>
3411
3412 * graphite-scop-detection.c (graphite_can_represent_scev): Do not let
3413 polynomials of degree > 1 pass to Graphite.
3414 * tree-chrec.c (scev_is_linear_expression): Call
3415 evolution_function_is_affine_multivariate_p.
6c9df8cb 3416 * gfortran.dg/graphite/id-10.f90: New.
c6bb733d 3417
34182009-07-14 Sebastian Pop <sebastian.pop@amd.com>
3419
3420 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop):
3421 Instantiate scevs varying in outer loops.
6c9df8cb 3422 * gfortran.dg/graphite/id-9.f: Correct testcase.
c6bb733d 3423
34242009-07-14 Sebastian Pop <sebastian.pop@amd.com>
3425
3426 * graphite-sese-to-poly.c (build_loop_iteration_domains): Do not insert
3427 redundant constraint.
3428
34292009-07-14 Sebastian Pop <sebastian.pop@amd.com>
3430
6c9df8cb 3431 * gcc.dg/graphite/graphite.exp: Fix comments.
3432 * gfortran.dg/graphite/graphite.exp: Trigger actions
c6bb733d 3433 based on the file names as in the C testsuite.
6c9df8cb 3434 * gfortran.dg/graphite/block-1.f90: Fix patterns.
3435 * gfortran.dg/graphite/block-2.f: Same.
3436 * gfortran.dg/graphite/block-3.f90: Same.
3437 * gfortran.dg/graphite/block-4.f90: Same.
3438 * gfortran.dg/graphite/id-1.f90: Same.
3439 * gfortran.dg/graphite/id-2.f90: Same.
3440 * gfortran.dg/graphite/id-3.f90: Same.
3441 * gfortran.dg/graphite/id-4.f90: Same.
3442 * gfortran.dg/graphite/id-6.f: Same.
3443 * gfortran.dg/graphite/id-9.f: Same.
3444 * gfortran.dg/graphite/interchange-1.f: Same.
3445 * gfortran.dg/graphite/interchange-2.f: Same.
3446 * gfortran.dg/graphite/scop-1.f: Same.
c6bb733d 3447
34482009-07-14 Sebastian Pop <sebastian.pop@amd.com>
3449
3450 * sese.c (expand_scalar_variables_call): New.
3451 (expand_scalar_variables_ssa_name): Handle calls in expander.
3452
34532009-07-13 Sebastian Pop <sebastian.pop@amd.com>
3454
6c9df8cb 3455 * gcc.dg/graphite/graphite_autopar/force-parallel-6.c:
c6bb733d 3456 Expect to see the pattern twice.
6c9df8cb 3457 * gcc.dg/graphite/interchange-0.c: Un-XFAIL.
3458 * gcc.dg/graphite/interchange-5.c: Same.
3459 * gcc.dg/graphite/interchange-6.c: Same.
c6bb733d 3460
34612009-07-13 Sebastian Pop <sebastian.pop@amd.com>
3462
6c9df8cb 3463 * gcc.dg/graphite/id-10.c: New.
3464 * gcc.dg/graphite/id-12.c: New.
3465 * gfortran.dg/graphite/id-7.f: New.
3466 * gfortran.dg/graphite/id-8.f: New.
c6bb733d 3467
34682009-07-13 Sebastian Pop <sebastian.pop@amd.com>
3469
3470 * graphite-sese-to-poly.c (pdr_add_data_dimensions): Fix division by
3471 zero.
3472
34732009-07-13 Sebastian Pop <sebastian.pop@amd.com>
3474
3475 * sese.c (rename_variables_in_stmt): Call fold_convert during renaming.
3476
34772009-07-13 Sebastian Pop <sebastian.pop@amd.com>
3478
3479 * sese.c (expand_scalar_variables_stmt): Avoid unnecessary expansion.
3480
34812009-07-10 Sebastian Pop <sebastian.pop@amd.com>
3482
3483 * graphite-sese-to-poly.c (pdr_add_memory_accesses): Fix order of
3484 building PDR subscripts.
3485
34862009-07-10 Sebastian Pop <sebastian.pop@amd.com>
3487
3488 * graphite-sese-to-poly.c (pdr_add_data_dimensions): Fix the
3489 computation of array sizes.
3490
34912009-07-10 Sebastian Pop <sebastian.pop@amd.com>
3492
3493 * graphite-sese-to-poly.c (add_param_constraints): Disabled.
3494
34952009-07-10 Tobias Grosser <grosser@fim.uni-passau.de>
3496
3497 * graphite-dependences.c (map_into_dep_poly, map_dr_into_dep_poly,
3498 build_pairwise_constraint, dr_equality_constraints,
3499 build_pairwise_scheduling_equality,
3500 build_pairwise_scheduling_inequality, lexicographically_gt_p,
3501 build_lexicographically_gt_constraint, dependence_polyhedron,
3502 graphite_legal_transform_dr, graphite_carried_dependence_level_k):
3503 Move from NNC_Polyhedron to C_Polyhedron.
3504 * graphite-interchange.c (compute_array_size_poly,
3505 gather_access_strides): Dito.
3506 * graphite-poly.c (apply_poly_transforms, new_poly_dr, free_poly_bb,
3507 free_scop, pbb_number_of_iterations): Dito.
3508 * graphite-poly.h (struct poly_dr, pdr_nb_subscripts, struct poly_bb,
3509 pbb_dim_iter_domain, struct scop): Dito.
3510 * graphite-ppl.c (new_Constraint_System_from_Cloog_Matrix,
3511 new_Cloog_Domain_from_ppl_Polyhedron,
3512 new_Cloog_Domain_from_ppl_Pointset_Powerset, ppl_set_coef_gmp,
3513 ppl_insert_dimensions_pointset, ppl_insert_dimensions_pointset,
3514 ppl_strip_loop, ppl_strip_loop, ppl_print_polyhedron_matrix,
3515 ppl_print_powerset_matrix, debug_ppl_polyhedron_matrix,
3516 debug_ppl_powerset_matrix, ppl_read_polyhedron_matrix): Dito.
3517 * graphite-ppl.h (ppl_Pointset_Powerset_C_Polyhedron_t,
3518 new_C_Polyhedron_from_Cloog_Matrix, ppl_print_powerset_matrix,
3519 debug_ppl_powerset_matrix, ppl_insert_dimensions_pointset): Dito.
3520 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons,
3521 build_loop_iteration_domains, ppl_constraint_type_from_tree_code,
3522 add_condition_to_domain, add_condition_to_pbb, build_scop_context,
3523 build_scop_iteration_domain, build_poly_dr): Dito
3524
35252009-07-09 Sebastian Pop <sebastian.pop@amd.com>
3526
6c9df8cb 3527 * gcc.dg/graphite/graphite.exp: Added a rule to execute
c6bb733d 3528 run-id-*.c files.
6c9df8cb 3529 * gcc.dg/graphite/run-id-1.c: New.
c6bb733d 3530
35312009-07-09 Sebastian Pop <sebastian.pop@amd.com>
3532
3533 * graphite-sese-to-poly.c (build_loop_iteration_domains): Add the
3534 positivity constraint on the symbolic number of iterations.
3535
35362009-07-09 Sebastian Pop <sebastian.pop@amd.com>
3537
3538 * graphite-sese-to-poly.c (build_loop_iteration_domains): Rewrite.
3539
35402009-07-09 Sebastian Pop <sebastian.pop@amd.com>
3541 Tobias Grosser <grosser@fim.uni-passau.de>
3542
3543 * graphite-clast-to-gimple.c (build_scop_context): Removed.
3544 (build_cloog_prog): Directly use SCOP_CONTEXT.
3545 * graphite-poly.c (new_scop): Initialize SCOP_CONTEXT.
3546 (free_scop): Free SCOP_CONTEXT.
3547 (print_scop_context): New.
3548 (print_scop): Call print_scop_context.
3549 (debug_scop_context): New.
3550 * graphite-poly.h (print_scop_context, debug_scop_context): Declared.
3551 (struct scop): Added field context.
3552 (SCOP_CONTEXT): New.
3553 * graphite-sese-to-poly.c (add_param_constraints): New.
3554 (build_scop_context): New.
3555 (build_poly_scop): Call build_scop_context.
3556
35572009-07-09 Sebastian Pop <sebastian.pop@amd.com>
3558
3559 * graphite-clast-to-gimple.c (gmp_cst_to_tree): Moved...
3560 * graphite-ppl.c (ppl_set_inhomogeneous_gmp, ppl_set_coef_gmp): New.
3561 (ppl_set_inhomogeneous, ppl_set_coef): Moved...
3562 * graphite-ppl.h: Include double-int.h and tree.h.
3563 (ppl_set_inhomogeneous_gmp, ppl_set_coef_gmp): Declared.
3564 (ppl_set_inhomogeneous, ppl_set_coef): ...here.
3565 (gmp_cst_to_tree): ...here. Reimplemented using mpz_get_double_int.
3566 (tree_int_to_gmp, ppl_set_inhomogeneous_tree, ppl_set_coef_tree): New.
3567
35682009-07-09 Sebastian Pop <sebastian.pop@amd.com>
3569
3570 * graphite-clast-to-gimple.c (clast_to_gcc_expression_red): Generate
3571 POINTER_PLUS_EXPR for pointer types.
3572 (clast_to_gcc_expression): Same.
3573
35742009-07-09 Sebastian Pop <sebastian.pop@amd.com>
3575
3576 * graphite-poly.c (print_scattering_function): Early return when
3577 PBB_TRANSFORMED_SCATTERING is not initialized.
3578 (print_pbb_domain): Early return when PBB_DOMAIN is not initialized.
3579
35802009-07-08 Sebastian Pop <sebastian.pop@amd.com>
3581
3582 * tree-parloops.c (analyze_reduction_list): Remove unused variable
3583 to fix bootstrap.
3584
35852009-07-08 Razya Ladelsky <razya@il.ibm.com>
3586
3587 * tree-parloops.c (analyze_reduction_list): Change return
3588 value to void.
3589 (try_create_reduction_list): Move the call to
3590 analyze_reduction_list to the beginining.
3591 Call reduction_phi with analyzed_reductions as argument
3592 instead of reduction_list.
3593
35942009-07-08 Tobias Grosser <grosser@fim.uni-passau.de>
3595
3596 * Merge from mainline (r148296:149346)
3597
35982009-07-07 Sebastian Pop <sebastian.pop@amd.com>
3599
3600 * graphite-scop-detection.c (graphite_can_represent_init): New.
3601 (graphite_can_represent_scev): Call graphite_can_represent_init:
3602 check that the initial value does not contain multiplications of
3603 parameters.
3604 (stmt_has_simple_data_refs_p): New.
3605 (stmt_simple_for_scop_p): Call stmt_simple_for_scop_p.
3606 (is_simple_operand): Fix formatting.
3607 * graphite-sese-to-poly.c (try_generate_gimple_bb): Fix formatting.
3608
36092009-07-07 Sebastian Pop <sebastian.pop@amd.com>
3610
6c9df8cb 3611 * gcc.dg/graphite/id-13.c: New.
c6bb733d 3612 * graphite-sese-to-poly.c (graphite_stmt_p): Do not call
3613 analyze_scalar_evolution, use scalar_evolution_in_region.
3614 (scan_tree_for_params_right_scev): Add extra assert.
3615 (parameter_index_in_region_1): Split from parameter_index_in_region.
3616 (idx_record_params): Use scalar_evolution_in_region.
3617 (find_params_in_bb): Same.
3618 (find_scop_parameters): Same.
3619 (build_loop_iteration_domains): Same.
3620 (create_linear_expr_from_tree): Same.
3621 * sese.c (scalar_evolution_in_region): New.
3622 * sese.h (scalar_evolution_in_region): Declared.
3623 (defined_in_sese_p): New.
3624 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop): Not
3625 static anymore.
3626 * tree-scalar-evolution.h (compute_overall_effect_of_inner_loop):
3627 Declared.
3628
36292009-07-07 Sebastian Pop <sebastian.pop@amd.com>
3630
3631 * Makefile.in: Replace dependences on tree-chrec.h with SCEV_H.
3632 TREE_DATA_REF_H also implies SCEV_H.
3633
36342009-07-07 Sebastian Pop <sebastian.pop@amd.com>
3635
3636 * graphite-poly.c (print_scop_params): New.
3637 (print_scop): Call print_scop_params.
3638 (debug_scop_params): New.
3639 * graphite-poly.h (print_scop_params, debug_scop_params): Declared.
3640
36412009-07-07 Li Feng <nemokingdom@gmail.com>
3642
6c9df8cb 3643 * gcc.dg/graphite/graphite_autopar/force-parallel-4.c: New.
3644 * gcc.dg/graphite/graphite_autopar/force-parallel-5.c: New.
3645 * gcc.dg/graphite/graphite_autopar/force-parallel-6.c: New.
3646 * gcc.dg/graphite/graphite_autopar/force-parallel-7.c: New.
3647 * gcc.dg/graphite/graphite_autopar/force-parallel-8.c: New.
3648 * gcc.dg/graphite/graphite_autopar/force-parallel-9.c: New.
c6bb733d 3649
36502009-07-07 Li Feng <nemokingdom@gmail.com>
3651
3652 * graphite-clast-to-gimple.c (mark_loops_parallel): Dump information
3653 for dependency checking part.
6c9df8cb 3654 * gcc.dg/graphite/graphite_autopar/force-parallel-1.c: Add
c6bb733d 3655 tests for dependency checking.
6c9df8cb 3656 * gcc.dg/graphite/graphite_autopar/force-parallel-2.c: Ditto.
3657 * gcc.dg/graphite/graphite_autopar/force-parallel-3.c: Ditto.
3658 * gcc.dg/graphite/graphite_autopar/graphite_autopar.exp: Add
c6bb733d 3659 flag -fdump-tree-graphite-all for autopar testsuites.
3660
36612009-07-06 Sebastian Pop <sebastian.pop@amd.com>
3662
3663 * Makefile.in (tree-ssa-loop-manip.o): Depends on langhooks.h.
3664 * tree-parloops.c (rewrite_phi_with_iv, rewrite_all_phi_nodes_with_iv,
3665 canonicalize_loop_ivs): Moved...
3666 * tree-ssa-loop-manip.c: ... here. Include langhooks.h.
3667
36682009-07-06 Sebastian Pop <sebastian.pop@amd.com>
3669
3670 * tree-parloops.c (try_create_reduction_list): Pass an extra
3671 argument analyzed_reductions. Call analyze_reduction_list.
3672 (gen_parallel_loop): Do not call analyze_reduction_list.
3673 (parallelize_loops): Init and finalize analyzed_reductions.
3674
36752009-07-06 Li Feng <nemokingdom@gmail.com>
3676
6c9df8cb 3677 * gcc.dg/graphite/graphite_autopar/graphite_autopar.exp:
c6bb733d 3678 Added flag -fno-loop-strip-mine for autopar testcase.
3679
36802009-07-04 Li Feng <nemokingdom@gmail.com>
3681
3682 * graphite-dependences.c (graphite_carried_dependence_level_k): Use
3683 transformed scattering dimension instead of unmatch orignal when
3684 calling dependence_polyhedron.
3685
36862009-06-30 Sebastian Pop <sebastian.pop@amd.com>
3687
3688 * opts.c (decode_options): Enable flag_loop_strip_mine at -O2.
3689
36902009-06-30 Sebastian Pop <sebastian.pop@amd.com>
3691
3692 * graphite-poly.c (pbb_number_of_iterations): Check for returned
3693 value 1 from ppl_Pointset_Powerset_NNC_Polyhedron_maximize.
3694
36952009-06-30 Sebastian Pop <sebastian.pop@amd.com>
3696
3697 * graphite-blocking.c (pbb_strip_mine_profitable_p): New.
3698 (pbb_do_strip_mine): Call pbb_strip_mine_profitable_p.
3699 * graphite-poly.c (pbb_number_of_iterations): New.
3700 * graphite-poly.h (pbb_number_of_iterations): Declared.
3701 (pbb_iterator_dim, pbb_parameter_dim): New.
3702
37032009-06-29 Sebastian Pop <sebastian.pop@amd.com>
3704
3705 * graphite-clast-to-gimple.c (graphite_create_new_loop): Revert the
3706 last commit on type of lower and upper bound of loops.
3707
37082009-06-29 Li Feng <nemokingdom@gmail.com>
3709
3710 * Makefile.in (graphite-clast-to-gimple.o): Added dependence on
3711 graphite-dependences.h.
3712 * graphite-clast-to-gimple.c (new_bb_pbb_def): New.
3713 (mark_bb_with_pbb): New.
3714 (get_stmtfor_depth): New.
3715 (find_pbb_via_hash): New.
3716 (dependency_in_loop_p): New.
3717 (mark_loops_parallel): New.
3718 (free_aux_in_new_loops): New.
3719 (translate_clast): Add parameter BB_PBB_MAPPING. Mark newly created
3720 bb with it's relevant pbb. Mark newly created loops. Remove mark
3721 innermost loop parallel without checking.
3722 (gloog): Add parameter BB_PBB_MAPPING.
3723 * graphite-clast-to-gimple.h (struct bb_pbb_def): New.
3724 (gloog): Change declaration.
3725 (mark_loop_parallel): Make extern.
3726 (free_aux_in_new_loops): Declare.
3727 (bb_pbb_map_hash): New.
3728 (eq_bb_pbb_map): New.
3729 * graphite.c (graphite_transform_loops): Added BB_PBB_MAPPING. Trigger
3730 auto parallelization when flag_graphite_force_parallel is set.
3731 (graphite_finalize): Added free_aux_in_new_loops.
3732 * tree-parloops.c (parallelize_loops): Only generate parallel code for
3733 the innermost loop that marked parallel. Use
3734 flag_graphite_force_parallel instead of loop->can_be_parallel.
3735 (loop_parallel_p): Move inner most checking out of function.
3736
37372009-06-26 Sebastian Pop <sebastian.pop@amd.com>
3738
3739 * graphite-clast-to-gimple.c (graphite_create_new_loop): Make the
3740 type of lower and upper bound of loops signed long int.
3741
37422009-06-26 Sebastian Pop <sebastian.pop@amd.com>
3743
3744 * cfgloopmanip.c (create_empty_loop_on_edge): Gimplify the loop exit
3745 expression outside the loop.
3746
37472009-06-26 Sebastian Pop <sebastian.pop@amd.com>
3748
3749 * gcc.dg/graphite/interchange-8.c: New.
3750
37512009-06-26 Sebastian Pop <sebastian.pop@amd.com>
3752
3753 * gcc.dg/graphite/interchange-0.c: XFailed.
3754 * gcc.dg/graphite/interchange-5.c: XFailed.
3755 * gcc.dg/graphite/interchange-6.c: XFailed.
3756
37572009-06-26 Sebastian Pop <sebastian.pop@amd.com>
3758
3759 * graphite-interchange.c (compute_array_size_poly): The end of the
3760 recursion should return 1.
3761
37622009-06-26 Sebastian Pop <sebastian.pop@amd.com>
3763
3764 * graphite-interchange.c (compute_array_size_cstr): Allow the
3765 subscript multiplier to be -1.
3766 (compute_array_size): Use PDR_DATA_CONTAINER and not PDR_ACCESSES.
3767 * graphite-poly.c (new_poly_dr): Takes an extra argument for the
3768 data_container. Initializes PDR_DATA_CONTAINER.
3769 (print_pdr_access_layout): New.
3770 (print_pdr): Call print_pdr_access_layout. Print PDR_DATA_CONTAINER.
3771 * graphite-poly.h (struct poly_dr): Adjust comment. Add a new field
3772 data_container.
3773 (PDR_DATA_CONTAINER): New.
3774 (new_poly_dr): Update declaration.
3775 * graphite-sese-to-poly.c (pdr_add_data_dimensions): New.
3776 (build_poly_dr): Call pdr_add_data_dimensions.
3777
37782009-06-26 Sebastian Pop <sebastian.pop@amd.com>
3779
3780 * graphite-poly.h (struct poly_dr): Fix comment.
3781 * graphite-sese-to-poly.c (pdr_add_alias_set): New.
3782 (pdr_add_memory_accesses): New.
3783 (build_poly_dr): Call pdr_add_memory_accesses and pdr_add_alias_set.
3784
37852009-06-26 Sebastian Pop <sebastian.pop@amd.com>
3786
3787 * graphite-poly.c (print_pdrs, debug_pdrs): New.
3788 (print_pbb): Add call to print_pdrs.
3789 * graphite-poly.h (print_pdrs, debug_pdrs): Declared.
3790
37912009-06-24 Konrad Trifunovic <konrad.trifunovic@gmail.com>
3792 Li Feng <nemokingdom@gmail.com>
3793
3794 * graphite-dependences.c (graphite_carried_dependence_level_k): New.
3795 (dependency_between_pbbs_p): New.
3796 (lexicographically_gt_p): Assure !empty_p before polyhedron
3797 intersection assign.
3798 (build_lexicographically_gt_constraint): Correct lexicographically
3799 judging.
3800 * graphite-dependences.h: New.
3801 * Makefile.in (graphite-dependences.o): Add graphite-dependences.h.
3802
38032009-06-24 Sebastian Pop <sebastian.pop@amd.com>
3804
3805 * graphite-clast-to-gimple.c (print_clast_stmt): New.
3806 (gloog): Print to dump_file the generated clast.
3807 * graphite-clast-to-gimple.h (print_clast_stmt): Declared.
3808 * graphite-interchange.c (pbb_do_interchange): Fix dump formatting.
3809
38102009-06-24 Sebastian Pop <sebastian.pop@amd.com>
3811
3812 * graphite-poly.c (extend_scattering): Increment
3813 PBB_NB_LOCAL_VARIABLES by the number of added dimensions.
3814
38152009-06-24 Sebastian Pop <sebastian.pop@amd.com>
3816
3817 * graphite-interchange.c (compute_array_size_poly): Added exit of
3818 recursion condition. Continue iterating even after the first equality.
3819 (compute_array_size): Same.
3820
38212009-06-24 Li Feng <nemokingdom@gmail.com>
3822
6c9df8cb 3823 * gcc.dg/graphite/graphite_autopar/force-parallel-1.c: Update
c6bb733d 3824 -fdump-tree-final_cleanup to -fdump-tree-optimized.
6c9df8cb 3825 * gcc.dg/graphite/graphite_autopar/force-parallel-2.c: Ditto.
3826 * gcc.dg/graphite/graphite_autopar/force-parallel-3.c: Ditto.
3827 * gcc.dg/graphite/graphite_autopar/graphite_autopar.exp: Ditto.
c6bb733d 3828
38292009-06-23 Sebastian Pop <sebastian.pop@amd.com>
3830
3831 * sese.c (expand_scalar_variables_stmt): Expand scalar variables
3832 only when the use verifies is_gimple_reg.
3833
38342009-06-23 Sebastian Pop <sebastian.pop@amd.com>
3835
3836 * graphite-clast-to-gimple.c (build_cloog_prog): Fix memory corruption.
3837 Allocate scaldims after call to unify_scattering_dimensions.
3838
38392009-06-23 Sebastian Pop <sebastian.pop@amd.com>
3840
3841 * graphite-clast-to-gimple.c (translate_clast): Fix memory leak.
3842
38432009-06-23 Sebastian Pop <sebastian.pop@amd.com>
3844 Albert Cohen <albert.cohen@inria.fr>
3845
3846 * graphite-blocking.c (pbb_strip_mine_loop_depth): Do not use local
3847 variables for the strip mining.
3848
38492009-06-23 Sebastian Pop <sebastian.pop@amd.com>
3850 Pranav Garg <pranav.garg2107@gmail.com>
3851
3852 * Makefile.in (OBJS-common): Added graphite-blocking.o.
3853 (graphite-sese-to-poly.o): Moved down to be in lexicographical order.
3854 (graphite-blocking.o): New rule.
3855 (graphite-poly.o, graphite-ppl.o): Moved to be in lexicographical order.
3856 * graphite-blocking.c: New.
3857 * graphite-poly.c (apply_poly_transforms): Call scop_do_strip_mine for
3858 flag_loop_strip_mine.
3859 (psct_scattering_dim_for_loop_depth): New.
3860 * graphite-poly.h (scop_do_strip_mine): Declared.
3861 (psct_add_local_variable): Increment PBB_NB_LOCAL_VARIABLES.
3862 * tree-ssa-loop.c (gate_graphite_transforms): Do not fail when using
3863 flag_loop_strip_mine.
3864
38652009-06-23 Sebastian Pop <sebastian.pop@amd.com>
3866
3867 * graphite-poly.c (extend_scattering): Avoid initializing and freeing
3868 a GMP value and a PPL coefficient at each iteration of a loop.
3869
38702009-06-23 Sebastian Pop <sebastian.pop@amd.com>
3871
3872 * graphite-dependences.c (dependence_polyhedron): Do not use
3873 pbb_nb_scattering_dims anymore. Use pbb_nb_scattering_orig and
3874 pbb_nb_scattering_transform.
3875 (graphite_legal_transform_dr): Same.
3876 * graphite-poly.c (extend_scattering): Same.
3877 (unify_scattering_dimensions): Same.
3878 (print_scattering_function): Same.
3879 (new_poly_bb): Initialize PBB_NB_SCATTERING_TRANSFORM and
3880 PBB_NB_LOCAL_VARIABLES.
3881 * graphite-poly.h (pbb_nb_scattering): Removed declaration.
3882 (struct poly_bb): Added nb_local_variables and nb_scattering_transform.
3883 (PBB_NB_LOCAL_VARIABLES, PBB_NB_SCATTERING_TRANSFORM): New.
3884 (pbb_nb_scattering_orig, pbb_nb_scattering_transform): New.
3885 (pbb_nb_scattering_dims, pbb_nb_scattering): Removed.
3886 (pbb_nb_scattering_transform): New.
3887 (pbb_nb_local_vars): Return PBB_NB_LOCAL_VARIABLES.
3888 (psco_scattering_dim): Add assert on parameters.
3889 (psct_scattering_dim): Same.
3890 (psct_scattering_dim_for_loop_depth): Declared.
3891 (psct_local_var_dim): New.
3892 (psco_iterator_dim, psco_parameter_dim): Add assert on parameters.
3893 (psct_iterator_dim, psct_parameter_dim): Same. To maintain the
3894 correct layout, call pbb_nb_local_vars.
3895 (psct_add_local_variable, psct_add_scattering_dimension): New.
3896 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons):
3897 Initialize PBB_NB_SCATTERING_TRANSFORM.
3898
38992009-06-23 Sebastian Pop <sebastian.pop@amd.com>
3900
3901 * graphite-ppl.c (set_inhomogeneous): Renamed ppl_set_inhomogeneous.
3902 (set_coef): Renamed ppl_set_coef.
3903 * graphite-ppl.h (ppl_set_inhomogeneous, ppl_set_coef): Declared.
3904
39052009-06-23 Sebastian Pop <sebastian.pop@amd.com>
3906
3907 * graphite-dependences.c (build_pairwise_scheduling_inequality): Don't
3908 test a boolean against 1.
3909 * graphite-interchange.c (pbb_interchange_loop_depths): Do not build
3910 a new polyhedron for the PBB_TRANSFORMED_SCATTERING.
3911 (pbb_do_interchange): Returns true when a transform has been performed.
3912 (scop_do_interchange): Same.
3913 * graphite-poly.c (apply_poly_transforms): Use the return value of
3914 scop_do_interchange.
3915 * graphite-poly.h (scop_do_interchange): Update declaration.
3916
39172009-06-23 Tobias Grosser <grosser@fim.uni-passau.de>
3918
3919 * graphite-clast-to-gimple.c (gloog): Reset loop->aux right
3920 after last use.
3921 * sese.c (sese_reset_aux_in_loops): New.
3922 * sese.h (sese_reset_aux_in_loops): New.
3923
39242009-06-19 Sebastian Pop <sebastian.pop@amd.com>
3925
3926 * graphite-sese-to-poly.c (scan_tree_for_params_int): Pass in the
3927 multiplier and multiply the constant by the multiplier.
3928 (scan_tree_for_params): Bound the multiplier to its MULT_EXPR.
3929 (build_poly_dr): Do not use the multiplier to define the subscript.
3930
39312009-06-19 Sebastian Pop <sebastian.pop@amd.com>
3932
3933 * graphite-poly.c (new_poly_dr): Pass an extra argument for the
3934 compiler's data reference. Initialize PDR_CDR.
3935 (print_pdr): Call dump_data_reference.
3936 * graphite-poly.h (struct poly_dr): Rename black_box into pbb.
3937 Add compiler_dr field.
3938 (PDR_BB): Renamed PDR_PBB.
3939 (PDR_CDR): New.
3940 * graphite-sese-to-poly.c (build_poly_dr): Pass to new_poly_dr
3941 GCC's data reference representation.
3942 * tree-data-ref.c (debug_data_references, debug_data_reference): New.
3943 * tree-data-ref.h (debug_data_references, debug_data_reference): Decl.
3944
39452009-06-19 Sebastian Pop <sebastian.pop@amd.com>
3946
3947 * graphite-poly.c (print_scattering_function): Also print the layout.
3948 * graphite-poly.h (pbb_nb_local_vars): New.
3949
39502009-06-19 Sebastian Pop <sebastian.pop@amd.com>
3951
3952 * graphite-poly.c (print_pbb_domain): Also print the layout names.
3953
39542009-06-19 Sebastian Pop <sebastian.pop@amd.com>
3955
3956 * graphite-poly.c (print_pdr, debug_pdr): New.
3957 * graphite-poly.h (print_pdr, debug_pdr): Declared.
3958 (PDR_BASE): Removed.
3959
39602009-06-18 Sebastian Pop <sebastian.pop@amd.com>
3961
6c9df8cb 3962 * gcc.dg/graphite/interchange-{1..7}.c: New avatars of
c6bb733d 3963 ltrans-{1..6,8}.c.
3964
39652009-06-18 Sebastian Pop <sebastian.pop@amd.com>
3966
3967 * graphite-interchange.c (compute_subscript): Allow also -1 in the
3968 subscript identification column.
3969 (pbb_do_interchange): Print to dump_file that some loops "will be
3970 interchanged". Rely on that chain of characters in the testcases.
3971 * gcc.dg/graphite/interchange-0.c: New.
3972 * gcc.dg/graphite/graphite.exp: Iterate over the testsuite
3973 interchange-*.c files and compile them with -floop-interchange.
3974
39752009-06-18 Pranav Garg <pranav.garg2107@gmail.com>
3976
3977 * graphite-interchange.c (interchange_profitable_p): Renamed
3978 pbb_interchange_profitable_p.
3979
39802009-06-18 Sebastian Pop <sebastian.pop@amd.com>
3981 Harsha Jagasia <harsha.jagasia@amd.com>
3982 Pranav Garg <pranav.garg2107@gmail.com>
3983
3984 * graphite-interchange.c (interchange_profitable_p): Make static.
3985 (pbb_interchange_loop_depths, pbb_do_interchange,
3986 scop_do_interchange): New.
3987 * graphite-poly.c (apply_poly_transforms): Call scop_do_interchange
3988 for flag_loop_interchange.
3989 * graphite-poly.h (scop_do_interchange): Declared.
3990 * tree-ssa-loop.c (gate_graphite_transforms): Do not fail when
3991 flag_loop_interchange is used.
3992
39932009-06-18 Sebastian Pop <sebastian.pop@amd.com>
3994
3995 * graphite-dependences.c (dependence_polyhedron): Update use of
3996 pbb_nb_scattering_dims.
3997 * graphite-poly.h (pbb_nb_scattering_dims): Do not pass SCOP.
3998 (pbb_nb_scattering): Update use of pbb_nb_scattering_dims.
3999 (psco_scattering_dim, psct_scattering_dim, psco_iterator_dim,
4000 psct_iterator_dim, psco_parameter_dim, psct_parameter_dim): New.
4001
40022009-06-16 Sebastian Pop <sebastian.pop@amd.com>
4003
4004 * graphite.c: Cleanup foo.
4005
40062009-06-16 Sebastian Pop <sebastian.pop@amd.com>
4007
4008 * Merge from mainline (r143684:148293).
4009 * Disabled libpcp until it gets fixed.
4010
40112009-06-05 Sebastian Pop <sebastian.pop@amd.com>
4012 Harsha Jagasia <harsha.jagasia@amd.com>
4013
4014 * graphite-interchange.c: New.
4015 * Makefile.in (graphite-interchange.o): New.
4016 * graphite-poly.h (interchange_profitable_p): Declared.
4017 * graphite-ppl.h (value_max): New.
4018
40192009-06-04 Sebastian Pop <sebastian.pop@amd.com>
4020
4021 * graphite-dependences.c (dependence_polyhedron): Use pdr_dim.
4022 * graphite-poly.h: Fix some comments.
4023 (pdr_dim): New.
4024 (pdr_scop): New.
4025
40262009-06-04 Sebastian Pop <sebastian.pop@amd.com>
4027
4028 * graphite-poly.h
4029 (pdr_accessp_nb_subscripts): Renamed pdr_nb_subscripts.
4030 (pdr_accessp_nb_iterators): Renamed pdr_dim_iter_domain.
4031 (pdr_accessp_nb_params): Renamed pdr_nb_params.
4032 (pdr_accessp_alias_set_dim): Renamed pdr_alias_set_dim.
4033 (pdr_accessp_subscript_dim): Renamed pdr_subscript_dim.
4034 (pdr_accessp_iterator_dim): Renamed pdr_iterator_dim.
4035 (pdr_accessp_param_dim): Renamed pdr_parameter_dim.
4036 (pbb_nb_loops): Renamed pbb_dim_iter_domain.
4037 * graphite-clast-to-gimple.c: Same.
4038 * graphite-dependences.c: Same.
4039 * graphite-poly.c: Same.
4040 * graphite-sese-to-poly.c: Same.
4041
40422009-06-03 Sebastian Pop <sebastian.pop@amd.com>
4043
4044 * graphite-clast-to-gimple.c (build_iv_mapping): Insert full
4045 expressions for an IV rename, as returned by clast_to_gcc_expression.
4046 (copy_renames): Rename new_name to expr.
4047 * sese.c (debug_rename_elt): Same.
4048 (get_rename): Same.
4049 (set_rename): Same.
4050 (sese_adjust_liveout_phis): Call force_gimple_operand before using
4051 the information from the rename map.
4052 (rename_variables_in_stmt): Same.
4053 (add_loop_exit_phis): Rename new_name to expr.
4054 (insert_loop_close_phis): Same.
4055 (add_guard_exit_phis): Same. Call force_gimple_operand.
4056 * sese.h (struct rename_map_elt): Rename new_name to expr.
4057 (new_rename_map_elt): Same.
4058
40592009-06-03 Sebastian Pop <sebastian.pop@amd.com>
4060
4061 * graphite-clast-to-gimple.c (build_iv_mapping): Use set_rename.
4062 * sese.c (set_rename): Make it extern.
4063 * sese.h (set_rename): Declared.
4064
40652009-06-03 Sebastian Pop <sebastian.pop@amd.com>
4066
4067 * graphite-poly.c (extend_scattering): Free values.
4068 * graphite-ppl.c (new_Cloog_Domain_from_ppl_Pointset_Powerset):
4069 Free iterators.
4070 (ppl_print_powerset_matrix): Same.
4071 * graphite-scop-detection.c (free_scops_1): New.
4072 (limit_scops): Call free_scops_1.
4073 * graphite-sese-to-poly.c (build_scop_bbs_1): Free dom.
4074 (build_poly_dr): Free PPL coefficients.
4075 * tree-parloops.c (rewrite_all_phi_nodes_with_iv): Free bbs.
4076
40772009-06-02 Sebastian Pop <sebastian.pop@amd.com>
4078
4079 * graphite-dependences.c: New.
4080 * graphite-data-ref.c: Removed.
4081 * graphite-data-ref.h: Removed.
4082 * Makefile.in (graphite-data-ref.o): Removed.
4083 (graphite-dependences.o): Added.
4084 * graphite-clast-to-gimple.c: Remove dependence on graphite-data-ref.h.
4085 * graphite-poly.c: Same.
4086 Move the data dependence testing to graphite-dependences.c.
4087
40882009-05-19 Tobias Grosser <grosser@fim.uni-passau.de>
4089
4090 * graphite-scop-detection.c (graphite_can_represent_loop): Renamed
4091 from graphite_cannot_represent_loop. Code refactored.
4092 (scopdet_basic_block_info): Call graphite_can_represent_loop.
4093
40942009-05-17 Li Feng <nemokingdom@gmail.com>
4095
6c9df8cb 4096 * gcc.dg/graphite/graphite_autopar/graphite_autopar.exp:
c6bb733d 4097 Cover all the testcases (not only the filtered ones).
4098
40992009-05-17 Tobias Grosser <grosser@fim.uni-passau.de>
4100
4101 * graphite-scop-detection.c (stmt_simple_for_scop_p): Remove
4102 unnecessary check. Update comments. Move check for REAL_TYPE here.
4103 (harmful_stmt_in_bb): Remove checks for conditions. This is already
4104 done in (stmt_simple_for_scop_p).
4105
41062009-05-14 Tobias Grosser <grosser@fim.uni-passau.de>
4107
4108 * graphite.c (print_global_statistics): New.
4109 (print_graphite_scop_statistic): New.
4110 (print_graphite_statistics): New.
4111 (graphite_initialize, graphite_transform_loops): Print statistics.
4112 * graphite-scop-detection (build_scops): Print statistics.
4113 (print_graphite_scop_statistics): New.
4114 (print_graphite_statistics): New.
4115
41162009-05-13 Sebastian Pop <sebastian.pop@amd.com>
4117
4118 * graphite-clast-to-gimple.c (struct clast_name_index): Removed.
4119 (debug_clast_name_index): Removed.
4120 (debug_clast_name_indexes_1): Removed.
4121 (debug_clast_name_indexes): Removed.
4122 (clast_name_index_elt_info): Removed.
4123 (eq_clast_name_indexes): Removed.
4124 (clast_name_to_index): Removed.
4125 (new_clast_name_index): Removed.
4126 (save_clast_name_index): Removed.
4127 (save_var_name): Moved...
4128 (init_sese_params_index): Removed.
4129 (clast_name_to_gcc): Remove use of name_tree.
4130 (initialize_cloog_names): Same.
4131 (gloog): Do not call init_sese_params_index.
4132 * graphite-sese-to-poly.c (save_var_name): ...here.
4133 (parameter_index_in_region): New.
4134 * sese.c (new_sese): Initialize SESE_PARAMS_NAMES.
4135 (parameter_index_in_region): Removed.
4136 (is_parameter): Remove use of name_tree.
4137 * sese.h (struct name_tree): Removed.
4138 (struct sese): Remove use of name_tree. New field params_names.
4139 (SESE_PARAMS_NAMES): New.
4140 (SESE_PARAMS): Remove duplicate.
4141 (parameter_index_in_region): Removed.
4142 (sese_nb_params): Remove use of name_tree.
4143 (struct clast_name_index): New.
4144 (new_clast_name_index): New.
4145 (clast_name_to_index): New.
4146 (save_clast_name_index): New.
4147 (debug_clast_name_index): New.
4148 (debug_clast_name_indexes_1): New.
4149 (debug_clast_name_indexes): New.
4150 (clast_name_index_elt_info): New.
4151 (eq_clast_name_indexes): New.
4152
41532009-05-13 Sebastian Pop <sebastian.pop@amd.com>
4154
4155 * graphite-clast-to-gimple.c (compute_cloog_iv_types_1): Call
4156 pbb_to_depth_to_oldiv. Remove call to oldiv_for_loop.
4157 (graphite_loop_normal_form): Do not pass region. Do not
4158 initialize SESE_OLDIVS.
4159 (build_graphite_loop_normal_form): Update call to
4160 graphite_loop_normal_form.
4161 * sese.c (debug_oldivs): Removed.
4162 (new_sese): Do not initialize SESE_OLDIVS.
4163 (free_sese): Do not free SESE_OLDIVS.
4164 (oldiv_for_loop): Removed.
4165 * sese.h (struct sese): Remove old_ivs.
4166 (SESE_OLDIVS): Removed.
4167 (oldiv_for_loop): Removed.
4168
41692009-05-13 Sebastian Pop <sebastian.pop@amd.com>
4170
4171 * graphite-clast-to-gimple.c (clast_name_to_gcc): Pass newivs,
4172 remove ivstack. Remove call to loop_iv_stack_get_iv_from_name,
4173 replaced by a call to newivs_to_depth_to_newiv.
4174 (clast_to_gcc_expression): Pass newivs, remove ivstack.
4175 (clast_to_gcc_expression_red): Same.
4176 (gcc_type_for_clast_expr): Same.
4177 (gcc_type_for_clast_eq): Same.
4178 (graphite_translate_clast_equation): Same.
4179 (graphite_create_guard_cond_expr): Same.
4180 (graphite_create_new_guard): Same.
4181 (graphite_create_new_loop): Same.
4182 (build_iv_mapping): Same.
4183 (translate_clast): Same.
4184 (gloog): Same.
4185 (loop_iv_stack_patch_for_consts): Removed. *
4186 sese.c (iv_stack_entry_is_constant): Removed.
4187 (iv_stack_entry_is_iv): Removed.
4188 (loop_iv_stack_push_iv): Removed.
4189 (loop_iv_stack_insert_constant): Removed.
4190 (loop_iv_stack_pop): Removed.
4191 (loop_iv_stack_get_iv): Removed.
4192 (loop_iv_stack_get_iv_from_name): Removed.
4193 (debug_loop_iv_stack): Removed.
4194 (free_loop_iv_stack): Removed.
4195 (loop_iv_stack_remove_constants): Removed. *
4196 sese.h (iv_stack_entry_kind): Removed.
4197 (iv_stack_entry_data_union): Removed.
4198 (iv_stack_entry_struct): Removed.
4199 (iv_stack_entry_p): Removed.
4200 (debug_oldivs, debug_loop_iv_stack, loop_iv_stack_insert_constant,
4201 loop_iv_stack_get_iv_from_name, loop_iv_stack_push_iv,
4202 loop_iv_stack_get_iv, loop_iv_stack_remove_constants,
4203 loop_iv_stack_pop, free_loop_iv_stack): Removed.
4204 (gbb_loop_at_index): Fix indenting.
4205 (gbb_loop_index): Removed.
4206
42072009-05-13 Sebastian Pop <sebastian.pop@amd.com>
4208
4209 * graphite-clast-to-gimple.c (clast_name_to_gcc): Do not use strcmp.
4210 Call clast_name_to_index.
4211
42122009-05-13 Sebastian Pop <sebastian.pop@amd.com>
4213
4214 * graphite-clast-to-gimple.c (clast_name_to_gcc): Pass region,
4215 do not pass params. Get params from SESE_PARAMS.
4216 (clast_to_gcc_expression): Same.
4217 (clast_to_gcc_expression_red): Same.
4218 (gcc_type_for_clast_eq): Same.
4219 (graphite_translate_clast_equation): Same.
4220 (graphite_create_new_loop): Same.
4221 * sese.c (rename_variables_in_stmt): Fix comment.
4222
42232009-05-13 Sebastian Pop <sebastian.pop@amd.com>
4224
4225 * graphite-clast-to-gimple.c (graphite_create_new_loop): Pass
4226 newivs_index.
4227 Call save_clast_name_index.
4228 (translate_clast): Pass newivs_index.
4229 (gloog): Create and free newivs_index.
4230
42312009-05-13 Sebastian Pop <sebastian.pop@amd.com>
4232
4233 * graphite-clast-to-gimple.c (clast_name_index): New structure.
4234 (clast_name_index_p): New type.
4235 (debug_clast_name_index): New.
4236 (debug_clast_name_indexes_1): New.
4237 (debug_clast_name_indexes): New.
4238 (clast_name_index_elt_info): New.
4239 (eq_clast_name_indexes): New.
4240 (clast_name_to_index): New.
4241 (new_clast_name_index): New.
4242 (save_clast_name_index): New.
4243 (init_sese_params_index): New.
4244 (gloog): Call init_sese_params_index.
4245 * graphite-clast-to-gimple.h (debug_clast_name_indexes): Declared.
4246 * sese.c (new_sese): Initialize SESE_PARAMS_INDEX.
4247 (free_sese): Free SESE_PARAMS_INDEX.
4248 * sese.h (struct sese): Add params_index.
4249 (SESE_PARAMS_INDEX): New.
4250
42512009-05-13 Sebastian Pop <sebastian.pop@amd.com>
4252
4253 * graphite-clast-to-gimple.c (newivs_to_depth_to_newiv): New.
4254 (graphite_create_new_loop): Pass the newivs vector. Push the
4255 newly created IV to newivs.
4256 (translate_clast): Pass the newivs vector.
4257 (gloog): Create and destroy the newivs vector.
4258
42592009-05-13 Sebastian Pop <sebastian.pop@amd.com>
4260
4261 * graphite-clast-to-gimple.c (pbb_to_depth_to_oldiv): New.
4262 (graphite_loop_normal_form): Initialize loop->aux with the unique
4263 IV that has been created.
4264
42652009-05-13 Tobias Grosser <grosser@fim.uni-passau.de>
4266
4267 * tree-chrec.c (evolution_function_right_is_integer_cst): Allow
4268 scev with parameters in the base part. They where forbidden
4269 exidently.
4270
42712009-05-11 Li Feng <nemokingdom@gmail.com>
4272
6c9df8cb 4273 * gcc.dg/graphite/graphite.exp: Set different default
c6bb733d 4274 compile options by file names.
6c9df8cb 4275 * gcc.dg/graphite/block{0-6}.c: Remove dg-option line.
4276 * gcc.dg/graphite/id-{1-9}.c: Ditto.
4277 * gcc.dg/graphite/scop-{0-20}.c: Ditto.
4278 * gcc.dg/graphite/scop-matmult.c: Ditto.
c6bb733d 4279
42802009-05-08 Li Feng <nemokingdom@gmail.com>
4281
6c9df8cb 4282 * gcc.dg/graphite/graphite_autopar/graphite_autopar.exp: New.
4283 * gcc.dg/graphite/graphite_autopar/force-parallel-1.c: New.
4284 * gcc.dg/graphite/graphite_autopar/force-parallel-2.c: New.
4285 * gcc.dg/graphite/graphite_autopar/force-parallel-3.c: New.
c6bb733d 4286
42872009-05-07 Tobias Grosser <grosser@fim.uni-passau.de>
4288
4289 * graphite-scop-detection (build_scops_1): Fix little bug introduced
4290 by final cleanup.
4291
42922009-05-07 Tobias Grosser <grosser@fim.uni-passau.de>
4293
4294 * graphite-scop-detection.c (graphite_can_represent_scev): Only
4295 allow integer constant strides.
4296 (graphite_can_represent_expr): Depend on outermost_loop.
4297 (stmt_simple_memref_p, graphite_cannot_represent_loop,
4298 harmful_stmt_in_bb, is_simple_operand, stmt_simple_for_scop_p,
4299 build_scops_1): Same.
4300 (scopdet_basic_block_info): Same and insert layered SCoP
4301 detection.
4302 (try_generate_gimple_bb): Cleanup.
4303 (build_scops): Enable data references.
4304
6c9df8cb 4305 * gcc.dg/graphite/id-5.c: New.
4306 * gcc.dg/graphite/id-9.c: New.
c6bb733d 4307 * tree-chrec.c (evolution_function_right_is_integer_cst): New.
4308 * tree-chrec.h (evolution_function_right_is_integer_cst): New.
4309
43102009-05-06 Tobias Grosser <grosser@fim.uni-passau.de>
4311
4312 * sese.c (expand_scalar_variables_ssa_name): Only build expressions,
4313 that we have not yet built for this SCoP.
4314
43152009-05-06 Tobias Grosser <grosser@fim.uni-passau.de>
4316
4317 * sese.c (expand_scalar_variables_expr): Fix expand_scalar_variables
4318 for complex numbers.
4319
43202009-05-06 Tobias Grosser <grosser@fim.uni-passau.de>
4321
4322 * graphite-ppl.c: Fix build if cloog is not available.
4323
43242009-05-04 Li Feng <nemokingdom@gmail.com>
4325
4326 * tree-parloops.c (loop_parallel_p): Remove construction of
4327 NITER and REDUCTION_LIST.
4328 (try_get_loop_niter): New.
4329 (try_create_reduction_list): New.
4330 (parallelize_loops): Bypass the failed checkings in autopar
4331 when can_be_parallel in loop structure is set to true.
4332
43332009-05-01 Tobias Grosser <grosser@fim.uni-passau.de>
4334
6c9df8cb 4335 * gcc.dg/graphite/id-6.c: Update testcase.
4336 * gcc.dg/graphite/scop-3.c: Dito.
c6bb733d 4337
43382009-05-01 Tobias Grosser <grosser@fim.uni-passau.de>
4339
4340 * graphite-scop-detection.c (stmt_simple_for_scop_p):
4341 Enable EQ_EXPR and NE_EXPR again.
4342
43432009-04-30 Tobias Grosser <grosser@fim.uni-passau.de>
4344
4345 * graphite-scop-detection.c (graphite_can_represent_scev):
4346 Add check if scev is affine multivariate.
4347 (harmful_stmt_in_bb): Check if we can represent the conditions.
4348 (scopdet_basic_block_info (basic_block bb, VEC): Pass the loop to
4349 harmful_stmt_in_bb.
6c9df8cb 4350 * gcc.dg/graphite/id-7.c: New.
c6bb733d 4351
43522009-04-30 Tobias Grosser <grosser@fim.uni-passau.de>
4353
4354 * graphite-sese-to-poly.c (bb_contains_non_iv_scalar_phi_nodes):
4355 Check all bbs in region, not only the bbs that are represented in
4356 GRAPHITE.
4357 (build_poly_scop): Add newline.
6c9df8cb 4358 * gcc.dg/graphite/id-8.c: New.
c6bb733d 4359
43602009-04-30 Li Feng <nemokingdom@gmail.com>
4361
4362 * cfgloop.c (alloc_loop): Initialize can_be_parallel to false
4363 when loop initialize.
4364 * cfgloop.h (struct loop): Introduce flag can_be_parallel.
4365 * common.opt: Declare flag_graphite_force_parallel.
4366 * graphite-clast-to-gimple.c (translate_clast): Mark the innermost
4367 loop parallel.
4368 * graphite-poly.c (apply_poly_transforms): Introduce
4369 flag_graphite_force_parallel.
4370 * tree-ssa-loop.c (gate_graphite_transforms): ditto.
4371 * toplev.c (process_options): ditto and replace a not correctly
4372 encoded space.
4373
43742009-04-30 Li Feng <nemokingdom@gmail.com>
4375
4376 * graphite-clast-to-gimple.c (loop_iv_stack_patch_for_consts):
4377 Change the call of gbb_loop_at_index and/or gbb_loop_index due
4378 to the redefinition.
4379 (compute_cloog_iv_types_1): ditto.
4380 (build_iv_mapping): ditto.
4381 * graphite-sese-to-poly.c (new_gimple_bb): Remove GBB_LOOPS related
4382 initialization.
4383 (free_gimple_bb): Removed GBB_LOOPS related free part.
4384 (build_bb_loops): Removed.
4385 * sese.h (struct gimple_bb): Removed loops.
4386 (GBB_LOOPS): Removed.
4387 (gbb_loop_at_index): Instead of using GBB_LOOPS, we use sese instead.
4388 (gbb_loop_index): ditto.
4389
43902009-04-24 Tobias Grosser <grosser@fim.uni-passau.de>
4391
4392 * graphite-scop-detection.c (graphite_can_represent_scev): Do not
4393 allow non constant strides.
6c9df8cb 4394 * gcc.dg/graphite/scop-20.c: New.
c6bb733d 4395
43962009-04-24 Sebastian Pop <sebastian.pop@amd.com>
4397
4398 * graphite-scop-detection.c (dot_all_scops): Fix system call
4399 return value warning.
4400 (dot_scop): Same.
4401
44022009-04-24 Sebastian Pop <sebastian.pop@amd.com>
4403
6c9df8cb 4404 * gcc.dg/graphite/id-6.c: Fix pattern.
4405 * gcc.dg/graphite/scop-3.c: Same.
c6bb733d 4406
44072009-04-24 Sebastian Pop <sebastian.pop@amd.com>
4408
4409 * graphite-poly.c (map_into_dep_poly, map_dr_into_dep_poly,
4410 build_pairwise_constraint, dr_equality_constraints,
4411 build_pairwise_scheduling_equality,
4412 build_pairwise_scheduling_inequality, lexicographically_gt_p,
4413 build_lexicographically_gt_constraint, dependence_polyhedron,
4414 graphite_legal_transform_dr, graphite_legal_transform_bb,
4415 graphite_legal_transform): New.
4416 * graphite-poly.h (graphite_legal_transform): Declared.
4417 * graphite-sese-to-poly.c (build_poly_scop): Call to
4418 graphite_legal_transform is disabled for the moment.
4419
44202009-04-24 Sebastian Pop <sebastian.pop@amd.com>
4421
4422 * graphite-poly.h (pbb_nb_scattering_dims): New.
4423 (pbb_nb_scattering): Use it.
4424
44252009-04-24 Sebastian Pop <sebastian.pop@amd.com>
4426
4427 * graphite-ppl.c (ppl_insert_dimensions_pointset): Add
4428 Pointset_Powerset version of ppl_insert_dimensions.
4429 * graphite-ppl.h (ppl_insert_dimensions_pointset): Declared.
4430
44312009-04-24 Sebastian Pop <sebastian.pop@amd.com>
4432
4433 * graphite-ppl.c (ppl_insert_dimensions): Fix formatting.
4434
44352009-04-24 Sebastian Pop <sebastian.pop@amd.com>
4436
4437 * graphite-poly.h: Fix comment.
4438
44392009-04-24 Sebastian Pop <sebastian.pop@amd.com>
4440
4441 * graphite-sese-to-poly.c (build_poly_dr): Fix data ref multiplier.
4442
44432009-04-24 Tobias Grosser <grosser@fim.uni-passau.de>
4444
4445 * sese.c (expand_scalar_variables_stmt): Only iterate over the old
4446 statements.
4447
44482009-04-24 Tobias Grosser <grosser@fim.uni-passau.de>
4449
4450 * graphite-sese-to-poly.c (var_used_in_not_loop_header_phi_node): New.
4451 (graphite_stmt_p): Represent bbs necessary to build the phi nodes of
4452 conditions.
4453
44542009-04-20 Sebastian Pop <sebastian.pop@amd.com>
4455
4456 * graphite-scop-detection.c (stmt_simple_for_scop_p): Do not
4457 handle EQ_EXPR and NE_EXPR.
4458
44592009-04-17 Tobias Grosser <grosser@fim.uni-passau.de>
4460
4461 * graphite-poly.h (poly_dr): Fix comment.
4462
44632009-04-09 Sebastian Pop <sebastian.pop@amd.com>
4464 Tobias Grosser <grosser@fim.uni-passau.de>
4465
4466 * graphite-poly.c (new_poly_bb): Do not initialize PBB_DOMAIN
4467 with a zero dimension polyhedron.
4468 (find_scop_parameters): Move the call to scop_set_nb_params here.
4469 (build_loop_iteration_domains): Store in loop->aux the iteration
4470 domain polyhedron.
4471 (build_scop_iteration_domain): Fix PBB_DOMAIN for bbs not surrounded
4472 by any loop in scop.
4473 (build_poly_scop): Do not call scop_set_nb_params.
4474
44752009-04-09 Sebastian Pop <sebastian.pop@amd.com>
4476 Tobias Grosser <grosser@fim.uni-passau.de>
4477
4478 * graphite-sese-to-poly.c (add_condition_to_pbb): Pass code to
4479 add_condition_to_domain not GT_EXPR.
4480
44812009-04-09 Tobias Grosser <grosser@fim.uni-passau.de>
4482
4483 * graphite-ppl.c (debug_ppl_powerset_matrix): New.
4484 * graphite-ppl.h (debug_ppl_powerset_matrix): New.
4485 * graphite-sese-to-poly.c (add_condition_to_pbb): Use
4486 upper_bound_assign to calculate unions.
6c9df8cb 4487 * gcc.dg/graphite/id-6.c: New.
c6bb733d 4488
44892009-04-09 Tobias Grosser <grosser@fim.uni-passau.de>
4490
4491 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Do not
4492 handle abnormal edges.
4493
44942009-04-09 Tobias Grosser <grosser@fim.uni-passau.de>
4495
4496 * graphite-poly.c (new_poly_dr, free_poly_dr): New.
4497 (free_poly_bb): Also free poly_drs.
4498 * graphite-poly.h (new_poly_dr, free_poly_dr): New.
4499 (poly_dr): Polyhedron to Pointset_Powerset.
4500 (pdr_accessp_nb_subscripts): Same.
4501 * graphite-sese-to-poly.c (build_poly_dr): Same. And actually build
4502 poly_drs.
4503
45042009-04-08 Sebastian Pop <sebastian.pop@amd.com>
4505
4506 * graphite-clast-to-gimple.c (initialize_cloog_names): Change cloog
4507 names into more meaningful names.
4508
45092009-04-08 Sebastian Pop <sebastian.pop@amd.com>
4510
6c9df8cb 4511 * gfortran.dg/graphite/interchange-1.c: New.
4512 * gfortran.dg/graphite/interchange-2.c: New.
c6bb733d 4513
45142009-04-08 Sebastian Pop <sebastian.pop@amd.com>
4515
4516 * graphite-clast-to-gimple.c (graphite_loop_normal_form): Do not build
4517 the reduction_list.
4518 * tree-parloops.c (rewrite_phi_with_iv): New.
4519 (rewrite_all_phi_nodes_with_iv): New.
4520 (canonicalize_loop_ivs): Call them.
4521
45222009-04-08 Sebastian Pop <sebastian.pop@amd.com>
4523
4524 * graphite-sese-to-poly.c (try_generate_gimple_bb): Use
4525 graphite_find_data_references_in_stmt.
4526 * tree-data-ref.c (graphite_find_data_references_in_stmt): New.
4527 * tree-data-ref.h (graphite_find_data_references_in_stmt): Declared.
4528
45292009-04-08 Sebastian Pop <sebastian.pop@amd.com>
4530
4531 * sese.c (add_loop_exit_phis): Don't fail on non SSA_NAME renames.
4532
45332009-04-08 Sebastian Pop <sebastian.pop@amd.com>
4534
4535 * graphite-sese-to-poly.c (build_scop_bbs_1): Use bb_in_sese_p
4536 instead of bb_in_region.
4537 (flag_bb_in_region): Same. Renamed flag_bb_in_sese.
4538 (build_sese_conditions): Use flag_bb_in_sese.
4539 * sese.c (register_bb_in_sese): Removed.
4540 (new_sese): Remove initialization of SESE_REGION_BBS.
4541 (free_sese): Do not free SESE_REGION_BBS.
4542 * sese.h (struct sese): Remove field region_basic_blocks.
4543 (SESE_REGION_BBS): Removed.
4544 (bb_in_sese_p): Implement in function of bb_in_region.
4545
45462009-04-08 Sebastian Pop <sebastian.pop@amd.com>
4547
4548 * graphite-scop-detection.c (limit_scops): Deal only with single exit
4549 loops.
4550
45512009-04-08 Tobias Grosser <grosser@fim.uni-passau.de>
4552
4553 * graphite-scop-detection.c (stmt_simple_for_scop_p): Allow NE_EXPR
4554 and EQ_EXPR.
4555 * graphite-sese-to-poly.c (create_linear_expr_from_tree): New.
4556 (add_condition_to_domain): New.
4557 (add_condition_to_pbb): New.
4558 (add_conditions_to_domain): Cleanup and handle of NE_EXPR and EQ_EXPR.
6c9df8cb 4559 * gcc.dg/graphite/scop-3.c: Update number of detected SCoPs.
c6bb733d 4560
45612009-04-08 Tobias Grosser <grosser@fim.uni-passau.de>
4562
4563 * graphite-clast-to-gimple.c (build_cloog_prog): ppl_Polyhedron ->
4564 ppl_Pointset_Powerset.
4565 * graphite-poly.c (new_poly_bb, free_poly_bb): Same.
4566 * graphite-poly.h (poly_bb): poly_bb.domain Same.
4567 (pbb_nb_loops): Same.
4568 * graphite-sese-to-poly.c (build_loop_iteration_domains,
4569 add_conditions_to_domain): Same.
4570 * graphite-ppl.c (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
4571 (ppl_print_polyhedron_matrix): ppl_Polyhedron_t ->
4572 ppl_const_Polyhedron_t.
4573 (ppl_print_powerset_matrix): New.
4574 * graphite-ppl.h (new_Cloog_Domain_from_ppl_Pointset_Powerset,
4575 ppl_print_powerset_matrix): New.
4576 (ppl_print_polyhedron_matrix): Updated.
4577
45782009-04-07 Sebastian Pop <sebastian.pop@amd.com>
4579
4580 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Fix comment.
4581
45822009-04-07 Sebastian Pop <sebastian.pop@amd.com>
4583
4584 * graphite-poly.c (extend_scattering): Fix indenting. Free cstr.
4585 (print_iteration_domains, debug_iteration_domain,
4586 debug_iteration_domains): New.
4587 * graphite-poly.h (print_iteration_domains, debug_iteration_domain,
4588 debug_iteration_domains): Declared.
4589 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Fix
4590 indenting.
4591
45922009-04-03 Tobias Grosser <grosser@fim.uni-passau.de>
4593 Sebastian Pop <sebastian.pop@amd.com>
4594
4595 * graphite-poly.h (print_iteration_domain): New.
4596 * graphite-sese-to-poly.c (add_conditions_to_domain): Fixed bug.
4597 (build_sese_conditions_1, build_sese_conditions_after,
4598 build_sese_conditions_before): New.
4599 (build_sese_conditions): Rewritten.
4600
46012009-04-03 Sebastian Pop <sebastian.pop@amd.com>
4602 Tobias Grosser <grosser@fim.uni-passau.de>
4603
4604 Cleanup of code generation liveouts.
4605 * graphite-clast-to-gimple.c (translate_clast): Use a single
4606 rename_map instead of one per translated statement.
4607 Do not use SESE_LIVEOUT_RENAMES.
4608 (graphite_loop_normal_form): Do not use SESE_REDUCTION_LIST.
4609 (gloog): Do not use SESE_LIVEOUT_RENAMES.
4610 * graphite-scop-detection.c (harmful_stmt_in_bb): Return the close
4611 phi node of a reduction: when a loop contains a reduction used outside
4612 the loop, there should be a scalar close phi node on the exit block.
4613 * sese.c (new_sese): Do not initialize SESE_LIVEOUT,
4614 SESE_LIVEOUT_RENAMES, and SESE_REDUCTION_LIST.
4615 (free_sese): Do not free them.
4616 (sese_build_liveouts_use): Do not use them.
4617 (sese_build_liveouts_bb): Same.
4618 (sese_build_liveouts): Same.
4619 (sese_insert_phis_for_liveouts): Same.
4620 (sese_adjust_phis_for_liveouts): Same. Renamed sese_adjust_liveout_phis.
4621 (defined_in_loop_p): New.
4622 (alive_after_loop): New.
4623 (close_phi_not_yet_inserted_p): New.
4624 (struct alep, alep_p): New.
4625 (add_loop_exit_phis): Remove from the rename_map all the names defined
4626 in the code generated loop.
4627 (insert_loop_close_phis): Traverse the rename_map passed to it.
4628 Don't use SESE_LIVEOUT_RENAMES.
4629 (default_liveout_before_guard): Renamed default_before_guard.
4630 (insert_guard_phis): Do not use SESE_LIVEOUT_RENAMES.
4631 (graphite_copy_stmts_from_block): Do not directly call set_rename.
4632 (register_sese_liveout_renames): Removed.
4633 (copy_bb_and_scalar_dependences): Do not call it.
4634 * sese.h (struct sese): Removed fields: liveout, liveout_renames, and
4635 reduction_list.
4636 (SESE_LIVEOUT): Removed.
4637 (SESE_LIVEOUT_RENAMES): Removed.
4638 (SESE_REDUCTION_LIST): Removed.
4639 (sese_build_liveouts): Removed.
4640 (sese_adjust_phis_for_liveouts): Renamed sese_adjust_liveout_phis.
4641 (insert_loop_close_phis): Pass a htab_t instead of a sese.
4642 (insert_guard_phis): Same.
4643 (rename_map_elt): Declare a VEC of them.
4644 * tree-parloops.c (canonicalize_loop_ivs): reduction_list contains
4645 trees not pointers to trees.
4646
4647 Rewrite in canonical close SSA form:
4648 * graphite-scop-detection.c (contains_only_close_phi_nodes): New.
4649 (limit_scops): Close the scop after the block containing the close phi
4650 nodes.
4651 (canonicalize_loop_closed_ssa): New.
4652 (canonicalize_loop_closed_ssa_form): New.
4653 (build_scops): Call canonicalize_loop_closed_ssa_form.
4654
4655 * graphite-sese-to-poly.c: Fix typos.
4656
46572009-04-03 Sebastian Pop <sebastian.pop@amd.com>
4658
4659 * graphite-poly.c (print_scattering_function, print_pbb_domain):
4660 Extended.
4661 (dump_gbb_conditions, dump_gbb_cases, print_iteration_domain): New.
4662 (print_pbb): Add conditions.
4663
46642009-04-01 Tobias Grosser <grosser@fim.uni-passau.de>
4665 Sebastian Pop <sebastian.pop@amd.com>
4666
4667 * graphite-scop-detection.c (bb_in_sd_region): Use bb_in_region.
4668 * graphite-sese-to-poly.c (all_non_dominated_preds_marked_p): New.
4669 (build_scop_bbs_1): New.
4670 (build_scop_bbs): Rewrite.
4671 * sese.h (bb_in_region): New.
4672
46732009-03-29 Tobias Grosser <grosser@fim.uni-passau.de>
4674
4675 * graphite-poly.c (new_poly_bb, free_poly_bb): Initialize/free
4676 poly_drs vector.
4677 (print_scop): Style.
4678 * graphite-poly.h (poly_bb): Add drs vector.
4679 (PBB_DRS): Add accessor.
4680 * graphite-sese-to-poly.c (build_poly_dr): New.
4681 (build_pbb_drs, build_scop_drs): New.
4682 (build_poly_scop): call build_scop_drs (Disabled at the moment).
4683
46842009-03-29 Tobias Grosser <grosser@fim.uni-passau.de>
4685
4686 * tree-ssa-loop.c: Include forgotten toplev.h
4687
46882009-03-29 Tobias Grosser <grosser@fim.uni-passau.de>
4689
4690 * graphite-poly.c: (apply_poly_transforms): sorry -> gcc_unreachable.
6c9df8cb 4691 * gcc.dg/graphite/pr37883.c: Remove -floop-*
4692 * gcc.dg/graphite/pr37928.c: Same
4693 * gcc.dg/graphite/pr38409.c: Same
4694 * gcc.dg/graphite/pr38498.c: Same
4695 * gcc.dg/graphite/pr38559.c: Same
4696 * gcc.dg/graphite/pr39335.c: Same
4697 * gcc.dg/graphite/pr39335_1.c: Same
4698 * gfortran.dg/graphite/block-2.f: Same
c6bb733d 4699 * tree-ssa-loop.c (gate_graphite_transforms): Always fail if called
4700 with -floop-*.
4701
47022009-03-28 Tobias Grosser <grosser@fim.uni-passau.de>
4703
4704 * graphite-sese-to-poly.c (ref_nb_loops, build_access_matrix_with_af,
4705 build_access_matrix, build_scop_data_accesses): Remove access function
4706 building. (We get a new version soon).
4707 (build_bb_loops, scan_tree_for_params_right_scev): Update.
4708 * sese.h (nb_loops_around_loop_in_sese): Remove.
4709 (sese_loop_depth): Do not use SESE_LOOP_NEST any more.
4710
47112009-03-27 Tobias Grosser <grosser@fim.uni-passau.de>
4712 Sebastian Pop <sebastian.pop@amd.com>
4713
4714 * graphite-scop-detection.c (struct scopdet_info): Rename last
4715 field to exit.
4716 (scopdet_basic_block_info, build_scops_1): Don't use
4717 CDI_POST_DOMINATORS. CDI_POST_DOMINATORS should never be used.
4718
47192009-03-26 Tobias Grosser <grosser@fim.uni-passau.de>
4720 Sebastian Pop <sebastian.pop@amd.com>
4721
4722 * graphite-clast-to-gimple.c (gloog): Call sese_build_liveouts.
4723 * sese.c (sese_build_liveouts_use): Renamed from
4724 sese_build_livein_liveouts_use. Remove liveins.
4725 (sese_build_liveouts_bb): Renamed from sese_build_livein_liveouts_bb.
4726 Call sese_build_liveouts_use.
4727 (sese_build_liveouts): Renamed from sese_build_livein_liveouts.
4728 Call sese_build_liveouts_bb.
4729 (new_sese, free_sese): Remove liveins.
4730 (sese_add_exit_phis_var): Deleted.
4731 (sese_insert_phis_for_liveouts): Call sese_add_exit_phis_edge
4732 directly.
4733 (graphite_copy_stmts_from_block): Remove SESE_NUM_VER.
4734
4735 * sese.h (sese): Remove num_ver and livein.
4736 (SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): Removed.
4737
47382009-03-25 Tobias Grosser <grosser@fim.uni-passau.de>
4739
4740 * graphite-sese-to-poly.c (build_scop_scattering): Fix compile.
4741
47422009-03-25 Tobias Grosser <grosser@fim.uni-passau.de>
4743
4744 * graphite-sese-to-poly.c (compare_prefix_loops): Removed.
4745 (build_scop_scattering): Do not use compare_prefix_loops any more.
4746 (nb_common_loops): New.
4747
47482009-03-24 Sebastian Pop <sebastian.pop@amd.com>
4749
4750 * sese.c (get_new_name_from_old_name): Renamed get_rename.
4751 (register_old_and_new_names): Renamed set_rename.
4752
47532009-03-24 Sebastian Pop <sebastian.pop@amd.com>
4754
4755 * graphite-scop-detection.h (nb_reductions_in_loop): Revert removal
4756 of the decl from the previous commit.
4757
47582009-03-24 Sebastian Pop <sebastian.pop@amd.com>
4759
4760 * graphite-scop-detection.c (dot_scop): New.
4761 * graphite-scop-detection.h (dot_scop): Declared.
4762
47632009-03-24 Sebastian Pop <sebastian.pop@amd.com>
4764
4765 * graphite-sese-to-poly.c (compare_prefix_loops): Fix compare.
4766
47672009-03-24 Sebastian Pop <sebastian.pop@amd.com>
4768
4769 * cfgloopmanip.c (create_empty_loop_on_edge): Generate the loop exit
4770 condition at the end of the loop.
4771 * graphite.c (graphite_initialize, graphite_finalize): Print to
4772 dump_file the compiled function.
4773 * graphite-clast-to-gimple.c (graphite_create_new_loop): Update use
4774 of create_empty_loop_on_edge.
4775 (translate_clast): Update the code generation of loops for the new
4776 shape of loops.
4777 * cfgloop.h (create_empty_loop_on_edge): Update declaration.
4778
47792009-03-24 Sebastian Pop <sebastian.pop@amd.com>
4780
4781 Reverted the patch from 2009-03-19.
4782
47832009-03-19 Tobias Grosser <grosser@fim.uni-passau.de>
4784
4785 * graphite-poly.c (new_poly_bb, free_poly_bb): Initialize/free
4786 poly_drs vector.
4787 (print_scop): Style.
4788 * graphite-poly.h (poly_bb): Add drs vector.
4789 (PBB_DRS): Add accessor.
4790 * graphite-sese-to-poly.c (ref_nb_loops): Remove.
4791 (build_access_matrix_with_af, build_access_matrix,
4792 build_scop_data_accesses): Delete.
4793 (build_poly_dr): New.
4794 (build_pbb_drs, build_scop_drs): New.
4795 (build_poly_scop): call build_scop_drs.
4796
47972009-03-13 Sebastian Pop <sebastian.pop@amd.com>
4798
4799 * graphite-scop-detection.c (dot_all_scops_1): Close the table
4800 once per basic block.
4801
48022009-03-13 Tobias Grosser <grosser@fim.uni-passau.de>
4803
4804 * graphite-scop-detection.c (graphite_can_represent_scev): New.
4805 (graphite_can_represent_expr): Renamed from loop_affine_expr
4806 and enhanced.
4807 (stmt_simple_for_scop_p): Call graphite_can_represent_expr.
4808 (graphite_cannot_represent_loop): Add scop_entry to parameters.
4809 (scopdet_basic_block_info): Actually define entry_block.
4810 (stmt_simple_memref_p): Moved here from ...
4811
4812 * tree-data-ref.c (stmt_simple_memref_p): here.
4813 * tree-data-ref.h (stmt_simple_memref_p): Removed.
4814
48152009-03-13 Tobias Grosser <grosser@fim.uni-passau.de>
4816
6c9df8cb 4817 * gcc.dg/graphite/id-4.c: New.
c6bb733d 4818
48192009-03-12 Sebastian Pop <sebastian.pop@amd.com>
4820
4821 * sese.c (expand_scalar_variables_expr): Handle tcc_comparison.
4822 (register_old_and_new_names): Update the content of the map.
4823 When there was already a rename_map_elt in the map at that
4824 location, free it.
4825 (copy_bb_and_scalar_dependences): Do rename_variables after
4826 expand_scalar_variables.
4827 * graphite-clast-to-gimple.c (build_iv_mapping): Update the content
4828 of the map. When there was already a rename_map_elt in the
4829 map at that location, free it.
4830 (translate_clast): Pass the rename_map. Do not initialize and free
4831 a rename_map per stmt_user.
4832 (gloog): Initialize and free one rename_map and pass it to
4833 translate_clast.
4834
48352009-03-12 Sebastian Pop <sebastian.pop@amd.com>
4836
4837 * sese.c (expand_scalar_variables_stmt,
4838 expand_scalar_variables_ssa_name): Add a gimple_stmt_iterator
4839 parameter.
4840 (expand_scalar_variables_expr): Handle REALPART_EXPR and IMAGPART_EXPR.
4841 (expand_scalar_variables): Pass to expand_scalar_variables_stmt
4842 the gimple_stmt_iterator of the statement to be expanded.
4843 * graphite-scop-detection.c (is_simple_operand): Do handle
4844 REALPART_EXPR.
4845
48462009-03-11 Tobias Grosser <grosser@fim.uni-passau.de>
4847
4848 * graphite-scop-detection.c (is_simple_operand): Do not handle
4849 REALPART_EXPR.
6c9df8cb 4850 * gcc.dg/graphite/id-2.c: New.
c6bb733d 4851
4852 * graphite-sese-to-poly.c (build_bb_loops,
4853 add_value_to_dim, scan_tree_for_params_right_scev,
4854 scan_tree_for_params_int, scan_tree_for_params, idx_record_params,
4855 find_params_in_bb, build_loop_iteration_domains,
4856 add_conditions_to_domain): Remove subtract.
4857
48582009-03-11 Tobias Grosser <grosser@fim.uni-passau.de>
4859
4860 * graphite-clast-to-gimple.c (loop_iv_stack_patch_for_consts,
4861 build_iv_mapping, compute_cloog_iv_types_1, build_cloog_prog):
4862 pbb_loop_at_index -> gbb_loop_at_index.
4863 * graphite-poly.c (new_poly_bb, new_scop): New accessors.
4864 (debug_loop_vec): Delete.
4865 * graphite-poly.h (poly_bb, scop): Change black_box and region to void
4866 pointer. Move LOOPS to gimple_bb_p and insert nb_params.
4867 (PBB_LOOPS): Removed.
4868 (PBB_BLACK_BOX): Insert cast.
4869 (pbb_set_black_box): New setter.
4870 (pbb_loop_at_index, pbb_loop_index): Removed.
4871 (scop_set_region, scop_set_nb_params): New.
4872 * graphite-sese-to-poly.c (new_gimple_bb, free_gimple_bb,
4873 build_scop_scattering, build_bb_loops): Add GBB_LOOPS.
4874 (build_poly_scop): Use scop_set_nb_params.
4875 * sese.h (gimple_bb): Add LOOPS.
4876 (GBB_LOOPS, gbb_loop_index, gbb_loop_at_index): New.
4877
48782009-03-11 Tobias Grosser <grosser@fim.uni-passau.de>
4879
4880 Revert previous commit.
4881
48822009-03-11 Sebastian Pop <sebastian.pop@amd.com>
4883
4884 * sese.c (expand_scalar_variables_expr): Handle tcc_comparison.
4885 (register_old_and_new_names): Update the content of the map.
4886 When there was already a rename_map_elt in the map at that
4887 location, free it.
4888 (copy_bb_and_scalar_dependences): Do rename_variables after
4889 expand_scalar_variables.
4890 * graphite-clast-to-gimple.c (build_iv_mapping): Update the content
4891 of the map. When there was already a rename_map_elt in the
4892 map at that location, free it.
4893 (translate_clast): Pass the rename_map. Do not initialize and free
4894 a rename_map per stmt_user.
4895 (gloog): Initialize and free one rename_map and pass it to
4896 translate_clast.
4897
48982009-03-11 Tobias Grosser <grosser@fim.uni-passau.de>
4899
4900 Remove forgotten line in revert.
4901
49022009-03-11 Sebastian Pop <sebastian.pop@amd.com>
4903
4904 Revert previous commit.
4905
49062009-03-10 Sebastian Pop <sebastian.pop@amd.com>
4907
4908 * sese.c (register_old_and_new_names): Update the content
4909 of the map. When there was already a rename_map_elt in the
4910 map at that location, free it.
4911 (copy_bb_and_scalar_dependences): Do rename_variables after
4912 expand_scalar_variables.
4913 * graphite-clast-to-gimple.c (build_iv_mapping): Update the content
4914 of the map. When there was already a rename_map_elt in the
4915 map at that location, free it.
4916 (translate_clast): Pass the rename_map. Do not initialize and free
4917 a rename_map per stmt_user.
4918 (gloog): Initialize and free one rename_map and pass it to
4919 translate_clast.
4920
49212009-03-10 Sebastian Pop <sebastian.pop@amd.com>
4922
4923 * graphite-clast-to-gimple.c (translate_clast): context_loop
4924 is never NULL.
4925
49262009-03-10 Tobias Grosser <grosser@fim.uni-passau.de>
4927 Sebastian Pop <sebastian.pop@amd.com>
4928
4929 * graphite-ppl.c (ppl_insert_dimensions): Fix stupid mistake
4930 of the use of ppl_Polyhedron_map_space_dimensions.
4931
49322009-03-10 Tobias Grosser <grosser@fim.uni-passau.de>
4933 Sebastian Pop <sebastian.pop@amd.com>
4934
4935 * graphite-poly.c (unify_scattering_dimensions): Fix types.
4936 * graphite-poly.h (poly_dr_p, poly_dr, POLY_DR_TYPE, PDR_BB,
4937 PDR_TYPE, PDR_ACCESSES, pdr_accessp_nb_subscripts,
4938 pdr_accessp_nb_iterators, pdr_accessp_nb_params,
4939 pdr_accessp_alias_set_dim, pdr_accessp_subscript_dim,
4940 pdr_accessp_iterator_dim, pdr_accessp_param_dim,
4941 pbb_nb_params): New.
4942 (pbb_nb_loops, pbb_nb_scattering, scop_nb_params,
4943 nb_loops_around_pbb): Adapt return types.
4944
49452009-03-09 Tobias Grosser <grosser@fim.uni-passau.de>
4946
4947 * Makefile.in (graphite.o, graphite-sese-to-poly.o,
4948 graphite-clast-to-gimple.o, graphite-data-ref.o,
4949 graphite-scop-detection.o, graphite-poly.o): Add
4950 more headers.
4951
49522009-03-05 Tobias Grosser <grosser@fim.uni-passau.de>
4953
4954 * Makefile.in (graphite.o, graphite-sese-to-poly.o,
4955 graphite-clast-to-gimple.o, graphite-data-ref.o,
4956 graphite-scop-detection.o, graphite-poly.o): Add graphite-poly.h.
4957
49582009-03-04 Tobias Grosser <grosser@fim.uni-passau.de>
4959
6c9df8cb 4960 * gcc.dg/graphite/pr37485.c: Remove -floop-block
4961 * gcc.dg/graphite/pr37828.c: Same.
4962 * gcc.dg/graphite/pr37684.c: Same.
4963 * gcc.dg/graphite/block-0.c: Same.
4964 * gcc.dg/graphite/block-1.c: Same.
4965 * gcc.dg/graphite/block-2.c: Same.
4966 * gcc.dg/graphite/block-3.c: Same.
4967 * gcc.dg/graphite/block-4.c: Same.
4968 * gcc.dg/graphite/block-5.c: Same.
4969 * gcc.dg/graphite/block-6.c: Same.
4970 * gfortran.dg/graphite/pr38083.f90: Same.
4971 * gfortran.dg/graphite/block-1.f90: Same.
4972 * gfortran.dg/graphite/block-3.f90: Same.
4973 * gfortran.dg/graphite/pr37852.f90: Same.
4974 * gfortran.dg/graphite/block-4.f90: Same.
4975 * gfortran.dg/graphite/pr37980.f90: Same.
4976 * gfortran.dg/graphite/pr38953.f90: Same.
4977 * gfortran.dg/graphite/pr37857.f90: Same.
c6bb733d 4978 * opts.c: Remove -floop-block from -O2.
4979 * graphite-poly.c: Fail if -floop-block -floop-interchange or
4980 -floop-strip-mine are used.
4981
49822009-03-04 Tobias Grosser <grosser@fim.uni-passau.de>
4983 Sebastian Pop <sebastian.pop@amd.com>
4984
4985 * graphite-clast-to-gimple.c (build_cloog_prog): Unify scattering
4986 dimensions.
4987 * graphite-poly.c (pbb_compare, graphite_sort_pbbs,
4988 graphite_trans_bb_move_loop, graphite_trans_bb_strip_mine,
4989 strip_mine_profitable_p, is_interchange_valid,
4990 graphite_trans_bb_block, graphite_trans_loop_block,
4991 graphite_trans_scop_block): Temporary removed.
4992 (extend_scattering, unify_scattering_dimensions): New.
4993 (print_scattering_function, graphite_read_transforms):
4994 PBB_SCATTERING -> PBB_TRANSFORMED_SCATTERING.
4995 (graphite_generate_scattering_fns): Removed.
4996 (apply_poly_transforms): Cleanup.
4997 (free_poly_bb): Add PBB_SCATTERING -> PBB_TRANSFORMED_SCATTERING.
4998 (schedule_to_scattering): Moved.
4999 (PBB_STATIC_SCHEDULE, PBB_SCATTERING): Removed.
5000 (PBB_ORIGINAL_SCATTERING, PBB_TRANSFORMED_SCATTERING): New.
5001 (pbb_nb_scattering): New.
5002 (SCOP_ENTRY, SCOP_EXIT, SCOP_REGION_BBS, SCOP_DEP_GRAPH, SCOP_PARAMS,
5003 SCOP_LOOP_NEST, SCOP_PARAMS, SCOP_OLDIVS, SCOP_LIVEOUT_RENAMES):
5004 Removed.
5005 * graphite-ppl.c (ppl_insert_dimensions): Extended and renamed from
5006 shift_poly.
5007 (ppl_strip_loop): PBB_SCATTERING -> PBB_TRANSFORMED_SCATTERING.
5008 * graphite-scop-detection.c (dot_all_scops_1): PBB_SCATTERING
5009 -> PBB_TRANSFORMED_SCATTERING.
5010 * graphite-sese-to-poly.c (build_scop_bbs): Remove region.
5011 (build_pbb_scattering_polyhedron): Moved from schedule_to_scattering.
5012 (build_scop_scattering): Renamed from build_scop_canonical_schedules.
5013 (check_poly_representation): Do not return bool.
5014 (graphite_transform_loops): Reformat.
5015 * sese.h (SESE_ENTRY_BB, SESE_EXIT_BB): New.
5016
50172009-03-04 Sebastian Pop <sebastian.pop@amd.com>
5018
5019 * graphite-poly.c (print_pbb_domain, print_pbb, print_scop,
5020 debug_pbb_domain, debug_pbb, debug_scop): New.
5021 * graphite-poly.h (print_pbb_domain, print_pbb, print_scop,
5022 debug_pbb_domain, debug_pbb, debug_scop): Declared.
5023
50242009-03-02 Sebastian Pop <sebastian.pop@amd.com>
5025
5026 PR middle-end/39335
5027 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
5028 when the type precision of the induction variable should be
5029 larger than the type precision of nit.
5030 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
5031 * graphite-clast-to-gimple.c (graphite_loop_normal_form): Same.
5032 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
5033
6c9df8cb 5034 * gcc.dg/graphite/pr39335_1.c: New.
5035 * gcc.dg/graphite/pr39335.c: New.
c6bb733d 5036
50372009-03-02 Sebastian Pop <sebastian.pop@amd.com>
5038
5039 * tree-parloops.c (canonicalize_loop_ivs): reduction_list contains
5040 SSA_NAMES not struct reduction_info.
5041
50422009-03-02 Sebastian Pop <sebastian.pop@amd.com>
5043
5044 * sese.c (expand_scalar_variables_expr): Handle ADDR_EXPR.
5045
50462009-02-27 Sebastian Pop <sebastian.pop@amd.com>
5047 Tobias Grosser <grosser@fim.uni-passau.de>
5048
5049 * sese.c (new_sese): Initialize SESE_REDUCTION_LIST.
5050 (free_sese): Free SESE_REDUCTION_LIST.
5051 * sese.h (struct sese): Add field reduction_list.
5052 (SESE_REDUCTION_LIST): New.
5053 * graphite-clast-to-gimple.c (graphite_loop_normal_form): Call
5054 canonicalize_loop_ivs on SESE_REDUCTION_LIST.
5055
50562009-02-27 Sebastian Pop <sebastian.pop@amd.com>
5057 Tobias Grosser <grosser@fim.uni-passau.de>
5058
5059 * tree-flow.h (gather_scalar_reductions): Use struct loop * instead
5060 of loop_p.
5061
50622009-02-27 Sebastian Pop <sebastian.pop@amd.com>
5063 Tobias Grosser <grosser@fim.uni-passau.de>
5064
5065 * tree-parloops.c (struct brli, build_reduction_list_info,
5066 analyze_reduction_list, gather_scalar_reductions): New.
5067 (loop_parallel_p): Build a reduction list containing only
5068 PHI_RESULT SSA_NAMEs: call gather_scalar_reductions.
5069 (gen_parallel_loop): Call the analysis analyze_reduction_list.
5070 (parallelize_loops): Now reduction_list is a htab_t of SSA_NAMEs.
5071 * tree-flow.h (gather_scalar_reductions): Declared.
5072
50732009-02-26 Sebastian Pop <sebastian.pop@amd.com>
5074
5075 PR middle-end/39308
5076 * graphite-clast-to-gimple.c (graphite_loop_normal_form): Do not call
5077 number_of_iterations_exit from a gcc_assert.
5078
50792009-02-25 Sebastian Pop <sebastian.pop@amd.com>
5080 Jan Sjodin <jan.sjodin@amd.com>
5081
5082 * output.h (graphite_out_file, graphite_in_file): Declared.
5083 * toplev.c (graphite_out_file, graphite_in_file): New.
5084 (init_asm_output): Initialize graphite_in_file and graphite_out_file.
5085 * graphite-clast-to-gimple.c (build_cloog_prog): Read PBB_SCATTERING.
5086 Don't call schedule_to_scattering.
5087 * common.opt (fgraphite-write, fgraphite-read): New.
5088 * graphite-poly.c: Include output.h.
5089 (print_scattering_function, print_scattering_functions,
5090 debug_scattering_function, debug_scattering_functions,
5091 graphite_write_transforms, graphite_read_transforms,
5092 graphite_generate_scattering_fns): New.
5093 (apply_poly_transforms): Do not apply transform if flag_graphite_read.
5094 Call graphite_generate_scattering_fns, graphite_write_transforms,
5095 graphite_read_transforms.
5096 (new_poly_bb): Initialize PBB_SCATTERING.
5097 (free_poly_bb): Free PBB_SCATTERING.
5098 (schedule_to_scattering): Does not return, initialize PBB_SCATTERING.
5099 * graphite-poly.h (struct poly_bb): Add field scattering.
5100 (PBB_SCATTERING): New.
5101 (print_scattering_function, print_scattering_functions,
5102 debug_scattering_function, debug_scattering_functions): Declared.
5103 * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Matrices contain
5104 GMP values, not integers!
5105 (ppl_print_polyhedron_matrix, debug_ppl_polyhedron_matrix,
5106 ppl_read_polyhedron_matrix): New.
5107 * graphite-ppl.h (ppl_print_polyhedron_matrix,
5108 debug_ppl_polyhedron_matrix,
5109 ppl_read_polyhedron_matrix): Declared.
5110 * Makefile.in (graphite-poly.o): Depends on output.h.
5111
51122009-02-23 Sebastian Pop <sebastian.pop@amd.com>
5113 Tobias Grosser <grosser@fim.uni-passau.de>
5114
5115 Revert this change:
5116 * graphite-scop-detection.c (stmt_simple_for_scop_p): Analyze
5117 scalar evolutions in the scop_entry->loop_father.
5118
51192009-02-23 Sebastian Pop <sebastian.pop@amd.com>
5120 Tobias Grosser <grosser@fim.uni-passau.de>
5121
5122 * graphite.h (ref_nb_loops): Remove declaration.
5123 (struct gimple_bb, gimple_bb_p, GBB_BB, GBB_DATA_REFS, GBB_CONDITIONS,
5124 GBB_CONDITION_CASES, GBB_CLOOG_IV_TYPES, gbb_loop, print_gimple_bb,
5125 debug_gbb): Moved to sese.h.
5126 * sese.h: As said.
5127
51282009-02-23 Sebastian Pop <sebastian.pop@amd.com>
5129 Tobias Grosser <grosser@fim.uni-passau.de>
5130
5131 * graphite-data-ref.[ch]: Disable.
5132
51332009-02-23 Sebastian Pop <sebastian.pop@amd.com>
5134 Tobias Grosser <grosser@fim.uni-passau.de>
5135
5136 * graphite-scop-detection.c (stmt_simple_for_scop_p): Analyze
5137 scalar evolutions in the scop_entry->loop_father.
5138
51392009-02-23 Sebastian Pop <sebastian.pop@amd.com>
5140
5141 * graphite-scop-detection.c (nb_reductions_in_loop): Moved here...
5142 (graphite_cannot_represent_loop_niter): Renamed
5143 graphite_cannot_represent_loop. Call nb_reductions_in_loop.
5144 (limit_scops): build_sese_loop_nests does not return a bool.
5145 * graphite-scop-detection.h (nb_reductions_in_loop): Declared.
5146 * sese.c (nb_reductions_in_loop): ... from here.
5147 (graphite_loop_normal_form): ... from here.
5148 (sese_record_loop): Does not fail, so does not return a bool.
5149 (build_sese_loop_nests): Same.
5150 * sese.h (build_sese_loop_nests): Update declaration.
5151 * graphite-clast-to-gimple.c (graphite_loop_normal_form): Moved here...
5152 (build_graphite_loop_normal_form): New.
5153 (gloog): Call build_graphite_loop_normal_form.
5154 * graphite-sese-to-poly.c (build_poly_scop): Don't fail on
5155 build_sese_loop_nests.
5156
6c9df8cb 5157 * gcc.dg/graphite/id-1.c: New.
c6bb733d 5158
51592009-02-23 Sebastian Pop <sebastian.pop@amd.com>
5160 Tobias Grosser <grosser@fim.uni-passau.de>
5161
5162 * graphite-sese-to-poly.c (scan_tree_for_params): Remove REAL_CST.
5163 The SCoP detection fix is sufficient.
5164
51652009-02-21 Sebastian Pop <sebastian.pop@amd.com>
5166
5167 PR tree-optimization/39260
5168 * graphite-scop-detection.c (harmful_stmt_in_bb): Stop a SCoP when
5169 the basic block contains a condition with a real type.
5170 * graphite-sese-to-poly.c (scan_tree_for_params): Handle REAL_CST.
5171
5172 * gcc.dg/graphite/pr39260.c: New.
5173
51742009-02-21 Sebastian Pop <sebastian.pop@amd.com>
5175
5176 * graphite-poly.c: Inlcude params.h.
5177 (graphite_trans_loop_block): Use PARAM_LOOP_BLOCK_TILE_SIZE for
5178 the size of a tile.
5179 * Makefile.in (graphite-poly.o): Depend on PARAMS_H.
5180 * params.def (PARAM_LOOP_BLOCK_TILE_SIZE): Define.
5181
51822009-02-20 Sebastian Pop <sebastian.pop@amd.com>
5183 Tobias Grosser <grosser@fim.uni-passau.de>
5184
5185 * graphite-scop-detection.c (dot_all_scops_1,
5186 dot_all_scops): Moved here.
5187 * graphite-scop-detection.h (dot_all_scops): Declared here.
5188 * graphite.c (graphite_initialize, graphite_finalize): New.
5189 (graphite_transform_loops): Cleaned up.
5190 * sese.c (debug_oldivs): Moved here.
5191 * graphite-poly.c (graphite_apply_transformations): Renamed
5192 apply_poly_transforms.
5193 (debug_loop_vec): Moved here.
5194 * graphite-sese-to-poly.c (build_bb_loops, build_sese_conditions_1,
5195 scop_contains_non_iv_scalar_phi_nodes, build_sese_conditions,
5196 find_scop_parameters, build_scop_iteration_domain,
5197 add_conditions_to_constraints, build_scop_canonical_schedules,
5198 build_scop_data_accesses): Now static.
5199 (build_poly_scop, check_poly_representation): New.
5200
52012009-02-20 Sebastian Pop <sebastian.pop@amd.com>
5202
5203 * graphite.c (graphite_stmt_p, new_gimple_bb, free_gimple_bb,
5204 remove_gbbs_in_scop, free_scops, try_generate_gimple_bb,
5205 build_scop_bbs, ref_nb_loops, compare_prefix_loops,
5206 build_scop_canonical_schedules, build_bb_loops, add_value_to_dim,
5207 scan_tree_for_params_right_scev, scan_tree_for_params_int,
5208 scan_tree_for_params, struct irp_data, dx_record_params,
5209 find_params_in_bb, find_scop_parameters, gbb_from_bb,
5210 build_loop_iteration_domains, add_conditions_to_domain,
5211 phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes,
5212 scop_contains_non_iv_scalar_phi_nodes, build_sese_conditions_1,
5213 build_sese_conditions, add_conditions_to_constraints,
5214 build_scop_iteration_domain, build_access_matrix_with_af,
5215 build_access_matrix,
5216 build_scop_data_accesses): Moved to graphite-sese-to-poly.c.
5217
5218 * graphite-sese-to-poly.c: New.
5219 * graphite-sese-to-poly.h: New.
5220
5221 * Makefile.in: Add new rule for graphite-sese-to-poly.o.
5222
52232009-02-20 Sebastian Pop <sebastian.pop@amd.com>
5224
5225 * graphite.c: Split graphite code generation to a new file.
5226 (graphite_verify, gmp_cst_to_tree, clast_name_to_gcc,
5227 max_precision_type, clast_to_gcc_expression_red,
5228 clast_to_gcc_expression, gcc_type_for_clast_expr,
5229 gcc_type_for_clast_eq, loop_iv_stack_patch_for_consts,
5230 graphite_translate_clast_equation, graphite_create_guard_cond_expr,
5231 graphite_create_new_guard, clast_get_body_of_loop,
5232 gcc_type_for_cloog_iv, gcc_type_for_iv_of_clast_loop,
5233 graphite_create_new_loop, build_iv_mapping, copy_renames,
5234 translate_clast, find_cloog_iv_in_expr, compute_cloog_iv_types_1,
5235 compute_cloog_iv_types, free_scattering, save_var_name,
5236 initialize_cloog_names, build_scop_context, build_cloog_prog,
5237 set_cloog_options, debug_clast_stmt, scop_to_clast,
5238 print_generated_program, debug_generated_program,
5239 gloog): Moved to graphite-clast-to-gimple.c.
5240
5241 (struct cloog_prog_clast): Moved to graphite-clast-to-gimple.h.
5242
5243 (iv_stack_entry_is_constant, iv_stack_entry_is_iv,
5244 loop_iv_stack_push_iv, loop_iv_stack_insert_constant,
5245 loop_iv_stack_pop, loop_iv_stack_get_iv,
5246 loop_iv_stack_get_iv_from_name, debug_loop_iv_stack,
5247 free_loop_iv_stack, loop_iv_stack_remove_constants,
5248 debug_rename_elt, debug_rename_map_1, debug_rename_map,
5249 rename_map_elt_info, eq_rename_map_elts, debug_ivtype_elt,
5250 debug_ivtype_map_1, debug_ivtype_map, ivtype_map_elt_info,
5251 eq_ivtype_map_elts, sese_add_exit_phis_edge,
5252 sese_add_exit_phis_var, sese_insert_phis_for_liveouts,
5253 get_vdef_before_sese, sese_adjust_vphi,
5254 get_new_name_from_old_name, sese_adjust_phis_for_liveouts,
5255 oldiv_for_loop, rename_variables_in_stmt, is_parameter,
5256 is_iv, expand_scalar_variables_ssa_name,
5257 expand_scalar_variables_expr, expand_scalar_variables_stmt,
5258 expand_scalar_variables, rename_variables, remove_condition,
5259 get_true_edge_from_guard_bb, get_false_edge_from_guard_bb,
5260 add_loop_exit_phis, insert_loop_close_phis, struct igp,
5261 default_liveout_before_guard, add_guard_exit_phis,
5262 insert_guard_phis, register_old_and_new_names,
5263 graphite_copy_stmts_from_block, register_sese_liveout_renames,
5264 copy_bb_and_scalar_dependences, outermost_loop_in_sese,
5265 if_region_set_false_region, create_if_region_on_edge,
5266 move_sese_in_condition): Moved to sese.c.
5267
5268 (nb_loops_around_loop_in_sese, struct ifsese, if_region_entry,
5269 if_region_exit, if_region_get_condition_block,
5270 struct rename_map_elt, new_rename_map_elt, enum iv_stack_entry_kind,
5271 union iv_stack_entry_data_union, struct iv_stack_entry_struct,
5272 iv_stack_entry_p, loop_iv_stack, struct ivtype_map_elt,
5273 ivtype_map_elt, new_ivtype_map_elt,
5274 recompute_all_dominators): Moved to sese.h.
5275
5276 * graphite-clast-to-gimple.c: New.
5277 * graphite-clast-to-gimple.h: New.
5278 * Makefile.in: Add new rule for graphite-clast-to-gimple.o.
5279 * sese.c: Modified as said above.
5280 * sese.h: Same.
5281
52822009-02-20 Sebastian Pop <sebastian.pop@amd.com>
5283
5284 * graphite.c: Split scop detection to a new file.
5285 (enum gbb_type, gbb_type, get_bb_type, struct sd_region_p, sd_region,
5286 move_sd_regions, loop_affine_expr, exclude_component_ref,
5287 is_simple_operand, stmt_simple_for_scop_p, harmful_stmt_in_bb,
5288 graphite_cannot_represent_loop_niter, struct scopdet_info,
5289 scopdet_basic_block_info, build_scops_1, bb_in_sd_region,
5290 find_single_entry_edge, find_single_exit_edge,
5291 create_single_entry_edge, sd_region_without_exit,
5292 create_single_exit_edge, unmark_exit_edges, mark_exit_edges,
5293 create_sese_edges, build_graphite_scops, limit_scops, build_scops):
5294 Moved to graphite-scop-detection.c.
5295
5296 * graphite-scop-detection.c: New.
5297 * graphite-scop-detection.h: New.
5298 * Makefile.in: Add new rule for graphite-scop-detection.o.
5299
5300 * sese.c: Include tree-chrec.h, tree-data-ref.h, and
5301 tree-scalar-evolution.h.
5302 (nb_reductions_in_loop, graphite_loop_normal_form, sese_record_loop,
5303 build_sese_loop_nests): Moved here from graphite.c.
5304 (param_index): Renamed parameter_index_in_region.
5305
53062009-02-18 Tobias Grosser <grosser@fim.uni-passau.de>
5307 Sebastian Pop <sebastian.pop@amd.com>
5308
5309 * gcc.dg/graphite/block-0.c: Expected to fail now.
5310 * gcc.dg/graphite/block-1.c: Same.
5311 * gcc.dg/graphite/block-5.c: Same.
5312 * gcc.dg/graphite/block-6.c: Same.
5313
53142009-02-18 Tobias Grosser <grosser@fim.uni-passau.de>
5315 Sebastian Pop <sebastian.pop@amd.com>
5316
5317 * graphite.h: Separate from graphite_bb_p the polyhedral
5318 representation in poly_bb_p and the GCC specifics in gimple_bb_p.
5319 (struct data_dependence_polyhedron, RDGE_DDP, ddp_p): Moved to
5320 graphite-data-ref.h.
5321 (struct poly_bb, PBB_SCOP, PBB_STATIC_SCHEDULE, PBB_DOMAIN,
5322 PBB_BLACK_BOX, PBB_LOOPS, pbb_nb_loops, pbb_loop_at_index,
5323 pbb_loop_index, struct scop, SCOP_BBS, SCOP_REGION, SCOP_ENTRY,
5324 SCOP_EXIT, SCOP_REGION_BBS, SCOP_DEP_GRAPH, SCOP_PARAMS,
5325 SCOP_LOOP_NEST, SCOP_PARAMS, SCOP_OLDIVS, SCOP_LIVEOUT_RENAMES,
5326 scop_nb_params): Moved to graphite-poly.h.
5327 * graphite-data-ref.c: Same.
5328 * graphite-data-ref.h: New.
5329 * graphite.c: Same.
5330 (pbb_compare, graphite_sort_pbbs, graphite_trans_bb_move_loop,
5331 graphite_trans_bb_strip_mine, strip_mine_profitable_p,
5332 is_interchange_valid, graphite_trans_bb_block,
5333 graphite_trans_loop_block, scop_max_loop_depth,
5334 graphite_trans_scop_block, graphite_apply_transformations,
5335 new_poly_bb, free_poly_bb, new_scop, free_scop): Moved to
5336 graphite-poly.c.
5337 * graphite-poly.h: New.
5338 * graphite-poly.c: New.
5339 * Makefile.in (OBJS-common): Add graphite-poly.o.
5340 (graphite-poly.o): New rule.
5341 * tree-data-ref.h (struct data_reference): Remove unused scop field.
5342 (DR_SCOP): Removed.
5343
53442009-02-18 Sebastian Pop <sebastian.pop@amd.com>
5345 Tobias Grosser <grosser@fim.uni-passau.de>
5346
5347 * graphite.c: Replace gb -> gbb.
5348 * graphite.h: Same.
5349 * graphite-data-ref.c: Same.
5350
53512009-02-18 Sebastian Pop <sebastian.pop@amd.com>
5352 Tobias Grosser <grosser@fim.uni-passau.de>
5353
5354 * Makefile.in (OBJS-commmon): Add sese.o.
5355 (sese.o): New.
5356 (graphite.o): Add sese.h.
5357 * graphite.c (bb_in_ss_p, loop_in_sese_p,
5358 sese_build_livein_liveouts_use, sese_build_livein_liveouts_bb,
5359 sese_build_livein_liveouts, register_bb_in_sese, new_sese, free_sese):
5360 Move to sese.
5361 (block_before_scop): Add missing return.
5362 (new_scop, free_scop): Remove SESE data structures.
5363 (scop_record_loop, scan_tree_for_params, find_params_in_bb,
5364 find_scop_parameters, build_loop_iteration_domains,
5365 add_conditions_to_domain, register_scop_liveout_renames,
5366 copy_bb_and_scalar_dependences): Scop -> SESE.
5367
5368 (add_conditions_to_domain): SCoP -> SESE and remove check
5369 (scop_contains_non_iv_scalar_phi_nodes): New.
5370 (build_scop_conditions_1, build_scop_conditions): Remove check for
5371 non iv scalar phi nodes.
5372 (print_scop_statistics): New.
5373 (graphite_transform_loops): Cleanup.
5374
5375 * graphite.h: Move to sese & cleanup.
5376 * sese.c: New.
5377 * sese.h: New.
5378
53792009-02-16 Sebastian Pop <sebastian.pop@amd.com>
5380 Tobias Grosser <grosser@fim.uni-passau.de>
5381
5382 * graphite.c (build_scop_conditions_1): Conditions are only
5383 at the end of a basic block.
5384
53852009-02-16 Sebastian Pop <sebastian.pop@amd.com>
5386 Tobias Grosser <grosser@fim.uni-passau>
5387
5388 * graphite.h (struct graphite_bb): Remove compressed_alpha_matrix
5389 field.
5390 (GBB_ALPHA): Removed.
5391
53922009-02-16 Sebastian Pop <sebastian.pop@amd.com>
5393 Tobias Grosser <grosser@fim.uni-passau.de>
5394
5395 * graphite-data-ref.c (graphite_test_dependence): Don't use
5396 GBB_DYNAMIC_SCHEDULE.
5397 * graphite.c (new_graphite_bb): Same.
5398 (free_graphite_bb): Same.
5399 (build_scop_dynamic_schedules): Removed.
5400 (graphite_transform_loops): Don't call it.
5401 * graphite.h (struct graphite_bb): Remove dynamic_schedule field.
5402 (GBB_DYNAMIC_SCHEDULE): Removed.
5403
54042009-02-16 Sebastian Pop <sebastian.pop@amd.com>
5405 Tobias Grosser <grosser@fim.uni-passau.de>
5406
5407 * graphite.c (schedule_to_scattering): Don't use CloogMatrix.
5408 (print_graphite_bb): Same.
5409 (build_cloog_prog): Same.
5410
54112009-02-16 Sebastian Pop <sebastian.pop@amd.com>
5412 Tobias Grosser <grosser@fim.uni-passau.de>
5413
5414 * graphite.c (build_cloog_prog): Don't use CloogMatrix.
5415
54162009-02-16 Sebastian Pop <sebastian.pop@amd.com>
5417 Tobias Grosser <grosser@fim.uni-passau.de>
5418
5419 * graphite.c (build_scop_context): Don't use CloogMatrix.
5420 * graphite-ppl.c (new_Cloog_Domain_from_ppl_Polyhedron): New.
5421 * graphite-ppl.h (new_Cloog_Domain_from_ppl_Polyhedron): Declared.
5422
54232009-02-16 Sebastian Pop <sebastian.pop@amd.com>
5424 Tobias Grosser <grosser@fim.uni-passau.de>
5425
5426 * graphite.h (struct scop): Move params, old_ivs, loops, loop_nest,
5427 liveout_renames, add_params fields...
5428 (struct sese): ... here.
5429 (SESE_PARAMS, SESE_LOOPS, SESE_LOOP_NEST, SESE_ADD_PARAMS,
5430 SESE_PARAMS, SESE_OLDIVS, SESE_LIVEOUT_RENAMES): New.
5431
54322009-02-16 Sebastian Pop <sebastian.pop@amd.com>
5433 Tobias Grosser <grosser@fim.uni-passau.de>
5434
5435 * graphite.c (print_scop): Do not print the CLooG program.
5436 (new_scop, free_scop, initialize_cloog_names, build_scop_context,
5437 build_cloog_prog, gloog): Don't use SCOP_PROG.
5438 (find_transform): Renamed scop_to_clast.
5439 (print_generated_program, debug_generated_program): New.
5440 (graphite_transform_loops): Adapt to new interface.
5441 * graphite.h (struct scop): Remove program field.
5442 (SCOP_PROG): Removed.
5443 (print_generated_program, debug_generated_program): Declared.
5444
54452009-02-16 Sebastian Pop <sebastian.pop@amd.com>
5446
5447 * graphite-data-ref.c (schedule_precedes_p, schedule_same_p): New.
5448 (statement_precedes_p): Use schedule_same_p and schedule_precedes_p.
5449 * graphite.c (gbb_compare, schedule_to_scattering, print_graphite_bb,
5450 free_graphite_bb, build_scop_canonical_schedules,
5451 graphite_trans_bb_strip_mine, graphite_trans_scop_block): Static
5452 schedules are now represented using a ppl_Linear_Expression_t.
5453 * graphite.h (struct graphite_bb): Same.
5454 * graphite-ppl.c (ppl_lexico_compare_linear_expressions): New.
5455 * graphite-ppl.h (ppl_lexico_compare_linear_expressions): Declared.
5456
54572009-02-15 Sebastian Pop <sebastian.pop@amd.com>
5458
5459 * graphite.c: Free local memory.
5460 * graphite-ppl.c: Same.
5461
54622009-02-15 Sebastian Pop <sebastian.pop@amd.com>
5463
5464 * graphite.c (const_column_index, get_first_matching_sign_row_index,
5465 get_lower_bound_row, get_upper_bound_row, copy_constraint,
5466 swap_constraint_variables, scale_constraint_variable): Removed.
5467 (graphite_trans_bb_strip_mine): Remove pong.
5468 * graphite-ppl.c: Include missing header files.
5469 (set_inhomogeneous, set_coef, shift_poly, ppl_strip_loop): New.
5470 * graphite-ppl.h (ppl_strip_loop): Declared.
5471 * Makefile.in (graphite-ppl.o): Adjust dependences.
5472
54732009-02-14 Sebastian Pop <sebastian.pop@amd.com>
5474
5475 * graphite.c (build_loop_iteration_domains): Remove ping pong.
5476 (build_scop_iteration_domain): Same.
5477
54782009-02-13 Sebastian Pop <sebastian.pop@amd.com>
5479
5480 * graphite.c (scan_tree_for_params, add_conditions_to_domain): Remove
5481 ping pong.
5482 (add_value_to_dim, scan_tree_for_params_right_scev,
5483 scan_tree_for_params_int): New.
5484 * graphite-ppl.c (oppose_constraint): New.
5485 (insert_constraint_into_matrix): Implement missing cases.
5486 * graphite-ppl.h (insert_constraint_into_matrix): Declared.
5487
54882009-02-13 Sebastian Pop <sebastian.pop@amd.com>
5489
5490 * graphite.c (graphite_trans_bb_move_loop): Remove ping pong,
5491 use ppl_move_dimension.
5492
54932009-02-12 Sebastian Pop <sebastian.pop@amd.com>
5494
5495 * graphite-data-ref.c: Domains are now ppl_Polyhedra_t.
5496 * graphite.c: Same.
5497 * graphite.h: Same.
5498 * graphite-ppl.c: Same.
5499 * graphite-ppl.h: Same.
5500
55012009-02-12 Sebastian Pop <sebastian.pop@amd.com>
5502
5503 Revert last 3 commits.
5504
55052009-02-10 Sebastian Pop <sebastian.pop@amd.com>
5506
5507 * graphite.c (scan_tree_for_params, add_conditions_to_domain): Remove
5508 ping pong.
5509 (add_value_to_dim, scan_tree_for_params_right_scev,
5510 scan_tree_for_params_int): New.
5511 * graphite-ppl.c (oppose_constraint): New.
5512 (insert_constraint_into_matrix): Implement missing cases.
5513 * graphite-ppl.h (insert_constraint_into_matrix): Declared.
5514
55152009-02-10 Sebastian Pop <sebastian.pop@amd.com>
5516
5517 * graphite.c (graphite_trans_bb_move_loop): Remove unused variables.
5518
55192009-02-10 Sebastian Pop <sebastian.pop@amd.com>
5520 Tobias Grosser <grosser@fim.uni-passau.de>
5521
5522 * graphite.c (graphite_trans_bb_move_loop): Remove ping pong,
5523 use ppl_move_dimension.
5524 * graphite-ppl.c (ppl_move_dimension): New.
5525 * graphite-ppl.h (ppl_move_dimension): Declared.
5526
55272009-02-10 Sebastian Pop <sebastian.pop@amd.com>
5528
5529 * graphite.c: Do not include cloog/cloog.h.
5530 (print_graphite_bb): Remove ping pong, call PPL print function.
5531
55322009-02-10 Tobias Grosser <grosser@fim.uni-passau.de>
5533
5534 * Makefile.in (OBJS-common): Add graphite-ppl.o.
5535 (graphite.o): Add dependence on graphite-ppl.h.
5536 (graphite-ppl.o): New.
5537 (graphite-data-ref.c): Ping pong between PPL data structures
5538 and matrices.
5539 * graphite-ppl.c: New.
5540 * graphite-ppl.h: New.
5541 * graphite.c: Include graphite-ppl.h.
5542 (print_graphite_bb, add_conditions_to_domain, build_cloog_prog,
5543 graphite_trans_bb_move_loop, graphite_trans_bb_strip_mine):
5544 Ping pong between PPL data structures and matrices.
5545 (new_graphite_bb): Create a PPL constraint system.
5546 Call ppl_delete_Constraint_System instead of cloog_matrix_free.
5547 (build_loop_iteration_domains): Use PPL functions.
5548 * graphite.h: Include graphite-ppl.h. Fix comments.
5549 (graphite_bb): Use a ppl_Constraint_System_t instead of
5550 CloogMatrix for representing the domain.
5551 (scop): Remove static_schedule.
5552 (gbb_nb_loops): Ping pong between PPL data structures and matrices.
5553
55542009-02-06 Sebastian Pop <sebastian.pop@amd.com>
5555
5556 * graphite.c: Fix some comments.
5557
55582009-02-05 Sebastian Pop <sebastian.pop@amd.com>
5559
5560 PR middle-end/38953
5561 * graphite.c (if_region_set_false_region): After moving a region
5562 in the false branch of a condition, remove the empty dummy
5563 basic block.
5564 (gloog): Remove wrong fix for PR38953.
5565
55662009-02-03 Tobias Grosser <grosser@fim.uni-passau.de>
5567
5568 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
5569 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
5570 register_bb_in_sese, new_sese, free_sese): Moved.
5571 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
5572 outermost_loop_in_scop, build_scop_iteration_domain,
5573 expand_scalar_variables_ssa_name, get_vdef_before_scop,
5574 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
5575 Use loop_in_sese_p instead of loop_in_scop_p.
5576 (new_graphite_bb, new_scop, gloog): Do not initialize SCOP_BBS_B.
5577 (free_scop): Do not free SCOP_BBS_B.
5578 (nb_loops_around_loop_in_scop, nb_loops_around_gb,
5579 ref_nb_loops): Moved here...
5580 * graphite.h (ref_nb_loops): ... from here.
5581 (struct scop): Remove bbs_b bitmap.
5582 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
6c9df8cb 5583 * gcc.dg/graphite/scop-19.c: New
c6bb733d 5584
55852009-02-03 Tobias Grosser <grosser@fim.uni-passau.de>
5586
5587 * graphite.c (scopdet_basic_block_info): Fix bug in scop
5588 detection.
5589
55902009-01-30 Tobias Grosser <grosser@fim.uni-passau.de>
5591
5592 * graphite.c (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
5593 eq_loop_to_cloog_loop): Remove.
5594 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP.
5595 * graphite.h (struct scop): Remove loop2cloog_loop.
5596 (loop_domain_dim, loop_iteration_vector_dim): Remove.
5597
55982009-01-30 Tobias Grosser <grosser@fim.uni-passau.de>
5599
5600 * opts.c (decode_options): Only add graphite options to O2
5601 if we compile with graphite enabled.
5602
56032009-01-26 Sebastian Pop <sebastian.pop@amd.com>
5604
5605 * Merge from mainline (r143163:143684).
5606
56072009-01-26 Sebastian Pop <sebastian.pop@amd.com>
5608
5609 * graphite.c (debug_value): Removed.
5610 * graphite.h (debug_value): Removed.
5611
56122009-01-23 Sebastian Pop <sebastian.pop@amd.com>
5613
5614 * passes.c (init_optimization_passes): Do not call pass_copy_prop
5615 after graphite: pass_copy_prop does not maintain a proper loop closed
5616 SSA form. pass_copy_prop should be fixed.
5617
56182009-01-23 Sebastian Pop <sebastian.pop@amd.com>
5619
5620 * graphite.c (scop_adjust_phis_for_liveouts): Fix warning.
5621
56222009-01-23 Sebastian Pop <sebastian.pop@amd.com>
5623
5624 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
5625 (gloog): Split the exit of the scop when the scop exit is a loop exit.
5626 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
5627 changed the CFG.
5628
56292009-01-20 Sebastian Pop <sebastian.pop@amd.com>
5630
5631 * graphite.c (gloog): Return true when code gen succeeded.
5632 (graphite_transform_loops): Do not call cleanup_tree_cfg if
5633 the code of the function did not changed. After cleanup_tree_cfg
5634 call rewrite_into_loop_closed_ssa to maintain the loop closed ssa
5635 form.
5636
56372009-01-19 Sebastian Pop <sebastian.pop@amd.com>
5638
5639 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
5640 gimple_call_lhs is NULL.
5641
56422009-01-16 Sebastian Pop <sebastian.pop@amd.com>
5643 Tobias Grosser <tobi.grosser@amd.com>
5644
5645 * graphite.c (graphite_trans_scop_block): Do not block single
5646 nested loops.
5647
56482009-01-15 Sebastian Pop <sebastian.pop@amd.com>
5649 Tobias Grosser <tobi.grosser@amd.com>
5650
5651 * graphite.c (build_scop_canonical_schedules): Start schedules at
5652 zero.
5653
56542009-01-15 Sebastian Pop <sebastian.pop@amd.com>
5655 Tobias Grosser <tobi.grosser@amd.com>
5656
5657 * graphite.c (compare_prefix_loops): New.
5658 (build_scop_canonical_schedules): Rewritten.
5659 (graphite_transform_loops): Move build_scop_canonical_schedules
5660 after build_scop_iteration_domain.
5661
56622009-01-14 Sebastian Pop <sebastian.pop@amd.com>
5663 Tobias Grosser <tobi.grosser@amd.com>
5664
5665 * graphite.c (add_conditions_to_domain): Add the loops to
5666 the dimension of the iteration domain. Do copy the domain
5667 only when it exists.
5668 (build_scop_conditions_1): Do not call add_conditions_to_domain.
5669 (add_conditions_to_constraints): New.
5670 (can_generate_code_stmt, can_generate_code): Removed.
5671 (gloog): Do not call can_generate_code.
5672 (graphite_transform_loops): Call add_conditions_to_constraints
5673 after building the iteration domain.
5674
56752009-01-14 Sebastian Pop <sebastian.pop@amd.com>
5676 Tobias Grosser <tobi.grosser@amd.com>
5677 Jan Sjodin <jan.sjodin@amd.com>
5678
5679 * graphite.c (scan_tree_for_params): On substractions negate
5680 all the coefficients of the term.
5681 (clast_to_gcc_expression_red): New. Handle reduction expressions
5682 of more than two operands.
5683 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
5684 (get_vdef_before_scop): Handle also the case of default definitions.
5685
56862009-01-14 Sebastian Pop <sebastian.pop@amd.com>
5687
5688 PR middle-end/38431
5689 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
5690 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
5691 (gloog): Do not call cleanup_tree_cfg.
5692 (graphite_transform_loops): Call cleanup_tree_cfg after all
5693 scops have been code generated.
5694
56952009-01-13 Sebastian Pop <sebastian.pop@amd.com>
5696
5697 * passes.c (init_optimization_passes): Schedule after
5698 graphite transforms pass_copy_prop, pass_dce_loop and pass_lim.
5699
57002009-01-13 Sebastian Pop <sebastian.pop@amd.com>
5701
5702 * graphite.c (expand_scalar_variables_stmt): Do not pass loop_p.
5703 Fix comment.
5704 (expand_scalar_variables_ssa_name): Do not pass loop_p. Fix comment.
5705 Set the type of an expression to the type of its assign statement.
5706 (expand_scalar_variables_expr): Do not pass loop_p.
5707 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
5708 (copy_bb_and_scalar_dependences): Do not pass loop_p.
5709 (translate_clast): Update call to copy_bb_and_scalar_dependences.
5710
57112009-01-11 Sebastian Pop <sebastian.pop@amd.com>
5712
5713 * graphite.c (expand_scalar_variables_ssa_name): Set the type of
5714 an expression to the gimple_expr_type of its assign statement.
5715 (expand_scalar_variables_expr): Stop recursion on tcc_constant
5716 or tcc_declaration.
5717
57182009-01-11 Sebastian Pop <sebastian.pop@amd.com>
5719
5720 PR tree-optimization/38786
6c9df8cb 5721 * gcc.dg/graphite/pr38786.c: New.
c6bb733d 5722 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
5723 the SSA_NAME case of expand_scalar_variables_expr.
5724 (expand_scalar_variables_expr): Also gather the scalar computation
5725 used to index the memory access.
5726 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
5727 the gimple_stmt_iterator where it inserts new code.
5728
57292009-01-10 Sebastian Pop <sebastian.pop@amd.com>
5730
6c9df8cb 5731 * gcc.dg/graphite/block-3.c: Fix compile error on 32bit.
c6bb733d 5732
57332009-01-10 Sebastian Pop <sebastian.pop@amd.com>
5734
5735 * opts.c (decode_options): Enable flag_graphite_identity and
5736 flag_loop_block in -O2 and above.
5737
57382009-01-08 Sebastian Pop <sebastian.pop@amd.com>
5739
5740 * libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.class:
5741 Fix merge problem: replace with the file from trunk.
5742
57432009-01-08 Sebastian Pop <sebastian.pop@amd.com>
5744
5745 * Merge from mainline (r141727:143163).
5746
57472009-01-07 Sebastian Pop <sebastian.pop@amd.com>
5748 Jan Sjodin <jan.sjodin@amd.com>
5749
5750 PR tree-optimization/38559
6c9df8cb 5751 * gcc.dg/graphite/pr38559.c: New.
c6bb733d 5752
5753 * graphite.c (debug_value, copy_constraint,
5754 swap_constraint_variables, scale_constraint_variable, ): New.
5755 (get_lower_bound, get_upper_bound): Removed.
5756 (graphite_trans_bb_strip_mine): Clean up this code that works
5757 only for constant number of iterations. Fully copy upper and
5758 lower bound constraints, not only the constant part of them.
5759 * graphite.h (debug_value): Declared.
5760
57612009-01-06 Jan Sjodin <jan.sjodin@amd.com>
5762
5763 PR tree-optimization/38492
5764 PR tree-optimization/38498
5765 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
5766 * tree-chrec.h (scev_is_linear_expression): Declared.
5767 * graphite.c (graphite_cannot_represent_loop_niter): New.
5768 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
5769 (graphite_loop_normal_form): Use gcc_assert.
5770 (scan_tree_for_params): Use CASE_CONVERT.
5771 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
5772 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
5773 Use gcc_assert. Discard scops that contain unhandled cases.
5774 (build_scop_conditions): Return a boolean status for unhandled cases.
5775 (strip_mine_profitable_p): Print the loop number, not its depth.
5776 (is_interchange_valid): Pass the depth of the loop nest, don't
5777 recompute it wrongly.
5778 (graphite_trans_bb_block): Same.
5779 (graphite_trans_bb_block): Print tentative of loop blocking.
5780 (graphite_trans_scop_block): Do not print that the loop has been
5781 blocked.
5782 (graphite_transform_loops): Do not handle scops that contain condition
5783 scalar phi nodes.
5784
6c9df8cb 5785 * gcc.dg/graphite/pr38500.c: Fixed warning as committed
c6bb733d 5786 in trunk.
6c9df8cb 5787 * gcc.dg/graphite/block-0.c: Update test.
5788 * gcc.dg/graphite/block-1.c: Same.
5789 * gcc.dg/graphite/block-2.c: Remove xfail and test for
c6bb733d 5790 blocking.
6c9df8cb 5791 * gcc.dg/graphite/block-4.c: Remove test for strip mine.
5792 * gcc.dg/graphite/block-3.c: New.
5793 * gcc.dg/graphite/pr38498.c: New.
c6bb733d 5794
57952008-12-22 Harsha Jagasia <harsha.jagasia@amd.com>
5796
5797 PR tree-optimization/38510
5798 * gcc.dg/graphite/pr38510.c: New.
5799 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
5800 (translate_clast): Call recompute_all_dominators before
5801 graphite_verify.
5802 (gloog): Call recompute_all_dominators before graphite_verify.
5803
58042008-12-12 Sebastian Pop <sebastian.pop@amd.com>
5805
5806 PR tree-optimization/38492
5807 * graphite.c (rename_map_elt, debug_rename_elt,
5808 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
5809 rename_map_elt_info, eq_rename_map_elts,
5810 get_new_name_from_old_name, bb_in_sese_p): Moved around.
5811 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
5812 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
5813 (sese_build_livein_liveouts): New.
5814 (new_sese, free_sese): New.
5815 (new_scop): Call new_sese.
5816 (free_scop): Call free_sese.
5817 (rename_variables_from_edge, rename_phis_end_scop): Removed.
5818 (register_old_new_names): Renamed register_old_and_new_names.
5819 (register_scop_liveout_renames, add_loop_exit_phis,
5820 insert_loop_close_phis, struct igp,
5821 default_liveout_before_guard, add_guard_exit_phis,
5822 insert_guard_phis, copy_renames): New.
5823 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
5824 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
5825 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
5826 (scop_adjust_phis_for_liveouts): New.
5827 (gloog): Call scop_adjust_phis_for_liveouts.
5828
5829 * graphite.h (struct sese): Documented. Added fields liveout,
5830 num_ver and livein.
5831 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
5832 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
5833 (struct scop): Added field liveout_renames.
5834 (SCOP_LIVEOUT_RENAMES): New.
5835
58362008-12-11 Sebastian Pop <sebastian.pop@amd.com>
5837
5838 PR tree-optimization/38409
5839 * gcc.dg/graphite/pr38409.c: New.
5840 * graphite.c (nb_reductions_in_loop): Use simple_iv.
5841
58422008-12-11 Sebastian Pop <sebastian.pop@amd.com>
5843
5844 * graphite.c (gcc_type_for_cloog_iv): By default return
5845 integer_type_node.
5846 (graphite_create_new_loop): Don't fold_convert the already
5847 fold_convert-ed expression.
5848
58492008-12-11 Harsha Jagasia <harsha.jagasia@amd.com>
5850
5851 PR tree-optimization/38446
5852 * gcc.dg/graphite/pr38446.c: New.
5853 * graphite.c (register_bb_in_sese): New.
5854 (bb_in_sese_p): Check if bb belongs to sese region by explicitly
5855 looking at the bbs in the region.
5856 * graphite.h (sese): Add region_basic_blocks pointer set to
5857 structure and initialize at the time of defining new scop.
5858
58592008-12-11 Tobias Grosser <grosser@fim.uni-passau.de>
5860
5861 * graphite.c (new_graphite_bb): Initialize GBB_STATIC_SCHEDULE.
5862 (find_params_in_bb): Do not free data refs.
5863 (free_graphite_bb): Add FIXME on disabled free_data_refs.
5864
58652008-12-11 Sebastian Pop <sebastian.pop@amd.com>
5866
6c9df8cb 5867 * gcc.dg/graphite/scop-16.c: Test only scop specific info.
5868 * gcc.dg/graphite/scop-17.c: Same.
5869 * gcc.dg/graphite/block-5.c: New.
5870 * gcc.dg/graphite/block-6.c: New.
5871 * gcc.dg/graphite/pr37485.c: Clean dump file after.
5872 * gcc.dg/graphite/pr37684.c: Same.
5873 * gcc.dg/graphite/block-2.c: Same.
c6bb733d 5874
5875 * graphite.c (struct ivtype_map_elt): New.
5876 (debug_ivtype_elt, debug_ivtype_map_1, debug_ivtype_map,
5877 new_ivtype_map_elt, ivtype_map_elt_info, eq_ivtype_map_elts,
5878 gcc_type_for_cloog_iv): New.
5879 (loop_iv_stack_patch_for_consts): Use the type of the induction
5880 variable from the original loop, except for the automatically
5881 generated loops, i.e., in the case of a strip-mined loop, in
5882 which case there is no original loop: in that case just use
5883 integer_type_node.
5884 (new_graphite_bb): Initialize GBB_CLOOG_IV_TYPES.
5885 (free_graphite_bb): Free GBB_CLOOG_IV_TYPES.
5886 (clast_name_to_gcc): Accept params to be NULL.
5887 (clast_to_gcc_expression): Take an extra parameter for the type.
5888 Convert to that type all the expressions built by this function.
5889 (gcc_type_for_clast_expr, gcc_type_for_clast_eq): New.
5890 (graphite_translate_clast_equation): Compute the type of the
5891 clast_equation before translating its LHS and RHS.
5892 (clast_get_body_of_loop, gcc_type_for_iv_of_clast_loop): New.
5893 (graphite_create_new_loop): Compute the type of the induction
5894 variable before translating the lower and upper bounds and before
5895 creating the induction variable.
5896 (rename_variables_from_edge, rename_phis_end_scop): New.
5897 (copy_bb_and_scalar_dependences): Call rename_phis_end_scop.
5898 (sese_add_exit_phis_edge): Do not use integer_zero_node.
5899 (find_cloog_iv_in_expr, compute_cloog_iv_types_1,
5900 compute_cloog_iv_types): New.
5901 (gloog): Call compute_cloog_iv_types before starting the
5902 translation of the clast.
5903
5904 * graphite.h (struct graphite_bb): New field cloog_iv_types.
5905 (GBB_CLOOG_IV_TYPES): New.
5906 (debug_ivtype_map): Declared.
5907 (oldiv_for_loop): New.
5908
59092008-12-10 Tobias Grosser <grosser@fim.uni-passau.de>
5910
5911 PR middle-end/38459
5912 * graphite.c (new_scop): Initialize SCOP_ADD_PARAMS.
5913 (param_index): Assert if parameter is not know after parameter
5914 detection.
5915 (find_params_in_bb): Detect params directly in GBB_CONDITIONS.
5916 (find_scop_parameters): Mark, that we have finished parameter
5917 detection.
5918 (graphite_transform_loops): Move condition detection before parameter
5919 detection.
5920 * graphite.h (struct scop): Add SCOP_ADD_PARAMS.
6c9df8cb 5921 * gfortran.dg/graphite/pr38459.f90: New.
c6bb733d 5922
59232008-12-09 Tobias Grosser <grosser@fim.uni-passau.de>
5924
5925 * graphite.c (graphite_transform_loops): Always call find_transform ()
5926 in ENABLE_CHECKING. So we test these code paths, even if we do not
5927 generate code.
5928
59292008-12-09 Tobias Grosser <grosser@fim.uni-passau.de>
5930
5931 * graphite.c (print_graphite_bb): Fix printing to file != dump_file.
5932 (print_scop): Ditto.
5933
59342008-12-08 Tobias Grosser <grosser@fim.uni-passau.de>
5935
5936 PR middle-end/38084
6c9df8cb 5937 Fix gfortran.dg/graphite/id-3.f90.
c6bb733d 5938 * graphite.c (scopdet_basic_block_info): Fix bug that found some
5939 regions more than once.
5940
59412008-12-03 Sebastian Pop <sebastian.pop@amd.com>
5942
6c9df8cb 5943 Fix gfortran.dg/graphite/id-4.f90.
c6bb733d 5944 * graphite.c (scan_tree_for_params): Do not compute the multiplicand
5945 when not needed.
5946
59472008-12-03 Sebastian Pop <sebastian.pop@amd.com>
5948
6c9df8cb 5949 Fix gfortran.dg/graphite/id-1.f90.
c6bb733d 5950 * graphite.c (gmp_cst_to_tree): Pass the type in parameter.
5951 (loop_iv_stack_patch_for_consts): Update use of gmp_cst_to_tree.
5952 (max_precision_type): New.
5953 (value_clast): Removed.
5954 (clast_to_gcc_expression): Be more careful to types of expressions.
5955 Use max_precision_type and update use of gmp_cst_to_tree.
5956 (graphite_translate_clast_equation): Use max_precision_type.
5957 (graphite_create_guard_cond_expr): Do not use integer_type_node,
5958 use the type of the condition.
5959 (graphite_create_new_loop): Do not use integer_type_node, use the
5960 max_precision_type of lb and ub.
5961
59622008-12-03 Sebastian Pop <sebastian.pop@amd.com>
5963
5964 * graphite.c (build_scops_1): Initialize open_scop.exit
5965 and sinfo.last.
5966
59672008-12-02 Sebastian Pop <sebastian.pop@amd.com>
5968
6c9df8cb 5969 * gcc.dg/graphite/pr38084.c: New.
5970 * gfortran.dg/graphite/id-1.f90: New.
5971 * gfortran.dg/graphite/id-2.f90: New.
5972 * gfortran.dg/graphite/id-3.f90: New.
5973 * gfortran.dg/graphite/id-4.f90: New.
5974 * gfortran.dg/graphite/pr37857.f90: New.
c6bb733d 5975
59762008-12-02 Sebastian Pop <sebastian.pop@amd.com>
5977 Jan Sjodin <jan.sjodin@amd.com>
5978 Harsha Jagasia <harsha.jagasia@amd.com>
5979
5980 PR middle-end/37852
5981 PR middle-end/37883
5982 PR middle-end/37928
5983 PR middle-end/37980
5984 PR middle-end/38038
5985 PR middle-end/38039
5986 PR middle-end/38073
5987 PR middle-end/38083
5988 PR middle-end/38125
5989
6c9df8cb 5990 * gcc.dg/graphite/pr38073.c: New.
5991 * gcc.dg/graphite/pr37928.c: New.
5992 * gcc.dg/graphite/pr37883.c: New.
5993 * gcc.dg/graphite/pr38125.c: New.
5994 * gfortran.dg/graphite/pr38083.f90: New.
5995 * gfortran.dg/graphite/pr37852.f90: New.
5996 * gfortran.dg/graphite/pr37980.f90: New.
c6bb733d 5997
6c9df8cb 5998 * gcc.dg/graphite/scop-18.c: Remove reduction, test for
c6bb733d 5999 the number of detected scops. Copy exact same test for loop
6000 blocking...
6c9df8cb 6001 * gcc.dg/graphite/block-1.c: Fix the number of expected
c6bb733d 6002 loops to be blocked as reductions are not handled.
6c9df8cb 6003 * gcc.dg/graphite/block-4.c: ...here. New.
c6bb733d 6004
6005 * tree-phinodes.c (remove_phi_nodes): New, extracted from...
6006 * tree-cfg.c (remove_phi_nodes_and_edges_for_unreachable_block):
6007 ...here.
6008 * tree-flow.h (remove_phi_nodes, canonicalize_loop_ivs): Declared.
6009 * Makefile.in (graphite.o): Depend on value-prof.h.
6010 (graphite.o-warn): Removed -Wno-error.
6011 * tree-parloops.c (canonicalize_loop_ivs): Allow reduction_list
6012 to be a NULL pointer. Call update_stmt. Return the newly created
6013 cannonical induction variable.
6014
6015 * graphite.h (debug_rename_map): Declared. Fix some comments.
6016
6017 * graphite.c: Reimplement the code generation from graphite to gimple.
6018 Include value-prof.h.
6019 (loop_iv_stack_get_iv): Do not return NULL for constant substitutions.
6020 (get_old_iv_from_ssa_name): Removed.
6021 (graphite_stmt_p): New.
6022 (new_graphite_bb): Test for useful statements before building a
6023 graphite statement for the basic block.
6024 (free_graphite_bb): Do not free GBB_DATA_REFS: this is a bug
6025 in free_data_ref that calls BITMAP_FREE (DR_VOPS (dr)) without
6026 reason.
6027 (recompute_all_dominators, graphite_verify,
6028 nb_reductions_in_loop, graphite_loop_normal_form): New.
6029 (scop_record_loop): Call graphite_loop_normal_form.
6030 (build_scop_loop_nests): Iterate over all the blocks of the
6031 function instead of relying on the incomplete information from
6032 SCOP_BBS. Return the success of the operation.
6033 (find_params_in_bb): Use the data from GBB_DATA_REFS.
6034 (add_bb_domains): Removed.
6035 (build_loop_iteration_domains): Don't call add_bb_domains.
6036 Add the iteration domain only to the basic blocks that have been
6037 translated to graphite.
6038 (build_scop_conditions_1): Add constraints only if the basic
6039 block have been translated to graphite.
6040 (build_scop_data_accesses): Completely disabled until data
6041 dependence is correctly implemented.
6042 (debug_rename_elt, debug_rename_map_1, debug_rename_map): New.
6043 (remove_all_edges_1, remove_all_edges): Removed.
6044 (get_new_name_from_old_name): New.
6045 (graphite_rename_variables_in_stmt): Renamed
6046 rename_variables_in_stmt. Call get_new_name_from_old_name.
6047 Use replace_exp and update_stmt.
6048 (is_old_iv): Renamed is_iv.
6049 (expand_scalar_variables_stmt): Extra parameter for renaming map.
6050 Use replace_exp and update_stmt.
6051 (expand_scalar_variables_expr): Same. Use the map to get the
6052 new names for the renaming of induction variables and for the
6053 renaming of variables after a basic block has been copied.
6054 (expand_scalar_variables): Same.
6055 (graphite_rename_variables): Renamed rename_variables.
6056 (move_phi_nodes): Removed.
6057 (get_false_edge_from_guard_bb): New.
6058 (build_iv_mapping): Do not insert the induction variable of a
6059 loop in the renaming iv map if the basic block does not belong
6060 to that loop.
6061 (register_old_new_names, graphite_copy_stmts_from_block,
6062 copy_bb_and_scalar_dependences): New.
6063 (translate_clast): Heavily reimplemented: copy basic blocks,
6064 do not move them. Finally, in call cleanup_tree_cfg in gloog.
6065 At each translation step call graphite_verify ensuring the
6066 consistency of the SSA, loops and dominators information.
6067 (collect_virtual_phis, find_vdef_for_var_in_bb,
6068 find_vdef_for_var_1, find_vdef_for_var,
6069 patch_phis_for_virtual_defs): Removed huge hack.
6070 (mark_old_loops, remove_dead_loops, skip_phi_defs,
6071 collect_scop_exit_phi_args, patch_scop_exit_phi_args,
6072 gbb_can_be_ignored, scop_remove_ignoreable_gbbs, ): Removed.
6073 (remove_sese_region, ifsese, if_region_entry, if_region_exit,
6074 if_region_get_condition_block, if_region_set_false_region,
6075 create_if_region_on_edge, move_sese_in_condition, bb_in_sese_p,
6076 sese_find_uses_to_rename_use, sese_find_uses_to_rename_bb,
6077 sese_add_exit_phis_edge, sese_add_exit_phis_var,
6078 rewrite_into_sese_closed_ssa): New.
6079 (gloog): Remove dead code. Early return if code cannot be
6080 generated. Call cleanup_tree_cfg once the scop has been code
6081 generated.
6082 (graphite_trans_scop_block, graphite_trans_loop_block): Do not
6083 block loops with less than two loops.
6084 (graphite_apply_transformations): Remove the call to
6085 scop_remove_ignoreable_gbbs.
6086 (limit_scops): When build_scop_loop_nests fails, continue on
6087 the next scop. Fix open_scop.entry.
6088 (graphite_transform_loops): Call recompute_all_dominators: force the
6089 recomputation of correct CDI_DOMINATORS and CDI_POST_DOMINATORS.
6090 Call initialize_original_copy_tables and free_original_copy_tables
6091 to be able to copy basic blocks during code generation.
6092 When build_scop_loop_nests fails, continue on next scop.
6093 (value_clast): New union.
6094 (clast_to_gcc_expression): Fix type cast warning.
6095
60962008-11-09 Sebastian Pop <sebastian.pop@amd.com>
6097
6098 * Merge from mainline (r140838:141727).
6099
61002008-11-05 Tobias Grosser <grosser@fim.uni-passau.de>
6101
6102 PR middle-end/37833
6103
6104 * graphite.c (scan_tree_for_params): Add POINTER_PLUS_EXPR.
6105
61062008-11-05 Tobias Grosser <grosser@fim.uni-passau.de>
6107
6108 PR middle-end/37943
6109
6110 * graphite.c (scopdet_basic_block_info): Fix loops with multiple
6111 exits and conditions.
6c9df8cb 6112 * gcc.dg/graphite/pr37943.c: New.
c6bb733d 6113
61142008-10-23 Tobias Grosser <grosser@fim.uni-passau.de>
6115
6116 PR middle-end/37886
6117 * graphite.c (gloog): Replace EXIT_BLOCK_PTR with scop exit.
6118
61192008-10-23 Tobias Grosser <grosser@fim.uni-passau.de>
6120
6121 * doc/invoke.texi: Fix spaces.
6122
61232008-10-22 Sebastian Pop <sebastian.pop@amd.com>
6124
6125 PR tree-optimization/37891
6126 Reverted last commit.
6127 * graphite.c (create_single_entry_edge): Set
6128 EDGE_IRREDUCIBLE_LOOP and BB_IRREDUCIBLE_LOOP.
6129
61302008-10-21 Sebastian Pop <sebastian.pop@amd.com>
6131 Mitul Thakkar <mitul.thakkar@amd.com>
6132
6133 * graphite.c (create_single_entry_edge): Set
6134 EDGE_IRREDUCIBLE_LOOP and BB_IRREDUCIBLE_LOOP.
6135
61362008-10-16 Tobias Grosser <grosser@fim.uni-passau.de>
6137
6138 * doc/invoke.texi: Add -fgraphite-identity.
6139 * graphite.c (graphite_apply_transformations): Check for
6140 -fgraphite-identity.
6141 * toplev.c (process_options): Add flag_graphite_identity.
6142 * tree-ssa-loop.c: Add flag_graphite_identity.
6143
61442008-10-14 Sebastian Pop <sebastian.pop@amd.com>
6145
6146 Undo changes from 2008-10-02:
6147 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Convert
6148 operand type when copying the operand to a variable of different type.
6149 * cfgloopmanip.c (create_empty_loop_on_edge): Write exit condition
6150 with the IV name after increment.
6151
61522008-10-14 Sebastian Pop <sebastian.pop@amd.com>
6153 Harsha Jagasia <harsha.jagasia@amd.com>
6154
6155 PR tree-optimization/37828
6c9df8cb 6156 * gcc.dg/graphite/pr37828.c: New.
c6bb733d 6157 * graphite.c (graphite_trans_loop_block): Do not loop block
6158 single nested loops.
6159
61602008-10-09 Harsha Jagasia <harsha.jagasia@amd.com>
6161 Sebastian Pop <sebastian.pop@amd.com>
6162
6163 * graphite.c (struct rename_map_elt, new_rename_map_elt,
6164 rename_map_elt_info, eq_rename_map_elts): New.
6165 (graphite_rename_ivs_stmt): Renamed graphite_rename_variables_in_stmt.
6166 (expand_scalar_variables_expr): Change parameters.
6167 (expand_scalar_variables_stmt): Same.
6168 (expand_scalar_variables): Same.
6169 (graphite_rename_ivs): Rename graphite_rename_variables.
6170 (build_iv_mapping): New.
6171 (translate_clast): Call build_iv_mapping.
6172 * graphite.h (gbb_p): New name.
6173
61742008-10-03 Harsha Jagasia <harsha.jagasia@amd.com>
6175
6176 PR tree-optimization/37684
6177 * gcc.dg/graphite/pr37684.c: New.
6178 * graphite.c (exclude_component_ref): New.
6179 (is_simple_operand): Call exclude_component_ref.
6180
61812008-10-02 Jan Sjodin <jan.sjodin@amd.com>
6182 Harsha Jagasia <harsha.jagasia@amd.com>
6183
6184 PR tree-optimization/37485
6185 * gcc.dg/graphite/block-2.c: New
6186 * graphite.c (gmp_cst_to_tree): Moved.
6187 (iv_stack_entry_is_constant): New.
6188 (iv_stack_entry_is_iv): New.
6189 (loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
6190 (loop_iv_stack_insert_constant): New.
6191 (loop_iv_stack_pop): Use new datatpype.
6192 (loop_iv_stack_get_iv): Same.
6193 (loop_iv_stack_get_iv_from_name): Same.
6194 (loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
6195 (loop_iv_stack_patch_for_consts): New.
6196 (loop_iv_stack_remove_constants): New.
6197 (graphite_create_new_loop): Use loop_iv_stack_push_iv.
6198 (translate_clast): Call loop_iv_stack_patch_for_consts and
6199 loop_iv_stack_remove_constants.
6200 (gloog): Use new datatype. Redirect construction edge to end
6201 block to avoid accidental deletion.
6202 * graphite.h (enum iv_stack_entry_kind): New. Tag for data in
6203 iv stack entry.
6204 (union iv_stack_entry_data): New. Data in iv stack entry.
6205 (struct iv_stack_entry): New. Datatype for iv stack entries.
6206
62072008-10-02 Sebastian Pop <sebastian.pop@amd.com>
6208
6209 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Convert
6210 operand type when copying the operand to a variable of different type.
6211
62122008-10-02 Sebastian Pop <sebastian.pop@amd.com>
6213
6214 * cfgloopmanip.c (create_empty_loop_on_edge): Write exit condition
6215 with the IV name after increment.
6216
62172008-10-02 Sebastian Pop <sebastian.pop@amd.com>
6218
6219 * Merge from mainline (r140164:140838).
6220
62212008-09-10 Konrad Trifunovic <konrad.trifunovic@inria.fr>
6222
6223 * graphite-data-ref.c: New.
6224 * graphite.c (print_scop): Also dump the dependence graph.
6225 (bb_in_scop_p, loop_in_scop_p, nb_loops_around_gb): Moved...
6226 (new_scop): Initialize SCOP_DEP_GRAPH.
6227 (build_scop_dynamic_schedules): New.
6228 (build_access_matrix_with_af): Fixed column numbering.
6229 (graphite_transform_loops): Call build_scop_dynamic_schedules.
6230 * graphite.h: Add ifndef/define guards against multiple inclusion.
6231 (struct scop): Add dep_graph field.
6232 (SCOP_DEP_GRAPH): Defined.
6233 (ref_nb_loops): Fixed and moved to other position.
6234 (bb_in_scop_p, loop_in_scop_p, nb_loops_around_gb): ... here.
6235 (nb_loops_around_loop_in_scop): New.
6236 (graphite_dump_dependence_graph): Declared.
6237 (graphite_build_rdg_all_levels): Declared.
6238 (graphite_test_dependence): Declared.
6239 * Makefile.in (graphite-data-ref.o): New target.
6240
62412008-09-09 Sebastian Pop <sebastian.pop@amd.com>
6242
6243 * Merge from mainline (139870:140164).
6244
62452008-09-01 Sebastian Pop <sebastian.pop@amd.com>
6246
6247 * Merge from mainline (138275:139870).
6c9df8cb 6248 * gcc.dg/graphite/scop-matmult.c: XFailed as one of
c6bb733d 6249 the commits from trunk broke the niter detection.
6250
62512008-09-01 Sebastian Pop <sebastian.pop@amd.com>
6252
6253 * graphite.c: Add more documentation. Fix formatting.
6254 (debug_loop_vec, debug_oldivs, loop_iv_stack,
6255 loop_iv_stack_debug): Moved...
6256 (schedule_to_scattering): Move before use.
6257 (dot_all_scops): Include in "#if 0" the code for system
6258 call dotty.
6259
6260 * graphite.h: (debug_loop_vec, debug_oldivs, loop_iv_stack,
6261 loop_iv_stack_debug): ...here.
6262
62632008-08-29 Jan Sjodin <jan.sjodin@amd.com>
6264
6265 * tree-phinodes.c (make_phi_node): Extern.
6266 (add_phi_node_to_bb): New.
6267 (create_phi_node): Call add_phi_node_to_bb.
6268 * tree-ssa-loop-ivopts.c (get_phi_with_result): New.
6269 (remove_statement): Handle case where stored phi was updated
6270 and is no longer the same.
6271 * graphite.c (is_parameter): New.
6272 (is_old_iv): New.
6273 (expand_scalar_variables_expr): New.
6274 (expand_scalar_variables_stmt): New.
6275 (expand_scalar_variables): New.
6276 (move_phi_nodes): Create new phi instead of moving old one.
6277 (translate_clast): Call expand_scalar_variables.
6278 (find_vdef_for_var_in_bb): Also scan regular definitions.
6279 (skip_phi_defs): New.
6280 (collect_scop_exit_phi_args): New.
6281 (patch_scop_exit_phi_args): New.
6282 (gloog): Patch phis after scop.
6283 * tree-flow.h: (add_phi_node_to_bb): Declared.
6284 (make_phi_node): Declared.
6285
62862008-08-26 Sebastian Pop <sebastian.pop@amd.com>
6287
6288 * graphite.c (end_scop): Split the entry of the scop when it
6289 is the header of the loop in which the scop is ending.
6290 (build_scops_1, limit_scops): Update uses of end_scop.
6291
62922008-08-26 Sebastian Pop <sebastian.pop@amd.com>
6293
6294 * graphite.c (dot_all_scops_1): Do not fail on uninitialized
6295 SCOP_ENTRY or SCOP_EXIT.
6296
62972008-08-25 Sebastian Pop <sebastian.pop@amd.com>
6298
6299 * graphite.c (get_construction_edge): Removed.
6300 (gloog): Construction edge is the scop entry edge.
6301
63022008-08-25 Sebastian Pop <sebastian.pop@amd.com>
6303
6304 * graphite.c (can_generate_for_scop): Removed.
6305 (gloog): Do not call it.
6306
63072008-08-25 Sebastian Pop <sebastian.pop@amd.com>
6308
6309 * graphite.c (new_scop): Entry of a scop is an edge.
6310 Initialize SESE region.
6311 (free_scop): Free SESE region.
6312 (build_scops_1, scopdet_bb_info): Work on edges, not on bbs.
6313 (split_difficult_bb): New, split from end_scop.
6314 (end_scop): Exit of a scop is an edge.
6315 (build_scop_bbs): Never check CDI_POST_DOMINATORS: this info is
6316 not automatically updated and thus is always wrong.
6317 * graphite.h (struct sese): New.
6318 (SESE_ENTRY): New.
6319 (SESE_EXIT): New.
6320 (struct scop): New field for a SESE region. Remove entry, exit.
6321 (SCOP_ENTRY, SCOP_EXIT): Update definitions to match same
6322 semantics as before. Moved comment around.
6323
63242008-08-25 Tobias Grosser <grosser@fim.uni-passau.de>
6325 Sebastian Pop <sebastian.pop@amd.com>
6326
6327 * graphite.c (graphite_transform_loops): Always enable gloog
6328 and find_transform when ENABLE_CHECKING.
6329
63302008-08-25 Sebastian Pop <sebastian.pop@amd.com>
6331
6332 * graphite.c (graphite_transform_loops): Move pretty printer
6333 of SCOPs before doing any transform. Remove call to print_scops
6334 and dot_all_scops_1.
6335
63362008-08-25 Sebastian Pop <sebastian.pop@amd.com>
6337
6338 * graphite.c (dump_gbb_conditions): Don't try to print NULL pointers.
6339 (print_graphite_bb): Same.
6340
63412008-08-25 Sebastian Pop <sebastian.pop@amd.com>
6342
6343 * graphite.c (dot_all_scops_1): Cleanup.
6344 (move_scops): Fix comment.
6345
63462008-08-25 Sebastian Pop <sebastian.pop@amd.com>
6347
6348 * graphite.c (build_scop_bbs): Revert commit 139355:
6349
6350 2008-08-20 Sebastian Pop <sebastian.pop@amd.com>
6351 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
6352
6353 * graphite.c (build_scop_bbs): Factor up code.
6354
63552008-08-25 Tobias Grosser <grosser@fim.uni-passau.de>
6356
6357 * graphite.c (gloog): Update dominator info.
6358
63592008-08-25 Tobias Grosser <grosser@fim.uni-passau.de>
6360
6361 * graphite.c (remove_cond_exprs): Do not fail on empty bbs.
6362
63632008-08-24 Sebastian Pop <sebastian.pop@amd.com>
6364
6365 * graphite.c (new_graphite_bb): Remove GBB_INDEX_TO_NUM_MAP
6366 initialization.
6367 (free_graphite_bb): Remove GBB_INDEX_TO_NUM_MAP free.
6368 (translate_clast): Correct formatting.
6369 * graphite.h (struct num_map): Removed.
6370 (struct graphite_bb): Remove num_map field.
6371 (GBB_INDEX_TO_NUM_MAP): Removed.
6372
63732008-08-24 Sebastian Pop <sebastian.pop@amd.com>
6374
6375 * graphite.c (build_access_matrix_with_af): Fix comments.
6376 (build_scop_data_accesses): Same.
6377
63782008-08-24 Sebastian Pop <sebastian.pop@amd.com>
6379
6380 * graphite.c (build_scop_data_accesses): Don't construct
6381 access matrices. Add a FIXME and an assert condition that
6382 should pass when the access matrices will be needed.
6383
63842008-08-24 Sebastian Pop <sebastian.pop@amd.com>
6385
6386 * tree-data-ref.c (stmt_simple_memref_p): Don't call
6387 really_constant_p.
6388 * graphite.c (build_graphite_bb): Renamed new_graphite_bb.
6389 Moved close by free_graphite_bb.
6390 (free_graphite_bb): Call free_data_refs. Reset bb->aux.
6391 (new_scop): Move close by free_scop.
6392 (graphite_transform_loops): Avoid linear scan to reset bb->aux.
6393
63942008-08-22 Jan Sjodin <jan.sjodin@amd.com>
6395
6396 * cfgloopmanip.c (create_empty_if_region_on_edge): New.
6397 * graphite.c (clast_to_gcc_expression): Call gmp_cst_to_tree
6398 instead of recursive call.
6399 (graphite_translate_clast_equation): New.
6400 (graphite_create_guard_cond_expr): New.
6401 (graphite_create_new_guard): New.
6402 (get_stack_index_from_iv): Removed.
6403 (graphite_rename_ivs_stmt): Use gbb_loop_index.
6404 (get_true_edge_from_guard_bb): New.
6405 (translate_clast): Handle stmt_guard in clast.
6406 (get_construction_edge): Allow construction edge detection for
6407 a scope entry with multiple predecessors if one predecessor is
6408 the immediate dominator of scope entry.
6409 (can_generate_code_stmt): Enable code generation for clast_guard.
6410 (gloog): Use correct context loop. Removed check for post dominators.
6411 * cfgloop.h (create_empty_if_region_on_edge): Declared.
6412
64132008-08-21 Sebastian Pop <sebastian.pop@amd.com>
6414
6415 * graphite.c (remove_dead_loops): Document better which
6416 loops are removed.
6417
64182008-08-21 Sebastian Pop <sebastian.pop@amd.com>
6419
6420 * Makefile.in: Rename POLYLIBLIBS and POLYLIBINC to PPLLIBS
6421 and PPLINC.
6422 (graphite.o): Also depends on pointer-set.h.
6423
64242008-08-21 Sebastian Pop <sebastian.pop@amd.com>
6425
6426 * graphite.c (scop_record_loop): Fix compile warning.
6427
64282008-08-21 Harsha Jagasia <harsha.jagasia@amd.com>
6429 Sebastian Pop <sebastian.pop@amd.com>
6430
6431 * graphite.c (scop_record_loop): DECL_NAME can be NULL.
6432
64332008-08-21 Sebastian Pop <sebastian.pop@amd.com>
6434
6435 * graphite.c (build_graphite_bb): Initialize bb->aux to
6436 point to the graphite_bb_p.
6437 (graphite_bb_from_bb): Renamed gbb_from_bb; returns the
6438 content of bb->aux.
6439 (add_bb_domains): Does not use the scop parameter.
6440 (graphite_transform_loops): Clean bb->aux at the end.
6441
64422008-08-20 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
6443 Sebastian Pop <sebastian.pop@amd.com>
6444
6c9df8cb 6445 * lib/target-supports.exp
c6bb733d 6446 (check_effective_target_fgraphite): New.
6447
6c9df8cb 6448 * gcc.dg/graphite/graphite.exp: Early exit when
c6bb733d 6449 check_effective_target_fgraphite returns false.
6450 Set dg-do-what-default to compile.
6451 (scan-graphite-dump-times): Removed.
6c9df8cb 6452 * gfortran.dg/graphite/graphite.exp: Same.
c6bb733d 6453
6c9df8cb 6454 * gcc.dg/graphite/scop-0.c: Do not use "dg-do compile".
c6bb733d 6455 Use scan-tree-dump-times instead of scan-graphite-dump-times.
6c9df8cb 6456 * gcc.dg/graphite/scop-1.c: Same.
6457 * gcc.dg/graphite/scop-2.c: Same.
6458 * gcc.dg/graphite/scop-3.c: Same.
6459 * gcc.dg/graphite/scop-4.c: Same.
6460 * gcc.dg/graphite/scop-5.c: Same.
6461 * gcc.dg/graphite/scop-6.c: Same.
6462 * gcc.dg/graphite/scop-7.c: Same.
6463 * gcc.dg/graphite/scop-8.c: Same.
6464 * gcc.dg/graphite/scop-9.c: Same.
6465 * gcc.dg/graphite/scop-10.c: Same.
6466 * gcc.dg/graphite/scop-11.c: Same.
6467 * gcc.dg/graphite/scop-12.c: Same.
6468 * gcc.dg/graphite/scop-13.c: Same.
6469 * gcc.dg/graphite/scop-matmult.c: Same.
6470 * gcc.dg/graphite/scop-14.c: Same.
6471 * gcc.dg/graphite/scop-15.c: Same.
6472 * gcc.dg/graphite/block-0.c: Same.
6473 * gcc.dg/graphite/scop-16.c: Same.
6474 * gcc.dg/graphite/block-1.c: Same.
6475 * gcc.dg/graphite/scop-17.c: Same.
6476 * gcc.dg/graphite/scop-18.c: Same.
6477 * gfortran.dg/graphite/block-1.f90: Same.
6478 * gfortran.dg/graphite/scop-1.f: Same.
6479 * gfortran.dg/graphite/block-2.f: Same.
c6bb733d 6480
64812008-08-20 Sebastian Pop <sebastian.pop@amd.com>
6482
6483 * graphite.c: Fix some XXX comments.
6484 (build_scop_dynamic_schedules): Removed.
6485
64862008-08-20 Sebastian Pop <sebastian.pop@amd.com>
6487
6488 * graphite.h (scop_max_loop_depth): Moved...
6489 * graphite.c (scop_max_loop_depth): ...here.
6490 (remove_all_edges_1): New.
6491 (remove_all_edges): Factored code.
6492 (remove_cond_exprs): Check only the last statement for
6493 a GIMPLE_COND expression.
6494
64952008-08-20 Sebastian Pop <sebastian.pop@amd.com>
6496
6497 * graphite.c (scan_tree_for_params): Early return when the
6498 expression is a chrec_dont_know. Handle case NEGATE_EXPR.
6499 (find_scop_parameters): Factor out code.
6500 (graphite_trans_bb_strip_mine): Remove dead code.
6501
65022008-08-20 Sebastian Pop <sebastian.pop@amd.com>
6503
6504 * graphite.c (clast_to_gcc_expression, graphite_create_new_loop,
6505 graphite_trans_bb_move_loop): Factor asserts.
6506 (gloog): Perform sanity checks only for ENABLE_CHECKING.
6507 Do not call calculate_dominance_info and estimate_bb_frequencies.
6508
65092008-08-20 Jan Sjodin <jan.sjodin@amd.com>
6510
6511 * graphite.c (create_loops_mapping, free_loops_mapping,
6512 create_loops_mapping_num, debug_loop_mapping_1,
6513 debug_loop_mapping, graphite_loops_mapping_max_loop_num,
6514 get_loop_mapping_for_num, graphite_loops_mapping_add_child,
6515 graphite_loops_mapping_add_child_num,
6516 graphite_loops_mapping_insert_child,
6517 graphite_loops_mapping_parent, get_loop_mapped_depth_for_num,
6518 get_loop_mapped_depth, split_loop_mapped_depth_for_num,
6519 loop_mapped_depth_split_loop, swap_loop_mapped_depth_for_num,
6520 create_num_from_index, get_num_from_index,
6521 swap_loop_mapped_depth): Removed.
6522 (new_scop): Do not initialize SCOP_LOOPS_MAPPING.
6523 (free_scop): Do not call free_loops_mapping.
6524 (graphite_get_new_iv_stack_index_from_old_iv): Renamed
6525 get_stack_index_from_iv. Use GBB_LOOPS instead of calling
6526 get_loop_mapped_depth.
6527 (graphite_trans_bb_move_loop): Do not update the loop mapping.
6528 (graphite_trans_bb_strip_mine): Same.
6529 * graphite.h (graphite_loops_mapping, graphite_loop_node): Removed.
6530 (struct scop): Remove field loops_mapping.
6531
65322008-08-20 Sebastian Pop <sebastian.pop@amd.com>
6533 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
6534
6535 * graphite.c (scop_record_loop): Factor out one level of the
6536 condition by early return.
6537 (build_scop_loop_nests): Format following FSF coding style.
6538 (build_scop_dynamic_schedules): Factor out code.
6539 (scopdet_bb_info): Reindent. Default case should not be reachable.
6540
65412008-08-20 Sebastian Pop <sebastian.pop@amd.com>
6542 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
6543
6544 * graphite.c (loop_affine_expr): Check for DECL_P or struct
6545 assignments that are not handled as simple operands for now.
6546
65472008-08-20 Sebastian Pop <sebastian.pop@amd.com>
6548 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
6549
6550 * graphite.c (build_scop_bbs): Factor up code.
6551
65522008-08-20 Sebastian Pop <sebastian.pop@amd.com>
6553 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
6554
6555 * graphite.c (stmt_simple_for_scop_p): Factor code out
6556 of the loop.
6557 (enum gbb_type): New. Group all the GBB_* types under it.
6558 (is_loop_exit): Moved...
6559 (end_scop): Enable BB spliting.
6560 * cfgloop.c (is_loop_exit): ...here. Reimplemented.
6561 * cfgloop.h (is_loop_exit): Declared.
6562
65632008-08-20 Sebastian Pop <sebastian.pop@amd.com>
6564
6565 * doc/invoke.texi: Remove strides from examples containing
6566 DO loops when the strides are equal to 1.
6567
65682008-08-20 Harsha Jagasia <harsha.jagasia@amd.com>
6569 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
6570
6571 * graphite.c (graphite_trans_scop_block): Or the result with
6572 the result from graphite_trans_loop_block.
6c9df8cb 6573 * gcc.dg/graphite/block-1.c: New.
6574 * gfortran.dg/graphite/block-1.f90: New.
6575 * gfortran.dg/graphite/block-2.f: New.
c6bb733d 6576
65772008-08-20 Sebastian Pop <sebastian.pop@amd.com>
6578
6579 * graphite.c (graphite_transform_loops): Call cloog_initialize
6580 and cloog_finalize.
6581
65822008-08-20 Sebastian Pop <sebastian.pop@amd.com>
6583
6584 * tree-data-ref.c) (stmt_simple_memref_p): New.
6585 * tree-data-ref.h (stmt_simple_memref_p): Declared.
6586 * graphite.c (stmt_simple_memref_for_scop_p): Removed.
6587 (is_simple_operand): Call stmt_simple_memref_p.
6588
6c9df8cb 6589 * gcc.dg/graphite/scop-matmult.c: Updated for not
c6bb733d 6590 using pointer arithmetic, as this is optimized by PRE and
6591 makes the code too difficult to analyze.
6592
6c9df8cb 6593 * gcc.dg/graphite/scop-18.c: Same.
c6bb733d 6594
65952008-08-20 Sebastian Pop <sebastian.pop@amd.com>
6596
6597 * gdbinit.in (pgg): New.
6598
65992008-08-15 Tobias Grosser <grosser@fim.uni-passau.de>
6600
6601 * graphite.c (graphite_trans_loop_block): Fix warning.
6602
66032008-08-15 Tobias Grosser <grosser@fim.uni-passau.de>
6604
6605 * graphite.c (graphite_trans_loop_block): Fix my merge error.
6606
66072008-08-15 Tobias Grosser <grosser@fim.uni-passau.de>
6608
6609 * graphite.c (graphite_trans_bb_block): Remove check for
6610 flag_loop_strip_mine, flag_loop_block, flag_loop_interchange.
6611 Check if loop blocking is profitable for every loop, before applying
6612 the changes.
6613 (graphite_apply_transformations): Call graphite_trans_bb_block only,
6614 if flag_loop_block is set.
6615
66162008-08-14 Sebastian Pop <sebastian.pop@amd.com>
6617
6618 * graphite.c: Add some more documentation for the loop
6619 mapping.
6620
66212008-08-14 Sebastian Pop <sebastian.pop@amd.com>
6622
6623 * Makefile.in (tree-data-ref.o): Remove dependence on graphite.h.
6624 * graphite.c: Format on less than 80 columns.
6625 * graphite.h: Same.
6626
66272008-08-14 Sebastian Pop <sebastian.pop@amd.com>
6628
6629 * cfgloopmanip.c (loopify): Use update_dominators_in_loop.
6630
66312008-08-14 Sebastian Pop <sebastian.pop@amd.com>
6632
6633 * doc/invoke.texi (floop-block, floop-strip-mine,
6634 floop-interchange): Update documentation with examples.
6635
66362008-08-13 Sebastian Pop <sebastian.pop@amd.com>
6637
6638 * cfgloopmanip.c (create_empty_loop_on_edge): Don't call
6639 add_referenced_var.
6640 * graphite.c (graphite_create_new_loop): Call add_referenced_var.
6641
66422008-08-13 Sebastian Pop <sebastian.pop@amd.com>
6643
6644 * cfgloopmanip.c (create_empty_loop_on_edge): Improve documentation.
6645 Factor gcc_asserts into a single one. Use force_gimple_operand_gsi.
6646 * tree-scalar-evolution.c: Revert useless changes.
6647 * tree-phinodes.c: Same.
6648 * cfghooks.c: Same.
6649 * vec.h: Same.
6650 * tree-vectorizer.h: Same.
6651 * tree-flow.h: Same.
6652 * tree-cfg.c: Same.
6653 * common.opt (fgraphite): Update documentation.
6654
66552008-08-12 Harsha Jagasia <harsha.jagasia@amd.com>
6656
6657 * doc/invoke.texi (-floop-block, -floop-strip-mine,
6658 -floop-interchange): Add more text for explaining what each of these
6659 flags is doing.
6660 * tree-into-ssa.c (gimple_vec): Moved to...
6661 * graphite.c: Include gimple.h.
6662 (gimple_vec): Moved to...
6663 (del_loop_to_cloog_loop): Removed.
6664 (loop_affine_expr): Do not call create_data_ref when the
6665 operand is a constant.
6666 (new_scop): Use free instead of del_loop_to_cloog_loop.
6667 * Makefile.in (graphite.o): Depend on GIMPLE_H.
6668 * gimple.h (gimple_vec): ... here.
6669
66702008-08-11 Tobias Grosser <grosser@fim.uni-passau.de>
6671
6672 * graphite.c (scopdet_bb_info): Only allow loops with known number of
6673 latch executions.
6674 (build_loop_iteration_domains): Fail, if latch executions unknown.
6675
66762008-08-11 Tobias Grosser <grosser@fim.uni-passau.de>
6677
6678 * graphite.c (add_conditions_to_domain): New.
6679 (build_scop_conditions_1): Call add_conditions_to_domain.
6680 (set_cloog_options): Allow to disable optimizations.
6681
66822008-08-11 Tobias Grosser <grosser@fim.uni-passau.de>
6683
6684 * graphite.c (find_params_in_bb): Look for parameters in conditions.
6685 Do not use walk_dominator_tree.
6686 (find_scop_parameters): Do not use walk_dominator_tree.
6687
66882008-08-11 Tobias Grosser <grosser@fim.uni-passau.de>
6689
6690 * graphite.c (scan_tree_for_params) Add / Subtract inequality.
6691 (idx_record_params): Adapt.
6692 * graphite.h (scop_gimple_loop_depth): New.
6693
66942008-08-11 Tobias Grosser <grosser@fim.uni-passau.de>
6695
6696 * graphite.c (build_scop_dynamic_schedules): Remove value_init.
6697 (scan_tree_for_params): Remove value_init.
6698 (build_scop_context): Remove value_init.
6699 (build_loop_iteration_domains): Remove value_init.
6700 (schedule_to_scattering): Remove value_init.
6701 (graphite_trans_bb_strip_mine): Remove value_init.
6702
67032008-08-11 Tobias Grosser <grosser@fim.uni-passau.de>
6704
6705 * gcc/graphite.c (limit_scops): New.
6706 (graphite_transform_loops): Add limit SCoPs.
6c9df8cb 6707 * gcc.dg/graphite/scop-0.c: Update number of SCoPs.
6708 * gcc.dg/graphite/scop-1.c: Update number of SCoPs.
6709 * gcc.dg/graphite/scop-10.c: Update number of SCoPs.
6710 * gcc.dg/graphite/scop-11.c: Update number of SCoPs.
6711 * gcc.dg/graphite/scop-12.c: Update number of SCoPs.
6712 * gcc.dg/graphite/scop-13.c: Update number of SCoPs.
6713 * gcc.dg/graphite/scop-14.c: Update number of SCoPs.
6714 * gcc.dg/graphite/scop-15.c: Update number of SCoPs.
6715 * gcc.dg/graphite/scop-16.c: Update number of SCoPs.
c6bb733d 6716 Change loop numbers.
6c9df8cb 6717 * gcc.dg/graphite/scop-17.c: Update number of SCoPs.
c6bb733d 6718 Change loop numbers.
6c9df8cb 6719 * gcc.dg/graphite/scop-18.c: Update number of SCoPs.
6720 * gcc.dg/graphite/scop-2.c: Update number of SCoPs.
6721 * gcc.dg/graphite/scop-3.c: Update number of SCoPs.
6722 * gcc.dg/graphite/scop-4.c: Update number of SCoPs.
6723 * gcc.dg/graphite/scop-5.c: Update number of SCoPs.
6724 * gcc.dg/graphite/scop-6.c: Update number of SCoPs.
6725 * gcc.dg/graphite/scop-7.c: Update number of SCoPs.
6726 * gcc.dg/graphite/scop-8.c: Update number of SCoPs.
6727 * gcc.dg/graphite/scop-9.c: Update number of SCoPs.
6728 * gcc.dg/graphite/scop-matmult.c: Update number of SCoPs.
c6bb733d 6729
67302008-08-11 Tobias Grosser <grosser@fim.uni-passau.de>
6731
6732 * graphite.c (graphite_transform_loops): Call always find_transform.
6733
67342008-08-08 Tobias Grosser <grosser@fim.uni-passau.de>
6735
6736 * graphite.c (free_loops_mapping): New.
6737 (stmt_simple_for_scop_p): Fix typo.
6738 (stmt_simple_for_scop_p): Fix tuples functions, that
6739 broke polyhedron.
6740 (free_graphite_bb): Fix some memleaks.
6741 (free_scop): Fix some memleaks.
6742 (scopdet_bb_info): Do not forget some tmp SCoPs.
6743 (find_params_in_bb): Fix some memleaks.
6744 (clast_to_gcc_expression): Fix warning.
6745
67462008-08-07 Tobias Grosser <grosser@fim.uni-passau.de>
6747
6c9df8cb 6748 * gcc.dg/graphite/scop-16.c: Fix for 32bit.
6749 * gcc.dg/graphite/scop-17.c: Fix for 32bit.
c6bb733d 6750
67512008-08-04 Sebastian Pop <sebastian.pop@amd.com>
6752
6753 * tree-ssa-loop.c (tree-ssa-loop.o): Do not include toplev.h.
6754 Move code ifdef-ed HAVE_cloog...
6755 * graphite.c: Include toplev.h.
6756 ... here.
6757 * Makefile.in (OBJS-common): Always build graphite.o.
6758 (BACKEND): Remove @GRAPHITE@.
6759 (tree-ssa-loop.o): Do not depend on TOPLEV_H.
6760 (graphite.o): Depend on TOPLEV_H.
6761
67622008-08-04 Sebastian Pop <sebastian.pop@amd.com>
6763
6764 * Makefile.in (tree-ssa-loop.o): Depend on TOPLEV_H.
6765 Remove typo left from polylib to ppl conversion.
6766 * graphite.c (graphite_transforms): Use sorry instead of fatal.
6767
67682008-08-03 Sebastian Pop <sebastian.pop@amd.com>
6769
6770 * toplev.c (process_options): Move the graphite loop optimization
6771 flags...
6772 * tree-ssa-loop.c (graphite_transforms): ... here.
6773 When not configured with CLooG, print to dump_file that
6774 Graphite transforms were not performed.
6c9df8cb 6775 * gcc.dg/graphite/graphite.exp (scan-graphite-dump-times):
c6bb733d 6776 New.
6c9df8cb 6777 * gcc.dg/graphite/*.c: Updated all testcases to use
c6bb733d 6778 scan-graphite-dump-times.
6779
67802008-08-03 Sebastian Pop <sebastian.pop@amd.com>
6781
6782 * graphite.c (dot_scop, dot_all_scops): Do not call system.
6783 Do not open /tmp/scop.dot and /tmp/allscops.dot.
6784
67852008-08-02 Sebastian Pop <sebastian.pop@amd.com>
6786 Jan Sjodin <jan.sjodin@amd.com>
6787
6788 * configure: Regenerated.
6789 * omp-low.c (expand_omp_sections): Remove now unused code.
6790 * config.in (HAVE_polylib): Removed.
6791 * configure.ac (HAVE_polylib, POLYLIBLIBS, POLYLIBINC): Removed.
6792 (PPLLIBS, PPLINC): Added.
6793 * graphite.c: Replace unsigned with int wherever possible.
6794 Don't access Cloog's data structures, but use accessor functions.
6795 Clast's stmt->type is now implemented as a vtable: change the
6796 switches of stmt->type into ifs.
6797 (polylib/polylibgmp.h): Don't include.
6798 (initialize_dependence_polyhedron,
6799 initialize_data_dependence_polyhedron, is_empty_polyhedron,
6800 statement_precedes_p, test_dependence, build_rdg_all_levels,
6801 dump_dependence_graph): Removed until this code is cleaned up
6802 or ported to Cloog.
6803 * Makefile.in (POLYLIBLIBS): Renamed PPLLIBS.
6804 (POLYLIBINC): Renamed PPLINC.
6805
68062008-08-01 Harsha Jagasia <harsha.jagasia@amd.com>
6807 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
6808 Jan Sjodin <jan.sjodin@amd.com>
6809
6810 Finish the merge and tuplification of graphite.
6811
68122008-07-24 Sebastian Pop <sebastian.pop@amd.com>
6813 Jan Sjodin <jan.sjodin@amd.com>
6814
6815 Partial merge from mainline (138072:138275).
6816 * graphite.c still has to be tuplified.
6817
68182008-07-29 Jan Sjodin <jan.sjodin@amd.com>
6819
6820 * graphite.c (graphite_loops_mapping_max_loop_num): New.
6821 (create_num_from_index): New.
6822 (get_num_from_index): Also pass in the graphite BB.
6823 (free_graphite_bb): Free GBB_INDEX_TO_NUM_MAP.
6824 (build_graphite_bb): Initialize GBB_INDEX_TO_NUM_MAP.
6825 (graphite_trans_bb_strip_mine): Call create_num_from_index.
6826 (is_interchange_valid): Return false when failing.
6827 * graphite.h (struct num_map): New.
6828 (struct graphite_bb): New field num_map.
6829 (GBB_LOOPS_MAPPING): Renamed GBB_INDEX_TO_NUM_MAP.
6830
68312008-07-29 Tobias Grosser <grosser@fim.uni-passau.de>
6832
6833 * graphite.c (dump_gbb_conditions): Print also conditions like
6834 "if (a)". Remove dublicated code and use print_generic_expr ().
6835 (stmt_simple_for_scop_p): Only allow conditions we can handle
6836 {<, <=, >, >=}.
6837
68382008-07-25 Jan Sjodin <jan.sjodin@amd.com>
6839
6840 * graphite.h (struct scop): Removed new_ivs field.
6841 (SCOP_NEWIVS): Deleted.
6842 * graphite.c (new_scop, free_scop, clast_name_to_gcc,
6843 clast_to_gcc_expression, graphite_create_new_loop):
6844 Removed use of new_ivs.
6845
68462008-07-25 Jan Sjodin <jan.sjodin@amd.com>
6847
6848 * graphite.c (debug_oldivs, debug_loop_vec, create_loops_mapping,
6849 create_loops_mapping_num, debug_loop_mapping_1): New.
6850 (debug_loop_mapping): Call debug_loop_mapping_1.
6851 (get_loop_mapping_for_num,
6852 graphite_loops_mapping_add_child,
6853 graphite_loops_mapping_add_child_num,
6854 graphite_loops_mapping_insert_child,
6855 graphite_loops_mapping_parent,
6856 split_loop_mapped_depth_for_num,
6857 loop_mapped_depth_split_loop): New.
6858 (increment_loop_mapped_depths): Removed.
6859 (swap_loop_mapped_depth_for_num): Reimplemented.
6860 (new_scop): Call create_loops_mapping.
6861 (scop_record_loop): Call graphite_loops_mapping_insert_child.
6862 (translate_clast): Pass the old loop father in parameter, and pass
6863 it to get_old_iv_from_ssa_name.
6864 (remove_edges_around_useless_blocks, can_generate_code_stmt,
6865 can_generate_code, can_generate_for_scop): New.
6866 (graphite_trans_bb_block): Returns false when it fails to transform.
6867 * graphite.h (graphite_loop_node, graphite_loops_mapping): New.
6868
68692008-07-25 Sebastian Pop <sebastian.pop@amd.com>
6870
6871 Reverted all the changes related to the streamization and
6872 loop fusion.
6873 These changes are now tracked in the streamization branch.
6874
68752008-07-25 Sebastian Pop <sebastian.pop@amd.com>
6876 Jan Sjodin <jan.sjodin@amd.com>
6877
6878 * graphite.c (gbb_compare): Correctly constify.
6879 (gbb_can_be_ignored): Indent.
6880 (graphite_trans_scop_swap_1and2): Add legality check.
6881 Remove dead FIXMEs.
6882
68832008-07-25 Sebastian Pop <sebastian.pop@amd.com>
6884
6885 Remove fallouts from "Reverted the Condate changes".
6886 * tree.h: Remove unused decl.
6c9df8cb 6887 * gcc.dg/tree-checker: Same.
c6bb733d 6888 * timevar.def: Remove counter.
6889
68902008-07-24 Sebastian Pop <sebastian.pop@amd.com>
6891
6892 * Merge from mainline (135673:138072).
6893
6894 Reverted the MIRO changes (from 2008-04-05) that are now
6895 tracked in the miro branch.
6896 * tree-bounds.c: Removed.
6897 * tree-bounds.h: Removed.
6898
6899 Reverted the Condate changes (from 2006-07-04, 2007-03-20) that
6900 are now tracked in the condate branch.
6901 * tree-check.c: Removed.
6902 * tree-match.c: Removed.
6903 * condate.y: Removed.
6904
69052008-07-24 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
6906
6907 * common.opt: New user flag -floop-block, -floop-strip-mine
6908 and -floop-interchange.
6909 * toplev.c (process_options): Enable -fgraphite pass if any one of the
6910 graphite loop optimization flags is turned on.
6911 * graphite.c (graphite_apply_transformations): Add flag_loop_block,
6912 flag_loop_strip_mine and flag_loop_interchange checks before
6913 optimizations.
6914 * doc/invoke.texi: Remove -fgraphite and add -floop-block,
6915 -floop-strip-mine and -floop-interchange.
6c9df8cb 6916 * gcc.dg/graphite/block-0.c: Add -floop-block and remove
c6bb733d 6917 -fgraphite.
6c9df8cb 6918 * gcc.dg/graphite/scop-16.c: Ditto.
6919 * gcc.dg/graphite/scop-17.c: Ditto.
6920 * gcc.dg/graphite/scop-18.c: Ditto.
c6bb733d 6921
69222008-07-23 Jan Sjodin <jan.sjodin@amd.com>
6923 Sebastian Pop <sebastian.pop@amd.com>
6924
6925 * cfgloopmanip.c (update_dominators_in_loop): Make it static.
6926 (create_empty_loop_on_edge): More fixes.
6927 * tree-phinodes.c (resize_phi_node): Extern.
6928 (unlink_phi_node, move_phi_node): New split from remove_phi_node.
6929 * cfghooks.c (update_dominator_information): New split from
6930 split_edge.
6931 * tree-vectorizer.c (rename_variables_in_bb): Extern.
6932 * tree-dfa.c (collect_dfa_stats): Start walking the CFG on the
6933 successor of the function entry block.
6934
6935 * graphite.c: Include pointer-set.h.
6936 (debug_loop_mapping, increment_loop_mapped_depths,
6937 get_loop_mapped_depth_for_num, get_loop_mapped_depth,
6938 set_loop_mapped_depth_for_num, set_loop_mapped_depth,
6939 swap_loop_mapped_depth_for_num, get_num_from_index,
6940 swap_loop_mapped_depth, loop_iv_stack_debug,
6941 loop_iv_stack_push, loop_iv_stack_pop, loop_iv_stack_get_iv,
6942 loop_iv_stack_get_iv_from_name, loop_iv_stack_debug,
6943 get_old_iv_from_ssa_name): New.
6944 (new_scop): Initialize SCOP_LOOPS_MAPPING.
6945 (free_scop): Free SCOP_LOOPS_MAPPING.
6946 (scop_record_loop): Record old ivs.
6947 (create_var_name): Removed.
6948 (initialize_cloog_names): Allocate double space in case strip mine
6949 applies to all loops once.
6950 (clast_name_to_gcc): Look up in the map ivstack passed in parameter.
6951 (clast_to_gcc_expression): Same. Implement more clast to gimple
6952 translation.
6953 (graphite_create_new_loop): Pass in ivstack.
6954 (remove_all_edges): Pass in the construction_edge.
6955 (graphite_remove_iv): Removed.
6956 (graphite_rename_ivs, graphite_rename_ivs_stmt,
6957 remove_cond_exprs): Rewritten.
6958 (move_phi_nodes): New.
6959 (disconnect_virtual_phi_nodes, disconnect_cond_expr): Removed.
6960 (translate_clast): Pass in ivstack. Rewrite some cases.
6961 (set_cloog_options, debug_clast_stmt): New.
6962 (find_transform): Use set_cloog_options.
6963 (outermost_loop_layer): Removed.
6964 (get_construction_edge, collect_virtual_phis, find_vdef_for_var_in_bb,
6965 find_vdef_for_var_1, find_vdef_for_var, patch_phis_for_virtual_defs,
6966 mark_old_loops, remove_dead_loops): New.
6967 (gloog): Rewritten.
6968 (graphite_trans_bb_move_loop): Call swap_loop_mapped_depth.
6969 (const_column_index, get_first_matching_sign_row_index,
6970 get_lower_bound_row, get_upper_bound_row, get_lower_bound,
6971 get_upper_bound): New.
6972 (graphite_trans_bb_strip_mine): Also update the iv map.
6973
6974 * graphite.h (graphite_loops_mapping, GBB_LOOPS_MAPPING): New.
6975 (struct name_tree): Add a loop field.
6976 (struct scop): Add a graphite_loops_mapping field.
6977 (SCOP_LOOPS_MAPPING): New.
6978 (debug_clast_stmt): Declare.
6979 * lambda.h (find_induction_var_from_exit_cond): Declare.
6980 (lambda-code.c): (find_induction_var_from_exit_cond): Extern.
6981 * cfgloop.h (update_dominators_in_loop): Removed declaration.
6982 (create_empty_loop_on_edge): Updated.
6983 * tree-flow.h (remove_bb, resize_phi_node, move_phi_node,
6984 rename_variables_in_bb): Declare.
6985 * tree-cfg.c (remove_bb): Extern.
6986
6c9df8cb 6987 * gcc.dg/graphite/block-0.c: New.
c6bb733d 6988
69892008-07-21 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
6990 Sebastian Pop <sebastian.pop@amd.com>
6991
6992 * graphite.c (strip_mine_profitable_p): New.
6993 (graphite_trans_bb_block): Disable strip mining if not profitable.
6994
6c9df8cb 6995 * gcc.dg/graphite/scop-18.c: New.
6996 * gcc.dg/graphite/scop-17.c: Fixed.
6997 * gcc.dg/graphite/scop-16.c: Fixed.
c6bb733d 6998
69992008-07-17 Harsha Jagasia <harsha.jagasia@amd.com>
7000 Jan Sjodin <jan.sjodin@amd.com>
7001 Sebastian Pop <sebastian.pop@amd.com>
7002
7003 * graphite.c (is_interchange_valid): New.
7004 (graphite_trans_bb_block): Check loop nest of basic block for legality
7005 of interchange.
7006
7007 * graphite.h (gbb_inner_most_loop_index, outer_most_loop_1,
7008 outer_most_loop, gbb_outer_most_loop_index): New.
7009
7010 * tree-loop-linear.c (perfect_loop_nest_depth): Remove static.
7011 * tree-flow.h (perfect_loop_nest_depth): Declare as extern.
6c9df8cb 7012 * gcc.dg/graphite/scop-16.c: New.
7013 * gcc.dg/graphite/scop-17.c: New.
c6bb733d 7014
70152008-07-11 Tobias Grosser <grosser@fim.uni-passau.de>
7016
7017 * graphite.c (scop_remove_ignoreable_gbbs): Also update bitmap.
7018 (graphite_trans_scop_block): Ignore SCoPs without bbs.
7019
70202008-07-11 Tobias Grosser <grosser@fim.uni-passau.de>
7021
7022 * graphite.c (new_scop): Initialize SCOP_EXIT.
7023 (scopdet_info): Add.
7024 (scopdet_bb_info): Rename from is_bb_addable. Cleanup, bugfixes.
7025 (build_scops_1): Cleanup, bugfixes.
7026 (build_scops): Cleanup.
7027
6c9df8cb 7028 * gcc.dg/graphite/scop-matmult.c: Remove duplicated code.
7029 * gcc.dg/graphite/scop-15.c: Add SCoP numbers.
c6bb733d 7030
70312008-07-10 Harsha Jagasia <harsha.jagasia@amd.com>
7032
6c9df8cb 7033 * gfortran.dg/graphite/scop-1.f: Update to reduced test case.
c6bb733d 7034
6c9df8cb 7035 * gfortran.dg/graphite/graphite.exp: Use
c6bb733d 7036 DEFAULT_GRAPHITE_FLAGS.
7037
6c9df8cb 7038 * gcc.dg/graphite/scop-15.c: Update to reduced test case.
c6bb733d 7039
70402008-07-10 Harsha Jagasia <harsha.jagasia@amd.com>
7041
7042 * graphite.c (scan_tree_for_params): Do not assert any more if
7043 MULT_EXPR parameter is negative.
7044
6c9df8cb 7045 * gfortran.dg/graphite/scop-1.f: New.
c6bb733d 7046
6c9df8cb 7047 * gfortran.dg/graphite/graphite.exp: New.
c6bb733d 7048
6c9df8cb 7049 * gcc.dg/graphite/scop-15.c: New.
c6bb733d 7050
70512008-07-10 Harsha Jagasia <harsha.jagasia@amd.com>
7052
7053 * graphite.c (is_bb_addable): Fix segfault in spec gzip and reformat.
7054
70552008-07-10 Tobias Grosser <grosser@fim.uni-passau.de>
7056
7057 * graphite.c (graphite_trans_bb_swap_loops): Rename from
7058 graphite_swap_loops.
7059 (graphite_trans_bb_move_loop): New.
7060 (graphite_trans_bb_strip_mine): Rename from graphite_strip_mine_loop.
7061 (graphite_trans_bb_block): New.
7062 (graphite_trans_loop_block): New.
7063 (graphite_trans_scop_swap_1and2): Rename from
7064 graphite_trans_swap_1and2.
7065 (graphite_trans_scop_strip): Rename from graphite_trans_strip.
7066 (graphite_trans_scop_block): New.
7067 (graphite_apply_transformations): Rename from
7068 graphite_transformations.
7069
6c9df8cb 7070 * gcc.dg/graphite/scop-matmult.c: New.
c6bb733d 7071
70722008-07-10 Tobias Grosser <grosser@fim.uni-passau.de>
7073
7074 * graphite.c (gbb_compare): New.
7075 (graphite_sort_gbbs): New.
7076 (gbb_can_be_ignored): New.
7077 (scop_remove_ignoreable_gbbs): New.
7078 (graphite_transformations): Cleanup and add
7079 scop_remove_ignoreable_gbbs.
7080 * lambda.h (lambda_vector_compare): New.
7081
70822008-07-09 Tobias Grosser <grosser@fim.uni-passau.de>
7083
7084 * graphite.c (print_graphite_bb): Correct printing of static schedule.
7085 (graphite_swap_loops): int -> unsigned
7086 (graphite_strip_mine_loop): int -> unsigned, Fix SCHEDULE
7087 (graphite_transformations): New.
7088 (graphite_transform_loops): Move to graphite_transformations.
7089 * graphite.h (gbb_nb_loops): Return unsigned.
7090
70912008-07-04 Tobias Grosser <grosser@fim.uni-passau.de>
7092
7093 * graphite.c (scan_tree_for_params): Fix insertion of parameters into
7094 the domain matrix. This makes scop-0.c work again.
7095
70962008-06-20 Richard Guenther <rguenther@suse.de>
7097
7098 * graphite.h: Adjust copyright to GPLv3.
7099 * graphite.c: Likewise.
7100 (stmt_simple_memref_for_scop_p): Split out from ...
7101 (stmt_simple_for_scop_p): ... here. Fix handling of calls
7102 and simplify.
7103 (get_bb_type): Optimize.
7104 (is_pred): Remove.
7105 (is_bb_addable): Fix memleak, replace is_pred call with
7106 single_pred.
7107 (build_scops): Use current_loops.
7108 (param_index): Fix memleak.
7109
71102008-06-20 Konrad Trifunovic <konrad.trifunovic@inria.fr>
7111
7112 * graphite.c: Fix formatting.
7113
71142008-06-19 Konrad Trifunovic <konrad.trifunovic@inria.fr>
7115
7116 * graphite.c (new_scop): Memory allocation for SCOP_{NEWIVS, OLDIVS}.
7117 (free_scop): Memory deallocation for SCOP_NEWIVS, SCOP_OLDIVS.
7118 (create_var_name, save_var_name): Newly defined functions.
7119 (initialize_cloog_names): Part of the code factored out to
7120 save_var_name.
7121 (clast_to_gcc_expression): Now handles the case of clast_red_sum
7122 in clast_reduction statement.
7123 (graphite_create_new_loop): Now takes a new parameter
7124 for outer_loop.
7125 (translate_clast): Now also takes the context_loop and bb_exit
7126 parameters. Rewritten the code so that it creates a gimple code
7127 inside the given context.
7128 (outermost_loop_layer, graphite_remove_iv, graphite_rename_ivs,
7129 remove_cond_expr, disconnect_cond_expr,
7130 disconnect_virtual_phi_nodes): Newly defined functions.
7131 * graphite.h (struct scop): added old_ivs vector.
7132 SCOP_OLDIVS: New macro.
7133
71342008-06-19 Sebastian Pop <sebastian.pop@amd.com>
7135
7136 * cfgloopmanip.c: Add missing function comments, fix formatting.
7137
71382008-06-18 Konrad Trifunovic <konrad.trifunovic@inria.fr>
7139
7140 * cfgloopmanip.c (update_dominators_in_loop): Defined.
7141 (create_empty_loop_on_edge): Defined.
7142 * tree-parloops.c (canonicalize_loop_ivs): Returns tree
7143 instead of void.
7144 * cfgloop.h (create_empty_loop_on_edge): Declared as extern.
7145 (update_dominators_in_loop): Declared as extern
7146 * tree-flow.h (canonicalize_loop_ivs): Declared as extern.
7147
71482008-06-16 Tobias Grosser <grosser@fim.uni-passau.de>
7149
7150 * graphite.c (print_graphite_bb): Allow changing number of loops
7151 in SCoP domain.
7152 (initialize_cloog_names): Allow changing number of loops.
7153 (build_cloog_prog): Simplify.
7154 (find_transform): Enable cloog option --strides.
7155 (graphite_swap_loops): New.
7156 (graphite_strip_mine_loop): New.
7157 (graphite_trans_swap_1and2): New.
7158 (graphite_trans_strip): New.
7159 (graphite_transform_loops): Add graphite_trans_strip.
7160 * graphite.h (scop_max_loop_depth): New.
7161
71622008-06-15 Tobias Grosser <grosser@fim.uni-passau.de>
7163
7164 * graphite.c (build_scop_iteration_domain): Remove forgotten
7165 line. (Fixes compile)
7166
71672008-06-15 Tobias Grosser <grosser@fim.uni-passau.de>
7168
7169 * graphite.c (print_graphite_bb): Add output of GBB_LOOPS.
7170 (build_graphite_bb): Add GBB_LOOPS and GBB_DOMAIN and reorder.
7171 (build_bb_loops): New.
7172 (graphite_transform_loops): Add build_bb_loops.
7173 (schedule_to_scattering): Use gbb_nb_loops to support changing loop
7174 numbers.
7175 * graphite.h (graphite_bb): Add loops.
7176 (gbb_nb_loops): New.
7177 (gbb_loop_at_index): New.
7178 (gbb_loop_index): New.
7179 (nb_params_in_scop): Renamed to scop_nb_params. Updated all functions
7180 using nb_params_in_scop.
7181
71822008-06-14 Tobias Grosser <grosser@fim.uni-passau.de>
7183
7184 * graphite.c (print_graphite_bb): Adapt to minimized schedule.
7185 (build_scop_canonical_schedules): Build minimized schedule.
7186 (schedule_to_scattering): Adapt to minimized schedule.
7187 * graphite.h (graphite_bb): Add/Update descriptions.
7188
71892008-06-14 Adrien Eliche <aeliche@isty.uvsq.fr>
7190 Tobias Grosser <grosser@fim.uni-passau.de>
7191
7192 * graphite.c (print_graphite_bb): Add condition printing.
7193 (dump_value): New.
7194 (dump_gbb_conditions): New.
7195 (build_scop_conditions_1): New.
7196 (build_scop_conditions): New.
7197 * graphite.h (graphite_bb): Add conditions.
7198
71992008-06-14 Tobias Grosser <grosser@fim.uni-passau.de>
7200
7201 * graphite.c (print_graphite_bb):
7202 (free_graphite_bb): New.
7203 (free_scop): Free bbs.
7204 (get_bb_type): Free doms.
7205 (build_scop_context): Free context matrix.
7206 (build_loop_iteration_domains): Remove unused code.
7207 (build_cloog_prog): Free scattering function and blocklist.
7208 (find_transform): Free options.
7209
72102008-06-13 Tobias Grosser <grosser@fim.uni-passau.de>
7211
7212 * graphite.c (loop_body_to_cloog_stmts): Rename to add_bb_domains.
7213 Remove unnecessery cloog data structures. Make a copy of the domain
7214 (setup_cloog_loop): Rename to build_loop_iteration_domains. Remove
7215 unnecessary cloog data structures. Fix memory leaks. Remove insert
7216 into SCOP_LOOP2CLOOG_LOOP as the inserted CloogLoops will never be
7217 used.
7218 (build_scop_iteration_domain): Remove unnecessary cloog
7219 data structures. Fix memory leaks.
7220 (graphite_transform_loops): Disable build_scop_dynamic_schedules as it
7221 uses SCOP_LOOP2CLOOG_LOOP, that is at the moment not working.
7222
72232008-06-12 Tobias Grosser <grosser@fim.uni-passau.de>
7224
7225 * graphite.c (find_scop_params): Remove initialize_cloog_names.
7226
72272008-06-12 Tobias Grosser <grosser@fim.uni-passau.de>
7228
7229 * graphite.c (end_scop): Style fix.
7230 (schedule_to_scattering): Style and comment fix.
7231
72322008-06-12 Tobias Grosser <grosser@fim.uni-passau.de>
7233 * graphite.c (print_graphite_bb): Fix definiton of
7234 schedule_to_scattering.
7235 (initialize_cloog_names): Change nb_scattdims to max loop
7236 depth in SCoP.
7237 (schedule_to_scattering): Take parameter for number of scattering
7238 dimensions.
7239 (build_cloog_prog): Only build as much scattering dimensions as
7240 necessary.
7241
72422008-06-12 Tobias Grosser <grosser@fim.uni-passau.de>
7243
7244 * graphite.c (end_scop): Disable bb splitting. Fixes SIGSEGV
7245 in polyhedron/aermod.f90.
7246
72472008-06-11 Tobias Grosser <grosser@fim.uni-passau.de>
7248 Dwarak Rajagopal <dwarak.rajagopal@amd.com>
7249 Harsha Jagasia <harsha.jagasia@amd.com>
7250
7251 * graphite.c (is_bb_addable): Fix segfault.
7252
72532008-06-10 Tobias Grosser <grosser@fim.uni-passau.de>
7254
7255 * graphite.c (is_bb_addable): Fix memory leak, handling of loops
7256 with multiple exits and conditional handling in edge cases.
7257 (is_loop_exit): Fix memory leak. (Forgotten in last commit)
7258
6c9df8cb 7259 * gcc.dg/graphite/scop-14.c: New.
c6bb733d 7260
72612008-06-06 Tobias Grosser <grosser@fim.uni-passau.de>
7262 Adrien Eliche <aeliche@isty.uvsq.fr>
7263
7264 * graphite.c (is_bb_addable): Add more comments and enhance
7265 readablity of the source code. Fix memory leak.
7266 (is_loop_exit): Fix memory leak.
7267
72682008-06-05 Tobias Grosser <grosser@fim.uni-passau.de>
7269
7270 * graphite.c (first_loop_in_scop): Deleted.
7271 (setup_cloog_loop): Only walk the loop chain for inner loops.
7272 (build_scop_iteration_domain): Execute setup_cloog_loop for
7273 all loops in the first layer.
7274
72752008-06-05 Tobias Grosser <grosser@fim.uni-passau.de>
7276
7277 * graphite.c (scan_tree_for_params): Change the way params are
7278 added to be indepenent of the number of loops.
7279 (setup_cloog_loop): Revert to short matrix format. Fix parameter
7280 handling.
7281 (build_cloog_prog): Revert to short matrix format.
7282
72832008-06-05 Sebastian Pop <sebastian.pop@amd.com>
7284 Dwarak Rajagopal <dwarak.rajagopal@amd.com>
7285
7286 * tree-loop-fusion.c (fuse_loops): Fix uninitialized variable
7287 warning.
7288
72892008-06-05 Sebastian Pop <sebastian.pop@amd.com>
7290
7291 * graphite.c (nb_data_refs_in_scop): New.
7292 (graphite_transform_loops): Print more stats: number of
7293 loops, basic blocks and data references per scop.
7294
72952008-06-04 Sebastian Pop <sebastian.pop@amd.com>
7296 Jan Sjodin <jan.sjodin@amd.com>
7297
7298 * graphite.c (loop_affine_expr, idx_record_params,
7299 find_scop_parameters, setup_cloog_loop): Use instantiate_scev
7300 instead of instantiate_parameters.
7301
73022008-06-04 Tobias Grosser <grosser@fim.uni-passau.de>
7303
7304 * graphite.c (schedule_to_scattering): Fix scattering dimensions,
7305 add support for parameters, add STATIC_SCHEDULE at the right places,
7306 cleanup.
7307
73082008-06-04 Tobias Grosser <grosser@fim.uni-passau.de>
7309
7310 * graphite.c (build_scop_loop_nests): Only add the loops, that
7311 are contained completely in the SCoP.
7312 (build_cloog_prog): Disable scattering, until schedule_to_scattering
7313 and the domains are fixed.
7314 (build_scop_canonical_schedules): Add support for bbs not contained
7315 in any SCoP.
7316
73172008-06-04 Tobias Grosser <grosser@fim.uni-passau.de>
7318
7319 * graphite.h (scop_contains_loop): Update comments to match
7320 the actual behavior.
7321 (scop_contains_loop): New.
7322 * graphite.c (schedule_to_scattering): Use scop_contains_loop.
7323
73242008-06-04 Sebastian Pop <sebastian.pop@amd.com>
7325
7326 * graphite.c (get_bb_type): On function body, i.e. loop_0,
7327 don't mark blocks as GBB_LOOP_SING_EXIT_HEADER, mark them
7328 as GBB_COND_HEADER.
7329
73302008-06-04 Sebastian Pop <sebastian.pop@amd.com>
7331 Tobias Grosser <grosser@fim.uni-passau.de>
7332
7333 * graphite.c (graphite_transform_loops): Early return when
7334 there are no loops in the function.
7335
73362008-05-31 Sebastian Pop <sebastian.pop@amd.com>
7337 Jan Sjodin <jan.sjodin@amd.com>
7338
7339 * graphite.c (scan_tree_for_params, setup_cloog_loop): Compute the
7340 offset of the last loop.
7341 (setup_cloog_loop): Copy the entire outer constraint matrix.
7342
73432008-05-31 Sebastian Pop <sebastian.pop@amd.com>
7344 Jan Sjodin <jan.sjodin@amd.com>
7345
7346 * graphite.c (stmt_in_scop_p, function_parameter_p,
7347 invariant_in_scop_p): Removed.
7348 (scan_tree_for_params): Can be used with no constraint
7349 matrix for gathering parameters.
7350 (idx_record_params): Don't use idx_record_param, instead use
7351 scan_tree_for_params.
7352 (find_scop_parameters): Same.
7353 (setup_cloog_loop, build_scop_iteration_domain, build_cloog_prog):
7354 Fix the size of loop domains.
7355 (schedule_to_scattering): Exit when the outer loop is not in scop.
7356 (find_transform): Enable build_cloog_prog.
7357
73582008-05-31 Sebastian Pop <sebastian.pop@amd.com>
7359 Jan Sjodin <jan.sjodin@amd.com>
7360
7361 * graphite.c (schedule_to_scattering): Make scattering domains
7362 uniformly of the same size, as required by CLooG 0.14.0 and before.
7363
73642008-05-31 Sebastian Pop <sebastian.pop@amd.com>
7365 Jan Sjodin <jan.sjodin@amd.com>
7366
7367 * graphite.c (schedule_to_scattering): Rewrite, correct the
7368 translation of the scheduling function to scattering.
7369 (build_cloog_prog): Call schedule_to_scattering only once.
7370 * graphite.h (scop_loop_index): Do not fail for loops not
7371 in the scop: return -1.
7372
73732008-05-30 Tobias Grosser <grosser@fim.uni-passau.de>
7374
7375 * graphite.c (build_graphite_bb): Initialize GBB_DOMAIN.
7376 (loop_body_to_cloog_stmts): Export GBB_DOMAIN.
7377 (setup_cloog_loop): Export GBB_DOMAIN.
7378 (build_cloog_prog): New. Create new CLOOG_PROG, which should be
7379 able to rebuild the original control flow.
7380 * graphite.h (graphite_bb): Add domain field and access macro.
7381 (GBB_DOMAIN): New.
7382
73832008-05-30 Sebastian Pop <sebastian.pop@amd.com>
7384
7385 * graphite.c (debug_gbb): New.
7386 (print_scop, build_graphite_bb): Use SCOP_BBS.
7387 (build_scop_bbs): Reimplemented.
7388 (dfs_bb_in_scop_p): Removed.
7389 (build_scop_loop_nests): Reorder loops inserted in
7390 SCOP_LOOP_NEST: outer loops should come first.
7391 (build_scop_canonical_schedules): Reinitialize at zero
7392 the components of the SCOP_STATIC_SCHEDULE for the loops
7393 that have already been parsed.
7394
7395 * graphite.h (debug_gbb): Declared.
7396
73972008-05-30 Sebastian Pop <sebastian.pop@amd.com>
7398 Jan Sjodin <jan.sjodin@amd.com>
7399
7400 * graphite.c (create_empty_loop): Renamed graphite_create_new_loop.
7401 (graphite_loop_to_gcc_loop): Removed.
7402 (remove_all_edges): New.
7403 (graphite_stmt_to_gcc_stmt): Renamed translate_clast.
7404 (gloog): Remove useless code.
7405
74062008-05-29 Tobias Grosser <grosser@fim.uni-passau.de>
7407
7408 * graphite.c (get_bb_type): Reworked. We distinguish between
7409 loops with one or multiple exits.
7410 (is_loop_exit): New.
7411 (is_pred): New.
7412 (is_bb_addable): Rework condition handling, now support for case
7413 case statements and loops with multiple exits.
7414
6c9df8cb 7415 * gcc.dg/graphite/scop-11.c: New.
7416 * gcc.dg/graphite/scop-12.c: New.
7417 * gcc.dg/graphite/scop-13.c: New.
c6bb733d 7418
74192008-05-29 Tobias Grosser <grosser@fim.uni-passau.de>
7420
7421 * graphite.c (dot_all_scops_1): Fix some colors. Reuse colors, if
7422 we have too many colors.
7423
74242008-05-22 Sandeep Maram <smaram_b04@iiita.ac.in>
7425
7426 * doc/invoke.texi (-ftree-loop-fusion): Document.
7427 * tree-pass.h (pass_loop_fusion): Declared.
7428 * tree-loop-fusion.c: New.
7429 * timevar.def (TV_TREE_LOOP_FUSION): Declared.
7430 * tree-data-ref.c (find_data_references_in_loop): Make extern.
7431 * tree-data-ref.h (find_data_references_in_loop): Declared.
7432 * common.opt (ftree-loop-fusion): Declared.
7433 * Makefile.in (tree-loop-fusion.o): Added rule and to OBJS-common.
7434
74352008-05-21 Sebastian Pop <sebastian.pop@amd.com>
7436
7437 * graphite.c (build_access_matrix): Fix typo from the merge.
7438
74392008-05-20 Sebastian Pop <sebastian.pop@amd.com>
7440
7441 * Merge from mainline (130800:135673).
7442
74432008-05-07 Sebastian Pop <sebastian.pop@amd.com>
7444
7445 * graphite.c (end_scop): The exit of the scop is not part of the scop.
7446 Update dominators after splitting.
7447
74482008-05-07 Sebastian Pop <sebastian.pop@amd.com>
7449
7450 * graphite.c (is_bb_addable): Return the harmful statement.
7451 Factor up some code.
7452 (end_scop): New. Splits end of scope bbs on a harmful statement.
7453 (build_scops_1): Call end_scop.
7454
74552008-05-07 Sebastian Pop <sebastian.pop@amd.com>
7456
7457 * graphite.c: (succs_at_same_depth, end_scop, all_preds_visited_p,
7458 all_succs_visited_p, start_new_scop_for_each_succ, start_new_scop,
7459 add_dominators_to_open_scops, stop_last_open_scop, scop_end_loop,
7460 build_scops_1): Removed.
7461 (build_scops_2): Renamed build_scops_1.
7462
74632008-05-06 Sebastian Pop <sebastian.pop@amd.com>
7464
7465 * graphite.c: Fix formatting.
7466
74672008-05-06 Tobias Grosser <grosser@fim.uni-passau.de>
7468
7469 * graphite.c (get_bb_type): New.
7470 (move_scops): New.
7471 (build_scops_2): New.
7472 (is_bb_addable): New.
7473 (build_scops): Switch the scop detection.
7474 (build_scop_bbs): Add entry bb to scop.
7475 * graphite.h (struct scop): Update comment.
7476
74772008-05-06 Tobias Grosser <grosser@fim.uni-passau.de>
7478
7479 * graphite.c (dot_all_scops_1): Fix some incorrect colors and add
7480 more colors.
7481
74822008-05-06 Tobias Grosser <grosser@fim.uni-passau.de>
7483
6c9df8cb 7484 * gcc.dg/graphite/scop-1.c: Update.
7485 * gcc.dg/graphite/scop-2.c: Update.
7486 * gcc.dg/graphite/scop-4.c: Update.
7487 * gcc.dg/graphite/scop-5.c: Add.
7488 * gcc.dg/graphite/scop-6.c: Add.
c6bb733d 7489
74902008-05-06 Sebastian Pop <sebastian.pop@amd.com>
7491
6c9df8cb 7492 * gcc.dg/graphite/scop-0.c: Add.
7493 * gcc.dg/graphite/scop-7.c: Add.
7494 * gcc.dg/graphite/scop-8.c: Add.
7495 * gcc.dg/graphite/scop-9.c: Add.
7496 * gcc.dg/graphite/scop-10.c: Add.
c6bb733d 7497
74982008-05-06 Tobias Grosser <grosser@fim.uni-passau.de>
7499
7500 * graphite.c (scop_affine_expr): Renamed to loop_affine_expr.
7501 Check affine expressions depending on the outermost loop
7502 instead of a scop.
7503 (stmt_simple_for_scop_p): Same.
7504 (harmfule_stmt_in_scop): Same.
7505
75062008-04-28 Tobias Grosser <grosser@fim.uni-passau.de>
7507
7508 * graphite.c (dot_all_scops): Remove incorrect difficult bb coloring,
7509 mark entry and exit, that are not part of the SCoP and update HTML
7510 formatting.
7511
75122008-04-25 Sebastian Pop <sebastian.pop@amd.com>
7513
7514 * graphite.c (basic_block_simple_for_scop_p): Renamed
7515 harmful_stmt_in_bb.
7516 (save_scop, preds_at_same_depth, test_for_scop_bound): Removed.
7517 (add_dominators_to_open_scops, build_scops_1): Reimplemented.
7518 (all_preds_visited_p, all_succs_visited_p,
7519 start_new_scop_for_each_succ, start_new_scop, stop_last_open_scop,
7520 scop_end_loop): New.
7521 (build_scops): Do not use dfs_enumerate_from.
7522
6c9df8cb 7523 * gcc.dg/graphite/scop-{1,2,4}.c: Updated.
c6bb733d 7524
75252008-04-23 Sebastian Pop <sebastian.pop@amd.com>
7526
7527 * graphite.c: Add comments to functions that are missing a
7528 description.
7529 (graphite_create_iv): Removed. Merged in graphite_loop_to_gcc_loop.
7530
75312008-04-23 Sebastian Pop <sebastian.pop@amd.com>
7532
7533 * graphite.c (nb_params_in_scop): Moved...
7534 (graphite_bb_from_bb, loop_body_to_cloog_stmts): New.
7535 (setup_cloog_loop): Call loop_body_to_cloog_stmts.
7536 (clast_to_gcc_expression): Reduce column size to less than 80.
7537 (graphite_create_iv): Return the new name of the IV.
7538 (find_transform): Set options->esp and options->cpp.
7539 (gloog): Comment out the invalidation of the old loop code.
7540 (initialize_dependence_polyhedron): Replace scop_nb_params with
7541 nb_params_in_scop.
7542
7543 * graphite.h (nb_params_in_scop): ... here.
7544 (scop_nb_params): Removed.
7545 (loop_domain_dim): Return something even when the loop was not
7546 found in the hash table: avoid ICEing on all the graphite.exp
7547 testcases.
7548
75492008-04-14 Konrad Trifunovic <konrad.trifunovic@inria.fr>
7550
7551 * tree-chrec.c (for_each_scev_op): SCEV can have 3 operands.
7552
7553 * graphite.c (build_scop_dynamic_schedules): Schedule is built
7554 according to nesting level.
7555 (find_scop_parameters): Call instantiate_parameters.
7556 (scan_tree_for_params): Extend it to handle general affine bounds.
7557 Inner loop bound can depend on outer loop induction variable.
7558 (setup_cloog_loop): tmp variable is allocated on stack. Call
7559 instantiate_parameters with respect to outermost_loop_in_scop.
7560 (loop_domain_dim, ref_nb_loops, loop_iteration_vector_dim): moved to
7561 graphite.h.
7562 (create_empty_loop): Function loopify should be given edge
7563 probability, instead of edge frequency. Dominance relation from
7564 switch_bb to loop_header.
7565 (clast_to_gcc_expression): Added handling of clast_reduction node.
7566 (gloog): New functionality for removing old loop.
7567 (test_dependence): Factored out from build_rdg_all_levels.
7568 (build_rdg_all_levels): Dependence testing factored out to
7569 test_dependence function.
7570
7571 * graphite.h (struct graphite_bb): Extended with dynamic_schedule.
7572 (loop_domain_dim, ref_nb_loops, loop_iteration_vector_dim): Moved
7573 from graphite.c
7574
75752008-04-07 Sebastian Pop <sebastian.pop@amd.com>
7576
7577 * graphite.c (free_scop, param_index, initialize_cloog_names,
7578 nb_params_in_scop): Use name_tree map instead of just a tree
7579 for keeping track of the variable name associated to that tree.
7580 (create_empty_loop, gmp_cst_to_tree, clast_name_to_gcc,
7581 clast_to_gcc_expression, graphite_create_iv,
7582 graphite_loop_to_gcc_loop, graphite_cond_to_gcc_cond,
7583 graphite_stmt_to_gcc_stmt): New.
7584 (gloog): Call these.
7585 * graphite.h (struct name_tree): New.
7586 (struct scop): Use name_tree instead of tree for params.
7587 Store a vector of name_tree for new_ivs.
7588 (SCOP_NEWIVS): New.
7589 (scop_nb_params): Use name_tree instead of tree.
7590
75912008-04-05 Alexander Lamaison <awl03@doc.ic.ac.uk>
7592 Sebastian Pop <sebastian.pop@amd.com>
7593
7594 * tree-bounds.c: New.
7595 * tree-bounds.h: New.
7596 * tree-pass.h: Declare pass_bounds_early and pass_bounds_late.
7597 * passes.c: Schedule pass_bounds_early, pass_bounds_late.
7598 * builtins.c (expand_builtin_alloca): Add flag_bounds as for
7599 flag_mudflap.
7600 * gcc.c: Same.
7601 * toplev.c: Same.
7602 * c-cppbuiltin.c: Same.
7603 * c-pragma.c: Same.
7604 * common.opt: Same.
7605 * varasm.c: Same.
7606 * tree-outof-ssa.c: Same.
7607 * c-common.c: Same.
7608 * Makefile.in: Same.
7609
76102008-03-15 Antoniu Pop <antoniu.pop@gmail.com>
7611 Sebastian Pop <sebastian.pop@amd.com>
7612
7613 * tree-loop-distribution.c (remaining_stmts,
7614 upstream_mem_writes): Removed static variables.
7615 (copy_loop_before, create_bb_after_loop,
7616 mark_nodes_having_upstream_mem_writes, free_rdg_components,
7617 rdg_build_components, rdg_build_partitions,
7618 dump_rdg_partitions): Extern.
7619 (generate_loops_for_partition, generate_code_for_partition): Do not
7620 return a bool.
7621 (already_processed_vertex_p, predecessor_has_mem_write,
7622 mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes,
7623 rdg_flag_all_uses, rdg_flag_uses, rdg_flag_vertex_and_dependent,
7624 rdg_flag_loop_exits, rdg_flag_similar_memory_accesses,
7625 build_rdg_partition_for_component, rdg_build_partitions, ldist_gen):
7626 Pass remaining_stmts and upstream_mem_writes as parameters.
7627 (rdg_component): Moved...
7628 (build_rdg_partition_for_component): Do not aggregate components when
7629 flag_streamize_loops is set.
7630 (gen_sequential_loops): New.
7631 (ldist_gen): Call gen_sequential_loops.
7632
7633 * tree-pass.h (pass_loop_streamization): Declared.
7634
7635 * omp-low.c (expand_omp_sections): Call add_bb_to_loop on created
7636 basic blocks when loops structures exist.
7637
7638 * builtin-types.def (BT_FN_VOID_PTR_PTR_INT): New.
7639
7640 * tree-ssa-loop-ivopts.c (expr_invariant_in_region_p): New.
7641
7642 * tree-parloops.c (take_address_of, eliminate_local_variables_1,
7643 eliminate_local_variables_stmt, eliminate_local_variables,
7644 separate_decls_in_loop_name, separate_decls_in_loop_stmt,
7645 separate_decls_in_loop, gen_parallel_loop): Make them work on a region
7646 of code delimited by two edges in the CFG.
7647 (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
7648 (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
7649 (separate_decls_in_loop): Renamed separate_decls_in_region. Isolate
7650 the case of parallelisation of reductions.
7651 (create_loop_fn): Extern.
7652 (create_omp_parallel_region): New.
7653
7654 * tree-data-ref.c (dump_data_dependence_relation): Don't call
7655 dump_data_reference for printing dra and drb.
7656 (create_rdg_edge_for_ddr, create_rdg_edges_for_scalar): Initialise
7657 RDGE_RELATION.
7658 (build_rdg): Don't call free_dependence_relations for the moment, as
7659 we attach dependence relations on each edge of the RDG.
7660 To be fixed later.
7661
7662 * tree-data-ref.h (rdg_component): ...here.
7663 (struct rdg_edge): New field ddr_p relation.
7664 (RDGE_RELATION): New.
7665 (create_bb_after_loop, copy_loop_before,
7666 mark_nodes_having_upstream_mem_writes, rdg_build_components,
7667 rdg_build_partitions, dump_rdg_partitions,
7668 free_rdg_components): Declared.
7669
7670 * omp-builtins.def (BUILT_IN_GOMP_STREAM_ALIGN_PUSH,
7671 BUILT_IN_GOMP_STREAM_ALIGN_POP): New.
7672
7673 * tree-loop-streamization.c: New.
7674
7675 * tree-flow.h (gather_blocks_in_sese_region, create_loop_fn,
7676 create_omp_parallel_region, expr_invariant_in_region_p): Declared.
7677
7678 * Makefile.in (tree-loop-streamization.o): Added to OBJS-common.
7679
7680 * tree-cfg.c (gather_blocks_in_sese_region): Extern.
7681
7682 * passes.c: Schedule pass_loop_streamization.
7683
76842008-03-08 Tobias Grosser <grosser@fmi.uni-passau.de>
7685
7686 * graphite.c (dot_all_scops_1): Fix formatting for difficult bbs and
7687 update comment.
7688
76892008-03-07 Tobias Grosser <grosser@fim.uni-passau.de>
7690
7691 * graphite.c (dot_all_scops): Update formatting.
7692 Bbs can now be part of more than one SCoP.
7693
76942008-03-04 Sebastian Pop <sebastian.pop@amd.com>
7695
7696 * graphite.c (new_loop_to_cloog_loop_str, setup_cloog_loop): Fix
7697 malloc problems.
7698 (loop_domain_dim): Check for unregistered toplev SCOP loop.
7699 * graphite.h (loop_to_cloog_loop): New.
7700
77012008-03-04 Konrad Trifunovic <konrad.trifunovic@inria.fr>
7702
7703 * graphite.c (loop_domain_dim, ref_nb_loops,
7704 loop_iteration_vector_dim): New.
7705 (build_access_matrix_with_af, build_access_matrix,
7706 initialize_dependence_polyhedron): Fixed for new matrix layout.
7707 No longer assume that all iteration domains are of the same
7708 dimensionality.
7709
77102008-03-02 Sebastian Pop <sebastian.pop@amd.com>
7711
7712 * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
7713 defined in a loop at depth 0 is invariant.
7714 * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
7715 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
7716 be called at loop depth 0.
7717
7718 * graphite.c (basic_block_simple_for_scop_p): Take the scop as
7719 a parameter.
7720 (dot_all_scops_1): Update use of basic_block_simple_for_scop_p.
7721 (down_open_scop): Removed.
7722 (loop_in_scop_p): Redefined.
7723 (scop_affine_expr): New argument: scop.
7724 (stmt_simple_for_scop_p): New argument: scop. RETURN_EXPR is not
7725 a harmful statement ending a scop.
7726 (basic_block_simple_for_scop_p): New argument: scop.
7727 (get_loop_start): Removed.
7728 (new_scop): Initialize SCOP_LOOPS.
7729 (free_scop): Free SCOP_LOOPS.
7730 (succs_at_same_depth, preds_at_same_depth): New.
7731 (end_scop): Test the validity of a scop.
7732 (add_dominators_to_open_scops): New.
7733 (test_for_scop_bound): Call add_dominators_to_open_scops.
7734 Add cases for opening and closing multiple scops.
7735 (build_scops, build_scop_bbs): Iterate over basic blocks in
7736 depth first order.
7737 (build_graphite_bb): Pass scop directly.
7738 (dfs_bb_in_scop_p): New.
7739 (scop_record_loop): Use SCOP_LOOPS for not recording the same loop
7740 several times.
7741 (nb_loops_around_gb): Use loop_in_scop_p.
7742 (schedule_to_scattering): Disabled for the moment the code computing
7743 the "textual order for outer loop".
7744
7745 * graphite.h (struct scop): New field loops.
7746 (SCOP_LOOPS): New.
7747 (scop_loop_index): Test that the given loop belongs to SCOP_LOOPS.
7748
6c9df8cb 7749 * gcc.dg/graphite/scop-{1,...,7}.c: Updated.
c6bb733d 7750
77512008-02-27 Antoniu Pop <antoniu.pop@gmail.com>
7752 Sebastian Pop <sebastian.pop@amd.com>
7753
7754 * builtin-types.def (BT_FN_PTR_SIZE_UINT, BT_FN_BOOL_PTR): New.
7755 * common.opt (fstreamize-loops): New.
7756 * omp-builtins.def (BUILT_IN_GOMP_STREAM_CREATE,
7757 BUILT_IN_GOMP_STREAM_PUSH, BUILT_IN_GOMP_STREAM_HEAD,
7758 BUILT_IN_GOMP_STREAM_POP, BUILT_IN_GOMP_STREAM_EOS_P,
7759 BUILT_IN_GOMP_STREAM_SET_EOS, BUILT_IN_GOMP_STREAM_DESTROY): New.
7760
77612008-02-22 Konrad Trifunovic <konrad.trifunovic@inria.fr>
7762
7763 * tree-data-ref.c (build_empty_rdg): New.
7764 (build_rdg): Use it.
7765 * tree-data-ref.h (build_empty_rdg): Declared.
7766 * graphite.c (free_scop): Free SCOP_LOOP2CLOOG_LOOP.
7767 (find_vertex_for_stmt): Removed.
7768 (build_rdg_all_levels): Use build_empty_rdg and rdg_vertex_for_stmt.
7769
77702008-02-21 Sebastian Pop <sebastian.pop@amd.com>
7771
7772 * tree-loop-distribution.c (generate_builtin): After cancelling the
7773 loop tree, also delete basic blocks.
7774 (rdg_flag_uses): Stop recursion when a vertex has already been
7775 processed.
7776
77772008-02-15 Konrad Trifunovic <konrad.trifunovic@inria.fr>
7778
7779 * graphite.c (build_scop_alpha): Removed.
7780 (graphite_transform_loops): Add a dummy call to build_all_rdg_levels
7781 and dump_dependence_graph to avoid compiler warnings.
7782
77832008-02-14 Konrad Trifunovic <konrad.trifunovic@inria.fr>
7784
7785 * tree-data-ref.c (dr_may_alias_p, create_rdg_vertices): Extern.
7786 * tree-data-ref.h (dr_may_alias_p, create_rdg_vertices): Declared.
7787 * graphite.c (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
7788 eq_loop_to_cloog_loop, del_loop_to_cloog_loop): New.
7789 (new_scop, setup_cloog_loop): Initialize SCOP_LOOP2CLOOG_LOOP.
7790 (initialize_dependence_polyhedron, find_vertex_for_stmt,
7791 initialize_data_dependence_polyhedron, is_empty_polyhedron,
7792 statement_precedes_p, build_rdg_all_levels, build_scop_alpha,
7793 dump_dependence_graph): New.
7794 * graphite.h (struct graphite_bb): New field compressed_alpha_matrix.
7795 (GBB_ALPHA): New.
7796 (struct scop): New field loop2cloog_loop.
7797 (SCOP_LOOP2CLOOG_LOOP, struct data_dependence_polyhedron,
7798 RDGE_DDP, ddp_p, struct loop_to_cloog_loop_str): New.
7799
78002008-02-10 Konrad Trifunovic <konrad.trifunovic@inria.fr>
7801
7802 * graphite.c (build_graphite_bb): Fix initialization
7803 of the graphite basic block.
7804
78052008-02-05 Sebastian Pop <sebastian.pop@amd.com>
7806
7807 * graphite.c (scan_tree_for_params): Rewrite for the new layout of
7808 loop domain matrix. Pass in the number of loops contained in the
7809 constraint matrix.
7810 (nb_loops_around_gb): Moved before setup_cloog_loop that uses it.
7811 (setup_cloog_loop): Rewrite for the new layout of loop domain matrix:
7812 loops that are not surrounding the current loop are not represented
7813 in the domain constraint matrix.
7814 (build_scop_iteration_domain): Initial domain constraint matrix
7815 contains only the eq/ineq, cst, and scop parameters columns.
7816
78172008-01-29 Tobias Grosser <grosser@fim.uni-passau.de>
7818
7819 * graphite.c (schedule_to_scattering, nb_loops_around_gb): New.
7820 (print_graphite_bb): Print scattering.
7821
78222008-01-29 Tobias Grosser <grosser@fim.uni-passau.de>
7823
7824 * graphite.c (initialize_cloog_names): Initialize names of
7825 scattering variables.
7826
78272009-01-29 Tobias Grosser <grosser@fim.uni-passau.de>
7828
7829 * graphite.c (dot_all_scops_1): Disable debug output while
7830 printing graph.
7831
78322008-01-29 Tobias Grosser <grosser@fim.uni-passau.de>
7833
7834 * graphite.c (find_transform): Change cloog output language to C.
7835
78362008-01-27 Sebastian Pop <sebastian.pop@amd.com>
7837
7838 * tree-loop-distribution.c (generate_memset_zero,
7839 generate_builtin, generate_code_for_partition,
7840 rdg_flag_all_uses): New.
7841 (rdg_flag_uses): Gather in the same partition the statements defining
7842 the VUSES of the current statement.
7843 (rdg_flag_similar_stores): Renamed rdg_flag_similar_memory_accesses.
7844 Gather in the same partition not only the stores to the same memory
7845 access, but also the reads.
7846 (ldist_generate_loops): Renamed ldist_gen.
7847
78482008-01-24 Sebastian Pop <sebastian.pop@amd.com>
7849 Tobias Grosser <grosser@fmi.uni-passau.de>
7850
7851 * graphite.c (setup_cloog_loop): Chain all cloog loops with the
7852 next pointer, don't use the inner pointer.
7853
78542008-01-20 Tobias Grosser <grosser@fmi.uni-passau.de>
7855
7856 * graphite.c (dot_all_scops, dot_all_scops_1): New.
7857 (find_transform): Call dot_all_1.
7858 * graphite.h (dot_all_scops): Declared.
7859
78602007-12-14 Sebastian Pop <sebastian.pop@amd.com>
7861
7862 * tree-loop-distribution.c: Fix apsi.f ICE.
7863 (create_bb_after_loop): New.
7864 (generate_loops_for_partition): Use it.
6c9df8cb 7865 * gfortran.dg/ldist-1.f90: New.
c6bb733d 7866
7867 * tree-data-ref.c (dot_rdg): Use /tmp/rdg.dot for dotty format.
7868 * graphite.c (dot_scop): Use /tmp/scop.dot for dotty format.
7869
78702007-12-13 Tobias Grosser <grosser@fmi.uni-passau.de>
7871
7872 * graphite.c (find_transform): Dump cloog program sent to cloog.
7873
78742007-12-13 Tobias Grosser <grosser@fmi.uni-passau.de>
7875
7876 * graphite.c (initialize_cloog_names): Initialize cloog
7877 iterator names.
7878
78792007-12-13 Tobias Grosser <grosser@fmi.uni-passau.de>
7880
7881 * graphite.c (build_scop_context): Fix typo, for the matrix
7882 format: insert '0 >= 0' instead of '-1 >= 0'.
7883
78842007-12-13 Sebastian Pop <sebastian.pop@amd.com>
7885
7886 * Fix merge problems.
7887
78882007-12-13 Sebastian Pop <sebastian.pop@amd.com>
7889
7890 * graphite.c (setup_cloog_loop): Fix typo.
7891
78922007-12-12 Sebastian Pop <sebastian.pop@amd.com>
7893
7894 * doc/invoke.texi (-ftree-loop-distribution): Documented.
7895 * tree-loop-distribution.c: Reimplemented.
7896 * tree-pass.h (pass_loop_distribution): New.
7897 * tree-scalar-evolution.c (number_of_iterations_for_all_loops): Use
7898 print_loops.
7899 * graphds.h (struct graph): New field indexes.
7900 * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
7901
7902 * tree-vect-analyze.c: Remove declaration of static functions when not
7903 needed.
7904 * tree-vectorizer.c: Same.
7905 (rename_variables_in_loop): Now extern.
7906 (slpeel_tree_duplicate_loop_to_edge_cfg): Renamed
7907 tree_duplicate_loop_to_edge_cfg. Reset PENDING_STMT for edges after
7908 calling redirect_edge_and_branch_force.
7909
7910 * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
7911
7912 * tree-data-ref.c: Don't include tree-chrec.h.
7913 (debug_data_dependence_relations): New.
7914 (dump_data_dependence_relation): Call dump_data_reference on data refs
7915 in the relation.
7916 (same_access_functions): Moved...
7917 (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
7918 (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
7919 debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
7920 struct rdg_vertex_info, ): New.
7921 (create_rdg_edge_for_ddr): Compute the dependence level before looking
7922 at DDR_REVERSED_P.
7923 (create_rdg_vertices): Initialize the htab of graph->indexes.
7924 Initialize RDG_MEM_WRITE_STMT and RDG_MEM_READS_STMT.
7925 (stmts_from_loop): Don't save LABEL_EXPR.
7926 (hash_stmt_vertex_info, eq_stmt_vertex_info,
7927 hash_stmt_vertex_del): New.
7928 (build_rdg): Initialize rdg->indexes.
7929 (free_rdg, stores_from_loop, ref_base_address,
7930 rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
7931 have_similar_memory_accesses_1, ref_base_address_1,
7932 remove_similar_memory_refs): New.
7933
7934 * tree-data-ref.h: Include tree-chrec.h.
7935 (debug_data_dependence_relations): Declared.
7936 (same_access_functions): ...here. Now static inline.
7937 (ddr_is_anti_dependent, ddrs_have_anti_deps,
7938 ddr_dependence_level): New.
7939 (struct rdg_vertex): New fields has_mem_write, has_mem_reads.
7940 (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT, RDG_MEM_WRITE_STMT,
7941 RDG_MEM_READS_STMT): New.
7942 (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
7943 debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
7944 rdg_vertex_for_stmt): Declared.
7945 (struct rdg_edge): New field level.
7946 (RDGE_LEVEL, free_rdg): New.
7947 (stores_from_loop, remove_similar_memory_refs,
7948 rdg_defs_used_in_other_loops_p,
7949 have_similar_memory_accesses): Declared.
7950 (rdg_has_similar_memory_accesses): New.
7951
7952 * lambda.h (dependence_level): New.
7953 * common.opt (ftree-loop-distribution): New.
7954 * tree-flow.h (debug_loop_ir): Renamed debug_loops.
7955 (print_loop_ir): Renamed print_loops.
7956 (debug_loop, debug_loop_num, print_loops_bb, mark_virtual_ops_in_bb,
7957 tree_duplicate_loop_to_edge_cfg, rename_variables_in_loop): Declared.
7958 * Makefile.in (TREE_DATA_REF_H): Depends on tree-chrec.h.
7959 (tree-loop-distribution.o): Added.
7960 * tree-cfg.c (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
7961 (mark_virtual_ops_in_bb): New.
7962 (print_loops_bb, debug_loop_num, debug_loop): New.
7963 * passes.c: Scheduled pass_loop_distribution.
7964
79652007-12-12 Konrad Trifunovic <konrad.trifunovic@inria.fr>
7966
7967 * graphite.c (scan_tree_for_params): Correct the number of columns
7968 for polylib format.
7969 (nb_flat_iterator): New.
7970 (setup_cloog_loop): Initialize to 1 the first column for inequalities.
7971 (build_scop_iteration_domain): Correct the number of columns for
7972 polylib format.
7973
79742007-12-12 Sebastian Pop <sebastian.pop@amd.com>
7975
7976 * Merge from mainline (129697:130800).
7977
79782007-10-30 Sebastian Pop <sebastian.pop@amd.com>
7979
7980 * graphite.c (build_graphite_bb): SCoP's basic blocks are post
7981 dominated by SCoP's exit.
7982 (graphite_transform_loops): Compute post dominators.
7983
79842007-10-28 Sebastian Pop <sebastian.pop@amd.com>
7985
7986 * Merge from mainline (127169:129697).
7987
79882007-10-28 Sebastian Pop <sebastian.pop@amd.com>
7989
7990 * graphite.c (affine_expr): Renamed scop_affine_expr. Use an extra
7991 parameter for the basic block that contains the expression. Use
7992 outermost_loop_in_scop for evolution_function_is_affine_multivariate_p.
7993 (stmt_simple_for_scop_p): Pass to scop_affine_expr the basic block of
7994 the expression.
7995 * graphite.h (gbb_loop): New.
7996 (GBB_LOOP): Removed.
7997
79982007-08-03 Sebastian Pop <sebpop@gmail.com>
7999
8000 * Makefile.in: Fix merge problem.
8001
80022007-08-03 Sebastian Pop <sebpop@gmail.com>
8003
8004 * Merge from mainline (125309:127169).
8005 * tree-loop-distribution.c: Disabled.
8006
80072007-06-05 Sebastian Pop <sebpop@gmail.com>
8008
8009 * Merge from mainline (r123693:125309).
8010
80112007-05-30 Sebastian Pop <sebpop@gmail.com>
8012
8013 * tree-loop-distribution.c (correct_modify_expr_p): Renamed
8014 correct_modify_p
8015 (correct_modify_p, check_statements, number_of_lvalue_uses,
8016 number_of_scalar_dependences, create_edges): Use GIMPLE_MODIFY_STMT
8017 instead of MODIFY_EXPR.
8018 (update_edge_with_ddv): Don't pass index_of_edge. Initialize
8019 and push new edges.
8020
80212007-05-24 Sebastian Pop <sebpop@gmail.com>
8022
8023 * tree-loop-distribution.c (struct rdg): Replace arrays by
8024 VECs for edges and vertices.
8025 (RDG_NBV, RDG_NBE, RDG_VERTEX, RDG_EDGE): Removed.
8026 (RDGV_NB_PARTITIONS): New.
8027 (PRDG_NBV, PRDG_NBE): Removed.
8028 (build_scc_graph, correct_partitions_p, mark_partitions, build_prdg,
8029 dump_rdg, find_vertex_with_stmt, create_vertices, free_rdg,
8030 number_of_scalar_dependences, create_edges, build_rdg): Use VECs.
8031
80322007-05-17 Georges-Andre Silber <silber@cri.ensmp.fr>
8033 Sebastian Pop <sebpop@gmail.com>
8034
8035 * doc/invoke.texi (-ftree-loop-distribution): Document.
8036 * tree-loop-distribution.c: New file.
8037 * tree-pass.h (pass_loop_distribution): Declared.
8038 * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
8039 * tree-data-ref.c (initialize_data_dependence_relation): Initialize
8040 and set reversed_p.
8041 * tree-data-ref.h (data_dependence_relation): Add reversed_p.
8042 (DDR_REVERSED_P): New.
8043 * common.opt (-ftree-loop-distribution): New.
8044 * tree-flow.h (distribute_loops): Declared.
8045 * Makefile.in (OBJS-common): Depend on tree-loop-distribution.o.
8046 * passes.c (init_optimization_passes): Schedule loop distribution.
8047
80482007-05-12 Sebastian Pop <sebastian.pop@inria.fr>
8049
8050 * graphite.c (print_graphite_bb): Don't call dump_data_references.
8051 (print_scop): Don't print when scop is NULL.
8052 (build_scop_context, find_transform): Don't output to stderr.
8053
80542007-05-09 Sebastian Pop <sebastian.pop@inria.fr>
8055
8056 * tree-data-ref.c: Don't include graphite.h.
8057 Comment out the code for printing data reference's scop.
8058 (build_access_matrix_with_af): Moved...
8059 * tree-data-ref.h (build_access_matrix_with_af): Removed declaration.
8060 * graphite.c (build_access_matrix_with_af): ... here. Now static.
8061 (print_graphite_bb): Print basic block's schedule.
8062 (print_scop): Don't print the schedule, call cloog's pretty printer.
8063 (bb_in_scop_p): A basic block is in a scop only if it is both
8064 dominated and postdominated by the scop's entry and exit basic blocks.
8065 (function_parameter_p): New.
8066 (invariant_in_scop_p): Use function_parameter_p.
8067 (new_scop, save_scop): New.
8068 (end_scop, test_for_scop_bound, build_scops): Use new_scop, and
8069 save_scop.
8070 (scan_tree_for_params): Directly build the constraint as CloogMatrix.
8071 (loop_in_scop_p): New.
8072 (scop_record_loop): Use loop_in_scop_p.
8073 (build_scop_domain): Renamed build_scop_iteration_domain.
8074 (setup_cloog_loop, initialize_cloog_names, find_scop_parameters,
8075 nb_params_in_scop, build_scop_context, first_loop_in_scop,
8076 setup_cloog_loop, dot_scop_1, dot_scop): New.
8077 * graphite.h (GBB_LOOP, SCOP_PROG, dot_scop): New.
8078 (struct scop): Add a pointer to cloog's representation of a program.
8079
80802007-04-14 Sebastian Pop <sebastian.pop@inria.fr>
8081
8082 * doc/invoke.texi (-ftree-check-verbose): Renamed
8083 -ftree-checks-verbose.
8084 * common.opt (flag_tree_check_verbose): Renamed
8085 flag_tree_checks_verbose.
8086 * tree-check.c (tree_check_warning): Use flag_tree_checks_verbose.
8087
80882007-04-14 Sebastian Pop <sebastian.pop@inria.fr>
8089
8090 * configure: Regenerated.
8091 * config.in: Regenerated.
8092 * tree-ssa-loop.c (graphite_transforms): Execute
8093 graphite_transform_loops only when HAVE_cloog.
8094 * configure.ac (HAVE_polylib, HAVE_cloog, GRAPHITE): Defined.
8095 * graphite.c: Include polylibgmp.h and cloog.h.
8096 (graphite_transform_loops): Removed loops parameter.
8097 * tree-flow.h (graphite_transform_loops): Update declaration.
8098 * Makefile.in (POLYLIBLIBS, POLYLIBINC, CLOOGLIBS, CLOOGINC): New.
8099 (LIBS): Depend on CLOOGLIBS and on POLYLIBLIBS.
8100 (INCLUDES): Depend on POLYLIBINC and on CLOOGINC.
8101 (OBJS-common): Remove dependence on graphite.o.
8102 (BACKEND): Depend on @GRAPHITE@.
8103
81042007-04-13 Sebastian Pop <sebastian.pop@inria.fr>
8105
8106 * doc/invoke.texi (-ftree-check-verbose): Documented.
6c9df8cb 8107 * gcc.dg/tree-checker/tree-checks-1.c: New.
8108 * gcc.dg/tree-checker/tree-checks-2.c: New.
8109 * gcc.dg/tree-checker/tree-checks-3.c: New.
8110 * gcc.dg/tree-checker/tree-checks-4.c: New.
8111 * gcc.dg/tree-checker/tree-checks.exp: New.
8112 * gcc.dg/tree-checker/condates.crp: New.
c6bb733d 8113 * common.opt (ftree-checks-verbose): New.
8114 * tree-check.c (tree_check_warning): Move extra stderr output
8115 under control of flag_tree_check_verbose.
8116
81172007-04-12 Sebastian Pop <sebastian.pop@inria.fr>
8118
8119 * tree-match.c: Fix comments formatting.
8120 * tree-match.h: Fix comments formatting.
8121 * tree-check.c: Fix comments formatting.
8122 (tree_check_init): Restructure.
8123
81242007-04-12 Nic Volanschi <nic.volanschi@free.fr>
8125
8126 * doc/invoke.texi (-ftree-check, -ftree-checks): Documented.
8127
81282007-04-10 Sebastian Pop <sebastian.pop@inria.fr>
8129
8130 * Merge from mainline (r120733:123693).
8131
81322007-03-20 Nic Volanschi <nic.volanschi@free.fr>
8133
8134 * condate.y: New file.
8135 * tree-match.h (struct patt_info_s): New field sign.
8136 (struct condate_s): New field msg.
8137 (normalize_condate, name_condate, add_condate): New.
8138 (conds[], condate_parse): Made extern.
8139 * tree-check.c (tree_check_warning): First arg changed to cond;
8140 warning reformatted.
8141 (tree_check_init): Reset the TREE_VISITED bit on every CFG node.
8142 (tree_scan): New.
8143 (tree_check): Process trivial condates.
8144 (read_delimited_string): Removed.
8145 (print_cond): Print name and msg.
8146 (conds[]): Made extern.
8147 (parse_tree_check_file_once): Rewritten to use the parser in
8148 condate.y.
8149 Processing of option --tree_check_string moved to tree_scan().
8150 * Makefile.in: Added condate.y
8151
81522007-03-12 Sebastian Pop <sebastian.pop@inria.fr>
8153
8154 * tree-pretty-print.c (dump_generic_bb_buff, lazy_dump_generic_node):
8155 Use VECs instead of varrays.
8156 * diagnostic.h (lazy_dump_generic_node): Update declaration.
8157 * Makefile.in (pretty-print.o): Depend on vec.h.
8158 * pretty-print.c: Include tree.h and vec.h.
8159 (pp_clear_state, pp_write_list_to_stream, pp_base_format,
8160 pp_base_format, pp_construct, pp_base_string, pp_lazy_mode,
8161 new_tree_chunk, pp_add_tree, pp_add_string, pp_add_char, pp_write_list,
8162 pp_free_list): Use VECs instead of varrays.
8163 * pretty-print.h: Do not include varray.h.
8164 (struct tree_chunk_s): Declaration moved before its use.
8165 (output_buffer): Rename varray field to chunks.
8166 * tree-match.c (tree_equal, chunk_1st_char, chunks_lookahead,
8167 tree_1st_char, match_chunks_pattinfo, match_tree_pattinfo,
8168 save_global_holes): Use VECs instead of varrays.
8169 * tree-match.h: Declare VECs of cfg_node, and hole_p.
8170 * tree-check.c (scan_cfg_stmts, push_node,
8171 print_matching_stmt): Removed.
8172 (tree_check_instance, push_global_holes_if_new, tree_check,
8173 execute_tree_check): Use VECs instead of varrays.
8174 (gate_tree_check): Don't execute the CFG check when basic_block_info
8175 is not available.
8176
81772007-01-12 Sebastian Pop <sebastian.pop@inria.fr>
8178
8179 * Merge from mainline (r115016:120733).
8180
81812007-01-12 Sebastian Pop <sebastian.pop@inria.fr>
8182
8183 * Merge from mainline (r117632:117661).
8184
81852007-01-12 Sebastian Pop <sebastian.pop@inria.fr>
8186
8187 * tree-dump.c (dump_option_value_in): Add TDF_DEBUG.
8188 * tree-pass.h (TDF_DEBUG, debug_p): New.
8189 * tree-scalar-evolution.c (set_scalar_evolution, get_scalar_evolution,
8190 get_scalar_evolution, add_to_evolution, set_nb_iterations_in_loop,
8191 get_loop_exit_condition, analyze_evolution_in_loop,
8192 analyze_initial_condition, analyze_scalar_evolution,
8193 instantiate_parameters, number_of_latch_executions): Use debug_p.
8194 * tree-chrec.c (chrec_apply): Use debug_p.
8195 * tree-data-ref.c: Include graphite.h.
8196 (dump_data_reference): Print also the access matrix.
8197 (analyze_array, analyze_indirect_ref, init_data_ref,
8198 analyze_offset_expr, address_analysis, object_analysis,
8199 create_data_ref, finalize_ddr_dependent,
8200 non_affine_dependence_relation, analyze_ziv_subscript,
8201 analyze_siv_subscript_cst_affine,
8202 compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
8203 can_use_analyze_subscript_affine_affine, analyze_siv_subscript,
8204 analyze_miv_subscript, analyze_overlapping_iterations,
8205 build_classic_dist_vector, subscript_dependence_tester,
8206 compute_affine_dependence, analyze_all_data_dependences): Use debug_p.
8207 (build_access_matrix_with_af): No longer static.
8208 * tree-data-ref.h (scop_p): ... declaration here.
8209 (data_reference.scop): New field.
8210 (DR_SCOP, DR_ACCESS_MATRIX): New.
8211 (build_access_matrix_with_af, dr_num_subscripts): Declared.
8212 * graphite.c (print_graphite_bb): Call dump_data_references.
8213 (print_scop): Use scop_nb_loops and scop_dim_domain.
8214 (test_for_scop_bound): Use debug_p.
8215 (scan_tree_for_params): Use scop_nb_loops, scop_nb_loops and
8216 scop_nb_params.
8217 (scop_loop_index): Moved...
8218 (scop_record_loop): New.
8219 (build_scop_loop_nests): Use scop_record_loop.
8220 (build_scop_domain): Use scop_dim_domain.
8221 (build_access_matrix): Implemented.
8222 (build_scop_canonical_schedules): Use scop_nb_loops.
8223 (build_graphite_bb): Initialize GBB_SCOP.
8224 * graphite.h (scop_p): Moved...
8225 (graphite_bb.scop): New field.
8226 (graphite_bb.iteration_domain, GBB_DOMAIN, scop.nb_params,
8227 scop.nb_loops, scop.dim_domain, SCOP_NB_LOOPS, SCOP_NB_PARAMS,
8228 SCOP_DIM_DOMAIN, SCOP_STMTS): Removed.
8229 (scop_nb_params, scop_nb_loops, scop_dim_domain, gbb_dim_domain,
8230 scop_loop_index): New.
8231 * Makefile.in (tree-data-ref.o): Depends on graphite.h.
8232
82332007-01-05 Sebastian Pop <sebastian.pop@inria.fr>
8234
8235 * Merge from mainline (r117661:120450).
8236
82372006-10-12 Sebastian Pop <sebastian.pop@inria.fr>
8238
8239 * tree-scalar-evolution.c (instantiate_parameters_1): Don't stop
8240 at the first declaration outside the varying loop, instantiate as
8241 far as possible.
8242 * tree-chrec.c (for_each_scev_op): New.
8243 * tree-chrec.h (for_each_scev_op): Declared.
8244 * tree-ssa-loop.c (pass_graphite_trans): Don't dump the function.
8245 * tree-data-ref.c (get_references_in_stmt,
8246 find_data_references_in_stmt): New, from trunk.
8247 (find_data_references_in_loop): Use get_references_in_stmt
8248 and find_data_references_in_loop, modified as in trunk.
8249 (build_access_matrix_with_af): New.
8250 * tree-data-ref.h (data_reference): Add a field access_matrix.
8251 (data_ref_loc): New, as in trunk.
8252 * graphite.c (print_graphite_bb, bb_in_scop_p, stmt_in_scop_p,
8253 invariant_in_scop_p, param_index, scan_tree_for_params,
8254 scop_loop_index, build_scop_loop_nests, build_scop_domain, irp_data,
8255 idx_record_param, idx_record_params, build_access_matrix,
8256 build_scop_data_accesses, build_scop_canonical_schedules,
8257 build_graphite_bb, build_scop_bbs, find_params_in_bb,
8258 build_scop_params): New.
8259 * graphite.h (graphite_bb): New.
8260 (scop): Add fields static_schedule, params, loop_nest,
8261 iteration_domain.
8262 * lambda.h: Declare vecs of lambda_matrix.
8263 * tree-flow.h (print_loop_ir_bb): Declared.
8264 * tree-cfg.c (print_loop_ir_bb): New.
8265 (print_loop): Use print_loop_ir_bb.
8266
82672006-10-12 Sebastian Pop <pop@cri.ensmp.fr>
8268
8269 * Merge from mainline (r115016:117632).
8270
82712006-10-11 Sebastian Pop <pop@cri.ensmp.fr>
8272
8273 * graphite.c (debug_scops): Adjust definition for avoiding a bootstrap
8274 break due to a warning.
8275
82762006-10-10 Sebastian Pop <pop@cri.ensmp.fr>
8277
8278 * graphite.c (print_scops, debug_scops): New.
8279 (graphite_transform): Renamed graphite_find_transform.
8280 * graphite.h (debug_scops): Declared.
8281
82822006-08-17 Sebastian Pop <pop@cri.ensmp.fr>
8283
8284 * tree-match.c: Reformat following the GNU style.
8285 * tree-match.h: Reformat following the GNU style.
8286 * tree-pattern.h: Removed empty file.
8287 * Makefile.in: Remove references to tree-pattern.h.
8288 * tree-check.c: Reformat following the GNU style.
8289 (execute_tree_check): Move gate condition code to...
8290 (gate_tree_check): ...here. New function.
8291 (pass_check): Use the gate function.
8292
82932006-07-04 Nic Volanschi <nic.volanschi@free.fr>
8294
8295 * tree-pattern.h: New. Tree pattern matching and checking using
8296 concrete syntax.
8297 * tree-check.c: New. Tree/CFG checking pass.
8298 * tree-match.c: New. Library for tree pattern matching.
8299 * opts.c, common.opt: Add options --ftree-check & --ftree-checks.
8300 * toplev.c, flags.h: Add globals for tree-check pass.
8301 * Makefile.in: Integrate the files in tree-check pass.
8302 * timevar.def, tree-optimize.c, tree-pass.h: Register tree-check pass.
8303 * pretty-print.c, pretty-print.h, tree-pretty-print.c, diagnostic.h:
8304 Introduce a "lazy" pretty-print mode.
8305 * tree.c, tree.h: Add tree_name.
8306
83072006-07-04 Sebastian Pop <pop@cri.ensmp.fr>
8308
8309 * doc/invoke.texi (-fgraphite): Correct typo.
8310 * tree-scalar-evolution.c (number_of_iterations_for_all_loops): Update
8311 use of print_loop_ir.
6c9df8cb 8312 * gcc.dg/graphite/scop-1.c: New.
8313 * gcc.dg/graphite/scop-2.c: New.
8314 * gcc.dg/graphite/graphite.exp: New.
c6bb733d 8315 * graphite.c: Include domwalk.h.
8316 (print_scop): Print only the entry and exit blocks.
8317 (debug_scop): No longer static.
8318 (affine_expr): Fix formating. Return also true when the expression is
8319 constant.
8320 (stmt_simple_for_scop_p): Fix formating.
8321 (build_scops): Use domwalk.
8322 (get_loop_start, end_scop, test_for_scop_bound): New.
8323 (graphite_transform_loops): Avoid printing on stderr.
8324 * graphite.h (debug_scop): Declared.
8325 * tree-flow.h (debug_loop_ir, print_loop_ir): Update declarations.
8326 * Makefile.in (graphite.o): Depend on domwalk.h.
8327 * tree-cfg.c (print_loop, print_pred_bbs, print_succ_bbs): Remove
8328 declarations for static functions.
8329 (print_loop, print_loop_ir, debug_loop_ir): Use an extra parameter for
8330 controlling output verbosity.
8331
83322006-06-26 Sebastian Pop <pop@cri.ensmp.fr>
8333 Plesco Alexandru <shurikx@gmail.com>
8334
8335 * doc/invoke.texi (-fgraphite): Document.
8336 * tree-pass.h (pass_graphite_transforms): Declared.
8337 * timevar.def (TV_GRAPHITE_TRANSFORMS): New.
8338 * tree-ssa-loop.c (graphite_transforms, gate_graphite_transforms): New.
8339 (pass_graphite_transforms): Defined.
8340 * tree-data-ref.c (free_data_ref, data_reference): Extern.
8341 * tree-data-ref.h (free_data_ref, data_reference): Declared.
8342 * graphite.c, graphite.h: New.
8343 * common.opt (fgraphite): Declared.
8344 * tree-flow.h (graphite_transform_loops): Declared.
8345 * Makefile.in (OBJS-common): Add graphite.o.
8346 (graphite.o): New rule.
8347 * passes.c (pass_graphite_transforms): Scheduled.
8348