On 2/11/23 16:59, Stefan Schulze Frielinghaus wrote: > So far we propagate scheduler state across basic blocks within EBBs and > reset the state otherwise. In certain circumstances the entry block of > an EBB might be empty, i.e., no_real_insns_p is true. In those cases > scheduler state is not reset and subsequently wrong state is propagated > to following blocks of the same EBB. > > Since the performance benefit of tracking state across basic blocks is > questionable on modern hardware, simply reset the state for each basic > block. > > Fix also resetting f{p,x}d_longrunning. > > Bootstrapped and regtested on IBM zSystems. Ok for mainline? > > gcc/ChangeLog: > > * config/s390/s390.cc (s390_bb_fallthru_entry_likely): Remove. > (struct s390_sched_state): Initialise to zero. > (s390_sched_variable_issue): For better debuggability also emit > the current side. > (s390_sched_init): Unconditionally reset scheduler state.
Ok. Thanks! Andreas