Cranelift: update to latest regalloc2: (#4324)

- Handle call instructions' clobbers with the clobbers API, using RA2's
  clobbers bitmask (bytecodealliance/regalloc2#58) rather than clobbers
  list;

- Pull in changes from bytecodealliance/regalloc2#59 for much more sane
  edge-case behavior w.r.t. liverange splitting.
This commit is contained in:
Chris Fallin
2022-06-28 09:01:59 -07:00
committed by GitHub
parent 66b829b1bf
commit b2e28b917a
21 changed files with 402 additions and 293 deletions

View File

@@ -315,15 +315,11 @@
;; Direct call: call simm32.
(CallKnown (dest ExternalName)
(uses VecReg)
(defs VecWritableReg)
(opcode Opcode))
(info BoxCallInfo))
;; Indirect call: callq (reg mem)
(CallUnknown (dest RegMem)
(uses VecReg)
(defs VecWritableReg)
(opcode Opcode))
(info BoxCallInfo))
;; Return.
(Ret (rets VecReg))
@@ -502,6 +498,8 @@
LFence
SFence))
(type BoxCallInfo extern (enum))
;; Get the `OperandSize` for a given `Type`, rounding smaller types up to 32 bits.
(decl operand_size_of_type_32_64 (Type) OperandSize)
(extern constructor operand_size_of_type_32_64 operand_size_of_type_32_64)