Mercurial > hg > graal-jvmci-8
changeset 11713:972f2e2c797a
Fix a bug in the escape analysis of pi nodes.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Thu, 19 Sep 2013 04:27:31 +0200 |
parents | 0d16339188ef |
children | cb81a0f3407c |
files | graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/PiNode.java |
diffstat | 1 files changed, 8 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/PiNode.java Thu Sep 19 04:11:20 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/PiNode.java Thu Sep 19 04:27:31 2013 +0200 @@ -70,6 +70,14 @@ public void virtualize(VirtualizerTool tool) { State state = tool.getObjectState(object); if (state != null && state.getState() == EscapeState.Virtual) { + ResolvedJavaType virtualObjectType = state.getVirtualObject().type(); + if (this.kind() == Kind.Object) { + ObjectStamp myStamp = ((ObjectStamp) this.stamp()); + ResolvedJavaType myType = myStamp.type(); + if (!myType.isAssignableFrom(virtualObjectType)) { + return; + } + } tool.replaceWithVirtual(state.getVirtualObject()); } }