Top Description Inners Fields Constructors Methods
org.graalvm.word

public abstract Class LocationIdentity

extends Object
Class Inheritance
Known Direct Subclasses
org.graalvm.word.LocationIdentity.AnyLocationIdentity, org.graalvm.word.LocationIdentity.InitLocationIdentity

Marker interface for location identities. A different location identity of two memory accesses guarantees that the two accesses do not interfere.

Clients of LocationIdentity must use equals(Object), not ==, when comparing two LocationIdentity values for equality. Likewise, they must not use java.util.IdentityHashMaps with LocationIdentity values as keys.

Since
19.0

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static class
private static class

Field Summary

Modifier and TypeField and Description
public static final LocationIdentity
ANY_LOCATION

Indicates that the given location is the union of all possible mutable locations.

public static final LocationIdentity
INIT_LOCATION

Location only allowed to be used for writes.

Constructor Summary

AccessConstructor and Description
protected
LocationIdentity()

Creates a new location identity.

Method Summary

Modifier and TypeMethod and Description
public static LocationIdentity
any()

Indicates that the given location is the union of all possible mutable locations.

public static LocationIdentity
init()

Location only allowed to be used for writes.

public final boolean
isAny()

Returns true if this location identity is any.

public abstract boolean
isImmutable()

Denotes a location is unchanging in all cases.

public final boolean
isInit()

Returns true if this location identity is init.

public final boolean
isMutable()

The inversion of isImmutable.

public final boolean
isSingle()

Returns true if this location identity is not any.

public final boolean
overlaps(LocationIdentity other)

Returns true if the memory slice denoted by this location identity may overlap with the provided other location identity.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

ANY_LOCATIONback to summary
public static final LocationIdentity ANY_LOCATION

Indicates that the given location is the union of all possible mutable locations. A write to such a location kill all reads from mutable locations and a read from this location is killed by any write (except for initialization writes).

Since
19.0
INIT_LOCATIONback to summary
public static final LocationIdentity INIT_LOCATION

Location only allowed to be used for writes. Indicates that a completely new memory location is written. Kills no read. The previous value at the given location must be either uninitialized or null. Writes to this location do not need a GC pre-barrier.

Since
19.0

Constructor Detail

LocationIdentityback to summary
protected LocationIdentity()

Creates a new location identity. Subclasses are responsible to provide proper implementations of equals and hashCode.

Since
19.0

Method Detail

anyback to summary
public static LocationIdentity any()

Indicates that the given location is the union of all possible mutable locations. A write to such a location kill all reads from mutable locations and a read from this location is killed by any write (except for initialization writes).

Since
19.0
initback to summary
public static LocationIdentity init()

Location only allowed to be used for writes. Indicates that a completely new memory location is written. Kills no read. The previous value at the given location must be either uninitialized or null. Writes to this location do not need a GC pre-barrier.

Since
19.0
isAnyback to summary
public final boolean isAny()

Returns true if this location identity is any.

Since
19.0
isImmutableback to summary
public abstract boolean isImmutable()

Denotes a location is unchanging in all cases. Not that this is different than the Java notion of final which only requires definite assignment.

Since
19.0
isInitback to summary
public final boolean isInit()

Returns true if this location identity is init.

Since
19.0
isMutableback to summary
public final boolean isMutable()

The inversion of isImmutable.

Since
19.0
isSingleback to summary
public final boolean isSingle()

Returns true if this location identity is not any.

Since
19.0
overlapsback to summary
public final boolean overlaps(LocationIdentity other)

Returns true if the memory slice denoted by this location identity may overlap with the provided other location identity.

Since
19.0
org.graalvm.word back to summary

private final Class LocationIdentity.AnyLocationIdentity

extends LocationIdentity
Class Inheritance

Field Summary

Inherited from org.graalvm.word.LocationIdentity:
ANY_LOCATIONINIT_LOCATION

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public boolean
isImmutable()

Implements abstract org.graalvm.word.LocationIdentity.isImmutable.

Denotes a location is unchanging in all cases.

public String
toString()

Overrides java.lang.Object.toString.

Returns a string representation of the object.

Inherited from org.graalvm.word.LocationIdentity:
anyinitisAnyisInitisMutableisSingleoverlaps

Constructor Detail

AnyLocationIdentityback to summary
private AnyLocationIdentity()

Method Detail

isImmutableback to summary
public boolean isImmutable()

Implements abstract org.graalvm.word.LocationIdentity.isImmutable.

Doc from org.graalvm.word.LocationIdentity.isImmutable.

Denotes a location is unchanging in all cases. Not that this is different than the Java notion of final which only requires definite assignment.

Annotations
@Override
toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Doc from java.lang.Object.toString.

Returns a string representation of the object. Satisfying this method's contract implies a non-null result must be returned.

Returns:String

a string representation of the object

Annotations
@Override
org.graalvm.word back to summary

private final Class LocationIdentity.InitLocationIdentity

extends LocationIdentity
Class Inheritance

Field Summary

Inherited from org.graalvm.word.LocationIdentity:
ANY_LOCATIONINIT_LOCATION

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public boolean
isImmutable()

Implements abstract org.graalvm.word.LocationIdentity.isImmutable.

Denotes a location is unchanging in all cases.

public String
toString()

Overrides java.lang.Object.toString.

Returns a string representation of the object.

Inherited from org.graalvm.word.LocationIdentity:
anyinitisAnyisInitisMutableisSingleoverlaps

Constructor Detail

InitLocationIdentityback to summary
private InitLocationIdentity()

Method Detail

isImmutableback to summary
public boolean isImmutable()

Implements abstract org.graalvm.word.LocationIdentity.isImmutable.

Doc from org.graalvm.word.LocationIdentity.isImmutable.

Denotes a location is unchanging in all cases. Not that this is different than the Java notion of final which only requires definite assignment.

Annotations
@Override
toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Doc from java.lang.Object.toString.

Returns a string representation of the object. Satisfying this method's contract implies a non-null result must be returned.

Returns:String

a string representation of the object

Annotations
@Override