# HG changeset patch # User Thomas Wuerthinger # Date 1368594613 25200 # Node ID ce80e563cd224589e86752075af597fb67513d81 # Parent a39e67ca883b3a52b36718413db61bd82b2e5965 Remove unused read nodes. diff -r a39e67ca883b -r ce80e563cd22 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ReadNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ReadNode.java Tue May 14 23:18:00 2013 -0400 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ReadNode.java Tue May 14 22:10:13 2013 -0700 @@ -23,6 +23,7 @@ package com.oracle.graal.nodes.extended; import com.oracle.graal.api.meta.*; +import com.oracle.graal.debug.*; import com.oracle.graal.graph.*; import com.oracle.graal.nodes.*; import com.oracle.graal.nodes.extended.LocationNode.LocationIdentity; @@ -72,6 +73,10 @@ public static ValueNode canonicalizeRead(ValueNode read, LocationNode location, ValueNode object, CanonicalizerTool tool) { MetaAccessProvider runtime = tool.runtime(); + if (read.usages().count() == 0) { + // Read without usages can be savely removed. + return null; + } if (runtime != null && object != null && object.isConstant()) { if (location.getLocationIdentity() == LocationNode.FINAL_LOCATION && location instanceof ConstantLocationNode) { long displacement = ((ConstantLocationNode) location).getDisplacement();