http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46931
Richard Guenther <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |aoliva at gcc dot gnu.org, | |rguenth at gcc dot gnu.org Target Milestone|--- |4.6.0 Summary|Subversion id 167184 breaks |[4.6 Regression] Subversion |building perlbench on |id 167184 breaks building |power7 with debug |perlbench on power7 with | |debug Severity|major |normal --- Comment #3 from Richard Guenther <rguenth at gcc dot gnu.org> 2010-12-16 14:15:02 UTC --- (In reply to comment #2) > I think the actual problem was introduced in PR46172 commit, with the addition > of remove_dead_stmts_from_loop, as we now DCE what we have created during the > vectorization. > This function gsi_removes a stmt and then calls release_defs, which does > nothing though, because the SSA_NAME is name_registered_for_update_p, so the > release of it is deferred. But when delete_update_ssa attempts to release the > SSANAME afterwards, the bb for the stmt is already NULL and so gsi_for_stmt > fails. > > Not sure if there is something wrong on the remove_dead_stmts_from_loop side, > or if just releasing what has been created in the same pass has never been > done > before and we should make insert_debug_temp_for_var_def do nothing if > gsi is NULL and def_stmt has NULL gimple_bb and the RHS isn't a constant. Hmm. We definitely shouldn't insert debug stmts for stmts that are no longer in the insn stream...