Right now, the allocator can panic if the client provides impossible constraints, such as requiring two different operands to be placed in the same PReg.
While this represents a programming error in the client and shouldn't arise from an invalid input program, it is always better to bubble up errors; we should reserve panic!() and assert!() for conditions that can only be violated due to errors in regalloc2 itself.
The text was updated successfully, but these errors were encountered:
I will report it here since I think it is a misuse on my part, but I ran into a panic when declaring a call instruction that returns (defines) r0 but also clobbers r0. The meaning of such an instruction is a bit ambiguous, but I guess regalloc interprets it as an impossible constraint.