Move register allocation logic from impl_deref->out_deref
Optimise backend dereference with unique out_val
Removed unused out_blk members