2009-11-18 Sebastian Pop <sebastian.pop@amd.com>
* 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.
From-SVN: r154637
2009-11-21 Sebastian Pop <sebpop@gmail.com>
* configure.ac: Check for version 0.15.5 or later revision of CLooG.
* configure: Regenerated.
From-SVN: r154635
2009-11-04 Konrad Trifunovic <konrad.trifunovic@inria.fr>
* 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.
From-SVN: r154634
2009-11-03 Sebastian Pop <sebastian.pop@amd.com>
* 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.
From-SVN: r154633
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
2009-10-26 Sebastian Pop <sebastian.pop@amd.com>
* 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.
From-SVN: r154627
2009-10-26 Sebastian Pop <sebastian.pop@amd.com>
* 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.
From-SVN: r154626
2009-10-22 Sebastian Pop <sebastian.pop@amd.com>
* 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.
From-SVN: r154624
2009-10-22 Sebastian Pop <sebastian.pop@amd.com>
* g++.dg/graphite/graphite.exp: Add the same rules as in
gcc.dg/graphite/graphite.exp.
From-SVN: r154623
2009-10-22 Sebastian Pop <sebastian.pop@amd.com>
* 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.
From-SVN: r154621
2009-10-20 Sebastian Pop <sebastian.pop@amd.com>
* 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.
From-SVN: r154616
2009-10-20 Sebastian Pop <sebastian.pop@amd.com>
* graphite-sese-to-poly.c (build_alias_set_optimal_p): Initialize
all_components_are_cliques to 1.
From-SVN: r154615
2009-10-20 Sebastian Pop <sebastian.pop@amd.com>
* 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.
From-SVN: r154612
2009-10-20 Alexander Monakov <amonakov@ispras.ru>
* 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.
From-SVN: r154610
2009-10-17 Sebastian Pop <sebastian.pop@amd.com>
* graphite-dependences.c (dependence_polyhedron_1): Remove
unused gdim dimensions from the DDR polyhedron.
From-SVN: r154608
2009-10-17 Sebastian Pop <sebastian.pop@amd.com>
* graphite-dependences.c (reduction_dr_1): Remove wrong
assert: reduction BBs can have multiple reduction writes
to memory.
From-SVN: r154606
2009-10-17 Sebastian Pop <sebastian.pop@amd.com>
* graphite-dependences.c (dependence_polyhedron_1): Add the
context to the dependence polyhedron.
From-SVN: r154603
2009-10-17 Sebastian Pop <sebastian.pop@amd.com>
* 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.
From-SVN: r154601
2009-10-15 Sebastian Pop <sebastian.pop@amd.com>
* 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.
From-SVN: r154595
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
2009-10-15 Sebastian Pop <sebastian.pop@amd.com>
* 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.
From-SVN: r154590