public ScalarObject executePredicate(ArrayList<Instruction> inst,Hop hops,boolean requiresRecompile,ValueType retType,ExecutionContext ec) throws DMLRuntimeException {
  ArrayList<Instruction> tmp=inst;
  try {
    long t0=DMLScript.STATISTICS ? System.nanoTime() : 0;
    if (ConfigurationManager.isDynamicRecompilation() && requiresRecompile) {
      tmp=Recompiler.recompileHopsDag(hops,ec.getVariables(),null,false,_tid);
    }
    if (DMLScript.STATISTICS) {
      long t1=System.nanoTime();
      Statistics.incrementHOPRecompileTime(t1 - t0);
      if (tmp != inst)       Statistics.incrementHOPRecompilePred();
    }
  }
 catch (  Exception ex) {
    throw new DMLRuntimeException("Unable to recompile predicate instructions.",ex);
  }
  return executePredicateInstructions(tmp,retType,ec);
}

public ScalarObject executePredicate ( ArrayList < Instruction > inst , Hop hops , boolean requiresRecompile , ValueType retType , ExecutionContext ec ) throws DMLRuntimeException { ArrayList < Instruction > tmp = inst ; try { long t0 = DMLScript . STATISTICS ? System . nanoTime ( ) : 0 ; if ( ConfigurationManager . isDynamicRecompilation ( ) && requiresRecompile ) { tmp = Recompiler . recompileHopsDag ( hops , ec . getVariables ( ) , null , false , _tid ) ; } if ( DMLScript . STATISTICS ) { long t1 = System . nanoTime ( ) ; Statistics . incrementHOPRecompileTime ( t1 - t0 ) ; if ( tmp != inst ) Statistics . incrementHOPRecompilePred ( ) ; } } catch ( Exception ex ) { throw new DMLRuntimeException ( "Unable to recompile predicate instructions." , ex ) ; } return executePredicateInstructions ( tmp , retType , ec ) ; }
executes given predicate instructions ( incl recompilation if required )
