예제 #1
0
// Returns true if m must be compiled before executing it
// This is intended to force compiles for methods (usually for
// debugging) that would otherwise be interpreted for some reason.
bool CompilationPolicy::must_be_compiled(methodHandle m, int comp_level) {
    if (m->has_compiled_code()) return false;       // already compiled
    if (!can_be_compiled(m, comp_level)) return false;

    return !UseInterpreter ||                                              // must compile all methods
           (UseCompiler && AlwaysCompileLoopMethods && m->has_loops() && CompileBroker::should_compile_new_jobs()); // eagerly compile loop methods
}
// Returns true if m must be compiled before executing it
// This is intended to force compiles for methods (usually for
// debugging) that would otherwise be interpreted for some reason.
bool CompilationPolicy::mustBeCompiled(methodHandle m) {
  if (m->has_compiled_code()) return false;       // already compiled
  if (!canBeCompiled(m))      return false;

  return !UseInterpreter ||                                              // must compile all methods
         (UseCompiler && AlwaysCompileLoopMethods && m->has_loops()); // eagerly compile loop methods
}