Mercurial > hg > graal-compiler
changeset 9745:b9c5ce8d552d
ForeignCallNode kills all memory locations
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Thu, 16 May 2013 20:23:27 +0200 |
parents | 8342b10b9cc3 |
children | 82e3c8d5c77f |
files | graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ForeignCallNode.java |
diffstat | 1 files changed, 7 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- 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<ValueNode> 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()];