Optimise __SUB__ to a constant
If __SUB__ is not inside a closure, it can be optimised to a constant.
We can only do this in the peephole optimiser, as we cannot tell
whether PL_compcv will become a closure until we reach the end
of the sub.
The __SUB__ op cannot simply be replaced with a const op, as the par-
ent op is not readily available in the peephole optimiser and, hence,
we cannot change its pointer.
So we have to convert the runcv op itself into a const op. So it
has to be the same size. This commit makes it a PVOP, since newPVOP,
unlike newSVOP, allows a null pv. To avoid adding workarounds to B
modules, I put an exception in newPVOP’s assertion, instead of chang-
ing the type in regen/opcodes.
But B::Deparse still had to be updated to avoid infinite recursion.