[Bug rtl-optimization/85354] [8 regression] ICE with gcc.dg/graphite/pr84872.c starting with r259313
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85354 Alexander Monakov changed: What|Removed |Added Status|NEW |RESOLVED Blocks||84659 Resolution|--- |FIXED --- Comment #5 from Alexander Monakov --- Fixed. Referenced Bugs: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84659 [Bug 84659] [6/7 Regression] ICE: Segmentation fault (stack overflow in bb_note) w/ selective scheduling
[Bug rtl-optimization/85354] [8 regression] ICE with gcc.dg/graphite/pr84872.c starting with r259313
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85354 --- Comment #4 from Alexander Monakov --- Author: amonakov Date: Thu Apr 12 15:40:44 2018 New Revision: 259348 URL: https://gcc.gnu.org/viewcvs?rev=259348=gcc=rev Log: sel-sched: move cleanup_cfg before calculate_dominance_info (PR 85354) PR rtl-optimization/85354 * sel-sched-ir.c (sel_init_pipelining): Move cfg_cleanup call... * sel-sched.c (sel_global_init): ... here. Modified: trunk/gcc/ChangeLog trunk/gcc/sel-sched-ir.c trunk/gcc/sel-sched.c
[Bug rtl-optimization/85354] [8 regression] ICE with gcc.dg/graphite/pr84872.c starting with r259313
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85354 Richard Biener changed: What|Removed |Added Target|powerpc64*-*-* |powerpc64*-*-*, x86_64-*-* Priority|P3 |P1 Status|UNCONFIRMED |NEW Last reconfirmed||2018-04-12 Target Milestone|--- |8.0 Ever confirmed|0 |1
[Bug rtl-optimization/85354] [8 regression] ICE with gcc.dg/graphite/pr84872.c starting with r259313
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85354 Rainer Orth changed: What|Removed |Added CC||ro at gcc dot gnu.org --- Comment #3 from Rainer Orth --- And on sparc-sun-solaris2.11 (both 32 and 64-bit) as well as i386-pc-solaris2.11 (64-bit only).
[Bug rtl-optimization/85354] [8 regression] ICE with gcc.dg/graphite/pr84872.c starting with r259313
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85354 Jakub Jelinek changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #2 from Jakub Jelinek --- It fails on x86_64-linux as well.
[Bug rtl-optimization/85354] [8 regression] ICE with gcc.dg/graphite/pr84872.c starting with r259313
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85354 Alexander Monakov changed: What|Removed |Added CC||abel at gcc dot gnu.org Assignee|unassigned at gcc dot gnu.org |amonakov at gcc dot gnu.org --- Comment #1 from Alexander Monakov --- Thanks. Judging from the backtrace, we shouldn't call cleanup_cfg after dominators are computed: it will invalidate dominators without freeing or fixing them. I wonder if that's "by design". A simple way out is to run cleanup_cfg early enough. I'll bootstrap/regtest the following on gcc112: diff --git a/gcc/sel-sched-ir.c b/gcc/sel-sched-ir.c index 50a7daafba6..ee970522890 100644 --- a/gcc/sel-sched-ir.c +++ b/gcc/sel-sched-ir.c @@ -30,7 +30,6 @@ along with GCC; see the file COPYING3. If not see #include "cfgrtl.h" #include "cfganal.h" #include "cfgbuild.h" -#include "cfgcleanup.h" #include "insn-config.h" #include "insn-attr.h" #include "recog.h" @@ -6122,9 +6121,6 @@ make_regions_from_loop_nest (struct loop *loop) void sel_init_pipelining (void) { - /* Remove empty blocks: their presence can break assumptions elsewhere, - e.g. the logic to invoke update_liveness_on_insn in sel_region_init. */ - cleanup_cfg (0); /* Collect loop information to be used in outer loops pipelining. */ loop_optimizer_init (LOOPS_HAVE_PREHEADERS | LOOPS_HAVE_FALLTHRU_PREHEADERS diff --git a/gcc/sel-sched.c b/gcc/sel-sched.c index cd29df35666..59762964c6e 100644 --- a/gcc/sel-sched.c +++ b/gcc/sel-sched.c @@ -28,6 +28,7 @@ along with GCC; see the file COPYING3. If not see #include "tm_p.h" #include "regs.h" #include "cfgbuild.h" +#include "cfgcleanup.h" #include "insn-config.h" #include "insn-attr.h" #include "params.h" @@ -7661,6 +7662,10 @@ sel_sched_region (int rgn) static void sel_global_init (void) { + /* Remove empty blocks: their presence can break assumptions elsewhere, + e.g. the logic to invoke update_liveness_on_insn in sel_region_init. */ + cleanup_cfg (0); + calculate_dominance_info (CDI_DOMINATORS); alloc_sched_pools ();