From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12414 invoked by alias); 3 Dec 2008 07:37:54 -0000 Received: (qmail 10082 invoked by alias); 3 Dec 2008 07:35:34 -0000 Date: Wed, 03 Dec 2008 07:37:00 -0000 Message-ID: <20081203073534.10076.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug middle-end/37883] [graphite] ICE : in scan_tree_for_params, at graphite.c:2274 In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "spop at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2008-12/txt/msg00266.txt.bz2 ------- Comment #7 from spop at gcc dot gnu dot org 2008-12-03 07:35 ------- Subject: Bug 37883 Author: spop Date: Wed Dec 3 07:33:52 2008 New Revision: 142384 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142384 Log: 2008-12-02 Sebastian Pop Jan Sjodin Harsha Jagasia 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 * testsuite/gcc.dg/graphite/pr38073.c: New. * testsuite/gcc.dg/graphite/pr37928.c: New. * testsuite/gcc.dg/graphite/pr37883.c: New. * testsuite/gcc.dg/graphite/pr38125.c: New. * testsuite/gfortran.dg/graphite/pr38083.f90: New. * testsuite/gfortran.dg/graphite/pr37852.f90: New. * testsuite/gfortran.dg/graphite/pr37980.f90: New. * testsuite/gcc.dg/graphite/scop-18.c: Remove reduction, test for the number of detected scops. Copy exact same test for loop blocking... * testsuite/gcc.dg/graphite/block-1.c: Fix the number of expected loops to be blocked as reductions are not handled. * testsuite/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 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. Added: branches/graphite/gcc/testsuite/gcc.dg/graphite/block-4.c branches/graphite/gcc/testsuite/gcc.dg/graphite/pr37883.c branches/graphite/gcc/testsuite/gcc.dg/graphite/pr37928.c branches/graphite/gcc/testsuite/gcc.dg/graphite/pr38073.c branches/graphite/gcc/testsuite/gcc.dg/graphite/pr38125.c branches/graphite/gcc/testsuite/gfortran.dg/graphite/pr37852.f90 branches/graphite/gcc/testsuite/gfortran.dg/graphite/pr37980.f90 branches/graphite/gcc/testsuite/gfortran.dg/graphite/pr38083.f90 Modified: branches/graphite/gcc/ChangeLog.graphite branches/graphite/gcc/Makefile.in branches/graphite/gcc/graphite.c branches/graphite/gcc/graphite.h branches/graphite/gcc/testsuite/gcc.dg/graphite/block-1.c branches/graphite/gcc/testsuite/gcc.dg/graphite/scop-18.c branches/graphite/gcc/tree-cfg.c branches/graphite/gcc/tree-flow.h branches/graphite/gcc/tree-parloops.c branches/graphite/gcc/tree-phinodes.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37883