-
Notifications
You must be signed in to change notification settings - Fork 13.5k
virtual bool llvm::X86RegisterInfo::eliminateFrameIndex(llvm::MachineBasicBlock::iterator, int, unsigned int, llvm::RegScavenger*) const: Assertion `(!Is64Bit || isInt<32>((long long)FIOffset + Imm)) && "Requesting 64-bit offset in 32-bit immediate!"' failed. #87154
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
@llvm/issue-subscribers-backend-x86 Author: None (DigOrDog)
# Description
The following code crashes X86 backend with "Assertion `(!Is64Bit || isInt<32>((long long)FIOffset + Imm)) && "Requesting 64-bit offset in 32-bit immediate!"' failed."
Minimal Reproductionhttps://godbolt.org/z/h57r6bMsq codedefine void @<!-- -->f(i16 %LGV2, i1 %LGV3) {
BB:
%A = alloca i1, i33 2147483648, align 1
%G = getelementptr i1, ptr %A, i16 %LGV2
%G4 = getelementptr i1, ptr %G, i32 -2147483648
store i1 %LGV3, ptr %G4, align 1
ret void
} Stack Trace
|
This should be addressed when #84114 gets fixed + re-committed |
Thank you for your previous response regarding the issue I reported. I noticed that #84114, which was anticipated to address my concern, has been fixed and re-committed. However, I'm still experiencing the original problem I reported. Could you please take another look at it? Perhaps there might be another underlying cause that wasn't addressed by the fix for #84114. I'm happy to provide any additional information or assistance needed to help diagnose the issue further. |
AFAICT #84114 has not been recommitted - the PR is closed because github won't let us reopen PRs that have been committed. |
…rames (#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 0abb779.
…rames (llvm#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 llvm#84114. > > Fixes llvm#48911 > Fixes llvm#75944 > Fixes llvm#87154 This reverts commit 0abb779.
Description
The following code crashes X86 backend with "Assertion `(!Is64Bit || isInt<32>((long long)FIOffset + Imm)) && "Requesting 64-bit offset in 32-bit immediate!"' failed."
Minimal Reproduction
https://godbolt.org/z/h57r6bMsq
code
Stack Trace
The text was updated successfully, but these errors were encountered: