x = ...; y = ...; if(need_to_gc) { store(x); store(y); call_gc(); x1 = load(...); y1 = load(...); } else { x2 = x; y2 = y; } x3 = phi(x1,x2); y3 = phi(y1,y2); ... = x3