-
-
Notifications
You must be signed in to change notification settings - Fork 14.7k
Fix stack probing for x32 #59674
Copy link
Copy link
Closed
Labels
A-LLVMArea: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues.Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues.C-bugCategory: This is a bug.Category: This is a bug.O-x3232 bit ABI for x86-6432 bit ABI for x86-64T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Metadata
Metadata
Assignees
Labels
A-LLVMArea: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues.Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues.C-bugCategory: This is a bug.Category: This is a bug.O-x3232 bit ABI for x86-6432 bit ABI for x86-64T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Type
Fields
Give feedbackNo fields configured for issues without a type.
I've got a Rust minimal repro code (a.rs), its mir output (a.mir), its x86 codegen output (a.x86.ll) and its gnu-x32 codegen output (a.gnux32.ll) All these files are in this this gist.
Currently,
llc a.gnux32.llfails, saying "llvm error cannot emit physreg copy instruction".I don't understand llvm ir at all myself, but i tried commenting out L309, L311 & L314 out (all accessing a special 'variable?' called 'unsized_tmp') and
llcit passes, then i uncomment L309 and llc fails again.This issue is blocking #59500. Maybe @eddyb, @oli-obk or someone else who's familiar with
rust/src/librustc_codegen_ssa/mir/operand.rscould have a look or give me a hint about this?