storeLocal(lv);
}
+ /**
+ * Generates the continuation code if it does not already exist.
+ */
public void ensureExists(Cont continuation) {
if(!generatedConts.contains(continuation))
((SSABlock)continuation).generateCode(this);
public <T> void addPreparation(PreparationStep<T> step, T result) {
preparationSteps.put(step, result);
}
+
+ public LocalVariable cacheValue(IVal val, Type type) {
+ if(val instanceof BoundVar) {
+ BoundVar boundVar = (BoundVar)val;
+ if(!boundVar.generateOnFly)
+ return getLocalVariable(boundVar);
+ }
+ push(val, type);
+ LocalVariable temp = createLocalVariable(null, getJavaTypeTranslator().toTypeDesc(type));
+ storeLocal(temp);
+ return temp;
+ }
}