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.