# HG changeset patch # User Christian Humer # Date 1413843771 -7200 # Node ID b4e38f4ca4143f47e52a698e0531af77bd720273 # Parent b3adab5f01a2dde60ca01e38e589e871869a1e94 Truffle: rename @SlowPath to @TruffleBoundary. diff -r b3adab5f01a2 -r b4e38f4ca414 CHANGELOG.md --- a/CHANGELOG.md Tue Oct 21 00:22:48 2014 +0200 +++ b/CHANGELOG.md Tue Oct 21 00:22:51 2014 +0200 @@ -8,6 +8,7 @@ ### Truffle * Relaxed declared type restriction on child fields to allow for interface types in addition to Node subclasses. * The BranchProfile constructor is now private. Use BranchProfile#create() instead. +* Renamed @CompilerDirectives.SlowPath to @CompilerDirectives.TruffleBoundary * ... ## Version 0.5 diff -r b3adab5f01a2 -r b4e38f4ca414 graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/builtins/SLCallUntilOptimizedBuiltin.java --- a/graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/builtins/SLCallUntilOptimizedBuiltin.java Tue Oct 21 00:22:48 2014 +0200 +++ b/graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/builtins/SLCallUntilOptimizedBuiltin.java Tue Oct 21 00:22:51 2014 +0200 @@ -49,7 +49,7 @@ @Child private IndirectCallNode indirectCall = Truffle.getRuntime().createIndirectCallNode(); @Specialization - @SlowPath + @TruffleBoundary public SLFunction callUntilCompiled(VirtualFrame frame, SLFunction function) { OptimizedCallTarget target = ((OptimizedCallTarget) function.getCallTarget()); for (int i = 0; i < MAX_CALLS; i++) { diff -r b3adab5f01a2 -r b4e38f4ca414 graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/builtins/SLDisableSplittingBuiltin.java --- a/graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/builtins/SLDisableSplittingBuiltin.java Tue Oct 21 00:22:48 2014 +0200 +++ b/graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/builtins/SLDisableSplittingBuiltin.java Tue Oct 21 00:22:51 2014 +0200 @@ -38,7 +38,7 @@ public abstract class SLDisableSplittingBuiltin extends SLGraalRuntimeBuiltin { @Specialization - @SlowPath + @TruffleBoundary public SLFunction disableSplitting(SLFunction function) { OptimizedCallTarget target = (OptimizedCallTarget) function.getCallTarget(); for (OptimizedCallTarget oct : findDuplicateCallTargets(target)) { @@ -48,7 +48,7 @@ } @Specialization - @SlowPath + @TruffleBoundary public SLNull disableSplitting(@SuppressWarnings("unused") SLNull argument) { RootNode parentRoot = Truffle.getRuntime().getCallerFrame().getCallNode().getRootNode(); ((SLRootNode) parentRoot).setSplittable(false); diff -r b3adab5f01a2 -r b4e38f4ca414 graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/builtins/SLGetOptionBuiltin.java --- a/graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/builtins/SLGetOptionBuiltin.java Tue Oct 21 00:22:48 2014 +0200 +++ b/graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/builtins/SLGetOptionBuiltin.java Tue Oct 21 00:22:51 2014 +0200 @@ -36,7 +36,7 @@ public abstract class SLGetOptionBuiltin extends SLGraalRuntimeBuiltin { @Specialization - @SlowPath + @TruffleBoundary public Object getOption(String name) { TruffleCompilerOptions_Options options = new TruffleCompilerOptions_Options(); for (OptionDescriptor option : options) { diff -r b3adab5f01a2 -r b4e38f4ca414 graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/builtins/SLGraalRuntimeBuiltin.java --- a/graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/builtins/SLGraalRuntimeBuiltin.java Tue Oct 21 00:22:48 2014 +0200 +++ b/graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/builtins/SLGraalRuntimeBuiltin.java Tue Oct 21 00:22:51 2014 +0200 @@ -46,7 +46,7 @@ * Finds all call targets available for the same original call target. This might be useful if a * {@link CallTarget} got duplicated due to splitting. */ - @SlowPath + @TruffleBoundary protected static final Set findDuplicateCallTargets(OptimizedCallTarget originalCallTarget) { final Set allCallTargets = new HashSet<>(); allCallTargets.add(originalCallTarget); @@ -65,7 +65,7 @@ * Finds all {@link DirectCallNode} instances calling a certain original {@link CallTarget} in * the caller function. */ - @SlowPath + @TruffleBoundary protected static final Set findCallsTo(OptimizedCallTarget originalCallTarget) { FrameInstance frame = Truffle.getRuntime().getCallerFrame(); RootNode root = frame.getCallNode().getRootNode(); @@ -76,7 +76,7 @@ * Finds all {@link DirectCallNode} instances calling a certain original {@link CallTarget} in a * given {@link RootNode}. */ - @SlowPath + @TruffleBoundary protected static final Set findCallsTo(RootNode root, OptimizedCallTarget originalCallTarget) { final Set allCallNodes = new HashSet<>(); root.accept(new NodeVisitor() { diff -r b3adab5f01a2 -r b4e38f4ca414 graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/builtins/SLIsInlinedBuiltin.java --- a/graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/builtins/SLIsInlinedBuiltin.java Tue Oct 21 00:22:48 2014 +0200 +++ b/graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/builtins/SLIsInlinedBuiltin.java Tue Oct 21 00:22:51 2014 +0200 @@ -26,7 +26,7 @@ import com.oracle.graal.truffle.*; import com.oracle.graal.truffle.TruffleInlining.CallTreeNodeVisitor; -import com.oracle.truffle.api.CompilerDirectives.SlowPath; +import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; import com.oracle.truffle.api.dsl.*; import com.oracle.truffle.api.nodes.*; import com.oracle.truffle.sl.runtime.*; @@ -40,7 +40,7 @@ public abstract class SLIsInlinedBuiltin extends SLGraalRuntimeBuiltin { @Specialization - @SlowPath + @TruffleBoundary public Object isInlined(SLFunction rootFunction, SLFunction parentFunction, SLFunction inlinedFunction) { InliningTrace trace = new InliningTrace(); diff -r b3adab5f01a2 -r b4e38f4ca414 graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/builtins/SLIsOptimizedBuiltin.java --- a/graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/builtins/SLIsOptimizedBuiltin.java Tue Oct 21 00:22:48 2014 +0200 +++ b/graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/builtins/SLIsOptimizedBuiltin.java Tue Oct 21 00:22:51 2014 +0200 @@ -23,7 +23,7 @@ package com.oracle.graal.truffle.test.builtins; import com.oracle.graal.truffle.*; -import com.oracle.truffle.api.CompilerDirectives.SlowPath; +import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; import com.oracle.truffle.api.dsl.*; import com.oracle.truffle.api.nodes.*; import com.oracle.truffle.sl.runtime.*; @@ -35,7 +35,7 @@ public abstract class SLIsOptimizedBuiltin extends SLGraalRuntimeBuiltin { @Specialization - @SlowPath + @TruffleBoundary public boolean isOptimized(SLFunction function) { OptimizedCallTarget target = (OptimizedCallTarget) function.getCallTarget(); for (OptimizedCallTarget foundTarget : findDuplicateCallTargets(target)) { diff -r b3adab5f01a2 -r b4e38f4ca414 graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/builtins/SLSetOptionBuiltin.java --- a/graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/builtins/SLSetOptionBuiltin.java Tue Oct 21 00:22:48 2014 +0200 +++ b/graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/builtins/SLSetOptionBuiltin.java Tue Oct 21 00:22:51 2014 +0200 @@ -24,7 +24,7 @@ import com.oracle.graal.options.*; import com.oracle.graal.truffle.*; -import com.oracle.truffle.api.CompilerDirectives.SlowPath; +import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; import com.oracle.truffle.api.dsl.*; import com.oracle.truffle.api.nodes.*; @@ -36,7 +36,7 @@ public abstract class SLSetOptionBuiltin extends SLGraalRuntimeBuiltin { @Specialization - @SlowPath + @TruffleBoundary public Object setOption(String name, Object value) { TruffleCompilerOptions_Options options = new TruffleCompilerOptions_Options(); for (OptionDescriptor option : options) { diff -r b3adab5f01a2 -r b4e38f4ca414 graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/builtins/SLTestSlowPath01Builtin.java --- a/graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/builtins/SLTestSlowPath01Builtin.java Tue Oct 21 00:22:48 2014 +0200 +++ b/graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/builtins/SLTestSlowPath01Builtin.java Tue Oct 21 00:22:51 2014 +0200 @@ -25,7 +25,7 @@ import java.util.concurrent.*; import com.oracle.truffle.api.*; -import com.oracle.truffle.api.CompilerDirectives.SlowPath; +import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; import com.oracle.truffle.api.dsl.*; import com.oracle.truffle.api.nodes.*; import com.oracle.truffle.sl.runtime.*; @@ -40,7 +40,7 @@ private static Object nonConstantValue = new Object(); @Specialization - @SlowPath + @TruffleBoundary public Object testSlowPath() { CompilerAsserts.neverPartOfCompilation(); CompilerAsserts.neverPartOfCompilation("Should never throw an exception when compiling."); diff -r b3adab5f01a2 -r b4e38f4ca414 graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/GraalFrameInstance.java --- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/GraalFrameInstance.java Tue Oct 21 00:22:48 2014 +0200 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/GraalFrameInstance.java Tue Oct 21 00:22:51 2014 +0200 @@ -27,7 +27,7 @@ import com.oracle.graal.api.code.stack.*; import com.oracle.graal.compiler.common.*; import com.oracle.truffle.api.*; -import com.oracle.truffle.api.CompilerDirectives.SlowPath; +import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; import com.oracle.truffle.api.frame.*; import com.oracle.truffle.api.nodes.*; @@ -43,7 +43,7 @@ protected abstract int getFrameIndex(); - @SlowPath + @TruffleBoundary public Frame getFrame(FrameAccess access, boolean slowPath) { if (access == FrameAccess.NONE) { return null; diff -r b3adab5f01a2 -r b4e38f4ca414 graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/GraalTruffleRuntime.java --- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/GraalTruffleRuntime.java Tue Oct 21 00:22:48 2014 +0200 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/GraalTruffleRuntime.java Tue Oct 21 00:22:51 2014 +0200 @@ -32,7 +32,7 @@ import com.oracle.graal.api.runtime.*; import com.oracle.graal.nodes.spi.*; import com.oracle.truffle.api.*; -import com.oracle.truffle.api.CompilerDirectives.SlowPath; +import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; import com.oracle.truffle.api.frame.*; import com.oracle.truffle.api.nodes.*; @@ -99,7 +99,7 @@ return new OptimizedAssumption(name); } - @SlowPath + @TruffleBoundary @Override public T iterateFrames(FrameInstanceVisitor visitor) { initStackIntrospection(); @@ -138,7 +138,7 @@ return iterateFrames(frame -> frame); } - @SlowPath + @TruffleBoundary @Override public FrameInstance getCurrentFrame() { initStackIntrospection(); diff -r b3adab5f01a2 -r b4e38f4ca414 graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCacheImpl.java --- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCacheImpl.java Tue Oct 21 00:22:48 2014 +0200 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCacheImpl.java Tue Oct 21 00:22:51 2014 +0200 @@ -106,7 +106,7 @@ public StructuredGraph lookup(ResolvedJavaMethod method, NodeInputList arguments, Assumptions assumptions, CanonicalizerPhase canonicalizer) { - if (method.getAnnotation(CompilerDirectives.SlowPath.class) != null) { + if (method.getAnnotation(CompilerDirectives.TruffleBoundary.class) != null) { return null; } @@ -316,7 +316,7 @@ protected boolean shouldInline(MethodCallTargetNode methodCallTargetNode) { boolean result = (methodCallTargetNode.invokeKind() == InvokeKind.Special || methodCallTargetNode.invokeKind() == InvokeKind.Static) && methodCallTargetNode.targetMethod().canBeInlined() && !methodCallTargetNode.targetMethod().isNative() && methodCallTargetNode.targetMethod().getAnnotation(ExplodeLoop.class) == null && - methodCallTargetNode.targetMethod().getAnnotation(CompilerDirectives.SlowPath.class) == null && + methodCallTargetNode.targetMethod().getAnnotation(CompilerDirectives.TruffleBoundary.class) == null && !methodCallTargetNode.targetMethod().getDeclaringClass().equals(stringBuilderClass); return result; } diff -r b3adab5f01a2 -r b4e38f4ca414 graal/com.oracle.truffle.api/src/com/oracle/truffle/api/CompilerDirectives.java --- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/CompilerDirectives.java Tue Oct 21 00:22:48 2014 +0200 +++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/CompilerDirectives.java Tue Oct 21 00:22:51 2014 +0200 @@ -645,11 +645,11 @@ } /** - * Marks methods that are considered slowpath and should therefore not be inlined by default. + * Marks a method that it is considered as a boundary for Truffle partial evaluation. */ @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.METHOD}) - public @interface SlowPath { + public @interface TruffleBoundary { } /** diff -r b3adab5f01a2 -r b4e38f4ca414 graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/Instrument.java --- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/Instrument.java Tue Oct 21 00:22:48 2014 +0200 +++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/Instrument.java Tue Oct 21 00:22:51 2014 +0200 @@ -25,7 +25,7 @@ package com.oracle.truffle.api.instrument; import com.oracle.truffle.api.CompilerDirectives.CompilationFinal; -import com.oracle.truffle.api.CompilerDirectives.SlowPath; +import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; import com.oracle.truffle.api.frame.*; import com.oracle.truffle.api.instrument.impl.*; import com.oracle.truffle.api.nodes.*; @@ -49,7 +49,7 @@ *
  • Minimize computation in standard execution paths.
  • *
  • If runtime calls must be made back to a tool, construct the instrument with a callback stored * in a {@code final} field.
  • - *
  • Tool methods called by the instrument should be annotated as {@link SlowPath} to prevent them + *
  • Tool methods called by the instrument should be annotated as {@link TruffleBoundary} to prevent them * from being inlined into fast execution paths.
  • *
  • If computation in the execution path is needed, and if performance is important, then the * computation is best expressed as a guest language AST and evaluated using standard Truffle diff -r b3adab5f01a2 -r b4e38f4ca414 graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/impl/InstrumentationNode.java --- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/impl/InstrumentationNode.java Tue Oct 21 00:22:48 2014 +0200 +++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/impl/InstrumentationNode.java Tue Oct 21 00:22:51 2014 +0200 @@ -27,7 +27,7 @@ import java.util.*; import com.oracle.truffle.api.*; -import com.oracle.truffle.api.CompilerDirectives.SlowPath; +import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; import com.oracle.truffle.api.frame.*; import com.oracle.truffle.api.instrument.*; import com.oracle.truffle.api.nodes.*; @@ -100,7 +100,7 @@ * Reports to the instance of {@link Probe} holding this instrument, if any, that some essential * state has changed that requires deoptimization. */ - @CompilerDirectives.SlowPath + @CompilerDirectives.TruffleBoundary protected void notifyProbeChanged(Instrument instrument) { Probe probe = getProbe(); if (probe != null) { @@ -372,7 +372,7 @@ * * @param tag The tag to add to this probe. */ - @SlowPath + @TruffleBoundary public void tagAs(SyntaxTag tag) { assert tag != null; if (!tags.contains(tag)) { @@ -407,7 +407,7 @@ * * @param instrument The instrument to add to this probe. */ - @SlowPath + @TruffleBoundary public void addInstrument(Instrument instrument) { probeUnchanged.invalidate(); super.internalAddInstrument(instrument); @@ -420,7 +420,7 @@ * * @param instrument The instrument to remove from this probe. */ - @SlowPath + @TruffleBoundary public void removeInstrument(Instrument instrument) { probeUnchanged.invalidate(); super.internalRemoveInstrument(instrument); @@ -436,13 +436,13 @@ } @Override - @SlowPath + @TruffleBoundary protected void notifyProbeChanged(Instrument instrument) { probeUnchanged.invalidate(); probeUnchanged = Truffle.getRuntime().createAssumption(); } - @SlowPath + @TruffleBoundary void setTrap(SyntaxTagTrap trap) { assert trap == null || isTaggedAs(trap.getTag()); probeUnchanged.invalidate(); diff -r b3adab5f01a2 -r b4e38f4ca414 graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/TruffleTypes.java --- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/TruffleTypes.java Tue Oct 21 00:22:48 2014 +0200 +++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/TruffleTypes.java Tue Oct 21 00:22:51 2014 +0200 @@ -30,7 +30,7 @@ import com.oracle.truffle.api.*; import com.oracle.truffle.api.CompilerDirectives.CompilationFinal; -import com.oracle.truffle.api.CompilerDirectives.SlowPath; +import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; import com.oracle.truffle.api.dsl.*; import com.oracle.truffle.api.dsl.internal.*; import com.oracle.truffle.api.frame.*; @@ -58,7 +58,7 @@ private final DeclaredType nodeCost; private final TypeMirror compilerDirectives; private final TypeMirror compilerAsserts; - private final DeclaredType slowPath; + private final DeclaredType truffleBoundary; private final DeclaredType sourceSection; private final DeclaredType truffleOptions; private final DeclaredType compilationFinal; @@ -86,7 +86,7 @@ invalidAssumption = getRequired(context, InvalidAssumptionException.class); nodeInfoAnnotation = getRequired(context, NodeInfo.class); nodeCost = getRequired(context, NodeCost.class); - slowPath = getRequired(context, SlowPath.class); + truffleBoundary = getRequired(context, TruffleBoundary.class); sourceSection = getRequired(context, SourceSection.class); truffleOptions = getRequired(context, TruffleOptions.class); compilationFinal = getRequired(context, CompilationFinal.class); @@ -204,8 +204,8 @@ return truffleOptions; } - public DeclaredType getSlowPath() { - return slowPath; + public DeclaredType getTruffleBoundary() { + return truffleBoundary; } public DeclaredType getSourceSection() { diff -r b3adab5f01a2 -r b4e38f4ca414 graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeCodeGenerator.java --- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeCodeGenerator.java Tue Oct 21 00:22:48 2014 +0200 +++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeCodeGenerator.java Tue Oct 21 00:22:51 2014 +0200 @@ -1362,7 +1362,7 @@ final boolean needsFrame = node.isFrameUsedByAnyGuard(getContext()); if (!needsFrame) { - method.getAnnotationMirrors().add(new CodeAnnotationMirror(getContext().getTruffleTypes().getSlowPath())); + method.getAnnotationMirrors().add(new CodeAnnotationMirror(getContext().getTruffleTypes().getTruffleBoundary())); } addInternalValueParameters(method, node.getGenericSpecialization(), needsFrame, !needsFrame, false); diff -r b3adab5f01a2 -r b4e38f4ca414 graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLDefineFunctionBuiltin.java --- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLDefineFunctionBuiltin.java Tue Oct 21 00:22:48 2014 +0200 +++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLDefineFunctionBuiltin.java Tue Oct 21 00:22:51 2014 +0200 @@ -22,7 +22,7 @@ */ package com.oracle.truffle.sl.builtins; -import com.oracle.truffle.api.CompilerDirectives.SlowPath; +import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; import com.oracle.truffle.api.dsl.*; import com.oracle.truffle.api.nodes.*; import com.oracle.truffle.api.source.*; @@ -46,7 +46,7 @@ return code; } - @SlowPath + @TruffleBoundary private static void doDefineFunction(SLContext context, String code) { Source source = Source.fromText(code, "[defineFunction]"); /* The same parsing code as for parsing the initial source. */ diff -r b3adab5f01a2 -r b4e38f4ca414 graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLHelloEqualsWorldBuiltin.java --- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLHelloEqualsWorldBuiltin.java Tue Oct 21 00:22:48 2014 +0200 +++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLHelloEqualsWorldBuiltin.java Tue Oct 21 00:22:51 2014 +0200 @@ -41,7 +41,7 @@ } @Specialization - @SlowPath + @TruffleBoundary public String change() { FrameInstance frameInstance = Truffle.getRuntime().getCallerFrame(); Frame frame = frameInstance.getFrame(FrameAccess.READ_WRITE, false); diff -r b3adab5f01a2 -r b4e38f4ca414 graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLPrintlnBuiltin.java --- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLPrintlnBuiltin.java Tue Oct 21 00:22:48 2014 +0200 +++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLPrintlnBuiltin.java Tue Oct 21 00:22:51 2014 +0200 @@ -24,7 +24,7 @@ import java.io.*; -import com.oracle.truffle.api.CompilerDirectives.SlowPath; +import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; import com.oracle.truffle.api.dsl.*; import com.oracle.truffle.api.nodes.*; import com.oracle.truffle.api.source.*; @@ -37,7 +37,7 @@ *

    * Printing involves a lot of Java code, so we need to tell the optimizing system that it should not * unconditionally inline everything reachable from the println() method. This is done via the - * {@link SlowPath} annotations. + * {@link TruffleBoundary} annotations. */ @NodeInfo(shortName = "println") public abstract class SLPrintlnBuiltin extends SLBuiltinNode { @@ -52,7 +52,7 @@ return value; } - @SlowPath + @TruffleBoundary private static void doPrint(PrintStream out, long value) { out.println(value); } @@ -63,7 +63,7 @@ return value; } - @SlowPath + @TruffleBoundary private static void doPrint(PrintStream out, boolean value) { out.println(value); } @@ -74,7 +74,7 @@ return value; } - @SlowPath + @TruffleBoundary private static void doPrint(PrintStream out, String value) { out.println(value); } @@ -85,7 +85,7 @@ return value; } - @SlowPath + @TruffleBoundary private static void doPrint(PrintStream out, Object value) { out.println(value); } diff -r b3adab5f01a2 -r b4e38f4ca414 graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLReadlnBuiltin.java --- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLReadlnBuiltin.java Tue Oct 21 00:22:48 2014 +0200 +++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLReadlnBuiltin.java Tue Oct 21 00:22:51 2014 +0200 @@ -24,7 +24,7 @@ import java.io.*; -import com.oracle.truffle.api.CompilerDirectives.SlowPath; +import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; import com.oracle.truffle.api.dsl.*; import com.oracle.truffle.api.nodes.*; import com.oracle.truffle.api.source.*; @@ -55,7 +55,7 @@ return result; } - @SlowPath + @TruffleBoundary private static String doRead(BufferedReader in) { try { return in.readLine(); diff -r b3adab5f01a2 -r b4e38f4ca414 graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLStackTraceBuiltin.java --- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLStackTraceBuiltin.java Tue Oct 21 00:22:48 2014 +0200 +++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/builtins/SLStackTraceBuiltin.java Tue Oct 21 00:22:51 2014 +0200 @@ -23,7 +23,7 @@ package com.oracle.truffle.sl.builtins; import com.oracle.truffle.api.*; -import com.oracle.truffle.api.CompilerDirectives.SlowPath; +import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; import com.oracle.truffle.api.dsl.*; import com.oracle.truffle.api.frame.*; import com.oracle.truffle.api.frame.FrameInstance.FrameAccess; @@ -47,7 +47,7 @@ return createStackTrace(); } - @SlowPath + @TruffleBoundary private static String createStackTrace() { StringBuilder str = new StringBuilder(); diff -r b3adab5f01a2 -r b4e38f4ca414 graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLMulNode.java --- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLMulNode.java Tue Oct 21 00:22:48 2014 +0200 +++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/expression/SLMulNode.java Tue Oct 21 00:22:51 2014 +0200 @@ -47,7 +47,7 @@ } @Specialization - @SlowPath + @TruffleBoundary protected BigInteger mul(BigInteger left, BigInteger right) { return left.multiply(right); } diff -r b3adab5f01a2 -r b4e38f4ca414 graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLExpressionWrapper.java --- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLExpressionWrapper.java Tue Oct 21 00:22:48 2014 +0200 +++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLExpressionWrapper.java Tue Oct 21 00:22:51 2014 +0200 @@ -73,7 +73,7 @@ return probe; } - @SlowPath + @TruffleBoundary public void tagAs(SyntaxTag tag) { probe.tagAs(tag); } diff -r b3adab5f01a2 -r b4e38f4ca414 graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLStatementWrapper.java --- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLStatementWrapper.java Tue Oct 21 00:22:48 2014 +0200 +++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLStatementWrapper.java Tue Oct 21 00:22:51 2014 +0200 @@ -22,7 +22,7 @@ */ package com.oracle.truffle.sl.nodes.instrument; -import com.oracle.truffle.api.CompilerDirectives.SlowPath; +import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; import com.oracle.truffle.api.frame.*; import com.oracle.truffle.api.instrument.*; import com.oracle.truffle.api.nodes.*; @@ -61,7 +61,7 @@ return probe; } - @SlowPath + @TruffleBoundary public void tagAs(SyntaxTag tag) { probe.tagAs(tag); }