[Bug target/92190] [10 Regression] ICE in sp_valid_at, at config/i386/i386.c:6162 since r276648
cvs-commit at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Feb 5 14:38:00 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92190
--- Comment #16 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <jakub@gcc.gnu.org>:
https://gcc.gnu.org/g:17a2e8c0918c2ddda82ace9ed17464906f96633d
commit r10-6450-g17a2e8c0918c2ddda82ace9ed17464906f96633d
Author: Jakub Jelinek <jakub@redhat.com>
Date: Wed Feb 5 15:35:46 2020 +0100
i386: Schedule the only -O0 split pass on x86 after pro_and_epilogue/jump2
[PR92190]
The problem is that x86 is the only target that defines HAVE_ATTR_length
and
doesn't schedule any splitting pass at -O0 after pro_and_epilogue.
So, either we go back to handling this during vzeroupper output
(unconditionally, rather than flag_ipa_ra guarded), or we need to tweak the
split* passes for x86.
Seems there are 5 split passes, split1 is run unconditionally before
reload,
split2 is run for optimize > 0 or STACK_REGS (x86) after ra but before
epilogue_completed, split3 is run before regstack for STACK_REGS and
optimize and -fno-schedule-insns2, split4 is run before sched2 if sched2 is
run and split5 is run before shorten_branches if HAVE_ATTR_length and not
STACK_REGS.
2020-02-05 Jakub Jelinek <jakub@redhat.com>
PR target/92190
* recog.c (pass_split_after_reload::gate): For STACK_REGS targets,
don't run when !optimize.
(pass_split_before_regstack::gate): For STACK_REGS targets, run even
when !optimize.
More information about the Gcc-bugs
mailing list