bytecodealliance / regalloc2

A new register allocator
Apache License 2.0
217 stars 38 forks source link

Run the fuzzer with all register classes #152

Closed Amanieu closed 1 year ago

Amanieu commented 1 year ago

This quickly triggers a fuzzbug when two classes have the same spillslot size. It turns out that this is caused by the parallel move resolver not supporting cross-class moves, which can happen if the parallel involves a spillslot used by different classes before/after the move.

Amanieu commented 1 year ago

I found the cause of the fuzzbug, which should be fixed now.

Amanieu commented 1 year ago

It is reachable from Cranelift on RISC-V where both Int and Float use 1 spillslot.

cfallin commented 1 year ago

Oof, you're right, thanks. We'll do a release!