test regalloc set is_64bit isa x86 ; Test case found by the Binaryen fuzzer. ; ; The spiller panics with a ; 'Ran out of GPR registers when inserting copy before v68 = icmp.i32 eq v66, v67', ; lib/codegen/src/regalloc/spilling.rs:425:28 message. ; ; The process_reg_uses() function is trying to insert a copy before the icmp instruction in ebb4 ; and runs out of registers to spill. Note that ebb7 has a lot of dead parameter values. ; ; The spiller was not releasing register pressure for dead EBB parameters. function %pr223(i32 [%rdi], i64 vmctx [%rsi]) -> i64 [%rax] system_v { ebb0(v0: i32, v1: i64): v2 = iconst.i32 0 v3 = iconst.i64 0 v4 = iconst.i32 0xffff_ffff_bb3f_4a2c brz v4, ebb5 jump ebb1 ebb1: v5 = iconst.i32 0 v6 = copy.i64 v3 v7 = copy.i64 v3 v8 = copy.i64 v3 v9 = copy.i64 v3 v10 = copy.i64 v3 v11 = copy.i64 v3 v12 = copy.i64 v3 v13 = copy.i64 v3 v14 = copy.i64 v3 v15 = copy.i64 v3 v16 = copy.i64 v3 brnz v5, ebb4(v2, v3, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16) jump ebb2 ebb2: v17 = iconst.i32 0 v18 = copy.i64 v3 v19 = copy.i64 v3 v20 = copy.i64 v3 v21 = copy.i64 v3 v22 = copy.i64 v3 v23 = copy.i64 v3 v24 = copy.i64 v3 v25 = copy.i64 v3 v26 = copy.i64 v3 v27 = copy.i64 v3 v28 = copy.i64 v3 brnz v17, ebb4(v2, v3, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28) jump ebb3 ebb3: jump ebb1 ebb4(v29: i32, v30: i64, v31: i64, v32: i64, v33: i64, v34: i64, v35: i64, v36: i64, v37: i64, v38: i64, v39: i64, v40: i64, v41: i64): jump ebb7(v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41) ebb5: jump ebb6 ebb6: v42 = copy.i64 v3 v43 = copy.i64 v3 v44 = copy.i64 v3 v45 = copy.i64 v3 v46 = copy.i64 v3 v47 = copy.i64 v3 v48 = copy.i64 v3 v49 = copy.i64 v3 v50 = copy.i64 v3 v51 = copy.i64 v3 v52 = copy.i64 v3 jump ebb7(v2, v3, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52) ebb7(v53: i32, v54: i64, v55: i64, v56: i64, v57: i64, v58: i64, v59: i64, v60: i64, v61: i64, v62: i64, v63: i64, v64: i64, v65: i64): v66 = iconst.i32 0 v67 = iconst.i32 0 v68 = icmp eq v66, v67 v69 = bint.i32 v68 jump ebb8 ebb8: jump ebb9 ebb9: v70 = iconst.i32 0xffff_ffff_ffff_912f brz v70, ebb10 jump ebb35 ebb10: v71 = iconst.i32 0 brz v71, ebb11 jump ebb27 ebb11: jump ebb12 ebb12: jump ebb13 ebb13: jump ebb14 ebb14: jump ebb15 ebb15: jump ebb16 ebb16: jump ebb17 ebb17: jump ebb18 ebb18: jump ebb19 ebb19: jump ebb20 ebb20: jump ebb21 ebb21: jump ebb22 ebb22: jump ebb23 ebb23: jump ebb24 ebb24: jump ebb25 ebb25: jump ebb26 ebb26: jump ebb27 ebb27: jump ebb28 ebb28: jump ebb29 ebb29: jump ebb30 ebb30: jump ebb31 ebb31: jump ebb32 ebb32: jump ebb33 ebb33: jump ebb34 ebb34: jump ebb35 ebb35: jump ebb36 ebb36: trap user0 }