aboutsummaryrefslogtreecommitdiff
path: root/gcc/graphite.c
AgeCommit message (Collapse)AuthorFilesLines
2008-11-05re PR middle-end/37883 ([graphite] ICE : in scan_tree_for_params, at ↵Tobias Grosser1-0/+1
graphite.c:2274) 2008-11-05 Tobias Grosser <grosser@fim.uni-passau.de> PR middle-end/37883 * graphite.c (scan_tree_for_params): Add POINTER_PLUS_EXPR. From-SVN: r141599
2008-11-05re PR middle-end/37943 ([graphite] ICE : in build_graphite_scops, at ↵Tobias Grosser1-6/+24
graphite.c:1823) 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. * testsuite/gcc.dg/graphite/pr37943.c: New. From-SVN: r141598
2008-11-03re PR tree-optimization/37684 ([graphite] basic block containing VDEF of a ↵Harsha Jagasia1-1/+28
scalar does not dominate basic block containing VUSE of the same scalar) 2008-11-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. From-SVN: r141551
2008-10-23graphite.c (graphite_apply_transformations): Check for -fgraphite-identity.Tobias Grosser1-11/+7
2008-10-23 Tobias Grosser <grosser@fim.uni-passau.de> * graphite.c (graphite_apply_transformations): Check for -fgraphite-identity. * toplev.c (process_options): Add graphite_identity. * tree-ssa-loop.c (gate_graphite_transforms): Add graphite_identity. From-SVN: r141325
2008-10-15[multiple changes]Sebastian Pop1-52/+203
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
2008-10-15re PR middle-end/37828 ([graphite] ICE in expand_scalar_variables_expr, at ↵Sebastian Pop1-3/+9
graphite.c:3421 with -floop-block) 2008-10-15 Sebastian Pop <sebastian.pop@amd.com> Harsha Jagasia <harsha.jagasia@amd.com> PR tree-optimization/37828 * testsuite/gcc.dg/graphite/pr37828.c: New. * graphite.c (graphite_trans_loop_block): Do not loop block single nested loops. Co-Authored-By: Harsha Jagasia <harsha.jagasia@amd.com> From-SVN: r141142
2008-10-08graphite.c (gloog): Don't call find_unreachable_blocks before ↵Jakub Jelinek1-1/+0
delte_unreachable_blocks. * graphite.c (gloog): Don't call find_unreachable_blocks before delte_unreachable_blocks. From-SVN: r140987
2008-09-29graphite.c (dot_all_scops_1): Remove unused checks.Tobias Grosser1-173/+421
2008-09-29 Tobias Grosser <grosser@fim.uni-passau.de> * graphite.c (dot_all_scops_1): Remove unused checks. SCoPs always have exit and entry. (new_scop): Take entry and exit edge to define new SCoP. (sd_region_p): New structure used during SCoP detection. (move_scops): Delete. (move_sd_regions): New. (scopdet_info): Change the definition from edges back to basic_blocks. (scopdet_edge_info): Work on basic_blocks and rename to scopdet_basic_block_info. (split_difficult_bb): At the moment removed. We should later add it at another place. (build_scops_1): Work on basic_blocks. (bb_in_sd_region): New. (find_single_entry_edge): New. (find_single_exit_edge): New. (create_single_entry_edge): New. (sd_region_without_exit): New. (create_single_exit_edge): New. (unmark_exit_edges): New. (mark_exit_edges): New. (create_sese_edges): New. (build_graphite_scops): New. (build_scops): Make SCoPs SESE. (limit_scops): Use the new functions. From-SVN: r140746
2008-09-12re PR middle-end/37484 ([graphite] Valgrind gives invalid reads/writes on ↵Sebastian Pop1-10/+14
CPU2006 403.gcc benchmark) 2008-09-12 Sebastian Pop <sebastian.pop@amd.com> PR tree-optimization/37484 * graphite.c (scop_record_loop): Use snprintf instead of sprintf. (save_var_name): Same. (initialize_cloog_names): Same. (initialize_cloog_names): Same. From-SVN: r140327
2008-09-10re PR tree-optimization/37388 ([graphite] No warn with "-O0 -fgraphite" when ↵Sebastian Pop1-6/+0
cloog or ppl are not present) 2008-09-10 Sebastian Pop <sebastian.pop@amd.com> PR tree-optimization/37388 * toplev.c (process_options): Fail and warn when graphite flags are used, but the compiler has not been configured with graphite libraries. * graphite.c (graphite_transform_loops): Remove printfs to dump_file for the case when graphite is not available. From-SVN: r140232
2008-09-09re PR middle-end/37375 ([graphite] Parameter detection and scev only take a ↵Sebastian Pop1-54/+60
surrounding loop as border) 2008-09-05 Sebastian Pop <sebastian.pop@amd.com> PR tree-optimization/37375 * tree-scalar-evolution.c (scev_info_str): Add field instantiated_below. (new_scev_info_str, eq_scev_info, find_var_scev_info, set_scalar_evolution, get_scalar_evolution, get_instantiated_value, set_instantiated_value): Pass instantiated_below. (analyze_scalar_evolution_1, analyze_scalar_evolution): Update calls to above functions. (instantiate_scev_1, instantiate_scev): Pass a basic block above which the definitions are not instantiated. * tree-scalar-evolution.h (instantiate_scev): Update declaration. (block_before_loop): New. * tree-data-ref.c (dr_analyze_indices): Update uses of instantiate_scev. * graphite.c (block_before_scop): New. (loop_affine_expr, stmt_simple_for_scop_p, harmful_stmt_in_bb): Pass a basic block, not a loop for determining the parameters. (scopdet_edge_info, build_scops_1): Do not pass outermost loop in the scop. (idx_record_params, find_params_in_bb, find_scop_parameters, build_loop_iteration_domains, add_conditions_to_domain): Update calls to instantiate_scev. * Makefile.in (cfgloopmanip.o): Add missing dependency on TREE_FLOW_H. From-SVN: r140164
2008-09-02backport: configure: Regenerate.Sebastian Pop1-0/+4806
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