- 08 Jan, 2010 1 commit
-
-
2010-01-07 Sebastian Pop <sebastian.pop@amd.com> * graphite-interchange.c (memory_stride_in_loop): Renamed pdr_stride_in_loop. (memory_strides_in_loop): Renamed memory_strides_in_loop_1. (memory_strides_in_loop): Memoize the memory strides per loop. (lst_interchange_profitable_p): Do not initialize to zero the memory strides. * graphite-poly.h (struct lst): Add a field memory_strides. (LST_LOOP_MEMORY_STRIDES): New. (new_lst_loop): Initialize LST_LOOP_MEMORY_STRIDES to -1. (free_lst): Clear LST_LOOP_MEMORY_STRIDES. From-SVN: r155725
Sebastian Pop committed
-
- 25 Nov, 2009 16 commits
-
-
2009-11-18 Sebastian Pop <sebastian.pop@amd.com> * graphite-blocking.c (scop_do_block): New. * graphite-poly.c (apply_poly_transforms): Call scop_do_block. * graphite-poly.h (scop_do_block): Declared. From-SVN: r154638
Sebastian Pop committed -
graphite-interchange.c (lst_perfect_nestify): Pass 3 parameters for the loops created by the loop distribution. 2009-11-03 Sebastian Pop <sebastian.pop@amd.com> * 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. From-SVN: r154632
Sebastian Pop committed -
2009-10-30 Sebastian Pop <sebastian.pop@amd.com> * 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. From-SVN: r154631
Sebastian Pop committed -
2009-10-22 Sebastian Pop <sebastian.pop@amd.com> * 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. From-SVN: r154618
Sebastian Pop committed -
2009-10-22 Sebastian Pop <sebastian.pop@amd.com> * 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. From-SVN: r154617
Sebastian Pop committed -
2009-10-15 Sebastian Pop <sebastian.pop@amd.com> * 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. From-SVN: r154593
Sebastian Pop committed -
2009-10-14 Sebastian Pop <sebastian.pop@amd.com> * 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. From-SVN: r154582
Sebastian Pop committed -
2009-10-13 Sebastian Pop <sebastian.pop@amd.com> * graphite-poly.c (dot_lst_1): New. (dot_lst): New. * graphite-poly.h (dot_lst): Declared. From-SVN: r154573
Sebastian Pop committed -
2009-10-09 Sebastian Pop <sebastian.pop@amd.com> * graphite-poly.h (lst_find_pbb): New. (find_lst_loop): New. From-SVN: r154568
Sebastian Pop committed -
2009-10-09 Sebastian Pop <sebastian.pop@amd.com> * graphite-poly.c (new_scop): Remove init of SCOP_DEP_GRAPH. * graphite-poly.h (struct scop): Remove dep_graph field. (SCOP_DEP_GRAPH): Removed. From-SVN: r154567
Sebastian Pop committed -
2009-10-09 Sebastian Pop <sebastian.pop@amd.com> * graphite-poly.h (copy_lst): Do full copy of LST. From-SVN: r154566
Sebastian Pop committed -
2009-10-06 Sebastian Pop <sebastian.pop@amd.com> * graphite-dependences.c (reduction_dr_1): New. (reduction_dr_p): New. (graphite_legal_transform_dr): Call reduction_dr_p. (reduction_ddr): Renamed reduction_ddr_p. * graphite-poly.h (same_pdr_p): New. (number_of_write_pdrs): New. * graphite-sese-to-poly.c (nb_data_writes_in_bb): New. (split_reduction_stmt): Do not split reduction statements when there are no writes to memory. (translate_scalar_reduction_to_array_for_stmt): Insert the memory reduction statement just after the scalar reduction statement. * gcc.dg/graphite/interchange-10.c: Updated to differ from interchange-4.c. Un-XFAIL-ed. * gcc.dg/graphite/interchange-3.c: Un-XFAIL-ed. * gcc.dg/graphite/interchange-4.c: Un-XFAIL-ed. From-SVN: r154564
Sebastian Pop committed -
2009-10-06 Sebastian Pop <sebastian.pop@amd.com> * graphite-poly.c (print_scop): Print SCOP_ORIGINAL_SCHEDULE and SCOP_TRANSFORMED_SCHEDULE. (loop_to_lst): New. (scop_to_lst): New. (print_lst): New. (debug_lst): New. * graphite-poly.h (lst_p): New. (struct lst): New. (LST_LOOP_P): New. (LST_LOOP_FATHER): New. (LST_PBB): New. (LST_SEQ): New. (scop_to_lst): Declared. (print_lst): Declared. (debug_lst): Declared. (new_lst_loop): New. (new_lst_stmt): New. (copy_lst): New. (lst_depth): New. (lst_dewey_number): New. (struct scop): Add original_schedule and transformed_schedule fields. (SCOP_ORIGINAL_SCHEDULE): New. (SCOP_TRANSFORMED_SCHEDULE): New. * graphite-sese-to-poly.c (build_poly_scop): Call scop_to_lst. From-SVN: r154562
Sebastian Pop committed -
2009-10-05 Sebastian Pop <sebastian.pop@amd.com> * graphite-dependences.c (reduction_ddr): New. (graphite_legal_transform_bb): Call reduction_ddr. * graphite-poly.c (new_poly_bb): Pass a new bool parameter. Initialize PBB_IS_REDUCTION. * graphite-poly.h (struct poly_bb): New bool field is_reduction. (PBB_IS_REDUCTION): New. (new_poly_bb): Update declaration. * graphite-scop-detection.h (build_scop_bbs): Removed. (nb_reductions_in_loop): Removed. * graphite-sese-to-poly.c (try_generate_gimple_bb): Pass a sbitmap parameter for reductions. (try_generate_gimple_bb): Update call to new_poly_bb. (build_scop_bbs_1): Same. (build_scop_bbs): Same. (gsi_for_phi_node): New. (scalar_close_phi_node_p): Remove gcc_assert. (split_reduction_stmt): New. (is_reduction_operation_p): New. (phi_contains_arg): New. (follow_ssa_with_commutative_ops): New. (detect_commutative_reduction_arg): New. (detect_commutative_reduction_assign): New. (follow_inital_value_to_phi): New. (edge_initial_value_for_loop_phi): New. (initial_value_for_loop_phi): New. (detect_commutative_reduction): New. (translate_scalar_reduction_to_array_for_stmt): New. (insert_copyout): New. (insert_copyin): New. (translate_scalar_reduction_to_array): New. (rewrite_commutative_reductions_out_of_ssa_close_phi): New. (rewrite_commutative_reductions_out_of_ssa_loop): New. (rewrite_commutative_reductions_out_of_ssa): New. (build_poly_scop): Call rewrite_commutative_reductions_out_of_ssa. * sese.h (split_region_for_bb): New. * gcc.dg/graphite/graphite.exp (DEFAULT_CFLAGS_GRAPHITE_BLOCK): Add -ffast-math. * gcc.dg/graphite/interchange-1.c: Fix format. * gcc.dg/graphite/interchange-10.c: New. From-SVN: r154561
Sebastian Pop committed -
2009-10-05 Sebastian Pop <sebastian.pop@amd.com> * graphite-clast-to-gimple.c (build_cloog_prog): Use pbb_index. * graphite-interchange.c (pbb_do_interchange): Same. * graphite-poly.c (print_scattering_function): Same. (debug_pdrs): Same. * graphite-poly.h (pbb_loop): New. * graphite-sese-to-poly.c (create_linear_expr_from_tree): Use pbb_loop. From-SVN: r154557
Sebastian Pop committed -
2009-09-17 Li Feng <nemokingdom@gmail.com> PR middle-end/41118 * graphite-dependences.c (poly_drs_may_alias_p): Adjust definition. (pddr_original_scattering): Make sure 2 pdr2 in the same base object set. (graphite_carried_dependence_level_k): Ditto. * graphite-poly.c (new_poly_dr): Add init of PDR_BASE_OBJECT_SET. * graphite-poly.h (struct poly_dr): Add member dr_base_object_set. (new_poly_dr): Adjust declaration. * graphite-sese-to-poly.c (free_data_refs_aux): New. (free_gimple_bb): Added free_data_refs_aux. (build_poly_dr): Add dr_base_object_set. (partition_drs_to_sets): New. (dr_same_base_object_p): New. (build_alias_set_for_drs): New. (build_base_object_set_for_drs): New. (build_scop_drs): Add build_base_obj_set_for_drs. * graphite-sese-to-poly.h: Added #define for alias set number index and base object set index. * libgomp/testsuite/libgomp.graphite/force-parallel-6.c: Refine tests. * libgomp/testsuite/libgomp.graphite/pr4118.c: New. From-SVN: r154549
Li Feng committed
-
- 28 Aug, 2009 7 commits
-
-
2009-08-28 Sebastian Pop <sebastian.pop@amd.com> * graphite-dependences.c (graphite_legal_transform_bb): Call pbb_remove_duplicate_pdrs. * graphite-poly.c (can_collapse_pdr): Removed. (pdr_find_duplicate): Removed. (can_collapse_pdrs): New. (pbb_remove_duplicate_pdrs): New. (new_poly_dr): Do not look for duplicates. * graphite-poly.h (struct poly_bb): New field pdr_duplicates_removed. (PBB_PDR_DUPLICATES_REMOVED): New. (pbb_remove_duplicate_pdrs): Declared. From-SVN: r151192
Sebastian Pop committed -
graphite-interchange.c (pbb_interchange_profitable_p): Adjust the strides by multiplying by PDR_NB_REFS. 2009-08-28 Sebastian Pop <sebastian.pop@amd.com> * graphite-interchange.c (pbb_interchange_profitable_p): Adjust the strides by multiplying by PDR_NB_REFS. * graphite-poly.c (can_collapse_pdr): New. (pdr_find_duplicate): New. (new_poly_dr): Call pdr_find_duplicate. Collapse duplicate PDRs. Initialize PDR_NB_REFS. * graphite-poly.h (struct poly_dr): Add field nb_refs. (PDR_NB_REFS): New. (new_poly_dr): Number of subscripts is a graphite_dim_t. From-SVN: r151191
Sebastian Pop committed -
2009-08-28 Sebastian Pop <sebastian.pop@amd.com> * graphite-dependences.c (pddr_original_scattering): Return NULL for read-read dependence relations. * graphite-poly.h (enum poly_dr_type): Fix comment. (pdr_read_p): New. (pdr_write_p): New. (pdr_may_write_p): New. From-SVN: r151189
Sebastian Pop committed -
2009-08-28 Sebastian Pop <sebastian.pop@amd.com> * graphite-poly.h (enum POLY_DR_TYPE): Renamed poly_dr_type. (struct poly_dr): Same. (new_poly_dr): Same. * graphite-poly.c (new_poly_dr): Same. * graphite-dependences.c (dot_deps): Disable call to system. From-SVN: r151188
Sebastian Pop committed -
2009-08-28 Konrad Trifunovic <konrad.trifunovic@gmail.com> Sebastian Pop <sebastian.pop@amd.com> * graphite-blocking.c (pbb_strip_mine_loop_depth): Renamed pbb_strip_mine_time_depth. Changed the implementation so that transformation is expressed as a transformation on time (scatttering) dimensions. Also, ensures that the 2d+1 scheduling format is preserved. (pbb_strip_mine_profitable_p): Profitability is based on the iteration number of a given time (scattering) dimension, and not on a original loop depth dimension. (pbb_strip_mine): Call pbb_number_of_iterations_at_time. (pbb_do_strip_mine): Call psct_dynamic_dim. * graphite-poly.c (pbb_number_of_iterations_at_time): New. * graphite-poly.h (pbb_number_of_iterations_at_time): Declared. (pbb_nb_dynamic_scattering_transform): New. (psct_dynamic_dim): New. Co-Authored-By: Sebastian Pop <sebastian.pop@amd.com> From-SVN: r151186
Konrad Trifunovic committed -
2009-08-28 Sebastian Pop <sebastian.pop@amd.com> * graphite-dependences.c (pddr_original_scattering): New. (graphite_legal_transform_dr): Call pddr_original_scattering. (dot_deps_1): New. (dot_deps): New. * graphite-dependences.h (dot_deps): Declared. * graphite-poly.c (new_poly_dr): Initialize PDR_ID. (print_pdr): Print PDR_ID. * graphite-poly.h (struct poly_dr): Add field id. (PDR_ID): New. (pbb_index): New. * graphite-scop-detection.c (dot_all_scops_1): Cleanup comment. From-SVN: r151183
Sebastian Pop committed -
2009-08-28 Sebastian Pop <sebastian.pop@amd.com> * graphite-dependences.c (new_poly_dr_pair): Renamed new_poly_ddr. (eq_poly_dr_pair_p): Renamed eq_poly_ddr_p. (hash_poly_dr_pair_p): Renamed hash_poly_ddr_p. (free_poly_ddr): New. (pddr_is_empty): New. (dependence_polyhedron_1): Now returns a poly_ddr_p. (dependence_polyhedron): Same. Remove useless gcc_assert. Remove fprintfs. (graphite_legal_transform_dr): Call pddr_is_empty and free_poly_ddr. (graphite_carried_dependence_level_k): Call pddr_is_empty. * graphite-dependences.h (enum poly_dependence_kind): New. (poly_dr_pair): Renamed poly_ddr. Added a field kind. (PDRP_SOURCE): Renamed PDDR_SOURCE. (PDRP_SINK): Renamed PDDR_SINK. (PDRP_DDP): Renamed PDDR_DDP. (PDDR_KIND): New. (free_poly_ddr): Declared. * graphite-poly.c (new_scop): Use the new hash function names. * graphite-poly.h (struct scop): Renamed field original_pdr_pairs into original_pddrs. (SCOP_ORIGINAL_PDR_PAIRS): Renamed SCOP_ORIGINAL_PDDRS. From-SVN: r151181
Sebastian Pop committed
-
- 12 Aug, 2009 3 commits
-
-
2009-08-11 Sebastian Pop <sebastian.pop@amd.com> * graphite-dependences.c (dependence_polyhedron_1): Replace pdr_nb_subscripts with PDR_NB_SUBSCRIPTS. (graphite_legal_transform_dr): Same. (graphite_carried_dependence_level_k): Same. * graphite-poly.c (new_poly_dr): Add a parameter nb_subscripts. Initialize PDR_NB_SUBSCRIPTS. (print_pdr_access_layout): Replace pdr_nb_subscripts with PDR_NB_SUBSCRIPTS. * graphite-poly.h (struct poly_dr): Add nb_subscripts field. (PDR_NB_SUBSCRIPTS): New. (pdr_nb_subscripts): Removed. (pdr_dim): Simplified. * graphite-sese-to-poly.c (build_poly_dr): Replace pdr_nb_subscripts with PDR_NB_SUBSCRIPTS. From-SVN: r150690
Sebastian Pop committed -
2009-08-11 Sebastian Pop <sebastian.pop@amd.com> * graphite-interchange.c (compute_array_size): Remove use of PDR_DATA_CONTAINER. * graphite-poly.c (new_poly_dr): Remove argument data_container. Do not initialize PDR_DATA_CONTAINER. (print_pdr): Do not print PDR_DATA_CONTAINER. * graphite-poly.h (struct poly_dr): Remove data_container field. (PDR_DATA_CONTAINER): Removed. * graphite-sese-to-poly.c (pdr_add_data_dimensions): Remove use of PDR_DATA_CONTAINER. (build_poly_dr): Same. From-SVN: r150689
Sebastian Pop committed -
2009-08-05 Sebastian Pop <sebastian.pop@amd.com> * graphite-blocking.c (scop_do_strip_mine): Call store_scattering. Early return without analyzing the data dependences if no transform has been done. Call restore_scattering if the transform is not legal. (graphite-interchange.c): Same. * graphite-poly.c (print_scattering_function): Test for PBB_TRANSFORMED. (graphite_read_transforms): Initialize PBB_TRANSFORMED. (apply_poly_transforms): Do not gcc_assert that the transform is legal. (new_poly_bb): Initialize PBB_TRANSFORMED, PBB_SAVED, and PBB_ORIGINAL. Do not initialize PBB_NB_SCATTERING_TRANSFORM, PBB_NB_LOCAL_VARIABLES, PBB_TRANSFORMED_SCATTERING, and PBB_ORIGINAL_SCATTERING. (free_poly_dr): Free PBB_TRANSFORMED, PBB_SAVED, and PBB_ORIGINAL. * graphite-poly.h (struct poly_scattering): New. (struct poly_bb): Add original, transformed, and saved fields. Remove transformed_scattering, original_scattering, nb_local_variables, and nb_scattering_transform fields. (PBB_ORIGINAL, PBB_TRANSFORMED, PBB_SAVED): New. (poly_scattering_new): New. (poly_scattering_free): New. (poly_scattering_copy): New. (store_scattering_pbb): New. (store_scattering): New. (restore_scattering_pbb): New. (restore_scattering): New. * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Initialize PBB_TRANSFORMED and PBB_ORIGINAL. From-SVN: r150686
Sebastian Pop committed
-
- 31 Jul, 2009 1 commit
-
-
2009-07-30 Sebastian Pop <sebastian.pop@amd.com> * ChangeLog.graphite: New. * graphite-blocking.c: New. * graphite-clast-to-gimple.c: New. * graphite-clast-to-gimple.h: New. * graphite-dependences.c: New. * graphite-dependences.h: New. * graphite-interchange.c: New. * graphite-poly.c: New. * graphite-poly.h: New. * graphite-ppl.c: New. * graphite-ppl.h: New. * graphite-scop-detection.c: New. * graphite-scop-detection.h: New. * graphite-sese-to-poly.c: New. * graphite-sese-to-poly.h: New. * sese.c: New. * sese.h: New. From-SVN: r150300
Sebastian Pop committed
-