@Override public Instr clone(CloneInfo info) { if (info instanceof SimpleCloneInfo) return new LoadFrameClosureInstr(info.getRenamedVariable(result)); // SSS FIXME: This code below is for inlining and is untested. InlineCloneInfo ii = (InlineCloneInfo) info; // SSS FIXME: This is not strictly correct -- we have to wrap the block into an // operand type that converts the static code block to a proc which is a closure. if (ii.getCallClosure() instanceof WrappedIRClosure) return NopInstr.NOP; return new CopyInstr(ii.getRenamedVariable(result), ii.getCallClosure()); }
@Override public Instr clone(CloneInfo info) { if (info instanceof SimpleCloneInfo) return new LoadFrameClosureInstr(info.getRenamedVariable(result)); // SSS FIXME: This code below is for inlining and is untested. InlineCloneInfo ii = (InlineCloneInfo) info; // SSS FIXME: This is not strictly correct -- we have to wrap the block into an // operand type that converts the static code block to a proc which is a closure. if (ii.getCallClosure() instanceof WrappedIRClosure) return NopInstr.NOP; return new CopyInstr(ii.getRenamedVariable(result), ii.getCallClosure()); }
@Override public Instr clone(CloneInfo info) { if (info instanceof SimpleCloneInfo) return new LoadImplicitClosureInstr(info.getRenamedVariable(result)); InlineCloneInfo ii = (InlineCloneInfo) info; return new CopyInstr(ii.getRenamedVariable(result), ii.getCallClosure()); }
@Override public Instr clone(CloneInfo info) { if (info instanceof SimpleCloneInfo) return new LoadImplicitClosureInstr(info.getRenamedVariable(result)); InlineCloneInfo ii = (InlineCloneInfo) info; return new CopyInstr(ii.getRenamedVariable(result), ii.getCallClosure()); }