# HG changeset patch # User Gilles Duboscq # Date 1386766943 -3600 # Node ID 492c9907b9bfaf2ba851e3108b06c35ee289010f # Parent 1734954cc73d52dc971823e0062ba1d2b91e2887 Move Access.setNullCheck to FixedAccessNode.setNullCheck. FloatingAccessNode.asFixedNode retruns a FixedAccessNode diff -r 1734954cc73d -r 492c9907b9bf graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/Access.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/Access.java Wed Dec 11 13:48:42 2013 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/Access.java Wed Dec 11 14:02:23 2013 +0100 @@ -30,6 +30,4 @@ LocationNode nullCheckLocation(); - void setNullCheck(boolean check); - } diff -r 1734954cc73d -r 492c9907b9bf graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/FloatingAccessNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/FloatingAccessNode.java Wed Dec 11 13:48:42 2013 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/FloatingAccessNode.java Wed Dec 11 14:02:23 2013 +0100 @@ -31,7 +31,6 @@ @Input private ValueNode object; @Input private LocationNode location; @Input private FrameState deoptState; - private boolean nullCheck; private BarrierType barrierType; private boolean compressible; @@ -51,14 +50,6 @@ return location.getLocationIdentity(); } - public boolean getNullCheck() { - return nullCheck; - } - - public void setNullCheck(boolean check) { - this.nullCheck = check; - } - public FloatingAccessNode(ValueNode object, LocationNode location, Stamp stamp) { super(stamp); this.object = object; @@ -75,7 +66,7 @@ @Override public boolean canDeoptimize() { - return nullCheck; + return false; } @Override @@ -103,5 +94,5 @@ return compressible; } - public abstract Access asFixedNode(); + public abstract FixedAccessNode asFixedNode(); } diff -r 1734954cc73d -r 492c9907b9bf graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/FloatingReadNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/FloatingReadNode.java Wed Dec 11 13:48:42 2013 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/FloatingReadNode.java Wed Dec 11 14:02:23 2013 +0100 @@ -71,7 +71,7 @@ } @Override - public Access asFixedNode() { + public FixedAccessNode asFixedNode() { return graph().add(new ReadNode(object(), nullCheckLocation(), stamp(), getGuard(), getBarrierType(), isCompressible())); } diff -r 1734954cc73d -r 492c9907b9bf graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/FloatingReadPhase.java --- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/FloatingReadPhase.java Wed Dec 11 13:48:42 2013 +0100 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/FloatingReadPhase.java Wed Dec 11 14:02:23 2013 +0100 @@ -226,7 +226,6 @@ if (accessNode.canFloat()) { MemoryNode lastLocationAccess = state.getLastLocationAccess(locationIdentity); FloatingAccessNode floatingNode = accessNode.asFloatingNode(lastLocationAccess); - floatingNode.setNullCheck(accessNode.getNullCheck()); ValueAnchorNode anchor = null; GuardingNode guard = accessNode.getGuard(); if (guard != null) { diff -r 1734954cc73d -r 492c9907b9bf graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/GuardLoweringPhase.java --- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/GuardLoweringPhase.java Wed Dec 11 13:48:42 2013 +0100 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/GuardLoweringPhase.java Wed Dec 11 14:02:23 2013 +0100 @@ -95,12 +95,13 @@ GuardNode guard = nullGuarded.get(access.object()); if (guard != null && isImplicitNullCheck(access.nullCheckLocation())) { access.setGuard(guard.getGuard()); - Access fixedAccess = access; + FixedAccessNode fixedAccess; if (access instanceof FloatingAccessNode) { fixedAccess = ((FloatingAccessNode) access).asFixedNode(); - replaceCurrent((FixedWithNextNode) fixedAccess.asNode()); + replaceCurrent(fixedAccess.asNode()); + } else { + fixedAccess = (FixedAccessNode) access; } - assert fixedAccess instanceof FixedNode; fixedAccess.setNullCheck(true); LogicNode condition = guard.condition(); guard.replaceAndDelete(fixedAccess.asNode());