https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108102

--- Comment #15 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Stefan Schulze Frielinghaus
<stefa...@gcc.gnu.org>:

https://gcc.gnu.org/g:452db716d8debb6e09b85e4a0c0e73a047ed5c1d

commit r13-5964-g452db716d8debb6e09b85e4a0c0e73a047ed5c1d
Author: Stefan Schulze Frielinghaus <stefa...@linux.ibm.com>
Date:   Mon Feb 13 15:33:38 2023 +0100

    IBM zSystems: Do not propagate scheduler state across basic blocks
[PR108102]

    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.

    gcc/ChangeLog:

            PR target/108102
            * 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.

Reply via email to