On 9/18/18 1:52 AM, Andreas Schwab wrote: > On Sep 17 2018, Jeff Law <l...@redhat.com> wrote: > >> On 9/17/18 3:08 AM, Andreas Schwab wrote: >>> PR rtl-optimization/85458 >>> * sel-sched.c (sel_target_adjust_priority): Remove wrong >>> assertion. >> Under what conditions is the new priority negative? Without digging >> deep into the ia64 port that just seems wrong. > > It is created in create_speculation_check: But that says nothing about why this happens or whether or not it's a valid state.
/* Decrease priority of check by difference of load/check instruction latencies. */ EXPR_PRIORITY (INSN_EXPR (insn)) -= (sel_vinsn_cost (INSN_VINSN (orig_insn)) - sel_vinsn_cost (INSN_VINSN (insn))); There's nothing inherently wrong with having one cost be higher than the other. So I don't think this is a problem with computing costs in the target files. This feels a lot more like a bug in sel-sched.c My inclination would be to declare negative priorities invalid and clamp the value in sel-sched.c. THere's other places in sel-sched.c that look fishy as well. Of course my other inclination would be to kill sel-sched completely. Jeff