Mercurial > hg > graal-compiler
changeset 22814:42c3911e6993
Truffle: make unsafe methods private
author | Andreas Woess <andreas.woess@oracle.com> |
---|---|
date | Wed, 14 Oct 2015 18:02:30 +0200 |
parents | fb1fcdf468af |
children | eb1a8652f8e6 |
files | graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/FrameWithBoxing.java graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/FrameWithoutBoxing.java graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/OptimizedCallTarget.java graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/TruffleGraphBuilderPlugins.java |
diffstat | 4 files changed, 23 insertions(+), 20 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/FrameWithBoxing.java Wed Oct 14 17:47:30 2015 +0200 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/FrameWithBoxing.java Wed Oct 14 18:02:30 2015 +0200 @@ -234,7 +234,7 @@ } @SuppressWarnings({"unchecked", "unused"}) - static <T> T unsafeCast(Object value, Class<T> type, boolean condition, boolean nonNull) { + private static <T> T unsafeCast(Object value, Class<T> type, boolean condition, boolean nonNull) { return (T) value; } }
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/FrameWithoutBoxing.java Wed Oct 14 17:47:30 2015 +0200 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/FrameWithoutBoxing.java Wed Oct 14 18:02:30 2015 +0200 @@ -388,57 +388,57 @@ } @SuppressWarnings({"unchecked", "unused"}) - static <T> T unsafeCast(Object value, Class<T> type, boolean condition, boolean nonNull) { + private static <T> T unsafeCast(Object value, Class<T> type, boolean condition, boolean nonNull) { return (T) value; } @SuppressWarnings("unused") - static int unsafeGetInt(Object receiver, long offset, boolean condition, Object locationIdentity) { + private static int unsafeGetInt(Object receiver, long offset, boolean condition, Object locationIdentity) { return UNSAFE.getInt(receiver, offset); } @SuppressWarnings("unused") - static long unsafeGetLong(Object receiver, long offset, boolean condition, Object locationIdentity) { + private static long unsafeGetLong(Object receiver, long offset, boolean condition, Object locationIdentity) { return UNSAFE.getLong(receiver, offset); } @SuppressWarnings("unused") - static float unsafeGetFloat(Object receiver, long offset, boolean condition, Object locationIdentity) { + private static float unsafeGetFloat(Object receiver, long offset, boolean condition, Object locationIdentity) { return UNSAFE.getFloat(receiver, offset); } @SuppressWarnings("unused") - static double unsafeGetDouble(Object receiver, long offset, boolean condition, Object locationIdentity) { + private static double unsafeGetDouble(Object receiver, long offset, boolean condition, Object locationIdentity) { return UNSAFE.getDouble(receiver, offset); } @SuppressWarnings("unused") - static Object unsafeGetObject(Object receiver, long offset, boolean condition, Object locationIdentity) { + private static Object unsafeGetObject(Object receiver, long offset, boolean condition, Object locationIdentity) { return UNSAFE.getObject(receiver, offset); } @SuppressWarnings("unused") - static void unsafePutInt(Object receiver, long offset, int value, Object locationIdentity) { + private static void unsafePutInt(Object receiver, long offset, int value, Object locationIdentity) { UNSAFE.putInt(receiver, offset, value); } @SuppressWarnings("unused") - static void unsafePutLong(Object receiver, long offset, long value, Object locationIdentity) { + private static void unsafePutLong(Object receiver, long offset, long value, Object locationIdentity) { UNSAFE.putLong(receiver, offset, value); } @SuppressWarnings("unused") - static void unsafePutFloat(Object receiver, long offset, float value, Object locationIdentity) { + private static void unsafePutFloat(Object receiver, long offset, float value, Object locationIdentity) { UNSAFE.putFloat(receiver, offset, value); } @SuppressWarnings("unused") - static void unsafePutDouble(Object receiver, long offset, double value, Object locationIdentity) { + private static void unsafePutDouble(Object receiver, long offset, double value, Object locationIdentity) { UNSAFE.putDouble(receiver, offset, value); } @SuppressWarnings("unused") - static void unsafePutObject(Object receiver, long offset, Object value, Object locationIdentity) { + private static void unsafePutObject(Object receiver, long offset, Object value, Object locationIdentity) { UNSAFE.putObject(receiver, offset, value); }
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/OptimizedCallTarget.java Wed Oct 14 17:47:30 2015 +0200 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/OptimizedCallTarget.java Wed Oct 14 18:02:30 2015 +0200 @@ -199,7 +199,7 @@ Object result = doInvoke(args); Class<?> klass = profiledReturnType; if (klass != null && CompilerDirectives.inCompiledCode() && profiledReturnTypeAssumption.isValid()) { - result = FrameWithoutBoxing.unsafeCast(result, klass, true, true); + result = unsafeCast(result, klass, true, true); } return result; } catch (Throwable t) { @@ -300,7 +300,7 @@ public final Object callRoot(Object[] originalArguments) { Object[] args = originalArguments; if (this.profiledArgumentTypesAssumption != null && CompilerDirectives.inCompiledCode() && profiledArgumentTypesAssumption.isValid()) { - args = FrameWithoutBoxing.unsafeCast(castArrayFixedLength(args, profiledArgumentTypes.length), Object[].class, true, true); + args = unsafeCast(castArrayFixedLength(args, profiledArgumentTypes.length), Object[].class, true, true); if (TruffleArgumentTypeSpeculation.getValue()) { args = castArguments(args); } @@ -464,7 +464,7 @@ private Object[] castArguments(Object[] originalArguments) { Object[] castArguments = new Object[profiledArgumentTypes.length]; for (int i = 0; i < profiledArgumentTypes.length; i++) { - castArguments[i] = profiledArgumentTypes[i] != null ? FrameWithoutBoxing.unsafeCast(originalArguments[i], profiledArgumentTypes[i], true, true) : originalArguments[i]; + castArguments[i] = profiledArgumentTypes[i] != null ? unsafeCast(originalArguments[i], profiledArgumentTypes[i], true, true) : originalArguments[i]; } return castArguments; } @@ -581,8 +581,12 @@ return context.getCompilerOptions(); } + @SuppressWarnings({"unchecked", "unused"}) + private static <T> T unsafeCast(Object value, Class<T> type, boolean condition, boolean nonNull) { + return (T) value; + } + private static final class NonTrivialNodeCountVisitor implements NodeVisitor { - public int nodeCount; public boolean visit(Node node) { @@ -591,7 +595,5 @@ } return true; } - } - }
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/TruffleGraphBuilderPlugins.java Wed Oct 14 17:47:30 2015 +0200 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/TruffleGraphBuilderPlugins.java Wed Oct 14 18:02:30 2015 +0200 @@ -98,7 +98,7 @@ registerExactMathPlugins(plugins); registerCompilerDirectivesPlugins(plugins, canDelayIntrinsification); registerCompilerAssertsPlugins(plugins, canDelayIntrinsification); - registerOptimizedCallTargetPlugins(metaAccess, plugins); + registerOptimizedCallTargetPlugins(metaAccess, plugins, canDelayIntrinsification); if (TruffleCompilerOptions.TruffleUseFrameWithoutBoxing.getValue()) { registerFrameWithoutBoxingPlugins(plugins, canDelayIntrinsification); @@ -336,7 +336,7 @@ }); } - public static void registerOptimizedCallTargetPlugins(MetaAccessProvider metaAccess, InvocationPlugins plugins) { + public static void registerOptimizedCallTargetPlugins(MetaAccessProvider metaAccess, InvocationPlugins plugins, boolean canDelayIntrinsification) { Registration r = new Registration(plugins, OptimizedCallTarget.class); r.register2("createFrame", FrameDescriptor.class, Object[].class, new InvocationPlugin() { public boolean apply(GraphBuilderContext b, ResolvedJavaMethod targetMethod, Receiver receiver, ValueNode descriptor, ValueNode args) { @@ -351,6 +351,7 @@ return true; } }); + registerUnsafeCast(r, canDelayIntrinsification); } public static void registerFrameWithoutBoxingPlugins(InvocationPlugins plugins, boolean canDelayIntrinsification) {