diff graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewArrayNode.java @ 20155:6a84da35bc84

take replacements into account in NewArrayNode.virtualize
author Lukas Stadler <lukas.stadler@oracle.com>
date Thu, 02 Apr 2015 14:33:43 +0200
parents 8fc336a04d77
children 48c1ebd24120
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewArrayNode.java	Thu Apr 02 14:33:31 2015 +0200
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewArrayNode.java	Thu Apr 02 14:33:43 2015 +0200
@@ -69,8 +69,9 @@
 
     @Override
     public void virtualize(VirtualizerTool tool) {
-        if (length().asConstant() != null) {
-            final int constantLength = length().asJavaConstant().asInt();
+        ValueNode replacedLength = tool.getReplacedValue(length());
+        if (replacedLength.asConstant() != null) {
+            final int constantLength = replacedLength.asJavaConstant().asInt();
             if (constantLength >= 0 && constantLength < tool.getMaximumEntryCount()) {
                 ValueNode[] state = new ValueNode[constantLength];
                 ConstantNode defaultForKind = constantLength == 0 ? null : defaultElementValue();