This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/37356] [4.4 Regression] ICE in gsi_insert_seq_nodes_after, at gimple-iterator.c:222
- From: "jakub at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 9 Sep 2008 13:03:07 -0000
- Subject: [Bug middle-end/37356] [4.4 Regression] ICE in gsi_insert_seq_nodes_after, at gimple-iterator.c:222
- References: <bug-37356-12387@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #9 from jakub at gcc dot gnu dot org 2008-09-09 13:03 -------
Yes, it does (after all, it sometimes needs to insert statements even after
stmt). Your patch is IMHO correct, but incomplete. There are 2 things that
also need doing:
1) I think in while (!gsi_end_p (copy_gsi)) loop we want to iterate from the
first stmt inserted from remaping orig_stmt, whether it is created by
force_gimple_operand_gsi or gimple_regimplify_operands. ATM we just
handle the last one. I guess we want 2 gimple_stmt_iterator's, one will
keep
advancing to the last stmt and one will be copy_gsi value when
gimple_duplicate_stmt_histograms was called.
2) insert_init_stmt also calls gimple_regimplify_operands. It shouldn't create
new gimplify_context, as gimple_regimplify_operands does that, and I'm not
sure it needs to call find_new_referenced_vars (gimple_regimplify_operands
calls mark_symbols_for_renaming and add_referenced_var on the temps).
Certainly init_stmt needs to be inserted into the sequence before calling
gimple_regimplify_operands though.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37356