public final void compile() { if (!isCompiling()) { ensureCloned(); runtime.compile( this, TruffleBackgroundCompilation.getValue() && !TruffleCompilationExceptionsAreThrown.getValue()); } }
public OptimizedCallTarget cloneUninitialized() { ensureCloned(); RootNode copiedRoot = cloneRootNode(uninitializedRootNode); if (copiedRoot == null) { return null; } OptimizedCallTarget splitTarget = (OptimizedCallTarget) runtime.createClonedCallTarget(this, copiedRoot); splitTarget.cloneIndex = cloneIndex++; return splitTarget; }
private void interpreterCall() { if (isValid()) { // Stubs were deoptimized => reinstall. this.runtime.reinstallStubs(); } else { if (uninitializedRootNode == UNINITIALIZED) { ensureCloned(); } compilationProfile.reportInterpreterCall(); if (!isCompiling() && compilationPolicy.shouldCompile(compilationProfile, getCompilerOptions())) { compile(); } } }