diff options
author | mconst <mconst@gmail.com> | 2025-01-24 20:03:57 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-25 12:03:57 +0800 |
commit | 1f26ac10ca1bef40a80be8f81a6f109713bc586f (patch) | |
tree | 3e7195f104b4ce30131146ea4ecba4cc800fa547 /llvm/lib/CodeGen/ModuloSchedule.cpp | |
parent | 8a6b44bf4cfe5df3db687a6b9519e99dbce8cf54 (diff) | |
download | llvm-1f26ac10ca1bef40a80be8f81a6f109713bc586f.zip llvm-1f26ac10ca1bef40a80be8f81a6f109713bc586f.tar.gz llvm-1f26ac10ca1bef40a80be8f81a6f109713bc586f.tar.bz2 |
[X86] Better handling of impossibly large stack frames (#124217)
If you try to create a stack frame of 4 GiB or larger with a 32-bit
stack pointer, we currently emit invalid instructions like `mov eax,
5000000000` (unless you specify `-fstack-clash-protection`, in which
case we emit a trap instead).
The trap seems nicer, so let's do that in all cases. This avoids
emitting invalid instructions, and also fixes the "can't have 32-bit
16GB stack frame" assertion in `X86FrameLowering::emitSPUpdate()` (which
used to be triggerable by user code, but is now correct).
This was originally part of #124041.
@phoebewang
Diffstat (limited to 'llvm/lib/CodeGen/ModuloSchedule.cpp')
0 files changed, 0 insertions, 0 deletions