< prev index next >
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/arraycopy/ArrayCopySnippets.java
Print this page
@@ -28,11 +28,10 @@
import static org.graalvm.compiler.nodes.extended.BranchProbabilityNode.LIKELY_PROBABILITY;
import static org.graalvm.compiler.nodes.extended.BranchProbabilityNode.NOT_FREQUENT_PROBABILITY;
import static org.graalvm.compiler.nodes.extended.BranchProbabilityNode.SLOW_PATH_PROBABILITY;
import static org.graalvm.compiler.nodes.extended.BranchProbabilityNode.probability;
-import java.lang.reflect.Method;
import java.util.EnumMap;
import jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap;
import org.graalvm.compiler.api.directives.GraalDirectives;
import org.graalvm.compiler.api.replacements.Fold;
@@ -288,11 +287,11 @@
Pointer destHub = loadHub(nonNullDest);
if (probability(SLOW_PATH_PROBABILITY, getReadLayoutHelper(srcHub) != getReadLayoutHelper(destHub))) {
DeoptimizeNode.deopt(DeoptimizationAction.None, DeoptimizationReason.RuntimeConstraint);
}
} else {
- ReplacementsUtil.staticAssert(false, "unknown array type check");
+ ReplacementsUtil.staticAssert(false, "unknown array type check ", arrayTypeCheck);
}
}
static class Counters {
final SnippetCounter checkSuccessCounter;
@@ -382,12 +381,11 @@
checkcastArraycopyWithSlowPathWork = snippet(receiver, "checkcastArraycopyWithSlowPathWork");
genericArraycopyWithSlowPathWork = snippet(receiver, "genericArraycopyWithSlowPathWork");
}
protected SnippetInfo snippet(ArrayCopySnippets receiver, String methodName) {
- SnippetInfo info = snippet(ArrayCopySnippets.class, methodName, receiver, LocationIdentity.any());
- info.setOriginalMethod(originalArraycopy());
+ SnippetInfo info = snippet(ArrayCopySnippets.class, methodName, originalArraycopy(), receiver, LocationIdentity.any());
return info;
}
public void lower(ArrayCopyNode arraycopy, LoweringTool tool) {
JavaKind elementKind = selectComponentKind(arraycopy);
@@ -575,17 +573,15 @@
GraphUtil.killCFG(arraycopy);
}
private ResolvedJavaMethod originalArraycopy() throws GraalError {
if (originalArraycopy == null) {
- Method method;
try {
- method = System.class.getDeclaredMethod("arraycopy", Object.class, int.class, Object.class, int.class, int.class);
- } catch (NoSuchMethodException | SecurityException e) {
+ originalArraycopy = findMethod(providers.getMetaAccess(), System.class, "arraycopy");
+ } catch (SecurityException e) {
throw new GraalError(e);
}
- originalArraycopy = providers.getMetaAccess().lookupJavaMethod(method);
}
return originalArraycopy;
}
}
}
< prev index next >