OSDN Git Service

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