From 20aef3b295508db76cc74733121b1eaccf22ac2c Mon Sep 17 00:00:00 2001 From: Mick Jordan <mick.jordan@oracle.com> Date: Thu, 1 Jun 2017 13:28:38 -0700 Subject: [PATCH] Add dimensions on CompilationFinal arrays; update Truffle version --- .../truffle/r/engine/interop/NativeLogicalArray.java | 2 +- .../truffle/r/nodes/builtin/base/BaseGammaFunctions.java | 2 +- .../truffle/r/nodes/builtin/base/BaseVariables.java | 6 +++--- .../r/nodes/access/variables/LocalReadVariableNode.java | 2 +- .../r/nodes/access/variables/ReadVariableNode.java | 4 ++-- .../r/nodes/access/vector/SearchFirstStringNode.java | 2 +- .../oracle/truffle/r/nodes/function/ArgumentMatcher.java | 4 ++-- .../truffle/r/nodes/function/CallArgumentsNode.java | 2 +- .../oracle/truffle/r/nodes/function/CallMatcherNode.java | 2 +- .../oracle/truffle/r/nodes/function/FormalArguments.java | 4 ++-- .../com/oracle/truffle/r/nodes/function/RCallNode.java | 8 ++++---- .../truffle/r/nodes/function/S3FunctionLookupNode.java | 2 +- .../truffle/r/nodes/instrumentation/RInstrumentation.java | 2 +- .../src/com/oracle/truffle/r/runtime/RVersionInfo.java | 6 +++--- .../com/oracle/truffle/r/runtime/VirtualEvalFrame.java | 4 ++-- .../r/runtime/env/frame/NSBaseMaterializedFrame.java | 2 +- mx.fastr/suite.py | 2 +- 17 files changed, 28 insertions(+), 28 deletions(-) diff --git a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/NativeLogicalArray.java b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/NativeLogicalArray.java index 01f3f46c1b..d8229921a1 100644 --- a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/NativeLogicalArray.java +++ b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/NativeLogicalArray.java @@ -31,7 +31,7 @@ import com.oracle.truffle.r.runtime.data.RTruffleObject; * array in FastR is represented as {@code byte[]}. */ public class NativeLogicalArray extends NativeNACheck implements RTruffleObject { - @CompilationFinal public final byte[] data; + @CompilationFinal(dimensions = 1) public final byte[] data; public NativeLogicalArray(Object obj, byte[] value) { super(obj); diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/BaseGammaFunctions.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/BaseGammaFunctions.java index 4ee6d5194c..7befd61a6d 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/BaseGammaFunctions.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/BaseGammaFunctions.java @@ -142,7 +142,7 @@ public class BaseGammaFunctions { @Child private DpsiFnCalc dpsiFnCalc; - @CompilationFinal private static final double[] bvalues = new double[]{1.00000000000000000e+00, -5.00000000000000000e-01, 1.66666666666666667e-01, -3.33333333333333333e-02, + @CompilationFinal(dimensions = 1) private static final double[] bvalues = new double[]{1.00000000000000000e+00, -5.00000000000000000e-01, 1.66666666666666667e-01, -3.33333333333333333e-02, 2.38095238095238095e-02, -3.33333333333333333e-02, 7.57575757575757576e-02, -2.53113553113553114e-01, 1.16666666666666667e+00, -7.09215686274509804e+00, 5.49711779448621554e+01, -5.29124242424242424e+02, 6.19212318840579710e+03, -8.65802531135531136e+04, 1.42551716666666667e+06, -2.72982310678160920e+07, 6.01580873900642368e+08, -1.51163157670921569e+10, 4.29614643061166667e+11, -1.37116552050883328e+13, 4.88332318973593167e+14, -1.92965793419400681e+16}; diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/BaseVariables.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/BaseVariables.java index eed42c1ccb..be994a54dd 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/BaseVariables.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/BaseVariables.java @@ -5,7 +5,7 @@ * * Copyright (c) 1995-2012, The R Core Team * Copyright (c) 2003, The R Foundation - * Copyright (c) 2015, 2016, Oracle and/or its affiliates + * Copyright (c) 2015, 2017, Oracle and/or its affiliates * * All rights reserved. */ @@ -26,7 +26,7 @@ import com.oracle.truffle.r.runtime.env.REnvironment; */ public class BaseVariables { // @formatter:off - @CompilationFinal private static final String[] PLATFORM_NAMES = new String[] { + @CompilationFinal(dimensions = 1) private static final String[] PLATFORM_NAMES = new String[] { "OS.type", "file.sep", "dynlib.ext", "GUI", "endian", "pkgType", "path.sep", "r_arch" }; // @formatter:on @@ -42,7 +42,7 @@ public class BaseVariables { } // @formatter:off - @CompilationFinal private static final String[] MACHINE_NAMES = new String[] { + @CompilationFinal(dimensions = 1) private static final String[] MACHINE_NAMES = new String[] { "double.eps", "double.neg.eps", "double.xmin", "double.xmax", "double.base", "double.digits", "double.rounding", "double.guard", "double.ulp.digits", diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/variables/LocalReadVariableNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/variables/LocalReadVariableNode.java index 4ce17a2cce..19334b09e2 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/variables/LocalReadVariableNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/variables/LocalReadVariableNode.java @@ -47,7 +47,7 @@ public final class LocalReadVariableNode extends Node { private final Object identifier; private final boolean forceResult; - @CompilationFinal private boolean[] seenValueKinds; + @CompilationFinal(dimensions = 1) private boolean[] seenValueKinds; @CompilationFinal private ValueProfile valueProfile; @CompilationFinal private ConditionProfile isNullProfile; @CompilationFinal private ConditionProfile isMissingProfile; diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/variables/ReadVariableNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/variables/ReadVariableNode.java index 5df1356f04..d784b3d0a1 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/variables/ReadVariableNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/variables/ReadVariableNode.java @@ -144,7 +144,7 @@ public final class ReadVariableNode extends RSourceSectionNode implements RSynta private final ReadKind kind; private int invalidationCount; - @CompilationFinal private final boolean[] seenValueKinds = new boolean[FrameSlotKind.values().length]; + @CompilationFinal(dimensions = 1) private final boolean[] seenValueKinds = new boolean[FrameSlotKind.values().length]; private ReadVariableNode(SourceSection sourceSection, Object identifier, RType mode, ReadKind kind) { super(sourceSection); @@ -422,7 +422,7 @@ public final class ReadVariableNode extends RSourceSectionNode implements RSynta private static final class MultiAssumptionLevel extends FrameLevel { private final FrameLevel next; - @CompilationFinal private final Assumption[] assumptions; + @CompilationFinal(dimensions = 1) private final Assumption[] assumptions; private MultiAssumptionLevel(FrameLevel next, Assumption... assumptions) { this.next = next; diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/vector/SearchFirstStringNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/vector/SearchFirstStringNode.java index 68f3ed0476..b1baf683b5 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/vector/SearchFirstStringNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/access/vector/SearchFirstStringNode.java @@ -64,7 +64,7 @@ final class SearchFirstStringNode extends Node { private final boolean useNAForNotFound; private final boolean exactMatch; - @CompilationFinal private int[] cachedIndices; + @CompilationFinal(dimensions = 1) private int[] cachedIndices; private SearchFirstStringNode(boolean exactMatch, boolean useNAForNotFound) { this.exactMatch = exactMatch; diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/ArgumentMatcher.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/ArgumentMatcher.java index 7c2fefce91..1a6f910110 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/ArgumentMatcher.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/ArgumentMatcher.java @@ -483,8 +483,8 @@ public class ArgumentMatcher { public static final int UNMATCHED = -1; public static final int VARARGS = -2; - @CompilationFinal private final int[] resultPermutation; - @CompilationFinal private final int[] varargsPermutation; + @CompilationFinal(dimensions = 1) private final int[] resultPermutation; + @CompilationFinal(dimensions = 1) private final int[] varargsPermutation; private final ArgumentsSignature varargsSignature; /** diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/CallArgumentsNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/CallArgumentsNode.java index cc46a97dbc..5501e65549 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/CallArgumentsNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/CallArgumentsNode.java @@ -73,7 +73,7 @@ public final class CallArgumentsNode extends RBaseNode implements UnmatchedArgum * If a supplied argument is a {@link ReadVariableNode} whose name is "...", this field contains * the index of the name. Otherwise it is an empty list. */ - @CompilationFinal private final int[] varArgsSymbolIndices; + @CompilationFinal(dimensions = 1) private final int[] varArgsSymbolIndices; private final IdentityHashMap<RNode, Closure> closureCache = new IdentityHashMap<>(); diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/CallMatcherNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/CallMatcherNode.java index 0e77db678e..88f0ec8867 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/CallMatcherNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/CallMatcherNode.java @@ -196,7 +196,7 @@ public abstract class CallMatcherNode extends RBaseNode { * {@link VarArgsHelper#flattenNames(ArgumentsSignature)} for the interpretation of the * values. */ - @CompilationFinal private final long[] preparePermutation; + @CompilationFinal(dimensions = 1) private final long[] preparePermutation; private final MatchPermutation permutation; private final FormalArguments formals; @Child private RFastPathNode fastPath; diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/FormalArguments.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/FormalArguments.java index c5ad9ab6fc..4935f4c82e 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/FormalArguments.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/FormalArguments.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -61,7 +61,7 @@ public final class FormalArguments extends Arguments<RNode> implements ClosureCa * builtins), {@link RMissing#instance} and {@link RArgsValuesAndNames#EMPTY} will be replaced * with the actual default values on the callee side. */ - @CompilationFinal private final Object[] internalDefaultArguments; + @CompilationFinal(dimensions = 1) private final Object[] internalDefaultArguments; private FormalArguments(RNode[] defaultArguments, Object[] internalDefaultArguments, ArgumentsSignature signature) { super(defaultArguments, signature); diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/RCallNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/RCallNode.java index 65788bca31..8233f4cc27 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/RCallNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/RCallNode.java @@ -790,10 +790,10 @@ public abstract class RCallNode extends RCallBaseNode implements RSyntaxNode, RS @Child private SetVisibilityNode visibility = SetVisibilityNode.create(); // not using profiles to save overhead - @CompilationFinal private final boolean[] argEmptySeen; - @CompilationFinal private final boolean[] varArgSeen; - @CompilationFinal private final boolean[] nonWrapSeen; - @CompilationFinal private final boolean[] wrapSeen; + @CompilationFinal(dimensions = 1) private final boolean[] argEmptySeen; + @CompilationFinal(dimensions = 1) private final boolean[] varArgSeen; + @CompilationFinal(dimensions = 1) private final boolean[] nonWrapSeen; + @CompilationFinal(dimensions = 1) private final boolean[] wrapSeen; private final FormalArguments formals; private final RBuiltinDescriptor builtinDescriptor; diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/S3FunctionLookupNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/S3FunctionLookupNode.java index e7921cf9d3..b520673ff9 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/S3FunctionLookupNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/S3FunctionLookupNode.java @@ -280,7 +280,7 @@ public abstract class S3FunctionLookupNode extends RBaseNode { @Child private S3FunctionLookupNode next; - @CompilationFinal private final String[] cachedTypeContents; + @CompilationFinal(dimensions = 1) private final String[] cachedTypeContents; @Children private final ReadVariableNode[] unsuccessfulReadsCallerFrame; @Child private LocalReadVariableNode readS3MethodsTable; @Children private final LocalReadVariableNode[] unsuccessfulReadsTable; diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/instrumentation/RInstrumentation.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/instrumentation/RInstrumentation.java index 4f8856e8c6..9e2edd953c 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/instrumentation/RInstrumentation.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/instrumentation/RInstrumentation.java @@ -43,7 +43,7 @@ public class RInstrumentation { * The function names that were requested to be used in implicit {@code debug(f)} calls, when * those functions are defined. Global to all contexts. */ - @CompilationFinal private static String[] debugFunctionNames; + @CompilationFinal(dimensions = 1) private static String[] debugFunctionNames; public static FunctionDefinitionNode getFunctionDefinitionNode(RFunction func) { assert !func.isBuiltin(); diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RVersionInfo.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RVersionInfo.java index 6336fb8835..a75cadee75 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RVersionInfo.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RVersionInfo.java @@ -45,9 +45,9 @@ public enum RVersionInfo { public static final int SERIALIZE_VERSION = (2 << 16) + (3 << 8) + 0; - @CompilationFinal private static final RVersionInfo[] VALUES = RVersionInfo.values(); - @CompilationFinal private static String[] ListValues; - @CompilationFinal private static String[] ListNames; + @CompilationFinal(dimensions = 1) private static final RVersionInfo[] VALUES = RVersionInfo.values(); + @CompilationFinal(dimensions = 1) private static String[] ListValues; + @CompilationFinal(dimensions = 1) private static String[] ListNames; private final String listName; private String value; diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/VirtualEvalFrame.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/VirtualEvalFrame.java index 22a80d4b03..7eae87ef38 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/VirtualEvalFrame.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/VirtualEvalFrame.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -35,7 +35,7 @@ import com.oracle.truffle.r.runtime.data.RFunction; */ public abstract class VirtualEvalFrame extends SubstituteVirtualFrame implements VirtualFrame, MaterializedFrame { - @CompilationFinal protected final Object[] arguments; + @CompilationFinal(dimensions = 1) protected final Object[] arguments; private VirtualEvalFrame(MaterializedFrame originalFrame, Object[] arguments) { super(originalFrame); diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/env/frame/NSBaseMaterializedFrame.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/env/frame/NSBaseMaterializedFrame.java index e7006cbd06..94f26a4df6 100644 --- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/env/frame/NSBaseMaterializedFrame.java +++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/env/frame/NSBaseMaterializedFrame.java @@ -42,7 +42,7 @@ public final class NSBaseMaterializedFrame implements MaterializedFrame { private static final ValueProfile frameProfile = ValueProfile.createClassProfile(); private final MaterializedFrame packageBaseFrame; - @CompilationFinal private final Object[] arguments; + @CompilationFinal(dimensions = 1) private final Object[] arguments; // this frame descriptor is only used for lookups in FrameSlotChangeMonitor private final FrameDescriptor markerFrameDescriptor; diff --git a/mx.fastr/suite.py b/mx.fastr/suite.py index 62617e1a5f..c3353e7fab 100644 --- a/mx.fastr/suite.py +++ b/mx.fastr/suite.py @@ -29,7 +29,7 @@ suite = { { "name" : "truffle", "subdir" : True, - "version" : "538d97d5e696be8a0f882cf970e70689674651c2", + "version" : "49be77b996566438b7be1f2bf9717b9b9f1c90c1", "urls" : [ {"url" : "https://github.com/graalvm/graal", "kind" : "git"}, {"url" : "https://curio.ssw.jku.at/nexus/content/repositories/snapshots", "kind" : "binary"}, -- GitLab