# HG changeset patch # User Doug Simon # Date 1368728607 -7200 # Node ID b9c5ce8d552dded0530d7b85193bbaf639e2b497 # Parent 8342b10b9cc3c57c14894d2054fe94979c9672d2 ForeignCallNode kills all memory locations diff -r 8342b10b9cc3 -r b9c5ce8d552d graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ForeignCallNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ForeignCallNode.java Thu May 16 18:41:22 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ForeignCallNode.java Thu May 16 20:23:27 2013 +0200 @@ -26,6 +26,7 @@ import com.oracle.graal.api.meta.*; import com.oracle.graal.graph.*; import com.oracle.graal.nodes.*; +import com.oracle.graal.nodes.extended.LocationNode.LocationIdentity; import com.oracle.graal.nodes.spi.*; import com.oracle.graal.nodes.type.*; @@ -33,7 +34,7 @@ * Node for a {@linkplain ForeignCallDescriptor foreign} call. */ @NodeInfo(nameTemplate = "ForeignCall#{p#descriptor/s}") -public class ForeignCallNode extends DeoptimizingFixedWithNextNode implements LIRLowerable, DeoptimizingNode { +public class ForeignCallNode extends DeoptimizingFixedWithNextNode implements LIRLowerable, DeoptimizingNode, MemoryCheckpoint { @Input private final NodeInputList arguments; @@ -54,6 +55,11 @@ } @Override + public LocationIdentity[] getLocationIdentities() { + return new LocationIdentity[]{LocationNode.ANY_LOCATION}; + } + + @Override public void generate(LIRGeneratorTool gen) { ForeignCallLinkage linkage = gen.getRuntime().lookupForeignCall(descriptor); Value[] args = new Value[arguments.size()];