# HG changeset patch # User Christian Wimmer # Date 1444175529 25200 # Node ID c69bbc0b9ea70a15a52c384dfab007df33a120a9 # Parent a11240648dc37fbb4459be0ea70a1c431b5aeedc Make methods in DefaultJavaLoweringProvider to avoid having them in HotSpotLoweringProvider diff -r a11240648dc3 -r c69bbc0b9ea7 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/DefaultHotSpotLoweringProvider.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/DefaultHotSpotLoweringProvider.java Wed Sep 30 15:40:22 2015 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/DefaultHotSpotLoweringProvider.java Tue Oct 06 16:52:09 2015 -0700 @@ -411,7 +411,7 @@ } @Override - protected ValueNode staticFieldBase(StructuredGraph graph, ResolvedJavaField f) { + public ValueNode staticFieldBase(StructuredGraph graph, ResolvedJavaField f) { HotSpotResolvedJavaField field = (HotSpotResolvedJavaField) f; JavaConstant base = field.getDeclaringClass().getJavaClass(); return ConstantNode.forConstant(base, metaAccess, graph); @@ -467,12 +467,12 @@ } @Override - protected BarrierType fieldInitializationBarrier(JavaKind entryKind) { + public BarrierType fieldInitializationBarrier(JavaKind entryKind) { return (entryKind == JavaKind.Object && !config().useDeferredInitBarriers) ? BarrierType.IMPRECISE : BarrierType.NONE; } @Override - protected BarrierType arrayInitializationBarrier(JavaKind entryKind) { + public BarrierType arrayInitializationBarrier(JavaKind entryKind) { return (entryKind == JavaKind.Object && !config().useDeferredInitBarriers) ? BarrierType.PRECISE : BarrierType.NONE; } @@ -623,7 +623,7 @@ } @Override - protected int fieldOffset(ResolvedJavaField f) { + public int fieldOffset(ResolvedJavaField f) { HotSpotResolvedJavaField field = (HotSpotResolvedJavaField) f; return field.offset(); } @@ -638,17 +638,17 @@ } @Override - protected int arrayBaseOffset(JavaKind kind) { + public int arrayBaseOffset(JavaKind kind) { return getArrayBaseOffset(kind); } @Override - protected int arrayLengthOffset() { + public int arrayLengthOffset() { return config().arrayOopDescLengthOffset(); } @Override - protected LocationIdentity initLocationIdentity() { + public LocationIdentity initLocationIdentity() { return INIT_LOCATION; } } diff -r a11240648dc3 -r c69bbc0b9ea7 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotLoweringProvider.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotLoweringProvider.java Wed Sep 30 15:40:22 2015 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotLoweringProvider.java Tue Oct 06 16:52:09 2015 -0700 @@ -23,12 +23,7 @@ package com.oracle.graal.hotspot.meta; import jdk.internal.jvmci.hotspot.HotSpotVMConfig; -import jdk.internal.jvmci.meta.JavaKind; -import com.oracle.graal.compiler.common.type.Stamp; -import com.oracle.graal.nodes.StructuredGraph; -import com.oracle.graal.nodes.ValueNode; -import com.oracle.graal.nodes.memory.address.AddressNode; import com.oracle.graal.nodes.spi.LoweringProvider; /** @@ -37,14 +32,4 @@ public interface HotSpotLoweringProvider extends LoweringProvider { void initialize(HotSpotProviders providers, HotSpotVMConfig config); - - int arrayScalingFactor(JavaKind kind); - - AddressNode createArrayAddress(StructuredGraph graph, ValueNode array, JavaKind elementKind, ValueNode index); - - Stamp loadStamp(Stamp stamp, JavaKind kind); - - ValueNode implicitLoadConvert(StructuredGraph graph, JavaKind kind, ValueNode value); - - ValueNode implicitStoreConvert(StructuredGraph graph, JavaKind kind, ValueNode value); } diff -r a11240648dc3 -r c69bbc0b9ea7 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/NewObjectSnippets.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/NewObjectSnippets.java Wed Sep 30 15:40:22 2015 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/NewObjectSnippets.java Tue Oct 06 16:52:09 2015 -0700 @@ -69,6 +69,7 @@ import jdk.internal.jvmci.code.Register; import jdk.internal.jvmci.code.TargetDescription; import jdk.internal.jvmci.common.JVMCIError; +import jdk.internal.jvmci.hotspot.HotSpotJVMCIRuntimeProvider; import jdk.internal.jvmci.hotspot.HotSpotResolvedObjectType; import jdk.internal.jvmci.meta.DeoptimizationAction; import jdk.internal.jvmci.meta.DeoptimizationReason; @@ -83,7 +84,6 @@ import com.oracle.graal.graph.Node.ConstantNodeParameter; import com.oracle.graal.graph.Node.NodeIntrinsic; import com.oracle.graal.hotspot.HotSpotBackend; -import com.oracle.graal.hotspot.meta.HotSpotLoweringProvider; import com.oracle.graal.hotspot.meta.HotSpotProviders; import com.oracle.graal.hotspot.meta.HotSpotRegistersProvider; import com.oracle.graal.hotspot.nodes.DimensionsNode; @@ -523,8 +523,7 @@ JavaKind elementKind = elementType.getJavaKind(); ConstantNode hub = ConstantNode.forConstant(KlassPointerStamp.klassNonNull(), arrayType.klass(), providers.getMetaAccess(), graph); final int headerSize = getArrayBaseOffset(elementKind); - HotSpotLoweringProvider lowerer = (HotSpotLoweringProvider) providers.getLowerer(); - int log2ElementSize = CodeUtil.log2(lowerer.arrayScalingFactor(elementKind)); + int log2ElementSize = CodeUtil.log2(HotSpotJVMCIRuntimeProvider.getArrayIndexScale(elementKind)); Arguments args = new Arguments(allocateArray, graph.getGuardsStage(), tool.getLoweringStage()); args.add("hub", hub); diff -r a11240648dc3 -r c69bbc0b9ea7 graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultJavaLoweringProvider.java --- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultJavaLoweringProvider.java Wed Sep 30 15:40:22 2015 +0200 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultJavaLoweringProvider.java Tue Oct 06 16:52:09 2015 -0700 @@ -142,6 +142,10 @@ providers.getReplacements().registerSnippetTemplateCache(new SnippetCounterNode.SnippetCounterSnippets.Templates(providers, snippetReflection, target)); } + public final TargetDescription getTarget() { + return target; + } + @Override public void lower(Node n, LoweringTool tool) { assert n instanceof Lowerable; @@ -649,11 +653,11 @@ return BarrierType.NONE; } - protected BarrierType fieldInitializationBarrier(JavaKind entryKind) { + public BarrierType fieldInitializationBarrier(JavaKind entryKind) { return entryKind == JavaKind.Object ? BarrierType.IMPRECISE : BarrierType.NONE; } - protected BarrierType arrayInitializationBarrier(JavaKind entryKind) { + public BarrierType arrayInitializationBarrier(JavaKind entryKind) { return entryKind == JavaKind.Object ? BarrierType.PRECISE : BarrierType.NONE; } @@ -681,19 +685,19 @@ return BarrierType.NONE; } - protected abstract int fieldOffset(ResolvedJavaField field); + public abstract int fieldOffset(ResolvedJavaField field); - protected abstract ValueNode staticFieldBase(StructuredGraph graph, ResolvedJavaField field); + public abstract ValueNode staticFieldBase(StructuredGraph graph, ResolvedJavaField field); - protected abstract int arrayLengthOffset(); + public abstract int arrayLengthOffset(); - protected abstract int arrayBaseOffset(JavaKind elementKind); + public abstract int arrayBaseOffset(JavaKind elementKind); public int arrayScalingFactor(JavaKind elementKind) { return target.arch.getPlatformKind(elementKind).getSizeInBytes(); } - protected abstract LocationIdentity initLocationIdentity(); + public abstract LocationIdentity initLocationIdentity(); public Stamp loadStamp(Stamp stamp, JavaKind kind) { return loadStamp(stamp, kind, true);