Mercurial > hg > truffle
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); |