https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91528
--- Comment #10 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Uroš Bizjak from comment #9) > (In reply to Richard Biener from comment #8) > > (In reply to Uroš Bizjak from comment #5) > > > Created attachment 46753 [details] > > > Conditionally generate DRAP reg for realigned stack > > > > > > This should be the correct patch, we call targetm.calls.get_drap_rtx only > > > when crtl->drap_reg is null (get_drap_rtx also emits DRAP initialization > > > sequence). > > > > > > Richi, can you please put the patch through your testing with forced STV > > > on > > > -march=westmere? I'm bootstrapping with the patch, but this means little > > > with generic bootstrap. > > > > The patch passed bootstrap with -march=westmere for all languages with > > STV forced to convert all chains. > > Great! > > > Testing is a bit fragile since for example we build most > > gcc.target/i386/avx512*.c tests with some -mavx512 flags and expect no > > AVX512 insns to be > > used before the CPUID verification - of course with all chains actually > > converted some AVX512 insns creep in into the CPUID verification path and > > the tests fail with an illegal instruction (so techincally the testcases > > are invalid since the main driver with the CPUID check is compiled with > > -mavx512*). > > Dynamic re-alignment and prologue/epilogue construction code is sprinkled > with many (helpful!) asserts, so the compilation would break left and right > if we got realignment functionality wrong. > > Based on your testing, I feel confident enough that my patch is OK, so let's > proceed with this one and keep an eye on testers and fuzzers. Will you apply it?