Mercurial > hg > graal-compiler
changeset 22497:32ccf2d5ed49
speculate that no classes with finalizers have been loaded when compiling Object.<init>
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Mon, 24 Aug 2015 09:28:29 +0200 |
parents | 47f46b5ae838 |
children | 280b0fbd8a40 |
files | graal/com.oracle.graal.java/src/com/oracle/graal/java/BytecodeParser.java |
diffstat | 1 files changed, 5 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/BytecodeParser.java Thu Aug 20 10:13:13 2015 -0700 +++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/BytecodeParser.java Mon Aug 24 09:28:29 2015 +0200 @@ -38,6 +38,7 @@ import jdk.internal.jvmci.code.*; import jdk.internal.jvmci.common.*; import jdk.internal.jvmci.compiler.Compiler; + import com.oracle.graal.debug.*; import com.oracle.graal.debug.Debug.Scope; @@ -1646,7 +1647,10 @@ private void beforeReturn(ValueNode x, Kind kind) { if (graph.method() != null && graph.method().isJavaLangObjectInit()) { - append(new RegisterFinalizerNode(frameState.loadLocal(0, Kind.Object))); + ValueNode receiver = frameState.loadLocal(0, Kind.Object); + if (RegisterFinalizerNode.mayHaveFinalizer(receiver, graph.getAssumptions())) { + append(new RegisterFinalizerNode(receiver)); + } } if (graphBuilderConfig.insertNonSafepointDebugInfo() && !parsingIntrinsic()) { genInfoPointNode(InfopointReason.METHOD_END, x);