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

--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Richard Sandiford <rsand...@gcc.gnu.org>:

https://gcc.gnu.org/g:d1773f58f3a03e6c764373635fa079fa7526cfcf

commit r11-2507-gd1773f58f3a03e6c764373635fa079fa7526cfcf
Author: Yunde Zhong <zhongyu...@huawei.com>
Date:   Mon Aug 3 15:05:02 2020 +0100

    regrename: Avoid disrupting SMS schedule [PR95696]

    SMS is performed before reload, and each insn in SMS schedule uses
    pseudo-register.  After reload, regrename pass try to adjust the hard
    registers with def/use chain created by build_def_use.  For now, regrename
    pass isn't aware of VLIW bundles created by SMS, it may updated a register
    which may not be really unused, which will causes invalid VLIW bundles.
    Before the final schedule, we recheck the validation of VLIW bundles and
    reschedule the conflicted insns to avoid the above issue.  Rescheduling
    the conflicted insns will destroy SMS schedule of the kernel loop, which
    would be harmful to performance.

    2020-08-03  Yunde Zhong  <zhongyu...@huawei.com>

    gcc/
            PR rtl-optimization/95696
            * regrename.c (regrename_analyze): New param include_all_block_p
            with default value TRUE.  If set to false, avoid disrupting SMS
            schedule.
            * regrename.h (regrename_analyze): Adjust prototype.

Reply via email to