changeset 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 5b2fd4cd7b8f
children 33be8eb8cbd5
files graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewArrayNode.java
diffstat 1 files changed, 3 insertions(+), 2 deletions(-) [+]
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();