@Override public TemporaryVariable getNewTemporaryVariable() { temporaryVariableIndex++; return new TemporaryClosureVariable(closureId, temporaryVariableIndex); }
public TemporaryClosureVariable(int closureId, int offset) { super(offset); this.closureId = closureId; this.prefix = "%cl_" + closureId + "_"; this.name = getPrefix() + offset; }
public static TemporaryLocalVariable decode(IRReaderDecoder d) { TemporaryVariableType type = d.decodeTemporaryVariableType(); switch(type) { case CLOSURE: return TemporaryClosureVariable.decode(d); case CURRENT_MODULE: return TemporaryCurrentModuleVariable.decode(d); case CURRENT_SCOPE: return TemporaryCurrentScopeVariable.decode(d); case FLOAT: return TemporaryFloatVariable.decode(d); case FIXNUM: return TemporaryFixnumVariable.decode(d); case BOOLEAN: return TemporaryBooleanVariable.decode(d); case LOCAL: return d.getCurrentScope().getManager().newTemporaryLocalVariable(d.decodeInt()); } return null; // Should not reach here. }
public static TemporaryLocalVariable decode(IRReaderDecoder d) { TemporaryVariableType type = d.decodeTemporaryVariableType(); switch(type) { case CLOSURE: return TemporaryClosureVariable.decode(d); case CURRENT_MODULE: return TemporaryCurrentModuleVariable.decode(d); case CURRENT_SCOPE: return TemporaryCurrentScopeVariable.decode(d); case FLOAT: return TemporaryFloatVariable.decode(d); case FIXNUM: return TemporaryFixnumVariable.decode(d); case BOOLEAN: return TemporaryBooleanVariable.decode(d); case LOCAL: return d.getCurrentScope().getManager().newTemporaryLocalVariable(d.decodeInt()); } return null; // Should not reach here. }
@Override public TemporaryVariable getNewTemporaryVariable() { temporaryVariableIndex++; return new TemporaryClosureVariable(closureId, temporaryVariableIndex); }
public TemporaryClosureVariable(int closureId, int offset) { super(offset); this.closureId = closureId; this.prefix = "%cl_" + closureId + "_"; this.name = getPrefix() + offset; }
@Override public Variable cloneForCloningClosure(InlinerInfo ii) { return new TemporaryClosureVariable(name, offset); }
public TemporaryVariable getNewTemporaryVariable(String name) { temporaryVariableIndex++; return new TemporaryClosureVariable(name, temporaryVariableIndex); }
@Override public Variable cloneForCloningClosure(InlinerInfo ii) { return new TemporaryClosureVariable(name, offset); }
public TemporaryVariable getNewTemporaryVariable(String name) { temporaryVariableIndex++; return new TemporaryClosureVariable(name, temporaryVariableIndex); }
@Override public TemporaryLocalVariable getNewTemporaryVariable(TemporaryVariableType type) { if (type == TemporaryVariableType.CLOSURE) { temporaryVariableIndex++; return new TemporaryClosureVariable(closureId, temporaryVariableIndex); } return super.getNewTemporaryVariable(type); }
@Override public TemporaryLocalVariable getNewTemporaryVariable(TemporaryVariableType type) { if (type == TemporaryVariableType.CLOSURE) { temporaryVariableIndex++; return new TemporaryClosureVariable(closureId, temporaryVariableIndex); } return super.getNewTemporaryVariable(type); }
public static TemporaryClosureVariable decode(IRReaderDecoder d) { int offset = d.decodeInt(); int closureId = d.decodeInt(); return new TemporaryClosureVariable(closureId, offset); }
public static TemporaryClosureVariable decode(IRReaderDecoder d) { int offset = d.decodeInt(); int closureId = d.decodeInt(); return new TemporaryClosureVariable(closureId, offset); }