Mercurial > hg > truffle
changeset 5822:ec65d0d0c873
moved HIR lowering of Invokes into HotspotRuntime
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Thu, 12 Jul 2012 12:04:27 +0200 |
parents | 0cd337450409 |
children | f238fe91dc7f |
files | graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeNode.java graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeWithExceptionNode.java |
diffstat | 3 files changed, 10 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java Thu Jul 12 11:55:03 2012 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java Thu Jul 12 12:04:27 2012 +0200 @@ -231,6 +231,14 @@ ArrayLengthNode arrayLengthNode = (ArrayLengthNode) n; SafeReadNode safeReadArrayLength = safeReadArrayLength(arrayLengthNode.array(), StructuredGraph.INVALID_GRAPH_ID); graph.replaceFixedWithFixed(arrayLengthNode, safeReadArrayLength); + } else if (n instanceof Invoke) { + Invoke invoke = (Invoke) n; + MethodCallTargetNode callTarget = invoke.callTarget(); + NodeInputList<ValueNode> parameters = callTarget.arguments(); + ValueNode firstParam = parameters.size() <= 0 ? null : parameters.get(0); + if (!callTarget.isStatic() && firstParam.kind() == Kind.Object && !firstParam.objectStamp().nonNull()) { + invoke.node().dependencies().add(tool.createNullCheckGuard(firstParam, invoke.leafGraphId())); + } } else if (n instanceof LoadFieldNode) { LoadFieldNode field = (LoadFieldNode) n; int displacement = ((HotSpotResolvedJavaField) field.field()).offset();
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeNode.java Thu Jul 12 11:55:03 2012 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeNode.java Thu Jul 12 12:04:27 2012 +0200 @@ -97,11 +97,7 @@ @Override public void lower(LoweringTool tool) { - NodeInputList<ValueNode> parameters = callTarget.arguments(); - ValueNode firstParam = parameters.size() <= 0 ? null : parameters.get(0); - if (!callTarget.isStatic() && firstParam.kind() == Kind.Object && !firstParam.objectStamp().nonNull()) { - dependencies().add(tool.createNullCheckGuard(firstParam, leafGraphId)); - } + tool.getRuntime().lower(this, tool); } @Override
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeWithExceptionNode.java Thu Jul 12 11:55:03 2012 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeWithExceptionNode.java Thu Jul 12 12:04:27 2012 +0200 @@ -128,11 +128,7 @@ @Override public void lower(LoweringTool tool) { - NodeInputList<ValueNode> parameters = callTarget.arguments(); - ValueNode firstParam = parameters.size() <= 0 ? null : parameters.get(0); - if (!callTarget.isStatic() && firstParam.kind() == Kind.Object && !firstParam.objectStamp().nonNull()) { - dependencies().add(tool.createNullCheckGuard(firstParam, leafGraphId)); - } + tool.getRuntime().lower(this, tool); } @Override