1. 31 Jul, 2009 1 commit
    • New implementation of Graphite. · 204b560f
      2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
      
      	* Makefile.in (OBJS-common): Added dependence on graphite-blocking.o,
      	graphite-clast-to-gimple.o, graphite-dependences.o,
      	graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
      	graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o.
      	(graphite-blocking.o,
      	graphite-clast-to-gimple.o, graphite-dependences.o,
      	graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
      	graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o): New.
      	* cfgloop.c (alloc_loop): Set loop->can_be_parallel to false.
      	* cfgloop.h (struct loop): Add can_be_parallel field.
      	* common.opt (fgraphite-identity): Moved up.
      	(fgraphite-force-parallel): New flag.
      	* graphite.c: Rewrite.
      	* graphite.h: Rewrite.
      	* passes.c (init_optimization_passes): Schedule a pass of DCE and LIM
      	after Graphite.
      	* toplev.c (graphite_out_file): New file descriptor.
      	(graphite_in_file): New.
      	(process_options): flag_graphite_force_parallel cannot be used without
      	Graphite.
      	* tree-ssa-loop.c: Include toplev.h.
      	(gate_graphite_transforms): Enable flag_graphite for
      	flag_graphite_force_parallel.
      
      From-SVN: r150301
      Sebastian Pop committed
  2. 16 May, 2009 1 commit
    • alias.c (struct alias_set_entry_d): Rename from struct alias_set_entry. · 7e5487a2
      gcc/ChangeLog:
      	* alias.c (struct alias_set_entry_d): Rename from struct
      	alias_set_entry.  Change all uses.
      	* except.c (struct call_site_record_d): Rename from struct
      	call_site_record.  Change all uses.
      	* except.h (struct eh_region_d): Rename from struct eh_region.
      	Change all uses.
      	* gcse.c (struct hash_table_d): Rename from struct hash_table.
      	Change all uses.
      	* graphite.c (struct ivtype_map_elt_d): Rename fromstruct
      	ivtype_map_elt.  Change all uses.
      	(struct rename_map_elt_d): Rename fromstruct rename_map_elt.
      	Change all uses.
      	(struct ifsese_d): Rename fromstruct ifsese.  Change all uses.
      	* graphite.h (struct name_tree_d): Rename from struct name_tree.
      	Change all uses.
      	(struct sese_d): Rename from struct sese.  Change all uses.
      	* omega.h (struct eqn_d): Rename from struct eqn.  Change all
      	uses.
      	(struct omega_pb_d): Rename from struct omega_pb.  Change all
      	uses.
      	* optabs.h (struct optab_d): Rename from struct optab.  Change all
      	uses.
      	(struct convert_optab_d): Rename from struct convert_optab.
      	Change all uses.
      	* tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
      	ipa_opt_pass.  Change all uses.
      	* tree-predcom.c (struct dref_d): Rename from struct dref.  Change
      	all uses.
      
      	* c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
      	defined as a typedef.
      	(grokdeclarator): If -Wc++-compat, warn if a typedef is already
      	defined as a tag.
      gcc/cp/ChangeLog:
      	* cp-tree.h (enum cp_lvalue_kind_flags): Rename from
      	cp_lvalue_kind.  Change all uses.
      	(enum base_access_flags): Rename from enum base_access.  Change
      	all uses.
      	* parser.c (enum cp_parser_flags): Remove enum tag.
      gcc/testsuite/ChangeLog:
      	* gcc.dg/Wcxx-compat-10.c: New testcase.
      libcpp/ChangeLog:
      	* include/cpplib.h (enum cpp_builtin_type): Rename from enum
      	builtin_type.  Change all uses.
      
      From-SVN: r147605
      Ian Lance Taylor committed
  3. 20 Feb, 2009 1 commit
  4. 05 Feb, 2009 1 commit
    • graphite.c (bb_in_sese_p, [...]): Moved. · b0789219
      2009-02-04  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, gloog): Do not initialize SCOP_BBS_B.
      	(new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
      	(scopdet_basic_block_info): Fix bug in scop detection.
      	(new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
      	eq_loop_to_cloog_loop): Remove.
      	(nb_loops_around_loop_in_scop, nb_loop
      	ref_nb_loops): Moved here...
      	* graphite.h (ref_nb_loops): ... from here.
      	(struct scop): Remove bbs_b bitmap and loop2cloog_loop.
      	(loop_domain_dim, loop_iteration_vector_dim): Remove.
      	(SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
      	* testsuite/gcc.dg/graphite/scop-19.c: New
      
      From-SVN: r143947
      Tobias Grosser committed
  5. 13 Jan, 2009 1 commit
  6. 08 Jan, 2009 1 commit
    • re PR middle-end/38559 ([graphite] ICE :in build2_stat, at tree.c:3293) · 68f61c3d
      2009-01-07  Sebastian Pop  <sebastian.pop@amd.com>
      	    Jan Sjodin  <jan.sjodin@amd.com>
      
      	PR tree-optimization/38559
      	* testsuite/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.
      
      
      Co-Authored-By: Jan Sjodin <jan.sjodin@amd.com>
      
      From-SVN: r143187
      Sebastian Pop committed
  7. 05 Jan, 2009 1 commit
    • re PR middle-end/38492 ([graphite] segfaulting code when compiled with… · 7b10257f
      re PR middle-end/38492 ([graphite] segfaulting code when compiled with -fgraphite -fgraphite-identity)
      
      2009-01-05  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.
      
      From-SVN: r143097
      Sebastian Pop committed
  8. 11 Dec, 2008 2 commits
    • [multiple changes] · 4d6c7237
      2008-12-11  Harsha Jagasia  <harsha.jagasia@amd.com>
      
      	PR tree-optimization/38446
      	* 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>
      
      	* 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.
      
      2008-12-11  Harsha Jagasia  <harsha.jagasia@amd.com>
      
      	PR tree-optimization/38446
      	* gcc.dg/graphite/pr38446.c: New.
      
      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.
      
      2008-12-10  Tobias Grosser  <grosser@fim.uni-passau.de>
      
      	PR middle-end/38459
      	* gfortran.dg/graphite/pr38459.f90: New.
      
      From-SVN: r142688
      Sebastian Pop committed
    • Fix testsuite/gfortran.dg/graphite/id-4.f90. · 81b822d5
      2008-12-11  Sebastian Pop  <sebastian.pop@amd.com>
      
      	Fix testsuite/gfortran.dg/graphite/id-4.f90.
      	* graphite.c (scan_tree_for_params): Do not compute the multiplicand
      	when not needed.
      
      2008-12-11  Sebastian Pop  <sebastian.pop@amd.com>
      
      	* graphite.c (build_scops_1): Initialize open_scop.exit
      	and sinfo.last.
      
      2008-12-11  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
      
      	* 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 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-12-11  Sebastian Pop  <sebastian.pop@amd.com>
      
      	* gcc.dg/graphite/pr37928.c: New.
      	* gcc.dg/graphite/pr37883.c: New.
      	* gcc.dg/graphite/pr38073.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.
      	* gfortran.dg/graphite/id-2.f90: New.
      	* gfortran.dg/graphite/id-4.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.
      
      From-SVN: r142673
      Sebastian Pop committed
  9. 15 Oct, 2008 1 commit
    • [multiple changes] · 2c7a7f46
      2008-10-15  Jan Sjodin  <jan.sjodin@amd.com>
          	    Harsha Jagasia  <harsha.jagasia@amd.com>
      
      	PR tree-optimization/37485
      	* 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-15  Sebastian Pop  <sebastian.pop@amd.com>
      
      	* tree-data-ref.c (stmt_simple_memref_p): Fix memleak.
      	* graphite.c (free_scop): Same.
      	(build_scops): Same.
      	(free_scattering): New.
      	(build_cloog_prog): Call free_scattering.
      	(patch_phis_for_virtual_defs): Fix memleak.
      	(graphite_trans_bb_strip_mine): Same.
      	(limit_scops): Same.
      
      From-SVN: r141143
      Sebastian Pop committed
  10. 02 Sep, 2008 1 commit
    • backport: configure: Regenerate. · f8bf9252
      2008-09-02  Sebastian Pop  <sebastian.pop@amd.com>
      	    Tobias Grosser  <grosser@fim.uni-passau.de>
      	    Jan Sjodin  <jan.sjodin@amd.com>
      	    Harsha Jagasia  <harsha.jagasia@amd.com>
      	    Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
      	    Konrad Trifunovic  <konrad.trifunovic@inria.fr>
      	    Adrien Eliche  <aeliche@isty.uvsq.fr>
      
      	Merge from graphite branch.
      	* configure: Regenerate.
      	* Makefile.in: Regenerate.
      	* configure.ac (host_libs): Add ppl and cloog.
      	Add checks for PPL and CLooG.
      	* Makefile.def (ppl, cloog): Added modules and dependences.
      	* Makefile.tpl (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): New.
      	(HOST_PPLLIBS, HOST_PPLINC, HOST_CLOOGLIBS, HOST_CLOOGINC): New.
      
      gcc/
      	* graphite.c: New.
      	* graphite.h: New.
      	* tree-loop-linear.c (perfect_loop_nest_depth): Export.
      	* doc/invoke.texi (-floop-block, -floop-interchange,
      	-floop-strip-mine): Document new flags.
      	* tree-into-ssa.c (gimple_vec): Moved...
      	* tree-loop-distribution.c (rdg_component): Moved...
      	* cfgloopmanip.c: Include tree-flow.h.
      	(update_dominators_in_loop): New.
      	(create_empty_if_region_on_edge): New.
      	(create_empty_loop_on_edge): New.
      	(loopify): Use update_dominators_in_loop.
      	* tree-pass.h (pass_graphite_transforms): Declared.
      	* configure: Regenerate.
      	* tree-phinodes.c (make_phi_node): Export.
      	(add_phi_node_to_bb): New, split from create_phi_node.
      	* tree-chrec.c (for_each_scev_op): New.
      	* tree-chrec.h (for_each_scev_op): Declared.
      	* tree-ssa-loop-ivopts.c (get_phi_with_result): New.
      	(remove_statement): Call get_phi_with_result.
      	* config.in (HAVE_cloog): Undef.
      	* gdbinit.in (pgg): New.
      	* timevar.def (TV_GRAPHITE_TRANSFORMS): New.
      	* tree-ssa-loop.c (graphite_transforms): New.
      	(gate_graphite_transforms): New.
      	(pass_graphite_transforms): New.
      	* configure.ac (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC,
      	HAVE_cloog): Defined.
      	* tree-vectorizer.c (rename_variables_in_bb): Export.
      	* tree-data-ref.c (dr_may_alias_p): Export.
      	(stmt_simple_memref_p): New.
      	(find_data_references_in_stmt): Export.
      	(find_data_references_in_loop): Export.
      	(create_rdg_edge_for_ddr): Initialize RDGE_RELATION.
      	(create_rdg_edges_for_scalar): Initialize RDGE_RELATION.
      	(create_rdg_vertices): Export.
      	(build_empty_rdg): New.
      	(build_rdg): Call build_empty_rdg.  Free dependence_relations.
      	* tree-data-ref.h (rdg_component): ... here.
      	(scop_p): New.
      	(struct data_reference): Add a field scop.
      	(DR_SCOP): New.
      	(find_data_references_in_loop): Declared.
      	(find_data_references_in_stmt): Declared.
      	(create_rdg_vertices): Declared.
      	(dr_may_alias_p): Declared.
      	(stmt_simple_memref_p): Declared.
      	(struct rdg_edge): Add a field ddr_p relation.
      	(build_empty_rdg): Declared.
      	* lambda.h (lambda_matrix): Declare a VEC of.
      	(find_induction_var_from_exit_cond): Declared.
      	(lambda_vector_compare): New.
      	* common.opt (fgraphite, floop-strip-mine,
      	floop-interchange, floop-block): New flags.
      	* lambda-code.c (find_induction_var_from_exit_cond): Export.
      	* cfgloop.c (is_loop_exit): New.
      	* cfgloop.h (is_loop_exit): Declared.
      	(create_empty_if_region_on_edge): Declared.
      	(create_empty_loop_on_edge): Declared.
      	* tree-flow.h (add_phi_node_to_bb): Declared.
      	(make_phi_node): Declared.
      	(rename_variables_in_bb): Declared.
      	(perfect_loop_nest_depth): Declared.
      	(graphite_transform_loops): Declared.
      	* Makefile.in (cfgloopmanip.o): Depend on TREE_FLOW_H.
      	(graphite.o-warn): Add -Wno-error.
      	(PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): Declared.
      	(LIBS): Add GMPLIBS, CLOOGLIBS, PPLLIBS.
      	(INCLUDES): Add PPLINC, CLOOGINC.
      	(OBJS-common): Add graphite.o.
      	(graphite.o): Add rule.
      	* gimple.h (gimple_vec): ... here.
      	* tree-cfg.c (print_loops): Start printing at ENTRY_BLOCK_PTR.
      	* passes.c (init_optimization_passes): Schedule 
      	pass_graphite_transforms.
      
      testsuite/
      
      	* gcc.dg/graphite/scop-{0,1,2,3,4,5,6,7,8,9,
      	10,11,12,13,14,15,16,17,18}.c: New.
      	* gcc.dg/graphite/graphite.exp: New.
      	* gcc.dg/graphite/scop-matmult.c: New.
      	* gcc.dg/graphite/block-0.c: New.
      	* lib/target-supports.exp (check_effective_target_fgraphite): New.
      	* gfortran.dg/graphite/block-1.f90: New.
      	* gfortran.dg/graphite/scop-{1,2}.f: New.
      	* gfortran.dg/graphite/block-{1,3,4}.f90: New.
      	* gfortran.dg/graphite/graphite.exp: New.
      
      
      Co-Authored-By: Adrien Eliche <aeliche@isty.uvsq.fr>
      Co-Authored-By: Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
      Co-Authored-By: Harsha Jagasia <harsha.jagasia@amd.com>
      Co-Authored-By: Jan Sjodin <jan.sjodin@amd.com>
      Co-Authored-By: Konrad Trifunovic <konrad.trifunovic@inria.fr>
      Co-Authored-By: Tobias Grosser <grosser@fim.uni-passau.de>
      
      From-SVN: r139893
      Sebastian Pop committed