Mercurial > hg > graal-jvmci-8
changeset 22489:24b4e5e1431c
Remove JavaConstant from Value hierarchy.
author | Roland Schatz <roland.schatz@oracle.com> |
---|---|
date | Mon, 31 Aug 2015 13:36:07 +0200 |
parents | b5ebb80da4f1 |
children | 7b238ae6da75 |
files | jvmci/jdk.internal.jvmci.code/src/jdk/internal/jvmci/code/ValueUtil.java jvmci/jdk.internal.jvmci.hotspot/src/jdk/internal/jvmci/hotspot/HotSpotCompressedNullConstant.java jvmci/jdk.internal.jvmci.hotspot/src/jdk/internal/jvmci/hotspot/HotSpotObjectConstantImpl.java jvmci/jdk.internal.jvmci.meta/src/jdk/internal/jvmci/meta/JavaConstant.java jvmci/jdk.internal.jvmci.meta/src/jdk/internal/jvmci/meta/NullConstant.java jvmci/jdk.internal.jvmci.meta/src/jdk/internal/jvmci/meta/PrimitiveConstant.java |
diffstat | 6 files changed, 38 insertions(+), 23 deletions(-) [+] |
line wrap: on
line diff
--- a/jvmci/jdk.internal.jvmci.code/src/jdk/internal/jvmci/code/ValueUtil.java Sun Aug 30 20:15:02 2015 -0700 +++ b/jvmci/jdk.internal.jvmci.code/src/jdk/internal/jvmci/code/ValueUtil.java Mon Aug 31 13:36:07 2015 +0200 @@ -55,21 +55,11 @@ return (VirtualObject) value; } - public static boolean isConstant(Value value) { - assert value != null; - return value instanceof JavaConstant; - } - public static boolean isConstantJavaValue(JavaValue value) { assert value != null; return value instanceof JavaConstant; } - public static JavaConstant asConstant(Value value) { - assert value != null; - return (JavaConstant) value; - } - public static boolean isAllocatableValue(Value value) { assert value != null; return value instanceof AllocatableValue;
--- a/jvmci/jdk.internal.jvmci.hotspot/src/jdk/internal/jvmci/hotspot/HotSpotCompressedNullConstant.java Sun Aug 30 20:15:02 2015 -0700 +++ b/jvmci/jdk.internal.jvmci.hotspot/src/jdk/internal/jvmci/hotspot/HotSpotCompressedNullConstant.java Mon Aug 31 13:36:07 2015 +0200 @@ -27,12 +27,15 @@ /** * The compressed representation of the {@link JavaConstant#NULL_POINTER null constant}. */ -public final class HotSpotCompressedNullConstant extends AbstractValue implements JavaConstant, HotSpotConstant { +public final class HotSpotCompressedNullConstant implements JavaConstant, HotSpotConstant { public static final JavaConstant COMPRESSED_NULL = new HotSpotCompressedNullConstant(); private HotSpotCompressedNullConstant() { - super(LIRKind.reference(Kind.Int)); + } + + public Kind getKind() { + return Kind.Object; } @Override
--- a/jvmci/jdk.internal.jvmci.hotspot/src/jdk/internal/jvmci/hotspot/HotSpotObjectConstantImpl.java Sun Aug 30 20:15:02 2015 -0700 +++ b/jvmci/jdk.internal.jvmci.hotspot/src/jdk/internal/jvmci/hotspot/HotSpotObjectConstantImpl.java Mon Aug 31 13:36:07 2015 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2015, 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 @@ -33,7 +33,7 @@ * Represents a constant non-{@code null} object reference, within the compiler and across the * compiler/runtime interface. */ -public final class HotSpotObjectConstantImpl extends AbstractValue implements HotSpotObjectConstant, HotSpotProxified { +public final class HotSpotObjectConstantImpl implements HotSpotObjectConstant, HotSpotProxified { public static JavaConstant forObject(Object object) { return forObject(object, false); @@ -80,7 +80,6 @@ private final boolean isDefaultStable; private HotSpotObjectConstantImpl(Object object, boolean compressed, int stableDimension, boolean isDefaultStable) { - super(LIRKind.reference(compressed ? Kind.Int : Kind.Object)); this.object = object; this.compressed = compressed; this.stableDimension = (byte) stableDimension; @@ -95,6 +94,11 @@ this(object, compressed, 0, false); } + @Override + public Kind getKind() { + return Kind.Object; + } + /** * Package-private accessor for the object represented by this constant. */ @@ -253,7 +257,7 @@ return true; } else if (o instanceof HotSpotObjectConstantImpl) { HotSpotObjectConstantImpl other = (HotSpotObjectConstantImpl) o; - return super.equals(o) && object == other.object && compressed == other.compressed && stableDimension == other.stableDimension && isDefaultStable == other.isDefaultStable; + return object == other.object && compressed == other.compressed && stableDimension == other.stableDimension && isDefaultStable == other.isDefaultStable; } return false; }
--- a/jvmci/jdk.internal.jvmci.meta/src/jdk/internal/jvmci/meta/JavaConstant.java Sun Aug 30 20:15:02 2015 -0700 +++ b/jvmci/jdk.internal.jvmci.meta/src/jdk/internal/jvmci/meta/JavaConstant.java Mon Aug 31 13:36:07 2015 +0200 @@ -28,7 +28,7 @@ * {@code JavaConstant} instances that represent frequently used constant values, such as * {@link #NULL_POINTER}. */ -public interface JavaConstant extends Constant, JavaValue, Value { +public interface JavaConstant extends Constant, JavaValue { /* * Using a larger cache for integers leads to only a slight increase in cache hit ratio which is
--- a/jvmci/jdk.internal.jvmci.meta/src/jdk/internal/jvmci/meta/NullConstant.java Sun Aug 30 20:15:02 2015 -0700 +++ b/jvmci/jdk.internal.jvmci.meta/src/jdk/internal/jvmci/meta/NullConstant.java Mon Aug 31 13:36:07 2015 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2015, 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 @@ -25,10 +25,14 @@ /** * The implementation type of the {@link JavaConstant#NULL_POINTER null constant}. */ -final class NullConstant extends AbstractValue implements JavaConstant { +final class NullConstant implements JavaConstant { protected NullConstant() { - super(LIRKind.reference(Kind.Object)); + } + + @Override + public Kind getKind() { + return Kind.Object; } @Override
--- a/jvmci/jdk.internal.jvmci.meta/src/jdk/internal/jvmci/meta/PrimitiveConstant.java Sun Aug 30 20:15:02 2015 -0700 +++ b/jvmci/jdk.internal.jvmci.meta/src/jdk/internal/jvmci/meta/PrimitiveConstant.java Mon Aug 31 13:36:07 2015 +0200 @@ -28,7 +28,9 @@ * Represents a primitive constant value, such as an integer or floating point number, within the * compiler and across the compiler/runtime interface. */ -public class PrimitiveConstant extends AbstractValue implements JavaConstant, SerializableConstant { +public class PrimitiveConstant implements JavaConstant, SerializableConstant { + + private final Kind kind; /** * The boxed primitive value as a {@code long}. For {@code float} and {@code double} values, @@ -38,13 +40,18 @@ private final long primitive; protected PrimitiveConstant(Kind kind, long primitive) { - super(LIRKind.value(kind)); this.primitive = primitive; + this.kind = kind; assert kind.isPrimitive() || kind == Kind.Illegal; } @Override + public Kind getKind() { + return kind; + } + + @Override public boolean isNull() { return false; } @@ -150,7 +157,14 @@ @Override public boolean equals(Object o) { - return o == this || (o instanceof PrimitiveConstant && super.equals(o) && primitive == ((PrimitiveConstant) o).primitive); + if (o == this) { + return true; + } + if (!(o instanceof PrimitiveConstant)) { + return false; + } + PrimitiveConstant other = (PrimitiveConstant) o; + return this.kind.equals(other.kind) && this.primitive == other.primitive; } @Override