public abstract class SubstrateAllocationSnippets
extends org.graalvm.compiler.replacements.AllocationSnippets
| Modifier and Type | Class and Description |
|---|---|
static class |
SubstrateAllocationSnippets.SubstrateAllocationProfilingData |
static class |
SubstrateAllocationSnippets.Templates |
org.graalvm.compiler.replacements.AllocationSnippets.AllocationProfilingData, org.graalvm.compiler.replacements.AllocationSnippets.AllocationSnippetCounters, org.graalvm.compiler.replacements.AllocationSnippets.FillContent| Modifier and Type | Field and Description |
|---|---|
static Object[] |
ALLOCATION_LOCATIONS |
static org.graalvm.word.LocationIdentity |
TLAB_END_IDENTITY |
static org.graalvm.word.LocationIdentity[] |
TLAB_LOCATIONS |
static org.graalvm.word.LocationIdentity |
TLAB_TOP_IDENTITY |
| Constructor and Description |
|---|
SubstrateAllocationSnippets() |
| Modifier and Type | Method and Description |
|---|---|
protected static int |
afterArrayLengthOffset() |
Object |
allocateArray(DynamicHub hub,
int length,
int arrayBaseOffset,
int log2ElementSize,
org.graalvm.compiler.replacements.AllocationSnippets.FillContent fillContents,
int fillStartOffset,
boolean emitMemoryBarrier,
boolean maybeUnroll,
boolean supportsBulkZeroing,
boolean supportsOptimizedFilling,
org.graalvm.compiler.replacements.AllocationSnippets.AllocationProfilingData profilingData) |
Object |
allocateArrayDynamic(DynamicHub elementType,
int length,
org.graalvm.compiler.replacements.AllocationSnippets.FillContent fillContents,
boolean emitMemoryBarrier,
boolean supportsBulkZeroing,
boolean supportsOptimizedFilling,
org.graalvm.compiler.replacements.AllocationSnippets.AllocationProfilingData profilingData) |
protected Object |
allocateInstance(DynamicHub hub,
long size,
org.graalvm.compiler.replacements.AllocationSnippets.FillContent fillContents,
boolean emitMemoryBarrier,
org.graalvm.compiler.replacements.AllocationSnippets.AllocationProfilingData profilingData) |
Object |
allocateInstanceDynamic(DynamicHub hub,
org.graalvm.compiler.replacements.AllocationSnippets.FillContent fillContents,
boolean emitMemoryBarrier,
org.graalvm.compiler.replacements.AllocationSnippets.AllocationProfilingData profilingData) |
protected Object |
allocateStoredContinuationInstance(DynamicHub hub,
long size,
org.graalvm.compiler.replacements.AllocationSnippets.AllocationProfilingData profilingData) |
int |
arrayLengthOffset() |
protected Object |
callNewArrayStub(org.graalvm.compiler.word.Word objectHeader,
int length,
int fillStartOffset) |
protected Object |
callNewInstanceStub(org.graalvm.compiler.word.Word objectHeader) |
protected Object |
callNewInstanceStub(org.graalvm.compiler.word.Word objectHeader,
org.graalvm.word.UnsignedWord size) |
protected Object |
callNewMultiArrayStub(org.graalvm.compiler.word.Word objectHeader,
int rank,
org.graalvm.compiler.word.Word dims) |
static org.graalvm.compiler.word.Word |
encodeAsTLABObjectHeader(DynamicHub hub) |
static DynamicHub |
ensureMarkedAsInstantiated(DynamicHub hub)
Verify that we do not need to check at run time if a type coming from a
NewInstanceNode or NewArrayNode is instantiated. |
protected static int |
getArrayBaseOffset(int layoutEncoding) |
protected int |
getMinimalBulkZeroingSize() |
protected int |
getPrefetchDistance() |
protected int |
getPrefetchLines(boolean isArray) |
protected int |
getPrefetchStepSize() |
protected int |
getPrefetchStyle() |
protected abstract SnippetRuntime.SubstrateForeignCallDescriptor |
getSlowNewArrayStub() |
protected abstract SnippetRuntime.SubstrateForeignCallDescriptor |
getSlowNewInstanceStub() |
protected int |
instanceHeaderSize() |
protected Object |
newmultiarray(DynamicHub hub,
int rank,
int[] dimensions) |
protected int |
objectAlignment() |
protected void |
profileAllocation(org.graalvm.compiler.replacements.AllocationSnippets.AllocationProfilingData profilingData,
org.graalvm.word.UnsignedWord size) |
static void |
registerForeignCalls(SubstrateForeignCallsProvider foreignCalls) |
protected Object |
verifyOop(Object obj) |
allocateArrayImpl, allocateInstanceImpl, arrayAllocationSize, emitPrefetchAllocate, fillMemoryAligned, fillMemoryAlignedUnrollable, formatArray, formatObject, getTLABInfo, initializeObjectHeader, newMultiArrayImpl, readTlabEnd, readTlabTop, shouldAllocateInTLAB, useTLAB, writeTlabToppublic static final org.graalvm.word.LocationIdentity TLAB_TOP_IDENTITY
public static final org.graalvm.word.LocationIdentity TLAB_END_IDENTITY
public static final Object[] ALLOCATION_LOCATIONS
public static final org.graalvm.word.LocationIdentity[] TLAB_LOCATIONS
public static void registerForeignCalls(SubstrateForeignCallsProvider foreignCalls)
protected Object allocateInstance(DynamicHub hub, long size, org.graalvm.compiler.replacements.AllocationSnippets.FillContent fillContents, boolean emitMemoryBarrier, org.graalvm.compiler.replacements.AllocationSnippets.AllocationProfilingData profilingData)
protected Object allocateStoredContinuationInstance(DynamicHub hub, long size, org.graalvm.compiler.replacements.AllocationSnippets.AllocationProfilingData profilingData)
public Object allocateArray(DynamicHub hub, int length, int arrayBaseOffset, int log2ElementSize, org.graalvm.compiler.replacements.AllocationSnippets.FillContent fillContents, int fillStartOffset, boolean emitMemoryBarrier, boolean maybeUnroll, boolean supportsBulkZeroing, boolean supportsOptimizedFilling, org.graalvm.compiler.replacements.AllocationSnippets.AllocationProfilingData profilingData)
public Object allocateInstanceDynamic(DynamicHub hub, org.graalvm.compiler.replacements.AllocationSnippets.FillContent fillContents, boolean emitMemoryBarrier, org.graalvm.compiler.replacements.AllocationSnippets.AllocationProfilingData profilingData)
public Object allocateArrayDynamic(DynamicHub elementType, int length, org.graalvm.compiler.replacements.AllocationSnippets.FillContent fillContents, boolean emitMemoryBarrier, boolean supportsBulkZeroing, boolean supportsOptimizedFilling, org.graalvm.compiler.replacements.AllocationSnippets.AllocationProfilingData profilingData)
protected Object newmultiarray(DynamicHub hub, int rank, int[] dimensions)
protected final int getPrefetchStyle()
getPrefetchStyle in class org.graalvm.compiler.replacements.AllocationSnippetsprotected int getPrefetchLines(boolean isArray)
getPrefetchLines in class org.graalvm.compiler.replacements.AllocationSnippetsprotected final int getPrefetchStepSize()
getPrefetchStepSize in class org.graalvm.compiler.replacements.AllocationSnippetsprotected final int getPrefetchDistance()
getPrefetchDistance in class org.graalvm.compiler.replacements.AllocationSnippetsprotected final int instanceHeaderSize()
instanceHeaderSize in class org.graalvm.compiler.replacements.AllocationSnippetsprotected static int afterArrayLengthOffset()
protected final void profileAllocation(org.graalvm.compiler.replacements.AllocationSnippets.AllocationProfilingData profilingData,
org.graalvm.word.UnsignedWord size)
profileAllocation in class org.graalvm.compiler.replacements.AllocationSnippetsprotected int getMinimalBulkZeroingSize()
getMinimalBulkZeroingSize in class org.graalvm.compiler.replacements.AllocationSnippetsprotected final Object verifyOop(Object obj)
verifyOop in class org.graalvm.compiler.replacements.AllocationSnippetspublic final int arrayLengthOffset()
arrayLengthOffset in class org.graalvm.compiler.replacements.AllocationSnippetsprotected final int objectAlignment()
objectAlignment in class org.graalvm.compiler.replacements.AllocationSnippetsprotected static int getArrayBaseOffset(int layoutEncoding)
public static org.graalvm.compiler.word.Word encodeAsTLABObjectHeader(DynamicHub hub)
protected final Object callNewInstanceStub(org.graalvm.compiler.word.Word objectHeader, org.graalvm.word.UnsignedWord size)
callNewInstanceStub in class org.graalvm.compiler.replacements.AllocationSnippetsprotected final Object callNewInstanceStub(org.graalvm.compiler.word.Word objectHeader)
callNewInstanceStub in class org.graalvm.compiler.replacements.AllocationSnippetsprotected final Object callNewArrayStub(org.graalvm.compiler.word.Word objectHeader, int length, int fillStartOffset)
callNewArrayStub in class org.graalvm.compiler.replacements.AllocationSnippetsprotected final Object callNewMultiArrayStub(org.graalvm.compiler.word.Word objectHeader, int rank, org.graalvm.compiler.word.Word dims)
callNewMultiArrayStub in class org.graalvm.compiler.replacements.AllocationSnippetsprotected abstract SnippetRuntime.SubstrateForeignCallDescriptor getSlowNewInstanceStub()
protected abstract SnippetRuntime.SubstrateForeignCallDescriptor getSlowNewArrayStub()
public static DynamicHub ensureMarkedAsInstantiated(DynamicHub hub)
NewInstanceNode or NewArrayNode is instantiated. All allocations with a
constant type before static analysis result in the type being marked as instantiated.
DynamicNewInstanceNode and DynamicNewArrayNode whose type gets folded to a
constant late during compilation remain a dynamic allocation because
MetaAccessExtensionProvider.canConstantFoldDynamicAllocation(jdk.vm.ci.meta.ResolvedJavaType) returns false.