Mercurial > hg > graal-jvmci-8
changeset 21962:a286f49a92c9
Delete some dead code and fixed exact arraycopy check
author | Tom Rodriguez <tom.rodriguez@oracle.com> |
---|---|
date | Fri, 12 Jun 2015 17:01:15 -0700 |
parents | 9a73e6176063 |
children | bb3f0968303c |
files | graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/DefaultHotSpotLoweringProvider.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/arraycopy/ArrayCopySnippets.java graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/BasicArrayCopyNode.java |
diffstat | 3 files changed, 4 insertions(+), 42 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/DefaultHotSpotLoweringProvider.java Sat Jun 13 01:32:44 2015 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/DefaultHotSpotLoweringProvider.java Fri Jun 12 17:01:15 2015 -0700 @@ -157,9 +157,7 @@ } else if (n instanceof ArrayCopyNode) { arraycopySnippets.lower((ArrayCopyNode) n, tool); } else if (n instanceof ArrayCopySlowPathNode) { - ArrayCopySlowPathNode slowpath = (ArrayCopySlowPathNode) n; - // FrameState stateAfter = slowpath.stateAfter(); - arraycopySnippets.lower(slowpath, tool); + arraycopySnippets.lower((ArrayCopySlowPathNode) n, tool); } else if (n instanceof G1PreWriteBarrier) { writeBarrierSnippets.lower((G1PreWriteBarrier) n, registers, tool); } else if (n instanceof G1PostWriteBarrier) {
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/arraycopy/ArrayCopySnippets.java Sat Jun 13 01:32:44 2015 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/arraycopy/ArrayCopySnippets.java Fri Jun 12 17:01:15 2015 -0700 @@ -22,15 +22,6 @@ */ package com.oracle.graal.hotspot.replacements.arraycopy; -import com.oracle.jvmci.code.TargetDescription; -import com.oracle.jvmci.meta.NamedLocationIdentity; -import com.oracle.jvmci.meta.DeoptimizationReason; -import com.oracle.jvmci.meta.ResolvedJavaType; -import com.oracle.jvmci.meta.LocationIdentity; -import com.oracle.jvmci.meta.ResolvedJavaMethod; -import com.oracle.jvmci.meta.DeoptimizationAction; -import com.oracle.jvmci.meta.Kind; - import static com.oracle.graal.compiler.common.GraalOptions.*; import static com.oracle.graal.hotspot.replacements.HotSpotReplacementsUtil.*; import static com.oracle.graal.nodes.extended.BranchProbabilityNode.*; @@ -44,24 +35,21 @@ import com.oracle.graal.hotspot.meta.*; import com.oracle.graal.hotspot.nodes.type.*; import com.oracle.graal.hotspot.word.*; -import com.oracle.graal.loop.phases.*; import com.oracle.graal.nodes.*; import com.oracle.graal.nodes.extended.*; import com.oracle.graal.nodes.java.*; import com.oracle.graal.nodes.spi.*; import com.oracle.graal.nodes.type.*; -import com.oracle.graal.phases.common.*; -import com.oracle.graal.phases.tiers.*; import com.oracle.graal.replacements.*; import com.oracle.graal.replacements.Snippet.ConstantParameter; import com.oracle.graal.replacements.SnippetTemplate.Arguments; import com.oracle.graal.replacements.SnippetTemplate.SnippetInfo; import com.oracle.graal.replacements.nodes.*; import com.oracle.graal.word.*; +import com.oracle.jvmci.code.*; import com.oracle.jvmci.common.*; -import com.oracle.jvmci.debug.*; -import com.oracle.jvmci.debug.Debug.Scope; import com.oracle.jvmci.hotspot.*; +import com.oracle.jvmci.meta.*; public class ArrayCopySnippets implements Snippets { @@ -421,30 +409,6 @@ return length.isConstant() && length.asJavaConstant().asInt() <= 8 && length.asJavaConstant().asInt() != 0; } - private static void unrollFixedLengthLoop(StructuredGraph snippetGraph, int length, LoweringTool tool) { - ParameterNode lengthParam = snippetGraph.getParameter(4); - if (lengthParam != null) { - snippetGraph.replaceFloating(lengthParam, ConstantNode.forInt(length, snippetGraph)); - } - // the canonicalization before loop unrolling is needed to propagate the length into - // additions, etc. - PhaseContext context = new PhaseContext(tool.getMetaAccess(), tool.getConstantReflection(), tool.getLowerer(), tool.getReplacements(), tool.getStampProvider()); - new CanonicalizerPhase().apply(snippetGraph, context); - new LoopFullUnrollPhase(new CanonicalizerPhase()).apply(snippetGraph, context); - new CanonicalizerPhase().apply(snippetGraph, context); - } - - void unrollSnippet(final LoweringTool tool, StructuredGraph snippetGraph, ArrayCopyNode arraycopy) { - if (shouldUnroll(arraycopy.getLength())) { - final StructuredGraph copy = snippetGraph; - try (Scope s = Debug.scope("ArrayCopySnippetSpecialization", snippetGraph.method())) { - unrollFixedLengthLoop(copy, arraycopy.getLength().asJavaConstant().asInt(), tool); - } catch (Throwable e) { - throw Debug.handle(e); - } - } - } - public void lower(ArrayCopyNode arraycopy, LoweringTool tool) { Kind componentKind = selectComponentKind(arraycopy); SnippetInfo snippetInfo = null;
--- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/BasicArrayCopyNode.java Sat Jun 13 01:32:44 2015 +0200 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/BasicArrayCopyNode.java Fri Jun 12 17:01:15 2015 -0700 @@ -163,7 +163,7 @@ if (srcType == null || !srcType.isArray() || destType == null || !destType.isArray()) { return false; } - if (srcType.getComponentType().getKind().isPrimitive() || getSource() == getDestination()) { + if ((srcType.getComponentType().getKind().isPrimitive() && destType.getComponentType().equals(srcType.getComponentType())) || getSource() == getDestination()) { return true; }