2011-05-26  Alexey Kravets  <kayrick@ispras.ru>

	PR middle-end/49147
	* graphite-opencl-codegen.c
	(opencl_get_perfect_nested_loop_depth): Use
	enabled_dependency_in_clast_loop_p instead of
	dependency_in_clast_loop_p.
	* graphite-opencl.c (opencl_transform_stmt_list): Ditto.
	(enabled_dependency_in_clast_loop_p): New.
	* graphite-opencl.h (enabled_dependency_in_clast_loop_p): Export.

	* gcc.dg/graphite/pr49147.c: New test.

2011-05-24  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-opencl-codegen.c (opencl_print_local_vars): Fix typo.

2011-05-24  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (graphite_outer_subscript_bound): Remove
	memory leaks, add one more assert.

2011-05-24  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (build_alias_set_powerset): Remove
	continue from loop, add one more assert.

2011-05-24  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (graphite_outer_subscript_bound): Remove
	unused parameter.
	* graphite-dependences.h (graphite_outer_subscript_bound): Same.
	* graphite-opencl-meta-clast.c (opencl_set_meta_rw_flags): Update
	call to graphite_outer_subscript_bound.
	* graphite-opencl.c (opencl_get_indirect_size): Same.

2011-05-24  Alexey Kravets  <kayrick@ispras.ru>

	* graphite-opencl.c (opencl_private_var_name_p): Removed.
	(graphite_artificial_array_p): Removed.
	(opencl_data_create): Use zero_dim_array_p instead of
	graphite_artificial_array_p.

2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-opencl.c (opencl_create_function_call): Use cl_khr_fp64
	pragma extension only when it is defined.  Use cl_amd_fp64 when it
	is defined.

2011-01-23  Tobias Grosser  <grosser@fim.uni-passau.de>

	* doc/install.texi: Replace '/' by an or and give the exact
			    version number of cloog-0.16.1

2011-01-20  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
	(close_phi_written_to_memory): Call for_each_index with
	dr_indices_valid_in_loop.

	* gfortran.dg/graphite/id-24.f: New.
	* gfortran.dg/graphite/id-25.f: New.

2011-01-19  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
	when it is initialized.

	* gfortran.dg/graphite/id-23.f: New.

2011-01-19  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
	call to graphite_find_data_references_in_stmt.
	* graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
	(try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
	call to graphite_find_data_references_in_stmt.
	(analyze_drs_in_stmts): Same.
	* tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
	in which the scalar analysis of indices is performed.
	(create_data_ref): Same.  Update call to dr_analyze_indices.
	(find_data_references_in_stmt): Update call to create_data_ref.
	(graphite_find_data_references_in_stmt): Same.
	* tree-data-ref.h (graphite_find_data_references_in_stmt): Update
	declaration.
	(create_data_ref): Same.
	* tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
	call to create_data_ref.

2011-01-19  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (build_poly_scop): Move
	rewrite_commutative_reductions_out_of_ssa before
	find_scop_parameters.

2011-01-18  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/46970
	* gcc.dg/graphite/pr46970.c: New.

2011-01-18  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/46215
	* gcc.dg/graphite/pr46215.c: New.

2011-01-18  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/46168
	* gcc.dg/graphite/pr46168.c: New.

2011-01-18  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/43657
	* gcc.dg/graphite/pr43657.c: New.

2011-01-18  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/29832
	* gfortran.dg/graphite/pr29832.f90: New.

2011-01-18  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/43567
	* gcc.dg/graphite/pr43567.c: New.

2011-01-18  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/43567
	* gcc.dg/graphite/pr43567.c: New.

2011-01-17  Sebastian Pop  <sebastian.pop@amd.com>

	* Makefile.in (LAMBDA_H): Removed.
	(TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
	(OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
	lambda-trans.o, and tree-loop-linear.o.
	(lto-symtab.o): Remove dependence on LAMBDA_H.
	(tree-loop-linear.o): Remove rule.
	(lambda-mat.o): Same.
	(lambda-trans.o): Same.
	(lambda-code.o): Same.
	(tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
	(tree-vect-slp.o): Same.
	* hwint.h (gcd): Moved here.
	(least_common_multiple): Same.
	* lambda-code.c: Removed.
	* lambda-mat.c: Removed.
	* lambda-trans.c: Removed.
	* lambda.h: Removed.
	* tree-loop-linear.c: Removed.
	* lto-symtab.c: Do not include lambda.h.
	* omega.c (gcd): Removed.
	* passes.c (init_optimization_passes): Remove pass_linear_transform.
	* tree-data-ref.c (print_lambda_vector): Moved here.
	(lambda_vector_copy): Same.
	(lambda_matrix_copy): Same.
	(lambda_matrix_id): Same.
	(lambda_vector_first_nz): Same.
	(lambda_matrix_row_add): Same.
	(lambda_matrix_row_exchange): Same.
	(lambda_vector_mult_const): Same.
	(lambda_vector_negate): Same.
	(lambda_matrix_row_negate): Same.
	(lambda_vector_equal): Same.
	(lambda_matrix_right_hermite): Same.
	* tree-data-ref.h: Do not include lambda.h.
	(lambda_vector): Moved here.
	(lambda_matrix): Same.
	(dependence_level): Same.
	(lambda_transform_legal_p): Removed declaration.
	(lambda_collect_parameters): Same.
	(lambda_compute_access_matrices): Same.
	(lambda_vector_gcd): Same.
	(lambda_vector_new): Same.
	(lambda_vector_clear): Same.
	(lambda_vector_lexico_pos): Same.
	(lambda_vector_zerop): Same.
	(lambda_matrix_new): Same.
	* tree-flow.h (least_common_multiple): Removed declaration.
	* tree-parloops.c (lambda_trans_matrix): Moved here.
	(LTM_MATRIX): Same.
	(LTM_ROWSIZE): Same.
	(LTM_COLSIZE): Same.
	(LTM_DENOMINATOR): Same.
	(lambda_trans_matrix_new): Same.
	(lambda_matrix_vector_mult): Same.
	(lambda_transform_legal_p): Same.
	* tree-pass.h (pass_linear_transform): Removed declaration.
	* tree-ssa-loop.c (tree_linear_transform): Removed.
	(gate_tree_linear_transform): Removed.
	(pass_linear_transform): Removed.
	(gate_graphite_transforms): Make flag_tree_loop_linear an alias of
	flag_loop_interchange.

	* gfortran.dg/graphite/interchange-4.f: New.
	* gfortran.dg/graphite/interchange-5.f: New.

	* gcc.dg/tree-ssa/ltrans-1.c: Removed.
	* gcc.dg/tree-ssa/ltrans-2.c: Removed.
	* gcc.dg/tree-ssa/ltrans-3.c: Removed.
	* gcc.dg/tree-ssa/ltrans-4.c: Removed.
	* gcc.dg/tree-ssa/ltrans-5.c: Removed.
	* gcc.dg/tree-ssa/ltrans-6.c: Removed.
	* gcc.dg/tree-ssa/ltrans-8.c: Removed.
	* gfortran.dg/ltrans-7.f90: Removed.
	* gcc.dg/tree-ssa/data-dep-1.c: Removed.

	* gcc.dg/pr18792.c: -> gcc.dg/graphite/pr18792.c
	* gcc.dg/pr19910.c: -> gcc.dg/graphite/pr19910.c
	* gcc.dg/tree-ssa/20041110-1.c: -> gcc.dg/graphite/pr20041110-1.c
	* gcc.dg/tree-ssa/pr20256.c: -> gcc.dg/graphite/pr20256.c
	* gcc.dg/pr23625.c: -> gcc.dg/graphite/pr23625.c
	* gcc.dg/tree-ssa/pr23820.c: -> gcc.dg/graphite/pr23820.c
	* gcc.dg/tree-ssa/pr24309.c: -> gcc.dg/graphite/pr24309.c
	* gcc.dg/tree-ssa/pr26435.c: -> gcc.dg/graphite/pr26435.c
	* gcc.dg/pr29330.c: -> gcc.dg/graphite/pr29330.c
	* gcc.dg/pr29581-1.c: -> gcc.dg/graphite/pr29581-1.c
	* gcc.dg/pr29581-2.c: -> gcc.dg/graphite/pr29581-2.c
	* gcc.dg/pr29581-3.c: -> gcc.dg/graphite/pr29581-3.c
	* gcc.dg/pr29581-4.c: -> gcc.dg/graphite/pr29581-4.c
	* gcc.dg/tree-ssa/loop-27.c: -> gcc.dg/graphite/pr30565.c
	* gcc.dg/tree-ssa/pr31183.c: -> gcc.dg/graphite/pr31183.c
	* gcc.dg/tree-ssa/pr33576.c: -> gcc.dg/graphite/pr33576.c
	* gcc.dg/tree-ssa/pr33766.c: -> gcc.dg/graphite/pr33766.c
	* gcc.dg/pr34016.c: -> gcc.dg/graphite/pr34016.c
	* gcc.dg/tree-ssa/pr34017.c: -> gcc.dg/graphite/pr34017.c
	* gcc.dg/tree-ssa/pr34123.c: -> gcc.dg/graphite/pr34123.c
	* gcc.dg/tree-ssa/pr36287.c: -> gcc.dg/graphite/pr36287.c
	* gcc.dg/tree-ssa/pr37686.c: -> gcc.dg/graphite/pr37686.c
	* gcc.dg/pr42917.c: -> gcc.dg/graphite/pr42917.c
	* gcc.dg/tree-ssa/data-dep-1.c
	* gfortran.dg/loop_nest_1.f90: -> gfortran.dg/graphite/pr29290.f90
	* gfortran.dg/pr29581.f90: -> gfortran.dg/graphite/pr29581.f90
	* gfortran.dg/pr36286.f90: -> gfortran.dg/graphite/pr36286.f90
	* gfortran.dg/pr36922.f: -> gfortran.dg/graphite/pr36922.f
	* gfortran.dg/pr39516.f: -> gfortran.dg/graphite/pr39516.f

2011-01-17  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
	VAR_DECL, PARM_DECL, and RESULT_DECL.

	* gfortran.dg/graphite/interchange-3.f90: Un-XFAILed.

2011-01-17  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (reduction_dr_1): Allow several reductions
	in a reduction PBB.
	* graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
	that have already been marked as PBB_IS_REDUCTION.

2011-01-17  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-scop-detection.c (same_close_phi_node): New.
	(remove_duplicate_close_phi): New.
	(make_close_phi_nodes_unique): New.
	(canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.

2011-01-17  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
	* graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
	of both data references to be the same.

2011-01-17  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (build_lexicographical_constraint): Remove the
	gdim parameter.
	(build_lexicographical_constraint): Adjust call to ppl_powerset_is_empty.
	(dependence_polyhedron): Same.
	(graphite_legal_transform_dr): Same.
	(graphite_carried_dependence_level_k): Same.
	* graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params parameter.
	* graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.

2011-01-15  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c
	(translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
	(close_phi_written_to_memory): New.
	(translate_scalar_reduction_to_array): Call close_phi_written_to_memory
	and unshare_expr.

	* gcc.dg/graphite/block-0.c: Un-XFAILed.
	* gcc.dg/graphite/block-1.c: Un-XFAILed.
	* gcc.dg/graphite/block-7.c: Un-XFAILed.
	* gcc.dg/graphite/block-8.c: Un-XFAILed.
	* gcc.dg/graphite/interchange-12.c: Un-XFAILed.
	* gcc.dg/graphite/interchange-14.c: Un-XFAILed.
	* gcc.dg/graphite/interchange-15.c: Un-XFAILed.
	* gcc.dg/graphite/interchange-8.c: Un-XFAILed.
	* gcc.dg/graphite/interchange-mvt.c: Un-XFAILed.

2011-01-15  Sebastian Pop  <sebastian.pop@amd.com>

	* doc/install.texi: Update the expected version number of PPL to 0.11.
	* graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
	#if PPL_VERSION_MINOR < 11.

2011-01-15  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (new_poly_ddr): Inlined into
	dependence_polyhedron.
	(free_poly_ddr): Moved close by new_poly_ddr.
	(dependence_polyhedron_1): Renamed dependence_polyhedron.
	Early return NULL when ppl_powerset_is_empty returns true.
	(dependence_polyhedron): Renamed new_poly_ddr.  Call only once
	poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
	(graphite_legal_transform_dr): Call new_poly_ddr.
	(graphite_carried_dependence_level_k): Same.
	(dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
	(dot_transformed_deps_stmt_1): Removed.
	(dot_deps_stmt_1): Call dot_deps_stmt_2.
	(dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
	(dot_deps_1): Call dot_deps_2.

2011-01-15  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
	(build_lexicographical_constraint): Same.
	(dependence_polyhedron_1): Same.
	(graphite_legal_transform_dr): Same.
	(graphite_carried_dependence_level_k): Same.
	* graphite-ppl.c (ppl_powerset_is_empty): New.
	* graphite-ppl.h (ppl_powerset_is_empty): Declared.
	* tree-data-ref.c (dump_data_reference): Print the basic block index.

	* gcc.dg/graphite/block-0.c: Add documentation.
	* gcc.dg/graphite/block-4.c: Same.
	* gcc.dg/graphite/block-7.c: Same.
	* gcc.dg/graphite/block-8.c: New.
	* gcc.dg/graphite/interchange-1.c: Un-XFAILed.
	* gcc.dg/graphite/interchange-11.c: Un-XFAILed.
	* gcc.dg/graphite/interchange-12.c: Add documentation.
	* gcc.dg/graphite/interchange-13.c: New.
	* gcc.dg/graphite/interchange-14.c: New.
	* gcc.dg/graphite/interchange-15.c: New.
	* gcc.dg/graphite/interchange-8.c: Add documentation.
	* gcc.dg/graphite/interchange-mvt.c: Same.

2011-01-15  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (build_pairwise_scheduling): Correctly compute
	the "a followed by b" relation and document it.

2011-01-15  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (build_lexicographical_constraint): Stop the
	iteration when the bag of constraints is empty.

2011-01-15  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.

2011-01-15  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
	nest and two loop depths as parameters.
	(lst_try_interchange_loops): Call lst_interchange_profitable_p after
	lst_perfect_nestify.

2011-01-15  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (print_pddr): Call
	ppl_io_fprint_Pointset_Powerset_C_Polyhedron.

2011-01-15  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-ppl.c (debug_gmp_value): New.
	* graphite-ppl.h (debug_gmp_value): Declared.

2011-01-13  Tobias Grosser  <grosser@fim.uni-passau.de>

	* doc/install.texi: Document availability of cloog-0.16

2011-01-05  Vladimir Kargov  <kargov@gmail.com>

	* graphite-scop-detection.c (is_valid_stmt_p): Pass the entry basic
	block instead of region start to the instantiation.
	(is_valid_bb_p): Add support for basic blocks with conditional
	statements.
	(find_scops_new): Recalculate dominance info before SCOP
	detection.

2011-01-05  Vladimir Kargov  <kargov@gmail.com>

	* graphite-scop-detection.c (get_outermost_loop_in_region): New.
	(is_valid_loop_p): Correct loop passed to stmt_has_simple_data_refs_p

2011-01-05  Vladimir Kargov  <kargov@gmail.com>

	* graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
	invalid postdominance info

2010-12-29  Sebastian Pop  <sebastian.pop@amd.com>

	* Makefile.in (graphite-opencl-codegen.o): Update dependences.
	(graphite-opencl-meta-clast.o): Same.
	(graphite-opencl.o): Same.
	(refined-regions.o): Same.
	* graphite-opencl-codegen.c: Do not include unnecessary .h files.
	* graphite-opencl-meta-clast.c: Same.
	* graphite-opencl.c: Same.
	* refined-regions.c: Same.

2010-12-27  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-opencl-codegen.c: Use FOR_EACH_VEC_ELT.
	* graphite-opencl-meta-clast.c: Same.
	* graphite-opencl.c: Same.

2010-12-27  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-opencl-codegen.c: Do not include sys/time.h.
	* graphite-opencl.c: Same.

2010-12-27  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-opencl.c (h_context, h_cmd_queue, h_program): Moved
	out of ifdef HAVE_cloog section.

2010-12-27  Sebastian Pop  <sebastian.pop@amd.com>

	* Makefile.in (graphite-opencl.o): Depends on
	graphite-opencl-functions.def.
	* graphite-opencl-functions.def: New.
	* graphite-opencl.c (enum OPENCL_FUNCTIONS): Read data from
	graphite-opencl-functions.def.
	(opencl_function_names): Same.
	(opencl_create_function_decl): Use the enum OPENCL_FUNCTIONS
	as indices of opencl_function_names.

2010-12-27  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-opencl-codegen.c: Fix formatting.
	* graphite-opencl-meta-clast.c: Same.
	* graphite-opencl.c: Same.

2010-12-27  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-opencl-codegen.c: Fix formating problems.
	* graphite-opencl-meta-clast.c: Same.
	* graphite-opencl.c: Same.
	* graphite-opencl.h: Same.

2010-12-27  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-opencl-codegen.c: Sort topologically static functions.
	* graphite-opencl.c: Same.

2010-12-25  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-cloog-compat.h (cloog_names_nb_scattering): New.
	(cloog_names_scattering): New.
	* graphite-opencl-codegen.c (opencl_constant_expression_p): Use
	clast_expr_* instead of expr_*.  Call clast_name_to_str.
	(opencl_clast_name_to_tree): Now takes a clast_name_p in parameter.
	(opencl_get_scat_real_name): Same.  Call clast_name_to_str.
	(opencl_add_scat_as_arg): Same.
	(opencl_print_local_vars): Call cloog_names_scattering and
	cloog_names_nb_scattering.
	(opencl_print_for): Do not call value_*.
	(opencl_print_term): Same.
	(opencl_print_expr): Use clast_expr_* instead of expr_*.
	(opencl_print_sum): Same.
	(opencl_print_binary): Same.

2010-12-25  Alexey Kravets  <kayrick@ispras.ru>

	* Makefile.in (OBJS-common): Add graphite-opencl-codegen.o,
	graphite-opencl-meta-clast.o and graphite-opencl.o.
	(graphite-opencl-codegen.o): New.
	(graphite-opencl-meta-clast.o): New.
	(graphite-opencl.o): New.
	(GTFILES): Add graphite-opencl.c.
	* common.opt (fgraphite-opencl): New.
	(fgraphite-opencl-cpu): New.
	(fgraphite-opencl-ignore-depth-heuristic): New.
	(fgraphite-opencl-ignore-mem-heuristic): New.
	(fgraphite-opencl-ignore-dep): New.
	(fgraphite-opencl-ignore-types): New.
	(fgraphite-opencl-depth-base): New.
	(fgraphite-opencl-debug): New.
	* graphite-opencl-codegen.c: New file.
	* graphite-opencl-meta-clast.c: New file.
	* graphite-opencl.c: New file.
	* graphite-opencl.h: New file.
	* graphite.c (graphite_transform_loops): Call graphite_opencl_init and
	graphite_opencl_finalize.
	* tree-ssa-loop.c (gate_graphite_transforms): Handle
	flag_graphite_opencl.
	* graphite-clast-to-gimple.c (gloog): Call opencl_transform_clast.
	* dbgcnt.def (opencl_scop_cnt): New counter.

2010-12-25  Alexander Monakov  <amonakov@ispras.ru>

	* graphite-dependences.c (graphite_outer_subscript_bound): New.
	(graphite_carried_dependence_level_k): Export.
	* graphite-dependences.h (graphite_outer_subscript_bound): Declare.
	(graphite_carried_dependence_level_k): Ditto.

2010-12-25  Alexey Kravets  <kayrick@ispras.ru>

	* graphite-clast-to-gimple.c (struct clast_name_index): Move
	definition to graphite-clast-to-gimple.h.
	(clast_name_to_index): Ditto.
	(clast_name_index_elt_info): Ditto.
	(eq_clast_name_indexes): Ditto.
	(save_clast_name_index): Export.
	(clast_name_to_gcc): Ditto.
	(clast_to_gcc_expression): Ditto.
	(gcc_type_for_clast_expr): Ditto.
	(graphite_create_new_guard): Ditto.
	(gcc_type_for_iv_of_clast_loop): Ditto.
	(graphite_create_new_loop): Ditto.
	(build_iv_mapping): Ditto.
	(graphite_create_new_loop_guard): Ditto.
	(debug_clast_name_index): New.
	(debug_clast_name_indices): New debug function.

2010-12-21  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/47021
	* graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.

2010-11-26  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (analyze_drs_in_stmts): Fix set but
	unused warning.
	(rewrite_cross_bb_scalar_deps_out_of_ssa): Same.

2010-11-26  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (analyze_drs): Removed.
	(build_scop_drs): Do not call analyze_drs.
	(analyze_drs_in_stmts): New.
	(insert_stmts): New.
	(insert_out_of_ssa_copy): Call analyze_drs_in_stmts.
	(insert_out_of_ssa_copy_on_edge): Same.
	(rewrite_close_phi_out_of_ssa): Call insert_stmts.
	(rewrite_phi_out_of_ssa): Same.
	(rewrite_cross_bb_scalar_dependence): Same.
	(split_reduction_stmt): Move data references in the new basic blocks.
	(translate_scalar_reduction_to_array_for_stmt): Call insert_stmts.

2010-11-26  Sebastian Pop  <sebastian.pop@amd.com>

	* sese.c (rename_uses): Do not handle ADDR_EXPR in LHS of assignments.

2010-11-22  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/45297
	* graphite-poly.c (new_poly_bb): Returns a poly_bb_p.  Do not take
	the reduction bool in parameter.  Clear PBB_IS_REDUCTION.  Set GBB_PBB.
	* graphite-poly.h (new_poly_bb): Update declaration.
	(gbb_from_bb): Moved here...
	(pbb_from_bb): New.
	* graphite-sese-to-poly.c (var_used_in_not_loop_header_phi_node):
	Removed.
	(graphite_stmt_p): Removed.
	(try_generate_gimple_bb): Returns a gimple_bb_p.  Do not pass in
	sbitmap reductions.  Always build a gimple_bb_p.  Do not call
	new_poly_bb.
	(build_scop_bbs_1): Do not pass in sbitmap reductions.
	(build_scop_bbs): Same.
	(gbb_from_bb): ... from here.
	(add_conditions_to_constraints): Moved up.
	(analyze_drs): New.
	(build_scop_drs): Call analyze_drs.  Remove all the PBBs that do
	not contain data references.
	(new_pbb_from_pbb): New.
	(insert_out_of_ssa_copy_on_edge): Call new_pbb_from_pbb after a
	block is split.
	(rewrite_close_phi_out_of_ssa): Update call to
	insert_out_of_ssa_copy_on_edge.
	(rewrite_reductions_out_of_ssa): Now static.
	(rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
	(split_pbb): New.
	(split_reduction_stmt): Call split_pbb.
	(translate_scalar_reduction_to_array): Pass in the scop, do not
	pass in the sbitmap reductions.
	(rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
	(rewrite_commutative_reductions_out_of_ssa_loop): Same.
	(rewrite_commutative_reductions_out_of_ssa): Same.
	(build_poly_scop): Call build_scop_bbs,
	rewrite_commutative_reductions_out_of_ssa,
	rewrite_reductions_out_of_ssa, and
	rewrite_cross_bb_scalar_deps_out_of_ssa.  Move build_scop_drs
	before scop_to_lst.
	* graphite-sese-to-poly.h (rewrite_commutative_reductions_out_of_ssa):
	Removed declaration.
	(rewrite_reductions_out_of_ssa): Same.
	(rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
	(build_scop_bbs): Same.
	* graphite.c (graphite_transform_loops): Do not initialize reductions.
	Do not call build_scop_bbs,
	rewrite_commutative_reductions_out_of_ssa,
	rewrite_reductions_out_of_ssa, and
	rewrite_cross_bb_scalar_deps_out_of_ssa.
	* sese.h (struct gimple_bb): Add field pbb.
	(GBB_PBB): New.

	* gcc.dg/graphite/pr45297.c: New.

2010-11-22  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (handle_scalar_deps_crossing_scop_limits):
	New.
	(rewrite_cross_bb_scalar_deps): Pass in the scop.  Call
	handle_scalar_deps_crossing_scop_limits.
	(rewrite_cross_bb_scalar_deps_out_of_ssa): Create an empty BB
	after the scop.  Update call to rewrite_cross_bb_scalar_deps.

2010-11-22  Sebastian Pop  <sebastian.pop@amd.com>

	* sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr
	when replacing a constant in an ADDR_EXPR.

2010-10-20  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-blocking.c (lst_do_strip_mine_loop): Extra parameter
	for the stride.
	(lst_do_strip_mine): Same.
	(scop_do_strip_mine): Same.
	* graphite-poly.c (apply_poly_transforms): Update call to
	scop_do_strip_mine.
	* graphite-poly.h (scop_do_strip_mine): Update declaration.

2010-09-24  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/45758
	* graphite.c (graphite_initialize): Call scev_reset.

2010-09-23  Sebastian Pop  <sebastian.pop@amd.com>

	* sese.h (scev_analyzable_p): Return false for real or floating
	point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.

2010-09-23  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/45758
	* gfortran.dg/graphite/pr45758.f90: New.

2010-09-23  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-scop-detection.c (is_scop_p): Free bblist.

2010-09-23  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
	and ps.
	* graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
	domain.
	* graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
	Do not allocate ub_expr, it is passed in initialized.

2010-09-21  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* common.opt (fgraphite-dump-cloog): New flag.
	* doc/invoke.texi (-fgraphite-dump-cloog): Documented.
	* graphite-clast-to-gimple.c (init_cloog_input_file): New.
	(build_cloog_prog): Dump CLooG input file when
	flag_graphite_dump_cloog is set.
	* graphite-cloog-compat.h (cloog_program_dump_cloog): New.

2010-09-20  Sebastian Pop  <sebastian.pop@amd.com>

	Revert previous patch "New flag: -fgraphite-dump-cloog."

2010-09-20  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* common.opt (fgraphite-dump-cloog): New flag.
	* doc/invoke.texi (-fgraphite-dump-cloog): Documented.
	* graphite-clast-to-gimple.c (init_cloog_input_file): New.
	(build_cloog_prog): Dump CLooG input file when
	flag_graphite_dump_cloog is set.

2010-09-20  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (graphite_verify): Remove call to
	verify_dominators for CDI_POST_DOMINATORS.
	* sese.h: Remove comment about CDI_POST_DOMINATORS.
	(recompute_all_dominators): Remove call to free_dominance_info
	for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
	for CDI_POST_DOMINATORS.

2010-09-09  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
	over pbb_dim_iter_domain.

2010-09-09  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-flattening.c: Fix comments.

2010-09-09  Sebastian Pop  <sebastian.pop@amd.com>

	* Makefile.in (OBJS-common): Add graphite-flattening.o.
	(graphite-flattening.o): New rule.
	* common.opt (floop-flatten): New flag.
	* doc/invoke.texi (-floop-flatten): Documented.
	* graphite-flattening.c: New.
	* graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
	* graphite-poly.h (flatten_all_loops): Declared.
	(lst_remove_loop_and_inline_stmts_in_loop_father): New.
	* tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
	is set, also set flag_graphite.

2010-09-09  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (cloog_checksum): New.
	* graphite-poly.h (cloog_checksum): Declared.

2010-09-09  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (pbb_number_of_iterations): Removed.
	(pbb_number_of_iterations_at_time): Correctly compute the number
	of iterations in the transformed loop.
	* graphite-poly.h (pbb_number_of_iterations): Removed.

2010-09-09  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.h (lst_update_scattering_seq): Removed.
	(lst_update_scattering): Correctly handle outermost loop dewey
	renumbering.

2010-09-09  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
	lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
	* graphite-poly.h (lst_niter_for_loop): New.

2010-09-09  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (apply_poly_transforms): Do not abort when the
	transform read from disk is not legal.  Call fatal_error instead.

2010-09-09  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
	(print_scop_header): Removed.  Inlined in the only call place...
	(print_scop): ... here.

2010-09-09  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.

2010-09-02  Vladimir Kargov  <kargov@gmail.com>

	* graphite-scop-detection.c (is_valid_expr_p, is_valid_loop_p): New.
	(is_valid_stmt_p): Add data reference and operation-specific checks.
	(is_valid_bb_p): Change structure, add loop validity check.
	(is_scop_p): Move the TODO list
	(find_scops_new): New.
	(build_scops_new): Move part of functionality to find_scops_new and
	build_scops.  Add necessary steps for successful SCoP construction.
	(build_scops): Compute SCoP sets for both detection algorithms, choose
	the resulting one depending on static condition.

2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.

2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (dot_deps): Avoid set but not used warning.
	(dot_deps_stmt): Same.
	* graphite-poly.c (dot_lst): Same.

2010-08-23  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-blocking.c (scop_do_strip_mine): Do not call
	graphite_legal_transform.
	(scop_do_block): Same.

2010-08-20  Vladimir Kargov  <kargov@gmail.com>

	* graphite-scop-detection.c (graphite_can_represent_loop): Correct the
	description.

2010-08-20  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/45230
	* gcc.dg/graphite/id-pr45230.c: New.

2010-08-20  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-scalar-evolution.c (instantiate_array_ref): New.
	(instantiate_scev_r): Also handle ARRAY_REFs.

2010-08-20  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
	Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
	RESULT_DECL, and FIELD_DECL.  Return false for an
	SSA_NAME_IS_DEFAULT_DEF.
	(compute_scalar_evolution_in_loop): Do not further analyze the
	scalar evolution when no_evolution_in_loop_p returns true.

2010-08-20  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-chrec.h (evolution_function_is_affine_p): Do not check
	whether CHREC_LEFT is invariant.  A function is affine when
	CHREC_RIGHT is invariant.

2010-08-20  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (reduction_phi_p): Remove check for
	is_gimple_reg.
	(rewrite_degenerate_phi): Same.
	(rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.

2010-08-18  Vladimir Kargov  <kargov@gmail.com>

	* graphite-scop-detection.c (graphite_can_represent_scev,
	graphite_can_represent_expr, stmt_has_simple_data_refs_p,
	graphite_can_represent_loop): Remove outermost_loop.

2010-08-17  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/45229
	* graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
	handle GIMPLE_CALLs with no LHS.

2010-08-17  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
	    Sebastian Pop  <sebastian.pop@amd.com>

	* gcc.dg/graphite/graphite.exp: Add test rules for openscop read/write.
	Call remove-build-file to clean up the generated *.graphite files.

2010-08-17  Riyadh Baghdadi <baghdadi.mr@gmail.com>

	* doc/invoke.texi (debugging options): Update documentation.
	(-floop-interchange): Same.
	(-flopp-strip-mine): Same.
	(-floop-block): Same.
	(-fgraphite-read): Add documentation.
	(-fgraphite-write): Same.

2010-08-17  Riyadh Baghdadi <baghdadi.mr@gmail.com>

	* toplev.c (process_options): Disable graphite loop optimization
	options when -fgraphite-read flag is used.

2010-08-17  Riyadh Baghdadi <baghdadi.mr@gmail.com>

	* graphite-poly.c (init_graphite_out_file): New.
	(init_graphite_in_file): New.
	(apply_poly_transforms): Updated to enable reading and writing of
	multiple scop files.
	* toplev.c (init_asm_output): Remove graphite in/out file initialization.

2010-08-17  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-scop-detection.c (graphite_can_represent_scev): Remove
	redundant checks.

2010-08-12  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (precision_for_value): Adjust
	computation of precision by 1.

2010-08-12  Riyadh Baghdadi <baghdadi.mr@gmail.com>

	* graphite-cloog-util.c (openscop_read_cloog_matrix): New.
	(openscop_read_polyhedron_matrix): New.
	* graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
	(openscop_read_N_int): Same.
	* graphite-poly.c (openscop_read_N_int): New.
	(openscop_read_one_int): New.
	(openscop_read_N_string): New.
	(openscop_read_one_string): New.
	(openscop_read_powerset_matrix): New.
	(graphite_read_transforms): Remove.
	(graphite_read_scatt): New.
	(graphite_read_scop_file): New.
	(apply_poly_transforms): Updated to call graphite_read_scop_file.

2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* graphite-poly.c: Change include order.

2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
	(cloog_matrix_nrows): New.

2010-08-11  Riyadh Baghdadi <baghdadi.mr@gmail.com>

	* graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
	from matrix lines.
	* graphite-poly.c (openscop_print_scattering_function_1): Same.
	(print_scattering_function_1): Same.
	(openscop_print_pbb_domain): Same.
	(openscop_print_scop_context): Same.
	(print_scop_context): Same.

2010-08-11  Riyadh Baghdadi <baghdadi.mr@gmail.com>

	* graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
	(openscop_print_pdr_polyhedron): Print pph.

2010-07-29  Sebastian Pop  <sebastian.pop@amd.com>

	* gcc.dg/graphite/graphite.exp: Add compile rules for vect-* files.
	* gfortran.dg/graphite/graphite.exp: Same.
	* gcc.dg/graphite/vect-pr43423.c: New.

2010-07-29  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
	priority signed types.

2010-07-29  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (max_signed_precision_type): Remove the call
	to lang_hooks.types.type_for_size.  Call build_nonstandard_integer_type.

2010-07-29  Riyadh Baghdadi <baghdadi.mr@gmail.com>

	* graphite-cloog-util.c (openscop_print_cloog_matrix): New.
	(openscop_print_polyhedron_matrix): New.
	* graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
	* graphite-poly.c (openscop_print_pdr_polyhedron): Same.
	(openscop_print_pdr_powerset): New.
	(openscop_print_powerset_matrix): New.
	(openscop_print_scattering_function_1): New.
	(print_scattering_function): Add support for scattering names and
	OpenScop format.
	(graphite_write_transforms): Remove.
	(apply_poly_transforms): Updated to call print_scop.
	(print_pdr_access_layout): Updated to support OpenScop format.
	(print_pdr): Same.
	(openscop_print_pbb_domain): New.
	(print_pbb_body): Added a parameter to allow indicating that pbb_body is
	not provided.
	(print_pbb): Updated to call the new print_pbb_body.
	(openscop_print_scop_context): New.
	(print_scop_header): New.
	(print_scop): Updated to call print_scop_header.
	* graphite-poly.h: Document OpenScop format.

2010-07-29  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
	the case removed in the previous patch, when the only phi argument
	is defined in the same loop as the phi node itself.  Handle it
	separately from the invariant case by both propagating it outside
	the region and replacing the phi node with an assign.

2010-07-28  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
	constant phi nodes with one argument are is_gimple_min_invariant
	and SSA_NAME_IS_DEFAULT_DEF.

	* gfortran.dg/graphite/id-22.f: New.

2010-07-27  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* graphite.c (graphite_initialize): Do not initialize
	CLooG and initialize the Parma Polyhedra Library
	manually when using CLOOG_ORG.
	(graphite_finalize): Do not finalize CLooG and finalize
	the Parma Polyhedra Library manually when using CLOOG_ORG.
	* graphite-cloog-compat.h (cloog_initialize): Hide function
	when using CLOOG_ORG.
	(cloog_finalize): Same.

2010-07-27  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* graphite-clast-to-gimple.c (free_scattering): Change
	CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
	(CLOOG_ORG).
	(build_cloog_prog): Same.
	* graphite-cloog-compat.h (cloog_domain): Removed.
	(cloog_scattering): New.
	(cloog_set_domain): Removed.
	(cloog_set_scattering): New.
	(cloog_next_domain): Removed.
	(cloog_next_scattering): New.
	(cloog_set_next_domain): Removed.
	(cloog_set_next_scattering): New.
	(CloogScatteringList): New.
	(CloogScattering): New.
	(cloog_scattering_free): New.
	(new_Cloog_Scattering_from_ppl_Polyhedron): New.
	* graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
	New.

2010-07-27  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* graphite-clast-to-gimple.c (build_cloog_prog): Extend with
	CloogState.
	(set_cloog_options): Same.
	(print_clast_stmt): Same.
	(scop_to_clast): Same.
	(print_generated_program): Same.
	(gloog): Same.
	* graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
	(scop_to_clast): Extend with CloogState.
	* graphite-cloog-util.c: Include graphite-cloog-compat.h
	(new_Cloog_Domain_from_ppl_Polyhedron):
	Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
	(new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
	(new_Cloog_Domain_from_ppl_Polyhedron): Same.
	* graphite-cloog-util.h (build_cloog_prog): Same.
	* graphite-cloog-copat.h (build_cloog_prog): New.
	(CloogState): New.
	(cloog_state_malloc): New.
	(cloog_state_free): New.
	(cloog_loop_malloc): New.
	(cloog_options_malloc): New.
	(cloog_statement_alloc): New.
	(cloog_domain_from_cloog_matrix): New.
	(new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
	(new_Cloog_Domain_from_ppl_Polyhedron): New.

2010-07-27  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
	type of NAME now depends on used CLooG version.
	(clast_to_gcc_expression): Replace expr_* with clast_expr_*.
	(gcc_type_for_clast_expr): Same.
	(print_clast_stmt): Replace pprint with clast_pprint.
	* graphite-cloog-compat.h: Provide compatibility macros for
	CLooG Legacy.
	(clast_name_p): New.
	(clast_expr_term): New.
	(clast_expr_red): New.
	(clast_expr_bin): New.
	(clast_pprint): New.

2010-07-27  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
	compatible to newer CLooG releases (CLOOG_ORG).
	(build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
	(scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
	* graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
	(build_cloog_prog) : New.
	(cloog_program_extract_scalars): New.
	(cloog_program_scatter): New.

2010-07-27  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
	conditionally (CLOOG_ORG).
	* graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
	(cloog_statement_usr): New.
	(cloog_domain): Same.
	(cloog_set_domain): Same.
	(cloog_next_domain): Same.
	(cloog_set_next_domain): Same.
	(cloog_program_nb_scattdims): Same.
	(cloog_program_set_nb_scattdims): Same.
	(cloog_program_names): Same.
	(cloog_program_set_names): Same.
	(cloog_program_set_context): Same.
	(cloog_program_set_loop): Same.
	(cloog_program_blocklist): Same.
	(cloog_program_set_blocklist): Same.
	(cloog_program_scaldims): Same.
	(cloog_program_set_scaldims): Same.
	(cloog_names_nb_parameters): Same.
	(cloog_names_set_nb_parameters): Same.
	(cloog_names_parameters): Same.
	(cloog_names_set_parameters): Same.
	(cloog_names_set_nb_iterators): Same.
	(cloog_names_set_iterators): Same.
	(cloog_names_set_nb_scattering): Same.
	(cloog_names_set_scattering): Same.
	(cloog_statement_set_usr): Same.
	(cloog_loop_set_next): Same.
	(cloog_loop_set_domain): Same.
	(cloog_loop_set_block): Same.
	(cloog_block_list_next): Same.
	(cloog_block_list_set_next):
	(cloog_block_list_set_block): Same.

2010-07-27  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
	a bool.
	(rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
	(rewrite_commutative_reductions_out_of_ssa_loop): Same.
	(rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
	when something has been changed.
	(rewrite_commutative_reductions_out_of_ssa): Same.

	* gcc.dg/graphite/id-26.c: New.

2010-07-26  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (propagate_expr_outside_region): Also
	handle the case when def is in the sese region.
	(rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
	for invariant expressions.
	(rewrite_cross_bb_phi_deps): Removed.
	(rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
	(rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
	rewrite_cross_bb_phi_deps.

2010-07-26  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c
	(rewrite_commutative_reductions_out_of_ssa_loop): Call
	scev_analyzable_p only on is_gimple_reg

	* gcc.dg/graphite/id-25.c: New.

2010-07-22  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (propagate_expr_outside_region): New.
	(rewrite_close_phi_out_of_ssa): Propagate constant values or
	parametric expressions outside the scop region.
	(rewrite_cross_bb_scalar_deps): Same.
	* sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.

	* gcc.dg/graphite/run-id-5.c: New.
	* gcc.dg/graphite/run-id-6.c: New.
	* gfortran.dg/graphite/id-21.f: New.

2010-07-22  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
	SSA_NAME_DEF_STMT only on SSA_NAMEs.

	* gcc.dg/graphite/id-24.c: New.

2010-07-22  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-scalar-evolution.c (instantiate_scev_name): Do not
	instantiate default definitions.

2010-07-20  Vladimir Kargov  <kargov@gmail.com>

	* graphite-scop-detection.c (is_valid_stmt_p): New.
	(is_valid_bb_p): New.

2010-07-20  Vladimir Kargov  <kargov@gmail.com>
	    Sebastian Pop  <sebastian.pop@amd.com>

	* cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
	(loop_exits_from_bb_p): New.
	* cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
	(loop_exits_from_bb_p): Declared.
	* graphite-scop-detection.c (scopdet_basic_block_info): Call
	loop_exits_to_bb_p.

2010-07-20  Vladimir Kargov  <kargov@gmail.com>

	* refined-regions.c: Include tree-pass.h, cfgloop.h, gimple.h, and
	tree-data-ref.h.
	(dot_regions_1): New.
	(dot_regions): New.
	* refined-regions.h (dot_regions): Declared.
	* Makefile.in (refined-regions.o): Update dependences.

2010-07-20  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
	extra parameter for the region.  Call scev_analyzable_p.
	(rewrite_reductions_out_of_ssa): Update call to
	rewrite_close_phi_out_of_ssa.
	(rewrite_cross_bb_phi_deps): Same.
	(rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
	parameter for the region.  Call scev_analyzable_p.
	(rewrite_commutative_reductions_out_of_ssa): Update call to
	rewrite_commutative_reductions_out_of_ssa_loop.

2010-07-20  Sebastian Pop  <sebastian.pop@amd.com>

	* gcc.dg/tree-ssa/pr20742.c: New.

2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>

	* sese.c (rename_uses): Call unshare_expr before force_gimple_operand.

	* gcc.dg/graphite/id-23.c: New.

2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
	SSA scalar phi nodes that can be scev_analyzable_p.

	* gfortran.dg/graphite/id-20.f: Adjust testcase.

2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
	handle SSA_NAME_IS_DEFAULT_DEF.

2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>

	* sese.c (rename_uses): Handl unconditionally gimple_debug statements.

	* gcc.dg/graphite/pr42729.c: New.

2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
	case non close-phi nodes with one argument.

2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>

	* sese.h (scev_analyzable_p): Scevs could be expressions without
	chrecs and still be scev_analyzable_p.

2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>

	* params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.

2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>

	* cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
	* cfgloop.h (struct loop): Remove single_iv field.
	* graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
	(scop_canonicalize_loops): Removed.
	(scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
	over all the loop phi nodes in loop->header.
	(build_poly_scop): Remove use of scop_canonicalize_loops.

2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
	handle GIMPLE_CALL.

2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-chrec.c (chrec_apply): Should only apply to the specified
	variable.  Also handle multivariate chains of recurrences that
	satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.

2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
	(debug_clast_name_indexes_1): Removed.
	(debug_clast_name_indexes): Removed.
	(pbb_to_depth_to_oldiv): Removed.
	(build_iv_mapping): Replace the use of rename_map with iv_map.
	(translate_clast_user): Remove uses of rename_map.  Allocate and
	free iv_map.
	(translate_clast_for_loop): Remove uses of rename_map.
	(translate_clast_for): Same.
	(translate_clast_guard): Same.
	(translate_clast): Same.
	(gloog): Same.
	* graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
	* graphite-sese-to-poly.c (scev_analyzable_p): Moved...
	* sese.c (set_rename): Now static.
	(rename_variables_in_stmt): Removed.
	(rename_uses): New.
	(is_parameter): Removed.
	(is_iv): Removed.
	(expand_scalar_variables_call): Removed.
	(expand_scalar_variables_ssa_name): Removed.
	(expand_scalar_variables_expr): Removed.
	(expand_scalar_variables_stmt): Removed.
	(expand_scalar_variables): Removed.
	(rename_variables): Removed.
	(remove_condition): Removed.
	(get_true_edge_from_guard_bb): Removed.
	(get_false_edge_from_guard_bb): Removed.
	(struct igp): Removed.
	(default_before_guard): Removed.
	(convert_for_phi_arg): Removed.
	(add_guard_exit_phis): Removed.
	(insert_guard_phis): Removed.
	(graphite_copy_stmts_from_block): Now also uses iv_map and a
	region.  Do not copy conditions.  Do not copy induction variables.
	Call rename_uses.
	(copy_bb_and_scalar_dependences): Allocate a local rename_map for
	the translated statement.  Use the iv_map for the induction
	variable renaming.
	* sese.h (copy_bb_and_scalar_dependences): Update declaration.
	(set_rename): Removed declaration.
	(scev_analyzable_p): ...here.
	* tree-chrec.c (chrec_apply_map): New.
	* tree-chrec.h (chrec_apply_map): Declared.

2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
	insert_loop_close_phis.
	* sese.c (name_defined_in_loop_p): Removed.
	(expr_defined_in_loop_p): Removed.
	(alive_after_loop): Removed.
	(close_phi_not_yet_inserted_p): Removed.
	(struct alep): Removed.
	(add_loop_exit_phis): Removed.
	(insert_loop_close_phis): Removed.

2010-07-15  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* graphite-cloog-util.c	(cloog_matrix_to_ppl_constraint): Fix flipped
	condition.
	* graphite-poly.c (psct_scattering_dim_for_loop_depth): Same.

2010-07-07  Sebastian Pop  <sebastian.pop@amd.com>

	* gfortran.dg/graphite/id-20.f: New.

2010-07-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* graphite-cloog-util.h: Added cloog.h.
	* graphite-blocking.c: Removed cloog.h.
	* graphite-dependences.c: Same.
	* graphite-interchange.c: Same.
	* graphite-poly.c: Same.
	* graphite-ppl.c: Same.
	* graphite-scop-detection.c: Same.
	* graphite-sese-to-poly.c:
	Removed cloog.h.
	Removed graphite-clast-to-gimple.h.
	(check_poly_representation): Removed (unused).
	* graphite-sese-to-poly.h
	(check_poly_representation): Removed (unused).

2010-07-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* Makefile.in
	(OBJS-common): Added graphite-cloog-util.o.
	(graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
	(graphite-cloog-util.o): New.
	(graphite-ppl.o): Added graphite-cloog-util.h.
	* graphite-clast-to-gimple.c:
	Added graphite-cloog-util.h to include statements.
	* graphite-cloog-util.c: New.
	(new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
	(new_Cloog_Domain_from_ppl_Polyhedron): Same.
	(new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
	(new_C_Polyhedron_from_Cloog_Matrix): Same.
	(ppl_Constrain_System_number_of_constraints): Same.
	(new_Cloog_Matrix_from_ppl_Constraint_System): Same.
	(oppose_constraint): Same.
	(cloog_matrix_to_ppl_constraint): Same.
	(new_Constraint_System_from_Cloog_Matrix): Same.
	(insert_constraint_into_matrix): Same. Declared static.
	* graphite-cloog-util.h: New.
	(new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
	(new_Cloog_Domain_from_ppl_Polyhedron): Same.
	(new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
	(new_C_Polyhedron_from_Cloog_Matrix): Same.
	(insert_constraint_into_matrix): Same.
	* graphite-ppl.c:
	Added graphite-cloog-util.h to include statements.
	(new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
	(new_Cloog_Domain_from_ppl_Polyhedron): Same.
	(new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
	(new_C_Polyhedron_from_Cloog_Matrix): Same.
	(insert_constraint_into_matrix): Same.
	(ppl_Constrain_System_number_of_constraints): Same.
	(new_Cloog_Matrix_from_ppl_Constraint_System): Same.
	(oppose_constraint): Same.
	(cloog_matrix_to_ppl_constraint): Same.
	(new_Constraint_System_from_Cloog_Matrix): Same.
	* graphite-ppl.h:
	(new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
	graphite-cloog-util.h.
	(new_Cloog_Domain_from_ppl_Polyhedron): Same.
	(new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
	(new_C_Polyhedron_from_Cloog_Matrix): Same.
	(insert_constraint_into_matrix): Removed.

2010-07-04  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* graphite-clast-to-gimple.c
	(precision_for_value): Resolve value_* calls to matching mpz_* calls.
	(precision_for_interval): Same.
	(gcc_type_for_interval): Same.
	(compute_type_for_level): Same.
	* graphite-interchange.c
	(lst_interchange_profitable_p): Same.
	* graphite-poly.c
	(psct_scattering_dim_for_loop_depth): Same.
	* graphite-ppl.c
	(ppl_max_for_le_pointset): Same.
	(ppl_min_for_le_pointset): Same.

2010-06-25  Vladimir Kargov  <kargov@gmail.com>

	* refined-regions.c (bb_index_compare): New.
	(get_bbs_in_region): New.
	(print_bbs_in_region): New.
	(print_refined_region): Add an argument that allows to print
	all basic blocks contained in regions.
	(debug_refined_region): Update call to print_refined_region.
	* refined-regions.h (print_refined_region): Update declaration.
	(get_bbs_in_region): Declared.
	* graphite-scop-detection.c (build_scops_new): Print the refined
	region tree into the Grahite dump file.

2010-06-24  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
	(rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.

2010-06-24  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
	rewrite_close_phi_out_of_ssa.

	* gcc.dg/graphite/id-22.c: New.

2010-06-24  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.

2010-06-24  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
	rename_map.
	* sese.c (debug_rename_map): Same.
	(get_rename): Same.
	(set_rename): Same.
	(rename_variables_in_stmt): Same.
	(expand_scalar_variables_call): Same.
	(expand_scalar_variables_ssa_name): Same.
	(expand_scalar_variables_expr): Same.
	(expand_scalar_variables_stmt): Same.
	(expand_scalar_variables): Same.
	(rename_variables): Same.
	(graphite_copy_stmts_from_block): Same.
	(copy_bb_and_scalar_dependences): Same.

2010-06-24  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (copy_renames): Removed.
	(translate_clast_for): Do not call copy_renames.
	(translate_clast_guard): Same.

2010-06-23  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
	(rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
	(rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
	before rewrite_cross_bb_scalar_deps.

2010-06-23  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
	Early return in when flag_associative_math is not set.

2010-06-23  Sebastian Pop  <sebastian.pop@amd.com>

	* gcc.dg/graphite/run-id-2.c: Call abort.

2010-06-23  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
	of SSA copies on edges except for loop->latch.

2010-06-23  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
	Split out of rewrite_reductions_out_of_ssa.
	* graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
	Declared.
	* graphite.c (graphite_transform_loops): Call it.

2010-06-23  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.

2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>

	* passes.c (init_optimization_passes): Add pass_graphite.
	Schedule a pass_copy_prop before pass_graphite_transforms.
	* timevar.def (TV_GRAPHITE): Declared.
	* tree-pass.h (pass_graphite): Declared.
	* tree-ssa-loop.c (pass_graphite): New.

	* gcc.dg/graphite/id-20.c: New.

2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
	Remove calls to rename_nb_iterations and rename_sese_parameters.
	* graphite-clast-to-gimple.h (gloog): Update declaration.
	* graphite.c (graphite_transform_loops): Update call to gloog.
	* sese.c (rename_variables_in_expr): Removed.
	(rename_nb_iterations): Removed.
	(rename_sese_parameters): Removed.
	* sese.h (rename_nb_iterations): Removed.
	(rename_sese_parameters): Removed.

2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (gloog): Remove call to
	sese_adjust_liveout_phis.
	* graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
	SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
	(rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
	rewrite_phi_out_of_ssa.
	* sese.c (get_vdef_before_sese): Removed.
	(sese_adjust_vphi): Removed.
	(sese_adjust_liveout_phis): Removed.
	* sese.h (sese_adjust_liveout_phis): Removed.

2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
	argument for the place after which to insert the out of SSA copy.
	(rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
	(rewrite_phi_out_of_ssa): Same.
	(rewrite_cross_bb_scalar_deps): Same.
	(insert_copyout): Removed.
	(insert_copyin): Removed.
	(translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
	insert_out_of_ssa_copy_on_edge instead of insert_copyout and
	insert_copyin.

2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
	(rewrite_reductions_out_of_ssa): Same.
	(rewrite_commutative_reductions_out_of_ssa): Same.
	(build_poly_scop): Do not call these functions.
	* graphite-sese-to-poly.h (build_poly_scop): Declared.
	(rewrite_reductions_out_of_ssa): Declared.
	(rewrite_commutative_reductions_out_of_ssa): Declared.
	* graphite.c (graphite_transform_loops): Call on every scop
	rewrite_commutative_reductions_out_of_ssa before calling
	rewrite_reductions_out_of_ssa and build_scop_bbs.

2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (dot_deps): Make system call to dotty run
	in background.
	(dot_deps_stmt): Same.
	* graphite-poly.c (dot_lst): Same.

2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
	old_type in parameter.
	(gcc_type_for_value): Update call to gcc_type_for_interval.
	(compute_type_for_level_1): Renamed compute_type_for_level.
	Update call to gcc_type_for_interval.

2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-scalar-evolution.c (instantiate_scev_name): Do not fail
	the scev analysis when the variable is not used outside the loop
	in a close phi node: call compute_overall_effect_of_inner_loop.

2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (single_pred_cond): Renamed
	single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
	(build_sese_conditions_before): Renamed call to single_pred_cond.
	(build_sese_conditions_after): Same.

2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.h: Fix comments and indentation.
	* graphite-sese-to-poly.c: Same.
	(build_sese_conditions_before): Compute stmt and gbb only when needed.
	* tree-chrec.c: Fix comments and indentation.
	(tree-ssa-loop-niter.c): Same.

2010-06-08  Tobias Grosser  <grosser@fim.uni-passau.de>

	* refined-regions.c (create_region): Only initialize the region.
	(find_regions_with_entry): Initialize parent relation and bbmap
	correctly.
	(build_regions_tree): Set outermost_region to region instead of
	topmost_region.
	(calculate_region_tree): Remove unneeded parameters.

2010-06-02  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-scop-detection.c (is_scop_p): New.
	(build_scops_new): New. A skeleton for the new scop detection.
	(build_scops_old): Renamed from build_scops.
	(build_scops): New version. Call the new and the old scop
	detection.

2010-05-27  Tobias Grosser  <grosser@fim.uni-passau.de>
	    Antoniu Pop  <antoniu.pop@gmail.com>

	* Makefile.in (OBJS-common): Add refined-regions.o.
	(refined-regions.o): New.
	(graphite-scop-detection.o): Use refined-regions.h.
	* graphite-scop-detection.c: Include refined-regions.h
	(build_scops): Also build the refined region tree.
	* refined-regions.c: New. Adds an algorithm to detect refined
	regions.
	(print_refined_region): New.
	(debug_refined_region): New.
	(refined_region_contains_bb_p): New.
	(refined_region_contains_region_p): New.
	(is_common_df): New.
	(struct find_regions_global_data): New.
	(is_region): New.
	(typedef struct bb_bb_def): New.
	(new_bb_bb_def): New.
	(bb_bb_map_hash): New.
	(eq_bb_bb_map): New.
	(find_new_bb): New.
	(bb_reg_def): New.
	(new_bb_reg_def): New.
	(bb_reg_map_hash): New.
	(eq_bb_reg_map): New.
	(find_new_region): New.
	(insert_new_reg): New.
	(insert_new_bb): New.
	(insert_shortcut): New.
	(get_next_postdom): New.
	(create_region): New.
	(find_regions_with_entry): New.
	(find_regions_adc): New.
	(find_regions): New.
	(get_topmost_parent): New.
	(build_regions_tree): New.
	(calculate_region_tree): New.
	(free_region_tree): New.
	* refined-regions.h: New.
	(struct refined_region): New.
	(calculate_region_tree): New.
	(free_region_tree): New.
	(refined_region_contains_bb_p): New.
	(refined_region_contains_region_p): New.
	(print_refined_region): New.
	(debug_refined_region): New.

2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
	size_one_node.

2010-05-07  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Fix
	type of integer_one_node for fold_build of POINTER_PLUS_EXPR.

2010-05-07  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
	phi_arg_in_outermost_loop.
	(remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
	(remove_invariant_phi): Same.

2010-04-12  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* graphite-blocking.c
	(pbb_strip_mine_profitable_p): Replace Value with mpz_t.
	* graphite-clast-to-gimple.c
	(clast_to_gcc_expression): Same.
	(precision_for_value): Same.
	(precision_for_interval): Same.
	(gcc_type_for_interval): Same.
	(graphite_create_new_guard): Same.
	(compute_bounds_for_level): Same.
	(graphite_create_new_loop_guard): Same.
	* graphite-interchange.c
	(build_linearized_memory_access): Same.
	(pdr_stride_in_loop): Same.
	(memory_strides_in_loop_1): Same.
	(memory_strides_in_loop): Same.
	(extend_scattering): Same.
	(psct_scattering_dim_for_loop_depth): Same.
	(pbb_number_of_iterations): Same.
	* graphite-poly.h
	(debug_iteration_domains): Same.
	* graphite-ppl.c
	(new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
	(ppl_set_inhomogeneous_gmp): Same.
	(ppl_strip_loop): Same.
	(ppl_lexico_compare_linear_expressions): Same.
	(ppl_read_polyhedron_matrix): Same.
	(ppl_max_for_le_pointset): Same.
	* graphite-ppl.h
	(ppl_read_polyhedron_matrix): Same.
	(tree_int_to_gmp): Same.
	(gmp_cst_to_tree): Same.
	(ppl_set_inhomogeneous): Same.
	(ppl_set_inhomogeneous_tree): Same.
	(ppl_set_coef): Same.
	(ppl_set_coef_tree): Same.
	* graphite-sese-to-poly.c
	(build_pbb_scattering_polyhedrons): Same.
	(build_scop_scattering): Same.
	(scan_tree_for_params_right_scev): Same.
	(scan_tree_for_params): Same.
	(find_params_in_bb): Same.
	(find_scop_parameters): Same.
	(add_upper_bounds_from_estimated_nit): Same.
	(build_loop_iteration_domains): Same.
	(add_condition_to_domain): Same.
	(pdr_add_memory_accesses): Same.

2010-04-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>

	* graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
	CLooG's value_* macros to their respective mpz_* counterparts.
	* graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
	(graphite_create_new_loop_guard): Same.
	* graphite-interchange.c (build_linearized_memory_access): Same.
	(pdr_stride_in_loop): Same.
	(memory_strides_in_loop_1): Same.
	(1st_interchange_profitable_p): Same.
	* graphite-poly.c (extend_scattering): Same.
	(psct_scattering_dim_for_loop_depth): Same.
	(pbb_number_of_iterations): Same.
	(pbb_number_of_iterations_at_time): Same.
	* graphite-poly.h (new_1st_loop): Same.
	* graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
	(oppose_constraint): Same.
	(insert_constraint_into_matrix): Same.
	(ppl_set_inhomogeneous_gmp): Same.
	(ppl_set_coef_gmp): Same.
	(ppl_strip_loop): Same.
	(ppl_lexico_compare_linear_expressions): Same.
	(ppl_max_for_le_pointset): Same.
	(ppl_min_for_le_pointset): Same.
	(ppl_build_realtion): Same.
	* graphite-ppl.h (gmp_cst_to_tree): Same.
	(ppl_set_inhomogeneous): Same.
	(ppl_set_inhomogeneous_tree): Same.
	(ppl_set_coef): Same.
	(ppl_set_coef_tree): Same.
	* graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
	(build_scop_scattering): Same.
	(add_value_to_dim): Same.
	(scan_tree_for_params_right_scev): Same.
	(scan_tree_for_params_int): Same.
	(scan_tree_for_params): Same.
	(find_params_in_bb): Same.
	(find_scop_parameters): Same.
	(add_upper_bounds_from_estimated_nit): Same.
	(build_loop_iteration_domains): Same.
	(create_linear_expr_from_tree): Same.
	(add_condition_to_domain): Same.
	(pdr_add_memory_accesses): Same.

2010-04-05  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/43519
	* graphite-clast-to-gimple.c (max_signed_precision_type): Use
	lang_hooks.types.type_for_size instead of build_nonstandard_integer_type.
	When converting an unsigned type to signed, double its precision.
	(gcc_type_for_interval): Use lang_hooks.types.type_for_size.
	(gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
	(graphite_create_new_loop_guard): When ub + 1 wraps around, use lb <= ub.

2010-04-05  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/43519
	* graphite-clast-to-gimple.c (max_signed_precision_type): Use
	build_nonstandard_integer_type.
	(gcc_type_for_interval): Same.

2010-04-05  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/43519
	* graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
	POINTER_PLUS_EXPR for pointer types.

	* gcc.dg/graphite/id-19.c: New.

2010-04-04  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/43519
	* Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
	* graphite-clast-to-gimple.c: Include langhooks.h.
	(max_signed_precision_type): New.
	(max_precision_type): Takes two types as arguments.
	(precision_for_value): New.
	(precision_for_interval): New.
	(gcc_type_for_interval): New.
	(gcc_type_for_value): New.
	(gcc_type_for_clast_term): New.
	(gcc_type_for_clast_red): New.
	(gcc_type_for_clast_bin): New.
	(gcc_type_for_clast_expr): Split up into several functions.
	(gcc_type_for_clast_eq): Rewritten.
	(compute_bounds_for_level): New.
	(compute_type_for_level_1): New.
	(compute_type_for_level): New.
	(gcc_type_for_cloog_iv): Removed.
	(gcc_type_for_iv_of_clast_loop): Rewritten.
	(graphite_create_new_loop): Compute the lower and upper bound types
	with gcc_type_for_clast_expr.
	(graphite_create_new_loop_guard): Same.
	(find_cloog_iv_in_expr): Removed.
	(compute_cloog_iv_types_1): Removed.
	(compute_cloog_iv_types): Removed.
	(gloog): Do not call compute_cloog_iv_types.
	* graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
	GBB_CLOOG_IV_TYPES.
	(free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
	* sese.h (struct gimple_bb): Removed field cloog_iv_types.
	(GBB_CLOOG_IV_TYPES): Removed.

	* gcc.dg/graphite/run-id-pr42644.c: Call abort.

2010-04-02  Sebastian Pop  <sebastian.pop@amd.com>

	Reverted this commit: as at this point the loop closed SSA form
	is under a canonical form respecting the single argument condition.
	* graphite-sese-to-poly.c (scalar_close_phi_node_p): Loop
	close phi nodes may have more than one argument.

2010-04-01  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
	gimple_phi_num_args of the loop close SSA phi node is equal to 1.
	(detect_commutative_reduction): Same.

2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (scalar_close_phi_node_p): Loop
	close phi nodes may have more than one argument.

2010-03-30  Richard Guenther  <rguenther@suse.de>
	    Zdenek Dvorak  <ook@ucw.cz>
	    Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/43464
	* tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
	with multiple arguments.
	(execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.

2010-03-23  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (print_pddr): Call print_pdr with an
	extra argument.
	* graphite-poly.c (debug_pdr): Add an extra argument for the
	verbosity level.
	(print_pdr): Same.
	(print_pbb_domain): Same.
	(print_pbb): Same.
	(print_scop_context): Same.
	(print_scop): Same.
	(print_cloog): Same.
	(debug_pbb_domain): Same.
	(debug_pbb): Same.
	(print_pdrs): Same.
	(debug_pdrs): Same.
	(debug_scop_context): Same.
	(debug_scop): Same.
	(debug_cloog): Same.
	(print_scop_params): Same.
	(debug_scop_params): Same.
	(print_iteration_domain): Same.
	(print_iteration_domains): Same.
	(debug_iteration_domain): Same.
	(debug_iteration_domains): Same.
	(print_scattering_function): Same.
	(print_scattering_functions): Same.
	(debug_scattering_function): Same.
	(debug_scattering_functions): Same.
	* graphite-poly.h (debug_pdr): Update declaration.
	(print_pdr): Same.
	(print_pbb_domain): Same.
	(print_pbb): Same.
	(print_scop_context): Same.
	(print_scop): Same.
	(print_cloog): Same.
	(debug_pbb_domain): Same.
	(debug_pbb): Same.
	(print_pdrs): Same.
	(debug_pdrs): Same.
	(debug_scop_context): Same.
	(debug_scop): Same.
	(debug_cloog): Same.
	(print_scop_params): Same.
	(debug_scop_params): Same.
	(print_iteration_domain): Same.
	(print_iteration_domains): Same.
	(debug_iteration_domain): Same.
	(debug_iteration_domains): Same.
	(print_scattering_function): Same.
	(print_scattering_functions): Same.
	(debug_scattering_function): Same.
	(debug_scattering_functions): Same.

2010-03-23  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (print_scattering_function_1): New.
	(print_scattering_function): Call it.
	(print_scop_params): Remove spaces at the end of lines.
	(print_cloog): New.
	(debug_cloog): New.
	* graphite-poly.h (print_cloog): Declared.
	(debug_cloog): Declared.

2010-03-23  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-ssa-copy.c: Revert this previous change:
	(init_copy_prop): Loop closed phi nodes cancontain more than one
	argument.
	(execute_copy_prop): Revert the previous change: do not call
	rewrite_into_loop_closed_ssa.

2010-03-21  Sebastian Pop  <sebastian.pop@amd.com>
	    Richard Guenther  <rguenther@suse.de>

	PR middle-end/43464
	* tree-ssa-copy.c (init_copy_prop): Loop closed phi nodes can
	contain more than one argument.
	(execute_copy_prop): Revert the previous change: do not call
	rewrite_into_loop_closed_ssa.

	* gcc.dg/graphite/id-pr43464.c: Remove compile warning.
	* gcc.dg/graphite/id-pr43464-1.c: New.

2010-03-21  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/43464
	* tree-ssa-copy.c (execute_copy_prop): Call rewrite_into_loop_closed_ssa
	and verify_loop_closed_ssa when copy prop is executed in the LNO.

	* gcc.dg/graphite/id-pr43464.c: New.

2010-03-16  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
	in loop->header.
	* tree-flow.h (canonicalize_loop_ivs): Updated declaration.
	* tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
	* tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
	to switch between adding the IV bump in loop->latch or in loop->header.

2010-03-16  Sebastian Pop  <sebastian.pop@amd.com>

	* passes.c (init_optimization_passes): Add pass_copy_prop
	after Graphite.

2010-03-16  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (print_scattering_function): Pretty print following
	the scoplib format.
	(print_pdr): Same.
	(print_pbb_domain): Same.
	(dump_gbb_cases): Same.
	(dump_gbb_conditions): Same.
	(print_pdrs): Same.
	(print_pbb): Same.
	(print_scop_params): Same.
	(print_scop_context): Same.
	(print_scop): Same.
	(print_pbb_body): New.
	(lst_indent_to): New.
	(print_lst): Start new lines with a #.
	* graphite-poly.h (pbb_bb): New.
	(pbb_index): Use pbb_bb.
	* graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
	disjuncts.
	* tree-data-ref.c (dump_data_reference): Start new lines with a #.

2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/43351
	* gcc.dg/graphite/id-pr43351.c

2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/43354
	* graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
	call insert_out_of_ssa_copy for default definitions.
	* gfortran.dg/graphite/id-pr43354.f: New.

2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/43349
	* gfortran.dg/graphite/pr43349.f: New.

2010-03-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (my_long_long): Defined.
	(gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
	* graphite-sese-to-poly.c (my_long_long): Defined.
	(scop_ivs_can_be_represented): Use it.

2010-03-10  Sebastian Pop  <sebastian.pop@amd.com>

	* doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
	graphite-max-bbs-per-function, and loop-block-tile-size.
	* params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
	with "maximum".
	(PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.

2010-03-10  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
	forward declaration.
	* graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
	(add_upper_bounds_from_estimated_nit): New.
	(build_loop_iteration_domains): Use it.

2010-03-09  Sebastian Pop  <sebastian.pop@amd.com>

	* doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.

2010-03-09  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/43306
	* tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
	should be an INTEGER_CST.  Also handle CASE_CONVERT.
	* gcc.dg/graphite/pr43306.c: New.

2010-03-09  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (graphite_initialize): To bound the number of bbs per
	function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
	* params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
	* doc/invoke.texi: Document it.

2010-03-09  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
	* graphite-sese-to-poly.h (build_poly_scop): Same.

2010-03-09  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (build_poly_scop): Limit scops following
	the number of parameters in the scop.  Use as an upper bound
	PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
	* params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
	* doc/invoke.texi: Document it.

2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (add_param_constraints): Use
	lower_bound_in_type and upper_bound_in_type.

2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (add_param_constraints): Use sizetype
	instead of unsigned_type_node.

2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
	    Reza Yazdani  <reza.yazdani@amd.com>

	PR middle-end/43065
	* graphite-sese-to-poly.c (add_param_constraints): Insert bounds
	on pointer type parameters.

	* gcc.dg/graphite/run-id-4.c: New.

2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/43065
	* gcc.dg/graphite/run-id-3.c: New.

2010-03-05  Tobias Grosser  <grosser@fim.uni-passau.de>
	    Ramakrishna Upadrasta <Ramakrishna.Upadrasta@inria.fr>

	* graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
	handle conversions from pointer to integers.
	(gcc_type_for_cloog_iv): Choose the smalles signed integer as an
	induction variable, to be able to work with code generated by CLooG.
	* graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
	(build_poly_scop): Bail out if we cannot codegen a loop.

2010-03-04  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-clast-to-gimple.c (translate_clast): Do not short-cut
	code generation with gloog_error.

2010-03-04  Sebastian Pop  <sebastian.pop@amd.com>

	* sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
	Call fold_convert on all the returned values.
	(expand_scalar_variables_expr): Pass to expand_scalar_variables_ssa_name
	the type of the resulting expression.

2010-03-04  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
	ppl_min_for_le_pointset.  Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
	* graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.

2010-03-04  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (map_into_dep_poly): Removed.
	(dependence_polyhedron_1): Use combine_context_id_scat.

2010-03-04  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.h (struct poly_scattering): Add layout documentation.
	(struct poly_bb): Same.
	(combine_context_id_scat): New.

2010-03-02  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/42326
	* sese.c (name_defined_in_loop_p): Return false for default
	definitions.

	* gcc.dg/graphite/pr42326.c: New.

2010-02-23  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
	and clean up the logic.

2010-02-23  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
	early return.

2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/43083
	* graphite-scop-detection.c (create_single_exit_edge): Move
	the call to find_single_exit_edge to....
	(create_sese_edges): ...here.  Don't handle multiple edges
	exiting the function.
	(build_graphite_scops): Don't handle multiple edges
	exiting the function.

	* gcc.dg/graphite/pr43083.c: New.

2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/43097
	* sese.c (get_rename): Assert that old_name is an SSA_NAME.
	(rename_variables_in_stmt): Continue when the use is not an SSA_NAME.

	* gfortran.dg/graphite/pr43097.f: New.

2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
	    Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR middle-end/43140
	* g++.dg/graphite/pr41305.C: Add -Wno-conversion-null.

2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/43026
	* sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.

	* g++.dg/graphite/pr43026.C: New.

2010-02-13  Tobias Grosser  <grosser@fim.uni-passau.de>

	* Merge from mainline (154736:156693).

2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/43012
	* gcc.dg/graphite/pr43012.c: New.

2010-02-10  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (graphite_transform_loops): Re-enable dbg_cnt.
2010-02-10  Sebastian Pop  <sebastian.pop@amd.com>

	* g++.dg/graphite/pr42930.C: New.

2010-02-10  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/42930
	* graphite-scop-detection.c (graphite_can_represent_scev): Call
	graphite_can_represent_init for MULT_EXPR.

2010-02-10  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/42914
	PR middle-end/42530
	* graphite-sese-to-poly.c (remove_phi): New.
	(translate_scalar_reduction_to_array): Call remove_phi.

	* gcc.dg/graphite/pr42530.c: New.
	* gcc.dg/graphite/pr42914.c: New.

2010-02-10  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/42771
	* graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
	* graphite-clast-to-gimple.h (gloog): Update declaration.
	* graphite-poly.c (new_scop): Clear POLY_SCOP_P.
	* graphite-poly.h (struct poly_bb): Add missing comments.
	(struct scop): Add poly_scop_p field.
	(POLY_SCOP_P): New.
	* graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
	* graphite.c (graphite_transform_loops): Build the polyhedral
	representation for each scop before code generation.
	* sese.c (rename_variables_in_operand): Removed.
	(rename_variables_in_expr): Return the renamed expression.
	(rename_sese_parameters): New.
	* sese.h (rename_sese_parameters): Declared.

	* gcc.dg/graphite/pr42771.c: New.

2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>

	* gcc.dg/graphite/block-0.c: Call abort for runtime test.  Always
	return 0 from main.
	* gcc.dg/graphite/block-1.c: Same.
	* gcc.dg/graphite/block-3.c: Same.
	* gcc.dg/graphite/block-4.c: Same.
	* gcc.dg/graphite/block-5.c: Same.
	* gcc.dg/graphite/block-6.c: Same.
	* gcc.dg/graphite/block-7.c: Same.
	* gcc.dg/graphite/interchange-0.c: Same.
	* gcc.dg/graphite/interchange-1.c: Same.
	* gcc.dg/graphite/interchange-10.c: Same.
	* gcc.dg/graphite/interchange-11.c: Same.
	* gcc.dg/graphite/interchange-12.c: Same.
	* gcc.dg/graphite/interchange-2.c: Same.
	* gcc.dg/graphite/interchange-3.c: Same.
	* gcc.dg/graphite/interchange-4.c: Same.
	* gcc.dg/graphite/interchange-5.c: Same.
	* gcc.dg/graphite/interchange-6.c: Same.
	* gcc.dg/graphite/interchange-7.c: Same.
	* gcc.dg/graphite/interchange-8.c: Same.
	* gcc.dg/graphite/interchange-9.c: Same.
	* gcc.dg/graphite/interchange-mvt.c: Same.

2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>

	* gfortran.dg/graphite/id-19.f: New.
	* gfortran.dg/graphite/pr14741.f90: New.
	* gfortran.dg/graphite/pr41924.f90: New.
	* gfortran.dg/graphite/run-id-2.f90: New.

2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/42988
	* graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
	to unknown_dependence.
	(graphite_legal_transform_dr): Handle the unknown_dependence.
	(graphite_carried_dependence_level_k): Same.

2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>

	* ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.

2010-02-05  Sebastian Pop  <sebastian.pop@amd.com>
	    Konrad Trifunovic  <konrad.trifunovic@inria.fr>

	PR middle-end/42637
	* graphite-dependences.c (build_lexicographical_constraint): Return
	a union of dependence polyhedra.
	(dependence_polyhedron_1): Adapt for build_lexicographical_constraint.

	* gcc.dg/graphite/block-0.c: Enable runtime check.  XFAILed.
	* gcc.dg/graphite/block-4.c: Same.
	* gcc.dg/graphite/block-7.c: Same.
	* gcc.dg/graphite/interchange-12.c: Same.
	* gcc.dg/graphite/interchange-mvt.c: Same.
	* gfortran.dg/graphite/interchange-1.f: XFAILed.
	* gfortran.dg/graphite/interchange-3.f90: XFAILed.
	* gfortran.dg/graphite/run-id-1.f: New testcase for PR42637.

2010-02-03  Sebastian Pop  <sebastian.pop@amd.com>

	* gcc.dg/graphite/interchange-12.c: Return 0 to avoid
	the execution check to FAIL.  This testcase is miscompiled by Graphite
	and the check should be re-enabled.
	* gcc.dg/graphite/interchange-mvt.c: Same.
	* gcc.dg/graphite/block-0.c: Same.
	* gcc.dg/graphite/block-4.c: Same.
	* gcc.dg/graphite/block-7.c: Same.

2010-02-03  Sebastian Pop  <sebastian.pop@amd.com>

	* gcc.dg/graphite/interchange-mvt.c: Un-XFAILed.
	* gcc.dg/graphite/scop-0.c: Fix spaces.
	* gfortran.dg/graphite/block-1.f90: Rewrite expected output.
	* gfortran.dg/graphite/block-2.f: Same.
	* gfortran.dg/graphite/block-3.f90: Same.
	* gfortran.dg/graphite/block-4.f90: Same.
	* gfortran.dg/graphite/interchange-1.f: Un-XFAILed.
	* gfortran.dg/graphite/interchange-3.f90: Un-XFAILed.

2010-02-03  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (new_poly_ddr): Initialize PDDR_KIND and
	PDDR_ORIGINAL_SCATTERING_P.
	(pddr_is_empty): Rewritten.
	(print_dependence_polyhedron_layout): New.
	(print_pddr): New.
	(debug_pddr): New.
	(build_alias_set_powerset): Moved up.
	(poly_drs_may_alias_p): Moved up.
	(lexicographically_gt_p): Removed.
	(build_lexicographically_gt_constraint): Renamed
	build_lexicographical_constraint, reimplemented.
	(dependence_polyhedron_1): Simplified parameters.
	(dependence_polyhedron): Same.  Keep along empty PDDRs
	to make efficient use of the cache.
	(reduction_dr_p): Compute the PBBs don't pass them as parameters.
	(graphite_legal_transform_dr): Rewritten.
	(graphite_legal_transform_bb): Pass fewer arguments to
	graphite_legal_transform_dr.
	(graphite_carried_dependence_level_k): Simplified implementation.
	(dot_original_deps_stmt_1): Call dependence_polyhedron.
	(dot_transformed_deps_stmt_1): Same.
	(dot_original_deps): Same.
	(dot_transformed_deps): Same.
	* graphite-dependences.h (struct poly_ddr): Added a new field
	original_scattering_p.
	(PDDR_ORIGINAL_SCATTERING_P): New.
	(print_pddr): Declared.
	(debug_pddr): Declared.
	* graphite-ppl.c: Clarify comment.
	* sese.h (print_gimple_bb): Removed unused declaration.
	(debug_gbb): Same.

2010-02-03  Sebastian Pop  <sebastian.pop@amd.com>

	* g++.dg/graphite/graphite.exp: Rewritten.
	* gcc.dg/graphite/graphite.exp: Rewritten.
	* gfortran.dg/graphite/graphite.exp: Rewritten.
	* gcc.dg/graphite/block-0.c: Added runtime test.
	* gcc.dg/graphite/block-1.c: Same.
	* gcc.dg/graphite/block-3.c: Same.
	* gcc.dg/graphite/block-4.c: Same.
	* gcc.dg/graphite/block-5.c: Same.
	* gcc.dg/graphite/block-6.c: Same.
	* gcc.dg/graphite/block-7.c: Same.
	* gcc.dg/graphite/interchange-0.c: Same.
	* gcc.dg/graphite/interchange-1.c: Same.
	* gcc.dg/graphite/interchange-10.c: Same.
	* gcc.dg/graphite/interchange-11.c: Same.
	* gcc.dg/graphite/interchange-12.c: Same.
	* gcc.dg/graphite/interchange-2.c: Same.
	* gcc.dg/graphite/interchange-3.c: Same.
	* gcc.dg/graphite/interchange-4.c: Same.
	* gcc.dg/graphite/interchange-5.c: Same.
	* gcc.dg/graphite/interchange-6.c: Same.
	* gcc.dg/graphite/interchange-7.c: Same.
	* gcc.dg/graphite/interchange-8.c: Same.
	* gcc.dg/graphite/interchange-9.c: Same.
	* gcc.dg/graphite/interchange-mvt.c: Same.
	* gcc.dg/graphite/run-id-2.c: Remove useless dg-do run.

2010-01-22  Ramakrishna Upadrasta <Ramakrishna.Upadrasta@inria.fr>

	* graphite-scop-detection.c (dot_all_scops): Make calls to dot run in
	  background.

2010-01-22  Ramakrishna Upadrasta <Ramakrishna.Upadrasta@inria.fr>

	* common.opt: Add -fgraphite-cloog-opts.
	* graphite-clast-to-gimple.c (set_cloog_options): Same.
	* opts.c (decode_options): Same.

2010-01-20  Sebastian Pop  <sebastian.pop@amd.com>

	* gcc.dg/graphite/id-17.c: New.
	* gcc.dg/graphite/pr41888.c: New.
	* gcc.dg/graphite/scop-22.c: New.
	* gfortran.dg/graphite/pr40982.f90: New.

2010-01-20  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c: Clarify comments.
	(build_pddr): Add an extra parameter direction.
	(graphite_legal_transform_dr): Use build_pddr.
	(dot_original_deps_stmt_1): Update use of build_pddr.
	(dot_transformed_deps_stmt_1): Same.
	(dot_original_deps): Same.
	(dot_transformed_deps): Same.

	* gcc.dg/graphite/interchange-12.c: New.
	* gcc.dg/graphite/block-7.c: New.

2010-01-20  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (pddr_original_scattering): Renamed build_pddr.
	(pddr_transformed_scattering): Removed.
	(graphite_legal_transform_dr): Use build_pddr.
	(dot_original_deps_stmt_1): Same.
	(dot_transformed_deps_stmt_1): Same.
	(dot_original_deps): Same.
	(dot_transformed_deps): Same.

2010-01-20  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (lexicographically_gt_p): Add comments.
	(build_lexicographically_gt_constraint): Same.
	(dependence_polyhedron_1): Same.
	(dependence_polyhedron): Same.

2010-01-20  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (build_pairwise_scheduling_equality): Removed.
	(build_pairwise_scheduling_inequality): Renamed build_pairwise_scheduling.
	(lexicographically_gt_p): Change type of direction to int.
	(build_lexicographically_gt_constraint): Same.
	(dependence_polyhedron_1): Same.
	(dependence_polyhedron): Same.
	(pddr_original_scattering): Use integers for direction.
	(pddr_transformed_scattering): Same.
	(graphite_legal_transform_dr): Same.
	(graphite_carried_dependence_level_k): Same.

2010-01-20  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (build_pairwise_constraint): Renamed
	ppl_build_relation.  Moved...
	(dr_equality_constraints): Use ppl_build_relation.
	(build_pairwise_scheduling_equality): Same.
	(build_pairwise_scheduling_inequality): Same.
	* graphite-ppl.c (ppl_build_relation): ...here.
	* graphite-ppl.h (ppl_build_relation): Declared.

2010-01-14  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/42681
	* graphite-clast-to-gimple.c (gloog_error): New static variable.
	(clast_to_gcc_expression): Do not build MULT_EXPR of POINTER_TYPE_P.
	Set gloog_error when such an expression failed to be built.
	(translate_clast): Early return when gloog_error is set.
	(gloog): Clear gloog_error.  When gloog_error is set, call
	set_ifsese_condition to enable the original code.  Return the status
	of the code generation based on gloog_error.
	* sese.c (set_ifsese_condition): New.
	* sese.h (set_ifsese_condition): Declared.

	* g++.dg/graphite/pr42681.C: New.

2010-01-14  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/42732
	* graphite-clast-to-gimple.c (gloog): Call scev_reset_htab and
	rename_nb_iterations.
	* sese.c (rename_variables_in_operand): New.
	(rename_variables_in_expr): New.
	(rename_nb_iterations): New.
	(sese_adjust_liveout_phis): Update the rename_map.
	* sese.h (rename_nb_iterations): Declared.
	* tree-scalar-evolution.c (scev_reset_htab): New.
	(scev_reset): Call scev_reset_htab.
	* tree-scalar-evolution.h (scev_reset_htab): Declared.

	* gfortran.dg/graphite/pr42732.f: New.

2010-01-08  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/42393
	* graphite-clast-to-gimple.c: Fix formatting.
	* sese.c (defined_in_loop_p): Renamed name_defined_in_loop_p.
	(expr_defined_in_loop_p): New.
	(add_loop_exit_phis): Also handle full expressions: remove from
	the rename_map the expressions defined in the loop that we're closing.

	* gfortran.dg/graphite/pr42393-1.f90: New.
	* gfortran.dg/graphite/pr42393.f90: Add new flags
	-fno-loop-block -fno-loop-interchange -fno-loop-strip-mine to also
	make this testcase useful in the Graphite branch.

2010-01-08  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-scop-detection.c (exclude_component_ref): Removed.
	(is_simple_operand): Removed.
	(stmt_simple_for_scop_p): Remove use of is_simple_operand.

2010-01-07  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/42221
	* sese.c (expand_scalar_variables_expr): Follow the SSA links into
	the array indexing of ADDR_EXPRs.

	* gcc.dg/graphite/pr42221.c: New.

2010-01-07  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/42521
	* graphite.c (graphite_finalize): Call scev_reset.
	(graphite_transform_loops): Do not call scev_reset between the code
	generation of scops.

	* gcc.dg/graphite/pr42521.c: New.

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.

2010-01-07  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-interchange.c (memory_strides_in_loop_depth): Renamed
	memory_strides_in_loop.  Gather memory strides on a whole loop.
	(pbb_interchange_profitable_p): Renamed lst_interchange_profitable_p.
	(lst_interchange_profitable_p): Removed.
	(lst_try_interchange_loops): Call lst_interchange_profitable_p.

2010-01-07  Sebastian Pop  <sebastian.pop@amd.com>

	Revert patch 2009-11-23  Tobias Grosser  <grosser@fim.uni-passau.de>
	* graphite-clast-to-gimple.c (try_mark_loop_parallel): New.
	(translate_clast_for, translate_clast_guard, translate_clast, gloog):
	Remove context_loop and level.

2010-01-07  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/42641
	* sese.c (rename_map_elt_info): Use the SSA name version, do
	not hash pointers.

2010-01-06  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-blocking.c (scop_do_block): Print "SCoP will be loop
	blocked" only when both the strip mine and the interchange have
	been applied.

	* gcc.dg/graphite/block-2.c: Removed.
	* gcc.dg/graphite/block-3.c: Add scan pattern.
	* gcc.dg/graphite/block-4.c: Same.
	* gcc.dg/graphite/block-5.c: Same.
	* gcc.dg/graphite/block-6.c: Same.

2010-01-06  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (save_clast_name_index): Free slot
	before allocating a new one.
	(copy_renames): Check that slot is not NULL.
	(mark_bb_with_pbb): Same.
	(compute_cloog_iv_types_1): Same.
	* graphite-interchange.c (lst_perfect_nestify): Free the before,
	nest, and after LSTs.
	(lst_try_interchange_loops): Same.

2010-01-05  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/42178
	* graphite-interchange.c (lst_try_interchange_loops): Do not return
	the before, nest, and after LSTs.
	(lst_try_interchange): Removed.
	(lst_interchange_select_inner): Do not iterate over the LSTs if they
	were modified.
	(lst_interchange_select_outer): Apply interchange on the outer loop
	until there are no more changes in the inner loops.

2009-12-18  Sebastian Pop  <sebastian.pop@amd.com>

	Revert patch fixing PR middle-end/42221.

2009-12-18  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/42180
	* graphite-sese-to-poly.c (follow_ssa_with_commutative_ops): Handle
	GIMPLE_CALL.

	* gfortran.dg/graphite/pr42180.f90: Add compile flags.

2009-12-18  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/42180
	* graphite-sese-to-poly.c (split_reduction_stmt): Do not split blocks
	that contain only one statement.

	* gfortran.dg/graphite/pr42180.f90: New.

2009-12-17  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/42393
	* gfortran.dg/graphite/pr42393.f90: New.

2009-12-17  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/42186
	* gfortran.dg/graphite/pr42186.f90: New.

2009-12-17  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/42205
	* graphite-sese-to-poly.c (translate_scalar_reduction_to_array_for_stmt):
	Insert the reduction copy in the same block as the phi node.
	(follow_ssa_with_commutative_ops): Handle GIMPLE_NOPs.

	* gcc.dg/graphite/pr42205-1.c: New.
	* gcc.dg/graphite/pr42205-2.c: New.

2009-12-17  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/42221
	* sese.c (expand_scalar_variables_expr): Follow the SSA links into
	the array indexing of ADDR_EXPRs.

	* gcc.dg/graphite/pr42221.c: New.

2009-12-17  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/42178
	PR middle-end/42334
	* graphite-interchange.c (lst_try_interchange): Do not modify OUTER
	index.  Call lst_interchange_select_inner only once.
	(lst_interchange_select_inner): Update use of lst_try_interchange.
	(lst_interchange_select_outer): Update.

2009-12-15  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/42178
	PR middle-end/42334
	* graphite-interchange.c (lst_try_interchange): Do not increment the
	the OUTER index when there is no AFTER kernel.  Do not increment the
	OUTER index for after processing the AFTER kernel.
	(lst_interchange_select_inner): Call lst_try_interchange only on loops.
	(lst_interchange_select_outer): Do not pass in a pointer to the OUTER
	index.  Do not pass to lst_interchange_select_inner the OUTER index.
	(scop_do_interchange): Update use of lst_interchange_select_outer.

	* gfortran.dg/graphite/graphite.exp
	(DEFAULT_FLAGS_GRAPHITE_IDENTITY): Remove -fdump-tree-graphite-all.
	* gfortran.dg/graphite/interchange-1.f: Add comment.  Clean
	the graphite dump file.
	* gfortran.dg/graphite/interchange-2.f: Same.
	* gfortran.dg/graphite/pr42334-1.f: New.

2009-12-15  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/42178
	PR middle-end/42334
	* graphite-interchange.c (lst_perfect_nestify): Reset to NULL the LSTs
	that are empty.
	(lst_do_interchange_1): Renamed lst_interchange_select_inner.
	(lst_try_interchange): Reimplemented.
	(lst_interchange_select_inner): Same.
	(lst_do_interchange): Renamed lst_interchange_select_outer.
	Reimplemented.
	(scop_do_interchange): Update use of lst_interchange_select_outer.

	* g++.dg/graphite/pr42130.C: Add -fgraphite-identity.
	* gcc.dg/graphite/block-0.c: Un-XFAILed.
	* gcc.dg/graphite/pr42211.c: New.
	* gfortran.dg/graphite/pr42334.f90: New.

2009-12-14  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/42181
	* graphite-scop-detection.c (graphite_can_represent_scev): Handle more
	carefully PLUS_EXPR, MINUS_EXPR, and MULT_EXPR.

	* gfortran.dg/graphite/pr42181.f90: New.

2009-12-12  Sebastian Pop  <sebpop@gmail.com>

	PR middle-end/42284
	* graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Call
	insert_out_of_ssa_copy_on_edge for anything else than SSA_NAMEs.
	(detect_commutative_reduction_arg): Simplified.
	(detect_commutative_reduction): Early return when the argument of
	the close phi is not of an SSA_NAME.

	* gcc.dg/graphite/pr42284.c: New.

2009-12-11  Alexander Monakov  <amonakov@ispras.ru>

	* dbgcnt.def (graphite_scop): New counter.
	* graphite.c: Include dbgcnt.h
	(graphite_transform_loops): Use new counter to limit transformations.

2009-12-08  Sebastian Pop  <sebpop@gmail.com>

	PR middle-end/42285
	* graphite-scop-detection.c (graphite_can_represent_init): Also
	handle more complex MULT_EXPRs containing parameters by recursion
	on the structure.

	* gfortran.dg/graphite/pr42285.f90: New.

2009-12-01  Tobias Grosser  <grosser@fim.uni-passau.de>

	* g++.dg/graphite/pr42130.C: Fix type.

2009-11-29  Alexander Monakov <amonakov@gcc.gnu.org>

	* g++.dg/graphite/pr42130.C: Correct testcase.

2009-11-28 Tobias Grosser  <grosser@fim.uni-passau.de>

	* Merge from mainline (154493:154734).

2009-11-28 Tobias Grosser  <grosser@fim.uni-passau.de>

	* Merge from mainline (151362:154491).

2009-11-24  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-clast-to-gimple.c (try_mark_loop_parallel,
	graphite_create_new_loop_guard, translate_clast_for): Fix comments.

2009-11-23  Tobias Grosser  <grosser@fim.uni-passau.de>

	PR middle-end/42130
	* graphite-clast-to-gimple.c (graphite_create_new_loop_guard,
	translate_clast_for_loop): New.
	(translate_clast_for): Add a condition around the loop, to do not
	execute loops with zero iterations.
	* g++.dg/graphite/pr42130.C: New.
	* gcc.dg/graphite/pr35356-2.c: Adapt.

2009-11-23  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-clast-to-gimple.c (try_mark_loop_parallel): New.
	(translate_clast_for, translate_clast_guard, translate_clast, gloog):
	Remove context_loop and level.

2009-11-23  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-clast-to-gimple.c (translate_clast_user,
	translate_clast_for, translate_clast_guard): Simplify and move common
	elements to translate_clast().
	(translate_clast): Simplify and get common elements.

2009-11-23  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-clast-to-gimple.c (translate_clast_user,
	translate_clast_for, translate_clast_guard): Split out of
	translate_clast.

2009-11-21  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-clast-to-gimple.c (clast_name_index, new_clast_name_index,
	clast_name_to_index, save_clast_name_index, debug_clast_name_index,
	debug_clast_name_indexes_1, debug_clast_name_indexes,
	clast_name_index_elt_info, eq_clast_name_indexes): Moved from sese.h.
	(clast_name_to_gcc, clast_to_gcc_expression,
	clast_to_gcc_expression_red, gcc_type_for_clast_expr,
	gcc_type_for_clast_eq, graphite_translate_clast_equation,
	graphite_create_guard_cond_expr, graphite_create_new_loop,
	translate_clast): Add params_index.
	(initialize_cloog_names): Create parameter strings from scratch, do
	not reference other strings.
	(create_params_index): New.
	(gloog): Initialize params_index.
	* graphite-scop-detection (free_scops_1): Removed.
	(limit_scops): Use normal free_scops.
	* graphite-sese-to-poly.c (save_var_names): Removed.
	(parameter_index_in_region): Do not initialize SESE_PARAM_NAMES
	and SESE_PARAMS_INDEX.
	* sese.c (new_sese, free_sese): Dito.
	* sese.h (struct sese): Remove params_index, params_names.
	(SESE_PARAMS_INDEX, SESE_PARAMS_NAMES): Removed.

2009-11-20  Sebastian Pop  <sebastian.pop@amd.com>

	Revert the following patch from 2009-09-14:
	* graphite-blocking.c: Fix order of includes: tree-chrec.h, then
	tree-scalar-evolution.h, and then tree-data-ref.h.
	* graphite-clast-to-gimple.c: Same.
	* graphite-dependences.c: Same.
	* graphite-interchange.c: Same.
	* graphite-poly.c: Same.
	* graphite-scop-detection.c: Same.
	* graphite-sese-to-poly.c: Same.
	* graphite.c: Same.
	* lambda-code.c: Same.
	* matrix-reorg.c: Same.
	* tree-data-ref.c: Same.
	* tree-if-conv.c: Same.
	* tree-loop-distribu: Same.: Same.
	* tree-loop-linear.c: Same.
	* tree-parloops.c: Same.
	* tree-predcom.c: Same.
	* tree-vect-patterns.c: Same.

2009-11-20  Sebastian Pop  <sebastian.pop@amd.com>

	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  <sebastian.pop@amd.com>

	PR middle-end/40281
	* 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  <sebastian.pop@amd.com>

	PR middle-end/42050
	* gfortran.dg/graphite/pr42050.f90: New.

2009-11-18  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-interchange.c (memory_strides_in_loop_depth): New.
	(pbb_interchange_profitable_p): Call memory_strides_in_loop_depth.

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.

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.

2009-11-18  Sebastian Pop  <sebastian.pop@amd.com>

	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  <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.

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.

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.

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.

2009-10-30  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-ssa-loop-niter.c (finite_loop_p): Do not call twice
	get_loop_exit_edges.

2009-10-30  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (pbb_remove_duplicate_pdrs): Free collapsed.

2009-10-28  Konrad Trifunovic  <konrad.trifunovic@gmail.com>

	* 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  <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.

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.

2009-10-26  Li Feng  <nemokingdom@gmail.com>

	* 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  <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.

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.

2009-10-22  Sebastian Pop  <sebastian.pop@amd.com>

	* g++.dg/graphite/id-1.C: New.

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.

2009-10-22  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (build_scop_drs): Disable call to
	dump_alias_graphs.

2009-10-22  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (dump_alias_graphs): New.
	(build_scop_drs): Call dump_alias_graphs.

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.

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.

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.

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.

2009-10-20  Li Feng  <nemokingdom@gmail.com>

	* 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  <sebastian.pop@amd.com>

	* sese.c (get_vdef_before_sese): Handle GIMPLE_ASSIGN and GIMPLE_CALL.

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.

2009-10-20  Sebastian Pop  <sebastian.pop@amd.com>

	* g++.dg/graphite/pr41305.C: New.

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.

2009-10-17  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-interchange.c (memory_stride_in_loop): Delete p1, lma
	and new_cstr.

2009-10-17  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (dependence_polyhedron_1): Remove
	unused gdim dimensions from the DDR polyhedron.

2009-10-17  Sebastian Pop  <sebastian.pop@amd.com>

	* 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  <sebastian.pop@amd.com>

	* 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  <sebastian.pop@amd.com>

	* gfortran.dg/graphite/interchange-3.f90: New.

2009-10-17  Sebastian Pop  <sebastian.pop@amd.com>

	* gcc.dg/graphite/interchange-1.c: Un-XFAILed.

2009-10-17  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (dependence_polyhedron_1): Add the
	context to the dependence polyhedron.

2009-10-17  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (pbb_remove_duplicate_pdrs): Initialize
	PBB_PDR_DUPLICATES_REMOVED.
	(new_poly_bb): Same.

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.

2009-10-17  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-ppl.c (ppl_min_for_le_polyhedron): New.
	* graphite-ppl.h (graphite-ppl.h): Declared.

2009-10-17  Sebastian Pop  <sebastian.pop@amd.com>

	* 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  <sebastian.pop@amd.com>

	* graphite-interchange.c: Fix comments.
	* gcc.dg/graphite/block-1.c: Fix comments.

2009-10-16  Sebastian Pop  <sebastian.pop@amd.com>

	* gcc.dg/graphite/interchange-7.c: Un-XFAILed.
	* gcc.dg/graphite/interchange-9.c: Un-XFAILed.

2009-10-16  Sebastian Pop  <sebastian.pop@amd.com>

	Reapply the patch from Alexander Monakov that disappeared during
	the last merges from trunk.

	2009-09-16  Alexander Monakov  <amonakov@ispras.ru>

	* 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  <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.

2009-10-15  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-interchange.c (memory_stride_in_loop): Fix comments.

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.

2009-10-15  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (print_scop): Fix pretty printing of a SCoP.

2009-10-15  Sebastian Pop  <sebastian.pop@amd.com>

	* doc/passes.texi: Document the Graphite infrastructure.

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.

2009-10-15  Sebastian Pop  <sebastian.pop@amd.com>

	* gcc.dg/graphite/pr40157.c: Use -floop-block as reported in the PR.

2009-10-14  Sebastian Pop  <sebastian.pop@amd.com>

	* gcc.dg/graphite/interchange-11.c: New.

2009-10-14  Sebastian Pop  <sebastian.pop@amd.com>

	* gcc.dg/graphite/interchange-8.c: Enable loop interchange.

2009-10-14  Sebastian Pop  <sebastian.pop@amd.com>

	* 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  <sebastian.pop@amd.com>

	* 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  <sebastian.pop@amd.com>

	* graphite-poly.c (pbb_number_of_iterations_at_time): Cleanup comments.

2009-10-14  Konrad Trifunovic  <konrad.trifunovic@gmail.com>
	    Sebastian Pop  <sebastian.pop@amd.com>

	* 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  <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.

2009-10-14  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (loop_to_lst): Fix LST creation.

2009-10-14  Tobias Grosser  <grosser@fim.uni-passau.de>

	* 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  <grosser@fim.uni-passau.de>

	* gcc.dg/graphite/run-id-1.c: Use smaller matrix to not
	SEGFAULT on 32bit.

2009-10-14  Ramakrishna Upadrasta <Ramakrishna.Upadrasta@inria.fr>

	* 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  <sebastian.pop@amd.com>

	* gfortran.dg/graphite/interchange-1.f: XFail.

2009-10-13  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (graphite_initialize): Do not handle functions with
	more than 100 basic blocks.

2009-10-13  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-blocking.c (pbb_do_strip_mine): Use
	PARAM_LOOP_BLOCK_TILE_SIZE.

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.

2009-10-13  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (dot_deps_stmt_1): New.
	(dot_deps_stmt): New.
	* graphite-dependences.h (dot_deps_stmt): Declared.

2009-10-09  Sebastian Pop  <sebastian.pop@amd.com>

	* 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  <sebastian.pop@amd.com>

	* graphite-poly.c (apply_poly_transforms): Implement the high
	level driver for flag_loop_block.
	* opts.c (decode_options): Enable flag_loop_block at -O2.
	* 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  <sebastian.pop@amd.com>

	* graphite-poly.h (lst_find_pbb): New.
	(find_lst_loop): New.

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.

2009-10-09  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.h (copy_lst): Do full copy of LST.

2009-10-07  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (reduction_phi_p): Call remove_invariant_phi
	when the loop stride is zero.

	* gcc.dg/graphite/id-16.c: New.

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.

2009-10-06  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-interchange.c (lst_apply_interchange): New.
	(lst_interchange_profitable_p): New.
	(lst_try_interchange_loops): New.
	(lst_try_interchange): New.
	(lst_do_interchange): New.
	(pbb_do_interchange): Removed.
	(scop_do_interchange): Call lst_do_interchange.

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.

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.

2009-10-05  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (insert_out_of_ssa_copy): Remove
	buggy assert.

2009-10-05  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (scev_analyzable_p): New.
	(rewrite_cross_bb_scalar_dependence): New.
	(rewrite_cross_bb_scalar_deps): New.
	(rewrite_reductions_out_of_ssa): Use bb_in_sese_p.
	Call rewrite_cross_bb_scalar_deps.

2009-10-05  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (gsi_for_ssa_name_def): Removed.
	(insert_out_of_ssa_copy): Directly use gsi_after_labels and
	gsi_for_stmt.

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.

2009-09-27  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-scop-detection.c (limit_scops): Do not build poly_bbs.

2009-09-27  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (partition_drs_to_sets): Drs is not modified,
	so don't pass a pointer to it.
	(build_alias_set_for_drs): Same.
	(build_base_obj_set_for_drs): Same.
	(build_scop_drs): Same.

2009-09-26  Li Feng  <nemokingdom@gmail.com>

	* graphite-sese-to-poly.c (build_scop_drs): Disable writing to file
	the alias graph of data references.

2009-09-25  Li Feng  <nemokingdom@gmail.com>

	* graphite-sese-to-poly.c (write_alias_graph_to_ascii_dimacs): New.
	(build_scop_drs): When debugging, write the alias graph to file,
	otherwise, should be disabled.

2009-09-17  Sebastian Pop  <sebastian.pop@amd.com>

	* Merge from mainline (151310:151361).

2009-09-17  Sebastian Pop  <sebastian.pop@amd.com>

	* Merge from mainline (151171:151310).

2009-09-17  Sebastian Pop  <sebastian.pop@amd.com>

	* Merge from mainline (151171:151806).

2009-09-17  Sebastian Pop  <sebastian.pop@amd.com>

	* Revert the last commit.

2009-09-17  Sebastian Pop  <sebastian.pop@amd.com>

	* Merge from mainline (151171:151819).

2009-09-17  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-scop-detection.c (stmt_simple_memref_p): Removed.
	(is_simple_operand): Remove call to stmt_simple_memref_p.
	(stmt_simple_for_scop_p): Update call to is_simple_operand.

2009-09-17  David Edelsohn  <edelsohn@gnu.org>

	* gcc.dg/graphite/interchange-mvt.c: New File.
	* gcc.dg/graphite/scop-dsyrk.c: New File.
	* gcc.dg/graphite/scop-dsyr2k.c: New File.
	* gcc.dg/graphite/scop-mvt.c: New File.
	* gcc.dg/graphite/scop-sor.c: New File.

2009-09-17 Li Feng  <nemokingdom@gmail.com>

	* 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.

2009-09-16  Alexander Monakov  <amonakov@ispras.ru>

	* 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-09-14  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (struct irp_data): Removed.
	(idx_record_params): Removed.
	(find_params_in_bb): Scan for parameters the access functions; don't
	parse the tree representation.

2009-09-14  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-ssa-loop.c (gate_graphite_transforms): Disable Graphite
	passes at -O1 and below.

2009-09-14  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-blocking.c: Fix order of includes: tree-chrec.h, then
	tree-scalar-evolution.h, and then tree-data-ref.h.
	* graphite-clast-to-gimple.c: Same.
	* graphite-dependences.c: Same.
	* graphite-interchange.c: Same.
	* graphite-poly.c: Same.
	* graphite-scop-detection.c: Same.
	* graphite-sese-to-poly.c: Same.
	* graphite.c: Same.
	* lambda-code.c: Same.
	* matrix-reorg.c: Same.
	* tree-data-ref.c: Same.
	* tree-if-conv.c: Same.
	* tree-loop-distribu: Same.: Same.
	* tree-loop-linear.c: Same.
	* tree-parloops.c: Same.
	* tree-predcom.c: Same.
	* tree-vect-patterns.c: Same.

2009-09-02  Sebastian Pop  <sebastian.pop@amd.com>

	Partially revert the previous patch, except the following.
	* tree-scalar-evolution.c (instantiate_scev_not): Adapted to pass
	as parameters the operands of the not expression.

2009-09-01  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-scalar-evolution.c (instantiate_scev_assign): New.
	Do not call analyze_scalar_evolution on assignments.
	(instantiate_scev_phi): Call analyze_scalar_evolution.
	(instantiate_scev_name): Call instantiate_scev_assign and
	instantiate_scev_phi.
	(instantiate_scev_not): Adapted to pass as parameters the operands
	of the not expression.

2009-09-01  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-scalar-evolution.c (instantiate_scev_binary): Adapted
	to pass as parameters the operands of the binary expression.

2009-09-01  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-scalar-evolution.c (instantiate_scev_bitnot): Renamed
	instantiate_scev_not.  Handle NEGATE_EXPR.
	(instantiate_scev_r): Handle NEGATE_EXPR.

2009-09-01  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-scalar-evolution.c (instantiate_scev_1): Renamed
	instantiate_scev_r.
	(instantiate_scev_r): Move code in instantiate_scev_2
	and instantiate_scev_1.

2009-09-01  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-scalar-evolution.c (instantiate_scev_3): New.
	(instantiate_scev_1): Move code in instantiate_scev_3.

2009-09-01  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-scalar-evolution.c (instantiate_scev_poly): New.
	(instantiate_scev_1): Move code in instantiate_scev_poly.

2009-09-01  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-scalar-evolution.c (instantiate_scev_bitnot): New.
	(instantiate_scev_1): Move code in instantiate_scev_bitnot.

2009-09-01  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-scalar-evolution.c (instantiate_scev_convert): New.
	(instantiate_scev_1): Move code in instantiate_scev_convert.

2009-09-01  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-scalar-evolution.c (instantiate_scev_binary): New.
	(instantiate_scev_1): Move code in instantiate_scev_binary.

2009-09-01  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-scalar-evolution.c (instantiate_scev_name): New.
	(instantiate_scev_1): Move code in instantiate_scev_name.

2009-08-28  Sebastian Pop  <sebastian.pop@amd.com>

	* Merge from mainline (150992:151171).

2009-08-25  Sebastian Pop  <sebastian.pop@amd.com>

	* opts.c (decode_options): Enable flag_loop_interchange at -O2.

2009-08-25  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.

2009-08-25  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.

2009-08-25  Sebastian Pop  <sebastian.pop@amd.com>

	Revert one of the previous commits:
	* graphite-dependences.c (graphite_legal_transform_bb): Avoid
	the computation of symmetric data dependence relations.
	(dependency_between_pbbs_p): Same.

2009-08-25  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/40965
	* graphite-poly.c (apply_poly_transforms): Remove legality test before
	any transform.

2009-08-25  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.

2009-08-25  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.

2009-08-25  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.

2009-08-25  Konrad Trifunovic  <konrad.trifunovic@gmail.com>

	* graphite-ppl.c (ppl_max_for_le): Renamed ppl_max_for_le_pointset.
	* graphite-ppl.h (ppl_max_for_le): Renamed ppl_max_for_le_pointset.
	* graphite-poly.c (pbb_number_of_iterations): Rename ppl_max_for_le.
	* graphite-interchange.c (build_linearized_memory_access): Same.
	(memory_stride_in_loop): Same.

2009-08-25  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.

2009-08-22  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (graphite_carried_dependence_level_k): Do
	not delete the original dependence relation.

2009-08-21  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (graphite_legal_transform_bb): Avoid
	the computation of symmetric data dependence relations.
	(dependency_between_pbbs_p): Same.

2009-08-21  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.

2009-08-21  Sebastian Pop  <sebastian.pop@amd.com>

	* Merge from mainline (150764:150992).

2009-08-18  Sebastian Pop  <sebastian.pop@amd.com>

	* cfgloopmanip.c (create_empty_loop_on_edge): Generate upper
	bounds with LT_EXPR to make niter analysis more precise on code
	generated by Graphite.

2009-08-18  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (graphite_legal_transform_dr): Fix formatting.
	(graphite_legal_transform_bb): Same.
	(poly_drs_may_alias_p): Same.

2009-08-15  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/40981
	* graphite-ppl.c (ppl_max_for_le): Correct the use of
	ppl_Pointset_Powerset_C_Polyhedron_maximize.

2009-08-13  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (print_pbb): Print PBB index.

2009-08-13  Sebastian Pop  <sebastian.pop@amd.com>

	* Merge from mainline (r150672:150764).

2009-08-13  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-interchange.c (ppl_max_for_le): Moved...
	* graphite-poly.c (pbb_number_of_iterations): Call ppl_max_for_le.
	* graphite-ppl.c (ppl_max_for_le): ... here.
	* graphite-ppl.h (ppl_max_for_le): Declared.

2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>

	* Merge from mainline (r150372:150672).

2009-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/40980
	* sese.c (convert_for_phi_arg): New.
	(add_guard_exit_phis): Use convert_for_phi_arg.

	* gfortran.dg/graphite/id-17.f: New.

2009-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (pdr_add_data_dimensions): Dont add
	unknown subscript upper bounds.

	* gcc.dg/graphite/interchange-6.c: Un-XFAIL.

2009-08-11  Sebastian Pop  <sebastian.pop@amd.com>
	    Pranav Garg  <pranav.garg2107@gmail.com>

	* graphite-interchange.c (gather_access_strides): Removed.
	(ppl_max_for_le): New.
	(build_linearized_memory_access): New.
	(memory_stride_in_loop): New.
	(pbb_interchange_profitable_p): Reimplemented.
	* graphite-ppl.h (ppl_new_id_map): New.
	(ppl_interchange): New.

	* gcc.dg/graphite/interchange-6.c: XFAILed.

2009-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-interchange.c (compute_subscript): Removed.
	(compute_array_size_cstr): Removed.
	(compute_array_size_poly): Removed.
	(compute_array_size): Removed.
	(gather_access_strides_poly): Removed.
	(gather_access_strides): Empty.

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.

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.

2009-08-11  Sebastian Pop  <sebastian.pop@amd.com>

	* gcc.dg/graphite/interchange-9.c: New.

2009-08-05  Konrad Trifunovic  <konrad.trifunovic@gmail.com>
	    Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (graphite_legal_transform_dr): Work on a
	copy of the dependence polyhedron.  Free the temporary objects.
	(graphite_carried_dependence_level_k): Free unused objects before
	returning.

	* gcc.dg/graphite/interchange-1.c: XFAILed.
	* gcc.dg/graphite/interchange-2.c: XFAILed.
	* gcc.dg/graphite/interchange-3.c: XFAILed.
	* gcc.dg/graphite/interchange-4.c: XFAILed.
	* gcc.dg/graphite/interchange-7.c: XFAILed.

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.

2009-08-05  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (print_pbb): Add parentheses in the pretty print.
	(print_scop): Same.

2009-08-05  Sebastian Pop  <sebastian.pop@amd.com>

	* Makefile.in (graphite.o): Depends on PREDICT_H.
	* graphite.c: Include predict.h.
	(graphite_finalize): Call tree_estimate_probability.
	* predict.c (predict_loops): Do not call scev_initialize and
	scev_finalize.
	(tree_estimate_probability_bb): New.
	(tree_estimate_probability): Do not initialize loops: move that
	code to the driver.  Call tree_estimate_probability_bb.
	(tree_estimate_probability_driver): New.
	(pass_profile): Use tree_estimate_probability_driver.
	* predict.h (tree_estimate_probability): Declared.

2009-08-05  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (gloog): Add time to TV_GRAPHITE_CODE_GEN.
	* graphite-dependences.c (graphite_legal_transform): Add time to
	TV_GRAPHITE_DATA_DEPS.
	(dependency_between_pbbs_p): Same.
	* timevar.def (TV_GRAPHITE_DATA_DEPS, TV_GRAPHITE_CODE_GEN): New.

2009-08-03  Sebastian Pop  <sebastian.pop@amd.com>

	* Merge from mainline (r149952:150372).

2009-07-28  Sebastian Pop  <sebastian.pop@amd.com>

	* ChangeLog.graphite: Fix indenting, white spaces and 80 columns.
	* graphite-blocking.c: Same.
	* graphite-clast-to-gimple.c: Same.
	* graphite-dependences.c: Same.
	* graphite-poly.c: Same.
	* graphite-poly.h: Same.
	* graphite-ppl.c: Same.
	* graphite-scop-detection.c: Same.
	* graphite-sese-to-poly.c: Same.
	* graphite.c: Same.

2009-07-28  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (loop_entry_phi_arg): New.
	(remove_simple_copy_phi): New.
	(remove_invariant_phi): New.
	(simple_copy_phi_p): New.
	(reduction_phi_p): New.
	(gsi_for_ssa_name_def): New.
	(insert_out_of_ssa_copy): New.
	(insert_out_of_ssa_copy_on_edge): New.
	(create_zero_dim_array): New.
	(scalar_close_phi_node_p): New.
	(rewrite_close_phi_out_of_ssa): New.
	(rewrite_phi_out_of_ssa): New.
	(rewrite_reductions_out_of_ssa): New.
	(build_poly_scop): Call rewrite_reductions_out_of_ssa.

	* gcc.dg/graphite/id-11.c: New.
	* gcc.dg/graphite/id-15.c: New.
	* gcc.dg/graphite/interchange-1.c: Un-XFAIL.
	* gcc.dg/graphite/interchange-2.c: Un-XFAIL.
	* gcc.dg/graphite/interchange-3.c: Un-XFAIL.
	* gcc.dg/graphite/interchange-4.c: Un-XFAIL.
	* gcc.dg/graphite/interchange-7.c: Un-XFAIL.
	* gcc.dg/graphite/scop-matmult.c: Un-XFAIL.
	* gfortran.dg/graphite/id-13.f: New.
	* gfortran.dg/graphite/id-5.f: New.

2009-07-28  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (graphite_loop_normal_form): Do not
	check that nb_reductions_in_loop is zero.
	* graphite-scop-detection.c (harmful_stmt_in_bb): Don't filter out
	reduction phi nodes.
	(nb_reductions_in_loop): Removed.
	(graphite_can_represent_loop): Do not call nb_reductions_in_loop.
	* graphite-sese-to-poly.c (phi_node_is_iv): Removed.
	(bb_contains_non_iv_scalar_phi_nodes): Removed.
	(scop_contains_non_iv_scalar_phi_nodes): Removed.
	(build_poly_scop): Do not call scop_contains_non_iv_scalar_phi_nodes.

2009-07-28  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (build_cloog_prog): Do not code generate
	statements that have an empty iteration domain.
	* gfortran.dg/graphite/id-16.f: New.

2009-07-28  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-scalar-evolution.c (instantiate_scev_1): Return
	chrec_dont_know when the result is not above instantiate_below.
	* graphite-scop-detection.c (scopdet_basic_block_info): Fix formatting.
	* graphite-sese-to-poly.c (create_linear_expr_from_tree): Assert that
	the tree has a known scalar evolution.
	* gfortran.dg/graphite/id-14.f: New.
	* gfortran.dg/graphite/id-15.f: New.

2009-07-28  Sebastian Pop  <sebastian.pop@amd.com>

	* sese.c (rename_variables_in_stmt): Pass in an extra parameter
	insert_gsi.
	(rename_variables): Keep inserting renames after the ones already
	inserted.

2009-07-28  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (compare_bb_depths): New.
	(graphite_sort_dominated_info): New.
	(build_scop_bbs_1): Call graphite_sort_dominated_info.
	(build_scop_scattering): Fix comment.

2009-07-28  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (graphite_finalize): Call print_loops instead of
	dump_function_to_file.
	* gcc.dg/graphite/graphite.exp: Fix formatting.
	* gcc.dg/graphite/pr35356-1.c: New.  Look for the number of
	loops generated in the graphite output file.
	* gcc.dg/graphite/pr35356-2.c: New.
	* gcc.dg/graphite/pr35356-3.c: New.  XFAILed for now.
	* gfortran.dg/graphite/id-12.f: New.

2009-07-24  Li Feng  <nemokingdom@gmail.com>

	* gcc.dg/graphite/graphite_autopar/force-parallel-8.c:
	Remove 2 XFAIL.

2009-07-24  Li Feng  <nemokingdom@gmail.com>
	    Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-sese-to-poly.c (pdr_add_alias_set): Use data reference's
	alias set number build alias in ACCESSES polyhedron.
	(build_alias_set_for_drs): New.
	(build_pbb_drs): Added build_alias_set_for_drs.
	* graphite-dependences.c (poly_drs_may_alias_p): New.
	(graphite_carried_dependence_level_k): Check alias information
	before building polyhedron.

2009-07-24  Tobias Grosser  <grosser@fim.uni-passau.de>

	* Makefile.in (lambda-code.o): Fix formatting.

2009-07-24  Tobias Grosser  <grosser@fim.uni-passau.de>

	* Merge from mainline (r149350-149952)

2009-07-18  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-poly.c (apply_poly_transforms): Move strip_mine
	before interchange to prepare for loop blocking.

2009-07-18  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-poly.c (apply_poly_transforms): Add checks after every
	transformation.
	* graphite-sese-to-poly.c (build_poly_scop): Remove check, as already
	done in apply_poly_transforms.

2009-07-17  Konrad Trifunovic  <konrad.trifunovic@gmail.com>

	* graphite-dependences.c (build_lexicographically_gt_constraint):
	Replace RES parameter with *RES.
	(dependence_polyhedron_1): Pass an address of the parameter RES
	instead of value of RES.

2009-07-16  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (graphite_finalize): Fix comment.
	(graphite_transform_loops): Reset scev info after code generation
	of each scop.

2009-07-16  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (graphite_finalize): Call scev_reset.

2009-07-16  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (compute_cloog_iv_types): Do not create
	GBB_CLOOG_IV_TYPES hash table twice.
	* graphite-sese-to-poly.c (free_gimple_bb): Call free_data_refs.
	(add_condition_to_domain): Clear GMP values.

2009-07-16  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c: Fix formatting.
	* graphite-poly.c (free_poly_dr): Also free PDR_DATA_CONTAINER.
	(pbb_number_of_iterations): Free ppl_Linear_Expression.
	* graphite-sese-to-poly.c: Fix formatting.
	* graphite.c (graphite_transform_loops): Create the hash table
	after the early return.

2009-07-16  Sebastian Pop  <sebastian.pop@amd.com>

	* gcc.dg/graphite/id-14.c: New.
	* gcc.dg/graphite/pr40157.c: New.
	* gfortran.dg/graphite/id-11.f: New.

2009-07-16  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (nb_pbbs_in_loops): New.
	(build_poly_scop): Return false when there are no pbbs within
	loops to avoid to pass to cloog scops with no loops.

2009-07-16  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Avoid
	useless test "i % 2".
	(build_pbb_scattering_polyhedrons): Fix formatting.
	(build_poly_dr): Same.
	* graphite.c (graphite_transform_loops): Restructure.

2009-07-14  Razya Ladelsky  <razya@il.ibm.com>

	* tree-ssa-loop-manip.c (rewrite_phi_with_iv): Remove
	reduction_list parameter.
	(rewrite_all_phi_nodes_with_iv): Same.
	(canonicalize_loop_ivs): Same.
	* tree-parloops.c (struct brli): Removed.
	(build_reduction_list_info): Removed.
	(build_new_reduction): New.
	(analyze_reduction_list): Removed.
	(gather_scalar_reductions): Find reductions instead of phi
	nodes that can't be canonicalized.
	(try_create_reduction_list): Remove reduction_list parameter.
	(gen_parallel_loop): Same.
	(parallelize_loops): Remove analyze_reductions variable,
	initialization and free.
	Change reduction_list htab initialization to reduction_info
	elements instead of ssa names.
	Call try_create_reduction_list and gen_parallel_loop without
	analyzed_reduction argument.
	* graphite-clast-to-gimple (graphite_loop_normal_form): Call
	canonicalize_loop_ivs with one less argument.
	* tree-flow.h (canonicalize_loop_ivs): Remove one argument.

2009-07-14  Konrad Trifunovic <konrad.trifunovic@gmail.com>

	* graphite-dependences.c (new_poly_dr_pair): New.
	(dependence_polyhedron): Renamed into dependence_polyhedron_1.
	(new_poly_dr_pair): New.
	(eq_poly_dr_pair_p): New.
	(hash_poly_dr_pair_p): New.
	* graphite-dependences.h (struct poly_dr_pair): New.
	(eq_poly_dr_pair_p): Declared.
	(hash_poly_dr_pair_p): Declared.
	* graphite-poly.c (new_scop): Initialize SCOP_ORIGINAL_PDR_PAIRS.
	(free_scop): Free SCOP_ORIGINAL_PDR_PAIRS.
	* graphite-poly.h (struct scop): Add original_pdr_pairs field.
	* Makefile.in (graphite-poly.o): Add dependence on
	graphite-dependences.h.

2009-07-14  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-scop-detection.c (graphite_can_represent_scev): Do not let
	polynomials of degree > 1 pass to Graphite.
	* tree-chrec.c (scev_is_linear_expression): Call
	evolution_function_is_affine_multivariate_p.
	* gfortran.dg/graphite/id-10.f90: New.

2009-07-14  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-scalar-evolution.c (compute_overall_effect_of_inner_loop):
	Instantiate scevs varying in outer loops.
	* gfortran.dg/graphite/id-9.f: Correct testcase.

2009-07-14  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (build_loop_iteration_domains): Do not insert
	redundant constraint.

2009-07-14  Sebastian Pop  <sebastian.pop@amd.com>

	* gcc.dg/graphite/graphite.exp: Fix comments.
	* gfortran.dg/graphite/graphite.exp: Trigger actions
	based on the file names as in the C testsuite.
	* gfortran.dg/graphite/block-1.f90: Fix patterns.
	* gfortran.dg/graphite/block-2.f: Same.
	* gfortran.dg/graphite/block-3.f90: Same.
	* gfortran.dg/graphite/block-4.f90: Same.
	* gfortran.dg/graphite/id-1.f90: Same.
	* gfortran.dg/graphite/id-2.f90: Same.
	* gfortran.dg/graphite/id-3.f90: Same.
	* gfortran.dg/graphite/id-4.f90: Same.
	* gfortran.dg/graphite/id-6.f: Same.
	* gfortran.dg/graphite/id-9.f: Same.
	* gfortran.dg/graphite/interchange-1.f: Same.
	* gfortran.dg/graphite/interchange-2.f: Same.
	* gfortran.dg/graphite/scop-1.f: Same.

2009-07-14  Sebastian Pop  <sebastian.pop@amd.com>

	* sese.c (expand_scalar_variables_call): New.
	(expand_scalar_variables_ssa_name): Handle calls in expander.

2009-07-13  Sebastian Pop  <sebastian.pop@amd.com>

	* gcc.dg/graphite/graphite_autopar/force-parallel-6.c:
	Expect to see the pattern twice.
	* gcc.dg/graphite/interchange-0.c: Un-XFAIL.
	* gcc.dg/graphite/interchange-5.c: Same.
	* gcc.dg/graphite/interchange-6.c: Same.

2009-07-13  Sebastian Pop  <sebastian.pop@amd.com>

	* gcc.dg/graphite/id-10.c: New.
	* gcc.dg/graphite/id-12.c: New.
	* gfortran.dg/graphite/id-7.f: New.
	* gfortran.dg/graphite/id-8.f: New.

2009-07-13  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (pdr_add_data_dimensions): Fix division by
	zero.

2009-07-13  Sebastian Pop  <sebastian.pop@amd.com>

	* sese.c (rename_variables_in_stmt): Call fold_convert during renaming.

2009-07-13  Sebastian Pop  <sebastian.pop@amd.com>

	* sese.c (expand_scalar_variables_stmt): Avoid unnecessary expansion.

2009-07-10  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (pdr_add_memory_accesses): Fix order of
	building PDR subscripts.

2009-07-10  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (pdr_add_data_dimensions): Fix the
	computation of array sizes.

2009-07-10  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (add_param_constraints): Disabled.

2009-07-10  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-dependences.c (map_into_dep_poly, map_dr_into_dep_poly,
	build_pairwise_constraint, dr_equality_constraints,
	build_pairwise_scheduling_equality,
	build_pairwise_scheduling_inequality, lexicographically_gt_p,
	build_lexicographically_gt_constraint, dependence_polyhedron,
	graphite_legal_transform_dr, graphite_carried_dependence_level_k):
	Move from NNC_Polyhedron to C_Polyhedron.
	* graphite-interchange.c (compute_array_size_poly,
	gather_access_strides): Dito.
	* graphite-poly.c (apply_poly_transforms, new_poly_dr, free_poly_bb,
	free_scop, pbb_number_of_iterations): Dito.
	* graphite-poly.h (struct poly_dr, pdr_nb_subscripts, struct poly_bb,
	pbb_dim_iter_domain, struct scop): Dito.
	* graphite-ppl.c (new_Constraint_System_from_Cloog_Matrix,
	new_Cloog_Domain_from_ppl_Polyhedron,
	new_Cloog_Domain_from_ppl_Pointset_Powerset, ppl_set_coef_gmp,
	ppl_insert_dimensions_pointset, ppl_insert_dimensions_pointset,
	ppl_strip_loop, ppl_strip_loop, ppl_print_polyhedron_matrix,
	ppl_print_powerset_matrix, debug_ppl_polyhedron_matrix,
	debug_ppl_powerset_matrix, ppl_read_polyhedron_matrix): Dito.
	* graphite-ppl.h (ppl_Pointset_Powerset_C_Polyhedron_t,
	new_C_Polyhedron_from_Cloog_Matrix, ppl_print_powerset_matrix,
	debug_ppl_powerset_matrix, ppl_insert_dimensions_pointset): Dito.
	* graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons,
	build_loop_iteration_domains, ppl_constraint_type_from_tree_code,
	add_condition_to_domain, add_condition_to_pbb, build_scop_context,
	build_scop_iteration_domain, build_poly_dr): Dito

2009-07-09  Sebastian Pop  <sebastian.pop@amd.com>

	* gcc.dg/graphite/graphite.exp: Added a rule to execute
	run-id-*.c files.
	* gcc.dg/graphite/run-id-1.c: New.

2009-07-09  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (build_loop_iteration_domains): Add the
	positivity constraint on the symbolic number of iterations.

2009-07-09  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (build_loop_iteration_domains): Rewrite.

2009-07-09  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-clast-to-gimple.c (build_scop_context): Removed.
	(build_cloog_prog): Directly use SCOP_CONTEXT.
	* graphite-poly.c (new_scop): Initialize SCOP_CONTEXT.
	(free_scop): Free SCOP_CONTEXT.
	(print_scop_context): New.
	(print_scop): Call print_scop_context.
	(debug_scop_context): New.
	* graphite-poly.h (print_scop_context, debug_scop_context): Declared.
	(struct scop): Added field context.
	(SCOP_CONTEXT): New.
	* graphite-sese-to-poly.c (add_param_constraints): New.
	(build_scop_context): New.
	(build_poly_scop): Call build_scop_context.

2009-07-09  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (gmp_cst_to_tree): Moved...
	* graphite-ppl.c (ppl_set_inhomogeneous_gmp, ppl_set_coef_gmp): New.
	(ppl_set_inhomogeneous, ppl_set_coef): Moved...
	* graphite-ppl.h: Include double-int.h and tree.h.
	(ppl_set_inhomogeneous_gmp, ppl_set_coef_gmp): Declared.
	(ppl_set_inhomogeneous, ppl_set_coef): ...here.
	(gmp_cst_to_tree): ...here.  Reimplemented using mpz_get_double_int.
	(tree_int_to_gmp, ppl_set_inhomogeneous_tree, ppl_set_coef_tree): New.

2009-07-09  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (clast_to_gcc_expression_red): Generate
	POINTER_PLUS_EXPR for pointer types.
	(clast_to_gcc_expression): Same.

2009-07-09  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (print_scattering_function): Early return when
	PBB_TRANSFORMED_SCATTERING is not initialized.
	(print_pbb_domain): Early return when PBB_DOMAIN is not initialized.

2009-07-08  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-parloops.c (analyze_reduction_list): Remove unused variable
	to fix bootstrap.

2009-07-08  Razya Ladelsky  <razya@il.ibm.com>

	* tree-parloops.c (analyze_reduction_list): Change return
	value to void.
	(try_create_reduction_list): Move the call to
	analyze_reduction_list to the beginining.
	Call reduction_phi with analyzed_reductions as argument
	instead of reduction_list.

2009-07-08  Tobias Grosser  <grosser@fim.uni-passau.de>

	*  Merge from mainline (r148296:149346)

2009-07-07  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-scop-detection.c (graphite_can_represent_init): New.
	(graphite_can_represent_scev): Call graphite_can_represent_init:
	check that the initial value does not contain multiplications of
	parameters.
	(stmt_has_simple_data_refs_p): New.
	(stmt_simple_for_scop_p): Call stmt_simple_for_scop_p.
	(is_simple_operand): Fix formatting.
	* graphite-sese-to-poly.c (try_generate_gimple_bb): Fix formatting.

2009-07-07  Sebastian Pop  <sebastian.pop@amd.com>

	* gcc.dg/graphite/id-13.c: New.
	* graphite-sese-to-poly.c (graphite_stmt_p): Do not call
	analyze_scalar_evolution, use scalar_evolution_in_region.
	(scan_tree_for_params_right_scev): Add extra assert.
	(parameter_index_in_region_1): Split from parameter_index_in_region.
	(idx_record_params): Use scalar_evolution_in_region.
	(find_params_in_bb): Same.
	(find_scop_parameters): Same.
	(build_loop_iteration_domains): Same.
	(create_linear_expr_from_tree): Same.
	* sese.c (scalar_evolution_in_region): New.
	* sese.h (scalar_evolution_in_region): Declared.
	(defined_in_sese_p): New.
	* tree-scalar-evolution.c (compute_overall_effect_of_inner_loop): Not
	static anymore.
	* tree-scalar-evolution.h (compute_overall_effect_of_inner_loop):
	Declared.

2009-07-07  Sebastian Pop  <sebastian.pop@amd.com>

	* Makefile.in: Replace dependences on tree-chrec.h with SCEV_H.
	TREE_DATA_REF_H also implies SCEV_H.

2009-07-07  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (print_scop_params): New.
	(print_scop): Call print_scop_params.
	(debug_scop_params): New.
	* graphite-poly.h (print_scop_params, debug_scop_params): Declared.

2009-07-07  Li Feng  <nemokingdom@gmail.com>

	* gcc.dg/graphite/graphite_autopar/force-parallel-4.c: New.
	* gcc.dg/graphite/graphite_autopar/force-parallel-5.c: New.
	* gcc.dg/graphite/graphite_autopar/force-parallel-6.c: New.
	* gcc.dg/graphite/graphite_autopar/force-parallel-7.c: New.
	* gcc.dg/graphite/graphite_autopar/force-parallel-8.c: New.
	* gcc.dg/graphite/graphite_autopar/force-parallel-9.c: New.

2009-07-07  Li Feng  <nemokingdom@gmail.com>

	* graphite-clast-to-gimple.c (mark_loops_parallel): Dump information
	for dependency checking part.
	* gcc.dg/graphite/graphite_autopar/force-parallel-1.c: Add
	tests for dependency checking.
	* gcc.dg/graphite/graphite_autopar/force-parallel-2.c: Ditto.
	* gcc.dg/graphite/graphite_autopar/force-parallel-3.c: Ditto.
	* gcc.dg/graphite/graphite_autopar/graphite_autopar.exp: Add
	flag -fdump-tree-graphite-all for autopar testsuites.

2009-07-06  Sebastian Pop  <sebastian.pop@amd.com>

	* Makefile.in (tree-ssa-loop-manip.o): Depends on langhooks.h.
	* tree-parloops.c (rewrite_phi_with_iv, rewrite_all_phi_nodes_with_iv,
	canonicalize_loop_ivs): Moved...
	* tree-ssa-loop-manip.c: ... here.  Include langhooks.h.

2009-07-06  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-parloops.c (try_create_reduction_list): Pass an extra
	argument analyzed_reductions.  Call analyze_reduction_list.
	(gen_parallel_loop): Do not call analyze_reduction_list.
	(parallelize_loops): Init and finalize analyzed_reductions.

2009-07-06  Li Feng  <nemokingdom@gmail.com>

	* gcc.dg/graphite/graphite_autopar/graphite_autopar.exp:
	Added flag -fno-loop-strip-mine for autopar testcase.

2009-07-04  Li Feng  <nemokingdom@gmail.com>

	* graphite-dependences.c (graphite_carried_dependence_level_k): Use
	transformed scattering dimension instead of unmatch orignal when
	calling dependence_polyhedron.

2009-06-30  Sebastian Pop  <sebastian.pop@amd.com>

	* opts.c (decode_options): Enable flag_loop_strip_mine at -O2.

2009-06-30  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (pbb_number_of_iterations): Check for returned
	value 1 from ppl_Pointset_Powerset_NNC_Polyhedron_maximize.

2009-06-30  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-blocking.c (pbb_strip_mine_profitable_p): New.
	(pbb_do_strip_mine): Call pbb_strip_mine_profitable_p.
	* graphite-poly.c (pbb_number_of_iterations): New.
	* graphite-poly.h (pbb_number_of_iterations): Declared.
	(pbb_iterator_dim, pbb_parameter_dim): New.

2009-06-29  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (graphite_create_new_loop): Revert the
	last commit on type of lower and upper bound of loops.

2009-06-29  Li Feng  <nemokingdom@gmail.com>

	* Makefile.in (graphite-clast-to-gimple.o): Added dependence on
	graphite-dependences.h.
	* graphite-clast-to-gimple.c (new_bb_pbb_def): New.
	(mark_bb_with_pbb): New.
	(get_stmtfor_depth): New.
	(find_pbb_via_hash): New.
	(dependency_in_loop_p): New.
	(mark_loops_parallel): New.
	(free_aux_in_new_loops): New.
	(translate_clast): Add parameter BB_PBB_MAPPING.  Mark newly created
	bb with it's relevant pbb. Mark newly created loops.  Remove mark
	innermost loop parallel without checking.
	(gloog): Add parameter BB_PBB_MAPPING.
	* graphite-clast-to-gimple.h (struct bb_pbb_def): New.
	(gloog): Change declaration.
	(mark_loop_parallel): Make extern.
	(free_aux_in_new_loops): Declare.
	(bb_pbb_map_hash): New.
	(eq_bb_pbb_map): New.
	* graphite.c (graphite_transform_loops): Added BB_PBB_MAPPING. Trigger
	auto parallelization when flag_graphite_force_parallel is set.
	(graphite_finalize): Added free_aux_in_new_loops.
	* tree-parloops.c (parallelize_loops): Only generate parallel code for
	the innermost loop that marked parallel.  Use
	flag_graphite_force_parallel instead of loop->can_be_parallel.
	(loop_parallel_p): Move inner most checking out of function.

2009-06-26  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (graphite_create_new_loop): Make the
	type of lower and upper bound of loops signed long int.

2009-06-26  Sebastian Pop  <sebastian.pop@amd.com>

	* cfgloopmanip.c (create_empty_loop_on_edge): Gimplify the loop exit
	expression outside the loop.

2009-06-26  Sebastian Pop  <sebastian.pop@amd.com>

	* gcc.dg/graphite/interchange-8.c: New.

2009-06-26  Sebastian Pop  <sebastian.pop@amd.com>

	* gcc.dg/graphite/interchange-0.c: XFailed.
	* gcc.dg/graphite/interchange-5.c: XFailed.
	* gcc.dg/graphite/interchange-6.c: XFailed.

2009-06-26  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-interchange.c (compute_array_size_poly): The end of the
	recursion should return 1.

2009-06-26  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-interchange.c (compute_array_size_cstr): Allow the
	subscript multiplier to be -1.
	(compute_array_size): Use PDR_DATA_CONTAINER and not PDR_ACCESSES.
	* graphite-poly.c (new_poly_dr): Takes an extra argument for the
	data_container.  Initializes PDR_DATA_CONTAINER.
	(print_pdr_access_layout): New.
	(print_pdr): Call print_pdr_access_layout.  Print PDR_DATA_CONTAINER.
	* graphite-poly.h (struct poly_dr): Adjust comment.  Add a new field
	data_container.
	(PDR_DATA_CONTAINER): New.
	(new_poly_dr): Update declaration.
	* graphite-sese-to-poly.c (pdr_add_data_dimensions): New.
	(build_poly_dr): Call pdr_add_data_dimensions.

2009-06-26  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.h (struct poly_dr): Fix comment.
	* graphite-sese-to-poly.c (pdr_add_alias_set): New.
	(pdr_add_memory_accesses): New.
	(build_poly_dr): Call pdr_add_memory_accesses and pdr_add_alias_set.

2009-06-26  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (print_pdrs, debug_pdrs): New.
	(print_pbb): Add call to print_pdrs.
	* graphite-poly.h (print_pdrs, debug_pdrs): Declared.

2009-06-24  Konrad Trifunovic <konrad.trifunovic@gmail.com>
	    Li Feng <nemokingdom@gmail.com>

	* graphite-dependences.c (graphite_carried_dependence_level_k): New.
	(dependency_between_pbbs_p): New.
	(lexicographically_gt_p): Assure !empty_p before polyhedron
	intersection assign.
	(build_lexicographically_gt_constraint): Correct lexicographically
	judging.
	* graphite-dependences.h: New.
	* Makefile.in (graphite-dependences.o): Add graphite-dependences.h.

2009-06-24  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (print_clast_stmt): New.
	(gloog): Print to dump_file the generated clast.
	* graphite-clast-to-gimple.h (print_clast_stmt): Declared.
	* graphite-interchange.c (pbb_do_interchange): Fix dump formatting.

2009-06-24  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (extend_scattering): Increment
	PBB_NB_LOCAL_VARIABLES by the number of added dimensions.

2009-06-24  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-interchange.c (compute_array_size_poly): Added exit of
	recursion condition.  Continue iterating even after the first equality.
	(compute_array_size): Same.

2009-06-24  Li Feng  <nemokingdom@gmail.com>

	* gcc.dg/graphite/graphite_autopar/force-parallel-1.c: Update
	-fdump-tree-final_cleanup to -fdump-tree-optimized.
	* gcc.dg/graphite/graphite_autopar/force-parallel-2.c: Ditto.
	* gcc.dg/graphite/graphite_autopar/force-parallel-3.c: Ditto.
	* gcc.dg/graphite/graphite_autopar/graphite_autopar.exp: Ditto.

2009-06-23  Sebastian Pop  <sebastian.pop@amd.com>

	* sese.c (expand_scalar_variables_stmt): Expand scalar variables
	only when the use verifies is_gimple_reg.

2009-06-23  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (build_cloog_prog): Fix memory corruption.
	Allocate scaldims after call to unify_scattering_dimensions.

2009-06-23  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (translate_clast): Fix memory leak.

2009-06-23  Sebastian Pop  <sebastian.pop@amd.com>
	    Albert Cohen  <albert.cohen@inria.fr>

	* graphite-blocking.c (pbb_strip_mine_loop_depth): Do not use local
	variables for the strip mining.

2009-06-23  Sebastian Pop  <sebastian.pop@amd.com>
	    Pranav Garg  <pranav.garg2107@gmail.com>

	* Makefile.in (OBJS-common): Added graphite-blocking.o.
	(graphite-sese-to-poly.o): Moved down to be in lexicographical order.
	(graphite-blocking.o): New rule.
	(graphite-poly.o, graphite-ppl.o): Moved to be in lexicographical order.
	* graphite-blocking.c: New.
	* graphite-poly.c (apply_poly_transforms): Call scop_do_strip_mine for
	flag_loop_strip_mine.
	(psct_scattering_dim_for_loop_depth): New.
	* graphite-poly.h (scop_do_strip_mine): Declared.
	(psct_add_local_variable): Increment PBB_NB_LOCAL_VARIABLES.
	* tree-ssa-loop.c (gate_graphite_transforms): Do not fail when using
	flag_loop_strip_mine.

2009-06-23  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (extend_scattering): Avoid initializing and freeing
	a GMP value and a PPL coefficient at each iteration of a loop.

2009-06-23  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (dependence_polyhedron): Do not use
	pbb_nb_scattering_dims anymore.  Use pbb_nb_scattering_orig and
	pbb_nb_scattering_transform.
	(graphite_legal_transform_dr): Same.
	* graphite-poly.c (extend_scattering): Same.
	(unify_scattering_dimensions): Same.
	(print_scattering_function): Same.
	(new_poly_bb): Initialize PBB_NB_SCATTERING_TRANSFORM and
	PBB_NB_LOCAL_VARIABLES.
	* graphite-poly.h (pbb_nb_scattering): Removed declaration.
	(struct poly_bb): Added nb_local_variables and nb_scattering_transform.
	(PBB_NB_LOCAL_VARIABLES, PBB_NB_SCATTERING_TRANSFORM): New.
	(pbb_nb_scattering_orig, pbb_nb_scattering_transform): New.
	(pbb_nb_scattering_dims, pbb_nb_scattering): Removed.
	(pbb_nb_scattering_transform): New.
	(pbb_nb_local_vars): Return PBB_NB_LOCAL_VARIABLES.
	(psco_scattering_dim): Add assert on parameters.
	(psct_scattering_dim): Same.
	(psct_scattering_dim_for_loop_depth): Declared.
	(psct_local_var_dim): New.
	(psco_iterator_dim, psco_parameter_dim): Add assert on parameters.
	(psct_iterator_dim, psct_parameter_dim): Same.  To maintain the
	correct layout, call pbb_nb_local_vars.
	(psct_add_local_variable, psct_add_scattering_dimension): New.
	* graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons):
	Initialize PBB_NB_SCATTERING_TRANSFORM.

2009-06-23  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-ppl.c (set_inhomogeneous): Renamed ppl_set_inhomogeneous.
	(set_coef): Renamed ppl_set_coef.
	* graphite-ppl.h (ppl_set_inhomogeneous, ppl_set_coef): Declared.

2009-06-23  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (build_pairwise_scheduling_inequality): Don't
	test a boolean against 1.
	* graphite-interchange.c (pbb_interchange_loop_depths): Do not build
	a new polyhedron for the PBB_TRANSFORMED_SCATTERING.
	(pbb_do_interchange): Returns true when a transform has been performed.
	(scop_do_interchange): Same.
	* graphite-poly.c (apply_poly_transforms): Use the return value of
	scop_do_interchange.
	* graphite-poly.h (scop_do_interchange): Update declaration.

2009-06-23  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-clast-to-gimple.c (gloog): Reset loop->aux right
	after last use.
	* sese.c (sese_reset_aux_in_loops): New.
	* sese.h (sese_reset_aux_in_loops): New.

2009-06-19  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (scan_tree_for_params_int): Pass in the
	multiplier and multiply the constant by the multiplier.
	(scan_tree_for_params): Bound the multiplier to its MULT_EXPR.
	(build_poly_dr): Do not use the multiplier to define the subscript.

2009-06-19  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (new_poly_dr): Pass an extra argument for the
	compiler's data reference.  Initialize PDR_CDR.
	(print_pdr): Call dump_data_reference.
	* graphite-poly.h (struct poly_dr): Rename black_box into pbb.
	Add compiler_dr field.
	(PDR_BB): Renamed PDR_PBB.
	(PDR_CDR): New.
	* graphite-sese-to-poly.c (build_poly_dr): Pass to new_poly_dr
	GCC's data reference representation.
	* tree-data-ref.c (debug_data_references, debug_data_reference): New.
	* tree-data-ref.h (debug_data_references, debug_data_reference): Decl.

2009-06-19  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (print_scattering_function): Also print the layout.
	* graphite-poly.h (pbb_nb_local_vars): New.

2009-06-19  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (print_pbb_domain): Also print the layout names.

2009-06-19  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (print_pdr, debug_pdr): New.
	* graphite-poly.h (print_pdr, debug_pdr): Declared.
	(PDR_BASE): Removed.

2009-06-18  Sebastian Pop  <sebastian.pop@amd.com>

	* gcc.dg/graphite/interchange-{1..7}.c: New avatars of
	ltrans-{1..6,8}.c.

2009-06-18  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-interchange.c (compute_subscript): Allow also -1 in the
	subscript identification column.
	(pbb_do_interchange): Print to dump_file that some loops "will be
	interchanged".  Rely on that chain of characters in the testcases.
	* gcc.dg/graphite/interchange-0.c: New.
	* gcc.dg/graphite/graphite.exp: Iterate over the testsuite
	interchange-*.c files and compile them with -floop-interchange.

2009-06-18  Pranav Garg  <pranav.garg2107@gmail.com>

	* graphite-interchange.c (interchange_profitable_p): Renamed
	pbb_interchange_profitable_p.

2009-06-18  Sebastian Pop  <sebastian.pop@amd.com>
	    Harsha Jagasia  <harsha.jagasia@amd.com>
	    Pranav Garg  <pranav.garg2107@gmail.com>

	* graphite-interchange.c (interchange_profitable_p): Make static.
	(pbb_interchange_loop_depths, pbb_do_interchange,
	scop_do_interchange): New.
	* graphite-poly.c (apply_poly_transforms): Call scop_do_interchange
	for flag_loop_interchange.
	* graphite-poly.h (scop_do_interchange): Declared.
	* tree-ssa-loop.c (gate_graphite_transforms): Do not fail when
	flag_loop_interchange is used.

2009-06-18  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (dependence_polyhedron): Update use of
	pbb_nb_scattering_dims.
	* graphite-poly.h (pbb_nb_scattering_dims): Do not pass SCOP.
	(pbb_nb_scattering): Update use of pbb_nb_scattering_dims.
	(psco_scattering_dim, psct_scattering_dim, psco_iterator_dim,
	psct_iterator_dim, psco_parameter_dim, psct_parameter_dim): New.

2009-06-16  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c: Cleanup foo.

2009-06-16  Sebastian Pop  <sebastian.pop@amd.com>

	* Merge from mainline (r143684:148293).
	* Disabled libpcp until it gets fixed.

2009-06-05  Sebastian Pop  <sebastian.pop@amd.com>
	    Harsha Jagasia  <harsha.jagasia@amd.com>

	* graphite-interchange.c: New.
	* Makefile.in (graphite-interchange.o): New.
	* graphite-poly.h (interchange_profitable_p): Declared.
	* graphite-ppl.h (value_max): New.

2009-06-04  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c (dependence_polyhedron): Use pdr_dim.
	* graphite-poly.h: Fix some comments.
	(pdr_dim): New.
	(pdr_scop): New.

2009-06-04  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.h
	(pdr_accessp_nb_subscripts): Renamed pdr_nb_subscripts.
	(pdr_accessp_nb_iterators): Renamed pdr_dim_iter_domain.
	(pdr_accessp_nb_params): Renamed pdr_nb_params.
	(pdr_accessp_alias_set_dim): Renamed pdr_alias_set_dim.
	(pdr_accessp_subscript_dim): Renamed pdr_subscript_dim.
	(pdr_accessp_iterator_dim): Renamed pdr_iterator_dim.
	(pdr_accessp_param_dim): Renamed pdr_parameter_dim.
	(pbb_nb_loops): Renamed pbb_dim_iter_domain.
	* graphite-clast-to-gimple.c: Same.
	* graphite-dependences.c: Same.
	* graphite-poly.c: Same.
	* graphite-sese-to-poly.c: Same.

2009-06-03  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (build_iv_mapping): Insert full
	expressions for an IV rename, as returned by clast_to_gcc_expression.
	(copy_renames): Rename new_name to expr.
	* sese.c (debug_rename_elt): Same.
	(get_rename): Same.
	(set_rename): Same.
	(sese_adjust_liveout_phis): Call force_gimple_operand before using
	the information from the rename map.
	(rename_variables_in_stmt): Same.
	(add_loop_exit_phis): Rename new_name to expr.
	(insert_loop_close_phis): Same.
	(add_guard_exit_phis): Same.  Call force_gimple_operand.
	* sese.h (struct rename_map_elt): Rename new_name to expr.
	(new_rename_map_elt): Same.

2009-06-03  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (build_iv_mapping): Use set_rename.
	* sese.c (set_rename): Make it extern.
	* sese.h (set_rename): Declared.

2009-06-03  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (extend_scattering): Free values.
	* graphite-ppl.c (new_Cloog_Domain_from_ppl_Pointset_Powerset):
	Free iterators.
	(ppl_print_powerset_matrix): Same.
	* graphite-scop-detection.c (free_scops_1): New.
	(limit_scops): Call free_scops_1.
	* graphite-sese-to-poly.c (build_scop_bbs_1): Free dom.
	(build_poly_dr): Free PPL coefficients.
	* tree-parloops.c (rewrite_all_phi_nodes_with_iv): Free bbs.

2009-06-02  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-dependences.c: New.
	* graphite-data-ref.c: Removed.
	* graphite-data-ref.h: Removed.
	* Makefile.in (graphite-data-ref.o): Removed.
	(graphite-dependences.o): Added.
	* graphite-clast-to-gimple.c: Remove dependence on graphite-data-ref.h.
	* graphite-poly.c: Same.
	Move the data dependence testing to graphite-dependences.c.

2009-05-19  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-scop-detection.c (graphite_can_represent_loop): Renamed
	from graphite_cannot_represent_loop. Code refactored.
	(scopdet_basic_block_info): Call graphite_can_represent_loop.

2009-05-17  Li Feng  <nemokingdom@gmail.com>

	* gcc.dg/graphite/graphite_autopar/graphite_autopar.exp:
	Cover all the testcases (not only the filtered ones).

2009-05-17  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-scop-detection.c (stmt_simple_for_scop_p): Remove
	unnecessary check. Update comments. Move check for REAL_TYPE here.
	(harmful_stmt_in_bb): Remove checks for conditions. This is already
	done in (stmt_simple_for_scop_p).

2009-05-14 Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (print_global_statistics): New.
	(print_graphite_scop_statistic): New.
	(print_graphite_statistics): New.
	(graphite_initialize, graphite_transform_loops): Print statistics.
	* graphite-scop-detection (build_scops): Print statistics.
	(print_graphite_scop_statistics): New.
	(print_graphite_statistics): New.

2009-05-13  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (struct clast_name_index): Removed.
	(debug_clast_name_index): Removed.
	(debug_clast_name_indexes_1): Removed.
	(debug_clast_name_indexes): Removed.
	(clast_name_index_elt_info): Removed.
	(eq_clast_name_indexes): Removed.
	(clast_name_to_index): Removed.
	(new_clast_name_index): Removed.
	(save_clast_name_index): Removed.
	(save_var_name): Moved...
	(init_sese_params_index): Removed.
	(clast_name_to_gcc): Remove use of name_tree.
	(initialize_cloog_names): Same.
	(gloog): Do not call init_sese_params_index.
	* graphite-sese-to-poly.c (save_var_name): ...here.
	(parameter_index_in_region): New.
	* sese.c (new_sese): Initialize SESE_PARAMS_NAMES.
	(parameter_index_in_region): Removed.
	(is_parameter): Remove use of name_tree.
	* sese.h (struct name_tree): Removed.
	(struct sese): Remove use of name_tree.  New field params_names.
	(SESE_PARAMS_NAMES): New.
	(SESE_PARAMS): Remove duplicate.
	(parameter_index_in_region): Removed.
	(sese_nb_params): Remove use of name_tree.
	(struct clast_name_index): New.
	(new_clast_name_index): New.
	(clast_name_to_index): New.
	(save_clast_name_index): New.
	(debug_clast_name_index): New.
	(debug_clast_name_indexes_1): New.
	(debug_clast_name_indexes): New.
	(clast_name_index_elt_info): New.
	(eq_clast_name_indexes): New.

2009-05-13  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (compute_cloog_iv_types_1): Call
	pbb_to_depth_to_oldiv.  Remove call to oldiv_for_loop.
	(graphite_loop_normal_form): Do not pass region.  Do not
	initialize SESE_OLDIVS.
	(build_graphite_loop_normal_form): Update call to
	graphite_loop_normal_form.
	* sese.c (debug_oldivs): Removed.
	(new_sese): Do not initialize SESE_OLDIVS.
	(free_sese): Do not free SESE_OLDIVS.
	(oldiv_for_loop): Removed.
	* sese.h (struct sese): Remove old_ivs.
	(SESE_OLDIVS): Removed.
	(oldiv_for_loop): Removed.

2009-05-13  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (clast_name_to_gcc): Pass newivs,
	remove ivstack.  Remove call to loop_iv_stack_get_iv_from_name,
	replaced by a call to newivs_to_depth_to_newiv.
	(clast_to_gcc_expression): Pass newivs, remove ivstack.
	(clast_to_gcc_expression_red): Same.
	(gcc_type_for_clast_expr): Same.
	(gcc_type_for_clast_eq): Same.
	(graphite_translate_clast_equation): Same.
	(graphite_create_guard_cond_expr): Same.
	(graphite_create_new_guard): Same.
	(graphite_create_new_loop): Same.
	(build_iv_mapping): Same.
	(translate_clast): Same.
	(gloog): Same.
	(loop_iv_stack_patch_for_consts): Removed.  *
	sese.c (iv_stack_entry_is_constant): Removed.
	(iv_stack_entry_is_iv): Removed.
	(loop_iv_stack_push_iv): Removed.
	(loop_iv_stack_insert_constant): Removed.
	(loop_iv_stack_pop): Removed.
	(loop_iv_stack_get_iv): Removed.
	(loop_iv_stack_get_iv_from_name): Removed.
	(debug_loop_iv_stack): Removed.
	(free_loop_iv_stack): Removed.
	(loop_iv_stack_remove_constants): Removed.  *
	sese.h (iv_stack_entry_kind): Removed.
	(iv_stack_entry_data_union): Removed.
	(iv_stack_entry_struct): Removed.
	(iv_stack_entry_p): Removed.
	(debug_oldivs, debug_loop_iv_stack, loop_iv_stack_insert_constant,
	loop_iv_stack_get_iv_from_name, loop_iv_stack_push_iv,
	loop_iv_stack_get_iv, loop_iv_stack_remove_constants,
	loop_iv_stack_pop, free_loop_iv_stack): Removed.
	(gbb_loop_at_index): Fix indenting.
	(gbb_loop_index): Removed.

2009-05-13  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (clast_name_to_gcc): Do not use strcmp.
	Call clast_name_to_index.

2009-05-13  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (clast_name_to_gcc): Pass region,
	do not pass params.  Get params from SESE_PARAMS.
	(clast_to_gcc_expression): Same.
	(clast_to_gcc_expression_red): Same.
	(gcc_type_for_clast_eq): Same.
	(graphite_translate_clast_equation): Same.
	(graphite_create_new_loop): Same.
	* sese.c (rename_variables_in_stmt): Fix comment.

2009-05-13  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (graphite_create_new_loop): Pass
	newivs_index.
	Call save_clast_name_index.
	(translate_clast): Pass newivs_index.
	(gloog): Create and free newivs_index.

2009-05-13  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (clast_name_index): New structure.
	(clast_name_index_p): New type.
	(debug_clast_name_index): New.
	(debug_clast_name_indexes_1): New.
	(debug_clast_name_indexes): New.
	(clast_name_index_elt_info): New.
	(eq_clast_name_indexes): New.
	(clast_name_to_index): New.
	(new_clast_name_index): New.
	(save_clast_name_index): New.
	(init_sese_params_index): New.
	(gloog): Call init_sese_params_index.
	* graphite-clast-to-gimple.h (debug_clast_name_indexes): Declared.
	* sese.c (new_sese): Initialize SESE_PARAMS_INDEX.
	(free_sese): Free SESE_PARAMS_INDEX.
	* sese.h (struct sese): Add params_index.
	(SESE_PARAMS_INDEX): New.

2009-05-13  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (newivs_to_depth_to_newiv): New.
	(graphite_create_new_loop): Pass the newivs vector.  Push the
	newly created IV to newivs.
	(translate_clast): Pass the newivs vector.
	(gloog): Create and destroy the newivs vector.

2009-05-13  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (pbb_to_depth_to_oldiv): New.
	(graphite_loop_normal_form): Initialize loop->aux with the unique
	IV that has been created.

2009-05-13 Tobias Grosser  <grosser@fim.uni-passau.de>

	* tree-chrec.c (evolution_function_right_is_integer_cst): Allow
	scev with parameters in the base part. They where forbidden
	exidently.

2009-05-11  Li Feng  <nemokingdom@gmail.com>

	* gcc.dg/graphite/graphite.exp: Set different default
	compile options by file names.
	* gcc.dg/graphite/block{0-6}.c: Remove dg-option line.
	* gcc.dg/graphite/id-{1-9}.c: Ditto.
	* gcc.dg/graphite/scop-{0-20}.c: Ditto.
	* gcc.dg/graphite/scop-matmult.c: Ditto.

2009-05-08  Li Feng <nemokingdom@gmail.com>

	* gcc.dg/graphite/graphite_autopar/graphite_autopar.exp: New.
	* gcc.dg/graphite/graphite_autopar/force-parallel-1.c: New.
	* gcc.dg/graphite/graphite_autopar/force-parallel-2.c: New.
	* gcc.dg/graphite/graphite_autopar/force-parallel-3.c: New.

2009-05-07  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-scop-detection (build_scops_1): Fix little bug introduced
	by final cleanup.

2009-05-07  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-scop-detection.c (graphite_can_represent_scev): Only
	allow integer constant strides.
	(graphite_can_represent_expr): Depend on outermost_loop.
	(stmt_simple_memref_p, graphite_cannot_represent_loop,
	harmful_stmt_in_bb, is_simple_operand, stmt_simple_for_scop_p,
	build_scops_1): Same.
	(scopdet_basic_block_info): Same and insert layered SCoP
	detection.
	(try_generate_gimple_bb): Cleanup.
	(build_scops): Enable data references.

	* gcc.dg/graphite/id-5.c: New.
	* gcc.dg/graphite/id-9.c: New.
	* tree-chrec.c (evolution_function_right_is_integer_cst): New.
	* tree-chrec.h (evolution_function_right_is_integer_cst): New.

2009-05-06  Tobias Grosser  <grosser@fim.uni-passau.de>

	* sese.c (expand_scalar_variables_ssa_name): Only build expressions,
	that we have not yet built for this SCoP.

2009-05-06  Tobias Grosser  <grosser@fim.uni-passau.de>

	* sese.c (expand_scalar_variables_expr): Fix expand_scalar_variables
	for complex numbers.

2009-05-06  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-ppl.c: Fix build if cloog is not available.

2009-05-04  Li Feng  <nemokingdom@gmail.com>

	* tree-parloops.c (loop_parallel_p): Remove construction of
	NITER and REDUCTION_LIST.
	(try_get_loop_niter): New.
	(try_create_reduction_list): New.
	(parallelize_loops): Bypass the failed checkings in autopar
	when can_be_parallel in loop structure is set to true.

2009-05-01  Tobias Grosser  <grosser@fim.uni-passau.de>

	* gcc.dg/graphite/id-6.c: Update testcase.
	* gcc.dg/graphite/scop-3.c: Dito.

2009-05-01  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-scop-detection.c (stmt_simple_for_scop_p):
	Enable EQ_EXPR and NE_EXPR again.

2009-04-30  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-scop-detection.c (graphite_can_represent_scev):
	Add check if scev is affine multivariate.
	(harmful_stmt_in_bb): Check if we can represent the conditions.
	(scopdet_basic_block_info (basic_block bb, VEC): Pass the loop to
	harmful_stmt_in_bb.
	* gcc.dg/graphite/id-7.c: New.

2009-04-30  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-sese-to-poly.c (bb_contains_non_iv_scalar_phi_nodes):
	Check all bbs in region, not only the bbs that are represented in
	GRAPHITE.
	(build_poly_scop): Add newline.
	* gcc.dg/graphite/id-8.c: New.

2009-04-30  Li Feng  <nemokingdom@gmail.com>

	* cfgloop.c (alloc_loop): Initialize can_be_parallel to false
	when loop initialize.
	* cfgloop.h (struct loop): Introduce flag can_be_parallel.
	* common.opt: Declare flag_graphite_force_parallel.
	* graphite-clast-to-gimple.c (translate_clast): Mark the innermost
	loop parallel.
	* graphite-poly.c (apply_poly_transforms): Introduce
	flag_graphite_force_parallel.
	* tree-ssa-loop.c (gate_graphite_transforms): ditto.
	* toplev.c (process_options): ditto and replace a not correctly
	encoded space.

2009-04-30  Li Feng  <nemokingdom@gmail.com>

	* graphite-clast-to-gimple.c (loop_iv_stack_patch_for_consts):
	Change the call of gbb_loop_at_index and/or gbb_loop_index due
	to the redefinition.
	(compute_cloog_iv_types_1): ditto.
	(build_iv_mapping): ditto.
	* graphite-sese-to-poly.c (new_gimple_bb): Remove GBB_LOOPS related
	initialization.
	(free_gimple_bb): Removed GBB_LOOPS related free part.
	(build_bb_loops): Removed.
	* sese.h (struct gimple_bb): Removed loops.
	(GBB_LOOPS): Removed.
	(gbb_loop_at_index): Instead of using GBB_LOOPS, we use sese instead.
	(gbb_loop_index): ditto.

2009-04-24  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-scop-detection.c (graphite_can_represent_scev): Do not
	allow non constant strides.
	* gcc.dg/graphite/scop-20.c: New.

2009-04-24  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-scop-detection.c (dot_all_scops): Fix system call
	return value warning.
	(dot_scop): Same.

2009-04-24  Sebastian Pop  <sebastian.pop@amd.com>

	* gcc.dg/graphite/id-6.c: Fix pattern.
	* gcc.dg/graphite/scop-3.c: Same.

2009-04-24  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (map_into_dep_poly, map_dr_into_dep_poly,
	build_pairwise_constraint, dr_equality_constraints,
	build_pairwise_scheduling_equality,
	build_pairwise_scheduling_inequality, lexicographically_gt_p,
	build_lexicographically_gt_constraint, dependence_polyhedron,
	graphite_legal_transform_dr, graphite_legal_transform_bb,
	graphite_legal_transform): New.
	* graphite-poly.h (graphite_legal_transform): Declared.
	* graphite-sese-to-poly.c (build_poly_scop): Call to
	graphite_legal_transform is disabled for the moment.

2009-04-24  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.h (pbb_nb_scattering_dims): New.
	(pbb_nb_scattering): Use it.

2009-04-24  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-ppl.c (ppl_insert_dimensions_pointset): Add
	Pointset_Powerset version of ppl_insert_dimensions.
	* graphite-ppl.h (ppl_insert_dimensions_pointset): Declared.

2009-04-24  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-ppl.c (ppl_insert_dimensions): Fix formatting.

2009-04-24  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.h: Fix comment.

2009-04-24  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (build_poly_dr): Fix data ref multiplier.

2009-04-24  Tobias Grosser  <grosser@fim.uni-passau.de>

	* sese.c (expand_scalar_variables_stmt): Only iterate over the old
	statements.

2009-04-24  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-sese-to-poly.c (var_used_in_not_loop_header_phi_node): New.
	(graphite_stmt_p): Represent bbs necessary to build the phi nodes of
	conditions.

2009-04-20  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-scop-detection.c (stmt_simple_for_scop_p): Do not
	handle EQ_EXPR and NE_EXPR.

2009-04-17  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-poly.h (poly_dr): Fix comment.

2009-04-09  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-poly.c (new_poly_bb): Do not initialize PBB_DOMAIN
	with a zero dimension polyhedron.
	(find_scop_parameters): Move the call to scop_set_nb_params here.
	(build_loop_iteration_domains): Store in loop->aux the iteration
	domain polyhedron.
	(build_scop_iteration_domain): Fix PBB_DOMAIN for bbs not surrounded
	by any loop in scop.
	(build_poly_scop): Do not call scop_set_nb_params.

2009-04-09  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-sese-to-poly.c (add_condition_to_pbb): Pass code to
	add_condition_to_domain not GT_EXPR.

2009-04-09  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-ppl.c (debug_ppl_powerset_matrix): New.
	* graphite-ppl.h (debug_ppl_powerset_matrix): New.
	* graphite-sese-to-poly.c (add_condition_to_pbb): Use
	upper_bound_assign to calculate unions.
	* gcc.dg/graphite/id-6.c: New.

2009-04-09  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-scop-detection.c (canonicalize_loop_closed_ssa): Do not
	handle abnormal edges.

2009-04-09  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-poly.c (new_poly_dr, free_poly_dr): New.
	(free_poly_bb): Also free poly_drs.
	* graphite-poly.h (new_poly_dr, free_poly_dr): New.
	(poly_dr): Polyhedron to Pointset_Powerset.
	(pdr_accessp_nb_subscripts): Same.
	* graphite-sese-to-poly.c (build_poly_dr): Same. And actually build
	poly_drs.

2009-04-08  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (initialize_cloog_names): Change cloog
	names into more meaningful names.

2009-04-08  Sebastian Pop  <sebastian.pop@amd.com>

	* gfortran.dg/graphite/interchange-1.c: New.
	* gfortran.dg/graphite/interchange-2.c: New.

2009-04-08  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (graphite_loop_normal_form): Do not build
	the reduction_list.
	* tree-parloops.c (rewrite_phi_with_iv): New.
	(rewrite_all_phi_nodes_with_iv): New.
	(canonicalize_loop_ivs): Call them.

2009-04-08  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (try_generate_gimple_bb): Use
	graphite_find_data_references_in_stmt.
	* tree-data-ref.c (graphite_find_data_references_in_stmt): New.
	* tree-data-ref.h (graphite_find_data_references_in_stmt): Declared.

2009-04-08  Sebastian Pop  <sebastian.pop@amd.com>

	* sese.c (add_loop_exit_phis): Don't fail on non SSA_NAME renames.

2009-04-08  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (build_scop_bbs_1): Use bb_in_sese_p
	instead of bb_in_region.
	(flag_bb_in_region): Same.  Renamed flag_bb_in_sese.
	(build_sese_conditions): Use flag_bb_in_sese.
	* sese.c (register_bb_in_sese): Removed.
	(new_sese): Remove initialization of SESE_REGION_BBS.
	(free_sese): Do not free SESE_REGION_BBS.
	* sese.h (struct sese): Remove field region_basic_blocks.
	(SESE_REGION_BBS): Removed.
	(bb_in_sese_p): Implement in function of bb_in_region.

2009-04-08  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-scop-detection.c (limit_scops): Deal only with single exit
	loops.

2009-04-08  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-scop-detection.c (stmt_simple_for_scop_p): Allow NE_EXPR
	and EQ_EXPR.
	* graphite-sese-to-poly.c (create_linear_expr_from_tree): New.
	(add_condition_to_domain): New.
	(add_condition_to_pbb): New.
	(add_conditions_to_domain): Cleanup and handle of NE_EXPR and EQ_EXPR.
	* gcc.dg/graphite/scop-3.c: Update number of detected SCoPs.

2009-04-08  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-clast-to-gimple.c (build_cloog_prog): ppl_Polyhedron ->
	ppl_Pointset_Powerset.
	* graphite-poly.c (new_poly_bb, free_poly_bb): Same.
	* graphite-poly.h (poly_bb): poly_bb.domain Same.
	(pbb_nb_loops): Same.
	* graphite-sese-to-poly.c (build_loop_iteration_domains,
	add_conditions_to_domain): Same.
	* graphite-ppl.c (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
	(ppl_print_polyhedron_matrix): ppl_Polyhedron_t ->
	ppl_const_Polyhedron_t.
	(ppl_print_powerset_matrix): New.
	* graphite-ppl.h (new_Cloog_Domain_from_ppl_Pointset_Powerset,
	ppl_print_powerset_matrix): New.
	(ppl_print_polyhedron_matrix): Updated.

2009-04-07  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-scalar-evolution.c (analyze_scalar_evolution_1): Fix comment.

2009-04-07  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (extend_scattering): Fix indenting.  Free cstr.
	(print_iteration_domains, debug_iteration_domain,
	debug_iteration_domains): New.
	* graphite-poly.h (print_iteration_domains, debug_iteration_domain,
	debug_iteration_domains): Declared.
	* graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Fix
	indenting.

2009-04-03  Tobias Grosser  <grosser@fim.uni-passau.de>
	    Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.h (print_iteration_domain): New.
	* graphite-sese-to-poly.c (add_conditions_to_domain): Fixed bug.
	(build_sese_conditions_1, build_sese_conditions_after,
	build_sese_conditions_before): New.
	(build_sese_conditions): Rewritten.

2009-04-03  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <grosser@fim.uni-passau.de>

	Cleanup of code generation liveouts.
	* graphite-clast-to-gimple.c (translate_clast): Use a single
	rename_map instead of one per translated statement.
	Do not use SESE_LIVEOUT_RENAMES.
	(graphite_loop_normal_form): Do not use SESE_REDUCTION_LIST.
	(gloog): Do not use SESE_LIVEOUT_RENAMES.
	* graphite-scop-detection.c (harmful_stmt_in_bb): Return the close
	phi node of a reduction: when a loop contains a reduction used outside
	the loop, there should be a scalar close phi node on the exit block.
	* sese.c (new_sese): Do not initialize SESE_LIVEOUT,
	SESE_LIVEOUT_RENAMES, and SESE_REDUCTION_LIST.
	(free_sese): Do not free them.
	(sese_build_liveouts_use): Do not use them.
	(sese_build_liveouts_bb): Same.
	(sese_build_liveouts): Same.
	(sese_insert_phis_for_liveouts): Same.
	(sese_adjust_phis_for_liveouts): Same.  Renamed sese_adjust_liveout_phis.
	(defined_in_loop_p): New.
	(alive_after_loop): New.
	(close_phi_not_yet_inserted_p): New.
	(struct alep, alep_p): New.
	(add_loop_exit_phis): Remove from the rename_map all the names defined
	in the code generated loop.
	(insert_loop_close_phis): Traverse the rename_map passed to it.
	Don't use SESE_LIVEOUT_RENAMES.
	(default_liveout_before_guard): Renamed default_before_guard.
	(insert_guard_phis): Do not use SESE_LIVEOUT_RENAMES.
	(graphite_copy_stmts_from_block): Do not directly call set_rename.
	(register_sese_liveout_renames): Removed.
	(copy_bb_and_scalar_dependences): Do not call it.
	* sese.h (struct sese): Removed fields: liveout, liveout_renames, and
	reduction_list.
	(SESE_LIVEOUT): Removed.
	(SESE_LIVEOUT_RENAMES): Removed.
	(SESE_REDUCTION_LIST): Removed.
	(sese_build_liveouts): Removed.
	(sese_adjust_phis_for_liveouts): Renamed sese_adjust_liveout_phis.
	(insert_loop_close_phis): Pass a htab_t instead of a sese.
	(insert_guard_phis): Same.
	(rename_map_elt): Declare a VEC of them.
	* tree-parloops.c (canonicalize_loop_ivs): reduction_list contains
	trees not pointers to trees.

	Rewrite in canonical close SSA form:
	* graphite-scop-detection.c (contains_only_close_phi_nodes): New.
	(limit_scops): Close the scop after the block containing the close phi
	nodes.
	(canonicalize_loop_closed_ssa): New.
	(canonicalize_loop_closed_ssa_form): New.
	(build_scops): Call canonicalize_loop_closed_ssa_form.

	* graphite-sese-to-poly.c: Fix typos.

2009-04-03  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (print_scattering_function, print_pbb_domain):
	Extended.
	(dump_gbb_conditions, dump_gbb_cases, print_iteration_domain): New.
	(print_pbb): Add conditions.

2009-04-01  Tobias Grosser  <grosser@fim.uni-passau.de>
	    Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-scop-detection.c (bb_in_sd_region): Use bb_in_region.
	* graphite-sese-to-poly.c (all_non_dominated_preds_marked_p): New.
	(build_scop_bbs_1): New.
	(build_scop_bbs): Rewrite.
	* sese.h (bb_in_region): New.

2009-03-29  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-poly.c (new_poly_bb, free_poly_bb): Initialize/free
	poly_drs vector.
	(print_scop): Style.
	* graphite-poly.h (poly_bb): Add drs vector.
	(PBB_DRS): Add accessor.
	* graphite-sese-to-poly.c (build_poly_dr): New.
	(build_pbb_drs, build_scop_drs): New.
	(build_poly_scop): call build_scop_drs (Disabled at the moment).

2009-03-29  Tobias Grosser  <grosser@fim.uni-passau.de>

	* tree-ssa-loop.c: Include forgotten toplev.h

2009-03-29  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-poly.c: (apply_poly_transforms): sorry -> gcc_unreachable.
	* gcc.dg/graphite/pr37883.c: Remove -floop-*
	* gcc.dg/graphite/pr37928.c: Same
	* gcc.dg/graphite/pr38409.c: Same
	* gcc.dg/graphite/pr38498.c: Same
	* gcc.dg/graphite/pr38559.c: Same
	* gcc.dg/graphite/pr39335.c: Same
	* gcc.dg/graphite/pr39335_1.c: Same
	* gfortran.dg/graphite/block-2.f: Same
	* tree-ssa-loop.c (gate_graphite_transforms): Always fail if called
	with -floop-*.

2009-03-28  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-sese-to-poly.c (ref_nb_loops, build_access_matrix_with_af,
	build_access_matrix, build_scop_data_accesses): Remove access function
	building. (We get a new version soon).
	(build_bb_loops, scan_tree_for_params_right_scev): Update.
	* sese.h (nb_loops_around_loop_in_sese): Remove.
	(sese_loop_depth): Do not use SESE_LOOP_NEST any more.

2009-03-27  Tobias Grosser  <grosser@fim.uni-passau.de>
	    Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-scop-detection.c (struct scopdet_info): Rename last
	field to exit.
	(scopdet_basic_block_info, build_scops_1): Don't use
	CDI_POST_DOMINATORS.  CDI_POST_DOMINATORS should never be used.

2009-03-26  Tobias Grosser  <grosser@fim.uni-passau.de>
	    Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (gloog): Call sese_build_liveouts.
	* sese.c (sese_build_liveouts_use): Renamed from
	sese_build_livein_liveouts_use. Remove liveins.
	(sese_build_liveouts_bb): Renamed from sese_build_livein_liveouts_bb.
	Call sese_build_liveouts_use.
	(sese_build_liveouts): Renamed from sese_build_livein_liveouts.
	Call sese_build_liveouts_bb.
	(new_sese, free_sese): Remove liveins.
	(sese_add_exit_phis_var): Deleted.
	(sese_insert_phis_for_liveouts): Call sese_add_exit_phis_edge
	directly.
	(graphite_copy_stmts_from_block): Remove SESE_NUM_VER.

	* sese.h (sese): Remove num_ver and livein.
	(SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): Removed.

2009-03-25  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-sese-to-poly.c (build_scop_scattering): Fix compile.

2009-03-25  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-sese-to-poly.c (compare_prefix_loops): Removed.
	(build_scop_scattering): Do not use compare_prefix_loops any more.
	(nb_common_loops): New.

2009-03-24  Sebastian Pop  <sebastian.pop@amd.com>

	* sese.c (get_new_name_from_old_name): Renamed get_rename.
	(register_old_and_new_names): Renamed set_rename.

2009-03-24  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-scop-detection.h (nb_reductions_in_loop): Revert removal
	of the decl from the previous commit.

2009-03-24  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-scop-detection.c (dot_scop): New.
	* graphite-scop-detection.h (dot_scop): Declared.

2009-03-24  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-sese-to-poly.c (compare_prefix_loops): Fix compare.

2009-03-24  Sebastian Pop  <sebastian.pop@amd.com>

	* cfgloopmanip.c (create_empty_loop_on_edge): Generate the loop exit
	condition at the end of the loop.
	* graphite.c (graphite_initialize, graphite_finalize): Print to
	dump_file the compiled function.
	* graphite-clast-to-gimple.c (graphite_create_new_loop): Update use
	of create_empty_loop_on_edge.
	(translate_clast): Update the code generation of loops for the new
	shape of loops.
	* cfgloop.h (create_empty_loop_on_edge): Update declaration.

2009-03-24  Sebastian Pop  <sebastian.pop@amd.com>

	Reverted the patch from 2009-03-19.

2009-03-19  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-poly.c (new_poly_bb, free_poly_bb): Initialize/free
	poly_drs vector.
	(print_scop): Style.
	* graphite-poly.h (poly_bb): Add drs vector.
	(PBB_DRS): Add accessor.
	* graphite-sese-to-poly.c (ref_nb_loops): Remove.
	(build_access_matrix_with_af, build_access_matrix,
	build_scop_data_accesses): Delete.
	(build_poly_dr): New.
	(build_pbb_drs, build_scop_drs): New.
	(build_poly_scop): call build_scop_drs.

2009-03-13  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-scop-detection.c (dot_all_scops_1): Close the table
	once per basic block.

2009-03-13  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-scop-detection.c (graphite_can_represent_scev): New.
	(graphite_can_represent_expr): Renamed from loop_affine_expr
	and enhanced.
	(stmt_simple_for_scop_p): Call graphite_can_represent_expr.
	(graphite_cannot_represent_loop): Add scop_entry to parameters.
	(scopdet_basic_block_info): Actually define entry_block.
	(stmt_simple_memref_p): Moved here from ...

	* tree-data-ref.c (stmt_simple_memref_p): here.
	* tree-data-ref.h (stmt_simple_memref_p): Removed.

2009-03-13  Tobias Grosser  <grosser@fim.uni-passau.de>

	* gcc.dg/graphite/id-4.c: New.

2009-03-12  Sebastian Pop  <sebastian.pop@amd.com>

	* sese.c (expand_scalar_variables_expr): Handle tcc_comparison.
	(register_old_and_new_names): Update the content of the map.
	When there was already a rename_map_elt in the map at that
	location, free it.
	(copy_bb_and_scalar_dependences): Do rename_variables after
	expand_scalar_variables.
	* graphite-clast-to-gimple.c (build_iv_mapping): Update the content
	of the map.  When there was already a rename_map_elt in the
	map at that location, free it.
	(translate_clast): Pass the rename_map.  Do not initialize and free
	a rename_map per stmt_user.
	(gloog): Initialize and free one rename_map and pass it to
	translate_clast.

2009-03-12  Sebastian Pop  <sebastian.pop@amd.com>

	* sese.c (expand_scalar_variables_stmt,
	expand_scalar_variables_ssa_name): Add a gimple_stmt_iterator
	parameter.
	(expand_scalar_variables_expr): Handle REALPART_EXPR and IMAGPART_EXPR.
	(expand_scalar_variables): Pass to expand_scalar_variables_stmt
	the gimple_stmt_iterator of the statement to be expanded.
	* graphite-scop-detection.c (is_simple_operand): Do handle
	REALPART_EXPR.

2009-03-11  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-scop-detection.c (is_simple_operand): Do not handle
	REALPART_EXPR.
	* gcc.dg/graphite/id-2.c: New.

	* graphite-sese-to-poly.c (build_bb_loops,
	add_value_to_dim, scan_tree_for_params_right_scev,
	scan_tree_for_params_int, scan_tree_for_params, idx_record_params,
	find_params_in_bb, build_loop_iteration_domains,
	add_conditions_to_domain): Remove subtract.

2009-03-11  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-clast-to-gimple.c (loop_iv_stack_patch_for_consts,
	build_iv_mapping, compute_cloog_iv_types_1, build_cloog_prog):
	pbb_loop_at_index -> gbb_loop_at_index.
	* graphite-poly.c (new_poly_bb, new_scop): New accessors.
	(debug_loop_vec): Delete.
	* graphite-poly.h (poly_bb, scop): Change black_box and region to void
	pointer.  Move LOOPS to gimple_bb_p and insert nb_params.
	(PBB_LOOPS): Removed.
	(PBB_BLACK_BOX): Insert cast.
	(pbb_set_black_box): New setter.
	(pbb_loop_at_index, pbb_loop_index): Removed.
	(scop_set_region, scop_set_nb_params): New.
	* graphite-sese-to-poly.c (new_gimple_bb, free_gimple_bb,
	build_scop_scattering, build_bb_loops): Add GBB_LOOPS.
	(build_poly_scop): Use scop_set_nb_params.
	* sese.h (gimple_bb): Add LOOPS.
	(GBB_LOOPS, gbb_loop_index, gbb_loop_at_index): New.

2009-03-11  Tobias Grosser  <grosser@fim.uni-passau.de>

	Revert previous commit.

2009-03-11  Sebastian Pop  <sebastian.pop@amd.com>

	* sese.c (expand_scalar_variables_expr): Handle tcc_comparison.
	(register_old_and_new_names): Update the content of the map.
	When there was already a rename_map_elt in the map at that
	location, free it.
	(copy_bb_and_scalar_dependences): Do rename_variables after
	expand_scalar_variables.
	* graphite-clast-to-gimple.c (build_iv_mapping): Update the content
	of the map.  When there was already a rename_map_elt in the
	map at that location, free it.
	(translate_clast): Pass the rename_map.  Do not initialize and free
	a rename_map per stmt_user.
	(gloog): Initialize and free one rename_map and pass it to
	translate_clast.

2009-03-11  Tobias Grosser  <grosser@fim.uni-passau.de>

	Remove forgotten line in revert.

2009-03-11  Sebastian Pop  <sebastian.pop@amd.com>

	Revert previous commit.

2009-03-10  Sebastian Pop  <sebastian.pop@amd.com>

	* sese.c (register_old_and_new_names): Update the content
	of the map.  When there was already a rename_map_elt in the
	map at that location, free it.
	(copy_bb_and_scalar_dependences): Do rename_variables after
	expand_scalar_variables.
	* graphite-clast-to-gimple.c (build_iv_mapping): Update the content
	of the map.  When there was already a rename_map_elt in the
	map at that location, free it.
	(translate_clast): Pass the rename_map.  Do not initialize and free
	a rename_map per stmt_user.
	(gloog): Initialize and free one rename_map and pass it to
	translate_clast.

2009-03-10  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (translate_clast): context_loop
	is never NULL.

2009-03-10  Tobias Grosser  <grosser@fim.uni-passau.de>
	    Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-ppl.c (ppl_insert_dimensions): Fix stupid mistake
	of the use of ppl_Polyhedron_map_space_dimensions.

2009-03-10  Tobias Grosser  <grosser@fim.uni-passau.de>
	    Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (unify_scattering_dimensions): Fix types.
	* graphite-poly.h (poly_dr_p, poly_dr, POLY_DR_TYPE, PDR_BB,
	PDR_TYPE, PDR_ACCESSES, pdr_accessp_nb_subscripts,
	pdr_accessp_nb_iterators, pdr_accessp_nb_params,
	pdr_accessp_alias_set_dim, pdr_accessp_subscript_dim,
	pdr_accessp_iterator_dim, pdr_accessp_param_dim,
	pbb_nb_params): New.
	(pbb_nb_loops, pbb_nb_scattering, scop_nb_params,
	nb_loops_around_pbb): Adapt return types.

2009-03-09  Tobias Grosser  <grosser@fim.uni-passau.de>

	* Makefile.in (graphite.o, graphite-sese-to-poly.o,
	graphite-clast-to-gimple.o,  graphite-data-ref.o,
	graphite-scop-detection.o, graphite-poly.o): Add
	more headers.

2009-03-05  Tobias Grosser  <grosser@fim.uni-passau.de>

	* Makefile.in (graphite.o, graphite-sese-to-poly.o,
	graphite-clast-to-gimple.o,  graphite-data-ref.o,
	graphite-scop-detection.o, graphite-poly.o): Add graphite-poly.h.

2009-03-04  Tobias Grosser  <grosser@fim.uni-passau.de>

	* gcc.dg/graphite/pr37485.c: Remove -floop-block
	* gcc.dg/graphite/pr37828.c: Same.
	* gcc.dg/graphite/pr37684.c: Same.
	* gcc.dg/graphite/block-0.c: Same.
	* gcc.dg/graphite/block-1.c: Same.
	* gcc.dg/graphite/block-2.c: Same.
	* gcc.dg/graphite/block-3.c: Same.
	* gcc.dg/graphite/block-4.c: Same.
	* gcc.dg/graphite/block-5.c: Same.
	* gcc.dg/graphite/block-6.c: Same.
	* gfortran.dg/graphite/pr38083.f90: Same.
	* gfortran.dg/graphite/block-1.f90: Same.
	* gfortran.dg/graphite/block-3.f90: Same.
	* gfortran.dg/graphite/pr37852.f90: Same.
	* gfortran.dg/graphite/block-4.f90: Same.
	* gfortran.dg/graphite/pr37980.f90: Same.
	* gfortran.dg/graphite/pr38953.f90: Same.
	* gfortran.dg/graphite/pr37857.f90: Same.
	* opts.c: Remove -floop-block from -O2.
	* graphite-poly.c: Fail if -floop-block -floop-interchange or
	-floop-strip-mine are used.

2009-03-04  Tobias Grosser  <grosser@fim.uni-passau.de>
	    Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (build_cloog_prog): Unify scattering
	dimensions.
	* graphite-poly.c (pbb_compare, graphite_sort_pbbs,
	graphite_trans_bb_move_loop, graphite_trans_bb_strip_mine,
	strip_mine_profitable_p, is_interchange_valid,
	graphite_trans_bb_block, graphite_trans_loop_block,
	graphite_trans_scop_block): Temporary removed.
	(extend_scattering, unify_scattering_dimensions): New.
	(print_scattering_function, graphite_read_transforms):
	PBB_SCATTERING -> PBB_TRANSFORMED_SCATTERING.
	(graphite_generate_scattering_fns): Removed.
	(apply_poly_transforms): Cleanup.
	(free_poly_bb): Add PBB_SCATTERING -> PBB_TRANSFORMED_SCATTERING.
	(schedule_to_scattering): Moved.
	(PBB_STATIC_SCHEDULE, PBB_SCATTERING): Removed.
	(PBB_ORIGINAL_SCATTERING, PBB_TRANSFORMED_SCATTERING): New.
	(pbb_nb_scattering): New.
	(SCOP_ENTRY, SCOP_EXIT, SCOP_REGION_BBS, SCOP_DEP_GRAPH, SCOP_PARAMS,
	SCOP_LOOP_NEST, SCOP_PARAMS, SCOP_OLDIVS, SCOP_LIVEOUT_RENAMES):
	Removed.
	* graphite-ppl.c (ppl_insert_dimensions): Extended and renamed from
	shift_poly.
	(ppl_strip_loop): PBB_SCATTERING -> PBB_TRANSFORMED_SCATTERING.
	* graphite-scop-detection.c (dot_all_scops_1):  PBB_SCATTERING
	-> PBB_TRANSFORMED_SCATTERING.
	* graphite-sese-to-poly.c (build_scop_bbs): Remove region.
	(build_pbb_scattering_polyhedron): Moved from schedule_to_scattering.
	(build_scop_scattering): Renamed from build_scop_canonical_schedules.
	(check_poly_representation): Do not return bool.
	(graphite_transform_loops): Reformat.
	* sese.h (SESE_ENTRY_BB, SESE_EXIT_BB): New.

2009-03-04  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c (print_pbb_domain, print_pbb, print_scop,
	debug_pbb_domain, debug_pbb, debug_scop): New.
	* graphite-poly.h (print_pbb_domain, print_pbb, print_scop,
	debug_pbb_domain, debug_pbb, debug_scop): Declared.

2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/39335
	* tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
	when the type precision of the induction variable should be
	larger than the type precision of nit.
	(gen_parallel_loop): Update use of canonicalize_loop_ivs.
	* graphite-clast-to-gimple.c (graphite_loop_normal_form): Same.
	* tree-flow.h (canonicalize_loop_ivs): Update declaration.

	* gcc.dg/graphite/pr39335_1.c: New.
	* gcc.dg/graphite/pr39335.c: New.

2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-parloops.c (canonicalize_loop_ivs): reduction_list contains
	SSA_NAMES not struct reduction_info.

2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>

	* sese.c (expand_scalar_variables_expr): Handle ADDR_EXPR.

2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <grosser@fim.uni-passau.de>

	* sese.c (new_sese): Initialize SESE_REDUCTION_LIST.
	(free_sese): Free SESE_REDUCTION_LIST.
	* sese.h (struct sese): Add field reduction_list.
	(SESE_REDUCTION_LIST): New.
	* graphite-clast-to-gimple.c (graphite_loop_normal_form): Call
	canonicalize_loop_ivs on SESE_REDUCTION_LIST.

2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <grosser@fim.uni-passau.de>

	* tree-flow.h (gather_scalar_reductions): Use struct loop * instead
	of loop_p.

2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <grosser@fim.uni-passau.de>

	* tree-parloops.c (struct brli, build_reduction_list_info,
	analyze_reduction_list, gather_scalar_reductions): New.
	(loop_parallel_p): Build a reduction list containing only
	PHI_RESULT SSA_NAMEs: call gather_scalar_reductions.
	(gen_parallel_loop): Call the analysis analyze_reduction_list.
	(parallelize_loops): Now reduction_list is a htab_t of SSA_NAMEs.
	* tree-flow.h (gather_scalar_reductions): Declared.

2009-02-26  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/39308
	* graphite-clast-to-gimple.c (graphite_loop_normal_form): Do not call
	number_of_iterations_exit from a gcc_assert.

2009-02-25  Sebastian Pop  <sebastian.pop@amd.com>
	    Jan Sjodin  <jan.sjodin@amd.com>

	* output.h (graphite_out_file, graphite_in_file): Declared.
	* toplev.c (graphite_out_file, graphite_in_file): New.
	(init_asm_output): Initialize graphite_in_file and graphite_out_file.
	* graphite-clast-to-gimple.c (build_cloog_prog): Read PBB_SCATTERING.
	Don't call schedule_to_scattering.
	* common.opt (fgraphite-write, fgraphite-read): New.
	* graphite-poly.c: Include output.h.
	(print_scattering_function, print_scattering_functions,
	debug_scattering_function, debug_scattering_functions,
	graphite_write_transforms, graphite_read_transforms,
	graphite_generate_scattering_fns): New.
	(apply_poly_transforms): Do not apply transform if flag_graphite_read.
	Call graphite_generate_scattering_fns, graphite_write_transforms,
	graphite_read_transforms.
	(new_poly_bb): Initialize PBB_SCATTERING.
	(free_poly_bb): Free PBB_SCATTERING.
	(schedule_to_scattering): Does not return, initialize PBB_SCATTERING.
	* graphite-poly.h (struct poly_bb): Add field scattering.
	(PBB_SCATTERING): New.
	(print_scattering_function, print_scattering_functions,
	debug_scattering_function, debug_scattering_functions): Declared.
	* graphite-ppl.c (cloog_matrix_to_ppl_constraint): Matrices contain
	GMP values, not integers!
	(ppl_print_polyhedron_matrix, debug_ppl_polyhedron_matrix,
	ppl_read_polyhedron_matrix): New.
	* graphite-ppl.h (ppl_print_polyhedron_matrix,
	debug_ppl_polyhedron_matrix,
	ppl_read_polyhedron_matrix): Declared.
	* Makefile.in (graphite-poly.o): Depends on output.h.

2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <grosser@fim.uni-passau.de>

	Revert this change:
	* graphite-scop-detection.c (stmt_simple_for_scop_p): Analyze
	scalar evolutions in the scop_entry->loop_father.

2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.h (ref_nb_loops): Remove declaration.
	(struct gimple_bb, gimple_bb_p, GBB_BB, GBB_DATA_REFS, GBB_CONDITIONS,
	GBB_CONDITION_CASES, GBB_CLOOG_IV_TYPES, gbb_loop, print_gimple_bb,
	debug_gbb): Moved to sese.h.
	* sese.h: As said.

2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-data-ref.[ch]: Disable.

2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-scop-detection.c (stmt_simple_for_scop_p): Analyze
	scalar evolutions in the scop_entry->loop_father.

2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-scop-detection.c (nb_reductions_in_loop): Moved here...
	(graphite_cannot_represent_loop_niter): Renamed
	graphite_cannot_represent_loop.  Call nb_reductions_in_loop.
	(limit_scops): build_sese_loop_nests does not return a bool.
	* graphite-scop-detection.h (nb_reductions_in_loop): Declared.
	* sese.c (nb_reductions_in_loop): ... from here.
	(graphite_loop_normal_form): ... from here.
	(sese_record_loop): Does not fail, so does not return a bool.
	(build_sese_loop_nests): Same.
	* sese.h (build_sese_loop_nests): Update declaration.
	* graphite-clast-to-gimple.c (graphite_loop_normal_form): Moved here...
	(build_graphite_loop_normal_form): New.
	(gloog): Call build_graphite_loop_normal_form.
	* graphite-sese-to-poly.c (build_poly_scop): Don't fail on
	build_sese_loop_nests.

	* gcc.dg/graphite/id-1.c: New.

2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-sese-to-poly.c (scan_tree_for_params): Remove REAL_CST.
	The SCoP detection fix is sufficient.

2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/39260
	* graphite-scop-detection.c (harmful_stmt_in_bb): Stop a SCoP when
	the basic block contains a condition with a real type.
	* graphite-sese-to-poly.c (scan_tree_for_params): Handle REAL_CST.

	* gcc.dg/graphite/pr39260.c: New.

2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-poly.c: Inlcude params.h.
	(graphite_trans_loop_block): Use PARAM_LOOP_BLOCK_TILE_SIZE for
	the size of a tile.
	* Makefile.in (graphite-poly.o): Depend on PARAMS_H.
	* params.def (PARAM_LOOP_BLOCK_TILE_SIZE): Define.

2009-02-20  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-scop-detection.c (dot_all_scops_1,
	dot_all_scops): Moved here.
	* graphite-scop-detection.h (dot_all_scops): Declared here.
	* graphite.c (graphite_initialize, graphite_finalize): New.
	(graphite_transform_loops): Cleaned up.
	* sese.c (debug_oldivs): Moved here.
	* graphite-poly.c (graphite_apply_transformations): Renamed
	apply_poly_transforms.
	(debug_loop_vec): Moved here.
	* graphite-sese-to-poly.c (build_bb_loops, build_sese_conditions_1,
	scop_contains_non_iv_scalar_phi_nodes, build_sese_conditions,
	find_scop_parameters, build_scop_iteration_domain,
	add_conditions_to_constraints, build_scop_canonical_schedules,
	build_scop_data_accesses): Now static.
	(build_poly_scop, check_poly_representation): New.

2009-02-20  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (graphite_stmt_p, new_gimple_bb, free_gimple_bb,
	remove_gbbs_in_scop, free_scops, try_generate_gimple_bb,
	build_scop_bbs, ref_nb_loops, compare_prefix_loops,
	build_scop_canonical_schedules, build_bb_loops, add_value_to_dim,
	scan_tree_for_params_right_scev, scan_tree_for_params_int,
	scan_tree_for_params, struct irp_data, dx_record_params,
	find_params_in_bb, find_scop_parameters, gbb_from_bb,
	build_loop_iteration_domains, add_conditions_to_domain,
	phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes,
	scop_contains_non_iv_scalar_phi_nodes, build_sese_conditions_1,
	build_sese_conditions, add_conditions_to_constraints,
	build_scop_iteration_domain, build_access_matrix_with_af,
	build_access_matrix,
	build_scop_data_accesses): Moved to graphite-sese-to-poly.c.

	* graphite-sese-to-poly.c: New.
	* graphite-sese-to-poly.h: New.

	* Makefile.in: Add new rule for graphite-sese-to-poly.o.

2009-02-20  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c: Split graphite code generation to a new file.
	(graphite_verify, gmp_cst_to_tree, clast_name_to_gcc,
	max_precision_type, clast_to_gcc_expression_red,
	clast_to_gcc_expression, gcc_type_for_clast_expr,
	gcc_type_for_clast_eq, loop_iv_stack_patch_for_consts,
	graphite_translate_clast_equation, graphite_create_guard_cond_expr,
	graphite_create_new_guard, clast_get_body_of_loop,
	gcc_type_for_cloog_iv, gcc_type_for_iv_of_clast_loop,
	graphite_create_new_loop, build_iv_mapping, copy_renames,
	translate_clast, find_cloog_iv_in_expr, compute_cloog_iv_types_1,
	compute_cloog_iv_types, free_scattering, save_var_name,
	initialize_cloog_names, build_scop_context, build_cloog_prog,
	set_cloog_options, debug_clast_stmt, scop_to_clast,
	print_generated_program, debug_generated_program,
	gloog): Moved to graphite-clast-to-gimple.c.

	(struct cloog_prog_clast): Moved to graphite-clast-to-gimple.h.

	(iv_stack_entry_is_constant, iv_stack_entry_is_iv,
	loop_iv_stack_push_iv, loop_iv_stack_insert_constant,
	loop_iv_stack_pop, loop_iv_stack_get_iv,
	loop_iv_stack_get_iv_from_name, debug_loop_iv_stack,
	free_loop_iv_stack, loop_iv_stack_remove_constants,
	debug_rename_elt, debug_rename_map_1, debug_rename_map,
	rename_map_elt_info, eq_rename_map_elts, debug_ivtype_elt,
	debug_ivtype_map_1, debug_ivtype_map, ivtype_map_elt_info,
	eq_ivtype_map_elts, sese_add_exit_phis_edge,
	sese_add_exit_phis_var, sese_insert_phis_for_liveouts,
	get_vdef_before_sese, sese_adjust_vphi,
	get_new_name_from_old_name, sese_adjust_phis_for_liveouts,
	oldiv_for_loop, rename_variables_in_stmt, is_parameter,
	is_iv, expand_scalar_variables_ssa_name,
	expand_scalar_variables_expr, expand_scalar_variables_stmt,
	expand_scalar_variables, rename_variables, remove_condition,
	get_true_edge_from_guard_bb, get_false_edge_from_guard_bb,
	add_loop_exit_phis, insert_loop_close_phis, struct igp,
	default_liveout_before_guard, add_guard_exit_phis,
	insert_guard_phis, register_old_and_new_names,
	graphite_copy_stmts_from_block, register_sese_liveout_renames,
	copy_bb_and_scalar_dependences, outermost_loop_in_sese,
	if_region_set_false_region, create_if_region_on_edge,
	move_sese_in_condition): Moved to sese.c.

	(nb_loops_around_loop_in_sese, struct ifsese, if_region_entry,
	if_region_exit, if_region_get_condition_block,
	struct rename_map_elt, new_rename_map_elt, enum iv_stack_entry_kind,
	union iv_stack_entry_data_union, struct iv_stack_entry_struct,
	iv_stack_entry_p, loop_iv_stack, struct ivtype_map_elt,
	ivtype_map_elt, new_ivtype_map_elt,
	recompute_all_dominators): Moved to sese.h.

	* graphite-clast-to-gimple.c: New.
	* graphite-clast-to-gimple.h: New.
	* Makefile.in: Add new rule for graphite-clast-to-gimple.o.
	* sese.c: Modified as said above.
	* sese.h: Same.

2009-02-20  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c: Split scop detection to a new file.
	(enum gbb_type, gbb_type, get_bb_type, struct sd_region_p, sd_region,
	move_sd_regions, loop_affine_expr, exclude_component_ref,
	is_simple_operand, stmt_simple_for_scop_p, harmful_stmt_in_bb,
	graphite_cannot_represent_loop_niter, struct scopdet_info,
	scopdet_basic_block_info, build_scops_1, bb_in_sd_region,
	find_single_entry_edge, find_single_exit_edge,
	create_single_entry_edge, sd_region_without_exit,
	create_single_exit_edge, unmark_exit_edges, mark_exit_edges,
	create_sese_edges, build_graphite_scops, limit_scops, build_scops):
	Moved to graphite-scop-detection.c.

	* graphite-scop-detection.c: New.
	* graphite-scop-detection.h: New.
	* Makefile.in: Add new rule for graphite-scop-detection.o.

	* sese.c: Include tree-chrec.h, tree-data-ref.h, and
	tree-scalar-evolution.h.
	(nb_reductions_in_loop, graphite_loop_normal_form, sese_record_loop,
	build_sese_loop_nests): Moved here from graphite.c.
	(param_index): Renamed parameter_index_in_region.

2009-02-18  Tobias Grosser  <grosser@fim.uni-passau.de>
	    Sebastian Pop  <sebastian.pop@amd.com>

	* gcc.dg/graphite/block-0.c: Expected to fail now.
	* gcc.dg/graphite/block-1.c: Same.
	* gcc.dg/graphite/block-5.c: Same.
	* gcc.dg/graphite/block-6.c: Same.

2009-02-18  Tobias Grosser  <grosser@fim.uni-passau.de>
	    Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.h: Separate from graphite_bb_p the polyhedral
	representation in poly_bb_p and the GCC specifics in gimple_bb_p.
	(struct data_dependence_polyhedron, RDGE_DDP, ddp_p): Moved to
	graphite-data-ref.h.
	(struct poly_bb, PBB_SCOP, PBB_STATIC_SCHEDULE, PBB_DOMAIN,
	PBB_BLACK_BOX, PBB_LOOPS, pbb_nb_loops, pbb_loop_at_index,
	pbb_loop_index, struct scop, SCOP_BBS, SCOP_REGION, SCOP_ENTRY,
	SCOP_EXIT, SCOP_REGION_BBS, SCOP_DEP_GRAPH, SCOP_PARAMS,
	SCOP_LOOP_NEST, SCOP_PARAMS, SCOP_OLDIVS, SCOP_LIVEOUT_RENAMES,
	scop_nb_params): Moved to graphite-poly.h.
	* graphite-data-ref.c: Same.
	* graphite-data-ref.h: New.
	* graphite.c: Same.
	(pbb_compare, graphite_sort_pbbs, graphite_trans_bb_move_loop,
	graphite_trans_bb_strip_mine, strip_mine_profitable_p,
	is_interchange_valid, graphite_trans_bb_block,
	graphite_trans_loop_block, scop_max_loop_depth,
	graphite_trans_scop_block, graphite_apply_transformations,
	new_poly_bb, free_poly_bb, new_scop, free_scop): Moved to
	graphite-poly.c.
	* graphite-poly.h: New.
	* graphite-poly.c: New.
	* Makefile.in (OBJS-common): Add graphite-poly.o.
	(graphite-poly.o): New rule.
	* tree-data-ref.h (struct data_reference): Remove unused scop field.
	(DR_SCOP): Removed.

2009-02-18  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c: Replace gb -> gbb.
	* graphite.h: Same.
	* graphite-data-ref.c: Same.

2009-02-18  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <grosser@fim.uni-passau.de>

	* Makefile.in (OBJS-commmon): Add sese.o.
	(sese.o): New.
	(graphite.o): Add sese.h.
	* graphite.c (bb_in_ss_p, loop_in_sese_p,
	sese_build_livein_liveouts_use, sese_build_livein_liveouts_bb,
	sese_build_livein_liveouts, register_bb_in_sese, new_sese, free_sese):
	Move to sese.
	(block_before_scop): Add missing return.
	(new_scop, free_scop): Remove SESE data structures.
	(scop_record_loop, scan_tree_for_params, find_params_in_bb,
	find_scop_parameters, build_loop_iteration_domains,
	add_conditions_to_domain, register_scop_liveout_renames,
	copy_bb_and_scalar_dependences): Scop -> SESE.

	(add_conditions_to_domain): SCoP -> SESE and remove check
	(scop_contains_non_iv_scalar_phi_nodes): New.
	(build_scop_conditions_1, build_scop_conditions): Remove check for
	non iv scalar phi nodes.
	(print_scop_statistics): New.
	(graphite_transform_loops): Cleanup.

	* graphite.h: Move to sese & cleanup.
	* sese.c: New.
	* sese.h: New.

2009-02-16  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (build_scop_conditions_1): Conditions are only
	at the end of a basic block.

2009-02-16  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <grosser@fim.uni-passau>

	* graphite.h (struct graphite_bb): Remove compressed_alpha_matrix
	field.
	(GBB_ALPHA): Removed.

2009-02-16  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite-data-ref.c (graphite_test_dependence): Don't use
	GBB_DYNAMIC_SCHEDULE.
	* graphite.c (new_graphite_bb): Same.
	(free_graphite_bb): Same.
	(build_scop_dynamic_schedules): Removed.
	(graphite_transform_loops): Don't call it.
	* graphite.h (struct graphite_bb): Remove dynamic_schedule field.
	(GBB_DYNAMIC_SCHEDULE): Removed.

2009-02-16  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (schedule_to_scattering): Don't use CloogMatrix.
	(print_graphite_bb): Same.
	(build_cloog_prog): Same.

2009-02-16  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (build_cloog_prog): Don't use CloogMatrix.

2009-02-16  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (build_scop_context): Don't use CloogMatrix.
	* graphite-ppl.c (new_Cloog_Domain_from_ppl_Polyhedron): New.
	* graphite-ppl.h (new_Cloog_Domain_from_ppl_Polyhedron): Declared.

2009-02-16  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.h (struct scop): Move params, old_ivs, loops, loop_nest,
	liveout_renames, add_params fields...
	(struct sese): ... here.
	(SESE_PARAMS, SESE_LOOPS, SESE_LOOP_NEST, SESE_ADD_PARAMS,
	SESE_PARAMS, SESE_OLDIVS, SESE_LIVEOUT_RENAMES): New.

2009-02-16  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (print_scop): Do not print the CLooG program.
	(new_scop, free_scop, initialize_cloog_names, build_scop_context,
	build_cloog_prog, gloog): Don't use SCOP_PROG.
	(find_transform): Renamed scop_to_clast.
	(print_generated_program, debug_generated_program): New.
	(graphite_transform_loops): Adapt to new interface.
	* graphite.h (struct scop): Remove program field.
	(SCOP_PROG): Removed.
	(print_generated_program, debug_generated_program): Declared.

2009-02-16  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-data-ref.c (schedule_precedes_p, schedule_same_p): New.
	(statement_precedes_p): Use schedule_same_p and schedule_precedes_p.
	* graphite.c (gbb_compare, schedule_to_scattering, print_graphite_bb,
	free_graphite_bb, build_scop_canonical_schedules,
	graphite_trans_bb_strip_mine, graphite_trans_scop_block): Static
	schedules are now represented using a ppl_Linear_Expression_t.
	* graphite.h (struct graphite_bb): Same.
	* graphite-ppl.c (ppl_lexico_compare_linear_expressions): New.
	* graphite-ppl.h (ppl_lexico_compare_linear_expressions): Declared.

2009-02-15  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c: Free local memory.
	* graphite-ppl.c: Same.

2009-02-15  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (const_column_index, get_first_matching_sign_row_index,
	get_lower_bound_row, get_upper_bound_row, copy_constraint,
	swap_constraint_variables, scale_constraint_variable): Removed.
	(graphite_trans_bb_strip_mine): Remove pong.
	* graphite-ppl.c: Include missing header files.
	(set_inhomogeneous, set_coef, shift_poly, ppl_strip_loop): New.
	* graphite-ppl.h (ppl_strip_loop): Declared.
	* Makefile.in (graphite-ppl.o): Adjust dependences.

2009-02-14  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (build_loop_iteration_domains): Remove ping pong.
	(build_scop_iteration_domain): Same.

2009-02-13  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (scan_tree_for_params, add_conditions_to_domain): Remove
	ping pong.
	(add_value_to_dim, scan_tree_for_params_right_scev,
	scan_tree_for_params_int): New.
	* graphite-ppl.c (oppose_constraint): New.
	(insert_constraint_into_matrix): Implement missing cases.
	* graphite-ppl.h (insert_constraint_into_matrix): Declared.

2009-02-13  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (graphite_trans_bb_move_loop): Remove ping pong,
	use ppl_move_dimension.

2009-02-12  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-data-ref.c: Domains are now ppl_Polyhedra_t.
	* graphite.c: Same.
	* graphite.h: Same.
	* graphite-ppl.c: Same.
	* graphite-ppl.h: Same.

2009-02-12  Sebastian Pop  <sebastian.pop@amd.com>

	Revert last 3 commits.

2009-02-10  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (scan_tree_for_params, add_conditions_to_domain): Remove
	ping pong.
	(add_value_to_dim, scan_tree_for_params_right_scev,
	scan_tree_for_params_int): New.
	* graphite-ppl.c (oppose_constraint): New.
	(insert_constraint_into_matrix): Implement missing cases.
	* graphite-ppl.h (insert_constraint_into_matrix): Declared.

2009-02-10  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (graphite_trans_bb_move_loop): Remove unused variables.

2009-02-10  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (graphite_trans_bb_move_loop): Remove ping pong,
	use ppl_move_dimension.
	* graphite-ppl.c (ppl_move_dimension): New.
	* graphite-ppl.h (ppl_move_dimension): Declared.

2009-02-10  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c: Do not include cloog/cloog.h.
	(print_graphite_bb): Remove ping pong, call PPL print function.

2009-02-10  Tobias Grosser  <grosser@fim.uni-passau.de>

	* Makefile.in (OBJS-common): Add graphite-ppl.o.
	(graphite.o): Add dependence on graphite-ppl.h.
	(graphite-ppl.o): New.
	(graphite-data-ref.c): Ping pong between PPL data structures
	and matrices.
	* graphite-ppl.c: New.
	* graphite-ppl.h: New.
	* graphite.c: Include graphite-ppl.h.
	(print_graphite_bb, add_conditions_to_domain, build_cloog_prog,
	graphite_trans_bb_move_loop, graphite_trans_bb_strip_mine):
	Ping pong between PPL data structures and matrices.
	(new_graphite_bb): Create a PPL constraint system.
	Call ppl_delete_Constraint_System instead of cloog_matrix_free.
	(build_loop_iteration_domains): Use PPL functions.
	* graphite.h: Include graphite-ppl.h.  Fix comments.
	(graphite_bb): Use a ppl_Constraint_System_t instead of
	CloogMatrix for representing the domain.
	(scop): Remove static_schedule.
	(gbb_nb_loops): Ping pong between PPL data structures and matrices.

2009-02-06  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c: Fix some comments.

2009-02-05  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/38953
	* graphite.c (if_region_set_false_region): After moving a region
	in the false branch of a condition, remove the empty dummy
	basic block.
	(gloog): Remove wrong fix for PR38953.

2009-02-03  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
	sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
	register_bb_in_sese, new_sese, free_sese): Moved.
	(dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
	outermost_loop_in_scop, build_scop_iteration_domain,
	expand_scalar_variables_ssa_name, get_vdef_before_scop,
	limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
	Use loop_in_sese_p instead of loop_in_scop_p.
	(new_graphite_bb, new_scop, gloog): Do not initialize SCOP_BBS_B.
	(free_scop): Do not free SCOP_BBS_B.
	(nb_loops_around_loop_in_scop, nb_loops_around_gb,
	ref_nb_loops): Moved here...
	* graphite.h (ref_nb_loops): ... from here.
	(struct scop): Remove bbs_b bitmap.
	(SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
	* gcc.dg/graphite/scop-19.c: New

2009-02-03  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (scopdet_basic_block_info): Fix bug in scop
	detection.

2009-01-30  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
	eq_loop_to_cloog_loop): Remove.
	(new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP.
	* graphite.h (struct scop): Remove loop2cloog_loop.
	(loop_domain_dim, loop_iteration_vector_dim): Remove.

2009-01-30  Tobias Grosser  <grosser@fim.uni-passau.de>

	* opts.c (decode_options): Only add graphite options to O2
	if we compile with graphite enabled.

2009-01-26  Sebastian Pop  <sebastian.pop@amd.com>

	* Merge from mainline (r143163:143684).

2009-01-26  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (debug_value): Removed.
	* graphite.h (debug_value): Removed.

2009-01-23  Sebastian Pop  <sebastian.pop@amd.com>

	* passes.c (init_optimization_passes): Do not call pass_copy_prop
	after graphite: pass_copy_prop does not maintain a proper loop closed
	SSA form.  pass_copy_prop should be fixed.

2009-01-23  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (scop_adjust_phis_for_liveouts): Fix warning.

2009-01-23  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
	(gloog): Split the exit of the scop when the scop exit is a loop exit.
	(graphite_transform_loops): Only call cleanup_tree_cfg if gloog
	changed the CFG.

2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (gloog): Return true when code gen succeeded.
	(graphite_transform_loops): Do not call cleanup_tree_cfg if
	the code of the function did not changed.  After cleanup_tree_cfg
	call rewrite_into_loop_closed_ssa to maintain the loop closed ssa
	form.

2009-01-19  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (stmt_simple_for_scop_p): Also handle cases when
	gimple_call_lhs is NULL.

2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <tobi.grosser@amd.com>

	* graphite.c (graphite_trans_scop_block): Do not block single
	nested loops.

2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <tobi.grosser@amd.com>

	* graphite.c (build_scop_canonical_schedules): Start schedules at
	zero.

2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <tobi.grosser@amd.com>

	* graphite.c (compare_prefix_loops): New.
	(build_scop_canonical_schedules): Rewritten.
	(graphite_transform_loops): Move build_scop_canonical_schedules
	after build_scop_iteration_domain.

2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <tobi.grosser@amd.com>

	* graphite.c (add_conditions_to_domain): Add the loops to
	the dimension of the iteration domain.  Do copy the domain
	only when it exists.
	(build_scop_conditions_1): Do not call add_conditions_to_domain.
	(add_conditions_to_constraints): New.
	(can_generate_code_stmt, can_generate_code): Removed.
	(gloog): Do not call can_generate_code.
	(graphite_transform_loops): Call add_conditions_to_constraints
	after building the iteration domain.

2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <tobi.grosser@amd.com>
	    Jan Sjodin  <jan.sjodin@amd.com>

	* graphite.c (scan_tree_for_params): On substractions negate
	all the coefficients of the term.
	(clast_to_gcc_expression_red): New.  Handle reduction expressions
	of more than two operands.
	(clast_to_gcc_expression): Call clast_to_gcc_expression_red.
	(get_vdef_before_scop): Handle also the case of default definitions.

2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/38431
	* graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
	(scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
	(gloog): Do not call cleanup_tree_cfg.
	(graphite_transform_loops): Call cleanup_tree_cfg after all
	scops have been code generated.

2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>

	* passes.c (init_optimization_passes): Schedule after
	graphite transforms pass_copy_prop, pass_dce_loop and pass_lim.

2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (expand_scalar_variables_stmt): Do not pass loop_p.
	Fix comment.
	(expand_scalar_variables_ssa_name): Do not pass loop_p.  Fix comment.
	Set the type of an expression to the type of its assign	statement.
	(expand_scalar_variables_expr):  Do not pass loop_p.
	Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
	(copy_bb_and_scalar_dependences): Do not pass loop_p.
	(translate_clast): Update call to copy_bb_and_scalar_dependences.

2009-01-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (expand_scalar_variables_ssa_name): Set the type of
	an expression to the gimple_expr_type of its assign statement.
	(expand_scalar_variables_expr): Stop recursion on tcc_constant
	or tcc_declaration.

2009-01-11  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/38786
	* gcc.dg/graphite/pr38786.c: New.
	* graphite.c (expand_scalar_variables_ssa_name): New, outlined from
	the SSA_NAME case of expand_scalar_variables_expr.
	(expand_scalar_variables_expr): Also gather the scalar computation
	used to index the memory access.
	(expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
	the gimple_stmt_iterator where it inserts new code.

2009-01-10  Sebastian Pop  <sebastian.pop@amd.com>

	* gcc.dg/graphite/block-3.c: Fix compile error on 32bit.

2009-01-10  Sebastian Pop  <sebastian.pop@amd.com>

	* opts.c (decode_options): Enable flag_graphite_identity and
	flag_loop_block in -O2 and above.

2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>

	* libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.class:
	Fix merge problem: replace with the file from trunk.

2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>

	* Merge from mainline (r141727:143163).

2009-01-07  Sebastian Pop  <sebastian.pop@amd.com>
	    Jan Sjodin  <jan.sjodin@amd.com>

	PR tree-optimization/38559
	* gcc.dg/graphite/pr38559.c: New.

	* graphite.c (debug_value, copy_constraint,
	swap_constraint_variables, scale_constraint_variable, ): New.
	(get_lower_bound, get_upper_bound): Removed.
	(graphite_trans_bb_strip_mine): Clean up this code that works
	only for constant number of iterations.  Fully copy upper and
	lower bound constraints, not only the constant part of them.
	* graphite.h (debug_value): Declared.

2009-01-06  Jan Sjodin  <jan.sjodin@amd.com>

	PR tree-optimization/38492
	PR tree-optimization/38498
	* tree-check.c (operator_is_linear, scev_is_linear_expression): New.
	* tree-chrec.h (scev_is_linear_expression): Declared.
	* graphite.c (graphite_cannot_represent_loop_niter): New.
	(scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
	(graphite_loop_normal_form): Use gcc_assert.
	(scan_tree_for_params): Use CASE_CONVERT.
	(phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
	(build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
	Use gcc_assert.  Discard scops that contain unhandled cases.
	(build_scop_conditions): Return a boolean status for unhandled cases.
	(strip_mine_profitable_p): Print the loop number, not its depth.
	(is_interchange_valid): Pass the depth of the loop nest, don't
	recompute it wrongly.
	(graphite_trans_bb_block): Same.
	(graphite_trans_bb_block): Print tentative of loop blocking.
	(graphite_trans_scop_block): Do not print that the loop has been
	blocked.
	(graphite_transform_loops): Do not handle scops that contain condition
	scalar phi nodes.

	* gcc.dg/graphite/pr38500.c: Fixed warning as committed
	in trunk.
	* gcc.dg/graphite/block-0.c: Update test.
	* gcc.dg/graphite/block-1.c: Same.
	* gcc.dg/graphite/block-2.c: Remove xfail and test for
	blocking.
	* gcc.dg/graphite/block-4.c: Remove test for strip mine.
	* gcc.dg/graphite/block-3.c: New.
	* gcc.dg/graphite/pr38498.c: New.

2008-12-22  Harsha Jagasia  <harsha.jagasia@amd.com>

	PR tree-optimization/38510
	* gcc.dg/graphite/pr38510.c: New.
	* graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
	  (translate_clast): Call recompute_all_dominators before
	  graphite_verify.
	  (gloog): Call recompute_all_dominators before graphite_verify.

2008-12-12  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/38492
	* graphite.c (rename_map_elt, debug_rename_elt,
	debug_rename_map_1, debug_rename_map, new_rename_map_elt,
	rename_map_elt_info, eq_rename_map_elts,
	get_new_name_from_old_name, bb_in_sese_p): Moved around.
	(sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
	(sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
	(sese_build_livein_liveouts): New.
	(new_sese, free_sese): New.
	(new_scop): Call new_sese.
	(free_scop): Call free_sese.
	(rename_variables_from_edge, rename_phis_end_scop): Removed.
	(register_old_new_names): Renamed register_old_and_new_names.
	(register_scop_liveout_renames, add_loop_exit_phis,
	insert_loop_close_phis, struct igp,
	default_liveout_before_guard, add_guard_exit_phis,
	insert_guard_phis, copy_renames): New.
	(translate_clast): Call insert_loop_close_phis and insert_guard_phis.
	(sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
	(rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
	(scop_adjust_phis_for_liveouts): New.
	(gloog): Call scop_adjust_phis_for_liveouts.

	* graphite.h (struct sese): Documented.  Added fields liveout,
	num_ver and livein.
	(SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
	(new_sese, free_sese, sese_build_livein_liveouts): Declared.
	(struct scop): Added field liveout_renames.
	(SCOP_LIVEOUT_RENAMES): New.

2008-12-11  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/38409
	* gcc.dg/graphite/pr38409.c: New.
	* graphite.c (nb_reductions_in_loop): Use simple_iv.

2008-12-11  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (gcc_type_for_cloog_iv): By default return
	integer_type_node.
	(graphite_create_new_loop): Don't fold_convert the already
	fold_convert-ed expression.

2008-12-11  Harsha Jagasia  <harsha.jagasia@amd.com>

	PR tree-optimization/38446
	* gcc.dg/graphite/pr38446.c: New.
	* graphite.c (register_bb_in_sese): New.
	(bb_in_sese_p): Check if bb belongs to sese region by explicitly
	looking at the bbs in the region.
	* graphite.h (sese): Add region_basic_blocks pointer set to
	structure and initialize at the time of defining new scop.

2008-12-11  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (new_graphite_bb): Initialize GBB_STATIC_SCHEDULE.
	(find_params_in_bb): Do not free data refs.
	(free_graphite_bb): Add FIXME on disabled free_data_refs.

2008-12-11  Sebastian Pop  <sebastian.pop@amd.com>

	* gcc.dg/graphite/scop-16.c: Test only scop specific info.
	* gcc.dg/graphite/scop-17.c: Same.
	* gcc.dg/graphite/block-5.c: New.
	* gcc.dg/graphite/block-6.c: New.
	* gcc.dg/graphite/pr37485.c: Clean dump file after.
	* gcc.dg/graphite/pr37684.c: Same.
	* gcc.dg/graphite/block-2.c: Same.

	* graphite.c (struct ivtype_map_elt): New.
	(debug_ivtype_elt, debug_ivtype_map_1, debug_ivtype_map,
	new_ivtype_map_elt, ivtype_map_elt_info, eq_ivtype_map_elts,
	gcc_type_for_cloog_iv): New.
	(loop_iv_stack_patch_for_consts): Use the type of the induction
	variable from the original loop, except for the automatically
	generated loops, i.e., in the case of a strip-mined loop, in
	which case there is no original loop: in that case just use
	integer_type_node.
	(new_graphite_bb): Initialize GBB_CLOOG_IV_TYPES.
	(free_graphite_bb): Free GBB_CLOOG_IV_TYPES.
	(clast_name_to_gcc): Accept params to be NULL.
	(clast_to_gcc_expression): Take an extra parameter for the type.
	Convert to that type all the expressions built by this function.
	(gcc_type_for_clast_expr, gcc_type_for_clast_eq): New.
	(graphite_translate_clast_equation): Compute the type of the
	clast_equation before translating its LHS and RHS.
	(clast_get_body_of_loop, gcc_type_for_iv_of_clast_loop): New.
	(graphite_create_new_loop): Compute the type of the induction
	variable before translating the lower and upper bounds and before
	creating the induction variable.
	(rename_variables_from_edge, rename_phis_end_scop): New.
	(copy_bb_and_scalar_dependences): Call rename_phis_end_scop.
	(sese_add_exit_phis_edge): Do not use integer_zero_node.
	(find_cloog_iv_in_expr, compute_cloog_iv_types_1,
	compute_cloog_iv_types): New.
	(gloog): Call compute_cloog_iv_types before starting the
	translation of the clast.

	* graphite.h (struct graphite_bb): New field cloog_iv_types.
	(GBB_CLOOG_IV_TYPES): New.
	(debug_ivtype_map): Declared.
	(oldiv_for_loop): New.

2008-12-10  Tobias Grosser  <grosser@fim.uni-passau.de>

	PR middle-end/38459
	* graphite.c (new_scop): Initialize SCOP_ADD_PARAMS.
	(param_index): Assert if parameter is not know after parameter
	detection.
	(find_params_in_bb): Detect params directly in GBB_CONDITIONS.
	(find_scop_parameters): Mark, that we have finished parameter
	detection.
	(graphite_transform_loops): Move condition detection before parameter
	detection.
	* graphite.h (struct scop): Add SCOP_ADD_PARAMS.
	* gfortran.dg/graphite/pr38459.f90: New.

2008-12-09  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (graphite_transform_loops): Always call find_transform ()
	in ENABLE_CHECKING.  So we test these code paths, even if we do not
	generate code.

2008-12-09  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (print_graphite_bb): Fix printing to file != dump_file.
	(print_scop): Ditto.

2008-12-08  Tobias Grosser  <grosser@fim.uni-passau.de>

	PR middle-end/38084
	Fix gfortran.dg/graphite/id-3.f90.
	* graphite.c (scopdet_basic_block_info): Fix bug that found some
	regions more than once.

2008-12-03  Sebastian Pop  <sebastian.pop@amd.com>

	Fix gfortran.dg/graphite/id-4.f90.
	* graphite.c (scan_tree_for_params): Do not compute the multiplicand
	when not needed.

2008-12-03  Sebastian Pop  <sebastian.pop@amd.com>

	Fix gfortran.dg/graphite/id-1.f90.
	* graphite.c (gmp_cst_to_tree): Pass the type in parameter.
	(loop_iv_stack_patch_for_consts): Update use of gmp_cst_to_tree.
	(max_precision_type): New.
	(value_clast): Removed.
	(clast_to_gcc_expression): Be more careful to types of expressions.
	Use max_precision_type and update use of gmp_cst_to_tree.
	(graphite_translate_clast_equation): Use max_precision_type.
	(graphite_create_guard_cond_expr): Do not use integer_type_node,
	use the type of the condition.
	(graphite_create_new_loop): Do not use integer_type_node, use the
	max_precision_type of lb and ub.

2008-12-03  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (build_scops_1): Initialize open_scop.exit
	and sinfo.last.

2008-12-02  Sebastian Pop  <sebastian.pop@amd.com>

	* gcc.dg/graphite/pr38084.c: New.
	* gfortran.dg/graphite/id-1.f90: New.
	* gfortran.dg/graphite/id-2.f90: New.
	* gfortran.dg/graphite/id-3.f90: New.
	* gfortran.dg/graphite/id-4.f90: New.
	* gfortran.dg/graphite/pr37857.f90: New.

2008-12-02  Sebastian Pop  <sebastian.pop@amd.com>
	    Jan Sjodin  <jan.sjodin@amd.com>
	    Harsha Jagasia  <harsha.jagasia@amd.com>

	PR middle-end/37852
	PR middle-end/37883
	PR middle-end/37928
	PR middle-end/37980
	PR middle-end/38038
	PR middle-end/38039
	PR middle-end/38073
	PR middle-end/38083
	PR middle-end/38125

	* gcc.dg/graphite/pr38073.c: New.
	* gcc.dg/graphite/pr37928.c: New.
	* gcc.dg/graphite/pr37883.c: New.
	* gcc.dg/graphite/pr38125.c: New.
	* gfortran.dg/graphite/pr38083.f90: New.
	* gfortran.dg/graphite/pr37852.f90: New.
	* gfortran.dg/graphite/pr37980.f90: New.

	* gcc.dg/graphite/scop-18.c: Remove reduction, test for
	the number of detected scops.  Copy exact same test for loop
	blocking...
	* gcc.dg/graphite/block-1.c: Fix the number of expected
	loops to be blocked as reductions are not handled.
	* gcc.dg/graphite/block-4.c: ...here.  New.

	* tree-phinodes.c (remove_phi_nodes): New, extracted from...
	* tree-cfg.c (remove_phi_nodes_and_edges_for_unreachable_block):
	...here.
	* tree-flow.h (remove_phi_nodes, canonicalize_loop_ivs): Declared.
	* Makefile.in (graphite.o): Depend on value-prof.h.
	(graphite.o-warn): Removed -Wno-error.
	* tree-parloops.c (canonicalize_loop_ivs): Allow reduction_list
	to be a NULL pointer.  Call update_stmt.  Return the newly created
	cannonical induction variable.

	* graphite.h (debug_rename_map): Declared.  Fix some comments.

	* graphite.c: Reimplement the code generation from graphite to gimple.
	Include value-prof.h.
	(loop_iv_stack_get_iv): Do not return NULL for constant substitutions.
	(get_old_iv_from_ssa_name): Removed.
	(graphite_stmt_p): New.
	(new_graphite_bb): Test for useful statements before building a
	graphite statement for the basic block.
	(free_graphite_bb): Do not free GBB_DATA_REFS: this is a bug
	in free_data_ref that calls BITMAP_FREE (DR_VOPS (dr)) without
	reason.
	(recompute_all_dominators, graphite_verify,
	nb_reductions_in_loop, graphite_loop_normal_form): New.
	(scop_record_loop): Call graphite_loop_normal_form.
	(build_scop_loop_nests): Iterate over all the blocks of the
	function instead of relying on the incomplete information from
	SCOP_BBS.  Return the success of the operation.
	(find_params_in_bb): Use the data from GBB_DATA_REFS.
	(add_bb_domains): Removed.
	(build_loop_iteration_domains): Don't call add_bb_domains.
	Add the iteration domain only to the basic blocks that have been
	translated to graphite.
	(build_scop_conditions_1): Add constraints only if the basic
	block have been translated to graphite.
	(build_scop_data_accesses): Completely disabled until data
	dependence is correctly implemented.
	(debug_rename_elt, debug_rename_map_1, debug_rename_map): New.
	(remove_all_edges_1, remove_all_edges): Removed.
	(get_new_name_from_old_name): New.
	(graphite_rename_variables_in_stmt): Renamed
	rename_variables_in_stmt.  Call get_new_name_from_old_name.
	Use replace_exp	and update_stmt.
	(is_old_iv): Renamed is_iv.
	(expand_scalar_variables_stmt): Extra parameter for renaming map.
	Use replace_exp	and update_stmt.
	(expand_scalar_variables_expr): Same.  Use the map to get the
	new names for the renaming of induction variables and for the
	renaming of variables after a basic block has been copied.
	(expand_scalar_variables): Same.
	(graphite_rename_variables): Renamed rename_variables.
	(move_phi_nodes): Removed.
	(get_false_edge_from_guard_bb): New.
	(build_iv_mapping): Do not insert the induction variable of a
	loop in the renaming iv map if the basic block does not belong
	to that loop.
	(register_old_new_names, graphite_copy_stmts_from_block,
	copy_bb_and_scalar_dependences): New.
	(translate_clast): Heavily reimplemented: copy basic blocks,
	do not move them.  Finally, in call cleanup_tree_cfg in gloog.
	At each translation step call graphite_verify ensuring the
	consistency of the SSA, loops and dominators information.
	(collect_virtual_phis, find_vdef_for_var_in_bb,
	find_vdef_for_var_1, find_vdef_for_var,
	patch_phis_for_virtual_defs): Removed huge hack.
	(mark_old_loops, remove_dead_loops, skip_phi_defs,
	collect_scop_exit_phi_args, patch_scop_exit_phi_args,
	gbb_can_be_ignored, scop_remove_ignoreable_gbbs, ): Removed.
	(remove_sese_region, ifsese, if_region_entry, if_region_exit,
	if_region_get_condition_block, if_region_set_false_region,
	create_if_region_on_edge, move_sese_in_condition, bb_in_sese_p,
	sese_find_uses_to_rename_use, sese_find_uses_to_rename_bb,
	sese_add_exit_phis_edge, sese_add_exit_phis_var,
	rewrite_into_sese_closed_ssa): New.
	(gloog): Remove dead code.  Early return if code cannot be
	generated.  Call cleanup_tree_cfg once the scop has been code
	generated.
	(graphite_trans_scop_block, graphite_trans_loop_block): Do not
	block loops with less than two loops.
	(graphite_apply_transformations): Remove the call to
	scop_remove_ignoreable_gbbs.
	(limit_scops): When build_scop_loop_nests fails, continue on
	the next scop.  Fix open_scop.entry.
	(graphite_transform_loops): Call recompute_all_dominators: force the
	recomputation of correct CDI_DOMINATORS and CDI_POST_DOMINATORS.
	Call initialize_original_copy_tables and free_original_copy_tables
	to be able to copy basic blocks during code generation.
	When build_scop_loop_nests fails, continue on next scop.
	(value_clast): New union.
	(clast_to_gcc_expression): Fix type cast warning.

2008-11-09  Sebastian Pop  <sebastian.pop@amd.com>

	* Merge from mainline (r140838:141727).

2008-11-05  Tobias Grosser  <grosser@fim.uni-passau.de>

	PR middle-end/37833

	* graphite.c (scan_tree_for_params): Add POINTER_PLUS_EXPR.

2008-11-05  Tobias Grosser  <grosser@fim.uni-passau.de>

	PR middle-end/37943

	* graphite.c (scopdet_basic_block_info): Fix loops with multiple
	exits and conditions.
	* gcc.dg/graphite/pr37943.c: New.

2008-10-23  Tobias Grosser  <grosser@fim.uni-passau.de>

	PR middle-end/37886
	* graphite.c (gloog): Replace EXIT_BLOCK_PTR with scop exit.

2008-10-23  Tobias Grosser  <grosser@fim.uni-passau.de>

	* doc/invoke.texi: Fix spaces.

2008-10-22  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/37891
	Reverted last commit.
	* graphite.c (create_single_entry_edge): Set
	EDGE_IRREDUCIBLE_LOOP and BB_IRREDUCIBLE_LOOP.

2008-10-21  Sebastian Pop  <sebastian.pop@amd.com>
	    Mitul Thakkar  <mitul.thakkar@amd.com>

	* graphite.c (create_single_entry_edge): Set
	EDGE_IRREDUCIBLE_LOOP and BB_IRREDUCIBLE_LOOP.

2008-10-16  Tobias Grosser  <grosser@fim.uni-passau.de>

	* doc/invoke.texi: Add -fgraphite-identity.
	* graphite.c (graphite_apply_transformations): Check for
	-fgraphite-identity.
	* toplev.c (process_options): Add flag_graphite_identity.
	* tree-ssa-loop.c: Add flag_graphite_identity.

2008-10-14  Sebastian Pop  <sebastian.pop@amd.com>

	Undo changes from 2008-10-02:
	* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Convert
	operand type when copying the operand to a variable of different type.
	* cfgloopmanip.c (create_empty_loop_on_edge): Write exit condition
	with the IV name after increment.

2008-10-14  Sebastian Pop  <sebastian.pop@amd.com>
    	    Harsha Jagasia  <harsha.jagasia@amd.com>

	PR tree-optimization/37828
	* gcc.dg/graphite/pr37828.c: New.
	* graphite.c (graphite_trans_loop_block): Do not loop block
	single nested loops.

2008-10-09  Harsha Jagasia  <harsha.jagasia@amd.com>
	    Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (struct rename_map_elt, new_rename_map_elt,
	rename_map_elt_info, eq_rename_map_elts): New.
	(graphite_rename_ivs_stmt): Renamed graphite_rename_variables_in_stmt.
	(expand_scalar_variables_expr): Change parameters.
	(expand_scalar_variables_stmt): Same.
	(expand_scalar_variables): Same.
	(graphite_rename_ivs): Rename graphite_rename_variables.
	(build_iv_mapping): New.
	(translate_clast): Call build_iv_mapping.
	* graphite.h (gbb_p): New name.

2008-10-03  Harsha Jagasia  <harsha.jagasia@amd.com>

	PR tree-optimization/37684
	* gcc.dg/graphite/pr37684.c: New.
	* graphite.c (exclude_component_ref): New.
	(is_simple_operand): Call exclude_component_ref.

2008-10-02  Jan Sjodin  <jan.sjodin@amd.com>
	    Harsha Jagasia  <harsha.jagasia@amd.com>

	PR tree-optimization/37485
	* gcc.dg/graphite/block-2.c: New
	* graphite.c (gmp_cst_to_tree): Moved.
	(iv_stack_entry_is_constant): New.
	(iv_stack_entry_is_iv): New.
	(loop_iv_stack_push): Renamed to loop_iv_stack_push_iv.
	(loop_iv_stack_insert_constant): New.
	(loop_iv_stack_pop): Use new datatpype.
	(loop_iv_stack_get_iv): Same.
	(loop_iv_stack_get_iv_from_name): Same.
	(loop_iv_stack_debug): Renamed to debug_loop_iv_stack.
	(loop_iv_stack_patch_for_consts): New.
	(loop_iv_stack_remove_constants): New.
	(graphite_create_new_loop): Use loop_iv_stack_push_iv.
	(translate_clast): Call loop_iv_stack_patch_for_consts and
	loop_iv_stack_remove_constants.
	(gloog): Use new datatype.  Redirect construction edge to end
	block to avoid accidental deletion.
	* graphite.h (enum iv_stack_entry_kind): New.  Tag for data in
	iv stack entry.
	(union iv_stack_entry_data): New.  Data in iv stack entry.
	(struct iv_stack_entry): New.  Datatype for iv stack entries.

2008-10-02  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Convert
	operand type when copying the operand to a variable of different type.

2008-10-02  Sebastian Pop  <sebastian.pop@amd.com>

	* cfgloopmanip.c (create_empty_loop_on_edge): Write exit condition
	with the IV name after increment.

2008-10-02  Sebastian Pop  <sebastian.pop@amd.com>

	* Merge from mainline (r140164:140838).

2008-09-10  Konrad Trifunovic  <konrad.trifunovic@inria.fr>

	* graphite-data-ref.c: New.
	* graphite.c (print_scop): Also dump the dependence graph.
	(bb_in_scop_p, loop_in_scop_p, nb_loops_around_gb): Moved...
	(new_scop): Initialize SCOP_DEP_GRAPH.
	(build_scop_dynamic_schedules): New.
	(build_access_matrix_with_af): Fixed column numbering.
	(graphite_transform_loops): Call build_scop_dynamic_schedules.
	* graphite.h: Add ifndef/define guards against multiple inclusion.
	(struct scop): Add dep_graph field.
	(SCOP_DEP_GRAPH): Defined.
	(ref_nb_loops): Fixed and moved to other position.
	(bb_in_scop_p, loop_in_scop_p, nb_loops_around_gb): ... here.
	(nb_loops_around_loop_in_scop): New.
	(graphite_dump_dependence_graph): Declared.
	(graphite_build_rdg_all_levels): Declared.
	(graphite_test_dependence): Declared.
	* Makefile.in (graphite-data-ref.o): New target.

2008-09-09  Sebastian Pop  <sebastian.pop@amd.com>

	* Merge from mainline (139870:140164).

2008-09-01  Sebastian Pop  <sebastian.pop@amd.com>

	* Merge from mainline (138275:139870).
	* gcc.dg/graphite/scop-matmult.c: XFailed as one of
	the commits from trunk broke the niter detection.

2008-09-01  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c: Add more documentation.  Fix formatting.
	(debug_loop_vec, debug_oldivs, loop_iv_stack,
	loop_iv_stack_debug): Moved...
	(schedule_to_scattering): Move before use.
	(dot_all_scops): Include in "#if 0" the code for system
	call dotty.

	* graphite.h: (debug_loop_vec, debug_oldivs, loop_iv_stack,
	loop_iv_stack_debug): ...here.

2008-08-29  Jan Sjodin  <jan.sjodin@amd.com>

	* tree-phinodes.c (make_phi_node): Extern.
	(add_phi_node_to_bb): New.
	(create_phi_node): Call add_phi_node_to_bb.
	* tree-ssa-loop-ivopts.c (get_phi_with_result): New.
	(remove_statement): Handle case where stored phi was updated
	and is no longer the same.
	* graphite.c (is_parameter): New.
	(is_old_iv): New.
	(expand_scalar_variables_expr): New.
	(expand_scalar_variables_stmt): New.
	(expand_scalar_variables): New.
	(move_phi_nodes): Create new phi instead of moving old one.
	(translate_clast): Call expand_scalar_variables.
	(find_vdef_for_var_in_bb): Also scan regular definitions.
	(skip_phi_defs): New.
	(collect_scop_exit_phi_args): New.
	(patch_scop_exit_phi_args): New.
	(gloog): Patch phis after scop.
	* tree-flow.h: (add_phi_node_to_bb): Declared.
	(make_phi_node): Declared.

2008-08-26  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (end_scop): Split the entry of the scop when it
	is the header of the loop in which the scop is ending.
	(build_scops_1, limit_scops): Update uses of end_scop.

2008-08-26  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (dot_all_scops_1): Do not fail on uninitialized
	SCOP_ENTRY or SCOP_EXIT.

2008-08-25  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (get_construction_edge): Removed.
	(gloog): Construction edge is the scop entry edge.

2008-08-25  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (can_generate_for_scop): Removed.
	(gloog): Do not call it.

2008-08-25  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (new_scop): Entry of a scop is an edge.
	Initialize SESE region.
	(free_scop): Free SESE region.
	(build_scops_1, scopdet_bb_info): Work on edges, not on bbs.
	(split_difficult_bb): New, split from end_scop.
	(end_scop): Exit of a scop is an edge.
	(build_scop_bbs): Never check CDI_POST_DOMINATORS: this info is
	not automatically updated and thus is always wrong.
	* graphite.h (struct sese): New.
	(SESE_ENTRY): New.
	(SESE_EXIT): New.
	(struct scop): New field for a SESE region.  Remove entry, exit.
	(SCOP_ENTRY, SCOP_EXIT): Update definitions to match same
	semantics as before.  Moved comment around.

2008-08-25  Tobias Grosser  <grosser@fim.uni-passau.de>
	    Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (graphite_transform_loops): Always enable gloog
	and find_transform when ENABLE_CHECKING.

2008-08-25  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (graphite_transform_loops): Move pretty printer
	of SCOPs before doing any transform.  Remove call to print_scops
	and dot_all_scops_1.

2008-08-25  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (dump_gbb_conditions): Don't try to print NULL pointers.
	(print_graphite_bb): Same.

2008-08-25  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (dot_all_scops_1): Cleanup.
	(move_scops): Fix comment.

2008-08-25  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (build_scop_bbs): Revert commit 139355:

	2008-08-20  Sebastian Pop  <sebastian.pop@amd.com>
		    Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>

		* graphite.c (build_scop_bbs): Factor up code.

2008-08-25  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (gloog): Update dominator info.

2008-08-25  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (remove_cond_exprs): Do not fail on empty bbs.

2008-08-24  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (new_graphite_bb): Remove GBB_INDEX_TO_NUM_MAP
	initialization.
	(free_graphite_bb): Remove GBB_INDEX_TO_NUM_MAP free.
	(translate_clast): Correct formatting.
	* graphite.h (struct num_map): Removed.
	(struct graphite_bb): Remove num_map field.
	(GBB_INDEX_TO_NUM_MAP): Removed.

2008-08-24  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (build_access_matrix_with_af): Fix comments.
	(build_scop_data_accesses): Same.

2008-08-24  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (build_scop_data_accesses): Don't construct
	access matrices.  Add a FIXME and an assert condition that
	should pass when the access matrices will be needed.

2008-08-24  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-data-ref.c (stmt_simple_memref_p): Don't call
	really_constant_p.
	* graphite.c (build_graphite_bb): Renamed new_graphite_bb.
	Moved close by free_graphite_bb.
	(free_graphite_bb): Call free_data_refs.  Reset bb->aux.
	(new_scop): Move close by free_scop.
	(graphite_transform_loops): Avoid linear scan to reset bb->aux.

2008-08-22  Jan Sjodin  <jan.sjodin@amd.com>

	* cfgloopmanip.c (create_empty_if_region_on_edge): New.
	* graphite.c (clast_to_gcc_expression): Call gmp_cst_to_tree
	instead of recursive call.
	(graphite_translate_clast_equation): New.
	(graphite_create_guard_cond_expr): New.
	(graphite_create_new_guard): New.
	(get_stack_index_from_iv): Removed.
	(graphite_rename_ivs_stmt): Use gbb_loop_index.
	(get_true_edge_from_guard_bb): New.
	(translate_clast): Handle stmt_guard in clast.
	(get_construction_edge): Allow construction edge detection for
	a scope entry with multiple predecessors if one predecessor is
	the immediate dominator of scope entry.
	(can_generate_code_stmt): Enable code generation for clast_guard.
	(gloog): Use correct context loop.  Removed check for post dominators.
	* cfgloop.h (create_empty_if_region_on_edge): Declared.

2008-08-21  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (remove_dead_loops): Document better which
	loops are removed.

2008-08-21  Sebastian Pop  <sebastian.pop@amd.com>

	* Makefile.in: Rename POLYLIBLIBS and POLYLIBINC to PPLLIBS
	and PPLINC.
	(graphite.o): Also depends on pointer-set.h.

2008-08-21  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (scop_record_loop): Fix compile warning.

2008-08-21  Harsha Jagasia  <harsha.jagasia@amd.com>
	    Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (scop_record_loop): DECL_NAME can be NULL.

2008-08-21  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (build_graphite_bb): Initialize bb->aux to
	point to the graphite_bb_p.
	(graphite_bb_from_bb): Renamed gbb_from_bb; returns the
	content of bb->aux.
	(add_bb_domains): Does not use the scop parameter.
	(graphite_transform_loops): Clean bb->aux at the end.

2008-08-20  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
	    Sebastian Pop  <sebastian.pop@amd.com>

	* lib/target-supports.exp
	(check_effective_target_fgraphite): New.

	* gcc.dg/graphite/graphite.exp: Early exit when
	check_effective_target_fgraphite returns false.
	Set dg-do-what-default to compile.
	(scan-graphite-dump-times): Removed.
	* gfortran.dg/graphite/graphite.exp: Same.

	* gcc.dg/graphite/scop-0.c: Do not use "dg-do compile".
	Use scan-tree-dump-times instead of scan-graphite-dump-times.
	* gcc.dg/graphite/scop-1.c: Same.
	* gcc.dg/graphite/scop-2.c: Same.
	* gcc.dg/graphite/scop-3.c: Same.
	* gcc.dg/graphite/scop-4.c: Same.
	* gcc.dg/graphite/scop-5.c: Same.
	* gcc.dg/graphite/scop-6.c: Same.
	* gcc.dg/graphite/scop-7.c: Same.
	* gcc.dg/graphite/scop-8.c: Same.
	* gcc.dg/graphite/scop-9.c: Same.
	* gcc.dg/graphite/scop-10.c: Same.
	* gcc.dg/graphite/scop-11.c: Same.
	* gcc.dg/graphite/scop-12.c: Same.
	* gcc.dg/graphite/scop-13.c: Same.
	* gcc.dg/graphite/scop-matmult.c: Same.
	* gcc.dg/graphite/scop-14.c: Same.
	* gcc.dg/graphite/scop-15.c: Same.
	* gcc.dg/graphite/block-0.c: Same.
	* gcc.dg/graphite/scop-16.c: Same.
	* gcc.dg/graphite/block-1.c: Same.
	* gcc.dg/graphite/scop-17.c: Same.
	* gcc.dg/graphite/scop-18.c: Same.
	* gfortran.dg/graphite/block-1.f90: Same.
	* gfortran.dg/graphite/scop-1.f: Same.
	* gfortran.dg/graphite/block-2.f: Same.

2008-08-20  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c: Fix some XXX comments.
	(build_scop_dynamic_schedules): Removed.

2008-08-20  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.h (scop_max_loop_depth): Moved...
	* graphite.c (scop_max_loop_depth): ...here.
	(remove_all_edges_1): New.
	(remove_all_edges): Factored code.
	(remove_cond_exprs): Check only the last statement for
	a GIMPLE_COND expression.

2008-08-20  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (scan_tree_for_params): Early return when the
	expression is a chrec_dont_know.  Handle case NEGATE_EXPR.
	(find_scop_parameters): Factor out code.
	(graphite_trans_bb_strip_mine): Remove dead code.

2008-08-20  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (clast_to_gcc_expression, graphite_create_new_loop,
	graphite_trans_bb_move_loop): Factor asserts.
	(gloog): Perform sanity checks only for ENABLE_CHECKING.
	Do not call calculate_dominance_info and estimate_bb_frequencies.

2008-08-20  Jan Sjodin  <jan.sjodin@amd.com>

	* graphite.c (create_loops_mapping, free_loops_mapping,
	create_loops_mapping_num, debug_loop_mapping_1,
	debug_loop_mapping, graphite_loops_mapping_max_loop_num,
	get_loop_mapping_for_num, graphite_loops_mapping_add_child,
	graphite_loops_mapping_add_child_num,
	graphite_loops_mapping_insert_child,
	graphite_loops_mapping_parent, get_loop_mapped_depth_for_num,
	get_loop_mapped_depth, split_loop_mapped_depth_for_num,
	loop_mapped_depth_split_loop, swap_loop_mapped_depth_for_num,
	create_num_from_index, get_num_from_index,
	swap_loop_mapped_depth): Removed.
	(new_scop): Do not initialize SCOP_LOOPS_MAPPING.
	(free_scop): Do not call free_loops_mapping.
	(graphite_get_new_iv_stack_index_from_old_iv): Renamed
	get_stack_index_from_iv.  Use GBB_LOOPS instead of calling
	get_loop_mapped_depth.
	(graphite_trans_bb_move_loop): Do not update the loop mapping.
	(graphite_trans_bb_strip_mine): Same.
	* graphite.h (graphite_loops_mapping, graphite_loop_node): Removed.
	(struct scop): Remove field loops_mapping.

2008-08-20  Sebastian Pop  <sebastian.pop@amd.com>
	    Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>

	* graphite.c (scop_record_loop): Factor out one level of the
	condition by early return.
	(build_scop_loop_nests): Format following FSF coding style.
	(build_scop_dynamic_schedules): Factor out code.
	(scopdet_bb_info): Reindent.  Default case should not be reachable.

2008-08-20  Sebastian Pop  <sebastian.pop@amd.com>
	    Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>

	* graphite.c (loop_affine_expr): Check for DECL_P or struct
	assignments that are not handled as simple operands for now.

2008-08-20  Sebastian Pop  <sebastian.pop@amd.com>
	    Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>

	* graphite.c (build_scop_bbs): Factor up code.

2008-08-20  Sebastian Pop  <sebastian.pop@amd.com>
	    Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>

	* graphite.c (stmt_simple_for_scop_p): Factor code out
	of the loop.
	(enum gbb_type): New.  Group all the GBB_* types under it.
	(is_loop_exit): Moved...
	(end_scop): Enable BB spliting.
	* cfgloop.c (is_loop_exit): ...here.  Reimplemented.
	* cfgloop.h (is_loop_exit): Declared.

2008-08-20  Sebastian Pop  <sebastian.pop@amd.com>

	* doc/invoke.texi: Remove strides from examples containing
	DO loops when the strides are equal to 1.

2008-08-20  Harsha Jagasia  <harsha.jagasia@amd.com>
	    Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>

	* graphite.c (graphite_trans_scop_block): Or the result with
	the result from graphite_trans_loop_block.
	* gcc.dg/graphite/block-1.c: New.
	* gfortran.dg/graphite/block-1.f90: New.
	* gfortran.dg/graphite/block-2.f: New.

2008-08-20  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (graphite_transform_loops): Call cloog_initialize
	and cloog_finalize.

2008-08-20  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-data-ref.c) (stmt_simple_memref_p): New.
	* tree-data-ref.h (stmt_simple_memref_p): Declared.
	* graphite.c (stmt_simple_memref_for_scop_p): Removed.
	(is_simple_operand): Call stmt_simple_memref_p.

	* gcc.dg/graphite/scop-matmult.c: Updated for not
	using pointer arithmetic, as this is optimized by PRE and
	makes the code too difficult to analyze.

	* gcc.dg/graphite/scop-18.c: Same.

2008-08-20  Sebastian Pop  <sebastian.pop@amd.com>

	* gdbinit.in (pgg): New.

2008-08-15  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (graphite_trans_loop_block): Fix warning.

2008-08-15  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (graphite_trans_loop_block): Fix my merge error.

2008-08-15  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (graphite_trans_bb_block): Remove check for
	flag_loop_strip_mine, flag_loop_block, flag_loop_interchange.
	Check if loop blocking is profitable for every loop, before applying
	the changes.
	(graphite_apply_transformations): Call graphite_trans_bb_block only,
	if flag_loop_block is set.

2008-08-14  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c: Add some more documentation for the loop
	mapping.

2008-08-14  Sebastian Pop  <sebastian.pop@amd.com>

	* Makefile.in (tree-data-ref.o): Remove dependence on graphite.h.
	* graphite.c: Format on less than 80 columns.
	* graphite.h: Same.

2008-08-14  Sebastian Pop  <sebastian.pop@amd.com>

	* cfgloopmanip.c (loopify): Use update_dominators_in_loop.

2008-08-14  Sebastian Pop  <sebastian.pop@amd.com>

	* doc/invoke.texi (floop-block, floop-strip-mine,
	floop-interchange): Update documentation with examples.

2008-08-13  Sebastian Pop  <sebastian.pop@amd.com>

	* cfgloopmanip.c (create_empty_loop_on_edge): Don't call
	add_referenced_var.
	* graphite.c (graphite_create_new_loop): Call add_referenced_var.

2008-08-13  Sebastian Pop  <sebastian.pop@amd.com>

	* cfgloopmanip.c (create_empty_loop_on_edge): Improve documentation.
	Factor gcc_asserts into a single one.  Use force_gimple_operand_gsi.
	* tree-scalar-evolution.c: Revert useless changes.
	* tree-phinodes.c: Same.
	* cfghooks.c: Same.
	* vec.h: Same.
	* tree-vectorizer.h: Same.
	* tree-flow.h: Same.
	* tree-cfg.c: Same.
	* common.opt (fgraphite): Update documentation.

2008-08-12  Harsha Jagasia  <harsha.jagasia@amd.com>

	* doc/invoke.texi (-floop-block, -floop-strip-mine,
	-floop-interchange): Add more text for explaining what each of these
	flags is doing.
	* tree-into-ssa.c (gimple_vec): Moved to...
	* graphite.c: Include gimple.h.
	(gimple_vec): Moved to...
	(del_loop_to_cloog_loop): Removed.
	(loop_affine_expr): Do not call create_data_ref when the
	operand is a constant.
	(new_scop): Use free instead of del_loop_to_cloog_loop.
	* Makefile.in (graphite.o): Depend on GIMPLE_H.
	* gimple.h (gimple_vec): ... here.

2008-08-11  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (scopdet_bb_info): Only allow loops with known number of
	latch executions.
	(build_loop_iteration_domains): Fail, if latch executions unknown.

2008-08-11  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (add_conditions_to_domain): New.
	(build_scop_conditions_1): Call add_conditions_to_domain.
	(set_cloog_options): Allow to disable optimizations.

2008-08-11  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (find_params_in_bb): Look for parameters in conditions.
	Do not use walk_dominator_tree.
	(find_scop_parameters): Do not use walk_dominator_tree.

2008-08-11  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (scan_tree_for_params) Add / Subtract inequality.
	(idx_record_params): Adapt.
	* graphite.h (scop_gimple_loop_depth): New.

2008-08-11  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (build_scop_dynamic_schedules): Remove value_init.
	(scan_tree_for_params): Remove value_init.
	(build_scop_context): Remove value_init.
	(build_loop_iteration_domains): Remove value_init.
	(schedule_to_scattering): Remove value_init.
	(graphite_trans_bb_strip_mine): Remove value_init.

2008-08-11  Tobias Grosser  <grosser@fim.uni-passau.de>

	* gcc/graphite.c (limit_scops): New.
	(graphite_transform_loops): Add limit SCoPs.
	* gcc.dg/graphite/scop-0.c: Update number of SCoPs.
	* gcc.dg/graphite/scop-1.c: Update number of SCoPs.
	* gcc.dg/graphite/scop-10.c: Update number of SCoPs.
	* gcc.dg/graphite/scop-11.c: Update number of SCoPs.
	* gcc.dg/graphite/scop-12.c: Update number of SCoPs.
	* gcc.dg/graphite/scop-13.c: Update number of SCoPs.
	* gcc.dg/graphite/scop-14.c: Update number of SCoPs.
	* gcc.dg/graphite/scop-15.c: Update number of SCoPs.
	* gcc.dg/graphite/scop-16.c: Update number of SCoPs.
	Change loop numbers.
	* gcc.dg/graphite/scop-17.c: Update number of SCoPs.
	Change loop numbers.
	* gcc.dg/graphite/scop-18.c: Update number of SCoPs.
	* gcc.dg/graphite/scop-2.c: Update number of SCoPs.
	* gcc.dg/graphite/scop-3.c: Update number of SCoPs.
	* gcc.dg/graphite/scop-4.c: Update number of SCoPs.
	* gcc.dg/graphite/scop-5.c: Update number of SCoPs.
	* gcc.dg/graphite/scop-6.c: Update number of SCoPs.
	* gcc.dg/graphite/scop-7.c: Update number of SCoPs.
	* gcc.dg/graphite/scop-8.c: Update number of SCoPs.
	* gcc.dg/graphite/scop-9.c: Update number of SCoPs.
	* gcc.dg/graphite/scop-matmult.c: Update number of SCoPs.

2008-08-11  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (graphite_transform_loops): Call always find_transform.

2008-08-08  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (free_loops_mapping): New.
	(stmt_simple_for_scop_p): Fix typo.
	(stmt_simple_for_scop_p): Fix tuples functions, that
	broke polyhedron.
	(free_graphite_bb): Fix some memleaks.
	(free_scop): Fix some memleaks.
	(scopdet_bb_info): Do not forget some tmp SCoPs.
	(find_params_in_bb): Fix some memleaks.
	(clast_to_gcc_expression): Fix warning.

2008-08-07  Tobias Grosser  <grosser@fim.uni-passau.de>

	* gcc.dg/graphite/scop-16.c: Fix for 32bit.
	* gcc.dg/graphite/scop-17.c: Fix for 32bit.

2008-08-04  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-ssa-loop.c (tree-ssa-loop.o): Do not include toplev.h.
	Move code ifdef-ed HAVE_cloog...
	* graphite.c: Include toplev.h.
	... here.
	* Makefile.in (OBJS-common): Always build graphite.o.
	(BACKEND): Remove @GRAPHITE@.
	(tree-ssa-loop.o): Do not depend on TOPLEV_H.
	(graphite.o): Depend on TOPLEV_H.

2008-08-04  Sebastian Pop  <sebastian.pop@amd.com>

	* Makefile.in (tree-ssa-loop.o): Depend on TOPLEV_H.
	Remove typo left from polylib to ppl conversion.
	* graphite.c (graphite_transforms): Use sorry instead of fatal.

2008-08-03  Sebastian Pop  <sebastian.pop@amd.com>

	* toplev.c (process_options): Move the graphite loop optimization
	flags...
	* tree-ssa-loop.c (graphite_transforms): ... here.
	When not configured with CLooG, print to dump_file that
	Graphite transforms were not performed.
	* gcc.dg/graphite/graphite.exp (scan-graphite-dump-times):
	New.
	* gcc.dg/graphite/*.c: Updated all testcases to use
	scan-graphite-dump-times.

2008-08-03  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (dot_scop, dot_all_scops): Do not call system.
	Do not open /tmp/scop.dot and /tmp/allscops.dot.

2008-08-02  Sebastian Pop  <sebastian.pop@amd.com>
	    Jan Sjodin  <jan.sjodin@amd.com>

	* configure: Regenerated.
	* omp-low.c (expand_omp_sections): Remove now unused code.
	* config.in (HAVE_polylib): Removed.
	* configure.ac (HAVE_polylib, POLYLIBLIBS, POLYLIBINC): Removed.
	(PPLLIBS, PPLINC): Added.
	* graphite.c: Replace unsigned with int wherever possible.
	Don't access Cloog's data structures, but use accessor functions.
	Clast's stmt->type is now implemented as a vtable: change the
	switches of stmt->type into ifs.
	(polylib/polylibgmp.h): Don't include.
	(initialize_dependence_polyhedron,
	initialize_data_dependence_polyhedron, is_empty_polyhedron,
	statement_precedes_p, test_dependence, build_rdg_all_levels,
	dump_dependence_graph): Removed until this code is cleaned up
	or ported to Cloog.
	* Makefile.in (POLYLIBLIBS): Renamed PPLLIBS.
	(POLYLIBINC): Renamed PPLINC.

2008-08-01  Harsha Jagasia  <harsha.jagasia@amd.com>
	    Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
	    Jan Sjodin  <jan.sjodin@amd.com>

	Finish the merge and tuplification of graphite.

2008-07-24  Sebastian Pop  <sebastian.pop@amd.com>
	    Jan Sjodin  <jan.sjodin@amd.com>

	Partial merge from mainline (138072:138275).
	* graphite.c still has to be tuplified.

2008-07-29  Jan Sjodin  <jan.sjodin@amd.com>

	* graphite.c (graphite_loops_mapping_max_loop_num): New.
	(create_num_from_index): New.
	(get_num_from_index): Also pass in the graphite BB.
	(free_graphite_bb): Free GBB_INDEX_TO_NUM_MAP.
	(build_graphite_bb): Initialize GBB_INDEX_TO_NUM_MAP.
	(graphite_trans_bb_strip_mine): Call create_num_from_index.
	(is_interchange_valid): Return false when failing.
	* graphite.h (struct num_map): New.
	(struct graphite_bb): New field num_map.
	(GBB_LOOPS_MAPPING): Renamed GBB_INDEX_TO_NUM_MAP.

2008-07-29  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (dump_gbb_conditions): Print also conditions like
	"if (a)".  Remove dublicated code and use print_generic_expr ().
	(stmt_simple_for_scop_p): Only allow conditions we can handle
	{<, <=, >, >=}.

2008-07-25  Jan Sjodin  <jan.sjodin@amd.com>

	* graphite.h (struct scop): Removed new_ivs field.
	(SCOP_NEWIVS): Deleted.
	* graphite.c (new_scop, free_scop, clast_name_to_gcc,
	clast_to_gcc_expression, graphite_create_new_loop):
	Removed use of new_ivs.

2008-07-25  Jan Sjodin  <jan.sjodin@amd.com>

	* graphite.c (debug_oldivs, debug_loop_vec, create_loops_mapping,
	create_loops_mapping_num, debug_loop_mapping_1): New.
	(debug_loop_mapping): Call debug_loop_mapping_1.
	(get_loop_mapping_for_num,
	graphite_loops_mapping_add_child,
	graphite_loops_mapping_add_child_num,
	graphite_loops_mapping_insert_child,
	graphite_loops_mapping_parent,
	split_loop_mapped_depth_for_num,
	loop_mapped_depth_split_loop): New.
	(increment_loop_mapped_depths): Removed.
	(swap_loop_mapped_depth_for_num): Reimplemented.
	(new_scop): Call create_loops_mapping.
	(scop_record_loop): Call graphite_loops_mapping_insert_child.
	(translate_clast): Pass the old loop father in parameter, and pass
	it to get_old_iv_from_ssa_name.
	(remove_edges_around_useless_blocks, can_generate_code_stmt,
	can_generate_code, can_generate_for_scop): New.
	(graphite_trans_bb_block): Returns false when it fails to transform.
	* graphite.h (graphite_loop_node, graphite_loops_mapping): New.

2008-07-25  Sebastian Pop  <sebastian.pop@amd.com>

	Reverted all the changes related to the streamization and
	loop fusion.
	These changes are now tracked in the streamization branch.

2008-07-25  Sebastian Pop  <sebastian.pop@amd.com>
	    Jan Sjodin  <jan.sjodin@amd.com>

	* graphite.c (gbb_compare): Correctly constify.
	(gbb_can_be_ignored): Indent.
	(graphite_trans_scop_swap_1and2): Add legality check.
	Remove dead FIXMEs.

2008-07-25  Sebastian Pop  <sebastian.pop@amd.com>

	Remove fallouts from "Reverted the Condate changes".
	* tree.h: Remove unused decl.
	* gcc.dg/tree-checker: Same.
	* timevar.def: Remove counter.

2008-07-24  Sebastian Pop  <sebastian.pop@amd.com>

	* Merge from mainline (135673:138072).

	Reverted the MIRO changes (from 2008-04-05) that are now
	tracked in the miro branch.
	* tree-bounds.c: Removed.
	* tree-bounds.h: Removed.

	Reverted the Condate changes (from 2006-07-04, 2007-03-20) that
	are now tracked in the condate branch.
	* tree-check.c: Removed.
	* tree-match.c: Removed.
	* condate.y: Removed.

2008-07-24  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>

	* common.opt: New user flag -floop-block, -floop-strip-mine
	and -floop-interchange.
	* toplev.c (process_options): Enable -fgraphite pass if any one of the
	graphite loop optimization flags is turned on.
	* graphite.c (graphite_apply_transformations): Add flag_loop_block,
	flag_loop_strip_mine and flag_loop_interchange checks before
	optimizations.
	* doc/invoke.texi: Remove -fgraphite and add -floop-block,
	-floop-strip-mine and -floop-interchange.
	* gcc.dg/graphite/block-0.c: Add -floop-block and remove
	-fgraphite.
	* gcc.dg/graphite/scop-16.c: Ditto.
	* gcc.dg/graphite/scop-17.c: Ditto.
	* gcc.dg/graphite/scop-18.c: Ditto.

2008-07-23  Jan Sjodin  <jan.sjodin@amd.com>
	    Sebastian Pop  <sebastian.pop@amd.com>

	* cfgloopmanip.c (update_dominators_in_loop): Make it static.
	(create_empty_loop_on_edge): More fixes.
	* tree-phinodes.c (resize_phi_node): Extern.
	(unlink_phi_node, move_phi_node): New split from remove_phi_node.
	* cfghooks.c (update_dominator_information): New split from
	split_edge.
	* tree-vectorizer.c (rename_variables_in_bb): Extern.
	* tree-dfa.c (collect_dfa_stats): Start walking the CFG on the
	successor of the function entry block.

	* graphite.c: Include pointer-set.h.
	(debug_loop_mapping, increment_loop_mapped_depths,
	get_loop_mapped_depth_for_num, get_loop_mapped_depth,
	set_loop_mapped_depth_for_num, set_loop_mapped_depth,
	swap_loop_mapped_depth_for_num, get_num_from_index,
	swap_loop_mapped_depth, loop_iv_stack_debug,
	loop_iv_stack_push, loop_iv_stack_pop, loop_iv_stack_get_iv,
	loop_iv_stack_get_iv_from_name, loop_iv_stack_debug,
	get_old_iv_from_ssa_name): New.
	(new_scop): Initialize SCOP_LOOPS_MAPPING.
	(free_scop): Free SCOP_LOOPS_MAPPING.
	(scop_record_loop): Record old ivs.
	(create_var_name): Removed.
	(initialize_cloog_names): Allocate double space in case strip mine
	applies to all loops once.
	(clast_name_to_gcc): Look up in the map ivstack passed in parameter.
	(clast_to_gcc_expression): Same.  Implement more clast to gimple
	translation.
	(graphite_create_new_loop): Pass in ivstack.
	(remove_all_edges): Pass in the construction_edge.
	(graphite_remove_iv): Removed.
	(graphite_rename_ivs, graphite_rename_ivs_stmt,
	remove_cond_exprs): Rewritten.
	(move_phi_nodes): New.
	(disconnect_virtual_phi_nodes, disconnect_cond_expr): Removed.
	(translate_clast): Pass in ivstack.  Rewrite some cases.
	(set_cloog_options, debug_clast_stmt): New.
	(find_transform): Use set_cloog_options.
	(outermost_loop_layer): Removed.
	(get_construction_edge, collect_virtual_phis, find_vdef_for_var_in_bb,
	find_vdef_for_var_1, find_vdef_for_var, patch_phis_for_virtual_defs,
	mark_old_loops, remove_dead_loops): New.
	(gloog): Rewritten.
	(graphite_trans_bb_move_loop): Call swap_loop_mapped_depth.
	(const_column_index, get_first_matching_sign_row_index,
	get_lower_bound_row, get_upper_bound_row, get_lower_bound,
	get_upper_bound): New.
	(graphite_trans_bb_strip_mine): Also update the iv map.

	* graphite.h (graphite_loops_mapping, GBB_LOOPS_MAPPING): New.
	(struct name_tree): Add a loop field.
	(struct scop): Add a graphite_loops_mapping field.
	(SCOP_LOOPS_MAPPING): New.
	(debug_clast_stmt): Declare.
	* lambda.h (find_induction_var_from_exit_cond): Declare.
	(lambda-code.c): (find_induction_var_from_exit_cond): Extern.
	* cfgloop.h (update_dominators_in_loop): Removed declaration.
	(create_empty_loop_on_edge): Updated.
	* tree-flow.h (remove_bb, resize_phi_node, move_phi_node,
	rename_variables_in_bb): Declare.
	* tree-cfg.c (remove_bb): Extern.

	* gcc.dg/graphite/block-0.c: New.

2008-07-21  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
	    Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (strip_mine_profitable_p): New.
	(graphite_trans_bb_block): Disable strip mining if not profitable.

	* gcc.dg/graphite/scop-18.c: New.
	* gcc.dg/graphite/scop-17.c: Fixed.
	* gcc.dg/graphite/scop-16.c: Fixed.

2008-07-17  Harsha Jagasia  <harsha.jagasia@amd.com>
	    Jan Sjodin  <jan.sjodin@amd.com>
	    Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (is_interchange_valid): New.
	(graphite_trans_bb_block): Check loop nest of basic block for legality
	of interchange.

	* graphite.h (gbb_inner_most_loop_index, outer_most_loop_1,
	outer_most_loop, gbb_outer_most_loop_index): New.

	* tree-loop-linear.c (perfect_loop_nest_depth): Remove static.
	* tree-flow.h (perfect_loop_nest_depth): Declare as extern.
	* gcc.dg/graphite/scop-16.c: New.
	* gcc.dg/graphite/scop-17.c: New.

2008-07-11  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (scop_remove_ignoreable_gbbs): Also update bitmap.
	(graphite_trans_scop_block): Ignore SCoPs without bbs.

2008-07-11  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (new_scop): Initialize SCOP_EXIT.
	(scopdet_info): Add.
	(scopdet_bb_info): Rename from is_bb_addable. Cleanup, bugfixes.
	(build_scops_1): Cleanup, bugfixes.
	(build_scops): Cleanup.

	* gcc.dg/graphite/scop-matmult.c: Remove duplicated code.
	* gcc.dg/graphite/scop-15.c: Add SCoP numbers.

2008-07-10  Harsha Jagasia  <harsha.jagasia@amd.com>

	* gfortran.dg/graphite/scop-1.f: Update to reduced test case.

	* gfortran.dg/graphite/graphite.exp: Use
	DEFAULT_GRAPHITE_FLAGS.

	* gcc.dg/graphite/scop-15.c: Update to reduced test case.

2008-07-10  Harsha Jagasia  <harsha.jagasia@amd.com>

	* graphite.c (scan_tree_for_params): Do not assert any more if
	MULT_EXPR parameter is negative.

	* gfortran.dg/graphite/scop-1.f: New.

	* gfortran.dg/graphite/graphite.exp: New.

	* gcc.dg/graphite/scop-15.c: New.

2008-07-10  Harsha Jagasia  <harsha.jagasia@amd.com>

	* graphite.c (is_bb_addable): Fix segfault in spec gzip and reformat.

2008-07-10  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (graphite_trans_bb_swap_loops): Rename from
	graphite_swap_loops.
	(graphite_trans_bb_move_loop): New.
	(graphite_trans_bb_strip_mine): Rename from graphite_strip_mine_loop.
	(graphite_trans_bb_block): New.
	(graphite_trans_loop_block): New.
	(graphite_trans_scop_swap_1and2): Rename from
	graphite_trans_swap_1and2.
	(graphite_trans_scop_strip): Rename from graphite_trans_strip.
	(graphite_trans_scop_block): New.
	(graphite_apply_transformations): Rename from
	graphite_transformations.

	* gcc.dg/graphite/scop-matmult.c: New.

2008-07-10  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (gbb_compare): New.
	(graphite_sort_gbbs): New.
	(gbb_can_be_ignored): New.
	(scop_remove_ignoreable_gbbs): New.
	(graphite_transformations): Cleanup and add
	scop_remove_ignoreable_gbbs.
	* lambda.h (lambda_vector_compare): New.

2008-07-09  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (print_graphite_bb): Correct printing of static schedule.
	(graphite_swap_loops): int -> unsigned
	(graphite_strip_mine_loop): int -> unsigned, Fix SCHEDULE
	(graphite_transformations): New.
	(graphite_transform_loops): Move to graphite_transformations.
	* graphite.h (gbb_nb_loops): Return unsigned.

2008-07-04  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (scan_tree_for_params): Fix insertion of parameters into
	the domain matrix.  This makes scop-0.c work again.

2008-06-20  Richard Guenther  <rguenther@suse.de>

	* graphite.h: Adjust copyright to GPLv3.
	* graphite.c: Likewise.
	(stmt_simple_memref_for_scop_p): Split out from ...
	(stmt_simple_for_scop_p): ... here.  Fix handling of calls
	and simplify.
	(get_bb_type): Optimize.
	(is_pred): Remove.
	(is_bb_addable): Fix memleak, replace is_pred call with
	single_pred.
	(build_scops): Use current_loops.
	(param_index): Fix memleak.

2008-06-20  Konrad Trifunovic  <konrad.trifunovic@inria.fr>

	* graphite.c: Fix formatting.

2008-06-19  Konrad Trifunovic  <konrad.trifunovic@inria.fr>

	* graphite.c (new_scop): Memory allocation for SCOP_{NEWIVS, OLDIVS}.
	(free_scop): Memory deallocation for SCOP_NEWIVS, SCOP_OLDIVS.
	(create_var_name, save_var_name): Newly defined functions.
	(initialize_cloog_names): Part of the code factored out to
	save_var_name.
	(clast_to_gcc_expression): Now handles the case of clast_red_sum
	in clast_reduction statement.
	(graphite_create_new_loop): Now takes a new parameter
	for outer_loop.
	(translate_clast): Now also takes the context_loop and bb_exit
	parameters. Rewritten the code so that it creates a gimple code
	inside the given context.
	(outermost_loop_layer, graphite_remove_iv, graphite_rename_ivs,
	remove_cond_expr, disconnect_cond_expr,
	disconnect_virtual_phi_nodes): Newly defined functions.
	* graphite.h (struct scop): added old_ivs vector.
	SCOP_OLDIVS: New macro.

2008-06-19  Sebastian Pop  <sebastian.pop@amd.com>

	* cfgloopmanip.c: Add missing function comments, fix formatting.

2008-06-18  Konrad Trifunovic  <konrad.trifunovic@inria.fr>

	* cfgloopmanip.c (update_dominators_in_loop): Defined.
	(create_empty_loop_on_edge): Defined.
	* tree-parloops.c (canonicalize_loop_ivs): Returns tree
	instead of void.
	* cfgloop.h (create_empty_loop_on_edge): Declared as extern.
	(update_dominators_in_loop): Declared as extern
	* tree-flow.h (canonicalize_loop_ivs): Declared as extern.

2008-06-16  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (print_graphite_bb): Allow changing number of loops
	in SCoP domain.
	(initialize_cloog_names): Allow changing number of loops.
	(build_cloog_prog): Simplify.
	(find_transform): Enable cloog option --strides.
	(graphite_swap_loops): New.
	(graphite_strip_mine_loop): New.
	(graphite_trans_swap_1and2): New.
	(graphite_trans_strip): New.
	(graphite_transform_loops): Add graphite_trans_strip.
	* graphite.h (scop_max_loop_depth): New.

2008-06-15  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (build_scop_iteration_domain): Remove forgotten
	line. (Fixes compile)

2008-06-15  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (print_graphite_bb): Add output of GBB_LOOPS.
	(build_graphite_bb): Add GBB_LOOPS and GBB_DOMAIN and reorder.
	(build_bb_loops): New.
	(graphite_transform_loops): Add build_bb_loops.
	(schedule_to_scattering): Use gbb_nb_loops to support changing loop
	numbers.
	* graphite.h (graphite_bb): Add loops.
	(gbb_nb_loops): New.
	(gbb_loop_at_index): New.
	(gbb_loop_index): New.
	(nb_params_in_scop): Renamed to scop_nb_params. Updated all functions
	using nb_params_in_scop.

2008-06-14  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (print_graphite_bb): Adapt to minimized schedule.
	(build_scop_canonical_schedules): Build minimized schedule.
	(schedule_to_scattering): Adapt to minimized schedule.
	* graphite.h (graphite_bb): Add/Update descriptions.

2008-06-14  Adrien Eliche  <aeliche@isty.uvsq.fr>
	    Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (print_graphite_bb): Add condition printing.
	(dump_value): New.
	(dump_gbb_conditions): New.
	(build_scop_conditions_1): New.
	(build_scop_conditions): New.
	* graphite.h (graphite_bb): Add conditions.

2008-06-14  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (print_graphite_bb):
	(free_graphite_bb): New.
	(free_scop): Free bbs.
	(get_bb_type): Free doms.
	(build_scop_context): Free context matrix.
	(build_loop_iteration_domains): Remove unused code.
	(build_cloog_prog): Free scattering function and blocklist.
	(find_transform): Free options.

2008-06-13  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (loop_body_to_cloog_stmts): Rename to add_bb_domains.
	Remove unnecessery cloog data structures. Make a copy of the domain
	(setup_cloog_loop): Rename to build_loop_iteration_domains. Remove
	unnecessary cloog data structures. Fix memory leaks. Remove insert
	into SCOP_LOOP2CLOOG_LOOP as the inserted CloogLoops will never be
	used.
	(build_scop_iteration_domain): Remove unnecessary cloog
	data structures.  Fix memory leaks.
	(graphite_transform_loops): Disable build_scop_dynamic_schedules as it
	uses SCOP_LOOP2CLOOG_LOOP, that is at the moment not working.

2008-06-12  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (find_scop_params): Remove initialize_cloog_names.

2008-06-12  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (end_scop): Style fix.
	(schedule_to_scattering): Style and comment fix.

2008-06-12  Tobias Grosser  <grosser@fim.uni-passau.de>
	* graphite.c (print_graphite_bb): Fix definiton of
	schedule_to_scattering.
	(initialize_cloog_names): Change nb_scattdims to max loop
	depth in SCoP.
	(schedule_to_scattering): Take parameter for number of scattering
	dimensions.
	(build_cloog_prog): Only build as much scattering dimensions as
	necessary.

2008-06-12  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (end_scop): Disable bb splitting. Fixes SIGSEGV
	in polyhedron/aermod.f90.

2008-06-11  Tobias Grosser  <grosser@fim.uni-passau.de>
	    Dwarak Rajagopal  <dwarak.rajagopal@amd.com>
	    Harsha Jagasia  <harsha.jagasia@amd.com>

	* graphite.c (is_bb_addable): Fix segfault.

2008-06-10  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (is_bb_addable): Fix memory leak, handling of loops
	with multiple exits and conditional handling in edge cases.
	(is_loop_exit): Fix memory leak. (Forgotten in last commit)

	* gcc.dg/graphite/scop-14.c: New.

2008-06-06  Tobias Grosser  <grosser@fim.uni-passau.de>
	    Adrien Eliche  <aeliche@isty.uvsq.fr>

	* graphite.c (is_bb_addable): Add more comments and enhance
	readablity of the source code. Fix memory leak.
	(is_loop_exit): Fix memory leak.

2008-06-05  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (first_loop_in_scop): Deleted.
	(setup_cloog_loop): Only walk the loop chain for inner loops.
	(build_scop_iteration_domain): Execute setup_cloog_loop for
	all loops in the first layer.

2008-06-05  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (scan_tree_for_params): Change the way params are
	added to be indepenent of the number of loops.
	(setup_cloog_loop): Revert to short matrix format. Fix parameter
	handling.
	(build_cloog_prog): Revert to short matrix format.

2008-06-05  Sebastian Pop  <sebastian.pop@amd.com>
	    Dwarak Rajagopal <dwarak.rajagopal@amd.com>

	* tree-loop-fusion.c (fuse_loops): Fix uninitialized variable
	warning.

2008-06-05  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (nb_data_refs_in_scop): New.
	(graphite_transform_loops): Print more stats: number of
	loops, basic blocks and data references per scop.

2008-06-04  Sebastian Pop  <sebastian.pop@amd.com>
	    Jan Sjodin  <jan.sjodin@amd.com>

	* graphite.c (loop_affine_expr, idx_record_params,
	find_scop_parameters, setup_cloog_loop): Use instantiate_scev
	instead of instantiate_parameters.

2008-06-04  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (schedule_to_scattering): Fix scattering dimensions,
	add support for parameters, add STATIC_SCHEDULE at the right places,
	cleanup.

2008-06-04  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (build_scop_loop_nests): Only add the loops, that
	are contained completely in the SCoP.
	(build_cloog_prog): Disable scattering, until schedule_to_scattering
	and the domains are fixed.
	(build_scop_canonical_schedules): Add support for bbs not contained
	in any SCoP.

2008-06-04  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.h (scop_contains_loop): Update comments to match
	the actual behavior.
	(scop_contains_loop): New.
	* graphite.c (schedule_to_scattering): Use scop_contains_loop.

2008-06-04  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (get_bb_type): On function body, i.e. loop_0,
	don't mark blocks as GBB_LOOP_SING_EXIT_HEADER, mark them
	as GBB_COND_HEADER.

2008-06-04  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (graphite_transform_loops): Early return when
	there are no loops in the function.

2008-05-31  Sebastian Pop  <sebastian.pop@amd.com>
	    Jan Sjodin  <jan.sjodin@amd.com>

	* graphite.c (scan_tree_for_params, setup_cloog_loop): Compute the
	offset of the last loop.
	(setup_cloog_loop): Copy the entire outer constraint matrix.

2008-05-31  Sebastian Pop  <sebastian.pop@amd.com>
	    Jan Sjodin  <jan.sjodin@amd.com>

	* graphite.c (stmt_in_scop_p, function_parameter_p,
	invariant_in_scop_p): Removed.
	(scan_tree_for_params): Can be used with no constraint
	matrix for gathering parameters.
	(idx_record_params): Don't use idx_record_param, instead use
	scan_tree_for_params.
	(find_scop_parameters): Same.
	(setup_cloog_loop, build_scop_iteration_domain, build_cloog_prog):
	Fix the size of loop domains.
	(schedule_to_scattering): Exit when the outer loop is not in scop.
	(find_transform): Enable build_cloog_prog.

2008-05-31  Sebastian Pop  <sebastian.pop@amd.com>
	    Jan Sjodin  <jan.sjodin@amd.com>

	* graphite.c (schedule_to_scattering): Make scattering domains
	uniformly of the same size, as required by CLooG 0.14.0 and before.

2008-05-31  Sebastian Pop  <sebastian.pop@amd.com>
	    Jan Sjodin  <jan.sjodin@amd.com>

	* graphite.c (schedule_to_scattering): Rewrite, correct the
	translation of the scheduling function to scattering.
	(build_cloog_prog): Call schedule_to_scattering only once.
	* graphite.h (scop_loop_index): Do not fail for loops not
	in the scop: return -1.

2008-05-30 Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (build_graphite_bb): Initialize GBB_DOMAIN.
	(loop_body_to_cloog_stmts): Export GBB_DOMAIN.
	(setup_cloog_loop): Export GBB_DOMAIN.
	(build_cloog_prog): New.  Create new CLOOG_PROG, which should be
	able to rebuild the original control flow.
	* graphite.h (graphite_bb): Add domain field and access macro.
	(GBB_DOMAIN): New.

2008-05-30  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (debug_gbb): New.
	(print_scop, build_graphite_bb): Use SCOP_BBS.
	(build_scop_bbs): Reimplemented.
	(dfs_bb_in_scop_p): Removed.
	(build_scop_loop_nests): Reorder loops inserted in
	SCOP_LOOP_NEST: outer loops should come first.
	(build_scop_canonical_schedules): Reinitialize at zero
	the components of the SCOP_STATIC_SCHEDULE for the loops
	that have already been parsed.

	* graphite.h (debug_gbb): Declared.

2008-05-30  Sebastian Pop  <sebastian.pop@amd.com>
	    Jan Sjodin  <jan.sjodin@amd.com>

	* graphite.c (create_empty_loop): Renamed graphite_create_new_loop.
	(graphite_loop_to_gcc_loop): Removed.
	(remove_all_edges): New.
	(graphite_stmt_to_gcc_stmt): Renamed translate_clast.
	(gloog): Remove useless code.

2008-05-29  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (get_bb_type): Reworked. We distinguish between
	loops with one or multiple exits.
	(is_loop_exit): New.
	(is_pred): New.
	(is_bb_addable): Rework condition handling, now support for case
	case statements and loops with multiple exits.

	* gcc.dg/graphite/scop-11.c: New.
	* gcc.dg/graphite/scop-12.c: New.
	* gcc.dg/graphite/scop-13.c: New.

2008-05-29  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (dot_all_scops_1): Fix some colors. Reuse colors, if
	we have too many colors.

2008-05-22  Sandeep Maram <smaram_b04@iiita.ac.in>

	* doc/invoke.texi (-ftree-loop-fusion): Document.
	* tree-pass.h (pass_loop_fusion): Declared.
	* tree-loop-fusion.c: New.
	* timevar.def (TV_TREE_LOOP_FUSION): Declared.
	* tree-data-ref.c (find_data_references_in_loop): Make extern.
	* tree-data-ref.h (find_data_references_in_loop): Declared.
	* common.opt (ftree-loop-fusion): Declared.
	* Makefile.in (tree-loop-fusion.o): Added rule and to OBJS-common.

2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (build_access_matrix): Fix typo from the merge.

2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>

	* Merge from mainline (130800:135673).

2008-05-07  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (end_scop): The exit of the scop is not part of the scop.
	Update dominators after splitting.

2008-05-07  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (is_bb_addable): Return the harmful statement.
	Factor up some code.
	(end_scop): New.  Splits end of scope bbs on a harmful statement.
	(build_scops_1): Call end_scop.

2008-05-07  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c: (succs_at_same_depth, end_scop, all_preds_visited_p,
	all_succs_visited_p, start_new_scop_for_each_succ, start_new_scop,
	add_dominators_to_open_scops, stop_last_open_scop, scop_end_loop,
	build_scops_1): Removed.
	(build_scops_2): Renamed build_scops_1.

2008-05-06  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c: Fix formatting.

2008-05-06  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (get_bb_type): New.
	(move_scops): New.
	(build_scops_2): New.
	(is_bb_addable): New.
	(build_scops): Switch the scop detection.
	(build_scop_bbs): Add entry bb to scop.
	* graphite.h (struct scop): Update comment.

2008-05-06  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (dot_all_scops_1): Fix some incorrect colors and add
	more colors.

2008-05-06  Tobias Grosser  <grosser@fim.uni-passau.de>

	* gcc.dg/graphite/scop-1.c: Update.
	* gcc.dg/graphite/scop-2.c: Update.
	* gcc.dg/graphite/scop-4.c: Update.
	* gcc.dg/graphite/scop-5.c: Add.
	* gcc.dg/graphite/scop-6.c: Add.

2008-05-06  Sebastian Pop  <sebastian.pop@amd.com>

	* gcc.dg/graphite/scop-0.c: Add.
	* gcc.dg/graphite/scop-7.c: Add.
	* gcc.dg/graphite/scop-8.c: Add.
	* gcc.dg/graphite/scop-9.c: Add.
	* gcc.dg/graphite/scop-10.c: Add.

2008-05-06  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (scop_affine_expr): Renamed to loop_affine_expr.
	Check affine expressions depending on the outermost loop
	instead of a scop.
	(stmt_simple_for_scop_p): Same.
	(harmfule_stmt_in_scop): Same.

2008-04-28  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (dot_all_scops): Remove incorrect difficult bb coloring,
	mark entry and exit, that are not part of the SCoP and update HTML
	formatting.

2008-04-25  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (basic_block_simple_for_scop_p): Renamed
	harmful_stmt_in_bb.
	(save_scop, preds_at_same_depth, test_for_scop_bound): Removed.
	(add_dominators_to_open_scops, build_scops_1): Reimplemented.
	(all_preds_visited_p, all_succs_visited_p,
	start_new_scop_for_each_succ, start_new_scop, stop_last_open_scop,
	scop_end_loop): New.
	(build_scops): Do not use dfs_enumerate_from.

	* gcc.dg/graphite/scop-{1,2,4}.c: Updated.

2008-04-23  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c: Add comments to functions that are missing a
	description.
	(graphite_create_iv): Removed.  Merged in graphite_loop_to_gcc_loop.

2008-04-23  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (nb_params_in_scop): Moved...
	(graphite_bb_from_bb, loop_body_to_cloog_stmts): New.
	(setup_cloog_loop): Call loop_body_to_cloog_stmts.
	(clast_to_gcc_expression): Reduce column size to less than 80.
	(graphite_create_iv): Return the new name of the IV.
	(find_transform): Set options->esp and options->cpp.
	(gloog): Comment out the invalidation of the old loop code.
	(initialize_dependence_polyhedron): Replace scop_nb_params with
	nb_params_in_scop.

	* graphite.h (nb_params_in_scop): ... here.
	(scop_nb_params): Removed.
	(loop_domain_dim): Return something even when the loop was not
	found in the hash table: avoid ICEing on all the graphite.exp
	testcases.

2008-04-14  Konrad Trifunovic  <konrad.trifunovic@inria.fr>

	* tree-chrec.c (for_each_scev_op): SCEV can have 3 operands.

	* graphite.c (build_scop_dynamic_schedules): Schedule is built
	according to nesting level.
	(find_scop_parameters): Call instantiate_parameters.
	(scan_tree_for_params): Extend it to handle general affine bounds.
	Inner loop bound can depend on outer loop induction variable.
	(setup_cloog_loop): tmp variable is allocated on stack. Call
	instantiate_parameters with respect to outermost_loop_in_scop.
	(loop_domain_dim, ref_nb_loops, loop_iteration_vector_dim): moved to
	graphite.h.
	(create_empty_loop): Function loopify should be given edge
	probability, instead of edge frequency. Dominance relation from
	switch_bb to loop_header.
	(clast_to_gcc_expression): Added handling of clast_reduction node.
	(gloog): New functionality for removing old loop.
	(test_dependence): Factored out from build_rdg_all_levels.
	(build_rdg_all_levels): Dependence testing factored out to
	test_dependence function.

	* graphite.h (struct graphite_bb): Extended with dynamic_schedule.
	(loop_domain_dim, ref_nb_loops, loop_iteration_vector_dim): Moved
	from graphite.c

2008-04-07  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (free_scop, param_index, initialize_cloog_names,
	nb_params_in_scop): Use name_tree map instead of just a tree
	for keeping track of the variable name associated to that tree.
	(create_empty_loop, gmp_cst_to_tree, clast_name_to_gcc,
	clast_to_gcc_expression, graphite_create_iv,
	graphite_loop_to_gcc_loop, graphite_cond_to_gcc_cond,
	graphite_stmt_to_gcc_stmt): New.
	(gloog): Call these.
	* graphite.h (struct name_tree): New.
	(struct scop): Use name_tree instead of tree for params.
	Store a vector of name_tree for new_ivs.
	(SCOP_NEWIVS): New.
	(scop_nb_params): Use name_tree instead of tree.

2008-04-05  Alexander Lamaison  <awl03@doc.ic.ac.uk>
	    Sebastian Pop  <sebastian.pop@amd.com>

	* tree-bounds.c: New.
	* tree-bounds.h: New.
	* tree-pass.h: Declare pass_bounds_early and pass_bounds_late.
	* passes.c: Schedule pass_bounds_early, pass_bounds_late.
	* builtins.c (expand_builtin_alloca): Add flag_bounds as for
	flag_mudflap.
	* gcc.c: Same.
	* toplev.c: Same.
	* c-cppbuiltin.c: Same.
	* c-pragma.c: Same.
	* common.opt: Same.
	* varasm.c: Same.
	* tree-outof-ssa.c: Same.
	* c-common.c: Same.
	* Makefile.in: Same.

2008-03-15  Antoniu Pop  <antoniu.pop@gmail.com>
	    Sebastian Pop  <sebastian.pop@amd.com>

	* tree-loop-distribution.c (remaining_stmts,
	upstream_mem_writes): Removed static variables.
	(copy_loop_before, create_bb_after_loop,
	mark_nodes_having_upstream_mem_writes, free_rdg_components,
	rdg_build_components, rdg_build_partitions,
	dump_rdg_partitions): Extern.
	(generate_loops_for_partition, generate_code_for_partition): Do not
	return a bool.
	(already_processed_vertex_p, predecessor_has_mem_write,
	mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes,
	rdg_flag_all_uses, rdg_flag_uses, rdg_flag_vertex_and_dependent,
	rdg_flag_loop_exits, rdg_flag_similar_memory_accesses,
	build_rdg_partition_for_component, rdg_build_partitions, ldist_gen):
	Pass remaining_stmts and upstream_mem_writes as parameters.
	(rdg_component): Moved...
	(build_rdg_partition_for_component): Do not aggregate components when
	flag_streamize_loops is set.
	(gen_sequential_loops): New.
	(ldist_gen): Call gen_sequential_loops.

	* tree-pass.h (pass_loop_streamization): Declared.

	* omp-low.c (expand_omp_sections): Call add_bb_to_loop on created
	basic blocks when loops structures exist.

	* builtin-types.def (BT_FN_VOID_PTR_PTR_INT): New.

	* tree-ssa-loop-ivopts.c (expr_invariant_in_region_p): New.

	* tree-parloops.c (take_address_of, eliminate_local_variables_1,
	eliminate_local_variables_stmt, eliminate_local_variables,
	separate_decls_in_loop_name, separate_decls_in_loop_stmt,
	separate_decls_in_loop, gen_parallel_loop): Make them work on a region
	of code delimited by two edges in the CFG.
	(separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
	(separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
	(separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate
	the case of parallelisation of reductions.
	(create_loop_fn): Extern.
	(create_omp_parallel_region): New.

	* tree-data-ref.c (dump_data_dependence_relation): Don't call
	dump_data_reference for printing dra and drb.
	(create_rdg_edge_for_ddr, create_rdg_edges_for_scalar): Initialise
	RDGE_RELATION.
	(build_rdg): Don't call free_dependence_relations for the moment, as
	we attach dependence relations on each edge of the RDG.
	To be fixed later.

	* tree-data-ref.h (rdg_component): ...here.
	(struct rdg_edge): New field ddr_p relation.
	(RDGE_RELATION): New.
	(create_bb_after_loop, copy_loop_before,
	mark_nodes_having_upstream_mem_writes, rdg_build_components,
	rdg_build_partitions, dump_rdg_partitions,
	free_rdg_components): Declared.

	* omp-builtins.def (BUILT_IN_GOMP_STREAM_ALIGN_PUSH,
	BUILT_IN_GOMP_STREAM_ALIGN_POP): New.

	* tree-loop-streamization.c: New.

	* tree-flow.h (gather_blocks_in_sese_region, create_loop_fn,
	create_omp_parallel_region, expr_invariant_in_region_p): Declared.

	* Makefile.in (tree-loop-streamization.o): Added to OBJS-common.

	* tree-cfg.c (gather_blocks_in_sese_region): Extern.

	* passes.c: Schedule pass_loop_streamization.

2008-03-08  Tobias Grosser  <grosser@fmi.uni-passau.de>

	* graphite.c (dot_all_scops_1): Fix formatting for difficult bbs and
	update comment.

2008-03-07  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (dot_all_scops): Update formatting.
	Bbs can now be part of more than one SCoP.

2008-03-04  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (new_loop_to_cloog_loop_str, setup_cloog_loop): Fix
	malloc problems.
	(loop_domain_dim): Check for unregistered toplev SCOP loop.
	* graphite.h (loop_to_cloog_loop): New.

2008-03-04  Konrad Trifunovic  <konrad.trifunovic@inria.fr>

	* graphite.c (loop_domain_dim, ref_nb_loops,
	loop_iteration_vector_dim): New.
	(build_access_matrix_with_af, build_access_matrix,
	initialize_dependence_polyhedron): Fixed for new matrix layout.
	No longer assume that all iteration domains are of the same
	dimensionality.

2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
	defined in a loop at depth 0 is invariant.
	* tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
	* tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
	be called at loop depth 0.

	* graphite.c (basic_block_simple_for_scop_p): Take the scop as
	a parameter.
	(dot_all_scops_1): Update use of basic_block_simple_for_scop_p.
	(down_open_scop): Removed.
	(loop_in_scop_p): Redefined.
	(scop_affine_expr): New argument: scop.
	(stmt_simple_for_scop_p): New argument: scop.  RETURN_EXPR is not
	a harmful statement ending a scop.
	(basic_block_simple_for_scop_p): New argument: scop.
	(get_loop_start): Removed.
	(new_scop): Initialize SCOP_LOOPS.
	(free_scop): Free SCOP_LOOPS.
	(succs_at_same_depth, preds_at_same_depth): New.
	(end_scop): Test the validity of a scop.
	(add_dominators_to_open_scops): New.
	(test_for_scop_bound): Call add_dominators_to_open_scops.
	Add cases for opening and closing multiple scops.
	(build_scops, build_scop_bbs): Iterate over basic blocks in
	depth first order.
	(build_graphite_bb): Pass scop directly.
	(dfs_bb_in_scop_p): New.
	(scop_record_loop): Use SCOP_LOOPS for not recording the same loop
	several times.
	(nb_loops_around_gb): Use loop_in_scop_p.
	(schedule_to_scattering): Disabled for the moment the code computing
	the "textual order for outer loop".

	* graphite.h (struct scop): New field loops.
	(SCOP_LOOPS): New.
	(scop_loop_index): Test that the given loop belongs to SCOP_LOOPS.

	* gcc.dg/graphite/scop-{1,...,7}.c: Updated.

2008-02-27  Antoniu Pop  <antoniu.pop@gmail.com>
	    Sebastian Pop  <sebastian.pop@amd.com>

	* builtin-types.def (BT_FN_PTR_SIZE_UINT, BT_FN_BOOL_PTR): New.
	* common.opt (fstreamize-loops): New.
	* omp-builtins.def (BUILT_IN_GOMP_STREAM_CREATE,
	BUILT_IN_GOMP_STREAM_PUSH, BUILT_IN_GOMP_STREAM_HEAD,
	BUILT_IN_GOMP_STREAM_POP, BUILT_IN_GOMP_STREAM_EOS_P,
	BUILT_IN_GOMP_STREAM_SET_EOS, BUILT_IN_GOMP_STREAM_DESTROY): New.

2008-02-22  Konrad Trifunovic  <konrad.trifunovic@inria.fr>

	* tree-data-ref.c (build_empty_rdg): New.
	(build_rdg): Use it.
	* tree-data-ref.h (build_empty_rdg): Declared.
	* graphite.c (free_scop): Free SCOP_LOOP2CLOOG_LOOP.
	(find_vertex_for_stmt): Removed.
	(build_rdg_all_levels): Use build_empty_rdg and rdg_vertex_for_stmt.

2008-02-21  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-loop-distribution.c (generate_builtin): After cancelling the
	loop tree, also delete basic blocks.
	(rdg_flag_uses): Stop recursion when a vertex has already been
	processed.

2008-02-15  Konrad Trifunovic  <konrad.trifunovic@inria.fr>

	* graphite.c (build_scop_alpha): Removed.
	(graphite_transform_loops): Add a dummy call to build_all_rdg_levels
	and dump_dependence_graph to avoid compiler warnings.

2008-02-14  Konrad Trifunovic  <konrad.trifunovic@inria.fr>

	* tree-data-ref.c (dr_may_alias_p, create_rdg_vertices): Extern.
	* tree-data-ref.h (dr_may_alias_p, create_rdg_vertices): Declared.
	* graphite.c (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
	eq_loop_to_cloog_loop, del_loop_to_cloog_loop): New.
	(new_scop, setup_cloog_loop): Initialize SCOP_LOOP2CLOOG_LOOP.
	(initialize_dependence_polyhedron, find_vertex_for_stmt,
	initialize_data_dependence_polyhedron, is_empty_polyhedron,
	statement_precedes_p, build_rdg_all_levels, build_scop_alpha,
	dump_dependence_graph): New.
	* graphite.h (struct graphite_bb): New field compressed_alpha_matrix.
	(GBB_ALPHA): New.
	(struct scop): New field loop2cloog_loop.
	(SCOP_LOOP2CLOOG_LOOP, struct data_dependence_polyhedron,
	RDGE_DDP, ddp_p, struct loop_to_cloog_loop_str): New.

2008-02-10  Konrad Trifunovic  <konrad.trifunovic@inria.fr>

	* graphite.c (build_graphite_bb): Fix initialization
	of the graphite basic block.

2008-02-05  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (scan_tree_for_params): Rewrite for the new layout of
	loop domain matrix.  Pass in the number of loops contained in the
	constraint matrix.
	(nb_loops_around_gb): Moved before setup_cloog_loop that uses it.
	(setup_cloog_loop): Rewrite for the new layout of loop domain matrix:
	loops that are not surrounding the current loop are not represented
	in the domain constraint matrix.
	(build_scop_iteration_domain): Initial domain constraint matrix
	contains only the eq/ineq, cst, and scop parameters columns.

2008-01-29  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (schedule_to_scattering, nb_loops_around_gb): New.
	(print_graphite_bb): Print scattering.

2008-01-29  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (initialize_cloog_names): Initialize names of
	scattering variables.

2009-01-29  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (dot_all_scops_1): Disable debug output while
	printing graph.

2008-01-29  Tobias Grosser  <grosser@fim.uni-passau.de>

	* graphite.c (find_transform): Change cloog output language to C.

2008-01-27  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-loop-distribution.c (generate_memset_zero,
	generate_builtin, generate_code_for_partition,
	rdg_flag_all_uses): New.
	(rdg_flag_uses): Gather in the same partition the statements defining
	the VUSES of the current statement.
	(rdg_flag_similar_stores): Renamed rdg_flag_similar_memory_accesses.
	Gather in the same partition not only the stores to the same memory
	access, but also the reads.
	(ldist_generate_loops): Renamed ldist_gen.

2008-01-24  Sebastian Pop  <sebastian.pop@amd.com>
	    Tobias Grosser  <grosser@fmi.uni-passau.de>

	* graphite.c (setup_cloog_loop): Chain all cloog loops with the
	next pointer, don't use the inner pointer.

2008-01-20  Tobias Grosser  <grosser@fmi.uni-passau.de>

	* graphite.c (dot_all_scops, dot_all_scops_1): New.
	(find_transform): Call dot_all_1.
	* graphite.h (dot_all_scops): Declared.

2007-12-14  Sebastian Pop  <sebastian.pop@amd.com>

	* tree-loop-distribution.c: Fix apsi.f ICE.
	(create_bb_after_loop): New.
	(generate_loops_for_partition): Use it.
	* gfortran.dg/ldist-1.f90: New.

	* tree-data-ref.c (dot_rdg): Use /tmp/rdg.dot for dotty format.
	* graphite.c (dot_scop): Use /tmp/scop.dot for dotty format.

2007-12-13  Tobias Grosser  <grosser@fmi.uni-passau.de>

	* graphite.c (find_transform): Dump cloog program sent to cloog.

2007-12-13  Tobias Grosser  <grosser@fmi.uni-passau.de>

	* graphite.c (initialize_cloog_names): Initialize cloog
	iterator names.

2007-12-13  Tobias Grosser  <grosser@fmi.uni-passau.de>

	* graphite.c (build_scop_context): Fix typo, for the matrix
	format: insert '0 >= 0' instead of '-1 >= 0'.

2007-12-13  Sebastian Pop  <sebastian.pop@amd.com>

	* Fix merge problems.

2007-12-13  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (setup_cloog_loop): Fix typo.

2007-12-12  Sebastian Pop  <sebastian.pop@amd.com>

	* doc/invoke.texi (-ftree-loop-distribution): Documented.
	* tree-loop-distribution.c: Reimplemented.
	* tree-pass.h (pass_loop_distribution): New.
	* tree-scalar-evolution.c (number_of_iterations_for_all_loops): Use
	print_loops.
	* graphds.h (struct graph): New field indexes.
	* timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.

	* tree-vect-analyze.c: Remove declaration of static functions when not
	needed.
	* tree-vectorizer.c: Same.
	(rename_variables_in_loop): Now extern.
	(slpeel_tree_duplicate_loop_to_edge_cfg): Renamed
	tree_duplicate_loop_to_edge_cfg.  Reset PENDING_STMT for edges after
	calling redirect_edge_and_branch_force.

	* tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.

	* tree-data-ref.c: Don't include tree-chrec.h.
	(debug_data_dependence_relations): New.
	(dump_data_dependence_relation): Call dump_data_reference on data refs
	in the relation.
	(same_access_functions): Moved...
	(find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
	(dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
	debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
	struct rdg_vertex_info, ): New.
	(create_rdg_edge_for_ddr): Compute the dependence level before looking
	at DDR_REVERSED_P.
	(create_rdg_vertices): Initialize the htab of graph->indexes.
	Initialize RDG_MEM_WRITE_STMT and RDG_MEM_READS_STMT.
	(stmts_from_loop): Don't save LABEL_EXPR.
	(hash_stmt_vertex_info, eq_stmt_vertex_info,
	hash_stmt_vertex_del): New.
	(build_rdg): Initialize rdg->indexes.
	(free_rdg, stores_from_loop, ref_base_address,
	rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
	have_similar_memory_accesses_1, ref_base_address_1,
	remove_similar_memory_refs): New.

	* tree-data-ref.h: Include tree-chrec.h.
	(debug_data_dependence_relations): Declared.
	(same_access_functions): ...here.  Now static inline.
	(ddr_is_anti_dependent, ddrs_have_anti_deps,
	ddr_dependence_level): New.
	(struct rdg_vertex): New fields has_mem_write, has_mem_reads.
	(RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT, RDG_MEM_WRITE_STMT,
	RDG_MEM_READS_STMT): New.
	(dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
	debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
	rdg_vertex_for_stmt): Declared.
	(struct rdg_edge): New field level.
	(RDGE_LEVEL, free_rdg): New.
	(stores_from_loop, remove_similar_memory_refs,
	rdg_defs_used_in_other_loops_p,
	have_similar_memory_accesses): Declared.
	(rdg_has_similar_memory_accesses): New.

	* lambda.h (dependence_level): New.
	* common.opt (ftree-loop-distribution): New.
	* tree-flow.h (debug_loop_ir): Renamed debug_loops.
	(print_loop_ir): Renamed print_loops.
	(debug_loop, debug_loop_num, print_loops_bb, mark_virtual_ops_in_bb,
	tree_duplicate_loop_to_edge_cfg, rename_variables_in_loop): Declared.
	* Makefile.in (TREE_DATA_REF_H): Depends on tree-chrec.h.
	(tree-loop-distribution.o): Added.
	* tree-cfg.c (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
	(mark_virtual_ops_in_bb): New.
	(print_loops_bb, debug_loop_num, debug_loop): New.
	* passes.c: Scheduled pass_loop_distribution.

2007-12-12  Konrad Trifunovic  <konrad.trifunovic@inria.fr>

	* graphite.c (scan_tree_for_params): Correct the number of columns
	for polylib format.
	(nb_flat_iterator): New.
	(setup_cloog_loop): Initialize to 1 the first column for inequalities.
	(build_scop_iteration_domain): Correct the number of columns for
	polylib format.

2007-12-12  Sebastian Pop  <sebastian.pop@amd.com>

	* Merge from mainline (129697:130800).

2007-10-30  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (build_graphite_bb): SCoP's basic blocks are post
	dominated by SCoP's exit.
	(graphite_transform_loops): Compute post dominators.

2007-10-28  Sebastian Pop  <sebastian.pop@amd.com>

	* Merge from mainline (127169:129697).

2007-10-28  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite.c (affine_expr): Renamed scop_affine_expr.  Use an extra
	parameter for the basic block that contains the expression.  Use
	outermost_loop_in_scop for evolution_function_is_affine_multivariate_p.
	(stmt_simple_for_scop_p): Pass to scop_affine_expr the basic block of
	the expression.
	* graphite.h (gbb_loop): New.
	(GBB_LOOP): Removed.

2007-08-03  Sebastian Pop  <sebpop@gmail.com>

	* Makefile.in: Fix merge problem.

2007-08-03  Sebastian Pop  <sebpop@gmail.com>

	* Merge from mainline (125309:127169).
	* tree-loop-distribution.c: Disabled.

2007-06-05  Sebastian Pop  <sebpop@gmail.com>

	* Merge from mainline (r123693:125309).

2007-05-30  Sebastian Pop  <sebpop@gmail.com>

	* tree-loop-distribution.c (correct_modify_expr_p): Renamed
	correct_modify_p
	(correct_modify_p, check_statements, number_of_lvalue_uses,
	number_of_scalar_dependences, create_edges): Use GIMPLE_MODIFY_STMT
	instead of MODIFY_EXPR.
	(update_edge_with_ddv): Don't pass index_of_edge.  Initialize
	and push new edges.

2007-05-24  Sebastian Pop  <sebpop@gmail.com>

	* tree-loop-distribution.c (struct rdg): Replace arrays by
	VECs for edges and vertices.
	(RDG_NBV, RDG_NBE, RDG_VERTEX, RDG_EDGE): Removed.
	(RDGV_NB_PARTITIONS): New.
	(PRDG_NBV, PRDG_NBE): Removed.
	(build_scc_graph, correct_partitions_p, mark_partitions, build_prdg,
	dump_rdg, find_vertex_with_stmt, create_vertices, free_rdg,
	number_of_scalar_dependences, create_edges, build_rdg): Use VECs.

2007-05-17  Georges-Andre Silber  <silber@cri.ensmp.fr>
	    Sebastian Pop  <sebpop@gmail.com>

	* doc/invoke.texi (-ftree-loop-distribution): Document.
	* tree-loop-distribution.c: New file.
	* tree-pass.h (pass_loop_distribution): Declared.
	* timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
	* tree-data-ref.c (initialize_data_dependence_relation): Initialize
	and set reversed_p.
	* tree-data-ref.h (data_dependence_relation): Add reversed_p.
	(DDR_REVERSED_P): New.
	* common.opt (-ftree-loop-distribution): New.
	* tree-flow.h (distribute_loops): Declared.
	* Makefile.in (OBJS-common): Depend on tree-loop-distribution.o.
	* passes.c (init_optimization_passes): Schedule loop distribution.

2007-05-12  Sebastian Pop  <sebastian.pop@inria.fr>

	* graphite.c (print_graphite_bb): Don't call dump_data_references.
	(print_scop): Don't print when scop is NULL.
	(build_scop_context, find_transform): Don't output to stderr.

2007-05-09  Sebastian Pop  <sebastian.pop@inria.fr>

	* tree-data-ref.c: Don't include graphite.h.
	Comment out the code for printing data reference's scop.
	(build_access_matrix_with_af): Moved...
	* tree-data-ref.h (build_access_matrix_with_af): Removed declaration.
	* graphite.c (build_access_matrix_with_af): ... here.  Now static.
	(print_graphite_bb): Print basic block's schedule.
	(print_scop): Don't print the schedule, call cloog's pretty printer.
	(bb_in_scop_p): A basic block is in a scop only if it is both
	dominated and postdominated by the scop's entry and exit basic blocks.
	(function_parameter_p): New.
	(invariant_in_scop_p): Use function_parameter_p.
	(new_scop, save_scop): New.
	(end_scop, test_for_scop_bound, build_scops): Use new_scop, and
	save_scop.
	(scan_tree_for_params): Directly build the constraint as CloogMatrix.
	(loop_in_scop_p): New.
	(scop_record_loop): Use loop_in_scop_p.
	(build_scop_domain): Renamed build_scop_iteration_domain.
	(setup_cloog_loop, initialize_cloog_names, find_scop_parameters,
	nb_params_in_scop, build_scop_context, first_loop_in_scop,
	setup_cloog_loop, dot_scop_1, dot_scop): New.
	* graphite.h (GBB_LOOP, SCOP_PROG, dot_scop): New.
	(struct scop): Add a pointer to cloog's representation of a program.

2007-04-14  Sebastian Pop  <sebastian.pop@inria.fr>

	* doc/invoke.texi (-ftree-check-verbose): Renamed
	-ftree-checks-verbose.
	* common.opt (flag_tree_check_verbose): Renamed
	flag_tree_checks_verbose.
	* tree-check.c (tree_check_warning): Use flag_tree_checks_verbose.

2007-04-14  Sebastian Pop  <sebastian.pop@inria.fr>

	* configure: Regenerated.
	* config.in: Regenerated.
	* tree-ssa-loop.c (graphite_transforms): Execute
	graphite_transform_loops only when HAVE_cloog.
	* configure.ac (HAVE_polylib, HAVE_cloog, GRAPHITE): Defined.
	* graphite.c: Include polylibgmp.h and cloog.h.
	(graphite_transform_loops): Removed loops parameter.
	* tree-flow.h (graphite_transform_loops): Update declaration.
	* Makefile.in (POLYLIBLIBS, POLYLIBINC, CLOOGLIBS, CLOOGINC): New.
	(LIBS): Depend on CLOOGLIBS and on POLYLIBLIBS.
	(INCLUDES): Depend on POLYLIBINC and on CLOOGINC.
	(OBJS-common): Remove dependence on graphite.o.
	(BACKEND): Depend on @GRAPHITE@.

2007-04-13  Sebastian Pop  <sebastian.pop@inria.fr>

	* doc/invoke.texi (-ftree-check-verbose): Documented.
	* gcc.dg/tree-checker/tree-checks-1.c: New.
	* gcc.dg/tree-checker/tree-checks-2.c: New.
	* gcc.dg/tree-checker/tree-checks-3.c: New.
	* gcc.dg/tree-checker/tree-checks-4.c: New.
	* gcc.dg/tree-checker/tree-checks.exp: New.
	* gcc.dg/tree-checker/condates.crp: New.
	* common.opt (ftree-checks-verbose): New.
	* tree-check.c (tree_check_warning): Move extra stderr output
	under control of flag_tree_check_verbose.

2007-04-12  Sebastian Pop  <sebastian.pop@inria.fr>

	* tree-match.c: Fix comments formatting.
	* tree-match.h: Fix comments formatting.
	* tree-check.c: Fix comments formatting.
	(tree_check_init): Restructure.

2007-04-12  Nic Volanschi  <nic.volanschi@free.fr>

	* doc/invoke.texi (-ftree-check, -ftree-checks): Documented.

2007-04-10  Sebastian Pop  <sebastian.pop@inria.fr>

	* Merge from mainline (r120733:123693).

2007-03-20  Nic Volanschi  <nic.volanschi@free.fr>

	* condate.y: New file.
	* tree-match.h (struct patt_info_s): New field sign.
	(struct condate_s): New field msg.
	(normalize_condate, name_condate, add_condate): New.
	(conds[], condate_parse): Made extern.
	* tree-check.c (tree_check_warning): First arg changed to cond;
	warning reformatted.
	(tree_check_init): Reset the TREE_VISITED bit on every CFG node.
	(tree_scan): New.
	(tree_check): Process trivial condates.
	(read_delimited_string): Removed.
	(print_cond): Print name and msg.
	(conds[]): Made extern.
	(parse_tree_check_file_once): Rewritten to use the parser in
	condate.y.
	Processing of option --tree_check_string moved to tree_scan().
	* Makefile.in: Added condate.y

2007-03-12  Sebastian Pop  <sebastian.pop@inria.fr>

	* tree-pretty-print.c (dump_generic_bb_buff, lazy_dump_generic_node):
	Use VECs instead of varrays.
	* diagnostic.h (lazy_dump_generic_node): Update declaration.
	* Makefile.in (pretty-print.o): Depend on vec.h.
	* pretty-print.c: Include tree.h and vec.h.
	(pp_clear_state, pp_write_list_to_stream, pp_base_format,
	pp_base_format, pp_construct, pp_base_string, pp_lazy_mode,
	new_tree_chunk, pp_add_tree, pp_add_string, pp_add_char, pp_write_list,
	pp_free_list): Use VECs instead of varrays.
	* pretty-print.h: Do not include varray.h.
	(struct tree_chunk_s): Declaration moved before its use.
	(output_buffer): Rename varray field to chunks.
	* tree-match.c (tree_equal, chunk_1st_char, chunks_lookahead,
	tree_1st_char, match_chunks_pattinfo, match_tree_pattinfo,
	save_global_holes): Use VECs instead of varrays.
	* tree-match.h: Declare VECs of cfg_node, and hole_p.
	* tree-check.c (scan_cfg_stmts, push_node,
	print_matching_stmt): Removed.
	(tree_check_instance, push_global_holes_if_new, tree_check,
	execute_tree_check): Use VECs instead of varrays.
	(gate_tree_check): Don't execute the CFG check when basic_block_info
	is not available.

2007-01-12  Sebastian Pop  <sebastian.pop@inria.fr>

	* Merge from mainline (r115016:120733).

2007-01-12  Sebastian Pop  <sebastian.pop@inria.fr>

	* Merge from mainline (r117632:117661).

2007-01-12  Sebastian Pop  <sebastian.pop@inria.fr>

	* tree-dump.c (dump_option_value_in): Add TDF_DEBUG.
	* tree-pass.h (TDF_DEBUG, debug_p): New.
	* tree-scalar-evolution.c (set_scalar_evolution, get_scalar_evolution,
	get_scalar_evolution, add_to_evolution, set_nb_iterations_in_loop,
	get_loop_exit_condition, analyze_evolution_in_loop,
	analyze_initial_condition, analyze_scalar_evolution,
	instantiate_parameters, number_of_latch_executions): Use debug_p.
	* tree-chrec.c (chrec_apply): Use debug_p.
	* tree-data-ref.c: Include graphite.h.
	(dump_data_reference): Print also the access matrix.
	(analyze_array, analyze_indirect_ref, init_data_ref,
	analyze_offset_expr, address_analysis, object_analysis,
	create_data_ref, finalize_ddr_dependent,
	non_affine_dependence_relation, analyze_ziv_subscript,
	analyze_siv_subscript_cst_affine,
	compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
	can_use_analyze_subscript_affine_affine, analyze_siv_subscript,
	analyze_miv_subscript, analyze_overlapping_iterations,
	build_classic_dist_vector, subscript_dependence_tester,
	compute_affine_dependence, analyze_all_data_dependences): Use debug_p.
	(build_access_matrix_with_af): No longer static.
	* tree-data-ref.h (scop_p): ... declaration here.
	(data_reference.scop): New field.
	(DR_SCOP, DR_ACCESS_MATRIX): New.
	(build_access_matrix_with_af, dr_num_subscripts): Declared.
	* graphite.c (print_graphite_bb): Call dump_data_references.
	(print_scop): Use scop_nb_loops and scop_dim_domain.
	(test_for_scop_bound): Use debug_p.
	(scan_tree_for_params): Use scop_nb_loops, scop_nb_loops and
	scop_nb_params.
	(scop_loop_index): Moved...
	(scop_record_loop): New.
	(build_scop_loop_nests): Use scop_record_loop.
	(build_scop_domain): Use scop_dim_domain.
	(build_access_matrix): Implemented.
	(build_scop_canonical_schedules): Use scop_nb_loops.
	(build_graphite_bb): Initialize GBB_SCOP.
	* graphite.h (scop_p): Moved...
	(graphite_bb.scop): New field.
	(graphite_bb.iteration_domain, GBB_DOMAIN, scop.nb_params,
	scop.nb_loops, scop.dim_domain, SCOP_NB_LOOPS, SCOP_NB_PARAMS,
	SCOP_DIM_DOMAIN, SCOP_STMTS): Removed.
	(scop_nb_params, scop_nb_loops, scop_dim_domain, gbb_dim_domain,
	scop_loop_index): New.
	* Makefile.in (tree-data-ref.o): Depends on graphite.h.

2007-01-05  Sebastian Pop  <sebastian.pop@inria.fr>

	* Merge from mainline (r117661:120450).

2006-10-12  Sebastian Pop  <sebastian.pop@inria.fr>

	* tree-scalar-evolution.c (instantiate_parameters_1): Don't stop
	at the first declaration outside the varying loop, instantiate as
	far as possible.
	* tree-chrec.c (for_each_scev_op): New.
	* tree-chrec.h (for_each_scev_op): Declared.
	* tree-ssa-loop.c (pass_graphite_trans): Don't dump the function.
	* tree-data-ref.c (get_references_in_stmt,
	find_data_references_in_stmt): New, from trunk.
	(find_data_references_in_loop): Use get_references_in_stmt
	and find_data_references_in_loop, modified as in trunk.
	(build_access_matrix_with_af): New.
	* tree-data-ref.h (data_reference): Add a field access_matrix.
	(data_ref_loc): New, as in trunk.
	* graphite.c (print_graphite_bb, bb_in_scop_p, stmt_in_scop_p,
	invariant_in_scop_p, param_index, scan_tree_for_params,
	scop_loop_index, build_scop_loop_nests, build_scop_domain, irp_data,
	idx_record_param, idx_record_params, build_access_matrix,
	build_scop_data_accesses, build_scop_canonical_schedules,
	build_graphite_bb, build_scop_bbs, find_params_in_bb,
	build_scop_params): New.
	* graphite.h (graphite_bb): New.
	(scop): Add fields static_schedule, params, loop_nest,
	iteration_domain.
	* lambda.h: Declare vecs of lambda_matrix.
	* tree-flow.h (print_loop_ir_bb): Declared.
	* tree-cfg.c (print_loop_ir_bb): New.
	(print_loop): Use print_loop_ir_bb.

2006-10-12  Sebastian Pop  <pop@cri.ensmp.fr>

	* Merge from mainline (r115016:117632).

2006-10-11  Sebastian Pop  <pop@cri.ensmp.fr>

	* graphite.c (debug_scops): Adjust definition for avoiding a bootstrap
	break due to a warning.

2006-10-10  Sebastian Pop  <pop@cri.ensmp.fr>

	* graphite.c (print_scops, debug_scops): New.
	(graphite_transform): Renamed graphite_find_transform.
	* graphite.h (debug_scops): Declared.

2006-08-17  Sebastian Pop  <pop@cri.ensmp.fr>

	* tree-match.c: Reformat following the GNU style.
	* tree-match.h: Reformat following the GNU style.
	* tree-pattern.h: Removed empty file.
	* Makefile.in: Remove references to tree-pattern.h.
	* tree-check.c: Reformat following the GNU style.
	(execute_tree_check): Move gate condition code to...
	(gate_tree_check): ...here.  New function.
	(pass_check): Use the gate function.

2006-07-04  Nic Volanschi <nic.volanschi@free.fr>

	* tree-pattern.h: New. Tree pattern matching and checking using
	concrete syntax.
	* tree-check.c: New. Tree/CFG checking pass.
	* tree-match.c: New. Library for tree pattern matching.
	* opts.c, common.opt: Add options --ftree-check & --ftree-checks.
	* toplev.c, flags.h: Add globals for tree-check pass.
	* Makefile.in: Integrate the files in tree-check pass.
	* timevar.def, tree-optimize.c, tree-pass.h: Register tree-check pass.
	* pretty-print.c, pretty-print.h, tree-pretty-print.c, diagnostic.h:
	Introduce a "lazy" pretty-print mode.
	* tree.c, tree.h: Add tree_name.

2006-07-04  Sebastian Pop  <pop@cri.ensmp.fr>

	* doc/invoke.texi (-fgraphite): Correct typo.
	* tree-scalar-evolution.c (number_of_iterations_for_all_loops): Update
	use of print_loop_ir.
	* gcc.dg/graphite/scop-1.c: New.
	* gcc.dg/graphite/scop-2.c: New.
	* gcc.dg/graphite/graphite.exp: New.
	* graphite.c: Include domwalk.h.
	(print_scop): Print only the entry and exit blocks.
	(debug_scop): No longer static.
	(affine_expr): Fix formating.  Return also true when the expression is
	constant.
	(stmt_simple_for_scop_p): Fix formating.
	(build_scops): Use domwalk.
	(get_loop_start, end_scop, test_for_scop_bound): New.
	(graphite_transform_loops): Avoid printing on stderr.
	* graphite.h (debug_scop): Declared.
	* tree-flow.h (debug_loop_ir, print_loop_ir): Update declarations.
	* Makefile.in (graphite.o): Depend on domwalk.h.
	* tree-cfg.c (print_loop, print_pred_bbs, print_succ_bbs): Remove
	declarations for static functions.
	(print_loop, print_loop_ir, debug_loop_ir): Use an extra parameter for
	controlling output verbosity.

2006-06-26  Sebastian Pop  <pop@cri.ensmp.fr>
	    Plesco Alexandru  <shurikx@gmail.com>

	* doc/invoke.texi (-fgraphite): Document.
	* tree-pass.h (pass_graphite_transforms): Declared.
	* timevar.def (TV_GRAPHITE_TRANSFORMS): New.
	* tree-ssa-loop.c (graphite_transforms, gate_graphite_transforms): New.
	(pass_graphite_transforms): Defined.
	* tree-data-ref.c (free_data_ref, data_reference): Extern.
	* tree-data-ref.h (free_data_ref, data_reference): Declared.
	* graphite.c, graphite.h: New.
	* common.opt (fgraphite): Declared.
	* tree-flow.h (graphite_transform_loops): Declared.
	* Makefile.in (OBJS-common): Add graphite.o.
	(graphite.o): New rule.
	* passes.c (pass_graphite_transforms): Scheduled.

