public Operand buildReturn(ReturnNode returnNode, IRScope m) {
Operand retVal = (returnNode.getValueNode() == null) ? Nil.NIL : build(returnNode.getValueNode(), m);
// Before we return, have to go execute all the ensure blocks
if (!_ensureBlockStack.empty())
EnsureBlockInfo.emitJumpChain(m, _ensureBlockStack);
m.addInstr(new ReturnInstr(retVal));
// The value of the return itself in the containing expression can never be used because of control-flow reasons.
// The expression that uses this result can never be executed beyond this point and hence the value itself is just
// a placeholder operand.
return UnexecutableNil.U_NIL;