OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [ChangeLog.graphite] - Blame information for rev 749

Go to most recent revision | Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.