public abstract class DefaultHotSpotLoweringProvider extends DefaultJavaLoweringProvider implements HotSpotLoweringProvider
LoweringProvider.| Modifier and Type | Class and Description |
|---|---|
static interface |
DefaultHotSpotLoweringProvider.Extension
Extension API for lowering a node outside the set of core HotSpot compiler nodes.
|
static interface |
DefaultHotSpotLoweringProvider.Extensions
Service provider interface for discovering
DefaultHotSpotLoweringProvider.Extensions. |
static class |
DefaultHotSpotLoweringProvider.RuntimeCalls |
barrierSet, foreignCalls, identityHashCodeSnippets, isArraySnippets, latin1Templates, metaAccess, metaAccessExtensionProvider, POSITIVE_ARRAY_INDEX_STAMP, replacements, target, utf16templates| Constructor and Description |
|---|
DefaultHotSpotLoweringProvider(HotSpotGraalRuntimeProvider runtime,
MetaAccessProvider metaAccess,
ForeignCallsProvider foreignCalls,
HotSpotRegistersProvider registers,
HotSpotConstantReflectionProvider constantReflection,
PlatformConfigurationProvider platformConfig,
MetaAccessExtensionProvider metaAccessExtensionProvider,
TargetDescription target) |
arrayImplicitStoreConvert, createArrayAddress, createArrayAddress, createArrayAddress, createArrayIndexAddress, createFieldAddress, createNullCheck, createNullCheckedValue, createOffsetAddress, createPositiveIndex, createReadArrayLength, createUnsafeAddress, createUnsafeRead, fieldLocationIdentity, finishAllocatedObjects, getBarrierSet, getBoundsCheck, getMetaAccess, getMetaAccessExtensionProvider, getReplacements, getStorageKind, getStorageKind, getTarget, implicitLoadConvert, implicitLoadConvert, implicitLoadConvert, implicitLoadConvert, implicitLoadConvertWithBooleanCoercionIfNecessary, implicitStoreConvert, implicitStoreConvert, implicitStoreConvert, implicitStoreConvert, initialize, loadStamp, loadStamp, lowerArrayLengthNode, lowerAtomicReadAndAddNode, lowerAtomicReadAndWriteNode, lowerCommitAllocationNode, lowerCompareAndExchangeNode, lowerCompareAndSwapNode, lowerFloatingIntegerDivRem, lowerIndexAddressNode, lowerJavaReadNode, lowerJavaWriteNode, lowerLoadArrayComponentHubNode, lowerLoadFieldNode, lowerLoadHubNode, lowerLoadHubOrNullNode, lowerLoadIndexedNode, lowerLoadIndexedNode, lowerStoreFieldNode, lowerStoreIndexedNode, lowerStoreIndexedNode, lowerUnsafeLoadNode, lowerUnsafeMemoryLoadNode, lowerUnsafeMemoryStoreNode, lowerUnsafeStoreNode, lowerVerifyHeap, proxyIndex, reconstructArrayIndex, supportsImplicitNullChecks, supportsOptimizedFillingclone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitdivisionOverflowIsJVMSCompliant, getTarget, reconstructArrayIndex, smallestCompareWidth, supportsBulkZeroing, supportsImplicitNullChecks, supportsOptimizedFilling, supportsRounding, writesStronglyOrderedprotected final HotSpotGraalRuntimeProvider runtime
protected final HotSpotRegistersProvider registers
protected final HotSpotConstantReflectionProvider constantReflection
protected InstanceOfSnippets.Templates instanceofSnippets
protected HotSpotAllocationSnippets.Templates allocationSnippets
protected MonitorSnippets.Templates monitorSnippets
protected HotSpotSerialWriteBarrierSnippets.Templates serialWriteBarrierSnippets
protected HotSpotG1WriteBarrierSnippets.Templates g1WriteBarrierSnippets
protected LoadExceptionObjectSnippets.Templates exceptionObjectSnippets
protected AssertionSnippets.Templates assertionSnippets
protected LogSnippets.Templates logSnippets
protected ArrayCopySnippets.Templates arraycopySnippets
protected StringToBytesSnippets.Templates stringToBytesSnippets
protected ObjectSnippets.Templates objectSnippets
protected UnsafeSnippets.Templates unsafeSnippets
protected ObjectCloneSnippets.Templates objectCloneSnippets
protected ForeignCallSnippets.Templates foreignCallSnippets
protected RegisterFinalizerSnippets.Templates registerFinalizerSnippets
protected final Map<Class<? extends Node>,DefaultHotSpotLoweringProvider.Extension> extensions
public DefaultHotSpotLoweringProvider(HotSpotGraalRuntimeProvider runtime, MetaAccessProvider metaAccess, ForeignCallsProvider foreignCalls, HotSpotRegistersProvider registers, HotSpotConstantReflectionProvider constantReflection, PlatformConfigurationProvider platformConfig, MetaAccessExtensionProvider metaAccessExtensionProvider, TargetDescription target)
public HotSpotGraalRuntimeProvider getRuntime()
public HotSpotRegistersProvider getRegisters()
public HotSpotConstantReflectionProvider getConstantReflection()
public void initialize(OptionValues options, Iterable<DebugHandlersFactory> factories, HotSpotProviders providers, GraalHotSpotVMConfig config)
initialize in interface HotSpotLoweringProviderpublic void initialize(OptionValues options, Iterable<DebugHandlersFactory> factories, HotSpotProviders providers, GraalHotSpotVMConfig config, HotSpotAllocationSnippets.Templates allocationSnippetTemplates)
public HotSpotAllocationSnippets.Templates getAllocationSnippets()
public ArrayCopySnippets.Templates getArraycopySnippets()
public MonitorSnippets.Templates getMonitorSnippets()
protected void lowerIntegerDivRem(IntegerDivRemNode n, LoweringTool tool)
FixedNode) IntegerDivRemNode nodes to a GuardingNode
(potentially 2 guards if an overflow is possible) and a floating division
FloatingIntegerDivRemNode. This enabled global value numbering for non-constant
division operations. Later on in the backend we can combine certain divs again with their
checks to avoid explicit 0 and overflow checks.public void lower(Node n, LoweringTool tool)
lower in interface LoweringProviderlower in class DefaultJavaLoweringProviderprotected void loadHubForMonitorEnterNode(MonitorEnterNode monitor, LoweringTool tool, StructuredGraph graph)
protected Stamp loadCompressedStamp(ObjectStamp stamp)
loadCompressedStamp in class DefaultJavaLoweringProviderprotected ValueNode newCompressionNode(CompressionNode.CompressionOp op, ValueNode value)
newCompressionNode in class DefaultJavaLoweringProviderpublic ValueNode staticFieldBase(StructuredGraph graph, ResolvedJavaField f)
staticFieldBase in class DefaultJavaLoweringProviderprotected ValueNode createReadArrayComponentHub(StructuredGraph graph, ValueNode arrayHub, boolean isKnownObjectArray, FixedNode anchor)
createReadArrayComponentHub in class DefaultJavaLoweringProviderprotected void lowerDeadEnd(DeadEndNode deadEnd)
protected ValueNode createReadHub(StructuredGraph graph, ValueNode object, LoweringTool tool)
createReadHub in class DefaultJavaLoweringProviderpublic int fieldOffset(ResolvedJavaField f)
fieldOffset in class DefaultJavaLoweringProviderpublic int arrayLengthOffset()
arrayLengthOffset in class DefaultJavaLoweringProviderpublic ObjectCloneSnippets.Templates getObjectCloneSnippets()
getObjectCloneSnippets in interface HotSpotLoweringProviderpublic ForeignCallSnippets.Templates getForeignCallSnippets()
getForeignCallSnippets in interface HotSpotLoweringProvider