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.