changeset 11419:2fac92eb4559

limit length of arraycopy snippet unrolling
author Lukas Stadler <lukas.stadler@jku.at>
date Thu, 22 Aug 2013 14:45:40 +0200
parents 8933659076d3
children 7c4c1a7c875a
files graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ArrayCopyNode.java
diffstat 1 files changed, 2 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ArrayCopyNode.java	Wed Aug 21 15:31:10 2013 +0200
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ArrayCopyNode.java	Thu Aug 22 14:45:40 2013 +0200
@@ -32,6 +32,7 @@
 import com.oracle.graal.nodes.spi.*;
 import com.oracle.graal.nodes.type.*;
 import com.oracle.graal.nodes.virtual.*;
+import com.oracle.graal.phases.*;
 import com.oracle.graal.phases.common.*;
 import com.oracle.graal.phases.tiers.*;
 import com.oracle.graal.replacements.nodes.*;
@@ -105,7 +106,7 @@
         } else {
             assert snippetGraph != null : "ArrayCopySnippets should be installed";
 
-            if (getLength().isConstant()) {
+            if (getLength().isConstant() && getLength().asConstant().asInt() <= GraalOptions.MaximumEscapeAnalysisArrayLength.getValue()) {
                 snippetGraph = snippetGraph.copy();
                 unrollFixedLengthLoop(snippetGraph, getLength().asConstant().asInt(), tool);
             }