1 package org.simantics.scl.compiler.internal.codegen.continuations;
3 import org.simantics.scl.compiler.internal.codegen.references.Val;
4 import org.simantics.scl.compiler.internal.codegen.references.ValRef;
5 import org.simantics.scl.compiler.internal.codegen.ssa.SSAExit;
8 public final class ContRef {
9 public static final ValRef[] EMPTY_ARRAY = new ValRef[0];
12 ContRef prev; // FreeVars with the same binding form a linked list
16 ContRef(Cont binding) {
17 this.binding = binding;
19 ContRef head = binding.occurrence;
20 binding.occurrence = this;
26 public void remove() {
28 binding.occurrence = next;
35 public Cont getBinding() {
39 public ContRef getNext() {
43 public void setParent(SSAExit parent) {
47 public Cont addParametersInFront(Val[] newParameters, Val[] oldParameters, Cont proxy) {
48 return parent.addParametersInFrontOf(this, newParameters, oldParameters, proxy);
51 public SSAExit getParent() {