Mercurial > hg > graal-compiler
changeset 21390:f9024b74dd9e
Allow subclasses of LocationIdentity to provide immuatability information
author | Christian Wimmer <christian.wimmer@oracle.com> |
---|---|
date | Thu, 14 May 2015 16:16:43 -0700 |
parents | 77a775ebd6d4 |
children | 8cc395785d0a |
files | graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/LocationIdentity.java graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/NamedLocationIdentity.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotInvocationPlugins.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaFieldImpl.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaMethodImpl.java graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/ObjectLocationIdentity.java |
diffstat | 6 files changed, 20 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/LocationIdentity.java Thu May 14 16:14:41 2015 -0700 +++ b/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/LocationIdentity.java Thu May 14 16:16:43 2015 -0700 @@ -54,26 +54,18 @@ */ public static final LocationIdentity ARRAY_LENGTH_LOCATION = NamedLocationIdentity.immutable("[].length"); - protected final boolean immutable; - public static LocationIdentity any() { return ANY_LOCATION; } - protected LocationIdentity(boolean immutable) { - this.immutable = immutable; - } - /** * Denotes a location is unchanging in all cases. Not that this is different than the Java * notion of final which only requires definite assignment. */ - public final boolean isImmutable() { - return immutable; - } + public abstract boolean isImmutable(); public final boolean isMutable() { - return !immutable; + return !isImmutable(); } public final boolean isAny() {
--- a/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/NamedLocationIdentity.java Thu May 14 16:14:41 2015 -0700 +++ b/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/NamedLocationIdentity.java Thu May 14 16:16:43 2015 -0700 @@ -46,11 +46,12 @@ } } - protected final String name; + private final String name; + private final boolean immutable; private NamedLocationIdentity(String name, boolean immutable) { - super(immutable); this.name = name; + this.immutable = immutable; } /** @@ -87,6 +88,11 @@ } @Override + public boolean isImmutable() { + return immutable; + } + + @Override public String toString() { return name + (isImmutable() ? ":final" : ""); }
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotInvocationPlugins.java Thu May 14 16:14:41 2015 -0700 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotInvocationPlugins.java Thu May 14 16:16:43 2015 -0700 @@ -36,7 +36,6 @@ import com.oracle.graal.graphbuilderconf.MethodIdMap.Receiver; import com.oracle.graal.hotspot.*; import com.oracle.graal.hotspot.phases.*; -import com.oracle.graal.hotspot.replacements.*; import com.oracle.graal.nodes.*; import com.oracle.graal.nodes.CallTargetNode.InvokeKind; import com.oracle.graal.nodes.type.*;
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaFieldImpl.java Thu May 14 16:14:41 2015 -0700 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaFieldImpl.java Thu May 14 16:16:43 2015 -0700 @@ -54,11 +54,15 @@ HotSpotResolvedJavaField inner; public FieldLocationIdentity(HotSpotResolvedJavaFieldImpl inner) { - super(false); this.inner = inner; } @Override + public boolean isImmutable() { + return false; + } + + @Override public boolean equals(Object obj) { if (this == obj) { return true;
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaMethodImpl.java Thu May 14 16:14:41 2015 -0700 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaMethodImpl.java Thu May 14 16:16:43 2015 -0700 @@ -36,7 +36,6 @@ import com.oracle.graal.debug.*; import com.oracle.graal.graphbuilderconf.*; import com.oracle.graal.hotspot.*; -import com.oracle.graal.hotspot.debug.*; import com.oracle.graal.nodes.*; /**
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/ObjectLocationIdentity.java Thu May 14 16:14:41 2015 -0700 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/ObjectLocationIdentity.java Thu May 14 16:16:43 2015 -0700 @@ -53,11 +53,15 @@ } private ObjectLocationIdentity(JavaConstant object) { - super(false); this.object = object; } @Override + public boolean isImmutable() { + return false; + } + + @Override public String toString() { return "Identity(" + object + ")"; }