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.