Mercurial > hg > graal-compiler
changeset 8400:afb190b1eeb3
added RegisterFinalizer.virtualize
author | Lukas Stadler <lukas.stadler@jku.at> |
---|---|
date | Mon, 11 Mar 2013 18:41:33 +0100 |
parents | 841ae7237a14 |
children | 701290361dad |
files | graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/RegisterFinalizerNode.java |
diffstat | 1 files changed, 9 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/RegisterFinalizerNode.java Wed Mar 20 13:41:44 2013 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/RegisterFinalizerNode.java Mon Mar 11 18:41:33 2013 +0100 @@ -32,7 +32,7 @@ * This node is used to perform the finalizer registration at the end of the java.lang.Object * constructor. */ -public final class RegisterFinalizerNode extends AbstractStateSplit implements StateSplit, Canonicalizable, LIRLowerable { +public final class RegisterFinalizerNode extends AbstractStateSplit implements StateSplit, Canonicalizable, LIRLowerable, Virtualizable { public static final Descriptor REGISTER_FINALIZER = new Descriptor("registerFinalizer", true, void.class, Object.class); @@ -74,4 +74,12 @@ return this; } + + @Override + public void virtualize(VirtualizerTool tool) { + State state = tool.getObjectState(object); + if (state != null && !state.getVirtualObject().type().hasFinalizer()) { + tool.delete(); + } + } }