aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/PrologEpilogInserter.cpp
diff options
context:
space:
mode:
authorHans Wennborg <hans@chromium.org>2024-08-21 10:12:37 +0200
committerHans Wennborg <hans@chromium.org>2024-08-21 10:23:20 +0200
commit768598bcc3528ff5c4cd2c8a9b74d023614e1a9e (patch)
treef49c55bde0e973d9e2033d473a18a4aa0082a29d /llvm/lib/CodeGen/PrologEpilogInserter.cpp
parenta811f263356af4fcf5b479c7a32d1bab44ac8954 (diff)
downloadllvm-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.cpp2
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) {