public static ArrayList<Instruction> recompileHopsDag2Forced(StatementBlock sb,ArrayList<Hop> hops,long tid,ExecType et) throws DMLRuntimeException, HopsException, LopsException, IOException {
  ArrayList<Instruction> newInst=null;
synchronized (hops) {
    LOG.debug("\n**************** Optimizer (Recompile) *************\nMemory Budget = " + OptimizerUtils.toMB(OptimizerUtils.getLocalMemBudget()) + " MB");
    Hop.resetVisitStatus(hops);
    for (    Hop hopRoot : hops)     rClearLops(hopRoot);
    Hop.resetVisitStatus(hops);
    for (    Hop hopRoot : hops)     rSetExecType(hopRoot,et);
    Hop.resetVisitStatus(hops);
    Dag<Lop> dag=new Dag<Lop>();
    for (    Hop hopRoot : hops) {
      Lop lops=hopRoot.constructLops();
      lops.addToDag(dag);
    }
    newInst=dag.getJobs(sb,ConfigurationManager.getDMLConfig());
  }
  if (tid != 0)   newInst=ProgramConverter.createDeepCopyInstructionSet(newInst,tid,-1,null,null,null,false,false);
  return newInst;
}

public static ArrayList < Instruction > recompileHopsDag2Forced ( StatementBlock sb , ArrayList < Hop > hops , long tid , ExecType et ) throws DMLRuntimeException , HopsException , LopsException , IOException { ArrayList < Instruction > newInst = null ; synchronized ( hops ) { LOG . debug ( "\n**************** Optimizer (Recompile) *************\nMemory Budget = " + OptimizerUtils . toMB ( OptimizerUtils . getLocalMemBudget ( ) ) + " MB" ) ; Hop . resetVisitStatus ( hops ) ; for ( Hop hopRoot : hops ) rClearLops ( hopRoot ) ; Hop . resetVisitStatus ( hops ) ; for ( Hop hopRoot : hops ) rSetExecType ( hopRoot , et ) ; Hop . resetVisitStatus ( hops ) ; Dag < Lop > dag = new Dag < Lop > ( ) ; for ( Hop hopRoot : hops ) { Lop lops = hopRoot . constructLops ( ) ; lops . addToDag ( dag ) ; } newInst = dag . getJobs ( sb , ConfigurationManager . getDMLConfig ( ) ) ; } if ( tid != 0 ) newInst = ProgramConverter . createDeepCopyInstructionSet ( newInst , tid , - 1 , null , null , null , false , false ) ; return newInst ; }
c ) recompile basic program block hop dag , but forced to cp . this happens always ' inplace ' , without statistics updates , and without dynamic rewrites .
