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.ll fails, 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 llc it 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.rs could have a look or give me a hint about this?
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?