Mercurial > hg > truffle
diff graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ArraySubstitutions.java @ 21925:64475dbf6aec
Move instantiation checks from methods substitutions to the lowering of DynamicNewInstanceNode and DynamicNewArrayNode, so that Unsafe.allocateInstance and Array.newInstance can be intrinsified to a single node.
author | Christian Wimmer <christian.wimmer@oracle.com> |
---|---|
date | Wed, 10 Jun 2015 17:23:19 -0700 |
parents | 2c6802ac343c |
children |
line wrap: on
line diff
--- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ArraySubstitutions.java Thu Jun 11 01:21:44 2015 +0200 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ArraySubstitutions.java Wed Jun 10 17:23:19 2015 -0700 @@ -22,9 +22,6 @@ */ package com.oracle.graal.replacements; -import static com.oracle.graal.nodes.extended.BranchProbabilityNode.*; - -import com.oracle.graal.api.directives.*; import com.oracle.graal.nodes.*; import com.oracle.graal.nodes.java.*; import com.oracle.jvmci.meta.*; @@ -36,18 +33,6 @@ */ public class ArraySubstitutions { - public static Object newInstance(Class<?> componentType, int length) throws NegativeArraySizeException { - // The error cases must be handled here since DynamicNewArrayNode can only deoptimize the - // caller in response to exceptions. - if (probability(SLOW_PATH_PROBABILITY, length < 0)) { - DeoptimizeNode.deopt(DeoptimizationAction.None, DeoptimizationReason.RuntimeConstraint); - } - if (probability(SLOW_PATH_PROBABILITY, componentType == void.class)) { - DeoptimizeNode.deopt(DeoptimizationAction.None, DeoptimizationReason.RuntimeConstraint); - } - return DynamicNewArrayNode.newArray(GraalDirectives.guardingNonNull(componentType), length); - } - public static int getLength(Object array) { if (!array.getClass().isArray()) { DeoptimizeNode.deopt(DeoptimizationAction.None, DeoptimizationReason.RuntimeConstraint);