https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66794
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |ASSIGNED
Last reconfirmed| |2015-07-08
Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot
gnu.org
Target Milestone|--- |6.0
Summary|ICE at -O2 and -O3 on |[6 Regression] ICE at -O2
|x86_64-linux-gnu |and -O3 on x86_64-linux-gnu
Ever confirmed|0 |1
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
So this means post-dominators are corrupt at then entry to DSE. Usually passes
should always release post-dominators - it seems there is at least one that
fails to do that. isolate-paths in this case. Passes are not good at making
sure
to release post-dom-info when they invalidate it.
The regression is due to extra checking.
Index: gcc/gimple-ssa-isolate-paths.c
===================================================================
--- gcc/gimple-ssa-isolate-paths.c (revision 225504)
+++ gcc/gimple-ssa-isolate-paths.c (working copy)
@@ -501,10 +501,10 @@ gimple_ssa_isolate_erroneous_paths (void
/* We scramble the CFG and loop structures a bit, clean up
appropriately. We really should incrementally update the
loop structures, in theory it shouldn't be that hard. */
+ free_dominance_info (CDI_POST_DOMINATORS);
if (cfg_altered)
{
free_dominance_info (CDI_DOMINATORS);
- free_dominance_info (CDI_POST_DOMINATORS);
loops_state_set (LOOPS_NEED_FIXUP);
return TODO_cleanup_cfg | TODO_update_ssa;
}
fixes it.