< 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 >