X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2FChangeLog.graphite;h=590f19d0763016bcbc71f00b2ff6221c1af5e0e8;hp=6323d1d5944a725be6ec8374a6ad40b2a9f5500c;hb=2bc59caae3c731de4e10e5a8f20562851a1a3d5c;hpb=554eeadb3deaf0b920476ca425d034ca9dec4110 diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite index 6323d1d5944..590f19d0763 100644 --- a/gcc/ChangeLog.graphite +++ b/gcc/ChangeLog.graphite @@ -1,3 +1,562 @@ +2009-11-20 Sebastian Pop + + Revert patch from 2009-09-14. + * tree-ssa-loop.c (gate_graphite_transforms): Re-enable Graphite + passes at -O1 and below. + +2009-11-18 Sebastian Pop + + PR middle-end/40281 + * testsuite/gcc.dg/graphite/pr40281.c: New. + + * tree-scalar-evolution.c (instantiate_scev_poly): Base and stride + evolutions should not variate in inner loops. + +2009-11-18 Sebastian Pop + + PR middle-end/42050 + * testsuite/gfortran.dg/graphite/pr42050.f90: New. + +2009-11-18 Sebastian Pop + + * graphite-interchange.c (memory_strides_in_loop_depth): New. + (pbb_interchange_profitable_p): Call memory_strides_in_loop_depth. + +2009-11-18 Sebastian Pop + + * graphite-blocking.c (scop_do_block): New. + * graphite-poly.c (apply_poly_transforms): Call scop_do_block. + * graphite-poly.h (scop_do_block): Declared. + +2009-11-18 Sebastian Pop + + * graphite-blocking.c (pbb_strip_mine_profitable_p): The parameter + depth is the loop nesting depth in the LST. Call psct_dynamic_dim + to transform depth into the time_depth before calling + pbb_number_of_iterations_at_time. + (lst_do_strip_mine): Use a scalar variable instead of recomputing + lst_depth. + +2009-11-18 Sebastian Pop + + Reverted the patch for "scattering permutations" from 2009-10-28. + + * graphite-poly.c (print_permutation): New. + (debug_permutation): New. + (new_poly_bb): Initialize PBB_PERMUTATION. + (free_poly_bb): Free PBB_PERMUTATION. + * graphite-poly.h (pbb_permutation_elt_p): Declared. + (struct pbb_permutation_elt): New. + (PBB_PERMUTATION_ELT_STRIDE): New. + (PBB_PERMUTATION_ELT_STRIDED_P): New. + (PBB_PERMUTATION_ELT_TIME_DIMENSION): New. + (new_pbb_permutation_elt): New. + (pbb_permutation_elt_free): New. + (struct poly_bb): Add field permutation. + (PBB_PERMUTATION): New. + (print_permutation): Declared. + (debug_permutation): Declared. + +2009-11-04 Konrad Trifunovic + + * graphite-interchange.c (build_partial_difference): New. + (memory_stride_in_loop): Refactored the computation of + equality constraints into build_partial_difference function. + Added support for debugging stride computations. + +2009-11-03 Sebastian Pop + + * graphite-clast-to-gimple.c (gloog): Free if_region, + if_region->true_region, and if_region->region. + * sese.c (if_region_set_false_region): Free if_region->false_region. + (create_if_region_on_edge): Do not use GGC_NEW. + (move_sese_in_condition): Remove useless initialization. + +2009-11-03 Sebastian Pop + + * graphite-interchange.c (lst_perfect_nestify): Pass 3 parameters + for the loops created by the loop distribution. Do not modify the + input LSTs. + (lst_try_interchange_loops): Same. Use a temporary LST for the + transformed schedule. Call lst_update_scattering before data + dependence analysis. + (lst_try_interchange): Pass an extra parameter INDEX. + (lst_do_interchange_1): New. + (lst_do_interchange): Call lst_do_interchange_1. + (scop_do_interchange): Call lst_update_scattering. + * graphite-poly.c (apply_poly_transforms): Do not call + lst_update_scattering. + * graphite-poly.h (lst_pred): New. + (lst_succ): New. + (lst_find_first_pbb): Return NULL when not found. + (lst_empty_p): New. + (lst_insert_in_sequence): Allow LST1 to be NULL. + (lst_replace): New. + (lst_substitute_3): New. + * gcc.dg/graphite/interchange-1.c: XFail. + * gcc.dg/graphite/interchange-8.c: XFail. + * gcc.dg/graphite/interchange-11.c: XFail. + +2009-10-30 Sebastian Pop + + * graphite-interchange.c (lst_perfectly_nested_p): New. + (lst_perfect_nestify): New. + (lst_try_interchange_loops): Call store_lst_schedule, + lst_perfectly_nested_p, lst_perfect_nestify and restore_lst_schedule. + (scop_do_interchange): Avoid redundant legality test. + Call lst_do_interchange on a copy of SCOP_TRANSFORMED_SCHEDULE. + * graphite-poly.c (apply_poly_transforms): Call lst_update_scattering. + * graphite-poly.h (psct_static_dim): New. + (lst_dewey_number_at_depth): New. + (lst_find_pbb): Restructured. + (lst_find_first_pbb): Restructured. + (lst_find_last_pbb): New. + (lst_contains_p): New. + (lst_contains_pbb): New. + (lst_create_nest): New. + (lst_remove_from_sequence): New. + (pbb_update_scattering): New. + (lst_update_scattering_under): New. + (lst_update_scattering_seq): New. + (lst_update_scattering): New. + (lst_insert_in_sequence): New. + (lst_distribute_lst): New. + (lst_remove_all_before_including_pbb): New. + (lst_remove_all_before_excluding_pbb): New. + +2009-10-30 Sebastian Pop + + * tree-ssa-loop-niter.c (finite_loop_p): Do not call twice + get_loop_exit_edges. + +2009-10-30 Sebastian Pop + + * graphite-poly.c (pbb_remove_duplicate_pdrs): Free collapsed. + +2009-10-28 Konrad Trifunovic + + * graphite-poly.c (print_permutation): New. + (debug_permutation): New. + (new_poly_bb): Initialize PBB_PERMUTATION. + (free_poly_bb): Free PBB_PERMUTATION. + * graphite-poly.h (pbb_permutation_elt_p): Declared. + (struct pbb_permutation_elt): New. + (PBB_PERMUTATION_ELT_STRIDE): New. + (PBB_PERMUTATION_ELT_STRIDED_P): New. + (PBB_PERMUTATION_ELT_TIME_DIMENSION): New. + (new_pbb_permutation_elt): New. + (pbb_permutation_elt_free): New. + (struct poly_bb): Add field permutation. + (PBB_PERMUTATION): New. + (print_permutation): Declared. + (debug_permutation): Declared. + +2009-10-26 Sebastian Pop + + * graphite-clast-to-gimple.c (gloog): Do not call + sese_reset_aux_in_loops. + * graphite-sese-to-poly.c (build_loop_iteration_domains): Pass an + extra argument for domains. Do not use loop->aux. + (build_scop_iteration_domain): Initialize and free domains, pass it + to build_loop_iteration_domains and extract the information from + domains. Do not use loop->aux. + * sese.c (sese_reset_aux_in_loops): Removed. + * sese.h (sese_reset_aux_in_loops): Removed. + +2009-10-26 Sebastian Pop + + * graphite-clast-to-gimple.c (find_pbb_via_hash): Moved up. + (dependency_in_loop_p): Same. + (translate_clast): Do not use loop->aux. Initialize + loop->can_be_parallel. + (mark_loops_parallel): Removed. + * graphite-clast-to-gimple.h (mark_loops_parallel): Removed. + * graphite.c (free_aux_in_new_loops): Removed. + (graphite_finalize): Do not call free_aux_in_new_loops. + (graphite_transform_loops): Do not call mark_loops_parallel. + +2009-10-26 Li Feng + + * graphite-clast-to-gimple.c (get_stmtfor_depth): Removed. + (translate_clast): Pass an extra parameter LEVEL. + Call get_scattering_level. + * graphite-clast-to-gimple.h (get_scattering_level): New. + +2009-10-22 Sebastian Pop + + * cfgloop.c (alloc_loop): Initialize loop->single_iv. + * cfgloop.h (struct loop): New field single_iv. + + * graphite-clast-to-gimple.c (pbb_to_depth_to_oldiv): Do not use + loop->aux anymore: use loop->single_iv. + (graphite_loop_normal_form): Moved... + (build_graphite_loop_normal_form): Removed. + (gloog): Do not call build_graphite_loop_normal_form. + (free_aux_in_new_loops): Moved... + (mark_loops_parallel): Restructure. + * graphite-clast-to-gimple.h (free_aux_in_new_loops): Do not declare. + * graphite-sese-to-poly.c (graphite_loop_normal_form): ...here. + (scop_canonicalize_loops): New. + (build_poly_scop): Call scop_canonicalize_loops. + * graphite.c (free_aux_in_new_loops): ...here. + +2009-10-22 Sebastian Pop + + * g++.dg/graphite/graphite.exp: Add the same rules as in + gcc.dg/graphite/graphite.exp. + +2009-10-22 Sebastian Pop + + * g++.dg/graphite/id-1.C: New. + +2009-10-22 Sebastian Pop + + * graphite-sese-to-poly.c (create_zero_dim_array): Pass an extra + argument base_name. + (rewrite_close_phi_out_of_ssa): Update use of create_zero_dim_array. + (rewrite_phi_out_of_ssa): Same. + (rewrite_cross_bb_scalar_deps): Same. + (translate_scalar_reduction_to_array): Same. + +2009-10-22 Sebastian Pop + + * graphite-sese-to-poly.c (build_scop_drs): Disable call to + dump_alias_graphs. + +2009-10-22 Sebastian Pop + + * graphite-sese-to-poly.c (dump_alias_graphs): New. + (build_scop_drs): Call dump_alias_graphs. + +2009-10-22 Sebastian Pop + + * graphite-poly.c (new_scop): Initialize SCOP_ORIGINAL_SCHEDULE, + SCOP_TRANSFORMED_SCHEDULE, and SCOP_SAVED_SCHEDULE. + (free_scop): Call free_lst on SCOP_ORIGINAL_SCHEDULE, + SCOP_TRANSFORMED_SCHEDULE, and SCOP_SAVED_SCHEDULE. + * graphite-poly.h (free_lst): New. + (store_lst_schedule): Free SCOP_SAVED_SCHEDULE. + (restore_lst_schedule): Free SCOP_TRANSFORMED_SCHEDULE. + +2009-10-22 Sebastian Pop + + * graphite-poly.h (struct scop): Add a field saved_schedule. + (SCOP_SAVED_SCHEDULE): New. + (store_lst_schedule): New. + (restore_lst_schedule): New. + (store_scattering): Call store_lst_schedule. + (restore_scattering): Call restore_lst_schedule. + +2009-10-20 Sebastian Pop + + * graphite-sese-to-poly.c (free_data_refs_aux): Fix formatting. + (pdr_add_alias_set): Same. + (build_poly_dr): Same. + (build_alias_set_optimal_p): Same. + (build_base_obj_set_for_drs): Same. Do not store the result of + graphds_dfs. + +2009-10-20 Sebastian Pop + + * graphite-sese-to-poly.c (build_alias_set_optimal_p): Initialize + all_components_are_cliques to 1. + +2009-10-20 Li Feng + + * graphite-sese-to-poly.c (free_data_refs_aux): Update to free + the new structure. + (pdr_add_alias_set): Update retrieving alias_set_num. + (build_poly_dr): Update retrieving dr_base_object_set. + (partition_drs_to_sets): Remove. + (build_alias_set_optimal_p): New. + (build_alias_set_for_drs): Rename. + (build_scop_drs): Update. + * graphite-sese-to-poly.h (struct base_alias_pair): New. + (ALIAS_SET_INDEX): Remove. + (BASE_OBJECT_SET_INDEX): Remove. + +2009-10-20 Sebastian Pop + + * sese.c (get_vdef_before_sese): Handle GIMPLE_ASSIGN and GIMPLE_CALL. + +2009-10-20 Sebastian Pop + + * graphite-sese-to-poly.c (pdr_add_data_dimensions): Do not infer + loop upper bounds for 1-element arrays at end of structures. + * tree-flow.h (array_at_struct_end_p): Declared. + * tree-ssa-loop-niter.c (array_at_struct_end_p): Not static anymore. + +2009-10-20 Sebastian Pop + + * g++.dg/graphite/pr41305.C: New. + +2009-10-20 Alexander Monakov + + * graphite-sese-to-poly.c (build_loop_iteration_domains): Generalize + construction of parameter constraints from loop iteration analysis. + * gcc.dg/graphite/run-id-2.c: New test. + +2009-10-17 Sebastian Pop + + * graphite-interchange.c (memory_stride_in_loop): Delete p1, lma + and new_cstr. + +2009-10-17 Sebastian Pop + + * graphite-dependences.c (dependence_polyhedron_1): Remove + unused gdim dimensions from the DDR polyhedron. + +2009-10-17 Sebastian Pop + + * graphite-dependences.c (pddr_transformed_scattering): New. + (dot_original_deps_stmt_1): New. + (dot_transformed_deps_stmt_1): New. + (dot_deps_stmt_1): Call dot_original_deps_stmt_1 and + dot_transformed_deps_stmt_1. + (dot_original_deps): New. + (dot_transformed_deps): New. + (dot_deps_1): Call dot_original_deps and dot_transformed_deps. + +2009-10-17 Sebastian Pop + + * graphite-dependences.c (reduction_dr_1): Remove wrong + assert: reduction BBs can have multiple reduction writes + to memory. interchange-3.f90 is an example. + +2009-10-17 Sebastian Pop + + * gfortran.dg/graphite/interchange-3.f90: New. + +2009-10-17 Sebastian Pop + + * gcc.dg/graphite/interchange-1.c: Un-XFAILed. + +2009-10-17 Sebastian Pop + + * graphite-dependences.c (dependence_polyhedron_1): Add the + context to the dependence polyhedron. + +2009-10-17 Sebastian Pop + + * graphite-poly.c (pbb_remove_duplicate_pdrs): Initialize + PBB_PDR_DUPLICATES_REMOVED. + (new_poly_bb): Same. + +2009-10-17 Sebastian Pop + + * graphite-sese-to-poly.c (find_scop_parameters): Initialize + SCOP_CONTEXT. + (build_loop_iteration_domains): Extract bounds on parameters + based on the data size. + (build_scop_context): Do not initialize SCOP_CONTEXT; + add new constraints. + +2009-10-17 Sebastian Pop + + * graphite-ppl.c (ppl_min_for_le_polyhedron): New. + * graphite-ppl.h (graphite-ppl.h): Declared. + +2009-10-17 Sebastian Pop + + * graphite-ppl.c (ppl_print_linear_expr): New. + (debug_ppl_linear_expr): New. + * graphite-ppl.h (ppl_print_linear_expr): Declared. + (debug_ppl_linear_expr): Declared. + +2009-10-16 Sebastian Pop + + * graphite-interchange.c: Fix comments. + * gcc.dg/graphite/block-1.c: Fix comments. + +2009-10-16 Sebastian Pop + + * gcc.dg/graphite/interchange-7.c: Un-XFAILed. + * gcc.dg/graphite/interchange-9.c: Un-XFAILed. + +2009-10-16 Sebastian Pop + + Reapply the patch from Alexander Monakov that disappeared during + the last merges from trunk. + + 2009-09-16 Alexander Monakov + + * graphite-sese-to-poly.c (pdr_add_data_dimensions): Add bounds only + for ARRAY_REFs. Use array_ref_{low,up}_bound to determine bounds. + +2009-10-15 Sebastian Pop + + * graphite-interchange.c (memory_stride_in_loop): The depth + argument corresponds to a dynamic time dimension, so use + psct_dynamic_dim to refer to the transformed scattering dimension. + +2009-10-15 Sebastian Pop + + * graphite-interchange.c (memory_stride_in_loop): Fix comments. + +2009-10-15 Sebastian Pop + + * graphite-blocking.c (lst_do_strip_mine): Avoid strip mining the + root of the LST. + * graphite-interchange.c (lst_do_interchange): Avoid interchanging + the root of the LST. + * graphite-poly.c (scop_to_lst): Fix LST sequence in an outermost + fake loop. + (print_lst): Print the root of LST in a different format. + * graphite-poly.h (lst_depth): Adjust to include the root of the LST. + +2009-10-15 Sebastian Pop + + * graphite-poly.c (print_scop): Fix pretty printing of a SCoP. + +2009-10-15 Sebastian Pop + + * doc/passes.texi: Document the Graphite infrastructure. + +2009-10-15 Sebastian Pop + + * graphite-sese-to-poly.c (insert_copyin): Use gsi_insert_seq_on_edge. + (rewrite_commutative_reductions_out_of_ssa): Call gsi_commit_edge_inserts, + and check the SSA representation. + + * gfortran.dg/graphite/id-18.f90: New, reduced from PR41193. + +2009-10-15 Sebastian Pop + + * gcc.dg/graphite/pr40157.c: Use -floop-block as reported in the PR. + +2009-10-14 Sebastian Pop + + * gcc.dg/graphite/interchange-11.c: New. + +2009-10-14 Sebastian Pop + + * gcc.dg/graphite/interchange-8.c: Enable loop interchange. + +2009-10-14 Sebastian Pop + + * gcc.dg/graphite/graphite.exp (DEFAULT_CFLAGS_GRAPHITE_BLOCK): + Add -fno-loop-strip-mine and -fno-loop-interchange. + (DEFAULT_FLAGS_GRAPHITE_INTERCHANGE): Add -fno-loop-block and + -fno-loop-strip-mine. + * gfortran.dg/graphite/graphite.exp: Same. + +2009-10-14 Sebastian Pop + + * gcc.dg/graphite/graphite.exp (DEFAULT_CFLAGS_GRAPHITE_BLOCK): + Renamed DEFAULT_FLAGS_GRAPHITE_BLOCK. + (DEFAULT_CFLAGS_GRAPHITE_IDENTITY): Renamed + DEFAULT_FLAGS_GRAPHITE_IDENTITY. + (DEFAULT_CFLAGS_GRAPHITE_INTERCHANGE): Renamed + DEFAULT_FLAGS_GRAPHITE_INTERCHANGE. + (DEFAULT_CFLAGS_GRAPHITE_SCOP): Renamed + DEFAULT_FLAGS_GRAPHITE_SCOP. + (DEFAULT_CFLAGS_RUN_ID): Renamed DEFAULT_FLAGS_RUN_ID. + (DEFAULT_CFLAGS_GRAPHITE): Renamed DEFAULT_FLAGS_GRAPHITE. + +2009-10-14 Sebastian Pop + + * graphite-poly.c (pbb_number_of_iterations_at_time): Cleanup comments. + +2009-10-14 Konrad Trifunovic + Sebastian Pop + + * graphite-interchange.c (build_linearized_memory_access): Pass an + offset as parameter. + (memory_stride_in_loop): Include transform scattering in the + access functions to be able to querry the strides in the + transformed loops. + (pbb_interchange_loop_depths): Interchange the psct_dynamic_dim, + not the psct_iterator_dim. + +2009-10-14 Sebastian Pop + + * graphite-blocking.c (pbb_do_strip_mine): Removed. + (lst_do_strip_mine_loop): New. + (lst_do_strip_mine): New. + (scop_do_strip_mine): Call lst_do_strip_mine. + * graphite-poly.h (lst_add_loop_under_loop): New. + (lst_find_first_pbb): New. + +2009-10-14 Sebastian Pop + + * graphite-poly.c (loop_to_lst): Fix LST creation. + +2009-10-14 Tobias Grosser + + * testsuite/gcc.dg/graphite/id-15.c: (8 * 8) replaced with + sizeof(unsigned long) to make it run on 32bit systems. + +2009-10-14 Tobias Grosser + + * testsuite/gcc.dg/graphite/run-id-1.c: Use smaller matrix to not + SEGFAULT on 32bit. + +2009-10-14 Ramakrishna Upadrasta + + * graphite-sese-to-poly.c (write_alias_graph_to_ascii_dimacs): Fix + Comment. + (write_alias_graph_to_ascii_dot): New. + (write_alias_graph_to_ascii_ecc): Ditto. + (partition_drs_to_sets): Add testing of optimality of current method + which assigns alias numbers according to DFS Comopnent number. used + as heuristic for the upcoming ECC algorithm. + (build_scop_drs): Write to file also with the ecc and dot format. + +2009-10-13 Sebastian Pop + + * gfortran.dg/graphite/interchange-1.f: XFail. + +2009-10-13 Sebastian Pop + + * graphite.c (graphite_initialize): Do not handle functions with + more than 100 basic blocks. + +2009-10-13 Sebastian Pop + + * graphite-blocking.c (pbb_do_strip_mine): Use + PARAM_LOOP_BLOCK_TILE_SIZE. + +2009-10-13 Sebastian Pop + + * graphite-poly.c (dot_lst_1): New. + (dot_lst): New. + * graphite-poly.h (dot_lst): Declared. + +2009-10-13 Sebastian Pop + + * graphite-dependences.c (dot_deps_stmt_1): New. + (dot_deps_stmt): New. + * graphite-dependences.h (dot_deps_stmt): Declared. + +2009-10-09 Sebastian Pop + + * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_dependence): Do + not replace cross BB scalar dependences ending on PHI nodes. + (rewrite_cross_bb_scalar_deps): Filter out GIMPLE_PHI nodes. + +2009-10-09 Sebastian Pop + + * graphite-poly.c (apply_poly_transforms): Implement the high + level driver for flag_loop_block. + * tree-ssa-loop.c (gate_graphite_transforms): Remove call to sorry for + flag_loop_block. + + * gcc.dg/graphite/graphite.exp (DEFAULT_CFLAGS_GRAPHITE_BLOCK): Add + -floop-block. + * gfortran.dg/graphite/graphite.exp (DEFAULT_CFLAGS_GRAPHITE_BLOCK): + Add -floop-block. + +2009-10-09 Sebastian Pop + + * graphite-poly.h (lst_find_pbb): New. + (find_lst_loop): New. + +2009-10-09 Sebastian Pop + + * graphite-poly.c (new_scop): Remove init of SCOP_DEP_GRAPH. + * graphite-poly.h (struct scop): Remove dep_graph field. + (SCOP_DEP_GRAPH): Removed. + 2009-10-09 Sebastian Pop * graphite-poly.h (copy_lst): Do full copy of LST.