[Bug rtl-optimization/55158] [4.8 Regression] [IA64] ICE: segv in schedule_region
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55158 --- Comment #10 from Gary Funck 2012-12-01 23:17:00 UTC --- (In reply to comment #9) > OK, I applied it to our autotester and we will see tomorrow if it fixes the > segfaults. > If so, can I go ahead and commit it? > > Honza Ping: was this patch tested and then applied? thanks.
[Bug rtl-optimization/55158] [4.8 Regression] [IA64] ICE: segv in schedule_region
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55158 --- Comment #9 from Jan Hubicka 2012-11-09 16:38:16 UTC --- OK, I applied it to our autotester and we will see tomorrow if it fixes the segfaults. If so, can I go ahead and commit it? Honza
[Bug rtl-optimization/55158] [4.8 Regression] [IA64] ICE: segv in schedule_region
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55158 --- Comment #8 from Gary Funck 2012-11-09 15:26:46 UTC --- (In reply to comment #5) > Completely untested patch for someone else to foster-parent: > + } > + } > f = find_fallthru_edge (last_bb->succs); > if (f && f->probability * 100 / REG_BR_PROB_BASE >= > PARAM_VALUE (PARAM_SCHED_STATE_EDGE_PROB_CUTOFF)) I could not apply the patch cleanly. Perhaps it was garbled by line wraps, etc. Can you post the patch as an attachment?
[Bug rtl-optimization/55158] [4.8 Regression] [IA64] ICE: segv in schedule_region
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55158 Jan Hubicka changed: What|Removed |Added CC||hubicka at gcc dot gnu.org --- Comment #6 from Jan Hubicka 2012-11-09 14:22:55 UTC --- Hmm, this bug currently breaks half IA-64 bencharking in our autotester. http://gcc.opensuse.org/ (terbium) Bernd, you seem to be last who touched this area. Does the patch look OK for you? (probably these structures should be turned into VECtors). Honza
[Bug rtl-optimization/55158] [4.8 Regression] [IA64] ICE: segv in schedule_region
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55158 --- Comment #5 from Steven Bosscher 2012-11-07 21:19:42 UTC --- Completely untested patch for someone else to foster-parent: --- sched-rgn.c 2012-11-04 14:48:19.110019609 -0800 +++ sched-rgn.c 2012-11-07 13:17:06.740019608 -0800 @@ -2986,10 +2986,23 @@ if (dbg_cnt (sched_block)) { edge f; + int saved_last_basic_block = last_basic_block; schedule_block (&curr_bb, bb_state[first_bb->index]); gcc_assert (EBB_FIRST_BB (bb) == first_bb); sched_rgn_n_insns += sched_n_insns; + if (last_basic_block > saved_last_basic_block) + { + /* New basic blocks have been created, probably for +speculation recovery code. Fixup the state array. */ + bb_state_array = (char *) xrealloc (last_basic_block * dfa_state_size); + bb_state = XRESIZEVEC (state_t, bb_state, last_basic_block); + for (int i = saved_last_basic_block; i < last_basic_block; i++) + { + bb_state[i] = (state_t) (bb_state_array + i * dfa_state_size); + state_reset (bb_state[i]); + } + } f = find_fallthru_edge (last_bb->succs); if (f && f->probability * 100 / REG_BR_PROB_BASE >= PARAM_VALUE (PARAM_SCHED_STATE_EDGE_PROB_CUTOFF))
[Bug rtl-optimization/55158] [4.8 Regression] [IA64] ICE: segv in schedule_region
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55158 Steven Bosscher changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2012-11-07 Ever Confirmed|0 |1 --- Comment #4 from Steven Bosscher 2012-11-07 21:07:44 UTC --- Confirmed. The scheduler creates new basic blocks via generate_recovery_code, leading to: Breakpoint 5, schedule_region (rgn=0) at gcc/sched-rgn.c:2990 2990 schedule_block (&curr_bb, bb_state[first_bb->index]); 1: last_basic_block = 23 (gdb) Continuing. Breakpoint 6, create_basic_block (...) at gcc/cfghooks.c:644 644 if (!cfg_hooks->create_basic_block) 1: last_basic_block = 23 (gdb) up #1 0x... in create_empty_bb (..) at ../../trunk/gcc/cfghooks.c:662 662 return create_basic_block (NULL, NULL, after); (gdb) #2 0x... in sched_create_empty_bb_1 (...) at gcc/haifa-sched.c:8479 8479 return create_empty_bb (after); (gdb) #3 0x... in init_before_recovery (...) at gcc/haifa-sched.c:7491 7491 single = sched_create_empty_bb (last); (gdb) But apparently some of the scheduler data structures are not resized.
[Bug rtl-optimization/55158] [4.8 Regression] [IA64] ICE: segv in schedule_region
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55158 --- Comment #3 from Steven Bosscher 2012-11-07 20:57:49 UTC --- (In reply to comment #1) > The last basic block is 23, and the array bb_state[] is initialized only > for entries 0..22. Perhaps the number entries allocated should be > (last_basic_block + 1) with the initialization loop adjusted > accordingly? Actually, last_basic_block is already "largest bb index + 1". The name is a bit confusing...