This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH 0/2] [i386] PR82002 Correct ICE with large stack frame
- From: Daniel Santos <daniel dot santos at pobox dot com>
- To: Uros Bizjak <ubizjak at gmail dot com>, gcc-patches <gcc-patches at gcc dot gnu dot org>, Rainer Orth <ro at CeBiTec dot Uni-Bielefeld dot DE>
- Cc: Jan Hubicka <hubicka at ucw dot cz>, Jakub Jelinek <jakub at redhat dot com>, Martin Liska <mliska at suse dot cz>
- Date: Mon, 30 Oct 2017 21:06:00 -0500
- Subject: [PATCH 0/2] [i386] PR82002 Correct ICE with large stack frame
- Authentication-results: sourceware.org; auth=none
I originally intended to submit the first part of this patch set a few
weeks ago as it was simpler, but here is the full fix. The first part
is a really simple follow-up fix to an off-by-one error H.J. originally
fixed with r252099, but in the process of testing I discovered a more
complex problem when we add a ms_abi to sysv_abi call that resulted in a
bad INSN because I didn't check for a non-immediate offset.
I originally wrote a different solution where I added a mechanism to
struct ix86_frame to track and reuse a scratch register in the
pro/epilogue, but then I realized that I didn't need that if I just
emitted the SSE saves or stub call after the SP realignment and prior to
allocating the remainder of the frame. However, I still need to use a
scratch register sometimes in the epilogue, so I've added a simplified
mechanism to choose_baseaddr to manage that, but not to track and reuse
it for subsequent calls.
Unfortunately, this sat for so long that there's two duplicates in
Bugzilla now (pr82485 and pr82712). Regression tested with {,-m32} and
I've started one for x32 even though it *shouldn't* affect it (in theory).
Thanks,
Daniel