public class org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator extends org.graalvm.collections.LockFreePrefixTree$Allocator
{
private static final org.graalvm.collections.LockFreePrefixTree$FailedAllocationException FAILED_ALLOCATION_EXCEPTION;
private static final org.graalvm.collections.LockFreePrefixTree$FailedAllocationException UNSUPPORTED_SIZE_EXCEPTION;
private static final org.graalvm.collections.LockFreePrefixTree$FailedAllocationException INTERNAL_FAILURE_EXCEPTION;
private static final int MIN_HOUSEKEEPING_PERIOD_MILLIS;
private static final int DEFAULT_HOUSEKEEPING_PERIOD_MILLIS;
private static final int SIZE_CLASS_COUNT;
private static final int INITIAL_NODE_PREALLOCATION_COUNT;
private static final int INITIAL_LINEAR_CHILDREN_PREALLOCATION_COUNT;
private static final int INITIAL_HASH_CHILDREN_PREALLOCATION_COUNT;
private static final int MAX_NODE_PREALLOCATION_COUNT;
private static final int MAX_CHILDREN_PREALLOCATION_COUNT;
private static final int EXPECTED_MAX_HASH_NODE_SIZE;
private static final boolean LOGGING;
private final org.graalvm.collections.LockFreePool nodePool;
private final org.graalvm.collections.LockFreePool[] linearChildrenPool;
private final org.graalvm.collections.LockFreePool[] hashChildrenPool;
private final java.util.concurrent.atomic.AtomicInteger missedNodePoolRequestCount;
private final java.util.concurrent.atomic.AtomicIntegerArray missedLinearChildrenRequestCounts;
private final java.util.concurrent.atomic.AtomicIntegerArray missedHashChildrenRequestCounts;
private final org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator$HousekeepingThread housekeepingThread;
public void <init>()
{
org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator v;
v := @this: org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator;
specialinvoke v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: void <init>(int)>(72);
return;
}
public void <init>(int)
{
org.graalvm.collections.LockFreePool[] v, v;
org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator$HousekeepingThread v, v;
java.util.concurrent.atomic.AtomicInteger v;
int v;
org.graalvm.collections.LockFreePool v;
org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator v;
java.util.concurrent.atomic.AtomicIntegerArray v, v;
v := @this: org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator;
v := @parameter: int;
specialinvoke v.<org.graalvm.collections.LockFreePrefixTree$Allocator: void <init>()>();
v = staticinvoke <org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: org.graalvm.collections.LockFreePool createNodePool()>();
v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: org.graalvm.collections.LockFreePool nodePool> = v;
v = staticinvoke <org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: org.graalvm.collections.LockFreePool[] createLinearChildrenPool()>();
v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: org.graalvm.collections.LockFreePool[] linearChildrenPool> = v;
v = staticinvoke <org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: org.graalvm.collections.LockFreePool[] createHashChildrenPool()>();
v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: org.graalvm.collections.LockFreePool[] hashChildrenPool> = v;
v = new java.util.concurrent.atomic.AtomicInteger;
specialinvoke v.<java.util.concurrent.atomic.AtomicInteger: void <init>(int)>(0);
v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: java.util.concurrent.atomic.AtomicInteger missedNodePoolRequestCount> = v;
v = new java.util.concurrent.atomic.AtomicIntegerArray;
specialinvoke v.<java.util.concurrent.atomic.AtomicIntegerArray: void <init>(int)>(27);
v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: java.util.concurrent.atomic.AtomicIntegerArray missedLinearChildrenRequestCounts> = v;
v = new java.util.concurrent.atomic.AtomicIntegerArray;
specialinvoke v.<java.util.concurrent.atomic.AtomicIntegerArray: void <init>(int)>(27);
v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: java.util.concurrent.atomic.AtomicIntegerArray missedHashChildrenRequestCounts> = v;
v = new org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator$HousekeepingThread;
specialinvoke v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator$HousekeepingThread: void <init>(org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator,int)>(v, v);
v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator$HousekeepingThread housekeepingThread> = v;
v = v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator$HousekeepingThread housekeepingThread>;
virtualinvoke v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator$HousekeepingThread: void start()>();
return;
}
private static org.graalvm.collections.LockFreePool createNodePool()
{
int v;
org.graalvm.collections.LockFreePrefixTree$Node v;
org.graalvm.collections.LockFreePool v;
v = new org.graalvm.collections.LockFreePool;
specialinvoke v.<org.graalvm.collections.LockFreePool: void <init>()>();
v = 0;
label:
if v >= 4096 goto label;
v = new org.graalvm.collections.LockFreePrefixTree$Node;
specialinvoke v.<org.graalvm.collections.LockFreePrefixTree$Node: void <init>()>();
virtualinvoke v.<org.graalvm.collections.LockFreePool: void add(java.lang.Object)>(v);
v = v + 1;
goto label;
label:
return v;
}
private static org.graalvm.collections.LockFreePool[] createLinearChildrenPool()
{
org.graalvm.collections.LockFreePool[] v;
org.graalvm.collections.LockFreePrefixTree$Node$LinearChildren v;
int v, v, v, v, v, v;
org.graalvm.collections.LockFreePool v, v;
v = newarray (org.graalvm.collections.LockFreePool)[27];
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = new org.graalvm.collections.LockFreePool;
specialinvoke v.<org.graalvm.collections.LockFreePool: void <init>()>();
v[v] = v;
v = staticinvoke <java.lang.Integer: int numberOfTrailingZeros(int)>(2);
if v > v goto label;
v = staticinvoke <java.lang.Integer: int numberOfTrailingZeros(int)>(8);
if v > v goto label;
v = 0;
label:
if v >= 4096 goto label;
v = v[v];
v = new org.graalvm.collections.LockFreePrefixTree$Node$LinearChildren;
v = 1 << v;
specialinvoke v.<org.graalvm.collections.LockFreePrefixTree$Node$LinearChildren: void <init>(int)>(v);
virtualinvoke v.<org.graalvm.collections.LockFreePool: void add(java.lang.Object)>(v);
v = v + 1;
goto label;
label:
v = v + 1;
goto label;
label:
return v;
}
private static org.graalvm.collections.LockFreePool[] createHashChildrenPool()
{
org.graalvm.collections.LockFreePool[] v;
org.graalvm.collections.LockFreePrefixTree$Node$HashChildren v;
int v, v, v, v, v, v;
org.graalvm.collections.LockFreePool v, v;
v = newarray (org.graalvm.collections.LockFreePool)[27];
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = new org.graalvm.collections.LockFreePool;
specialinvoke v.<org.graalvm.collections.LockFreePool: void <init>()>();
v[v] = v;
v = staticinvoke <java.lang.Integer: int numberOfTrailingZeros(int)>(16);
if v < v goto label;
v = staticinvoke <java.lang.Integer: int numberOfTrailingZeros(int)>(1024);
if v > v goto label;
v = 0;
label:
if v >= 256 goto label;
v = v[v];
v = new org.graalvm.collections.LockFreePrefixTree$Node$HashChildren;
v = 1 << v;
specialinvoke v.<org.graalvm.collections.LockFreePrefixTree$Node$HashChildren: void <init>(int)>(v);
virtualinvoke v.<org.graalvm.collections.LockFreePool: void add(java.lang.Object)>(v);
v = v + 1;
goto label;
label:
v = v + 1;
goto label;
label:
return v;
}
public org.graalvm.collections.LockFreePrefixTree$Node newNode(long)
{
org.graalvm.collections.LockFreePrefixTree$FailedAllocationException v;
java.util.concurrent.atomic.AtomicInteger v;
java.lang.Object v;
long v;
org.graalvm.collections.LockFreePool v;
org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator v;
v := @this: org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator;
v := @parameter: long;
v = v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: org.graalvm.collections.LockFreePool nodePool>;
v = virtualinvoke v.<org.graalvm.collections.LockFreePool: java.lang.Object get()>();
if v == null goto label;
v.<org.graalvm.collections.LockFreePrefixTree$Node: long key> = v;
return v;
label:
v = v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: java.util.concurrent.atomic.AtomicInteger missedNodePoolRequestCount>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int incrementAndGet()>();
v = <org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: org.graalvm.collections.LockFreePrefixTree$FailedAllocationException FAILED_ALLOCATION_EXCEPTION>;
throw v;
}
public org.graalvm.collections.LockFreePrefixTree$Node$LinearChildren newLinearChildren(int)
{
org.graalvm.collections.LockFreePool[] v;
org.graalvm.collections.LockFreePrefixTree$FailedAllocationException v, v, v;
int v, v, v, v;
java.lang.Object v;
org.graalvm.collections.LockFreePool v;
org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator v;
java.util.concurrent.atomic.AtomicIntegerArray v, v;
v := @this: org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator;
v := @parameter: int;
staticinvoke <org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: void checkPowerOfTwo(int)>(v);
v = staticinvoke <java.lang.Integer: int numberOfTrailingZeros(int)>(v);
if v < 27 goto label;
v = <org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: org.graalvm.collections.LockFreePrefixTree$FailedAllocationException FAILED_ALLOCATION_EXCEPTION>;
throw v;
label:
v = staticinvoke <java.lang.Integer: int numberOfTrailingZeros(int)>(v);
v = v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: org.graalvm.collections.LockFreePool[] linearChildrenPool>;
v = v[v];
v = virtualinvoke v.<org.graalvm.collections.LockFreePool: java.lang.Object get()>();
if v == null goto label;
return v;
label:
v = v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: java.util.concurrent.atomic.AtomicIntegerArray missedLinearChildrenRequestCounts>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicIntegerArray: int length()>();
if v < v goto label;
v = <org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: org.graalvm.collections.LockFreePrefixTree$FailedAllocationException INTERNAL_FAILURE_EXCEPTION>;
throw v;
label:
v = v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: java.util.concurrent.atomic.AtomicIntegerArray missedLinearChildrenRequestCounts>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicIntegerArray: int incrementAndGet(int)>(v);
v = <org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: org.graalvm.collections.LockFreePrefixTree$FailedAllocationException FAILED_ALLOCATION_EXCEPTION>;
throw v;
}
public org.graalvm.collections.LockFreePrefixTree$Node$HashChildren newHashChildren(int)
{
org.graalvm.collections.LockFreePool[] v;
org.graalvm.collections.LockFreePrefixTree$FailedAllocationException v, v, v;
int v, v, v, v;
java.lang.Object v;
org.graalvm.collections.LockFreePool v;
org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator v;
java.util.concurrent.atomic.AtomicIntegerArray v, v;
v := @this: org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator;
v := @parameter: int;
staticinvoke <org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: void checkPowerOfTwo(int)>(v);
v = staticinvoke <java.lang.Integer: int numberOfTrailingZeros(int)>(v);
if v < 27 goto label;
v = <org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: org.graalvm.collections.LockFreePrefixTree$FailedAllocationException FAILED_ALLOCATION_EXCEPTION>;
throw v;
label:
v = staticinvoke <java.lang.Integer: int numberOfTrailingZeros(int)>(v);
v = v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: org.graalvm.collections.LockFreePool[] hashChildrenPool>;
v = v[v];
v = virtualinvoke v.<org.graalvm.collections.LockFreePool: java.lang.Object get()>();
if v == null goto label;
return v;
label:
v = v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: java.util.concurrent.atomic.AtomicIntegerArray missedHashChildrenRequestCounts>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicIntegerArray: int length()>();
if v < v goto label;
v = <org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: org.graalvm.collections.LockFreePrefixTree$FailedAllocationException INTERNAL_FAILURE_EXCEPTION>;
throw v;
label:
v = v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: java.util.concurrent.atomic.AtomicIntegerArray missedHashChildrenRequestCounts>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicIntegerArray: int incrementAndGet(int)>(v);
v = <org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: org.graalvm.collections.LockFreePrefixTree$FailedAllocationException FAILED_ALLOCATION_EXCEPTION>;
throw v;
}
public void shutdown()
{
java.lang.InterruptedException v;
java.util.concurrent.atomic.AtomicBoolean v;
java.lang.RuntimeException v;
org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator v;
org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator$HousekeepingThread v, v;
v := @this: org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator;
v = v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator$HousekeepingThread housekeepingThread>;
v = v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator$HousekeepingThread: java.util.concurrent.atomic.AtomicBoolean isEnabled>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void set(boolean)>(0);
label:
v = v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator$HousekeepingThread housekeepingThread>;
virtualinvoke v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator$HousekeepingThread: void join()>();
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String,java.lang.Throwable)>("Interrupted while waiting for housekeeping thread shutdown.", v);
throw v;
label:
return;
catch java.lang.InterruptedException from label to label with label;
}
public java.lang.String status()
{
java.lang.Integer v, v, v, v, v, v, v, v, v, v;
java.util.concurrent.atomic.AtomicIntegerArray v, v;
java.lang.StringBuilder v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.Object[] v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.Double v, v;
long v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
int[] v, v;
java.util.concurrent.atomic.AtomicInteger v;
org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator$HousekeepingThread v, v, v, v, v, v;
org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator v;
long[] v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
double v, v;
v := @this: org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator;
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("ObjectPoolingAllocator");
v = staticinvoke <java.lang.System: java.lang.String lineSeparator()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("======================");
v = staticinvoke <java.lang.System: java.lang.String lineSeparator()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("  current node alloc misses:      ");
v = v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: java.util.concurrent.atomic.AtomicInteger missedNodePoolRequestCount>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int get()>();
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(int)>(v);
v = staticinvoke <java.lang.System: java.lang.String lineSeparator()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("  current linear children misses: ");
v = staticinvoke <java.lang.System: java.lang.String lineSeparator()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("    size class ");
v = 0;
label:
if v >= 27 goto label;
v = newarray (java.lang.Object)[1];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("%4d", v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = v + 1;
goto label;
label:
v = staticinvoke <java.lang.System: java.lang.String lineSeparator()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("    miss count ");
v = 0;
label:
if v >= 27 goto label;
v = newarray (java.lang.Object)[1];
v = v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: java.util.concurrent.atomic.AtomicIntegerArray missedLinearChildrenRequestCounts>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicIntegerArray: int get(int)>(v);
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("%4d", v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = v + 1;
goto label;
label:
v = staticinvoke <java.lang.System: java.lang.String lineSeparator()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("  current hash children misses: ");
v = staticinvoke <java.lang.System: java.lang.String lineSeparator()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("    size class ");
v = 0;
label:
if v >= 27 goto label;
v = newarray (java.lang.Object)[1];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("%4d", v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = v + 1;
goto label;
label:
v = staticinvoke <java.lang.System: java.lang.String lineSeparator()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("    miss count ");
v = 0;
label:
if v >= 27 goto label;
v = newarray (java.lang.Object)[1];
v = v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: java.util.concurrent.atomic.AtomicIntegerArray missedHashChildrenRequestCounts>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicIntegerArray: int get(int)>(v);
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("%4d", v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = v + 1;
goto label;
label:
v = staticinvoke <java.lang.System: java.lang.String lineSeparator()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("  node prealloc growth:           ");
v = v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator$HousekeepingThread housekeepingThread>;
v = v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator$HousekeepingThread: int nodePreallocationGrowth>;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(int)>(v);
v = staticinvoke <java.lang.System: java.lang.String lineSeparator()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("  linear children prealloc growth:");
v = staticinvoke <java.lang.System: java.lang.String lineSeparator()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("    size class ");
v = 0;
label:
if v >= 27 goto label;
v = newarray (java.lang.Object)[1];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("%4d", v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = v + 1;
goto label;
label:
v = staticinvoke <java.lang.System: java.lang.String lineSeparator()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("    log_2(#)   ");
v = 0;
label:
if v >= 27 goto label;
v = newarray (java.lang.Object)[1];
v = v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator$HousekeepingThread housekeepingThread>;
v = v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator$HousekeepingThread: int[] linearChildrenPreallocationGrowth>;
v = v[v];
v = staticinvoke <java.lang.Integer: int numberOfLeadingZeros(int)>(v);
v = 31 - v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("%4d", v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = v + 1;
goto label;
label:
v = staticinvoke <java.lang.System: java.lang.String lineSeparator()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("  hash children prealloc growth:  ");
v = staticinvoke <java.lang.System: java.lang.String lineSeparator()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("    size class ");
v = 0;
label:
if v >= 27 goto label;
v = newarray (java.lang.Object)[1];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("%4d", v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = v + 1;
goto label;
label:
v = staticinvoke <java.lang.System: java.lang.String lineSeparator()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("    log_2(#)   ");
v = 0;
label:
if v >= 27 goto label;
v = newarray (java.lang.Object)[1];
v = v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator$HousekeepingThread housekeepingThread>;
v = v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator$HousekeepingThread: int[] hashChildrenPreallocationGrowth>;
v = v[v];
v = staticinvoke <java.lang.Integer: int numberOfLeadingZeros(int)>(v);
v = 31 - v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("%4d", v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = v + 1;
goto label;
label:
v = staticinvoke <java.lang.System: java.lang.String lineSeparator()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("  node prealloc total:            ");
v = v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator$HousekeepingThread housekeepingThread>;
v = v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator$HousekeepingThread: long nodePreallocationTotal>;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(long)>(v);
v = staticinvoke <java.lang.System: java.lang.String lineSeparator()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("  linear children prealloc total: ");
v = staticinvoke <java.lang.System: java.lang.String lineSeparator()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("    size class ");
v = 0;
label:
if v >= 27 goto label;
v = newarray (java.lang.Object)[1];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("%8d", v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = v + 1;
goto label;
label:
v = staticinvoke <java.lang.System: java.lang.String lineSeparator()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("    log_2(#)   ");
v = 0;
label:
if v >= 27 goto label;
v = newarray (java.lang.Object)[1];
v = v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator$HousekeepingThread housekeepingThread>;
v = v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator$HousekeepingThread: long[] linearChildrenPreallocationTotal>;
v = v[v];
v = 1.0 * v;
v = staticinvoke <java.lang.Double: java.lang.Double valueOf(double)>(v);
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>(" %7.1e", v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = v + 1;
goto label;
label:
v = staticinvoke <java.lang.System: java.lang.String lineSeparator()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("  hash children prealloc total:   ");
v = staticinvoke <java.lang.System: java.lang.String lineSeparator()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("    size class ");
v = 0;
label:
if v >= 27 goto label;
v = newarray (java.lang.Object)[1];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("%8d", v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = v + 1;
goto label;
label:
v = staticinvoke <java.lang.System: java.lang.String lineSeparator()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("    log_2(#)   ");
v = 0;
label:
if v >= 27 goto label;
v = newarray (java.lang.Object)[1];
v = v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator$HousekeepingThread housekeepingThread>;
v = v.<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator$HousekeepingThread: long[] hashChildrenPreallocationTotal>;
v = v[v];
v = 1.0 * v;
v = staticinvoke <java.lang.Double: java.lang.Double valueOf(double)>(v);
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>(" %7.1e", v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = v + 1;
goto label;
label:
v = staticinvoke <java.lang.System: java.lang.String lineSeparator()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
private static void checkPowerOfTwo(int)
{
int v, v;
org.graalvm.collections.LockFreePrefixTree$FailedAllocationException v;
v := @parameter: int;
v = staticinvoke <java.lang.Integer: int bitCount(int)>(v);
if v == 1 goto label;
v = <org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: org.graalvm.collections.LockFreePrefixTree$FailedAllocationException UNSUPPORTED_SIZE_EXCEPTION>;
throw v;
label:
return;
}
private static void log(java.lang.String, int)
{
int v;
java.lang.String v;
v := @parameter: java.lang.String;
v := @parameter: int;
return;
}
private static void log(java.lang.String, int, int)
{
int v, v;
java.lang.String v;
v := @parameter: java.lang.String;
v := @parameter: int;
v := @parameter: int;
return;
}
private static void log(java.lang.String, int, int, int)
{
int v, v, v;
java.lang.String v;
v := @parameter: java.lang.String;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
return;
}
static void <clinit>()
{
org.graalvm.collections.LockFreePrefixTree$FailedAllocationException v, v, v;
v = new org.graalvm.collections.LockFreePrefixTree$FailedAllocationException;
specialinvoke v.<org.graalvm.collections.LockFreePrefixTree$FailedAllocationException: void <init>()>();
<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: org.graalvm.collections.LockFreePrefixTree$FailedAllocationException FAILED_ALLOCATION_EXCEPTION> = v;
v = new org.graalvm.collections.LockFreePrefixTree$FailedAllocationException;
specialinvoke v.<org.graalvm.collections.LockFreePrefixTree$FailedAllocationException: void <init>(java.lang.String)>("Only arrays that have power-of-two length can be allocated.");
<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: org.graalvm.collections.LockFreePrefixTree$FailedAllocationException UNSUPPORTED_SIZE_EXCEPTION> = v;
v = new org.graalvm.collections.LockFreePrefixTree$FailedAllocationException;
specialinvoke v.<org.graalvm.collections.LockFreePrefixTree$FailedAllocationException: void <init>(java.lang.String)>("Allocation failed due to internal exception.");
<org.graalvm.collections.LockFreePrefixTree$ObjectPoolingAllocator: org.graalvm.collections.LockFreePrefixTree$FailedAllocationException INTERNAL_FAILURE_EXCEPTION> = v;
return;
}
}