gcc/gcc/graphite-scop-detection.h
Sebastian Pop a0dd14403d graphite-dependences.c (reduction_ddr): New.
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
2009-11-25 04:54:30 +00:00

26 lines
974 B
C

/* Detection of Static Control Parts (SCoP) for Graphite.
Copyright (C) 2009 Free Software Foundation, Inc.
Contributed by Sebastian Pop <sebastian.pop@amd.com> and
Tobias Grosser <grosser@fim.uni-passau.de>.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
extern void build_scops (VEC (scop_p, heap) **);
extern void dot_all_scops (VEC (scop_p, heap) *);
extern void dot_scop (scop_p);