コード例 #1
0
  public InterpretedIRBlockBody(IRClosure closure, Signature signature) {
    super(closure, signature);
    this.pushScope = true;
    this.reuseParentScope = false;

    // JIT currently JITs blocks along with their method and no on-demand by themselves.  We only
    // promote to full build here if we are -X-C.
    if (closure.getManager().getInstanceConfig().getCompileMode().shouldJIT()
        || Options.JIT_THRESHOLD.load() == -1) {
      callCount = -1;
    }
  }
コード例 #2
0
ファイル: MixedModeIRMethod.java プロジェクト: r6p/jruby
  protected void tryJit(ThreadContext context, DynamicMethodBox box) {
    if (context.runtime.isBooting()) return; // don't JIT during runtime boot

    if (box.callCount++ >= Options.JIT_THRESHOLD.load())
      context.runtime.getJITCompiler().buildThresholdReached(context, this);
  }
コード例 #3
0
  // Unlike JIT in MixedMode this will always successfully build but if using executor pool it may
  // take a while
  // and replace interpreterContext asynchronously.
  protected void promoteToFullBuild(ThreadContext context) {
    if (context.runtime.isBooting()) return; // don't Promote to full build during runtime boot

    if (callCount++ >= Options.JIT_THRESHOLD.load())
      context.runtime.getJITCompiler().buildThresholdReached(context, this);
  }