Set<Expr> clone_live(Set<Expr> phis,Set<Expr> live,Edge p){
  if (phis.isEmpty() || live.isEmpty())   return live;
  Set<Expr> copy=new TreeSet<Expr>();
  for (  Expr e : live)   copy.add(phis.contains(e) ? e.args[findPhiArg(e,p)] : e);
  return copy;
}

Set < Expr > clone_live ( Set < Expr > phis , Set < Expr > live , Edge p ) { if ( phis . isEmpty ( ) || live . isEmpty ( ) ) return live ; Set < Expr > copy = new TreeSet < Expr > ( ) ; for ( Expr e : live ) copy . add ( phis . contains ( e ) ? e . args [ findPhiArg ( e , p ) ] : e ) ; return copy ; }
clone the live vars set for a particular predecessor edge , replacing phi ' s with the expr corresponding to that edge .
