[Bug middle-end/37883] [graphite] ICE : in scan_tree_for_params, at graphite.c:2274
--- Comment #9 from spop at gcc dot gnu dot org 2008-12-11 07:24 --- Subject: Bug 37883 Author: spop Date: Thu Dec 11 07:23:02 2008 New Revision: 142673 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142673 Log: 2008-12-11 Sebastian Pop <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> * graphite.c (build_scops_1): Initialize open_scop.exit and sinfo.last. 2008-12-11 Sebastian Pop <[EMAIL PROTECTED]> Jan Sjodin <[EMAIL PROTECTED]> Harsha Jagasia <[EMAIL PROTECTED]> 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_f
[Bug middle-end/37883] [graphite] ICE : in scan_tree_for_params, at graphite.c:2274
--- Comment #8 from grosser at gcc dot gnu dot org 2008-12-08 20:11 --- Fixed in branch and trunk. Now fails in trunk on verify_ssa(). This is already solved in branch and will be imported to trunk soon. *** This bug has been marked as a duplicate of 37980 *** -- grosser at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||DUPLICATE http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37883
[Bug middle-end/37883] [graphite] ICE : in scan_tree_for_params, at graphite.c:2274
--- 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 <[EMAIL PROTECTED]> Jan Sjodin <[EMAIL PROTECTED]> Harsha Jagasia <[EMAIL PROTECTED]> 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, ski
[Bug middle-end/37883] [graphite] ICE : in scan_tree_for_params, at graphite.c:2274
--- Comment #6 from grosser at gcc dot gnu dot org 2008-11-08 19:50 --- Subject: Bug 37883 Author: grosser Revision: 141600 Modified property: svn:log Modified: svn:log at Sat Nov 8 19:50:32 2008 -- --- svn:log (original) +++ svn:log Sat Nov 8 19:50:32 2008 @@ -1,5 +1,5 @@ 2008-11-05 Tobias Grosser <[EMAIL PROTECTED]> - PR middle-end/37833 + PR middle-end/37883 * graphite.c (scan_tree_for_params): Add POINTER_PLUS_EXPR. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37883
[Bug middle-end/37883] [graphite] ICE : in scan_tree_for_params, at graphite.c:2274
--- Comment #5 from grosser at gcc dot gnu dot org 2008-11-08 19:46 --- Subject: Bug 37883 Author: grosser Revision: 141599 Modified property: svn:log Modified: svn:log at Sat Nov 8 19:46:18 2008 -- --- svn:log (original) +++ svn:log Sat Nov 8 19:46:18 2008 @@ -1,5 +1,5 @@ 2008-11-05 Tobias Grosser <[EMAIL PROTECTED]> - PR middle-end/37833 + PR middle-end/37883 * graphite.c (scan_tree_for_params): Add POINTER_PLUS_EXPR. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37883
[Bug middle-end/37883] [graphite] ICE : in scan_tree_for_params, at graphite.c:2274
--- Comment #4 from sebpop at gmail dot com 2008-11-04 23:34 --- Subject: Re: [graphite] ICE : in scan_tree_for_params, at graphite.c:2274 > It seems PLUS_EXPR and POINTER_PLUS_EXPR can really handled identically. > So I will like to commit this patch. Yes they should be handled in the same way in this context. Please install the patch. Thanks, Sebastian -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37883
Re: [Bug middle-end/37883] [graphite] ICE : in scan_tree_for_params, at graphite.c:2274
> It seems PLUS_EXPR and POINTER_PLUS_EXPR can really handled identically. > So I will like to commit this patch. Yes they should be handled in the same way in this context. Please install the patch. Thanks, Sebastian
[Bug middle-end/37883] [graphite] ICE : in scan_tree_for_params, at graphite.c:2274
--- Comment #3 from grosser at gcc dot gnu dot org 2008-11-04 18:25 --- It seems PLUS_EXPR and POINTER_PLUS_EXPR can really handled identically. So I will like to commit this patch. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37883
[Bug middle-end/37883] [graphite] ICE : in scan_tree_for_params, at graphite.c:2274
-- grosser at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |grosser at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2008-10-30 04:10:22 |2008-10-30 13:51:37 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37883
[Bug middle-end/37883] [graphite] ICE : in scan_tree_for_params, at graphite.c:2274
--- Comment #2 from grosser at gcc dot gnu dot org 2008-10-30 13:51 --- Created an attachment (id=16588) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16588&action=view) Add POINTER_PLUS_EXPR - Improvement? It seems we miss the POINTER_PLUS_EXPR. In most cases in tree-scalar-evol.c and tree-chrec.c it is handled like a PLUS_EXPR. If I add it, the test case passes the front end, but fails again in gloog() with: #0 0x089d919f in link_imm_use (linknode=0x29072c4c, def=0x20017) at tree-flow-inline.h:323 #1 0x089d914e in set_ssa_use_from_ptr (use=0x29072c4c, val=0x20017) at tree-flow-inline.h:342 #2 0x089d9097 in graphite_rename_variables_in_stmt (stmt=0x29060528, map=0x8d8b040) at ../../../git/gcc/graphite.c:3512 #3 0x089d9b89 in graphite_rename_variables (bb=0x29060618, map=0x8d8b040) at ../../../git/gcc/graphite.c:3685 #4 0x089da177 in translate_clast (scop=0x8d321c0, context_loop=0x29100948, stmt=0x8d8a350, next_e=0x290c2988, ivstack=0xbfbfe880) at ../../../git/gcc/graphite.c:3816 #5 0x089d9fbd in translate_clast (scop=0x8d321c0, context_loop=0x29100948, stmt=0x8d8a110, next_e=0x290c25c8, ivstack=0xbfbfe880) at ../../../git/gcc/graphite.c:3781 I will have to think about the patch. Opinions? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37883
[Bug middle-end/37883] [graphite] ICE : in scan_tree_for_params, at graphite.c:2274
-- grosser at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2008-10-30 04:10:22 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37883
[Bug middle-end/37883] [graphite] ICE : in scan_tree_for_params, at graphite.c:2274
--- Comment #1 from mitul dot thakkar at amd dot com 2008-10-21 16:10 --- Created an attachment (id=16520) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16520&action=view) Reduced Test Case -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37883