[Bug target/113876] ICE: in ix86_expand_epilogue, at config/i386/i386.cc:10101 with -O -mpreferred-stack-boundary=3 -finstrument-functions -mapxf -mcmodel=large
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113876 H.J. Lu changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #4 from H.J. Lu --- Fixed.
[Bug target/113876] ICE: in ix86_expand_epilogue, at config/i386/i386.cc:10101 with -O -mpreferred-stack-boundary=3 -finstrument-functions -mapxf -mcmodel=large
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113876 --- Comment #3 from GCC Commits --- The master branch has been updated by H.J. Lu : https://gcc.gnu.org/g:ab71fd7ac7a2307723117c796e7ae4d7e9711058 commit r14-8966-gab71fd7ac7a2307723117c796e7ae4d7e9711058 Author: H.J. Lu Date: Tue Feb 13 11:58:00 2024 -0800 x86-64: Use push2/pop2 only if the incoming stack is 16-byte aligned Since push2/pop2 requires 16-byte stack alignment, don't use them if the incoming stack isn't 16-byte aligned. gcc/ PR target/113876 * config/i386/i386.cc (ix86_pro_and_epilogue_can_use_push2pop2): Return false if the incoming stack isn't 16-byte aligned. gcc/testsuite/ PR target/113876 * gcc.target/i386/pr113876.c: New test.
[Bug target/113876] ICE: in ix86_expand_epilogue, at config/i386/i386.cc:10101 with -O -mpreferred-stack-boundary=3 -finstrument-functions -mapxf -mcmodel=large
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113876 H.J. Lu changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2024-02-13 Target Milestone|--- |14.0 CC||crazylht at gmail dot com Ever confirmed|0 |1 --- Comment #2 from H.J. Lu --- A patch is at https://patchwork.sourceware.org/project/gcc/list/?series=30888
[Bug target/113876] ICE: in ix86_expand_epilogue, at config/i386/i386.cc:10101 with -O -mpreferred-stack-boundary=3 -finstrument-functions -mapxf -mcmodel=large
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113876 Jakub Jelinek changed: What|Removed |Added Summary|ICE: in |ICE: in |ix86_expand_epilogue, at|ix86_expand_epilogue, at |config/i386/i386.cc:10101 |config/i386/i386.cc:10101 |with -O |with -O |-mpreferred-stack-boundary= |-mpreferred-stack-boundary= |3 -finstrument-functions|3 -finstrument-functions |-mapxf -mcmodel=large and |-mapxf -mcmodel=large |_BitInt() | CC||hjl.tools at gmail dot com, ||jakub at gcc dot gnu.org --- Comment #1 from Jakub Jelinek --- Doesn't need UB in the testcase to reproduce, /* { dg-options "-O -mpreferred-stack-boundary=3 -finstrument-functions -mapxf -mcmodel=large" } */ _BitInt(129) bar (void) { return 0; } ICEs too. And it doesn't have to do anything together with _Bitint either, /* { dg-options "-O -mpreferred-stack-boundary=3 -finstrument-functions -mapxf -mcmodel=large" } */ void bar (unsigned long *p) { p[0] = 0; p[1] = 0; p[2] = 0; } ICEs the same.