@Override protected void onLoad(RootNode rootNode) { super.onLoad(rootNode); }
protected Object callProfiled(CallTarget target, Object... args) { return SUPPORT.callProfiled(target, args); }
/** * Only useful for virtual machine implementors. * * @since 0.12 */ protected TVMCI() { // export only for select packages assert checkCaller(); }
void onFirstExecution(DefaultCallTarget callTarget) { super.onFirstExecution(callTarget.getRootNode()); }
protected OptionDescriptors getCompilerOptions() { if (SUPPORT == null) { return OptionDescriptors.EMPTY; } return SUPPORT.getCompilerOptionDescriptors(); }
public void reportPolymorphicSpecialize(Node node) { SUPPORT.reportPolymorphicSpecialize(node); } }
protected boolean isGuestCallStackElement(StackTraceElement element) { if (SUPPORT == null) { return false; } return SUPPORT.isGuestCallStackFrame(element); }
protected void initializeProfile(CallTarget target, Class<?>[] argmentTypes) { SUPPORT.initializeProfile(target, argmentTypes); }
@SuppressWarnings("deprecation") protected void onLoopCount(Node source, int iterations) { if (SUPPORT != null) { SUPPORT.onLoopCount(source, iterations); } else { // needs an additional compatibility check so older graal runtimes // still run with newer truffle versions RootNode root = source.getRootNode(); if (root != null) { RootCallTarget target = root.getCallTarget(); if (target instanceof com.oracle.truffle.api.LoopCountReceiver) { ((com.oracle.truffle.api.LoopCountReceiver) target).reportLoopCount(iterations); } } } }
protected <T> T getOrCreateRuntimeData(RootNode rootNode, Supplier<T> constructor) { Objects.requireNonNull(constructor); final Accessor.Nodes nodesAccess = Accessor.nodesAccess(); final EngineSupport engineAccess = Accessor.engineAccess(); if (rootNode != null && nodesAccess != null && engineAccess != null) { final Object sourceVM = nodesAccess.getSourceVM(rootNode); if (sourceVM != null) { final T runtimeData = engineAccess.getOrCreateRuntimeData(sourceVM, constructor); if (runtimeData != null) { return runtimeData; } } } return getOrCreateFallbackEngineData(constructor); }
void onFirstExecution(DefaultCallTarget callTarget) { super.onFirstExecution(callTarget.getRootNode()); }
protected OptionDescriptors getCompilerOptions() { if (SUPPORT == null) { return OptionDescriptors.EMPTY; } return SUPPORT.getCompilerOptionDescriptors(); }
public void reportPolymorphicSpecialize(Node node) { SUPPORT.reportPolymorphicSpecialize(node); } }
protected boolean isGuestCallStackElement(StackTraceElement element) { if (SUPPORT == null) { return false; } return SUPPORT.isGuestCallStackFrame(element); }
protected void initializeProfile(CallTarget target, Class<?>[] argmentTypes) { SUPPORT.initializeProfile(target, argmentTypes); }
protected void onLoopCount(Node source, int iterations) { if (SUPPORT != null) { SUPPORT.onLoopCount(source, iterations); } else { // needs an additional compatibility check so older graal runtimes // still run with newer truffle versions RootNode root = source.getRootNode(); if (root != null) { RootCallTarget target = root.getCallTarget(); if (target instanceof com.oracle.truffle.api.LoopCountReceiver) { ((com.oracle.truffle.api.LoopCountReceiver) target).reportLoopCount(iterations); } } } }
protected <T> T getOrCreateRuntimeData(RootNode rootNode, Supplier<T> constructor) { Objects.requireNonNull(constructor); final Accessor.Nodes nodesAccess = Accessor.nodesAccess(); final EngineSupport engineAccess = Accessor.engineAccess(); if (rootNode != null && nodesAccess != null && engineAccess != null) { final Object sourceVM = nodesAccess.getSourceVM(rootNode); if (sourceVM != null) { final T runtimeData = engineAccess.getOrCreateRuntimeData(sourceVM, constructor); if (runtimeData != null) { return runtimeData; } } } return getOrCreateFallbackEngineData(constructor); }
void onFirstExecution(OptimizedCallTarget callTarget) { super.onFirstExecution(callTarget.getRootNode()); }
void onLoad(DefaultCallTarget callTarget) { super.onLoad(callTarget.getRootNode()); }
protected Object callProfiled(CallTarget target, Object... args) { return SUPPORT.callProfiled(target, args); }