We have a lot of duplicated code paths now that we optimize both sends with blocks and sends without blocks. Let's merge the HIR instructions SendWithBlock and Send. A PR will need to:
- Merge both instructions into Send
- Make sure all the SendWithoutBlock specializations appropriately check both
VM_CALL_ARGS_BLOCKARG and blockiseq
- Have the codegen call
rb_vm_opt_send_without_block if we definitely don't have a block (see above) and rb_vm_send otherwise
This should de-dup type_specialize and optimize_c_calls.
We have a lot of duplicated code paths now that we optimize both sends with blocks and sends without blocks. Let's merge the HIR instructions SendWithBlock and Send. A PR will need to:
VM_CALL_ARGS_BLOCKARGandblockiseqrb_vm_opt_send_without_blockif we definitely don't have a block (see above) andrb_vm_sendotherwiseThis should de-dup
type_specializeandoptimize_c_calls.