12011-05-26 Alexey Kravets <kayrick@ispras.ru> 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 142011-05-24 Sebastian Pop <sebastian.pop@amd.com> 15 16 * graphite-opencl-codegen.c (opencl_print_local_vars): Fix typo. 17 182011-05-24 Sebastian Pop <sebastian.pop@amd.com> 19 20 * graphite-dependences.c (graphite_outer_subscript_bound): Remove 21 memory leaks, add one more assert. 22 232011-05-24 Sebastian Pop <sebastian.pop@amd.com> 24 25 * graphite-dependences.c (build_alias_set_powerset): Remove 26 continue from loop, add one more assert. 27 282011-05-24 Sebastian Pop <sebastian.pop@amd.com> 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 372011-05-24 Alexey Kravets <kayrick@ispras.ru> 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 442011-01-25 Sebastian Pop <sebastian.pop@amd.com> 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 502011-01-23 Tobias Grosser <grosser@fim.uni-passau.de> 51 52 * doc/install.texi: Replace '/' by an or and give the exact 53 version number of cloog-0.16.1 54 552011-01-20 Sebastian Pop <sebastian.pop@amd.com> 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 642011-01-19 Sebastian Pop <sebastian.pop@amd.com> 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 712011-01-19 Sebastian Pop <sebastian.pop@amd.com> 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 902011-01-19 Sebastian Pop <sebastian.pop@amd.com> 91 92 * graphite-sese-to-poly.c (build_poly_scop): Move 93 rewrite_commutative_reductions_out_of_ssa before 94 find_scop_parameters. 95 962011-01-18 Sebastian Pop <sebastian.pop@amd.com> 97 98 PR tree-optimization/46970 99 * gcc.dg/graphite/pr46970.c: New. 100 1012011-01-18 Sebastian Pop <sebastian.pop@amd.com> 102 103 PR tree-optimization/46215 104 * gcc.dg/graphite/pr46215.c: New. 105 1062011-01-18 Sebastian Pop <sebastian.pop@amd.com> 107 108 PR tree-optimization/46168 109 * gcc.dg/graphite/pr46168.c: New. 110 1112011-01-18 Sebastian Pop <sebastian.pop@amd.com> 112 113 PR tree-optimization/43657 114 * gcc.dg/graphite/pr43657.c: New. 115 1162011-01-18 Sebastian Pop <sebastian.pop@amd.com> 117 118 PR tree-optimization/29832 119 * gfortran.dg/graphite/pr29832.f90: New. 120 1212011-01-18 Sebastian Pop <sebastian.pop@amd.com> 122 123 PR tree-optimization/43567 124 * gcc.dg/graphite/pr43567.c: New. 125 1262011-01-18 Sebastian Pop <sebastian.pop@amd.com> 127 128 PR tree-optimization/43567 129 * gcc.dg/graphite/pr43567.c: New. 130 1312011-01-17 Sebastian Pop <sebastian.pop@amd.com> 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 2382011-01-17 Sebastian Pop <sebastian.pop@amd.com> 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 2452011-01-17 Sebastian Pop <sebastian.pop@amd.com> 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 2522011-01-17 Sebastian Pop <sebastian.pop@amd.com> 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 2592011-01-17 Sebastian Pop <sebastian.pop@amd.com> 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 2652011-01-17 Sebastian Pop <sebastian.pop@amd.com> 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 2762011-01-15 Sebastian Pop <sebastian.pop@amd.com> 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 2942011-01-15 Sebastian Pop <sebastian.pop@amd.com> 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 3002011-01-15 Sebastian Pop <sebastian.pop@amd.com> 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 3172011-01-15 Sebastian Pop <sebastian.pop@amd.com> 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 3412011-01-15 Sebastian Pop <sebastian.pop@amd.com> 342 343 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute 344 the "a followed by b" relation and document it. 345 3462011-01-15 Sebastian Pop <sebastian.pop@amd.com> 347 348 * graphite-dependences.c (build_lexicographical_constraint): Stop the 349 iteration when the bag of constraints is empty. 350 3512011-01-15 Sebastian Pop <sebastian.pop@amd.com> 352 353 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work. 354 3552011-01-15 Sebastian Pop <sebastian.pop@amd.com> 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 3622011-01-15 Sebastian Pop <sebastian.pop@amd.com> 363 364 * graphite-dependences.c (print_pddr): Call 365 ppl_io_fprint_Pointset_Powerset_C_Polyhedron. 366 3672011-01-15 Sebastian Pop <sebastian.pop@amd.com> 368 369 * graphite-ppl.c (debug_gmp_value): New. 370 * graphite-ppl.h (debug_gmp_value): Declared. 371 3722011-01-13 Tobias Grosser <grosser@fim.uni-passau.de> 373 374 * doc/install.texi: Document availability of cloog-0.16 375 3762011-01-05 Vladimir Kargov <kargov@gmail.com> 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 3852011-01-05 Vladimir Kargov <kargov@gmail.com> 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 3902011-01-05 Vladimir Kargov <kargov@gmail.com> 391 392 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free 393 invalid postdominance info 394 3952010-12-29 Sebastian Pop <sebastian.pop@amd.com> 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 4062010-12-27 Sebastian Pop <sebastian.pop@amd.com> 407 408 * graphite-opencl-codegen.c: Use FOR_EACH_VEC_ELT. 409 * graphite-opencl-meta-clast.c: Same. 410 * graphite-opencl.c: Same. 411 4122010-12-27 Sebastian Pop <sebastian.pop@amd.com> 413 414 * graphite-opencl-codegen.c: Do not include sys/time.h. 415 * graphite-opencl.c: Same. 416 4172010-12-27 Sebastian Pop <sebastian.pop@amd.com> 418 419 * graphite-opencl.c (h_context, h_cmd_queue, h_program): Moved 420 out of ifdef HAVE_cloog section. 421 4222010-12-27 Sebastian Pop <sebastian.pop@amd.com> 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 4332010-12-27 Sebastian Pop <sebastian.pop@amd.com> 434 435 * graphite-opencl-codegen.c: Fix formatting. 436 * graphite-opencl-meta-clast.c: Same. 437 * graphite-opencl.c: Same. 438 4392010-12-27 Sebastian Pop <sebastian.pop@amd.com> 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 4462010-12-27 Sebastian Pop <sebastian.pop@amd.com> 447 448 * graphite-opencl-codegen.c: Sort topologically static functions. 449 * graphite-opencl.c: Same. 450 4512010-12-25 Sebastian Pop <sebastian.pop@amd.com> 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 4682010-12-25 Alexey Kravets <kayrick@ispras.ru> 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 4952010-12-25 Alexander Monakov <amonakov@ispras.ru> 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 5022010-12-25 Alexey Kravets <kayrick@ispras.ru> 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 5212010-12-21 Sebastian Pop <sebastian.pop@amd.com> 522 523 PR tree-optimization/47021 524 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR. 525 5262010-11-26 Sebastian Pop <sebastian.pop@amd.com> 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 5322010-11-26 Sebastian Pop <sebastian.pop@amd.com> 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 5462010-11-26 Sebastian Pop <sebastian.pop@amd.com> 547 548 * sese.c (rename_uses): Do not handle ADDR_EXPR in LHS of assignments. 549 5502010-11-22 Sebastian Pop <sebastian.pop@amd.com> 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 6052010-11-22 Sebastian Pop <sebastian.pop@amd.com> 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 6142010-11-22 Sebastian Pop <sebastian.pop@amd.com> 615 616 * sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr 617 when replacing a constant in an ADDR_EXPR. 618 6192010-10-20 Sebastian Pop <sebastian.pop@amd.com> 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 6292010-09-24 Sebastian Pop <sebastian.pop@amd.com> 630 631 PR middle-end/45758 632 * graphite.c (graphite_initialize): Call scev_reset. 633 6342010-09-23 Sebastian Pop <sebastian.pop@amd.com> 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 6392010-09-23 Sebastian Pop <sebastian.pop@amd.com> 640 641 PR middle-end/45758 642 * gfortran.dg/graphite/pr45758.f90: New. 643 6442010-09-23 Sebastian Pop <sebastian.pop@amd.com> 645 646 * graphite-scop-detection.c (is_scop_p): Free bblist. 647 6482010-09-23 Sebastian Pop <sebastian.pop@amd.com> 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 6572010-09-21 Andreas Simbuerger <simbuerg@fim.uni-passau.de> 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 6662010-09-20 Sebastian Pop <sebastian.pop@amd.com> 667 668 Revert previous patch "New flag: -fgraphite-dump-cloog." 669 6702010-09-20 Andreas Simbuerger <simbuerg@fim.uni-passau.de> 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 6782010-09-20 Sebastian Pop <sebastian.pop@amd.com> 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 6872010-09-09 Sebastian Pop <sebastian.pop@amd.com> 688 689 * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate 690 over pbb_dim_iter_domain. 691 6922010-09-09 Sebastian Pop <sebastian.pop@amd.com> 693 694 * graphite-flattening.c: Fix comments. 695 6962010-09-09 Sebastian Pop <sebastian.pop@amd.com> 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 7092010-09-09 Sebastian Pop <sebastian.pop@amd.com> 710 711 * graphite-poly.c (cloog_checksum): New. 712 * graphite-poly.h (cloog_checksum): Declared. 713 7142010-09-09 Sebastian Pop <sebastian.pop@amd.com> 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 7212010-09-09 Sebastian Pop <sebastian.pop@amd.com> 722 723 * graphite-poly.h (lst_update_scattering_seq): Removed. 724 (lst_update_scattering): Correctly handle outermost loop dewey 725 renumbering. 726 7272010-09-09 Sebastian Pop <sebastian.pop@amd.com> 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 7332010-09-09 Sebastian Pop <sebastian.pop@amd.com> 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 7382010-09-09 Sebastian Pop <sebastian.pop@amd.com> 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 7442010-09-09 Sebastian Pop <sebastian.pop@amd.com> 745 746 * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT. 747 7482010-09-02 Vladimir Kargov <kargov@gmail.com> 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 7602010-08-24 Sebastian Pop <sebastian.pop@amd.com> 761 762 * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning. 763 7642010-08-24 Sebastian Pop <sebastian.pop@amd.com> 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 7702010-08-23 Sebastian Pop <sebastian.pop@amd.com> 771 772 * graphite-blocking.c (scop_do_strip_mine): Do not call 773 graphite_legal_transform. 774 (scop_do_block): Same. 775 7762010-08-20 Vladimir Kargov <kargov@gmail.com> 777 778 * graphite-scop-detection.c (graphite_can_represent_loop): Correct the 779 description. 780 7812010-08-20 Sebastian Pop <sebastian.pop@amd.com> 782 783 PR middle-end/45230 784 * gcc.dg/graphite/id-pr45230.c: New. 785 7862010-08-20 Sebastian Pop <sebastian.pop@amd.com> 787 788 * tree-scalar-evolution.c (instantiate_array_ref): New. 789 (instantiate_scev_r): Also handle ARRAY_REFs. 790 7912010-08-20 Sebastian Pop <sebastian.pop@amd.com> 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 8002010-08-20 Sebastian Pop <sebastian.pop@amd.com> 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 8062010-08-20 Sebastian Pop <sebastian.pop@amd.com> 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 8132010-08-18 Vladimir Kargov <kargov@gmail.com> 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 8192010-08-17 Sebastian Pop <sebastian.pop@amd.com> 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 8252010-08-17 Riyadh Baghdadi <baghdadi.mr@gmail.com> 826 Sebastian Pop <sebastian.pop@amd.com> 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 8312010-08-17 Riyadh Baghdadi <baghdadi.mr@gmail.com> 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 8402010-08-17 Riyadh Baghdadi <baghdadi.mr@gmail.com> 841 842 * toplev.c (process_options): Disable graphite loop optimization 843 options when -fgraphite-read flag is used. 844 8452010-08-17 Riyadh Baghdadi <baghdadi.mr@gmail.com> 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 8532010-08-17 Tobias Grosser <grosser@fim.uni-passau.de> 854 855 * graphite-scop-detection.c (graphite_can_represent_scev): Remove 856 redundant checks. 857 8582010-08-12 Sebastian Pop <sebastian.pop@amd.com> 859 860 * graphite-clast-to-gimple.c (precision_for_value): Adjust 861 computation of precision by 1. 862 8632010-08-12 Riyadh Baghdadi <baghdadi.mr@gmail.com> 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 8792010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de> 880 881 * graphite-poly.c: Change include order. 882 8832010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de> 884 885 * graphite-cloog-compat.h (cloog_matrix_ncolumns): New. 886 (cloog_matrix_nrows): New. 887 8882010-08-11 Riyadh Baghdadi <baghdadi.mr@gmail.com> 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 8982010-08-11 Riyadh Baghdadi <baghdadi.mr@gmail.com> 899 900 * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation. 901 (openscop_print_pdr_polyhedron): Print pph. 902 9032010-07-29 Sebastian Pop <sebastian.pop@amd.com> 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 9092010-07-29 Sebastian Pop <sebastian.pop@amd.com> 910 911 * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in 912 priority signed types. 913 9142010-07-29 Sebastian Pop <sebastian.pop@amd.com> 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 9192010-07-29 Riyadh Baghdadi <baghdadi.mr@gmail.com> 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 9432010-07-29 Sebastian Pop <sebastian.pop@amd.com> 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 9512010-07-28 Sebastian Pop <sebastian.pop@amd.com> 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 9592010-07-27 Andreas Simbuerger <simbuerg@fim.uni-passau.de> 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 9702010-07-27 Andreas Simbuerger <simbuerg@fim.uni-passau.de> 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 9912010-07-27 Andreas Simbuerger <simbuerg@fim.uni-passau.de> 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 10192010-07-27 Andreas Simbuerger <simbuerg@fim.uni-passau.de> 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 10342010-07-27 Andreas Simbuerger <simbuerg@fim.uni-passau.de> 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 10452010-07-27 Andreas Simbuerger <simbuerg@fim.uni-passau.de> 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 10812010-07-27 Sebastian Pop <sebastian.pop@amd.com> 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 10932010-07-26 Sebastian Pop <sebastian.pop@amd.com> 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 11042010-07-26 Sebastian Pop <sebastian.pop@amd.com> 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 11122010-07-22 Sebastian Pop <sebastian.pop@amd.com> 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 11242010-07-22 Sebastian Pop <sebastian.pop@amd.com> 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 11312010-07-22 Sebastian Pop <sebastian.pop@amd.com> 1132 1133 * tree-scalar-evolution.c (instantiate_scev_name): Do not 1134 instantiate default definitions. 1135 11362010-07-20 Vladimir Kargov <kargov@gmail.com> 1137 1138 * graphite-scop-detection.c (is_valid_stmt_p): New. 1139 (is_valid_bb_p): New. 1140 11412010-07-20 Vladimir Kargov <kargov@gmail.com> 1142 Sebastian Pop <sebastian.pop@amd.com> 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 11512010-07-20 Vladimir Kargov <kargov@gmail.com> 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 11602010-07-20 Sebastian Pop <sebastian.pop@amd.com> 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 11722010-07-20 Sebastian Pop <sebastian.pop@amd.com> 1173 1174 * gcc.dg/tree-ssa/pr20742.c: New. 1175 11762010-07-15 Sebastian Pop <sebastian.pop@amd.com> 1177 1178 * sese.c (rename_uses): Call unshare_expr before force_gimple_operand. 1179 1180 * gcc.dg/graphite/id-23.c: New. 1181 11822010-07-15 Sebastian Pop <sebastian.pop@amd.com> 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 11892010-07-15 Sebastian Pop <sebastian.pop@amd.com> 1190 1191 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly 1192 handle SSA_NAME_IS_DEFAULT_DEF. 1193 11942010-07-15 Sebastian Pop <sebastian.pop@amd.com> 1195 1196 * sese.c (rename_uses): Handl unconditionally gimple_debug statements. 1197 1198 * gcc.dg/graphite/pr42729.c: New. 1199 12002010-07-15 Sebastian Pop <sebastian.pop@amd.com> 1201 1202 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special 1203 case non close-phi nodes with one argument. 1204 12052010-07-15 Sebastian Pop <sebastian.pop@amd.com> 1206 1207 * sese.h (scev_analyzable_p): Scevs could be expressions without 1208 chrecs and still be scev_analyzable_p. 1209 12102010-07-15 Sebastian Pop <sebastian.pop@amd.com> 1211 1212 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100. 1213 12142010-07-15 Sebastian Pop <sebastian.pop@amd.com> 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 12242010-07-15 Sebastian Pop <sebastian.pop@amd.com> 1225 1226 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also 1227 handle GIMPLE_CALL. 1228 12292010-07-15 Sebastian Pop <sebastian.pop@amd.com> 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 12352010-07-15 Sebastian Pop <sebastian.pop@amd.com> 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 12822010-07-15 Sebastian Pop <sebastian.pop@amd.com> 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 12942010-07-15 Andreas Simbuerger <simbuerg@fim.uni-passau.de> 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 13002010-07-07 Sebastian Pop <sebastian.pop@amd.com> 1301 1302 * gfortran.dg/graphite/id-20.f: New. 1303 13042010-07-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de> 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 13202010-07-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de> 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 13662010-07-04 Andreas Simbuerger <simbuerg@fim.uni-passau.de> 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 13812010-06-25 Vladimir Kargov <kargov@gmail.com> 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 13942010-06-24 Sebastian Pop <sebastian.pop@amd.com> 1395 1396 * graphite-sese-to-poly.c (rewrite_degenerate_phi): New. 1397 (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result. 1398 13992010-06-24 Sebastian Pop <sebastian.pop@amd.com> 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 14062010-06-24 Sebastian Pop <sebastian.pop@amd.com> 1407 1408 * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code. 1409 14102010-06-24 Sebastian Pop <sebastian.pop@amd.com> 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 14272010-06-24 Sebastian Pop <sebastian.pop@amd.com> 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 14332010-06-23 Sebastian Pop <sebastian.pop@amd.com> 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 14402010-06-23 Sebastian Pop <sebastian.pop@amd.com> 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 14452010-06-23 Sebastian Pop <sebastian.pop@amd.com> 1446 1447 * gcc.dg/graphite/run-id-2.c: Call abort. 1448 14492010-06-23 Sebastian Pop <sebastian.pop@amd.com> 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 14542010-06-23 Sebastian Pop <sebastian.pop@amd.com> 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 14622010-06-23 Sebastian Pop <sebastian.pop@amd.com> 1463 1464 * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls. 1465 14662010-06-15 Sebastian Pop <sebastian.pop@amd.com> 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 14762010-06-12 Sebastian Pop <sebastian.pop@amd.com> 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 14882010-06-12 Sebastian Pop <sebastian.pop@amd.com> 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 15012010-06-12 Sebastian Pop <sebastian.pop@amd.com> 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 15142010-06-12 Sebastian Pop <sebastian.pop@amd.com> 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 15272010-06-12 Sebastian Pop <sebastian.pop@amd.com> 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 15342010-06-11 Sebastian Pop <sebastian.pop@amd.com> 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 15422010-06-09 Sebastian Pop <sebastian.pop@amd.com> 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 15482010-06-09 Sebastian Pop <sebastian.pop@amd.com> 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 15552010-06-09 Sebastian Pop <sebastian.pop@amd.com> 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 15632010-06-08 Tobias Grosser <grosser@fim.uni-passau.de> 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 15722010-06-02 Tobias Grosser <grosser@fim.uni-passau.de> 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 15802010-05-27 Tobias Grosser <grosser@fim.uni-passau.de> 1581 Antoniu Pop <antoniu.pop@gmail.com> 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 16282010-05-26 Sebastian Pop <sebastian.pop@amd.com> 1629 1630 * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use 1631 size_one_node. 1632 16332010-05-07 Sebastian Pop <sebastian.pop@amd.com> 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 16382010-05-07 Sebastian Pop <sebastian.pop@amd.com> 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 16452010-04-12 Andreas Simbuerger <simbuerg@fim.uni-passau.de> 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 16942010-04-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de> 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 17382010-04-05 Sebastian Pop <sebastian.pop@amd.com> 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 17482010-04-05 Sebastian Pop <sebastian.pop@amd.com> 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 17552010-04-05 Sebastian Pop <sebastian.pop@amd.com> 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 17632010-04-04 Sebastian Pop <sebastian.pop@amd.com> 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 17992010-04-02 Sebastian Pop <sebastian.pop@amd.com> 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 18062010-04-01 Sebastian Pop <sebastian.pop@amd.com> 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 18122010-03-31 Sebastian Pop <sebastian.pop@amd.com> 1813 1814 * graphite-sese-to-poly.c (scalar_close_phi_node_p): Loop 1815 close phi nodes may have more than one argument. 1816 18172010-03-30 Richard Guenther <rguenther@suse.de> 1818 Zdenek Dvorak <ook@ucw.cz> 1819 Sebastian Pop <sebastian.pop@amd.com> 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 18262010-03-23 Sebastian Pop <sebastian.pop@amd.com> 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 18802010-03-23 Sebastian Pop <sebastian.pop@amd.com> 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 18902010-03-23 Sebastian Pop <sebastian.pop@amd.com> 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 18982010-03-21 Sebastian Pop <sebastian.pop@amd.com> 1899 Richard Guenther <rguenther@suse.de> 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 19102010-03-21 Sebastian Pop <sebastian.pop@amd.com> 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 19182010-03-16 Sebastian Pop <sebastian.pop@amd.com> 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 19272010-03-16 Sebastian Pop <sebastian.pop@amd.com> 1928 1929 * passes.c (init_optimization_passes): Add pass_copy_prop 1930 after Graphite. 1931 19322010-03-16 Sebastian Pop <sebastian.pop@amd.com> 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 19542010-03-13 Sebastian Pop <sebastian.pop@amd.com> 1955 1956 PR middle-end/43351 1957 * gcc.dg/graphite/id-pr43351.c 1958 19592010-03-13 Sebastian Pop <sebastian.pop@amd.com> 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 19662010-03-13 Sebastian Pop <sebastian.pop@amd.com> 1967 1968 PR middle-end/43349 1969 * gfortran.dg/graphite/pr43349.f: New. 1970 19712010-03-11 Sebastian Pop <sebastian.pop@amd.com> 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 19782010-03-10 Sebastian Pop <sebastian.pop@amd.com> 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 19862010-03-10 Sebastian Pop <sebastian.pop@amd.com> 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 19942010-03-09 Sebastian Pop <sebastian.pop@amd.com> 1995 1996 * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document. 1997 19982010-03-09 Sebastian Pop <sebastian.pop@amd.com> 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 20052010-03-09 Sebastian Pop <sebastian.pop@amd.com> 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 20122010-03-09 Sebastian Pop <sebastian.pop@amd.com> 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 20172010-03-09 Sebastian Pop <sebastian.pop@amd.com> 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 20252010-03-05 Sebastian Pop <sebastian.pop@amd.com> 2026 2027 * graphite-sese-to-poly.c (add_param_constraints): Use 2028 lower_bound_in_type and upper_bound_in_type. 2029 20302010-03-05 Sebastian Pop <sebastian.pop@amd.com> 2031 2032 * graphite-sese-to-poly.c (add_param_constraints): Use sizetype 2033 instead of unsigned_type_node. 2034 20352010-03-05 Sebastian Pop <sebastian.pop@amd.com> 2036 Reza Yazdani <reza.yazdani@amd.com> 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 20442010-03-05 Sebastian Pop <sebastian.pop@amd.com> 2045 2046 PR middle-end/43065 2047 * gcc.dg/graphite/run-id-3.c: New. 2048 20492010-03-05 Tobias Grosser <grosser@fim.uni-passau.de> 2050 Ramakrishna Upadrasta <Ramakrishna.Upadrasta@inria.fr> 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 20592010-03-04 Tobias Grosser <grosser@fim.uni-passau.de> 2060 2061 * graphite-clast-to-gimple.c (translate_clast): Do not short-cut 2062 code generation with gloog_error. 2063 20642010-03-04 Sebastian Pop <sebastian.pop@amd.com> 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 20712010-03-04 Sebastian Pop <sebastian.pop@amd.com> 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 20772010-03-04 Sebastian Pop <sebastian.pop@amd.com> 2078 2079 * graphite-dependences.c (map_into_dep_poly): Removed. 2080 (dependence_polyhedron_1): Use combine_context_id_scat. 2081 20822010-03-04 Sebastian Pop <sebastian.pop@amd.com> 2083 2084 * graphite-poly.h (struct poly_scattering): Add layout documentation. 2085 (struct poly_bb): Same. 2086 (combine_context_id_scat): New. 2087 20882010-03-02 Sebastian Pop <sebastian.pop@amd.com> 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 20962010-02-23 Sebastian Pop <sebastian.pop@amd.com> 2097 2098 * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify 2099 and clean up the logic. 2100 21012010-02-23 Sebastian Pop <sebastian.pop@amd.com> 2102 2103 * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove 2104 early return. 2105 21062010-02-22 Sebastian Pop <sebastian.pop@amd.com> 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 21182010-02-22 Sebastian Pop <sebastian.pop@amd.com> 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 21262010-02-22 Sebastian Pop <sebastian.pop@amd.com> 2127 Manuel López-Ibáñez <manu@gcc.gnu.org> 2128 2129 PR middle-end/43140 2130 * g++.dg/graphite/pr41305.C: Add -Wno-conversion-null. 2131 21322010-02-22 Sebastian Pop <sebastian.pop@amd.com> 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 21392010-02-13 Tobias Grosser <grosser@fim.uni-passau.de> 2140 2141 * Merge from mainline (154736:156693). 2142 21432010-02-11 Sebastian Pop <sebastian.pop@amd.com> 2144 2145 PR middle-end/43012 2146 * gcc.dg/graphite/pr43012.c: New. 2147 21482010-02-10 Sebastian Pop <sebastian.pop@amd.com> 2149 2150 * graphite.c (graphite_transform_loops): Re-enable dbg_cnt. 21512010-02-10 Sebastian Pop <sebastian.pop@amd.com> 2152 2153 * g++.dg/graphite/pr42930.C: New. 2154 21552010-02-10 Sebastian Pop <sebastian.pop@amd.com> 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 21612010-02-10 Sebastian Pop <sebastian.pop@amd.com> 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 21712010-02-10 Sebastian Pop <sebastian.pop@amd.com> 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 21902010-02-07 Sebastian Pop <sebastian.pop@amd.com> 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 22152010-02-07 Sebastian Pop <sebastian.pop@amd.com> 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 22222010-02-07 Sebastian Pop <sebastian.pop@amd.com> 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 22302010-02-07 Sebastian Pop <sebastian.pop@amd.com> 2231 2232 * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/. 2233 22342010-02-05 Sebastian Pop <sebastian.pop@amd.com> 2235 Konrad Trifunovic <konrad.trifunovic@inria.fr> 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 22512010-02-03 Sebastian Pop <sebastian.pop@amd.com> 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 22612010-02-03 Sebastian Pop <sebastian.pop@amd.com> 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 22722010-02-03 Sebastian Pop <sebastian.pop@amd.com> 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 23062010-02-03 Sebastian Pop <sebastian.pop@amd.com> 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 23342010-01-22 Ramakrishna Upadrasta <Ramakrishna.Upadrasta@inria.fr> 2335 2336 * graphite-scop-detection.c (dot_all_scops): Make calls to dot run in 2337 background. 2338 23392010-01-22 Ramakrishna Upadrasta <Ramakrishna.Upadrasta@inria.fr> 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 23452010-01-20 Sebastian Pop <sebastian.pop@amd.com> 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 23522010-01-20 Sebastian Pop <sebastian.pop@amd.com> 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 23652010-01-20 Sebastian Pop <sebastian.pop@amd.com> 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 23752010-01-20 Sebastian Pop <sebastian.pop@amd.com> 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 23822010-01-20 Sebastian Pop <sebastian.pop@amd.com> 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 23952010-01-20 Sebastian Pop <sebastian.pop@amd.com> 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 24052010-01-14 Sebastian Pop <sebastian.pop@amd.com> 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 24202010-01-14 Sebastian Pop <sebastian.pop@amd.com> 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 24362010-01-08 Sebastian Pop <sebastian.pop@amd.com> 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 24502010-01-08 Sebastian Pop <sebastian.pop@amd.com> 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 24562010-01-07 Sebastian Pop <sebastian.pop@amd.com> 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 24642010-01-07 Sebastian Pop <sebastian.pop@amd.com> 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 24732010-01-07 Sebastian Pop <sebastian.pop@amd.com> 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 24862010-01-07 Sebastian Pop <sebastian.pop@amd.com> 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 24942010-01-07 Sebastian Pop <sebastian.pop@amd.com> 2495 2496 Revert patch 2009-11-23 Tobias Grosser <grosser@fim.uni-passau.de> 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 25012010-01-07 Richard Guenther <rguenther@suse.de> 2502 2503 PR tree-optimization/42641 2504 * sese.c (rename_map_elt_info): Use the SSA name version, do 2505 not hash pointers. 2506 25072010-01-06 Sebastian Pop <sebastian.pop@amd.com> 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 25192010-01-06 Sebastian Pop <sebastian.pop@amd.com> 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 25302010-01-05 Sebastian Pop <sebastian.pop@amd.com> 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 25412009-12-18 Sebastian Pop <sebastian.pop@amd.com> 2542 2543 Revert patch fixing PR middle-end/42221. 2544 25452009-12-18 Sebastian Pop <sebastian.pop@amd.com> 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 25532009-12-18 Sebastian Pop <sebastian.pop@amd.com> 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 25612009-12-17 Sebastian Pop <sebastian.pop@amd.com> 2562 2563 PR middle-end/42393 2564 * gfortran.dg/graphite/pr42393.f90: New. 2565 25662009-12-17 Sebastian Pop <sebastian.pop@amd.com> 2567 2568 PR middle-end/42186 2569 * gfortran.dg/graphite/pr42186.f90: New. 2570 25712009-12-17 Sebastian Pop <sebastian.pop@amd.com> 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 25812009-12-17 Sebastian Pop <sebastian.pop@amd.com> 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 25892009-12-17 Sebastian Pop <sebastian.pop@amd.com> 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 25982009-12-15 Sebastian Pop <sebastian.pop@amd.com> 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 26172009-12-15 Sebastian Pop <sebastian.pop@amd.com> 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 26352009-12-14 Sebastian Pop <sebastian.pop@amd.com> 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 26432009-12-12 Sebastian Pop <sebpop@gmail.com> 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 26542009-12-11 Alexander Monakov <amonakov@ispras.ru> 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 26602009-12-08 Sebastian Pop <sebpop@gmail.com> 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 26692009-12-01 Tobias Grosser <grosser@fim.uni-passau.de> 2670 2671 * g++.dg/graphite/pr42130.C: Fix type. 2672 26732009-11-29 Alexander Monakov <amonakov@gcc.gnu.org> 2674 2675 * g++.dg/graphite/pr42130.C: Correct testcase. 2676 26772009-11-28 Tobias Grosser <grosser@fim.uni-passau.de> 2678 2679 * Merge from mainline (154493:154734). 2680 26812009-11-28 Tobias Grosser <grosser@fim.uni-passau.de> 2682 2683 * Merge from mainline (151362:154491). 2684 26852009-11-24 Tobias Grosser <grosser@fim.uni-passau.de> 2686 2687 * graphite-clast-to-gimple.c (try_mark_loop_parallel, 2688 graphite_create_new_loop_guard, translate_clast_for): Fix comments. 2689 26902009-11-23 Tobias Grosser <grosser@fim.uni-passau.de> 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 27002009-11-23 Tobias Grosser <grosser@fim.uni-passau.de> 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 27062009-11-23 Tobias Grosser <grosser@fim.uni-passau.de> 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 27132009-11-23 Tobias Grosser <grosser@fim.uni-passau.de> 2714 2715 * graphite-clast-to-gimple.c (translate_clast_user, 2716 translate_clast_for, translate_clast_guard): Split out of 2717 translate_clast. 2718 27192009-11-21 Tobias Grosser <grosser@fim.uni-passau.de> 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 27432009-11-20 Sebastian Pop <sebastian.pop@amd.com> 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 27652009-11-20 Sebastian Pop <sebastian.pop@amd.com> 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 27712009-11-18 Sebastian Pop <sebastian.pop@amd.com> 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 27792009-11-18 Sebastian Pop <sebastian.pop@amd.com> 2780 2781 PR middle-end/42050 2782 * gfortran.dg/graphite/pr42050.f90: New. 2783 27842009-11-18 Sebastian Pop <sebastian.pop@amd.com> 2785 2786 * graphite-interchange.c (memory_strides_in_loop_depth): New. 2787 (pbb_interchange_profitable_p): Call memory_strides_in_loop_depth. 2788 27892009-11-18 Sebastian Pop <sebastian.pop@amd.com> 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 27952009-11-18 Sebastian Pop <sebastian.pop@amd.com> 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 28042009-11-18 Sebastian Pop <sebastian.pop@amd.com> 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 28242009-11-04 Konrad Trifunovic <konrad.trifunovic@inria.fr> 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 28312009-11-03 Sebastian Pop <sebastian.pop@amd.com> 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 28392009-11-03 Sebastian Pop <sebastian.pop@amd.com> 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 28642009-10-30 Sebastian Pop <sebastian.pop@amd.com> 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 28912009-10-30 Sebastian Pop <sebastian.pop@amd.com> 2892 2893 * tree-ssa-loop-niter.c (finite_loop_p): Do not call twice 2894 get_loop_exit_edges. 2895 28962009-10-30 Sebastian Pop <sebastian.pop@amd.com> 2897 2898 * graphite-poly.c (pbb_remove_duplicate_pdrs): Free collapsed. 2899 29002009-10-28 Konrad Trifunovic <konrad.trifunovic@gmail.com> 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 29182009-10-26 Sebastian Pop <sebastian.pop@amd.com> 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 29302009-10-26 Sebastian Pop <sebastian.pop@amd.com> 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 29422009-10-26 Li Feng <nemokingdom@gmail.com> 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 29492009-10-22 Sebastian Pop <sebastian.pop@amd.com> 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 29672009-10-22 Sebastian Pop <sebastian.pop@amd.com> 2968 2969 * g++.dg/graphite/graphite.exp: Add the same rules as in 2970 gcc.dg/graphite/graphite.exp. 2971 29722009-10-22 Sebastian Pop <sebastian.pop@amd.com> 2973 2974 * g++.dg/graphite/id-1.C: New. 2975 29762009-10-22 Sebastian Pop <sebastian.pop@amd.com> 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 29852009-10-22 Sebastian Pop <sebastian.pop@amd.com> 2986 2987 * graphite-sese-to-poly.c (build_scop_drs): Disable call to 2988 dump_alias_graphs. 2989 29902009-10-22 Sebastian Pop <sebastian.pop@amd.com> 2991 2992 * graphite-sese-to-poly.c (dump_alias_graphs): New. 2993 (build_scop_drs): Call dump_alias_graphs. 2994 29952009-10-22 Sebastian Pop <sebastian.pop@amd.com> 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 30052009-10-22 Sebastian Pop <sebastian.pop@amd.com> 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 30142009-10-20 Sebastian Pop <sebastian.pop@amd.com> 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 30232009-10-20 Sebastian Pop <sebastian.pop@amd.com> 3024 3025 * graphite-sese-to-poly.c (build_alias_set_optimal_p): Initialize 3026 all_components_are_cliques to 1. 3027 30282009-10-20 Li Feng <nemokingdom@gmail.com> 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 30422009-10-20 Sebastian Pop <sebastian.pop@amd.com> 3043 3044 * sese.c (get_vdef_before_sese): Handle GIMPLE_ASSIGN and GIMPLE_CALL. 3045 30462009-10-20 Sebastian Pop <sebastian.pop@amd.com> 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 30532009-10-20 Sebastian Pop <sebastian.pop@amd.com> 3054 3055 * g++.dg/graphite/pr41305.C: New. 3056 30572009-10-20 Alexander Monakov <amonakov@ispras.ru> 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 30632009-10-17 Sebastian Pop <sebastian.pop@amd.com> 3064 3065 * graphite-interchange.c (memory_stride_in_loop): Delete p1, lma 3066 and new_cstr. 3067 30682009-10-17 Sebastian Pop <sebastian.pop@amd.com> 3069 3070 * graphite-dependences.c (dependence_polyhedron_1): Remove 3071 unused gdim dimensions from the DDR polyhedron. 3072 30732009-10-17 Sebastian Pop <sebastian.pop@amd.com> 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 30842009-10-17 Sebastian Pop <sebastian.pop@amd.com> 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 30902009-10-17 Sebastian Pop <sebastian.pop@amd.com> 3091 3092 * gfortran.dg/graphite/interchange-3.f90: New. 3093 30942009-10-17 Sebastian Pop <sebastian.pop@amd.com> 3095 3096 * gcc.dg/graphite/interchange-1.c: Un-XFAILed. 3097 30982009-10-17 Sebastian Pop <sebastian.pop@amd.com> 3099 3100 * graphite-dependences.c (dependence_polyhedron_1): Add the 3101 context to the dependence polyhedron. 3102 31032009-10-17 Sebastian Pop <sebastian.pop@amd.com> 3104 3105 * graphite-poly.c (pbb_remove_duplicate_pdrs): Initialize 3106 PBB_PDR_DUPLICATES_REMOVED. 3107 (new_poly_bb): Same. 3108 31092009-10-17 Sebastian Pop <sebastian.pop@amd.com> 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 31182009-10-17 Sebastian Pop <sebastian.pop@amd.com> 3119 3120 * graphite-ppl.c (ppl_min_for_le_polyhedron): New. 3121 * graphite-ppl.h (graphite-ppl.h): Declared. 3122 31232009-10-17 Sebastian Pop <sebastian.pop@amd.com> 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 31302009-10-16 Sebastian Pop <sebastian.pop@amd.com> 3131 3132 * graphite-interchange.c: Fix comments. 3133 * gcc.dg/graphite/block-1.c: Fix comments. 3134 31352009-10-16 Sebastian Pop <sebastian.pop@amd.com> 3136 3137 * gcc.dg/graphite/interchange-7.c: Un-XFAILed. 3138 * gcc.dg/graphite/interchange-9.c: Un-XFAILed. 3139 31402009-10-16 Sebastian Pop <sebastian.pop@amd.com> 3141 3142 Reapply the patch from Alexander Monakov that disappeared during 3143 the last merges from trunk. 3144 3145 2009-09-16 Alexander Monakov <amonakov@ispras.ru> 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 31502009-10-15 Sebastian Pop <sebastian.pop@amd.com> 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 31562009-10-15 Sebastian Pop <sebastian.pop@amd.com> 3157 3158 * graphite-interchange.c (memory_stride_in_loop): Fix comments. 3159 31602009-10-15 Sebastian Pop <sebastian.pop@amd.com> 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 31712009-10-15 Sebastian Pop <sebastian.pop@amd.com> 3172 3173 * graphite-poly.c (print_scop): Fix pretty printing of a SCoP. 3174 31752009-10-15 Sebastian Pop <sebastian.pop@amd.com> 3176 3177 * doc/passes.texi: Document the Graphite infrastructure. 3178 31792009-10-15 Sebastian Pop <sebastian.pop@amd.com> 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 31872009-10-15 Sebastian Pop <sebastian.pop@amd.com> 3188 3189 * gcc.dg/graphite/pr40157.c: Use -floop-block as reported in the PR. 3190 31912009-10-14 Sebastian Pop <sebastian.pop@amd.com> 3192 3193 * gcc.dg/graphite/interchange-11.c: New. 3194 31952009-10-14 Sebastian Pop <sebastian.pop@amd.com> 3196 3197 * gcc.dg/graphite/interchange-8.c: Enable loop interchange. 3198 31992009-10-14 Sebastian Pop <sebastian.pop@amd.com> 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 32072009-10-14 Sebastian Pop <sebastian.pop@amd.com> 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 32202009-10-14 Sebastian Pop <sebastian.pop@amd.com> 3221 3222 * graphite-poly.c (pbb_number_of_iterations_at_time): Cleanup comments. 3223 32242009-10-14 Konrad Trifunovic <konrad.trifunovic@gmail.com> 3225 Sebastian Pop <sebastian.pop@amd.com> 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 32352009-10-14 Sebastian Pop <sebastian.pop@amd.com> 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 32442009-10-14 Sebastian Pop <sebastian.pop@amd.com> 3245 3246 * graphite-poly.c (loop_to_lst): Fix LST creation. 3247 32482009-10-14 Tobias Grosser <grosser@fim.uni-passau.de> 3249 3250 * gcc.dg/graphite/id-15.c: (8 * 8) replaced with 3251 sizeof(unsigned long) to make it run on 32bit systems. 3252 32532009-10-14 Tobias Grosser <grosser@fim.uni-passau.de> 3254 3255 * gcc.dg/graphite/run-id-1.c: Use smaller matrix to not 3256 SEGFAULT on 32bit. 3257 32582009-10-14 Ramakrishna Upadrasta <Ramakrishna.Upadrasta@inria.fr> 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 32692009-10-13 Sebastian Pop <sebastian.pop@amd.com> 3270 3271 * gfortran.dg/graphite/interchange-1.f: XFail. 3272 32732009-10-13 Sebastian Pop <sebastian.pop@amd.com> 3274 3275 * graphite.c (graphite_initialize): Do not handle functions with 3276 more than 100 basic blocks. 3277 32782009-10-13 Sebastian Pop <sebastian.pop@amd.com> 3279 3280 * graphite-blocking.c (pbb_do_strip_mine): Use 3281 PARAM_LOOP_BLOCK_TILE_SIZE. 3282 32832009-10-13 Sebastian Pop <sebastian.pop@amd.com> 3284 3285 * graphite-poly.c (dot_lst_1): New. 3286 (dot_lst): New. 3287 * graphite-poly.h (dot_lst): Declared. 3288 32892009-10-13 Sebastian Pop <sebastian.pop@amd.com> 3290 3291 * graphite-dependences.c (dot_deps_stmt_1): New. 3292 (dot_deps_stmt): New. 3293 * graphite-dependences.h (dot_deps_stmt): Declared. 3294 32952009-10-09 Sebastian Pop <sebastian.pop@amd.com> 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 33012009-10-09 Sebastian Pop <sebastian.pop@amd.com> 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 33142009-10-09 Sebastian Pop <sebastian.pop@amd.com> 3315 3316 * graphite-poly.h (lst_find_pbb): New. 3317 (find_lst_loop): New. 3318 33192009-10-09 Sebastian Pop <sebastian.pop@amd.com> 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 33252009-10-09 Sebastian Pop <sebastian.pop@amd.com> 3326 3327 * graphite-poly.h (copy_lst): Do full copy of LST. 3328 33292009-10-07 Sebastian Pop <sebastian.pop@amd.com> 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 33362009-10-06 Sebastian Pop <sebastian.pop@amd.com> 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 33552009-10-06 Sebastian Pop <sebastian.pop@amd.com> 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 33652009-10-06 Sebastian Pop <sebastian.pop@amd.com> 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 33922009-10-05 Sebastian Pop <sebastian.pop@amd.com> 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 34342009-10-05 Sebastian Pop <sebastian.pop@amd.com> 3435 3436 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Remove 3437 buggy assert. 3438 34392009-10-05 Sebastian Pop <sebastian.pop@amd.com> 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 34472009-10-05 Sebastian Pop <sebastian.pop@amd.com> 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 34532009-10-05 Sebastian Pop <sebastian.pop@amd.com> 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 34622009-09-27 Sebastian Pop <sebastian.pop@amd.com> 3463 3464 * graphite-scop-detection.c (limit_scops): Do not build poly_bbs. 3465 34662009-09-27 Sebastian Pop <sebastian.pop@amd.com> 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 34742009-09-26 Li Feng <nemokingdom@gmail.com> 3475 3476 * graphite-sese-to-poly.c (build_scop_drs): Disable writing to file 3477 the alias graph of data references. 3478 34792009-09-25 Li Feng <nemokingdom@gmail.com> 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 34852009-09-17 Sebastian Pop <sebastian.pop@amd.com> 3486 3487 * Merge from mainline (151310:151361). 3488 34892009-09-17 Sebastian Pop <sebastian.pop@amd.com> 3490 3491 * Merge from mainline (151171:151310). 3492 34932009-09-17 Sebastian Pop <sebastian.pop@amd.com> 3494 3495 * Merge from mainline (151171:151806). 3496 34972009-09-17 Sebastian Pop <sebastian.pop@amd.com> 3498 3499 * Revert the last commit. 3500 35012009-09-17 Sebastian Pop <sebastian.pop@amd.com> 3502 3503 * Merge from mainline (151171:151819). 3504 35052009-09-17 Sebastian Pop <sebastian.pop@amd.com> 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 35112009-09-17 David Edelsohn <edelsohn@gnu.org> 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 35192009-09-17 Li Feng <nemokingdom@gmail.com> 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 35402009-09-16 Alexander Monakov <amonakov@ispras.ru> 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 35452009-09-14 Sebastian Pop <sebastian.pop@amd.com> 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 35522009-09-14 Sebastian Pop <sebastian.pop@amd.com> 3553 3554 * tree-ssa-loop.c (gate_graphite_transforms): Disable Graphite 3555 passes at -O1 and below. 3556 35572009-09-14 Sebastian Pop <sebastian.pop@amd.com> 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 35782009-09-02 Sebastian Pop <sebastian.pop@amd.com> 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 35842009-09-01 Sebastian Pop <sebastian.pop@amd.com> 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 35942009-09-01 Sebastian Pop <sebastian.pop@amd.com> 3595 3596 * tree-scalar-evolution.c (instantiate_scev_binary): Adapted 3597 to pass as parameters the operands of the binary expression. 3598 35992009-09-01 Sebastian Pop <sebastian.pop@amd.com> 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 36052009-09-01 Sebastian Pop <sebastian.pop@amd.com> 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 36122009-09-01 Sebastian Pop <sebastian.pop@amd.com> 3613 3614 * tree-scalar-evolution.c (instantiate_scev_3): New. 3615 (instantiate_scev_1): Move code in instantiate_scev_3. 3616 36172009-09-01 Sebastian Pop <sebastian.pop@amd.com> 3618 3619 * tree-scalar-evolution.c (instantiate_scev_poly): New. 3620 (instantiate_scev_1): Move code in instantiate_scev_poly. 3621 36222009-09-01 Sebastian Pop <sebastian.pop@amd.com> 3623 3624 * tree-scalar-evolution.c (instantiate_scev_bitnot): New. 3625 (instantiate_scev_1): Move code in instantiate_scev_bitnot. 3626 36272009-09-01 Sebastian Pop <sebastian.pop@amd.com> 3628 3629 * tree-scalar-evolution.c (instantiate_scev_convert): New. 3630 (instantiate_scev_1): Move code in instantiate_scev_convert. 3631 36322009-09-01 Sebastian Pop <sebastian.pop@amd.com> 3633 3634 * tree-scalar-evolution.c (instantiate_scev_binary): New. 3635 (instantiate_scev_1): Move code in instantiate_scev_binary. 3636 36372009-09-01 Sebastian Pop <sebastian.pop@amd.com> 3638 3639 * tree-scalar-evolution.c (instantiate_scev_name): New. 3640 (instantiate_scev_1): Move code in instantiate_scev_name. 3641 36422009-08-28 Sebastian Pop <sebastian.pop@amd.com> 3643 3644 * Merge from mainline (150992:151171). 3645 36462009-08-25 Sebastian Pop <sebastian.pop@amd.com> 3647 3648 * opts.c (decode_options): Enable flag_loop_interchange at -O2. 3649 36502009-08-25 Sebastian Pop <sebastian.pop@amd.com> 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 36632009-08-25 Sebastian Pop <sebastian.pop@amd.com> 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 36752009-08-25 Sebastian Pop <sebastian.pop@amd.com> 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 36822009-08-25 Sebastian Pop <sebastian.pop@amd.com> 3683 3684 PR middle-end/40965 3685 * graphite-poly.c (apply_poly_transforms): Remove legality test before 3686 any transform. 3687 36882009-08-25 Sebastian Pop <sebastian.pop@amd.com> 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 36972009-08-25 Sebastian Pop <sebastian.pop@amd.com> 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 37042009-08-25 Konrad Trifunovic <konrad.trifunovic@gmail.com> 3705 Sebastian Pop <sebastian.pop@amd.com> 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 37222009-08-25 Konrad Trifunovic <konrad.trifunovic@gmail.com> 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 37302009-08-25 Sebastian Pop <sebastian.pop@amd.com> 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 37442009-08-22 Sebastian Pop <sebastian.pop@amd.com> 3745 3746 * graphite-dependences.c (graphite_carried_dependence_level_k): Do 3747 not delete the original dependence relation. 3748 37492009-08-21 Sebastian Pop <sebastian.pop@amd.com> 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 37552009-08-21 Sebastian Pop <sebastian.pop@amd.com> 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 37792009-08-21 Sebastian Pop <sebastian.pop@amd.com> 3780 3781 * Merge from mainline (150764:150992). 3782 37832009-08-18 Sebastian Pop <sebastian.pop@amd.com> 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 37892009-08-18 Sebastian Pop <sebastian.pop@amd.com> 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 37952009-08-15 Sebastian Pop <sebastian.pop@amd.com> 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 38012009-08-13 Sebastian Pop <sebastian.pop@amd.com> 3802 3803 * graphite-poly.c (print_pbb): Print PBB index. 3804 38052009-08-13 Sebastian Pop <sebastian.pop@amd.com> 3806 3807 * Merge from mainline (r150672:150764). 3808 38092009-08-13 Sebastian Pop <sebastian.pop@amd.com> 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 38162009-08-12 Sebastian Pop <sebastian.pop@amd.com> 3817 3818 * Merge from mainline (r150372:150672). 3819 38202009-08-11 Sebastian Pop <sebastian.pop@amd.com> 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 38282009-08-11 Sebastian Pop <sebastian.pop@amd.com> 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 38352009-08-11 Sebastian Pop <sebastian.pop@amd.com> 3836 Pranav Garg <pranav.garg2107@gmail.com> 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 38482009-08-11 Sebastian Pop <sebastian.pop@amd.com> 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 38572009-08-11 Sebastian Pop <sebastian.pop@amd.com> 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 38742009-08-11 Sebastian Pop <sebastian.pop@amd.com> 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 38872009-08-11 Sebastian Pop <sebastian.pop@amd.com> 3888 3889 * gcc.dg/graphite/interchange-9.c: New. 3890 38912009-08-05 Konrad Trifunovic <konrad.trifunovic@gmail.com> 3892 Sebastian Pop <sebastian.pop@amd.com> 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 39052009-08-05 Sebastian Pop <sebastian.pop@amd.com> 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 39352009-08-05 Sebastian Pop <sebastian.pop@amd.com> 3936 3937 * graphite-poly.c (print_pbb): Add parentheses in the pretty print. 3938 (print_scop): Same. 3939 39402009-08-05 Sebastian Pop <sebastian.pop@amd.com> 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 39542009-08-05 Sebastian Pop <sebastian.pop@amd.com> 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 39622009-08-03 Sebastian Pop <sebastian.pop@amd.com> 3963 3964 * Merge from mainline (r149952:150372). 3965 39662009-07-28 Sebastian Pop <sebastian.pop@amd.com> 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 39792009-07-28 Sebastian Pop <sebastian.pop@amd.com> 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 40072009-07-28 Sebastian Pop <sebastian.pop@amd.com> 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 40202009-07-28 Sebastian Pop <sebastian.pop@amd.com> 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 40262009-07-28 Sebastian Pop <sebastian.pop@amd.com> 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 40362009-07-28 Sebastian Pop <sebastian.pop@amd.com> 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 40432009-07-28 Sebastian Pop <sebastian.pop@amd.com> 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 40502009-07-28 Sebastian Pop <sebastian.pop@amd.com> 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 40612009-07-24 Li Feng <nemokingdom@gmail.com> 4062 4063 * gcc.dg/graphite/graphite_autopar/force-parallel-8.c: 4064 Remove 2 XFAIL. 4065 40662009-07-24 Li Feng <nemokingdom@gmail.com> 4067 Tobias Grosser <grosser@fim.uni-passau.de> 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 40772009-07-24 Tobias Grosser <grosser@fim.uni-passau.de> 4078 4079 * Makefile.in (lambda-code.o): Fix formatting. 4080 40812009-07-24 Tobias Grosser <grosser@fim.uni-passau.de> 4082 4083 * Merge from mainline (r149350-149952) 4084 40852009-07-18 Tobias Grosser <grosser@fim.uni-passau.de> 4086 4087 * graphite-poly.c (apply_poly_transforms): Move strip_mine 4088 before interchange to prepare for loop blocking. 4089 40902009-07-18 Tobias Grosser <grosser@fim.uni-passau.de> 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 40972009-07-17 Konrad Trifunovic <konrad.trifunovic@gmail.com> 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 41042009-07-16 Sebastian Pop <sebastian.pop@amd.com> 4105 4106 * graphite.c (graphite_finalize): Fix comment. 4107 (graphite_transform_loops): Reset scev info after code generation 4108 of each scop. 4109 41102009-07-16 Sebastian Pop <sebastian.pop@amd.com> 4111 4112 * graphite.c (graphite_finalize): Call scev_reset. 4113 41142009-07-16 Sebastian Pop <sebastian.pop@amd.com> 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 41212009-07-16 Sebastian Pop <sebastian.pop@amd.com> 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 41302009-07-16 Sebastian Pop <sebastian.pop@amd.com> 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 41362009-07-16 Sebastian Pop <sebastian.pop@amd.com> 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 41422009-07-16 Sebastian Pop <sebastian.pop@amd.com> 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 41502009-07-14 Razya Ladelsky <razya@il.ibm.com> 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 41742009-07-14 Konrad Trifunovic <konrad.trifunovic@gmail.com> 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 41902009-07-14 Sebastian Pop <sebastian.pop@amd.com> 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 41982009-07-14 Sebastian Pop <sebastian.pop@amd.com> 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 42042009-07-14 Sebastian Pop <sebastian.pop@amd.com> 4205 4206 * graphite-sese-to-poly.c (build_loop_iteration_domains): Do not insert 4207 redundant constraint. 4208 42092009-07-14 Sebastian Pop <sebastian.pop@amd.com> 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 42282009-07-14 Sebastian Pop <sebastian.pop@amd.com> 4229 4230 * sese.c (expand_scalar_variables_call): New. 4231 (expand_scalar_variables_ssa_name): Handle calls in expander. 4232 42332009-07-13 Sebastian Pop <sebastian.pop@amd.com> 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 42412009-07-13 Sebastian Pop <sebastian.pop@amd.com> 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 42482009-07-13 Sebastian Pop <sebastian.pop@amd.com> 4249 4250 * graphite-sese-to-poly.c (pdr_add_data_dimensions): Fix division by 4251 zero. 4252 42532009-07-13 Sebastian Pop <sebastian.pop@amd.com> 4254 4255 * sese.c (rename_variables_in_stmt): Call fold_convert during renaming. 4256 42572009-07-13 Sebastian Pop <sebastian.pop@amd.com> 4258 4259 * sese.c (expand_scalar_variables_stmt): Avoid unnecessary expansion. 4260 42612009-07-10 Sebastian Pop <sebastian.pop@amd.com> 4262 4263 * graphite-sese-to-poly.c (pdr_add_memory_accesses): Fix order of 4264 building PDR subscripts. 4265 42662009-07-10 Sebastian Pop <sebastian.pop@amd.com> 4267 4268 * graphite-sese-to-poly.c (pdr_add_data_dimensions): Fix the 4269 computation of array sizes. 4270 42712009-07-10 Sebastian Pop <sebastian.pop@amd.com> 4272 4273 * graphite-sese-to-poly.c (add_param_constraints): Disabled. 4274 42752009-07-10 Tobias Grosser <grosser@fim.uni-passau.de> 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 43052009-07-09 Sebastian Pop <sebastian.pop@amd.com> 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 43112009-07-09 Sebastian Pop <sebastian.pop@amd.com> 4312 4313 * graphite-sese-to-poly.c (build_loop_iteration_domains): Add the 4314 positivity constraint on the symbolic number of iterations. 4315 43162009-07-09 Sebastian Pop <sebastian.pop@amd.com> 4317 4318 * graphite-sese-to-poly.c (build_loop_iteration_domains): Rewrite. 4319 43202009-07-09 Sebastian Pop <sebastian.pop@amd.com> 4321 Tobias Grosser <grosser@fim.uni-passau.de> 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 43372009-07-09 Sebastian Pop <sebastian.pop@amd.com> 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 43482009-07-09 Sebastian Pop <sebastian.pop@amd.com> 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 43542009-07-09 Sebastian Pop <sebastian.pop@amd.com> 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 43602009-07-08 Sebastian Pop <sebastian.pop@amd.com> 4361 4362 * tree-parloops.c (analyze_reduction_list): Remove unused variable 4363 to fix bootstrap. 4364 43652009-07-08 Razya Ladelsky <razya@il.ibm.com> 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 43742009-07-08 Tobias Grosser <grosser@fim.uni-passau.de> 4375 4376 * Merge from mainline (r148296:149346) 4377 43782009-07-07 Sebastian Pop <sebastian.pop@amd.com> 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 43892009-07-07 Sebastian Pop <sebastian.pop@amd.com> 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 44092009-07-07 Sebastian Pop <sebastian.pop@amd.com> 4410 4411 * Makefile.in: Replace dependences on tree-chrec.h with SCEV_H. 4412 TREE_DATA_REF_H also implies SCEV_H. 4413 44142009-07-07 Sebastian Pop <sebastian.pop@amd.com> 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 44212009-07-07 Li Feng <nemokingdom@gmail.com> 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 44302009-07-07 Li Feng <nemokingdom@gmail.com> 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 44412009-07-06 Sebastian Pop <sebastian.pop@amd.com> 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 44482009-07-06 Sebastian Pop <sebastian.pop@amd.com> 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 44552009-07-06 Li Feng <nemokingdom@gmail.com> 4456 4457 * gcc.dg/graphite/graphite_autopar/graphite_autopar.exp: 4458 Added flag -fno-loop-strip-mine for autopar testcase. 4459 44602009-07-04 Li Feng <nemokingdom@gmail.com> 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 44662009-06-30 Sebastian Pop <sebastian.pop@amd.com> 4467 4468 * opts.c (decode_options): Enable flag_loop_strip_mine at -O2. 4469 44702009-06-30 Sebastian Pop <sebastian.pop@amd.com> 4471 4472 * graphite-poly.c (pbb_number_of_iterations): Check for returned 4473 value 1 from ppl_Pointset_Powerset_NNC_Polyhedron_maximize. 4474 44752009-06-30 Sebastian Pop <sebastian.pop@amd.com> 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 44832009-06-29 Sebastian Pop <sebastian.pop@amd.com> 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 44882009-06-29 Li Feng <nemokingdom@gmail.com> 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 45172009-06-26 Sebastian Pop <sebastian.pop@amd.com> 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 45222009-06-26 Sebastian Pop <sebastian.pop@amd.com> 4523 4524 * cfgloopmanip.c (create_empty_loop_on_edge): Gimplify the loop exit 4525 expression outside the loop. 4526 45272009-06-26 Sebastian Pop <sebastian.pop@amd.com> 4528 4529 * gcc.dg/graphite/interchange-8.c: New. 4530 45312009-06-26 Sebastian Pop <sebastian.pop@amd.com> 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 45372009-06-26 Sebastian Pop <sebastian.pop@amd.com> 4538 4539 * graphite-interchange.c (compute_array_size_poly): The end of the 4540 recursion should return 1. 4541 45422009-06-26 Sebastian Pop <sebastian.pop@amd.com> 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 45582009-06-26 Sebastian Pop <sebastian.pop@amd.com> 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 45652009-06-26 Sebastian Pop <sebastian.pop@amd.com> 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 45712009-06-24 Konrad Trifunovic <konrad.trifunovic@gmail.com> 4572 Li Feng <nemokingdom@gmail.com> 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 45832009-06-24 Sebastian Pop <sebastian.pop@amd.com> 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 45902009-06-24 Sebastian Pop <sebastian.pop@amd.com> 4591 4592 * graphite-poly.c (extend_scattering): Increment 4593 PBB_NB_LOCAL_VARIABLES by the number of added dimensions. 4594 45952009-06-24 Sebastian Pop <sebastian.pop@amd.com> 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 46012009-06-24 Li Feng <nemokingdom@gmail.com> 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 46092009-06-23 Sebastian Pop <sebastian.pop@amd.com> 4610 4611 * sese.c (expand_scalar_variables_stmt): Expand scalar variables 4612 only when the use verifies is_gimple_reg. 4613 46142009-06-23 Sebastian Pop <sebastian.pop@amd.com> 4615 4616 * graphite-clast-to-gimple.c (build_cloog_prog): Fix memory corruption. 4617 Allocate scaldims after call to unify_scattering_dimensions. 4618 46192009-06-23 Sebastian Pop <sebastian.pop@amd.com> 4620 4621 * graphite-clast-to-gimple.c (translate_clast): Fix memory leak. 4622 46232009-06-23 Sebastian Pop <sebastian.pop@amd.com> 4624 Albert Cohen <albert.cohen@inria.fr> 4625 4626 * graphite-blocking.c (pbb_strip_mine_loop_depth): Do not use local 4627 variables for the strip mining. 4628 46292009-06-23 Sebastian Pop <sebastian.pop@amd.com> 4630 Pranav Garg <pranav.garg2107@gmail.com> 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 46452009-06-23 Sebastian Pop <sebastian.pop@amd.com> 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 46502009-06-23 Sebastian Pop <sebastian.pop@amd.com> 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 46792009-06-23 Sebastian Pop <sebastian.pop@amd.com> 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 46852009-06-23 Sebastian Pop <sebastian.pop@amd.com> 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 46972009-06-23 Tobias Grosser <grosser@fim.uni-passau.de> 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 47042009-06-19 Sebastian Pop <sebastian.pop@amd.com> 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 47112009-06-19 Sebastian Pop <sebastian.pop@amd.com> 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 47252009-06-19 Sebastian Pop <sebastian.pop@amd.com> 4726 4727 * graphite-poly.c (print_scattering_function): Also print the layout. 4728 * graphite-poly.h (pbb_nb_local_vars): New. 4729 47302009-06-19 Sebastian Pop <sebastian.pop@amd.com> 4731 4732 * graphite-poly.c (print_pbb_domain): Also print the layout names. 4733 47342009-06-19 Sebastian Pop <sebastian.pop@amd.com> 4735 4736 * graphite-poly.c (print_pdr, debug_pdr): New. 4737 * graphite-poly.h (print_pdr, debug_pdr): Declared. 4738 (PDR_BASE): Removed. 4739 47402009-06-18 Sebastian Pop <sebastian.pop@amd.com> 4741 4742 * gcc.dg/graphite/interchange-{1..7}.c: New avatars of 4743 ltrans-{1..6,8}.c. 4744 47452009-06-18 Sebastian Pop <sebastian.pop@amd.com> 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 47552009-06-18 Pranav Garg <pranav.garg2107@gmail.com> 4756 4757 * graphite-interchange.c (interchange_profitable_p): Renamed 4758 pbb_interchange_profitable_p. 4759 47602009-06-18 Sebastian Pop <sebastian.pop@amd.com> 4761 Harsha Jagasia <harsha.jagasia@amd.com> 4762 Pranav Garg <pranav.garg2107@gmail.com> 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 47732009-06-18 Sebastian Pop <sebastian.pop@amd.com> 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 47822009-06-16 Sebastian Pop <sebastian.pop@amd.com> 4783 4784 * graphite.c: Cleanup foo. 4785 47862009-06-16 Sebastian Pop <sebastian.pop@amd.com> 4787 4788 * Merge from mainline (r143684:148293). 4789 * Disabled libpcp until it gets fixed. 4790 47912009-06-05 Sebastian Pop <sebastian.pop@amd.com> 4792 Harsha Jagasia <harsha.jagasia@amd.com> 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 47992009-06-04 Sebastian Pop <sebastian.pop@amd.com> 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 48062009-06-04 Sebastian Pop <sebastian.pop@amd.com> 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 48222009-06-03 Sebastian Pop <sebastian.pop@amd.com> 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 48392009-06-03 Sebastian Pop <sebastian.pop@amd.com> 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 48452009-06-03 Sebastian Pop <sebastian.pop@amd.com> 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 48572009-06-02 Sebastian Pop <sebastian.pop@amd.com> 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 48682009-05-19 Tobias Grosser <grosser@fim.uni-passau.de> 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 48742009-05-17 Li Feng <nemokingdom@gmail.com> 4875 4876 * gcc.dg/graphite/graphite_autopar/graphite_autopar.exp: 4877 Cover all the testcases (not only the filtered ones). 4878 48792009-05-17 Tobias Grosser <grosser@fim.uni-passau.de> 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 48862009-05-14 Tobias Grosser <grosser@fim.uni-passau.de> 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 48962009-05-13 Sebastian Pop <sebastian.pop@amd.com> 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 49332009-05-13 Sebastian Pop <sebastian.pop@amd.com> 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 49492009-05-13 Sebastian Pop <sebastian.pop@amd.com> 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 49872009-05-13 Sebastian Pop <sebastian.pop@amd.com> 4988 4989 * graphite-clast-to-gimple.c (clast_name_to_gcc): Do not use strcmp. 4990 Call clast_name_to_index. 4991 49922009-05-13 Sebastian Pop <sebastian.pop@amd.com> 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 50032009-05-13 Sebastian Pop <sebastian.pop@amd.com> 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 50112009-05-13 Sebastian Pop <sebastian.pop@amd.com> 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 50312009-05-13 Sebastian Pop <sebastian.pop@amd.com> 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 50392009-05-13 Sebastian Pop <sebastian.pop@amd.com> 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 50452009-05-13 Tobias Grosser <grosser@fim.uni-passau.de> 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 50512009-05-11 Li Feng <nemokingdom@gmail.com> 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 50602009-05-08 Li Feng <nemokingdom@gmail.com> 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 50672009-05-07 Tobias Grosser <grosser@fim.uni-passau.de> 5068 5069 * graphite-scop-detection (build_scops_1): Fix little bug introduced 5070 by final cleanup. 5071 50722009-05-07 Tobias Grosser <grosser@fim.uni-passau.de> 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 50902009-05-06 Tobias Grosser <grosser@fim.uni-passau.de> 5091 5092 * sese.c (expand_scalar_variables_ssa_name): Only build expressions, 5093 that we have not yet built for this SCoP. 5094 50952009-05-06 Tobias Grosser <grosser@fim.uni-passau.de> 5096 5097 * sese.c (expand_scalar_variables_expr): Fix expand_scalar_variables 5098 for complex numbers. 5099 51002009-05-06 Tobias Grosser <grosser@fim.uni-passau.de> 5101 5102 * graphite-ppl.c: Fix build if cloog is not available. 5103 51042009-05-04 Li Feng <nemokingdom@gmail.com> 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 51132009-05-01 Tobias Grosser <grosser@fim.uni-passau.de> 5114 5115 * gcc.dg/graphite/id-6.c: Update testcase. 5116 * gcc.dg/graphite/scop-3.c: Dito. 5117 51182009-05-01 Tobias Grosser <grosser@fim.uni-passau.de> 5119 5120 * graphite-scop-detection.c (stmt_simple_for_scop_p): 5121 Enable EQ_EXPR and NE_EXPR again. 5122 51232009-04-30 Tobias Grosser <grosser@fim.uni-passau.de> 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 51322009-04-30 Tobias Grosser <grosser@fim.uni-passau.de> 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 51402009-04-30 Li Feng <nemokingdom@gmail.com> 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 51542009-04-30 Li Feng <nemokingdom@gmail.com> 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 51702009-04-24 Tobias Grosser <grosser@fim.uni-passau.de> 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 51762009-04-24 Sebastian Pop <sebastian.pop@amd.com> 5177 5178 * graphite-scop-detection.c (dot_all_scops): Fix system call 5179 return value warning. 5180 (dot_scop): Same. 5181 51822009-04-24 Sebastian Pop <sebastian.pop@amd.com> 5183 5184 * gcc.dg/graphite/id-6.c: Fix pattern. 5185 * gcc.dg/graphite/scop-3.c: Same. 5186 51872009-04-24 Sebastian Pop <sebastian.pop@amd.com> 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 52002009-04-24 Sebastian Pop <sebastian.pop@amd.com> 5201 5202 * graphite-poly.h (pbb_nb_scattering_dims): New. 5203 (pbb_nb_scattering): Use it. 5204 52052009-04-24 Sebastian Pop <sebastian.pop@amd.com> 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 52112009-04-24 Sebastian Pop <sebastian.pop@amd.com> 5212 5213 * graphite-ppl.c (ppl_insert_dimensions): Fix formatting. 5214 52152009-04-24 Sebastian Pop <sebastian.pop@amd.com> 5216 5217 * graphite-poly.h: Fix comment. 5218 52192009-04-24 Sebastian Pop <sebastian.pop@amd.com> 5220 5221 * graphite-sese-to-poly.c (build_poly_dr): Fix data ref multiplier. 5222 52232009-04-24 Tobias Grosser <grosser@fim.uni-passau.de> 5224 5225 * sese.c (expand_scalar_variables_stmt): Only iterate over the old 5226 statements. 5227 52282009-04-24 Tobias Grosser <grosser@fim.uni-passau.de> 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 52342009-04-20 Sebastian Pop <sebastian.pop@amd.com> 5235 5236 * graphite-scop-detection.c (stmt_simple_for_scop_p): Do not 5237 handle EQ_EXPR and NE_EXPR. 5238 52392009-04-17 Tobias Grosser <grosser@fim.uni-passau.de> 5240 5241 * graphite-poly.h (poly_dr): Fix comment. 5242 52432009-04-09 Sebastian Pop <sebastian.pop@amd.com> 5244 Tobias Grosser <grosser@fim.uni-passau.de> 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 52552009-04-09 Sebastian Pop <sebastian.pop@amd.com> 5256 Tobias Grosser <grosser@fim.uni-passau.de> 5257 5258 * graphite-sese-to-poly.c (add_condition_to_pbb): Pass code to 5259 add_condition_to_domain not GT_EXPR. 5260 52612009-04-09 Tobias Grosser <grosser@fim.uni-passau.de> 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 52692009-04-09 Tobias Grosser <grosser@fim.uni-passau.de> 5270 5271 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Do not 5272 handle abnormal edges. 5273 52742009-04-09 Tobias Grosser <grosser@fim.uni-passau.de> 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 52842009-04-08 Sebastian Pop <sebastian.pop@amd.com> 5285 5286 * graphite-clast-to-gimple.c (initialize_cloog_names): Change cloog 5287 names into more meaningful names. 5288 52892009-04-08 Sebastian Pop <sebastian.pop@amd.com> 5290 5291 * gfortran.dg/graphite/interchange-1.c: New. 5292 * gfortran.dg/graphite/interchange-2.c: New. 5293 52942009-04-08 Sebastian Pop <sebastian.pop@amd.com> 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 53022009-04-08 Sebastian Pop <sebastian.pop@amd.com> 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 53092009-04-08 Sebastian Pop <sebastian.pop@amd.com> 5310 5311 * sese.c (add_loop_exit_phis): Don't fail on non SSA_NAME renames. 5312 53132009-04-08 Sebastian Pop <sebastian.pop@amd.com> 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 53262009-04-08 Sebastian Pop <sebastian.pop@amd.com> 5327 5328 * graphite-scop-detection.c (limit_scops): Deal only with single exit 5329 loops. 5330 53312009-04-08 Tobias Grosser <grosser@fim.uni-passau.de> 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 53412009-04-08 Tobias Grosser <grosser@fim.uni-passau.de> 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 53582009-04-07 Sebastian Pop <sebastian.pop@amd.com> 5359 5360 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Fix comment. 5361 53622009-04-07 Sebastian Pop <sebastian.pop@amd.com> 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 53722009-04-03 Tobias Grosser <grosser@fim.uni-passau.de> 5373 Sebastian Pop <sebastian.pop@amd.com> 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 53812009-04-03 Sebastian Pop <sebastian.pop@amd.com> 5382 Tobias Grosser <grosser@fim.uni-passau.de> 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 54372009-04-03 Sebastian Pop <sebastian.pop@amd.com> 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 54442009-04-01 Tobias Grosser <grosser@fim.uni-passau.de> 5445 Sebastian Pop <sebastian.pop@amd.com> 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 54532009-03-29 Tobias Grosser <grosser@fim.uni-passau.de> 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 54642009-03-29 Tobias Grosser <grosser@fim.uni-passau.de> 5465 5466 * tree-ssa-loop.c: Include forgotten toplev.h 5467 54682009-03-29 Tobias Grosser <grosser@fim.uni-passau.de> 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 54822009-03-28 Tobias Grosser <grosser@fim.uni-passau.de> 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 54912009-03-27 Tobias Grosser <grosser@fim.uni-passau.de> 5492 Sebastian Pop <sebastian.pop@amd.com> 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 54992009-03-26 Tobias Grosser <grosser@fim.uni-passau.de> 5500 Sebastian Pop <sebastian.pop@amd.com> 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 55182009-03-25 Tobias Grosser <grosser@fim.uni-passau.de> 5519 5520 * graphite-sese-to-poly.c (build_scop_scattering): Fix compile. 5521 55222009-03-25 Tobias Grosser <grosser@fim.uni-passau.de> 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 55282009-03-24 Sebastian Pop <sebastian.pop@amd.com> 5529 5530 * sese.c (get_new_name_from_old_name): Renamed get_rename. 5531 (register_old_and_new_names): Renamed set_rename. 5532 55332009-03-24 Sebastian Pop <sebastian.pop@amd.com> 5534 5535 * graphite-scop-detection.h (nb_reductions_in_loop): Revert removal 5536 of the decl from the previous commit. 5537 55382009-03-24 Sebastian Pop <sebastian.pop@amd.com> 5539 5540 * graphite-scop-detection.c (dot_scop): New. 5541 * graphite-scop-detection.h (dot_scop): Declared. 5542 55432009-03-24 Sebastian Pop <sebastian.pop@amd.com> 5544 5545 * graphite-sese-to-poly.c (compare_prefix_loops): Fix compare. 5546 55472009-03-24 Sebastian Pop <sebastian.pop@amd.com> 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 55592009-03-24 Sebastian Pop <sebastian.pop@amd.com> 5560 5561 Reverted the patch from 2009-03-19. 5562 55632009-03-19 Tobias Grosser <grosser@fim.uni-passau.de> 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 55772009-03-13 Sebastian Pop <sebastian.pop@amd.com> 5578 5579 * graphite-scop-detection.c (dot_all_scops_1): Close the table 5580 once per basic block. 5581 55822009-03-13 Tobias Grosser <grosser@fim.uni-passau.de> 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 55952009-03-13 Tobias Grosser <grosser@fim.uni-passau.de> 5596 5597 * gcc.dg/graphite/id-4.c: New. 5598 55992009-03-12 Sebastian Pop <sebastian.pop@amd.com> 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 56152009-03-12 Sebastian Pop <sebastian.pop@amd.com> 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 56262009-03-11 Tobias Grosser <grosser@fim.uni-passau.de> 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 56382009-03-11 Tobias Grosser <grosser@fim.uni-passau.de> 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 56582009-03-11 Tobias Grosser <grosser@fim.uni-passau.de> 5659 5660 Revert previous commit. 5661 56622009-03-11 Sebastian Pop <sebastian.pop@amd.com> 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 56782009-03-11 Tobias Grosser <grosser@fim.uni-passau.de> 5679 5680 Remove forgotten line in revert. 5681 56822009-03-11 Sebastian Pop <sebastian.pop@amd.com> 5683 5684 Revert previous commit. 5685 56862009-03-10 Sebastian Pop <sebastian.pop@amd.com> 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 57012009-03-10 Sebastian Pop <sebastian.pop@amd.com> 5702 5703 * graphite-clast-to-gimple.c (translate_clast): context_loop 5704 is never NULL. 5705 57062009-03-10 Tobias Grosser <grosser@fim.uni-passau.de> 5707 Sebastian Pop <sebastian.pop@amd.com> 5708 5709 * graphite-ppl.c (ppl_insert_dimensions): Fix stupid mistake 5710 of the use of ppl_Polyhedron_map_space_dimensions. 5711 57122009-03-10 Tobias Grosser <grosser@fim.uni-passau.de> 5713 Sebastian Pop <sebastian.pop@amd.com> 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 57252009-03-09 Tobias Grosser <grosser@fim.uni-passau.de> 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 57322009-03-05 Tobias Grosser <grosser@fim.uni-passau.de> 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 57382009-03-04 Tobias Grosser <grosser@fim.uni-passau.de> 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 57622009-03-04 Tobias Grosser <grosser@fim.uni-passau.de> 5763 Sebastian Pop <sebastian.pop@amd.com> 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 57972009-03-04 Sebastian Pop <sebastian.pop@amd.com> 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 58042009-03-02 Sebastian Pop <sebastian.pop@amd.com> 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 58172009-03-02 Sebastian Pop <sebastian.pop@amd.com> 5818 5819 * tree-parloops.c (canonicalize_loop_ivs): reduction_list contains 5820 SSA_NAMES not struct reduction_info. 5821 58222009-03-02 Sebastian Pop <sebastian.pop@amd.com> 5823 5824 * sese.c (expand_scalar_variables_expr): Handle ADDR_EXPR. 5825 58262009-02-27 Sebastian Pop <sebastian.pop@amd.com> 5827 Tobias Grosser <grosser@fim.uni-passau.de> 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 58362009-02-27 Sebastian Pop <sebastian.pop@amd.com> 5837 Tobias Grosser <grosser@fim.uni-passau.de> 5838 5839 * tree-flow.h (gather_scalar_reductions): Use struct loop * instead 5840 of loop_p. 5841 58422009-02-27 Sebastian Pop <sebastian.pop@amd.com> 5843 Tobias Grosser <grosser@fim.uni-passau.de> 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 58532009-02-26 Sebastian Pop <sebastian.pop@amd.com> 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 58592009-02-25 Sebastian Pop <sebastian.pop@amd.com> 5860 Jan Sjodin <jan.sjodin@amd.com> 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 58922009-02-23 Sebastian Pop <sebastian.pop@amd.com> 5893 Tobias Grosser <grosser@fim.uni-passau.de> 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 58992009-02-23 Sebastian Pop <sebastian.pop@amd.com> 5900 Tobias Grosser <grosser@fim.uni-passau.de> 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 59082009-02-23 Sebastian Pop <sebastian.pop@amd.com> 5909 Tobias Grosser <grosser@fim.uni-passau.de> 5910 5911 * graphite-data-ref.[ch]: Disable. 5912 59132009-02-23 Sebastian Pop <sebastian.pop@amd.com> 5914 Tobias Grosser <grosser@fim.uni-passau.de> 5915 5916 * graphite-scop-detection.c (stmt_simple_for_scop_p): Analyze 5917 scalar evolutions in the scop_entry->loop_father. 5918 59192009-02-23 Sebastian Pop <sebastian.pop@amd.com> 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 59392009-02-23 Sebastian Pop <sebastian.pop@amd.com> 5940 Tobias Grosser <grosser@fim.uni-passau.de> 5941 5942 * graphite-sese-to-poly.c (scan_tree_for_params): Remove REAL_CST. 5943 The SCoP detection fix is sufficient. 5944 59452009-02-21 Sebastian Pop <sebastian.pop@amd.com> 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 59542009-02-21 Sebastian Pop <sebastian.pop@amd.com> 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 59622009-02-20 Sebastian Pop <sebastian.pop@amd.com> 5963 Tobias Grosser <grosser@fim.uni-passau.de> 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 59812009-02-20 Sebastian Pop <sebastian.pop@amd.com> 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 60032009-02-20 Sebastian Pop <sebastian.pop@amd.com> 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 60622009-02-20 Sebastian Pop <sebastian.pop@amd.com> 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 60862009-02-18 Tobias Grosser <grosser@fim.uni-passau.de> 6087 Sebastian Pop <sebastian.pop@amd.com> 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 60942009-02-18 Tobias Grosser <grosser@fim.uni-passau.de> 6095 Sebastian Pop <sebastian.pop@amd.com> 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 61242009-02-18 Sebastian Pop <sebastian.pop@amd.com> 6125 Tobias Grosser <grosser@fim.uni-passau.de> 6126 6127 * graphite.c: Replace gb -> gbb. 6128 * graphite.h: Same. 6129 * graphite-data-ref.c: Same. 6130 61312009-02-18 Sebastian Pop <sebastian.pop@amd.com> 6132 Tobias Grosser <grosser@fim.uni-passau.de> 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 61592009-02-16 Sebastian Pop <sebastian.pop@amd.com> 6160 Tobias Grosser <grosser@fim.uni-passau.de> 6161 6162 * graphite.c (build_scop_conditions_1): Conditions are only 6163 at the end of a basic block. 6164 61652009-02-16 Sebastian Pop <sebastian.pop@amd.com> 6166 Tobias Grosser <grosser@fim.uni-passau> 6167 6168 * graphite.h (struct graphite_bb): Remove compressed_alpha_matrix 6169 field. 6170 (GBB_ALPHA): Removed. 6171 61722009-02-16 Sebastian Pop <sebastian.pop@amd.com> 6173 Tobias Grosser <grosser@fim.uni-passau.de> 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 61842009-02-16 Sebastian Pop <sebastian.pop@amd.com> 6185 Tobias Grosser <grosser@fim.uni-passau.de> 6186 6187 * graphite.c (schedule_to_scattering): Don't use CloogMatrix. 6188 (print_graphite_bb): Same. 6189 (build_cloog_prog): Same. 6190 61912009-02-16 Sebastian Pop <sebastian.pop@amd.com> 6192 Tobias Grosser <grosser@fim.uni-passau.de> 6193 6194 * graphite.c (build_cloog_prog): Don't use CloogMatrix. 6195 61962009-02-16 Sebastian Pop <sebastian.pop@amd.com> 6197 Tobias Grosser <grosser@fim.uni-passau.de> 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 62032009-02-16 Sebastian Pop <sebastian.pop@amd.com> 6204 Tobias Grosser <grosser@fim.uni-passau.de> 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 62122009-02-16 Sebastian Pop <sebastian.pop@amd.com> 6213 Tobias Grosser <grosser@fim.uni-passau.de> 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 62252009-02-16 Sebastian Pop <sebastian.pop@amd.com> 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 62372009-02-15 Sebastian Pop <sebastian.pop@amd.com> 6238 6239 * graphite.c: Free local memory. 6240 * graphite-ppl.c: Same. 6241 62422009-02-15 Sebastian Pop <sebastian.pop@amd.com> 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 62532009-02-14 Sebastian Pop <sebastian.pop@amd.com> 6254 6255 * graphite.c (build_loop_iteration_domains): Remove ping pong. 6256 (build_scop_iteration_domain): Same. 6257 62582009-02-13 Sebastian Pop <sebastian.pop@amd.com> 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 62682009-02-13 Sebastian Pop <sebastian.pop@amd.com> 6269 6270 * graphite.c (graphite_trans_bb_move_loop): Remove ping pong, 6271 use ppl_move_dimension. 6272 62732009-02-12 Sebastian Pop <sebastian.pop@amd.com> 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 62812009-02-12 Sebastian Pop <sebastian.pop@amd.com> 6282 6283 Revert last 3 commits. 6284 62852009-02-10 Sebastian Pop <sebastian.pop@amd.com> 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 62952009-02-10 Sebastian Pop <sebastian.pop@amd.com> 6296 6297 * graphite.c (graphite_trans_bb_move_loop): Remove unused variables. 6298 62992009-02-10 Sebastian Pop <sebastian.pop@amd.com> 6300 Tobias Grosser <grosser@fim.uni-passau.de> 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 63072009-02-10 Sebastian Pop <sebastian.pop@amd.com> 6308 6309 * graphite.c: Do not include cloog/cloog.h. 6310 (print_graphite_bb): Remove ping pong, call PPL print function. 6311 63122009-02-10 Tobias Grosser <grosser@fim.uni-passau.de> 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 63342009-02-06 Sebastian Pop <sebastian.pop@amd.com> 6335 6336 * graphite.c: Fix some comments. 6337 63382009-02-05 Sebastian Pop <sebastian.pop@amd.com> 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 63462009-02-03 Tobias Grosser <grosser@fim.uni-passau.de> 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 63652009-02-03 Tobias Grosser <grosser@fim.uni-passau.de> 6366 6367 * graphite.c (scopdet_basic_block_info): Fix bug in scop 6368 detection. 6369 63702009-01-30 Tobias Grosser <grosser@fim.uni-passau.de> 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 63782009-01-30 Tobias Grosser <grosser@fim.uni-passau.de> 6379 6380 * opts.c (decode_options): Only add graphite options to O2 6381 if we compile with graphite enabled. 6382 63832009-01-26 Sebastian Pop <sebastian.pop@amd.com> 6384 6385 * Merge from mainline (r143163:143684). 6386 63872009-01-26 Sebastian Pop <sebastian.pop@amd.com> 6388 6389 * graphite.c (debug_value): Removed. 6390 * graphite.h (debug_value): Removed. 6391 63922009-01-23 Sebastian Pop <sebastian.pop@amd.com> 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 63982009-01-23 Sebastian Pop <sebastian.pop@amd.com> 6399 6400 * graphite.c (scop_adjust_phis_for_liveouts): Fix warning. 6401 64022009-01-23 Sebastian Pop <sebastian.pop@amd.com> 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 64092009-01-20 Sebastian Pop <sebastian.pop@amd.com> 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 64172009-01-19 Sebastian Pop <sebastian.pop@amd.com> 6418 6419 * graphite.c (stmt_simple_for_scop_p): Also handle cases when 6420 gimple_call_lhs is NULL. 6421 64222009-01-16 Sebastian Pop <sebastian.pop@amd.com> 6423 Tobias Grosser <tobi.grosser@amd.com> 6424 6425 * graphite.c (graphite_trans_scop_block): Do not block single 6426 nested loops. 6427 64282009-01-15 Sebastian Pop <sebastian.pop@amd.com> 6429 Tobias Grosser <tobi.grosser@amd.com> 6430 6431 * graphite.c (build_scop_canonical_schedules): Start schedules at 6432 zero. 6433 64342009-01-15 Sebastian Pop <sebastian.pop@amd.com> 6435 Tobias Grosser <tobi.grosser@amd.com> 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 64422009-01-14 Sebastian Pop <sebastian.pop@amd.com> 6443 Tobias Grosser <tobi.grosser@amd.com> 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 64552009-01-14 Sebastian Pop <sebastian.pop@amd.com> 6456 Tobias Grosser <tobi.grosser@amd.com> 6457 Jan Sjodin <jan.sjodin@amd.com> 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 64662009-01-14 Sebastian Pop <sebastian.pop@amd.com> 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 64752009-01-13 Sebastian Pop <sebastian.pop@amd.com> 6476 6477 * passes.c (init_optimization_passes): Schedule after 6478 graphite transforms pass_copy_prop, pass_dce_loop and pass_lim. 6479 64802009-01-13 Sebastian Pop <sebastian.pop@amd.com> 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 64912009-01-11 Sebastian Pop <sebastian.pop@amd.com> 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 64982009-01-11 Sebastian Pop <sebastian.pop@amd.com> 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 65092009-01-10 Sebastian Pop <sebastian.pop@amd.com> 6510 6511 * gcc.dg/graphite/block-3.c: Fix compile error on 32bit. 6512 65132009-01-10 Sebastian Pop <sebastian.pop@amd.com> 6514 6515 * opts.c (decode_options): Enable flag_graphite_identity and 6516 flag_loop_block in -O2 and above. 6517 65182009-01-08 Sebastian Pop <sebastian.pop@amd.com> 6519 6520 * libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.class: 6521 Fix merge problem: replace with the file from trunk. 6522 65232009-01-08 Sebastian Pop <sebastian.pop@amd.com> 6524 6525 * Merge from mainline (r141727:143163). 6526 65272009-01-07 Sebastian Pop <sebastian.pop@amd.com> 6528 Jan Sjodin <jan.sjodin@amd.com> 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 65412009-01-06 Jan Sjodin <jan.sjodin@amd.com> 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 65752008-12-22 Harsha Jagasia <harsha.jagasia@amd.com> 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 65842008-12-12 Sebastian Pop <sebastian.pop@amd.com> 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 66162008-12-11 Sebastian Pop <sebastian.pop@amd.com> 6617 6618 PR tree-optimization/38409 6619 * gcc.dg/graphite/pr38409.c: New. 6620 * graphite.c (nb_reductions_in_loop): Use simple_iv. 6621 66222008-12-11 Sebastian Pop <sebastian.pop@amd.com> 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 66292008-12-11 Harsha Jagasia <harsha.jagasia@amd.com> 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 66392008-12-11 Tobias Grosser <grosser@fim.uni-passau.de> 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 66452008-12-11 Sebastian Pop <sebastian.pop@amd.com> 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 66892008-12-10 Tobias Grosser <grosser@fim.uni-passau.de> 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 67032008-12-09 Tobias Grosser <grosser@fim.uni-passau.de> 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 67092008-12-09 Tobias Grosser <grosser@fim.uni-passau.de> 6710 6711 * graphite.c (print_graphite_bb): Fix printing to file != dump_file. 6712 (print_scop): Ditto. 6713 67142008-12-08 Tobias Grosser <grosser@fim.uni-passau.de> 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 67212008-12-03 Sebastian Pop <sebastian.pop@amd.com> 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 67272008-12-03 Sebastian Pop <sebastian.pop@amd.com> 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 67422008-12-03 Sebastian Pop <sebastian.pop@amd.com> 6743 6744 * graphite.c (build_scops_1): Initialize open_scop.exit 6745 and sinfo.last. 6746 67472008-12-02 Sebastian Pop <sebastian.pop@amd.com> 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 67562008-12-02 Sebastian Pop <sebastian.pop@amd.com> 6757 Jan Sjodin <jan.sjodin@amd.com> 6758 Harsha Jagasia <harsha.jagasia@amd.com> 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 68762008-11-09 Sebastian Pop <sebastian.pop@amd.com> 6877 6878 * Merge from mainline (r140838:141727). 6879 68802008-11-05 Tobias Grosser <grosser@fim.uni-passau.de> 6881 6882 PR middle-end/37833 6883 6884 * graphite.c (scan_tree_for_params): Add POINTER_PLUS_EXPR. 6885 68862008-11-05 Tobias Grosser <grosser@fim.uni-passau.de> 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 68942008-10-23 Tobias Grosser <grosser@fim.uni-passau.de> 6895 6896 PR middle-end/37886 6897 * graphite.c (gloog): Replace EXIT_BLOCK_PTR with scop exit. 6898 68992008-10-23 Tobias Grosser <grosser@fim.uni-passau.de> 6900 6901 * doc/invoke.texi: Fix spaces. 6902 69032008-10-22 Sebastian Pop <sebastian.pop@amd.com> 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 69102008-10-21 Sebastian Pop <sebastian.pop@amd.com> 6911 Mitul Thakkar <mitul.thakkar@amd.com> 6912 6913 * graphite.c (create_single_entry_edge): Set 6914 EDGE_IRREDUCIBLE_LOOP and BB_IRREDUCIBLE_LOOP. 6915 69162008-10-16 Tobias Grosser <grosser@fim.uni-passau.de> 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 69242008-10-14 Sebastian Pop <sebastian.pop@amd.com> 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 69322008-10-14 Sebastian Pop <sebastian.pop@amd.com> 6933 Harsha Jagasia <harsha.jagasia@amd.com> 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 69402008-10-09 Harsha Jagasia <harsha.jagasia@amd.com> 6941 Sebastian Pop <sebastian.pop@amd.com> 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 69542008-10-03 Harsha Jagasia <harsha.jagasia@amd.com> 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 69612008-10-02 Jan Sjodin <jan.sjodin@amd.com> 6962 Harsha Jagasia <harsha.jagasia@amd.com> 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 69872008-10-02 Sebastian Pop <sebastian.pop@amd.com> 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 69922008-10-02 Sebastian Pop <sebastian.pop@amd.com> 6993 6994 * cfgloopmanip.c (create_empty_loop_on_edge): Write exit condition 6995 with the IV name after increment. 6996 69972008-10-02 Sebastian Pop <sebastian.pop@amd.com> 6998 6999 * Merge from mainline (r140164:140838). 7000 70012008-09-10 Konrad Trifunovic <konrad.trifunovic@inria.fr> 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 70212008-09-09 Sebastian Pop <sebastian.pop@amd.com> 7022 7023 * Merge from mainline (139870:140164). 7024 70252008-09-01 Sebastian Pop <sebastian.pop@amd.com> 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 70312008-09-01 Sebastian Pop <sebastian.pop@amd.com> 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 70432008-08-29 Jan Sjodin <jan.sjodin@amd.com> 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 70662008-08-26 Sebastian Pop <sebastian.pop@amd.com> 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 70722008-08-26 Sebastian Pop <sebastian.pop@amd.com> 7073 7074 * graphite.c (dot_all_scops_1): Do not fail on uninitialized 7075 SCOP_ENTRY or SCOP_EXIT. 7076 70772008-08-25 Sebastian Pop <sebastian.pop@amd.com> 7078 7079 * graphite.c (get_construction_edge): Removed. 7080 (gloog): Construction edge is the scop entry edge. 7081 70822008-08-25 Sebastian Pop <sebastian.pop@amd.com> 7083 7084 * graphite.c (can_generate_for_scop): Removed. 7085 (gloog): Do not call it. 7086 70872008-08-25 Sebastian Pop <sebastian.pop@amd.com> 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 71042008-08-25 Tobias Grosser <grosser@fim.uni-passau.de> 7105 Sebastian Pop <sebastian.pop@amd.com> 7106 7107 * graphite.c (graphite_transform_loops): Always enable gloog 7108 and find_transform when ENABLE_CHECKING. 7109 71102008-08-25 Sebastian Pop <sebastian.pop@amd.com> 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 71162008-08-25 Sebastian Pop <sebastian.pop@amd.com> 7117 7118 * graphite.c (dump_gbb_conditions): Don't try to print NULL pointers. 7119 (print_graphite_bb): Same. 7120 71212008-08-25 Sebastian Pop <sebastian.pop@amd.com> 7122 7123 * graphite.c (dot_all_scops_1): Cleanup. 7124 (move_scops): Fix comment. 7125 71262008-08-25 Sebastian Pop <sebastian.pop@amd.com> 7127 7128 * graphite.c (build_scop_bbs): Revert commit 139355: 7129 7130 2008-08-20 Sebastian Pop <sebastian.pop@amd.com> 7131 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> 7132 7133 * graphite.c (build_scop_bbs): Factor up code. 7134 71352008-08-25 Tobias Grosser <grosser@fim.uni-passau.de> 7136 7137 * graphite.c (gloog): Update dominator info. 7138 71392008-08-25 Tobias Grosser <grosser@fim.uni-passau.de> 7140 7141 * graphite.c (remove_cond_exprs): Do not fail on empty bbs. 7142 71432008-08-24 Sebastian Pop <sebastian.pop@amd.com> 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 71532008-08-24 Sebastian Pop <sebastian.pop@amd.com> 7154 7155 * graphite.c (build_access_matrix_with_af): Fix comments. 7156 (build_scop_data_accesses): Same. 7157 71582008-08-24 Sebastian Pop <sebastian.pop@amd.com> 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 71642008-08-24 Sebastian Pop <sebastian.pop@amd.com> 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 71742008-08-22 Jan Sjodin <jan.sjodin@amd.com> 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 71932008-08-21 Sebastian Pop <sebastian.pop@amd.com> 7194 7195 * graphite.c (remove_dead_loops): Document better which 7196 loops are removed. 7197 71982008-08-21 Sebastian Pop <sebastian.pop@amd.com> 7199 7200 * Makefile.in: Rename POLYLIBLIBS and POLYLIBINC to PPLLIBS 7201 and PPLINC. 7202 (graphite.o): Also depends on pointer-set.h. 7203 72042008-08-21 Sebastian Pop <sebastian.pop@amd.com> 7205 7206 * graphite.c (scop_record_loop): Fix compile warning. 7207 72082008-08-21 Harsha Jagasia <harsha.jagasia@amd.com> 7209 Sebastian Pop <sebastian.pop@amd.com> 7210 7211 * graphite.c (scop_record_loop): DECL_NAME can be NULL. 7212 72132008-08-21 Sebastian Pop <sebastian.pop@amd.com> 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 72222008-08-20 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> 7223 Sebastian Pop <sebastian.pop@amd.com> 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 72612008-08-20 Sebastian Pop <sebastian.pop@amd.com> 7262 7263 * graphite.c: Fix some XXX comments. 7264 (build_scop_dynamic_schedules): Removed. 7265 72662008-08-20 Sebastian Pop <sebastian.pop@amd.com> 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 72752008-08-20 Sebastian Pop <sebastian.pop@amd.com> 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 72822008-08-20 Sebastian Pop <sebastian.pop@amd.com> 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 72892008-08-20 Jan Sjodin <jan.sjodin@amd.com> 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 73122008-08-20 Sebastian Pop <sebastian.pop@amd.com> 7313 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> 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 73212008-08-20 Sebastian Pop <sebastian.pop@amd.com> 7322 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> 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 73272008-08-20 Sebastian Pop <sebastian.pop@amd.com> 7328 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> 7329 7330 * graphite.c (build_scop_bbs): Factor up code. 7331 73322008-08-20 Sebastian Pop <sebastian.pop@amd.com> 7333 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> 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 73432008-08-20 Sebastian Pop <sebastian.pop@amd.com> 7344 7345 * doc/invoke.texi: Remove strides from examples containing 7346 DO loops when the strides are equal to 1. 7347 73482008-08-20 Harsha Jagasia <harsha.jagasia@amd.com> 7349 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> 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 73572008-08-20 Sebastian Pop <sebastian.pop@amd.com> 7358 7359 * graphite.c (graphite_transform_loops): Call cloog_initialize 7360 and cloog_finalize. 7361 73622008-08-20 Sebastian Pop <sebastian.pop@amd.com> 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 73752008-08-20 Sebastian Pop <sebastian.pop@amd.com> 7376 7377 * gdbinit.in (pgg): New. 7378 73792008-08-15 Tobias Grosser <grosser@fim.uni-passau.de> 7380 7381 * graphite.c (graphite_trans_loop_block): Fix warning. 7382 73832008-08-15 Tobias Grosser <grosser@fim.uni-passau.de> 7384 7385 * graphite.c (graphite_trans_loop_block): Fix my merge error. 7386 73872008-08-15 Tobias Grosser <grosser@fim.uni-passau.de> 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 73962008-08-14 Sebastian Pop <sebastian.pop@amd.com> 7397 7398 * graphite.c: Add some more documentation for the loop 7399 mapping. 7400 74012008-08-14 Sebastian Pop <sebastian.pop@amd.com> 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 74072008-08-14 Sebastian Pop <sebastian.pop@amd.com> 7408 7409 * cfgloopmanip.c (loopify): Use update_dominators_in_loop. 7410 74112008-08-14 Sebastian Pop <sebastian.pop@amd.com> 7412 7413 * doc/invoke.texi (floop-block, floop-strip-mine, 7414 floop-interchange): Update documentation with examples. 7415 74162008-08-13 Sebastian Pop <sebastian.pop@amd.com> 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 74222008-08-13 Sebastian Pop <sebastian.pop@amd.com> 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 74352008-08-12 Harsha Jagasia <harsha.jagasia@amd.com> 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 74502008-08-11 Tobias Grosser <grosser@fim.uni-passau.de> 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 74562008-08-11 Tobias Grosser <grosser@fim.uni-passau.de> 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 74622008-08-11 Tobias Grosser <grosser@fim.uni-passau.de> 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 74682008-08-11 Tobias Grosser <grosser@fim.uni-passau.de> 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 74742008-08-11 Tobias Grosser <grosser@fim.uni-passau.de> 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 74832008-08-11 Tobias Grosser <grosser@fim.uni-passau.de> 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 75102008-08-11 Tobias Grosser <grosser@fim.uni-passau.de> 7511 7512 * graphite.c (graphite_transform_loops): Call always find_transform. 7513 75142008-08-08 Tobias Grosser <grosser@fim.uni-passau.de> 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 75262008-08-07 Tobias Grosser <grosser@fim.uni-passau.de> 7527 7528 * gcc.dg/graphite/scop-16.c: Fix for 32bit. 7529 * gcc.dg/graphite/scop-17.c: Fix for 32bit. 7530 75312008-08-04 Sebastian Pop <sebastian.pop@amd.com> 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 75422008-08-04 Sebastian Pop <sebastian.pop@amd.com> 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 75482008-08-03 Sebastian Pop <sebastian.pop@amd.com> 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 75602008-08-03 Sebastian Pop <sebastian.pop@amd.com> 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 75652008-08-02 Sebastian Pop <sebastian.pop@amd.com> 7566 Jan Sjodin <jan.sjodin@amd.com> 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 75862008-08-01 Harsha Jagasia <harsha.jagasia@amd.com> 7587 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> 7588 Jan Sjodin <jan.sjodin@amd.com> 7589 7590 Finish the merge and tuplification of graphite. 7591 75922008-07-24 Sebastian Pop <sebastian.pop@amd.com> 7593 Jan Sjodin <jan.sjodin@amd.com> 7594 7595 Partial merge from mainline (138072:138275). 7596 * graphite.c still has to be tuplified. 7597 75982008-07-29 Jan Sjodin <jan.sjodin@amd.com> 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 76112008-07-29 Tobias Grosser <grosser@fim.uni-passau.de> 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 76182008-07-25 Jan Sjodin <jan.sjodin@amd.com> 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 76262008-07-25 Jan Sjodin <jan.sjodin@amd.com> 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 76492008-07-25 Sebastian Pop <sebastian.pop@amd.com> 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 76552008-07-25 Sebastian Pop <sebastian.pop@amd.com> 7656 Jan Sjodin <jan.sjodin@amd.com> 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 76632008-07-25 Sebastian Pop <sebastian.pop@amd.com> 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 76702008-07-24 Sebastian Pop <sebastian.pop@amd.com> 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 76852008-07-24 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> 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 77022008-07-23 Jan Sjodin <jan.sjodin@amd.com> 7703 Sebastian Pop <sebastian.pop@amd.com> 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 77692008-07-21 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> 7770 Sebastian Pop <sebastian.pop@amd.com> 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 77792008-07-17 Harsha Jagasia <harsha.jagasia@amd.com> 7780 Jan Sjodin <jan.sjodin@amd.com> 7781 Sebastian Pop <sebastian.pop@amd.com> 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 77952008-07-11 Tobias Grosser <grosser@fim.uni-passau.de> 7796 7797 * graphite.c (scop_remove_ignoreable_gbbs): Also update bitmap. 7798 (graphite_trans_scop_block): Ignore SCoPs without bbs. 7799 78002008-07-11 Tobias Grosser <grosser@fim.uni-passau.de> 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 78112008-07-10 Harsha Jagasia <harsha.jagasia@amd.com> 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 78202008-07-10 Harsha Jagasia <harsha.jagasia@amd.com> 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 78312008-07-10 Harsha Jagasia <harsha.jagasia@amd.com> 7832 7833 * graphite.c (is_bb_addable): Fix segfault in spec gzip and reformat. 7834 78352008-07-10 Tobias Grosser <grosser@fim.uni-passau.de> 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 78522008-07-10 Tobias Grosser <grosser@fim.uni-passau.de> 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 78622008-07-09 Tobias Grosser <grosser@fim.uni-passau.de> 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 78712008-07-04 Tobias Grosser <grosser@fim.uni-passau.de> 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 78762008-06-20 Richard Guenther <rguenther@suse.de> 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 78902008-06-20 Konrad Trifunovic <konrad.trifunovic@inria.fr> 7891 7892 * graphite.c: Fix formatting. 7893 78942008-06-19 Konrad Trifunovic <konrad.trifunovic@inria.fr> 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 79142008-06-19 Sebastian Pop <sebastian.pop@amd.com> 7915 7916 * cfgloopmanip.c: Add missing function comments, fix formatting. 7917 79182008-06-18 Konrad Trifunovic <konrad.trifunovic@inria.fr> 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 79282008-06-16 Tobias Grosser <grosser@fim.uni-passau.de> 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 79422008-06-15 Tobias Grosser <grosser@fim.uni-passau.de> 7943 7944 * graphite.c (build_scop_iteration_domain): Remove forgotten 7945 line. (Fixes compile) 7946 79472008-06-15 Tobias Grosser <grosser@fim.uni-passau.de> 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 79622008-06-14 Tobias Grosser <grosser@fim.uni-passau.de> 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 79692008-06-14 Adrien Eliche <aeliche@isty.uvsq.fr> 7970 Tobias Grosser <grosser@fim.uni-passau.de> 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 79792008-06-14 Tobias Grosser <grosser@fim.uni-passau.de> 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 79902008-06-13 Tobias Grosser <grosser@fim.uni-passau.de> 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 80032008-06-12 Tobias Grosser <grosser@fim.uni-passau.de> 8004 8005 * graphite.c (find_scop_params): Remove initialize_cloog_names. 8006 80072008-06-12 Tobias Grosser <grosser@fim.uni-passau.de> 8008 8009 * graphite.c (end_scop): Style fix. 8010 (schedule_to_scattering): Style and comment fix. 8011 80122008-06-12 Tobias Grosser <grosser@fim.uni-passau.de> 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 80222008-06-12 Tobias Grosser <grosser@fim.uni-passau.de> 8023 8024 * graphite.c (end_scop): Disable bb splitting. Fixes SIGSEGV 8025 in polyhedron/aermod.f90. 8026 80272008-06-11 Tobias Grosser <grosser@fim.uni-passau.de> 8028 Dwarak Rajagopal <dwarak.rajagopal@amd.com> 8029 Harsha Jagasia <harsha.jagasia@amd.com> 8030 8031 * graphite.c (is_bb_addable): Fix segfault. 8032 80332008-06-10 Tobias Grosser <grosser@fim.uni-passau.de> 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 80412008-06-06 Tobias Grosser <grosser@fim.uni-passau.de> 8042 Adrien Eliche <aeliche@isty.uvsq.fr> 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 80482008-06-05 Tobias Grosser <grosser@fim.uni-passau.de> 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 80552008-06-05 Tobias Grosser <grosser@fim.uni-passau.de> 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 80632008-06-05 Sebastian Pop <sebastian.pop@amd.com> 8064 Dwarak Rajagopal <dwarak.rajagopal@amd.com> 8065 8066 * tree-loop-fusion.c (fuse_loops): Fix uninitialized variable 8067 warning. 8068 80692008-06-05 Sebastian Pop <sebastian.pop@amd.com> 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 80752008-06-04 Sebastian Pop <sebastian.pop@amd.com> 8076 Jan Sjodin <jan.sjodin@amd.com> 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 80822008-06-04 Tobias Grosser <grosser@fim.uni-passau.de> 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 80882008-06-04 Tobias Grosser <grosser@fim.uni-passau.de> 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 80972008-06-04 Tobias Grosser <grosser@fim.uni-passau.de> 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 81042008-06-04 Sebastian Pop <sebastian.pop@amd.com> 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 81102008-06-04 Sebastian Pop <sebastian.pop@amd.com> 8111 Tobias Grosser <grosser@fim.uni-passau.de> 8112 8113 * graphite.c (graphite_transform_loops): Early return when 8114 there are no loops in the function. 8115 81162008-05-31 Sebastian Pop <sebastian.pop@amd.com> 8117 Jan Sjodin <jan.sjodin@amd.com> 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 81232008-05-31 Sebastian Pop <sebastian.pop@amd.com> 8124 Jan Sjodin <jan.sjodin@amd.com> 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 81382008-05-31 Sebastian Pop <sebastian.pop@amd.com> 8139 Jan Sjodin <jan.sjodin@amd.com> 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 81442008-05-31 Sebastian Pop <sebastian.pop@amd.com> 8145 Jan Sjodin <jan.sjodin@amd.com> 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 81532008-05-30 Tobias Grosser <grosser@fim.uni-passau.de> 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 81632008-05-30 Sebastian Pop <sebastian.pop@amd.com> 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 81772008-05-30 Sebastian Pop <sebastian.pop@amd.com> 8178 Jan Sjodin <jan.sjodin@amd.com> 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 81862008-05-29 Tobias Grosser <grosser@fim.uni-passau.de> 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 81992008-05-29 Tobias Grosser <grosser@fim.uni-passau.de> 8200 8201 * graphite.c (dot_all_scops_1): Fix some colors. Reuse colors, if 8202 we have too many colors. 8203 82042008-05-22 Sandeep Maram <smaram_b04@iiita.ac.in> 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 82152008-05-21 Sebastian Pop <sebastian.pop@amd.com> 8216 8217 * graphite.c (build_access_matrix): Fix typo from the merge. 8218 82192008-05-20 Sebastian Pop <sebastian.pop@amd.com> 8220 8221 * Merge from mainline (130800:135673). 8222 82232008-05-07 Sebastian Pop <sebastian.pop@amd.com> 8224 8225 * graphite.c (end_scop): The exit of the scop is not part of the scop. 8226 Update dominators after splitting. 8227 82282008-05-07 Sebastian Pop <sebastian.pop@amd.com> 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 82352008-05-07 Sebastian Pop <sebastian.pop@amd.com> 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 82432008-05-06 Sebastian Pop <sebastian.pop@amd.com> 8244 8245 * graphite.c: Fix formatting. 8246 82472008-05-06 Tobias Grosser <grosser@fim.uni-passau.de> 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 82572008-05-06 Tobias Grosser <grosser@fim.uni-passau.de> 8258 8259 * graphite.c (dot_all_scops_1): Fix some incorrect colors and add 8260 more colors. 8261 82622008-05-06 Tobias Grosser <grosser@fim.uni-passau.de> 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 82702008-05-06 Sebastian Pop <sebastian.pop@amd.com> 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 82782008-05-06 Tobias Grosser <grosser@fim.uni-passau.de> 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 82862008-04-28 Tobias Grosser <grosser@fim.uni-passau.de> 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 82922008-04-25 Sebastian Pop <sebastian.pop@amd.com> 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 83052008-04-23 Sebastian Pop <sebastian.pop@amd.com> 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 83112008-04-23 Sebastian Pop <sebastian.pop@amd.com> 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 83292008-04-14 Konrad Trifunovic <konrad.trifunovic@inria.fr> 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 83552008-04-07 Sebastian Pop <sebastian.pop@amd.com> 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 83712008-04-05 Alexander Lamaison <awl03@doc.ic.ac.uk> 8372 Sebastian Pop <sebastian.pop@amd.com> 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 83902008-03-15 Antoniu Pop <antoniu.pop@gmail.com> 8391 Sebastian Pop <sebastian.pop@amd.com> 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 84642008-03-08 Tobias Grosser <grosser@fmi.uni-passau.de> 8465 8466 * graphite.c (dot_all_scops_1): Fix formatting for difficult bbs and 8467 update comment. 8468 84692008-03-07 Tobias Grosser <grosser@fim.uni-passau.de> 8470 8471 * graphite.c (dot_all_scops): Update formatting. 8472 Bbs can now be part of more than one SCoP. 8473 84742008-03-04 Sebastian Pop <sebastian.pop@amd.com> 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 84812008-03-04 Konrad Trifunovic <konrad.trifunovic@inria.fr> 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 84902008-03-02 Sebastian Pop <sebastian.pop@amd.com> 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 85312008-02-27 Antoniu Pop <antoniu.pop@gmail.com> 8532 Sebastian Pop <sebastian.pop@amd.com> 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 85412008-02-22 Konrad Trifunovic <konrad.trifunovic@inria.fr> 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 85502008-02-21 Sebastian Pop <sebastian.pop@amd.com> 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 85572008-02-15 Konrad Trifunovic <konrad.trifunovic@inria.fr> 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 85632008-02-14 Konrad Trifunovic <konrad.trifunovic@inria.fr> 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 85802008-02-10 Konrad Trifunovic <konrad.trifunovic@inria.fr> 8581 8582 * graphite.c (build_graphite_bb): Fix initialization 8583 of the graphite basic block. 8584 85852008-02-05 Sebastian Pop <sebastian.pop@amd.com> 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 85972008-01-29 Tobias Grosser <grosser@fim.uni-passau.de> 8598 8599 * graphite.c (schedule_to_scattering, nb_loops_around_gb): New. 8600 (print_graphite_bb): Print scattering. 8601 86022008-01-29 Tobias Grosser <grosser@fim.uni-passau.de> 8603 8604 * graphite.c (initialize_cloog_names): Initialize names of 8605 scattering variables. 8606 86072009-01-29 Tobias Grosser <grosser@fim.uni-passau.de> 8608 8609 * graphite.c (dot_all_scops_1): Disable debug output while 8610 printing graph. 8611 86122008-01-29 Tobias Grosser <grosser@fim.uni-passau.de> 8613 8614 * graphite.c (find_transform): Change cloog output language to C. 8615 86162008-01-27 Sebastian Pop <sebastian.pop@amd.com> 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 86282008-01-24 Sebastian Pop <sebastian.pop@amd.com> 8629 Tobias Grosser <grosser@fmi.uni-passau.de> 8630 8631 * graphite.c (setup_cloog_loop): Chain all cloog loops with the 8632 next pointer, don't use the inner pointer. 8633 86342008-01-20 Tobias Grosser <grosser@fmi.uni-passau.de> 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 86402007-12-14 Sebastian Pop <sebastian.pop@amd.com> 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 86502007-12-13 Tobias Grosser <grosser@fmi.uni-passau.de> 8651 8652 * graphite.c (find_transform): Dump cloog program sent to cloog. 8653 86542007-12-13 Tobias Grosser <grosser@fmi.uni-passau.de> 8655 8656 * graphite.c (initialize_cloog_names): Initialize cloog 8657 iterator names. 8658 86592007-12-13 Tobias Grosser <grosser@fmi.uni-passau.de> 8660 8661 * graphite.c (build_scop_context): Fix typo, for the matrix 8662 format: insert '0 >= 0' instead of '-1 >= 0'. 8663 86642007-12-13 Sebastian Pop <sebastian.pop@amd.com> 8665 8666 * Fix merge problems. 8667 86682007-12-13 Sebastian Pop <sebastian.pop@amd.com> 8669 8670 * graphite.c (setup_cloog_loop): Fix typo. 8671 86722007-12-12 Sebastian Pop <sebastian.pop@amd.com> 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 87452007-12-12 Konrad Trifunovic <konrad.trifunovic@inria.fr> 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 87542007-12-12 Sebastian Pop <sebastian.pop@amd.com> 8755 8756 * Merge from mainline (129697:130800). 8757 87582007-10-30 Sebastian Pop <sebastian.pop@amd.com> 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 87642007-10-28 Sebastian Pop <sebastian.pop@amd.com> 8765 8766 * Merge from mainline (127169:129697). 8767 87682007-10-28 Sebastian Pop <sebastian.pop@amd.com> 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 87782007-08-03 Sebastian Pop <sebpop@gmail.com> 8779 8780 * Makefile.in: Fix merge problem. 8781 87822007-08-03 Sebastian Pop <sebpop@gmail.com> 8783 8784 * Merge from mainline (125309:127169). 8785 * tree-loop-distribution.c: Disabled. 8786 87872007-06-05 Sebastian Pop <sebpop@gmail.com> 8788 8789 * Merge from mainline (r123693:125309). 8790 87912007-05-30 Sebastian Pop <sebpop@gmail.com> 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 88012007-05-24 Sebastian Pop <sebpop@gmail.com> 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 88122007-05-17 Georges-Andre Silber <silber@cri.ensmp.fr> 8813 Sebastian Pop <sebpop@gmail.com> 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 88282007-05-12 Sebastian Pop <sebastian.pop@inria.fr> 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 88342007-05-09 Sebastian Pop <sebastian.pop@inria.fr> 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 88602007-04-14 Sebastian Pop <sebastian.pop@inria.fr> 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 88682007-04-14 Sebastian Pop <sebastian.pop@inria.fr> 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 88842007-04-13 Sebastian Pop <sebastian.pop@inria.fr> 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 88972007-04-12 Sebastian Pop <sebastian.pop@inria.fr> 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 89042007-04-12 Nic Volanschi <nic.volanschi@free.fr> 8905 8906 * doc/invoke.texi (-ftree-check, -ftree-checks): Documented. 8907 89082007-04-10 Sebastian Pop <sebastian.pop@inria.fr> 8909 8910 * Merge from mainline (r120733:123693). 8911 89122007-03-20 Nic Volanschi <nic.volanschi@free.fr> 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 89322007-03-12 Sebastian Pop <sebastian.pop@inria.fr> 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 89572007-01-12 Sebastian Pop <sebastian.pop@inria.fr> 8958 8959 * Merge from mainline (r115016:120733). 8960 89612007-01-12 Sebastian Pop <sebastian.pop@inria.fr> 8962 8963 * Merge from mainline (r117632:117661). 8964 89652007-01-12 Sebastian Pop <sebastian.pop@inria.fr> 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 90132007-01-05 Sebastian Pop <sebastian.pop@inria.fr> 9014 9015 * Merge from mainline (r117661:120450). 9016 90172006-10-12 Sebastian Pop <sebastian.pop@inria.fr> 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 90472006-10-12 Sebastian Pop <pop@cri.ensmp.fr> 9048 9049 * Merge from mainline (r115016:117632). 9050 90512006-10-11 Sebastian Pop <pop@cri.ensmp.fr> 9052 9053 * graphite.c (debug_scops): Adjust definition for avoiding a bootstrap 9054 break due to a warning. 9055 90562006-10-10 Sebastian Pop <pop@cri.ensmp.fr> 9057 9058 * graphite.c (print_scops, debug_scops): New. 9059 (graphite_transform): Renamed graphite_find_transform. 9060 * graphite.h (debug_scops): Declared. 9061 90622006-08-17 Sebastian Pop <pop@cri.ensmp.fr> 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 90732006-07-04 Nic Volanschi <nic.volanschi@free.fr> 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 90872006-07-04 Sebastian Pop <pop@cri.ensmp.fr> 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 91122006-06-26 Sebastian Pop <pop@cri.ensmp.fr> 9113 Plesco Alexandru <shurikx@gmail.com> 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 9129