int j = whichPred(Y,X);
for (Assignment A : Lists.newArrayList(Y.phiAssignments())) {
PhiFunction rhs = (PhiFunction) A.getRHS();
Variable V = rhs.getArgument(j);
int i = Top(V);
rhs = rhs.replaceVariable(j, i);
Y.replaceStatement(A, new Assignment(A.getLHS(), rhs));
// replace the j-th operand V in RHS(F) by V_i where i = Top(S(V))
}
}
for(BasicBlock Y : dtree.getChildren(X)) {