diff options
author | Hans Wennborg <hans@chromium.org> | 2024-08-21 10:12:37 +0200 |
---|---|---|
committer | Hans Wennborg <hans@chromium.org> | 2024-08-21 10:23:20 +0200 |
commit | 768598bcc3528ff5c4cd2c8a9b74d023614e1a9e (patch) | |
tree | f49c55bde0e973d9e2033d473a18a4aa0082a29d /llvm/lib/CodeGen/PrologEpilogInserter.cpp | |
parent | a811f263356af4fcf5b479c7a32d1bab44ac8954 (diff) | |
download | llvm-768598bcc3528ff5c4cd2c8a9b74d023614e1a9e.zip llvm-768598bcc3528ff5c4cd2c8a9b74d023614e1a9e.tar.gz llvm-768598bcc3528ff5c4cd2c8a9b74d023614e1a9e.tar.bz2 |
Revert "[LLVM] [X86] Fix integer overflows in frame layout for huge frames (#101840)"
This casuses assertion failures targeting 32-bit x86:
lib/Target/X86/X86RegisterInfo.cpp:989:
virtual bool llvm::X86RegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator, int, unsigned int, RegScavenger *) const:
Assertion `(Is64Bit || FitsIn32Bits) && "Requesting 64-bit offset in 32-bit immediate!"' failed.
See comment on the PR.
> Fix 32-bit integer overflows in the X86 target frame layout when dealing
> with frames larger than 4gb. When this occurs, we'll scavenge a scratch
> register to be able to hold the correct stack offset for frame locals.
>
> This completes reapplying #84114.
>
> Fixes #48911
> Fixes #75944
> Fixes #87154
This reverts commit 0abb7791614947bc24931dd851ade31d02496977.
Diffstat (limited to 'llvm/lib/CodeGen/PrologEpilogInserter.cpp')
-rw-r--r-- | llvm/lib/CodeGen/PrologEpilogInserter.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/PrologEpilogInserter.cpp b/llvm/lib/CodeGen/PrologEpilogInserter.cpp index c03ea58..ee03eaa 100644 --- a/llvm/lib/CodeGen/PrologEpilogInserter.cpp +++ b/llvm/lib/CodeGen/PrologEpilogInserter.cpp @@ -1553,7 +1553,7 @@ void PEI::replaceFrameIndices(MachineBasicBlock *BB, MachineFunction &MF, // If this instruction has a FrameIndex operand, we need to // use that target machine register info object to eliminate // it. - TRI.eliminateFrameIndex(MI, SPAdj, i, RS); + TRI.eliminateFrameIndex(MI, SPAdj, i); // Reset the iterator if we were at the beginning of the BB. if (AtBeginning) { |