# HG changeset patch # User Thomas Wuerthinger # Date 1422408854 -3600 # Node ID ec0733b5a90aa0ef59f546c08647383897fc8bf8 # Parent 2ccaaf5a6be4f8d35c5684eaa43183fa9259e608 Allow final modifier on node subclasses and start adding the modifier to leaf classes. diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/NodePosIteratorTest.java --- a/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/NodePosIteratorTest.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/NodePosIteratorTest.java Wed Jan 28 02:34:14 2015 +0100 @@ -32,7 +32,7 @@ public class NodePosIteratorTest extends GraalCompilerTest { @NodeInfo - static class TestNode extends Node { + static final class TestNode extends Node { @Successor Node s1; @Successor Node s2; @Successor NodeSuccessorList stail; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.graph.test/src/com/oracle/graal/graph/test/NodeMapTest.java --- a/graal/com.oracle.graal.graph.test/src/com/oracle/graal/graph/test/NodeMapTest.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.graph.test/src/com/oracle/graal/graph/test/NodeMapTest.java Wed Jan 28 02:34:14 2015 +0100 @@ -33,7 +33,7 @@ public class NodeMapTest { @NodeInfo - static class TestNode extends Node { + static final class TestNode extends Node { protected TestNode() { } } diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.graph.test/src/com/oracle/graal/graph/test/NodeUsagesTests.java --- a/graal/com.oracle.graal.graph.test/src/com/oracle/graal/graph/test/NodeUsagesTests.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.graph.test/src/com/oracle/graal/graph/test/NodeUsagesTests.java Wed Jan 28 02:34:14 2015 +0100 @@ -34,13 +34,13 @@ public class NodeUsagesTests { @NodeInfo - static class Def extends Node { + static final class Def extends Node { protected Def() { } } @NodeInfo - static class Use extends Node { + static final class Use extends Node { @Input Def in0; @Input Def in1; @Input Def in2; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Graph.java --- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Graph.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Graph.java Wed Jan 28 02:34:14 2015 +0100 @@ -624,7 +624,7 @@ // Fully qualified annotation name is required to satisfy javac @com.oracle.graal.nodeinfo.NodeInfo - static class PlaceHolderNode extends Node { + static final class PlaceHolderNode extends Node { public PlaceHolderNode() { } diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot.amd64.test/src/com/oracle/graal/hotspot/amd64/test/DataPatchInConstantsTest.java --- a/graal/com.oracle.graal.hotspot.amd64.test/src/com/oracle/graal/hotspot/amd64/test/DataPatchInConstantsTest.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot.amd64.test/src/com/oracle/graal/hotspot/amd64/test/DataPatchInConstantsTest.java Wed Jan 28 02:34:14 2015 +0100 @@ -153,7 +153,7 @@ } @NodeInfo - private static class LoadThroughPatchNode extends FixedWithNextNode implements LIRLowerable { + private static final class LoadThroughPatchNode extends FixedWithNextNode implements LIRLowerable { @Input protected ValueNode input; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64RawNativeCallNode.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64RawNativeCallNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64RawNativeCallNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -33,7 +33,7 @@ import com.oracle.graal.nodes.spi.*; @NodeInfo -public class AMD64RawNativeCallNode extends FixedWithNextNode implements LIRLowerable { +public final class AMD64RawNativeCallNode extends FixedWithNextNode implements LIRLowerable { protected final JavaConstant functionPointer; @Input NodeInputList args; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/DataPatchTest.java --- a/graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/DataPatchTest.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/DataPatchTest.java Wed Jan 28 02:34:14 2015 +0100 @@ -92,7 +92,7 @@ } @NodeInfo - private static class ConstantFoldBarrier extends FloatingNode implements LIRLowerable { + private static final class ConstantFoldBarrier extends FloatingNode implements LIRLowerable { @Input protected ValueNode input; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/AllocaNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/AllocaNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/AllocaNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -36,7 +36,7 @@ * the entire execution of the associated method. */ @NodeInfo -public class AllocaNode extends FixedWithNextNode implements LIRLowerable { +public final class AllocaNode extends FixedWithNextNode implements LIRLowerable { /** * The number of slots in block. diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/BeginLockScopeNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/BeginLockScopeNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/BeginLockScopeNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -38,7 +38,7 @@ * check on the object. */ @NodeInfo(allowedUsageTypes = {InputType.Memory}) -public class BeginLockScopeNode extends AbstractMemoryCheckpoint implements LIRLowerable, MonitorEnter, MemoryCheckpoint.Single { +public final class BeginLockScopeNode extends AbstractMemoryCheckpoint implements LIRLowerable, MonitorEnter, MemoryCheckpoint.Single { protected int lockDepth; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CStringNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CStringNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CStringNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -32,7 +32,7 @@ * Converts a compile-time constant Java string into a C string installed with the generated code. */ @NodeInfo -public class CStringNode extends FloatingNode implements LIRLowerable { +public final class CStringNode extends FloatingNode implements LIRLowerable { protected final String string; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassCastNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassCastNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassCastNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -36,7 +36,7 @@ * @see ClassSubstitutions#cast(Class, Object) */ @NodeInfo -public class ClassCastNode extends MacroStateSplitNode implements Canonicalizable.Binary { +public final class ClassCastNode extends MacroStateSplitNode implements Canonicalizable.Binary { public ClassCastNode(Invoke invoke) { super(invoke); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassGetClassLoader0Node.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassGetClassLoader0Node.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassGetClassLoader0Node.java Wed Jan 28 02:34:14 2015 +0100 @@ -38,7 +38,7 @@ */ @SuppressWarnings("javadoc") @NodeInfo -public class ClassGetClassLoader0Node extends MacroStateSplitNode implements Canonicalizable { +public final class ClassGetClassLoader0Node extends MacroStateSplitNode implements Canonicalizable { public ClassGetClassLoader0Node(Invoke invoke) { super(invoke); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassGetComponentTypeNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassGetComponentTypeNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassGetComponentTypeNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -37,7 +37,7 @@ * @see ClassSubstitutions#getComponentType(Class) */ @NodeInfo -public class ClassGetComponentTypeNode extends MacroNode implements Canonicalizable { +public final class ClassGetComponentTypeNode extends MacroNode implements Canonicalizable { public ClassGetComponentTypeNode(Invoke invoke) { super(invoke); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassGetModifiersNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassGetModifiersNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassGetModifiersNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -36,7 +36,7 @@ * @see ClassSubstitutions#getModifiers(Class) */ @NodeInfo -public class ClassGetModifiersNode extends MacroNode implements Canonicalizable { +public final class ClassGetModifiersNode extends MacroNode implements Canonicalizable { public ClassGetModifiersNode(Invoke invoke) { super(invoke); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassGetSuperclassNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassGetSuperclassNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassGetSuperclassNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -37,7 +37,7 @@ * @see ClassSubstitutions#getSuperclass(Class) */ @NodeInfo -public class ClassGetSuperclassNode extends MacroNode implements Canonicalizable { +public final class ClassGetSuperclassNode extends MacroNode implements Canonicalizable { public ClassGetSuperclassNode(Invoke invoke) { super(invoke); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassIsArrayNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassIsArrayNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassIsArrayNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -36,7 +36,7 @@ * @see ClassSubstitutions#isArray(Class) */ @NodeInfo -public class ClassIsArrayNode extends MacroNode implements Canonicalizable { +public final class ClassIsArrayNode extends MacroNode implements Canonicalizable { public ClassIsArrayNode(Invoke invoke) { super(invoke); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassIsAssignableFromNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassIsAssignableFromNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassIsAssignableFromNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -36,7 +36,7 @@ * @see ClassSubstitutions#isAssignableFrom(Class, Class) */ @NodeInfo -public class ClassIsAssignableFromNode extends MacroStateSplitNode implements Canonicalizable { +public final class ClassIsAssignableFromNode extends MacroStateSplitNode implements Canonicalizable { public ClassIsAssignableFromNode(Invoke invoke) { super(invoke); } diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassIsInstanceNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassIsInstanceNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassIsInstanceNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -38,7 +38,7 @@ * @see ClassSubstitutions#isInstance(Class, Object) */ @NodeInfo -public class ClassIsInstanceNode extends MacroNode implements Canonicalizable { +public final class ClassIsInstanceNode extends MacroNode implements Canonicalizable { public ClassIsInstanceNode(Invoke invoke) { super(invoke); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassIsInterfaceNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassIsInterfaceNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassIsInterfaceNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -36,7 +36,7 @@ * @see ClassSubstitutions#isInterface(Class) */ @NodeInfo -public class ClassIsInterfaceNode extends MacroNode implements Canonicalizable { +public final class ClassIsInterfaceNode extends MacroNode implements Canonicalizable { public ClassIsInterfaceNode(Invoke invoke) { super(invoke); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassIsPrimitiveNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassIsPrimitiveNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassIsPrimitiveNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -36,7 +36,7 @@ * @see ClassSubstitutions#isPrimitive(Class) */ @NodeInfo -public class ClassIsPrimitiveNode extends MacroNode implements Canonicalizable { +public final class ClassIsPrimitiveNode extends MacroNode implements Canonicalizable { public ClassIsPrimitiveNode(Invoke invoke) { super(invoke); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CompressionNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CompressionNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CompressionNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -40,7 +40,7 @@ * Compress or uncompress an oop or metaspace pointer. */ @NodeInfo(nameTemplate = "{p#op/s}") -public class CompressionNode extends UnaryNode implements ConvertNode, LIRLowerable { +public final class CompressionNode extends UnaryNode implements ConvertNode, LIRLowerable { public enum CompressionOp { Compress, diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CurrentJavaThreadNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CurrentJavaThreadNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CurrentJavaThreadNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -38,7 +38,7 @@ * Gets the address of the C++ JavaThread object for the current thread. */ @NodeInfo -public class CurrentJavaThreadNode extends FloatingNode implements LIRLowerable { +public final class CurrentJavaThreadNode extends FloatingNode implements LIRLowerable { protected LIRKind wordKind; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CurrentLockNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CurrentLockNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CurrentLockNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -34,7 +34,7 @@ * Intrinsic for getting the lock in the current {@linkplain BeginLockScopeNode lock scope}. */ @NodeInfo -public class CurrentLockNode extends FixedWithNextNode implements LIRLowerable { +public final class CurrentLockNode extends FixedWithNextNode implements LIRLowerable { protected int lockDepth; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/DeoptimizationFetchUnrollInfoCallNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/DeoptimizationFetchUnrollInfoCallNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/DeoptimizationFetchUnrollInfoCallNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -39,7 +39,7 @@ * A call to the runtime code {@code Deoptimization::fetch_unroll_info}. */ @NodeInfo(allowedUsageTypes = {InputType.Memory}) -public class DeoptimizationFetchUnrollInfoCallNode extends FixedWithNextNode implements LIRLowerable, MemoryCheckpoint.Multi { +public final class DeoptimizationFetchUnrollInfoCallNode extends FixedWithNextNode implements LIRLowerable, MemoryCheckpoint.Multi { @Input SaveAllRegistersNode registerSaver; protected final ForeignCallsProvider foreignCalls; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/DeoptimizeCallerNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/DeoptimizeCallerNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/DeoptimizeCallerNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -33,7 +33,7 @@ * Removes the current frame and tail calls the uncommon trap routine. */ @NodeInfo(shortName = "DeoptCaller", nameTemplate = "DeoptCaller {p#reason/s}") -public class DeoptimizeCallerNode extends ControlSinkNode implements LIRLowerable { +public final class DeoptimizeCallerNode extends ControlSinkNode implements LIRLowerable { protected final DeoptimizationAction action; protected final DeoptimizationReason reason; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/DimensionsNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/DimensionsNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/DimensionsNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -39,7 +39,7 @@ * instruction. */ @NodeInfo -public class DimensionsNode extends FixedWithNextNode implements LIRLowerable { +public final class DimensionsNode extends FixedWithNextNode implements LIRLowerable { protected final int rank; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/DirectCompareAndSwapNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/DirectCompareAndSwapNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/DirectCompareAndSwapNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -38,7 +38,7 @@ * expected value or the compared against value instead of a boolean. */ @NodeInfo(allowedUsageTypes = {InputType.Memory}) -public class DirectCompareAndSwapNode extends FixedWithNextNode implements LIRLowerable, MemoryCheckpoint.Single { +public final class DirectCompareAndSwapNode extends FixedWithNextNode implements LIRLowerable, MemoryCheckpoint.Single { @Input ValueNode object; @Input ValueNode offset; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/G1ArrayRangePreWriteBarrier.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/G1ArrayRangePreWriteBarrier.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/G1ArrayRangePreWriteBarrier.java Wed Jan 28 02:34:14 2015 +0100 @@ -26,7 +26,7 @@ import com.oracle.graal.nodes.*; @NodeInfo -public class G1ArrayRangePreWriteBarrier extends ArrayRangeWriteBarrier { +public final class G1ArrayRangePreWriteBarrier extends ArrayRangeWriteBarrier { public G1ArrayRangePreWriteBarrier(ValueNode object, ValueNode startIndex, ValueNode length) { super(object, startIndex, length); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/G1PreWriteBarrier.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/G1PreWriteBarrier.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/G1PreWriteBarrier.java Wed Jan 28 02:34:14 2015 +0100 @@ -27,7 +27,7 @@ import com.oracle.graal.nodes.extended.*; @NodeInfo -public class G1PreWriteBarrier extends WriteBarrier implements DeoptimizingNode.DeoptBefore { +public final class G1PreWriteBarrier extends WriteBarrier implements DeoptimizingNode.DeoptBefore { @OptionalInput(InputType.State) FrameState stateBefore; protected final boolean nullCheck; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/G1ReferentFieldReadBarrier.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/G1ReferentFieldReadBarrier.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/G1ReferentFieldReadBarrier.java Wed Jan 28 02:34:14 2015 +0100 @@ -33,7 +33,7 @@ * read barrier and consequently is added to the SATB queue if the concurrent marker is enabled. */ @NodeInfo -public class G1ReferentFieldReadBarrier extends WriteBarrier { +public final class G1ReferentFieldReadBarrier extends WriteBarrier { protected final boolean doLoad; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/GetObjectAddressNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/GetObjectAddressNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/GetObjectAddressNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -34,7 +34,7 @@ * this is if the usage is not an attempt to dereference the value. */ @NodeInfo -public class GetObjectAddressNode extends FixedWithNextNode implements LIRLowerable { +public final class GetObjectAddressNode extends FixedWithNextNode implements LIRLowerable { @Input ValueNode object; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/HotSpotIndirectCallTargetNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/HotSpotIndirectCallTargetNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/HotSpotIndirectCallTargetNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -31,7 +31,7 @@ import com.oracle.graal.nodes.*; @NodeInfo -public class HotSpotIndirectCallTargetNode extends IndirectCallTargetNode { +public final class HotSpotIndirectCallTargetNode extends IndirectCallTargetNode { @Input ValueNode metaspaceMethod; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/LoadIndexedPointerNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/LoadIndexedPointerNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/LoadIndexedPointerNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -29,7 +29,7 @@ import com.oracle.graal.nodes.java.*; @NodeInfo -public class LoadIndexedPointerNode extends LoadIndexedNode { +public final class LoadIndexedPointerNode extends LoadIndexedNode { public LoadIndexedPointerNode(Stamp stamp, ValueNode array, ValueNode index) { super(stamp, array, index, Kind.Illegal); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/MonitorCounterNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/MonitorCounterNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/MonitorCounterNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -35,7 +35,7 @@ * Node that is used to maintain a stack based counter of how many locks are currently held. */ @NodeInfo -public class MonitorCounterNode extends FloatingNode implements LIRLowerable { +public final class MonitorCounterNode extends FloatingNode implements LIRLowerable { public MonitorCounterNode() { super(null); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/NewArrayStubCall.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/NewArrayStubCall.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/NewArrayStubCall.java Wed Jan 28 02:34:14 2015 +0100 @@ -38,7 +38,7 @@ * A call to the {@link NewArrayStub}. */ @NodeInfo -public class NewArrayStubCall extends DeoptimizingStubCall implements LIRLowerable { +public final class NewArrayStubCall extends DeoptimizingStubCall implements LIRLowerable { private static final Stamp defaultStamp = StampFactory.objectNonNull(); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/NewInstanceStubCall.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/NewInstanceStubCall.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/NewInstanceStubCall.java Wed Jan 28 02:34:14 2015 +0100 @@ -38,7 +38,7 @@ * A call to the {@link NewInstanceStub}. */ @NodeInfo -public class NewInstanceStubCall extends DeoptimizingStubCall implements LIRLowerable { +public final class NewInstanceStubCall extends DeoptimizingStubCall implements LIRLowerable { private static final Stamp defaultStamp = StampFactory.objectNonNull(); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/NewMultiArrayStubCall.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/NewMultiArrayStubCall.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/NewMultiArrayStubCall.java Wed Jan 28 02:34:14 2015 +0100 @@ -38,7 +38,7 @@ * Node implementing a call to {@code GraalRuntime::new_multi_array}. */ @NodeInfo -public class NewMultiArrayStubCall extends ForeignCallNode { +public final class NewMultiArrayStubCall extends ForeignCallNode { private static final Stamp defaultStamp = StampFactory.objectNonNull(); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CallSiteTargetNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CallSiteTargetNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CallSiteTargetNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -33,7 +33,7 @@ import com.oracle.graal.replacements.nodes.*; @NodeInfo -public class CallSiteTargetNode extends MacroStateSplitNode implements Canonicalizable, Lowerable { +public final class CallSiteTargetNode extends MacroStateSplitNode implements Canonicalizable, Lowerable { public CallSiteTargetNode(Invoke invoke) { super(invoke); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CardTableAddressNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CardTableAddressNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CardTableAddressNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -30,7 +30,7 @@ import com.oracle.graal.nodes.spi.*; @NodeInfo -public class CardTableAddressNode extends FloatingNode implements LIRLowerable { +public final class CardTableAddressNode extends FloatingNode implements LIRLowerable { public CardTableAddressNode() { super(StampFactory.forKind(Kind.Long)); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CardTableShiftNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CardTableShiftNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CardTableShiftNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -30,7 +30,7 @@ import com.oracle.graal.nodes.spi.*; @NodeInfo -public class CardTableShiftNode extends FloatingNode implements LIRLowerable { +public final class CardTableShiftNode extends FloatingNode implements LIRLowerable { public CardTableShiftNode() { super(StampFactory.intValue()); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ClassGetHubNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ClassGetHubNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ClassGetHubNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -42,7 +42,7 @@ * {@link ReadNode#canonicalizeRead(ValueNode, LocationNode, ValueNode, CanonicalizerTool)}. */ @NodeInfo -public class ClassGetHubNode extends FloatingGuardedNode implements Lowerable, Canonicalizable, ConvertNode { +public final class ClassGetHubNode extends FloatingGuardedNode implements Lowerable, Canonicalizable, ConvertNode { @Input protected ValueNode clazz; public ClassGetHubNode(ValueNode clazz) { diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CompositeValueClassSubstitutions.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CompositeValueClassSubstitutions.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CompositeValueClassSubstitutions.java Wed Jan 28 02:34:14 2015 +0100 @@ -45,7 +45,7 @@ * {@link Class} parameter. */ @NodeInfo - public static class CompositeValueClassGetNode extends PureFunctionMacroNode { + public static final class CompositeValueClassGetNode extends PureFunctionMacroNode { public CompositeValueClassGetNode(Invoke invoke) { super(invoke); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/MethodHandleNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/MethodHandleNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/MethodHandleNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -43,7 +43,7 @@ * Node for invocation methods defined on the class {@link MethodHandle}. */ @NodeInfo -public class MethodHandleNode extends MacroStateSplitNode implements Simplifiable { +public final class MethodHandleNode extends MacroStateSplitNode implements Simplifiable { // Replacement method data protected ResolvedJavaMethod replacementTargetMethod; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/arraycopy/ArrayCopyCallNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/arraycopy/ArrayCopyCallNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/arraycopy/ArrayCopyCallNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -39,7 +39,7 @@ import com.oracle.graal.runtime.*; @NodeInfo(allowedUsageTypes = {InputType.Memory}) -public class ArrayCopyCallNode extends AbstractMemoryCheckpoint implements Lowerable, MemoryCheckpoint.Single { +public final class ArrayCopyCallNode extends AbstractMemoryCheckpoint implements Lowerable, MemoryCheckpoint.Single { @Input ValueNode src; @Input ValueNode srcPos; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/arraycopy/ArrayCopyNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/arraycopy/ArrayCopyNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/arraycopy/ArrayCopyNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -38,7 +38,7 @@ import com.oracle.graal.replacements.nodes.*; @NodeInfo -public class ArrayCopyNode extends BasicArrayCopyNode implements Virtualizable, Lowerable { +public final class ArrayCopyNode extends BasicArrayCopyNode implements Virtualizable, Lowerable { public ArrayCopyNode(Invoke invoke) { super(invoke); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/arraycopy/CheckcastArrayCopyCallNode.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/arraycopy/CheckcastArrayCopyCallNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/arraycopy/CheckcastArrayCopyCallNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -38,7 +38,7 @@ import com.oracle.graal.word.*; @NodeInfo(allowedUsageTypes = {InputType.Memory, InputType.Value}) -public class CheckcastArrayCopyCallNode extends AbstractMemoryCheckpoint implements Lowerable, MemoryCheckpoint.Single { +public final class CheckcastArrayCopyCallNode extends AbstractMemoryCheckpoint implements Lowerable, MemoryCheckpoint.Single { @Input ValueNode src; @Input ValueNode srcPos; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodeinfo.processor/src/com/oracle/graal/nodeinfo/processor/GraphNodeProcessor.java --- a/graal/com.oracle.graal.nodeinfo.processor/src/com/oracle/graal/nodeinfo/processor/GraphNodeProcessor.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodeinfo.processor/src/com/oracle/graal/nodeinfo/processor/GraphNodeProcessor.java Wed Jan 28 02:34:14 2015 +0100 @@ -126,12 +126,15 @@ TypeElement typeElement = (TypeElement) element; - if (typeElement.getModifiers().contains(Modifier.FINAL)) { - errorMessage(element, "%s annotated class must not be final", NodeInfo.class.getSimpleName()); - continue; + Set modifiers = typeElement.getModifiers(); + if (!modifiers.contains(Modifier.FINAL) && !modifiers.contains(Modifier.ABSTRACT)) { + // TODO(thomaswue): Reenable this check. + // errorMessage(element, "%s annotated class must be either final or abstract", + // NodeInfo.class.getSimpleName()); + // continue; } - if (!typeElement.equals(verifier.Node) && !typeElement.getModifiers().contains(Modifier.ABSTRACT)) { + if (!typeElement.equals(verifier.Node) && !modifiers.contains(Modifier.ABSTRACT)) { verifier.verify(typeElement); } } catch (ElementException ee) { diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/BeginNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/BeginNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/BeginNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -26,7 +26,7 @@ import com.oracle.graal.nodeinfo.*; @NodeInfo -public class BeginNode extends AbstractBeginNode { +public final class BeginNode extends AbstractBeginNode { public BeginNode() { super(StampFactory.forVoid()); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/BreakpointNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/BreakpointNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/BreakpointNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -46,7 +46,7 @@ * inspect in the native debugger when the breakpoint is hit. */ @NodeInfo -public class BreakpointNode extends FixedWithNextNode implements LIRLowerable { +public final class BreakpointNode extends FixedWithNextNode implements LIRLowerable { @Input NodeInputList arguments; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ConditionAnchorNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ConditionAnchorNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ConditionAnchorNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -30,7 +30,7 @@ import com.oracle.graal.nodes.spi.*; @NodeInfo(nameTemplate = "ConditionAnchor(!={p#negated})", allowedUsageTypes = {InputType.Guard}) -public class ConditionAnchorNode extends FixedWithNextNode implements Canonicalizable.Unary, Lowerable, GuardingNode { +public final class ConditionAnchorNode extends FixedWithNextNode implements Canonicalizable.Unary, Lowerable, GuardingNode { @Input(InputType.Condition) LogicNode condition; protected boolean negated; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ConstantNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ConstantNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ConstantNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -39,7 +39,7 @@ * The {@code ConstantNode} represents a {@link Constant constant}. */ @NodeInfo(shortName = "Const", nameTemplate = "Const({p#rawvalue})") -public class ConstantNode extends FloatingNode implements LIRLowerable { +public final class ConstantNode extends FloatingNode implements LIRLowerable { private static final DebugMetric ConstantNodes = Debug.metric("ConstantNodes"); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/DeoptimizeNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/DeoptimizeNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/DeoptimizeNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -27,7 +27,7 @@ import com.oracle.graal.nodes.spi.*; @NodeInfo(shortName = "Deopt", nameTemplate = "Deopt {p#reason/s}") -public class DeoptimizeNode extends AbstractDeoptimizeNode implements Lowerable, LIRLowerable { +public final class DeoptimizeNode extends AbstractDeoptimizeNode implements Lowerable, LIRLowerable { protected final DeoptimizationAction action; protected final DeoptimizationReason reason; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/DynamicDeoptimizeNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/DynamicDeoptimizeNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/DynamicDeoptimizeNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -29,7 +29,7 @@ import com.oracle.graal.nodes.spi.*; @NodeInfo -public class DynamicDeoptimizeNode extends AbstractDeoptimizeNode implements LIRLowerable, Lowerable, Canonicalizable { +public final class DynamicDeoptimizeNode extends AbstractDeoptimizeNode implements LIRLowerable, Lowerable, Canonicalizable { @Input ValueNode actionAndReason; @Input ValueNode speculation; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/EntryMarkerNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/EntryMarkerNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/EntryMarkerNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -33,7 +33,7 @@ * by the graph builder. */ @NodeInfo(allowedUsageTypes = {InputType.Association}) -public class EntryMarkerNode extends BeginStateSplitNode implements IterableNodeType, Simplifiable, LIRLowerable { +public final class EntryMarkerNode extends BeginStateSplitNode implements IterableNodeType, Simplifiable, LIRLowerable { public EntryMarkerNode() { } diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FixedGuardNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FixedGuardNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FixedGuardNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -30,7 +30,7 @@ import com.oracle.graal.nodes.spi.*; @NodeInfo(nameTemplate = "FixedGuard(!={p#negated}) {p#reason/s}", allowedUsageTypes = {InputType.Guard}) -public class FixedGuardNode extends AbstractFixedGuardNode implements Lowerable, IterableNodeType { +public final class FixedGuardNode extends AbstractFixedGuardNode implements Lowerable, IterableNodeType { public FixedGuardNode(LogicNode condition, DeoptimizationReason deoptReason, DeoptimizationAction action) { this(condition, deoptReason, action, false); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GuardingPiNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GuardingPiNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GuardingPiNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -36,7 +36,7 @@ * A node that changes the stamp of its input based on some condition being true. */ @NodeInfo(nameTemplate = "GuardingPi(!={p#negated}) {p#reason/s}") -public class GuardingPiNode extends FixedWithNextNode implements Lowerable, Virtualizable, Canonicalizable, ValueProxy { +public final class GuardingPiNode extends FixedWithNextNode implements Lowerable, Virtualizable, Canonicalizable, ValueProxy { @Input ValueNode object; @Input(InputType.Condition) LogicNode condition; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MemoryMapNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MemoryMapNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MemoryMapNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -36,7 +36,7 @@ import com.oracle.graal.nodes.spi.*; @NodeInfo(allowedUsageTypes = {InputType.Extension}) -public class MemoryMapNode extends FloatingNode implements MemoryMap, LIRLowerable { +public final class MemoryMapNode extends FloatingNode implements MemoryMap, LIRLowerable { protected final List locationIdentities; @Input(InputType.Memory) NodeInputList nodes; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MemoryPhiNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MemoryPhiNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MemoryPhiNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -32,7 +32,7 @@ * Memory {@code PhiNode}s merge memory dependencies at control flow merges. */ @NodeInfo(nameTemplate = "MemoryPhi({i#values}) {p#locationIdentity/s}", allowedUsageTypes = {InputType.Memory}) -public class MemoryPhiNode extends PhiNode implements MemoryNode { +public final class MemoryPhiNode extends PhiNode implements MemoryNode { @Input(InputType.Memory) NodeInputList values; protected final LocationIdentity locationIdentity; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MergeNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MergeNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MergeNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -28,7 +28,7 @@ * Denotes the merging of multiple control-flow paths. */ @NodeInfo -public class MergeNode extends AbstractMergeNode { +public final class MergeNode extends AbstractMergeNode { public MergeNode() { } } diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/AbsNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/AbsNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/AbsNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -34,7 +34,7 @@ * Absolute value. */ @NodeInfo -public class AbsNode extends UnaryArithmeticNode implements ArithmeticLIRLowerable, NarrowableArithmeticNode { +public final class AbsNode extends UnaryArithmeticNode implements ArithmeticLIRLowerable, NarrowableArithmeticNode { public AbsNode(ValueNode x) { super(ArithmeticOpTable::getAbs, x); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/AndNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/AndNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/AndNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -34,7 +34,7 @@ import com.oracle.graal.nodes.util.*; @NodeInfo(shortName = "&") -public class AndNode extends BinaryArithmeticNode implements NarrowableArithmeticNode { +public final class AndNode extends BinaryArithmeticNode implements NarrowableArithmeticNode { public AndNode(ValueNode x, ValueNode y) { super(ArithmeticOpTable::getAnd, x, y); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/ConditionalNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/ConditionalNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/ConditionalNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -38,7 +38,7 @@ * that these nodes are not built directly from the bytecode but are introduced by canonicalization. */ @NodeInfo -public class ConditionalNode extends FloatingNode implements Canonicalizable, LIRLowerable { +public final class ConditionalNode extends FloatingNode implements Canonicalizable, LIRLowerable { @Input(InputType.Condition) LogicNode condition; @Input ValueNode trueValue; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/DivNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/DivNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/DivNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -33,7 +33,7 @@ import com.oracle.graal.nodes.spi.*; @NodeInfo(shortName = "/") -public class DivNode extends BinaryArithmeticNode
{ +public final class DivNode extends BinaryArithmeticNode
{ public DivNode(ValueNode x, ValueNode y) { super(ArithmeticOpTable::getDiv, x, y); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatConvertNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatConvertNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatConvertNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -37,7 +37,7 @@ * semantics. */ @NodeInfo -public class FloatConvertNode extends UnaryArithmeticNode implements ConvertNode, Lowerable, ArithmeticLIRLowerable { +public final class FloatConvertNode extends UnaryArithmeticNode implements ConvertNode, Lowerable, ArithmeticLIRLowerable { protected final FloatConvert op; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/NarrowNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/NarrowNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/NarrowNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -35,7 +35,7 @@ * The {@code NarrowNode} converts an integer to a narrower integer. */ @NodeInfo -public class NarrowNode extends IntegerConvertNode { +public final class NarrowNode extends IntegerConvertNode { public NarrowNode(ValueNode input, int resultBits) { this(input, PrimitiveStamp.getBits(input.stamp()), resultBits); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/NegateNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/NegateNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/NegateNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -34,7 +34,7 @@ * The {@code NegateNode} node negates its operand. */ @NodeInfo -public class NegateNode extends UnaryArithmeticNode implements NarrowableArithmeticNode { +public final class NegateNode extends UnaryArithmeticNode implements NarrowableArithmeticNode { public NegateNode(ValueNode value) { super(ArithmeticOpTable::getNeg, value); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/AddLocationNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/AddLocationNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/AddLocationNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -36,7 +36,7 @@ * [(base + x) + y] where base is a node and x and y are location nodes. */ @NodeInfo(nameTemplate = "AddLoc {p#locationIdentity/s}") -public class AddLocationNode extends LocationNode implements Canonicalizable.Binary { +public final class AddLocationNode extends LocationNode implements Canonicalizable.Binary { @Input(InputType.Association) ValueNode x; @Input(InputType.Association) ValueNode y; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/BoxNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/BoxNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/BoxNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -40,7 +40,7 @@ * methods in Integer, Long, etc. */ @NodeInfo -public class BoxNode extends UnaryNode implements VirtualizableAllocation, Lowerable { +public final class BoxNode extends UnaryNode implements VirtualizableAllocation, Lowerable { protected final Kind boxingKind; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/BranchProbabilityNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/BranchProbabilityNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/BranchProbabilityNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -36,7 +36,7 @@ * intended primarily for snippets, so that they can define their fast and slow paths. */ @NodeInfo -public class BranchProbabilityNode extends FloatingNode implements Simplifiable, Lowerable { +public final class BranchProbabilityNode extends FloatingNode implements Simplifiable, Lowerable { public static final double LIKELY_PROBABILITY = 0.6; public static final double NOT_LIKELY_PROBABILITY = 1 - LIKELY_PROBABILITY; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/BytecodeExceptionNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/BytecodeExceptionNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/BytecodeExceptionNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -34,7 +34,7 @@ * either a {@linkplain ForeignCallDescriptor foreign} call or a pre-allocated exception object. */ @NodeInfo -public class BytecodeExceptionNode extends AbstractMemoryCheckpoint implements Lowerable, MemoryCheckpoint.Single { +public final class BytecodeExceptionNode extends AbstractMemoryCheckpoint implements Lowerable, MemoryCheckpoint.Single { protected final Class exceptionClass; @Input NodeInputList arguments; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ComputeAddressNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ComputeAddressNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ComputeAddressNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -30,7 +30,7 @@ import com.oracle.graal.nodes.spi.*; @NodeInfo -public class ComputeAddressNode extends FloatingNode implements LIRLowerable { +public final class ComputeAddressNode extends FloatingNode implements LIRLowerable { @Input ValueNode object; @Input(InputType.Association) ValueNode location; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ConstantLocationNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ConstantLocationNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ConstantLocationNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -33,7 +33,7 @@ * where base is a node and disp is a constant. */ @NodeInfo(nameTemplate = "Loc {p#locationIdentity/s}") -public class ConstantLocationNode extends LocationNode { +public final class ConstantLocationNode extends LocationNode { protected final LocationIdentity locationIdentity; protected final long displacement; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/FixedValueAnchorNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/FixedValueAnchorNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/FixedValueAnchorNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -28,7 +28,7 @@ import com.oracle.graal.nodes.spi.*; @NodeInfo -public class FixedValueAnchorNode extends FixedWithNextNode implements LIRLowerable, ValueProxy { +public final class FixedValueAnchorNode extends FixedWithNextNode implements LIRLowerable, ValueProxy { @Input ValueNode object; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/LoadHubNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/LoadHubNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/LoadHubNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -33,7 +33,7 @@ * Loads an object's hub. The object is not null-checked by this operation. */ @NodeInfo -public class LoadHubNode extends FloatingGuardedNode implements Lowerable, Canonicalizable, Virtualizable { +public final class LoadHubNode extends FloatingGuardedNode implements Lowerable, Canonicalizable, Virtualizable { @Input ValueNode value; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AbstractNewArrayNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AbstractNewArrayNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AbstractNewArrayNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -32,7 +32,7 @@ * The {@code AbstractNewArrayNode} is used for all 1-dimensional array allocations. */ @NodeInfo -public class AbstractNewArrayNode extends AbstractNewObjectNode implements ArrayLengthProvider { +public abstract class AbstractNewArrayNode extends AbstractNewObjectNode implements ArrayLengthProvider { @Input protected ValueNode length; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AbstractNewObjectNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AbstractNewObjectNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AbstractNewObjectNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -36,7 +36,7 @@ * The {@code AbstractNewObjectNode} is the base class for the new instance and new array nodes. */ @NodeInfo -public class AbstractNewObjectNode extends DeoptimizingFixedWithNextNode implements Simplifiable, Lowerable { +public abstract class AbstractNewObjectNode extends DeoptimizingFixedWithNextNode implements Simplifiable, Lowerable { protected final boolean fillContents; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/ArrayLengthNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/ArrayLengthNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/ArrayLengthNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -34,7 +34,7 @@ * The {@code ArrayLength} instruction gets the length of an array. */ @NodeInfo -public class ArrayLengthNode extends FixedWithNextNode implements Canonicalizable.Unary, Lowerable, Virtualizable { +public final class ArrayLengthNode extends FixedWithNextNode implements Canonicalizable.Unary, Lowerable, Virtualizable { @Input ValueNode array; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AtomicReadAndAddNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AtomicReadAndAddNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AtomicReadAndAddNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -36,7 +36,7 @@ * Represents an atomic read-and-add operation like {@link Unsafe#getAndAddInt(Object, long, int)}. */ @NodeInfo(allowedUsageTypes = {InputType.Memory}) -public class AtomicReadAndAddNode extends AbstractMemoryCheckpoint implements LIRLowerable, MemoryCheckpoint.Single { +public final class AtomicReadAndAddNode extends AbstractMemoryCheckpoint implements LIRLowerable, MemoryCheckpoint.Single { @Input ValueNode object; @Input ValueNode offset; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AtomicReadAndWriteNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AtomicReadAndWriteNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AtomicReadAndWriteNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -37,7 +37,7 @@ * . */ @NodeInfo -public class AtomicReadAndWriteNode extends AbstractMemoryCheckpoint implements Lowerable, MemoryCheckpoint.Single { +public final class AtomicReadAndWriteNode extends AbstractMemoryCheckpoint implements Lowerable, MemoryCheckpoint.Single { @Input ValueNode object; @Input ValueNode offset; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastDynamicNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastDynamicNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastDynamicNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -34,7 +34,7 @@ * instance, to implement an object array store check. */ @NodeInfo -public class CheckCastDynamicNode extends FixedWithNextNode implements Canonicalizable.Binary, Lowerable { +public final class CheckCastDynamicNode extends FixedWithNextNode implements Canonicalizable.Binary, Lowerable { @Input ValueNode object; @Input ValueNode hub; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -41,7 +41,7 @@ * Implements a type check against a compile-time known type. */ @NodeInfo -public class CheckCastNode extends FixedWithNextNode implements Canonicalizable, Simplifiable, Lowerable, Virtualizable, ValueProxy { +public final class CheckCastNode extends FixedWithNextNode implements Canonicalizable, Simplifiable, Lowerable, Virtualizable, ValueProxy { @Input protected ValueNode object; protected final ResolvedJavaType type; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CompareAndSwapNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CompareAndSwapNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CompareAndSwapNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -36,7 +36,7 @@ * value matched the expected value. */ @NodeInfo(allowedUsageTypes = {InputType.Memory}) -public class CompareAndSwapNode extends AbstractMemoryCheckpoint implements Lowerable, MemoryCheckpoint.Single { +public final class CompareAndSwapNode extends AbstractMemoryCheckpoint implements Lowerable, MemoryCheckpoint.Single { @Input ValueNode object; @Input ValueNode offset; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/DynamicNewInstanceNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/DynamicNewInstanceNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/DynamicNewInstanceNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -30,7 +30,7 @@ import com.oracle.graal.nodes.*; @NodeInfo -public class DynamicNewInstanceNode extends AbstractNewObjectNode implements Canonicalizable { +public final class DynamicNewInstanceNode extends AbstractNewObjectNode implements Canonicalizable { @Input ValueNode clazz; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/ExceptionObjectNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/ExceptionObjectNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/ExceptionObjectNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -34,7 +34,7 @@ * throw instruction or implicit exception). */ @NodeInfo(allowedUsageTypes = {InputType.Memory}) -public class ExceptionObjectNode extends DispatchBeginNode implements Lowerable, MemoryCheckpoint.Single { +public final class ExceptionObjectNode extends DispatchBeginNode implements Lowerable, MemoryCheckpoint.Single { public ExceptionObjectNode(MetaAccessProvider metaAccess) { super(StampFactory.declaredNonNull(metaAccess.lookupJavaType(Throwable.class))); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/LoadFieldNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/LoadFieldNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/LoadFieldNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -37,7 +37,7 @@ * The {@code LoadFieldNode} represents a read of a static or instance field. */ @NodeInfo(nameTemplate = "LoadField#{p#field/s}") -public class LoadFieldNode extends AccessFieldNode implements Canonicalizable.Unary, VirtualizableRoot, UncheckedInterfaceProvider { +public final class LoadFieldNode extends AccessFieldNode implements Canonicalizable.Unary, VirtualizableRoot, UncheckedInterfaceProvider { public LoadFieldNode(ValueNode object, ResolvedJavaField field) { super(createStamp(field), object, field); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/MethodCallTargetNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/MethodCallTargetNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/MethodCallTargetNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -185,8 +185,8 @@ */ LogicNode condition = graph().unique(new InstanceOfNode(singleImplementor, receiver, getProfile())); GuardNode guard = graph().unique( - new GuardNode(condition, AbstractBeginNode.prevBegin(invoke().asNode()), DeoptimizationReason.OptimizedTypeCheckViolated, DeoptimizationAction.InvalidateRecompile, false, - JavaConstant.NULL_POINTER)); + new GuardNode(condition, AbstractBeginNode.prevBegin(invoke().asNode()), DeoptimizationReason.OptimizedTypeCheckViolated, DeoptimizationAction.InvalidateRecompile, + false, JavaConstant.NULL_POINTER)); PiNode piNode = graph().unique(new PiNode(receiver, StampFactory.declaredNonNull(singleImplementor), guard)); arguments().set(0, piNode); setInvokeKind(InvokeKind.Virtual); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/MonitorEnterNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/MonitorEnterNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/MonitorEnterNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -33,7 +33,7 @@ * The {@code MonitorEnterNode} represents the acquisition of a monitor. */ @NodeInfo -public class MonitorEnterNode extends AccessMonitorNode implements Virtualizable, Lowerable, IterableNodeType, MonitorEnter, MemoryCheckpoint.Single { +public final class MonitorEnterNode extends AccessMonitorNode implements Virtualizable, Lowerable, IterableNodeType, MonitorEnter, MemoryCheckpoint.Single { public MonitorEnterNode(ValueNode object, MonitorIdNode monitorId) { super(object, monitorId); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/MonitorExitNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/MonitorExitNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/MonitorExitNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -37,7 +37,7 @@ * materialized before releasing the monitor. */ @NodeInfo -public class MonitorExitNode extends AccessMonitorNode implements Virtualizable, Simplifiable, Lowerable, IterableNodeType, MonitorExit, MemoryCheckpoint.Single { +public final class MonitorExitNode extends AccessMonitorNode implements Virtualizable, Simplifiable, Lowerable, IterableNodeType, MonitorExit, MemoryCheckpoint.Single { @OptionalInput ValueNode escapedReturnValue; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewInstanceNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewInstanceNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewInstanceNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -36,7 +36,7 @@ * The {@code NewInstanceNode} represents the allocation of an instance class object. */ @NodeInfo(nameTemplate = "New {p#instanceClass/s}") -public class NewInstanceNode extends AbstractNewObjectNode implements VirtualizableAllocation { +public final class NewInstanceNode extends AbstractNewObjectNode implements VirtualizableAllocation { protected final ResolvedJavaType instanceClass; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewMultiArrayNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewMultiArrayNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewMultiArrayNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -33,7 +33,7 @@ * The {@code NewMultiArrayNode} represents an allocation of a multi-dimensional object array. */ @NodeInfo -public class NewMultiArrayNode extends DeoptimizingFixedWithNextNode implements Lowerable, ArrayLengthProvider { +public final class NewMultiArrayNode extends DeoptimizingFixedWithNextNode implements Lowerable, ArrayLengthProvider { @Input protected NodeInputList dimensions; protected final ResolvedJavaType type; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/AllocatedObjectNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/AllocatedObjectNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/AllocatedObjectNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -33,7 +33,7 @@ * {@link VirtualObjectNode}. */ @NodeInfo -public class AllocatedObjectNode extends FloatingNode implements Virtualizable, ArrayLengthProvider { +public final class AllocatedObjectNode extends FloatingNode implements Virtualizable, ArrayLengthProvider { @Input VirtualObjectNode virtualObject; @Input(InputType.Extension) CommitAllocationNode commit; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/CommitAllocationNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/CommitAllocationNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/CommitAllocationNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -33,7 +33,7 @@ import com.oracle.graal.nodes.spi.*; @NodeInfo(nameTemplate = "Alloc {i#virtualObjects}", allowedUsageTypes = {InputType.Extension}) -public class CommitAllocationNode extends FixedWithNextNode implements VirtualizableAllocation, Lowerable, Simplifiable { +public final class CommitAllocationNode extends FixedWithNextNode implements VirtualizableAllocation, Lowerable, Simplifiable { @Input NodeInputList virtualObjects = new NodeInputList<>(this); @Input NodeInputList values = new NodeInputList<>(this); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.replacements.amd64/src/com/oracle/graal/replacements/amd64/AMD64CountLeadingZerosNode.java --- a/graal/com.oracle.graal.replacements.amd64/src/com/oracle/graal/replacements/amd64/AMD64CountLeadingZerosNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.replacements.amd64/src/com/oracle/graal/replacements/amd64/AMD64CountLeadingZerosNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -35,7 +35,7 @@ * Count the number of leading zeros. */ @NodeInfo -public class AMD64CountLeadingZerosNode extends UnaryNode implements LIRLowerable { +public final class AMD64CountLeadingZerosNode extends UnaryNode implements LIRLowerable { public AMD64CountLeadingZerosNode(ValueNode value) { super(StampFactory.forInteger(Kind.Int, 0, ((PrimitiveStamp) value.stamp()).getBits()), value); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.replacements.amd64/src/com/oracle/graal/replacements/amd64/AMD64CountTrailingZerosNode.java --- a/graal/com.oracle.graal.replacements.amd64/src/com/oracle/graal/replacements/amd64/AMD64CountTrailingZerosNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.replacements.amd64/src/com/oracle/graal/replacements/amd64/AMD64CountTrailingZerosNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -35,7 +35,7 @@ * Count the number of trailing zeros. */ @NodeInfo -public class AMD64CountTrailingZerosNode extends UnaryNode implements LIRLowerable { +public final class AMD64CountTrailingZerosNode extends UnaryNode implements LIRLowerable { public AMD64CountTrailingZerosNode(ValueNode value) { super(StampFactory.forInteger(Kind.Int, 0, ((PrimitiveStamp) value.stamp()).getBits()), value); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.replacements.amd64/src/com/oracle/graal/replacements/amd64/AMD64FloatConvertNode.java --- a/graal/com.oracle.graal.replacements.amd64/src/com/oracle/graal/replacements/amd64/AMD64FloatConvertNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.replacements.amd64/src/com/oracle/graal/replacements/amd64/AMD64FloatConvertNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -37,7 +37,7 @@ * fixup code that handles the corner cases that differ between AMD64 and Java. */ @NodeInfo -public class AMD64FloatConvertNode extends UnaryArithmeticNode implements ArithmeticLIRLowerable { +public final class AMD64FloatConvertNode extends UnaryArithmeticNode implements ArithmeticLIRLowerable { protected final FloatConvert op; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/EdgesTest.java --- a/graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/EdgesTest.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/EdgesTest.java Wed Jan 28 02:34:14 2015 +0100 @@ -43,7 +43,7 @@ public class EdgesTest extends GraalCompilerTest { @NodeInfo - static class TestNode extends Node { + static final class TestNode extends Node { @Input NodeInputList itail; @Input ConstantNode i1; @Input FloatingNode i2; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/ArrayEqualsNode.java --- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/ArrayEqualsNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/ArrayEqualsNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -36,7 +36,7 @@ * Compares two arrays with the same length. */ @NodeInfo -public class ArrayEqualsNode extends FixedWithNextNode implements LIRLowerable, Canonicalizable, Virtualizable, MemoryAccess { +public final class ArrayEqualsNode extends FixedWithNextNode implements LIRLowerable, Canonicalizable, Virtualizable, MemoryAccess { /** {@link Kind} of the arrays to compare. */ protected final Kind kind; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/AssertionNode.java --- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/AssertionNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/AssertionNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -36,7 +36,7 @@ * may need to insert a check. */ @NodeInfo -public class AssertionNode extends FixedWithNextNode implements Lowerable, Canonicalizable, LIRLowerable { +public final class AssertionNode extends FixedWithNextNode implements Lowerable, Canonicalizable, LIRLowerable { @Input ValueNode value; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/BitCountNode.java --- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/BitCountNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/BitCountNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -32,7 +32,7 @@ import com.oracle.graal.nodes.spi.*; @NodeInfo -public class BitCountNode extends UnaryNode implements LIRLowerable { +public final class BitCountNode extends UnaryNode implements LIRLowerable { public BitCountNode(ValueNode value) { super(StampFactory.forInteger(Kind.Int, 0, ((PrimitiveStamp) value.stamp()).getBits()), value); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/BitScanForwardNode.java --- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/BitScanForwardNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/BitScanForwardNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -36,7 +36,7 @@ * input is zero. */ @NodeInfo -public class BitScanForwardNode extends UnaryNode implements LIRLowerable { +public final class BitScanForwardNode extends UnaryNode implements LIRLowerable { public BitScanForwardNode(ValueNode value) { super(StampFactory.forInteger(Kind.Int, 0, ((PrimitiveStamp) value.stamp()).getBits()), value); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/BitScanReverseNode.java --- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/BitScanReverseNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/BitScanReverseNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -36,7 +36,7 @@ * input is zero. */ @NodeInfo -public class BitScanReverseNode extends UnaryNode implements LIRLowerable { +public final class BitScanReverseNode extends UnaryNode implements LIRLowerable { public BitScanReverseNode(ValueNode value) { super(StampFactory.forInteger(Kind.Int, 0, ((PrimitiveStamp) value.stamp()).getBits()), value); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/BlackholeNode.java --- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/BlackholeNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/BlackholeNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -28,7 +28,7 @@ import com.oracle.graal.nodes.spi.*; @NodeInfo -public class BlackholeNode extends FixedWithNextNode implements LIRLowerable { +public final class BlackholeNode extends FixedWithNextNode implements LIRLowerable { @Input ValueNode value; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/DeferredPiNode.java --- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/DeferredPiNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/DeferredPiNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -39,7 +39,7 @@ * is replaced by a {@link PiNode} once the type becomes constant (which must happen). */ @NodeInfo -public class DeferredPiNode extends FloatingNode implements Canonicalizable { +public final class DeferredPiNode extends FloatingNode implements Canonicalizable { @Input ValueNode object; @Input ValueNode type; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/DirectObjectStoreNode.java --- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/DirectObjectStoreNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/DirectObjectStoreNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -35,7 +35,7 @@ * {@link StateSplit} and does not include a write barrier. */ @NodeInfo -public class DirectObjectStoreNode extends FixedWithNextNode implements Lowerable { +public final class DirectObjectStoreNode extends FixedWithNextNode implements Lowerable { @Input ValueNode object; @Input ValueNode value; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/ExplodeLoopNode.java --- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/ExplodeLoopNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/ExplodeLoopNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -37,7 +37,7 @@ * @see VarargsParameter */ @NodeInfo -public class ExplodeLoopNode extends FixedWithNextNode { +public final class ExplodeLoopNode extends FixedWithNextNode { public ExplodeLoopNode() { super(StampFactory.forVoid()); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/AssumptionNode.java --- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/AssumptionNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/AssumptionNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -35,7 +35,7 @@ import com.oracle.graal.truffle.*; @NodeInfo -public class AssumptionNode extends MacroNode implements Simplifiable { +public final class AssumptionNode extends MacroNode implements Simplifiable { public AssumptionNode(Invoke invoke) { super(invoke); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/BailoutNode.java --- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/BailoutNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/BailoutNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -31,7 +31,7 @@ import com.oracle.graal.replacements.nodes.*; @NodeInfo -public class BailoutNode extends MacroNode implements Canonicalizable { +public final class BailoutNode extends MacroNode implements Canonicalizable { public BailoutNode(Invoke invoke) { super(invoke); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/asserts/CompilationConstantNode.java --- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/asserts/CompilationConstantNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/asserts/CompilationConstantNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -28,7 +28,7 @@ import com.oracle.graal.nodes.*; @NodeInfo -public class CompilationConstantNode extends NeverPartOfCompilationNode implements Canonicalizable { +public final class CompilationConstantNode extends NeverPartOfCompilationNode implements Canonicalizable { public CompilationConstantNode(Invoke invoke) { super(invoke, "The value could not be reduced to a compile time constant."); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/asserts/NeverInlineMacroNode.java --- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/asserts/NeverInlineMacroNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/asserts/NeverInlineMacroNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -28,7 +28,7 @@ import com.oracle.graal.replacements.nodes.*; @NodeInfo -public class NeverInlineMacroNode extends MacroStateSplitNode implements com.oracle.graal.graph.IterableNodeType { +public final class NeverInlineMacroNode extends MacroStateSplitNode implements com.oracle.graal.graph.IterableNodeType { public NeverInlineMacroNode(Invoke invoke) { super(invoke); diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/frame/NewFrameNode.java --- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/frame/NewFrameNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/frame/NewFrameNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -46,7 +46,7 @@ * class. */ @NodeInfo -public class NewFrameNode extends FixedWithNextNode implements IterableNodeType, VirtualizableAllocation, Canonicalizable { +public final class NewFrameNode extends FixedWithNextNode implements IterableNodeType, VirtualizableAllocation, Canonicalizable { @Input ValueNode descriptor; @Input ValueNode arguments; @@ -96,7 +96,7 @@ } @NodeInfo - public static class VirtualOnlyInstanceNode extends VirtualInstanceNode { + public static final class VirtualOnlyInstanceNode extends VirtualInstanceNode { protected boolean allowMaterialization; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/typesystem/CustomizedUnsafeLoadFinalNode.java --- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/typesystem/CustomizedUnsafeLoadFinalNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/typesystem/CustomizedUnsafeLoadFinalNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -40,7 +40,7 @@ * Substitution for method CompilerDirectives#unsafeGet*. */ @NodeInfo -public class CustomizedUnsafeLoadFinalNode extends FixedWithNextNode implements Canonicalizable, Virtualizable, Lowerable { +public final class CustomizedUnsafeLoadFinalNode extends FixedWithNextNode implements Canonicalizable, Virtualizable, Lowerable { @Input ValueNode object; @Input ValueNode offset; @Input ValueNode condition; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/typesystem/CustomizedUnsafeLoadMacroNode.java --- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/typesystem/CustomizedUnsafeLoadMacroNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/typesystem/CustomizedUnsafeLoadMacroNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -37,7 +37,7 @@ * Macro node for CompilerDirectives#unsafeGetInt*. */ @NodeInfo -public class CustomizedUnsafeLoadMacroNode extends NeverPartOfCompilationNode implements Canonicalizable { +public final class CustomizedUnsafeLoadMacroNode extends NeverPartOfCompilationNode implements Canonicalizable { private static final int ARGUMENT_COUNT = 4; private static final int OBJECT_ARGUMENT_INDEX = 0; diff -r 2ccaaf5a6be4 -r ec0733b5a90a graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/typesystem/CustomizedUnsafeStoreMacroNode.java --- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/typesystem/CustomizedUnsafeStoreMacroNode.java Wed Jan 28 01:11:25 2015 +0100 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/typesystem/CustomizedUnsafeStoreMacroNode.java Wed Jan 28 02:34:14 2015 +0100 @@ -35,7 +35,7 @@ * Macro node for method CompilerDirectives#unsafePut*. */ @NodeInfo -public class CustomizedUnsafeStoreMacroNode extends NeverPartOfCompilationNode implements Canonicalizable, StateSplit { +public final class CustomizedUnsafeStoreMacroNode extends NeverPartOfCompilationNode implements Canonicalizable, StateSplit { private static final int ARGUMENT_COUNT = 4; private static final int OBJECT_ARGUMENT_INDEX = 0; private static final int OFFSET_ARGUMENT_INDEX = 1;