public interface MemoryKill extends ValueNodeInterface, MemoryKillMarker
Modifier and Type | Interface and Description |
---|---|
static class |
MemoryKill.NoLocation |
Modifier and Type | Field and Description |
---|---|
static org.graalvm.word.LocationIdentity[] |
MULTI_KILL_NO_LOCATION
Special
LocationIdentity used to express that a MultiMemoryKill actually does
not kill any location. |
static org.graalvm.word.LocationIdentity |
NO_LOCATION
Special
LocationIdentity used to express that this location is never killing
anything, thus it is LocationIdentity.isImmutable() true and should only be
used very carefully. |
Modifier and Type | Method and Description |
---|---|
static MultiMemoryKill |
asMultiMemoryKill(Node n) |
static SingleMemoryKill |
asSingleMemoryKill(Node n) |
static boolean |
isMemoryKill(Node n)
Determine if the given node represents a
MemoryKill in Graal IR. |
static boolean |
isMultiMemoryKill(Node n) |
static boolean |
isSingleMemoryKill(Node n) |
asNode
static final org.graalvm.word.LocationIdentity NO_LOCATION
LocationIdentity
used to express that this location is never killing
anything, thus it is LocationIdentity.isImmutable()
true
and should only be
used very carefully.static final org.graalvm.word.LocationIdentity[] MULTI_KILL_NO_LOCATION
LocationIdentity
used to express that a MultiMemoryKill
actually does
not kill any location. Using this location can be handy to express that a memory kill only
kills under certain, parameterized, conditions. Should be used with caution.static boolean isMemoryKill(Node n)
MemoryKill
in Graal IR. A node is a memory
kill if it implements the memory kill API and actually kills a location identity other than
MemoryKill.NoLocation
.static boolean isSingleMemoryKill(Node n)
static boolean isMultiMemoryKill(Node n)
static SingleMemoryKill asSingleMemoryKill(Node n)
static MultiMemoryKill asMultiMemoryKill(Node n)