comparison graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ArraySubstitutions.java @ 21644:2c6802ac343c

Use graph builder plugin instead of node intrinsic for guarding non-null in snippets.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Mon, 01 Jun 2015 22:12:57 +0200
parents 48c1ebd24120
children 64475dbf6aec
comparison
equal deleted inserted replaced
21625:0a203897b112 21644:2c6802ac343c
22 */ 22 */
23 package com.oracle.graal.replacements; 23 package com.oracle.graal.replacements;
24 24
25 import static com.oracle.graal.nodes.extended.BranchProbabilityNode.*; 25 import static com.oracle.graal.nodes.extended.BranchProbabilityNode.*;
26 26
27 import com.oracle.graal.api.directives.*;
27 import com.oracle.graal.nodes.*; 28 import com.oracle.graal.nodes.*;
28 import com.oracle.graal.nodes.java.*; 29 import com.oracle.graal.nodes.java.*;
29 import com.oracle.jvmci.meta.*; 30 import com.oracle.jvmci.meta.*;
30 31
31 // JaCoCo Exclude 32 // JaCoCo Exclude
42 DeoptimizeNode.deopt(DeoptimizationAction.None, DeoptimizationReason.RuntimeConstraint); 43 DeoptimizeNode.deopt(DeoptimizationAction.None, DeoptimizationReason.RuntimeConstraint);
43 } 44 }
44 if (probability(SLOW_PATH_PROBABILITY, componentType == void.class)) { 45 if (probability(SLOW_PATH_PROBABILITY, componentType == void.class)) {
45 DeoptimizeNode.deopt(DeoptimizationAction.None, DeoptimizationReason.RuntimeConstraint); 46 DeoptimizeNode.deopt(DeoptimizationAction.None, DeoptimizationReason.RuntimeConstraint);
46 } 47 }
47 return DynamicNewArrayNode.newArray(GuardingPiNode.asNonNullClass(componentType), length); 48 return DynamicNewArrayNode.newArray(GraalDirectives.guardingNonNull(componentType), length);
48 } 49 }
49 50
50 public static int getLength(Object array) { 51 public static int getLength(Object array) {
51 if (!array.getClass().isArray()) { 52 if (!array.getClass().isArray()) {
52 DeoptimizeNode.deopt(DeoptimizationAction.None, DeoptimizationReason.RuntimeConstraint); 53 DeoptimizeNode.deopt(DeoptimizationAction.None, DeoptimizationReason.RuntimeConstraint);