http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60268
Andrey Belevantsev <abel at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |abel at gcc dot gnu.org --- Comment #3 from Andrey Belevantsev <abel at gcc dot gnu.org> --- I'm out of office today, so I'll have a look properly tomorrow, but... (In reply to Jakub Jelinek from comment #2) > So perhaps: > --- gcc/haifa-sched.c 2014-02-18 08:18:53.045024428 +0100 > +++ gcc/haifa-sched.c 2014-02-19 07:58:38.191381581 +0100 > @@ -2550,7 +2550,7 @@ rank_for_schedule (const void *x, const > return INSN_LUID (tmp) - INSN_LUID (tmp2); > } > > - if (live_range_shrinkage_p) > + if (live_range_shrinkage_p && sched_pressure != SCHED_PRESSURE_NONE) > { > /* Don't use SCHED_PRESSURE_MODEL -- it results in much worse > code. */ ... the fired assert below this code means that we have turned off sched-pressure on the new region (unexpectedly to live_range_shrinkage) and I'd like to know how this region was added. I guess I missed some entry point within the new scheduler code when fixing the previous PR. > > BTW, why > if (sched_pressure != SCHED_PRESSURE_NONE) > free_global_sched_pressure_data (); > when free_global_sched_pressure_data () contains the same guard and thus > could be called unconditionally? Pilot error while being over cautious, I will simplify that too.