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


Reply via email to