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; } }
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); }
// 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); }