
com.oracle.truffle.api.strings.TruffleStringFactory Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of truffle-api Show documentation
Show all versions of truffle-api Show documentation
Truffle is a multi-language framework for executing dynamic languages
that achieves high performance when combined with Graal.
// CheckStyle: start generated
package com.oracle.truffle.api.strings;
import com.oracle.truffle.api.CompilerDirectives;
import com.oracle.truffle.api.CompilerDirectives.CompilationFinal;
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
import com.oracle.truffle.api.dsl.GeneratedBy;
import com.oracle.truffle.api.dsl.InlineSupport;
import com.oracle.truffle.api.dsl.NeverDefault;
import com.oracle.truffle.api.dsl.UnsupportedSpecializationException;
import com.oracle.truffle.api.dsl.DSLSupport.SpecializationDataNode;
import com.oracle.truffle.api.dsl.InlineSupport.InlineTarget;
import com.oracle.truffle.api.dsl.InlineSupport.IntField;
import com.oracle.truffle.api.dsl.InlineSupport.ReferenceField;
import com.oracle.truffle.api.dsl.InlineSupport.RequiredField;
import com.oracle.truffle.api.dsl.InlineSupport.StateField;
import com.oracle.truffle.api.dsl.InlineSupport.UnsafeAccessedField;
import com.oracle.truffle.api.nodes.DenyReplace;
import com.oracle.truffle.api.nodes.Node;
import com.oracle.truffle.api.nodes.NodeCost;
import com.oracle.truffle.api.profiles.InlinedBranchProfile;
import com.oracle.truffle.api.profiles.InlinedConditionProfile;
import com.oracle.truffle.api.profiles.InlinedIntValueProfile;
import com.oracle.truffle.api.strings.AbstractTruffleString.LazyConcat;
import com.oracle.truffle.api.strings.AbstractTruffleString.LazyLong;
import com.oracle.truffle.api.strings.AbstractTruffleString.NativePointer;
import com.oracle.truffle.api.strings.TStringInternalNodes.CalcStringAttributesNode;
import com.oracle.truffle.api.strings.TStringInternalNodes.CodePointAtNode;
import com.oracle.truffle.api.strings.TStringInternalNodes.CodePointAtRawNode;
import com.oracle.truffle.api.strings.TStringInternalNodes.CodePointIndexToRawNode;
import com.oracle.truffle.api.strings.TStringInternalNodes.ConcatEagerNode;
import com.oracle.truffle.api.strings.TStringInternalNodes.CreateJavaStringNode;
import com.oracle.truffle.api.strings.TStringInternalNodes.FromBufferWithStringCompactionKnownAttributesNode;
import com.oracle.truffle.api.strings.TStringInternalNodes.FromBufferWithStringCompactionNode;
import com.oracle.truffle.api.strings.TStringInternalNodes.FromJavaStringUTF16Node;
import com.oracle.truffle.api.strings.TStringInternalNodes.GetCodePointLengthNode;
import com.oracle.truffle.api.strings.TStringInternalNodes.GetCodeRangeForIndexCalculationNode;
import com.oracle.truffle.api.strings.TStringInternalNodes.GetPreciseCodeRangeNode;
import com.oracle.truffle.api.strings.TStringInternalNodes.IndexOfCodePointRawNode;
import com.oracle.truffle.api.strings.TStringInternalNodes.IndexOfCodePointSetNode;
import com.oracle.truffle.api.strings.TStringInternalNodes.IndexOfStringRawNode;
import com.oracle.truffle.api.strings.TStringInternalNodes.InternalIndexOfStringNode;
import com.oracle.truffle.api.strings.TStringInternalNodes.LastIndexOfCodePointRawNode;
import com.oracle.truffle.api.strings.TStringInternalNodes.LastIndexOfStringRawNode;
import com.oracle.truffle.api.strings.TStringInternalNodes.RawIndexToCodePointIndexNode;
import com.oracle.truffle.api.strings.TStringInternalNodes.RegionEqualsNode;
import com.oracle.truffle.api.strings.TStringInternalNodes.StrideFromCodeRangeNode;
import com.oracle.truffle.api.strings.TStringInternalNodes.TransCodeNode;
import com.oracle.truffle.api.strings.TStringInternalNodesFactory.CalcStringAttributesNodeGen;
import com.oracle.truffle.api.strings.TStringInternalNodesFactory.CodePointAtNodeGen;
import com.oracle.truffle.api.strings.TStringInternalNodesFactory.CodePointAtRawNodeGen;
import com.oracle.truffle.api.strings.TStringInternalNodesFactory.CodePointIndexToRawNodeGen;
import com.oracle.truffle.api.strings.TStringInternalNodesFactory.ConcatEagerNodeGen;
import com.oracle.truffle.api.strings.TStringInternalNodesFactory.CreateJavaStringNodeGen;
import com.oracle.truffle.api.strings.TStringInternalNodesFactory.FromBufferWithStringCompactionKnownAttributesNodeGen;
import com.oracle.truffle.api.strings.TStringInternalNodesFactory.FromBufferWithStringCompactionNodeGen;
import com.oracle.truffle.api.strings.TStringInternalNodesFactory.FromJavaStringUTF16NodeGen;
import com.oracle.truffle.api.strings.TStringInternalNodesFactory.GetCodePointLengthNodeGen;
import com.oracle.truffle.api.strings.TStringInternalNodesFactory.GetCodeRangeForIndexCalculationNodeGen;
import com.oracle.truffle.api.strings.TStringInternalNodesFactory.GetPreciseCodeRangeNodeGen;
import com.oracle.truffle.api.strings.TStringInternalNodesFactory.IndexOfCodePointRawNodeGen;
import com.oracle.truffle.api.strings.TStringInternalNodesFactory.IndexOfStringRawNodeGen;
import com.oracle.truffle.api.strings.TStringInternalNodesFactory.InternalIndexOfStringNodeGen;
import com.oracle.truffle.api.strings.TStringInternalNodesFactory.LastIndexOfCodePointRawNodeGen;
import com.oracle.truffle.api.strings.TStringInternalNodesFactory.LastIndexOfStringRawNodeGen;
import com.oracle.truffle.api.strings.TStringInternalNodesFactory.RawIndexToCodePointIndexNodeGen;
import com.oracle.truffle.api.strings.TStringInternalNodesFactory.RegionEqualsNodeGen;
import com.oracle.truffle.api.strings.TStringInternalNodesFactory.StrideFromCodeRangeNodeGen;
import com.oracle.truffle.api.strings.TStringInternalNodesFactory.TransCodeNodeGen;
import com.oracle.truffle.api.strings.TStringOpsNodes.CalculateHashCodeNode;
import com.oracle.truffle.api.strings.TStringOpsNodes.IndexOfAnyCharNode;
import com.oracle.truffle.api.strings.TStringOpsNodes.IndexOfAnyIntNode;
import com.oracle.truffle.api.strings.TStringOpsNodesFactory.CalculateHashCodeNodeGen;
import com.oracle.truffle.api.strings.TStringOpsNodesFactory.IndexOfAnyCharNodeGen;
import com.oracle.truffle.api.strings.TStringOpsNodesFactory.IndexOfAnyIntNodeGen;
import com.oracle.truffle.api.strings.TruffleString.AsManagedNode;
import com.oracle.truffle.api.strings.TruffleString.AsNativeNode;
import com.oracle.truffle.api.strings.TruffleString.AsTruffleStringNode;
import com.oracle.truffle.api.strings.TruffleString.ByteIndexOfAnyByteNode;
import com.oracle.truffle.api.strings.TruffleString.ByteIndexOfCodePointNode;
import com.oracle.truffle.api.strings.TruffleString.ByteIndexOfCodePointSetNode;
import com.oracle.truffle.api.strings.TruffleString.ByteIndexOfStringNode;
import com.oracle.truffle.api.strings.TruffleString.ByteIndexToCodePointIndexNode;
import com.oracle.truffle.api.strings.TruffleString.CharIndexOfAnyCharUTF16Node;
import com.oracle.truffle.api.strings.TruffleString.CodePointAtByteIndexNode;
import com.oracle.truffle.api.strings.TruffleString.CodePointAtIndexNode;
import com.oracle.truffle.api.strings.TruffleString.CodePointIndexToByteIndexNode;
import com.oracle.truffle.api.strings.TruffleString.CodePointLengthNode;
import com.oracle.truffle.api.strings.TruffleString.CodePointSet;
import com.oracle.truffle.api.strings.TruffleString.CodeRange;
import com.oracle.truffle.api.strings.TruffleString.CodeRangeEqualsNode;
import com.oracle.truffle.api.strings.TruffleString.CompactionLevel;
import com.oracle.truffle.api.strings.TruffleString.CompareBytesNode;
import com.oracle.truffle.api.strings.TruffleString.CompareCharsUTF16Node;
import com.oracle.truffle.api.strings.TruffleString.CompareIntsUTF32Node;
import com.oracle.truffle.api.strings.TruffleString.ConcatNode;
import com.oracle.truffle.api.strings.TruffleString.CopyToByteArrayNode;
import com.oracle.truffle.api.strings.TruffleString.CopyToNativeMemoryNode;
import com.oracle.truffle.api.strings.TruffleString.CreateBackwardCodePointIteratorNode;
import com.oracle.truffle.api.strings.TruffleString.CreateCodePointIteratorNode;
import com.oracle.truffle.api.strings.TruffleString.Encoding;
import com.oracle.truffle.api.strings.TruffleString.EqualNode;
import com.oracle.truffle.api.strings.TruffleString.ErrorHandling;
import com.oracle.truffle.api.strings.TruffleString.ForceEncodingNode;
import com.oracle.truffle.api.strings.TruffleString.FromByteArrayNode;
import com.oracle.truffle.api.strings.TruffleString.FromCharArrayUTF16Node;
import com.oracle.truffle.api.strings.TruffleString.FromCodePointNode;
import com.oracle.truffle.api.strings.TruffleString.FromIntArrayUTF32Node;
import com.oracle.truffle.api.strings.TruffleString.FromJavaStringNode;
import com.oracle.truffle.api.strings.TruffleString.FromLongNode;
import com.oracle.truffle.api.strings.TruffleString.GetByteCodeRangeNode;
import com.oracle.truffle.api.strings.TruffleString.GetCodeRangeImpreciseNode;
import com.oracle.truffle.api.strings.TruffleString.GetCodeRangeNode;
import com.oracle.truffle.api.strings.TruffleString.GetInternalByteArrayNode;
import com.oracle.truffle.api.strings.TruffleString.GetInternalNativePointerNode;
import com.oracle.truffle.api.strings.TruffleString.GetStringCompactionLevelNode;
import com.oracle.truffle.api.strings.TruffleString.HashCodeNode;
import com.oracle.truffle.api.strings.TruffleString.IndexOfStringNode;
import com.oracle.truffle.api.strings.TruffleString.IntIndexOfAnyIntUTF32Node;
import com.oracle.truffle.api.strings.TruffleString.InternalAsTruffleStringNode;
import com.oracle.truffle.api.strings.TruffleString.InternalCopyToByteArrayNode;
import com.oracle.truffle.api.strings.TruffleString.InternalSwitchEncodingNode;
import com.oracle.truffle.api.strings.TruffleString.IsValidNode;
import com.oracle.truffle.api.strings.TruffleString.LastByteIndexOfCodePointNode;
import com.oracle.truffle.api.strings.TruffleString.LastByteIndexOfStringNode;
import com.oracle.truffle.api.strings.TruffleString.MaterializeNode;
import com.oracle.truffle.api.strings.TruffleString.NumberFormatException;
import com.oracle.truffle.api.strings.TruffleString.ReadCharUTF16Node;
import com.oracle.truffle.api.strings.TruffleString.RegionEqualByteIndexNode;
import com.oracle.truffle.api.strings.TruffleString.RegionEqualNode;
import com.oracle.truffle.api.strings.TruffleString.RepeatNode;
import com.oracle.truffle.api.strings.TruffleString.SubstringByteIndexNode;
import com.oracle.truffle.api.strings.TruffleString.SwitchEncodingNode;
import com.oracle.truffle.api.strings.TruffleString.ToIndexableNode;
import com.oracle.truffle.api.strings.TruffleString.ToJavaStringNode;
import com.oracle.truffle.api.strings.TruffleString.WithMask;
import com.oracle.truffle.api.strings.TruffleString.WithMask.CreateNode;
import com.oracle.truffle.api.strings.TruffleString.WithMask.CreateUTF16Node;
import com.oracle.truffle.api.strings.TruffleString.WithMask.CreateUTF32Node;
import com.oracle.truffle.api.strings.TruffleStringIterator.InternalNextNode;
import com.oracle.truffle.api.strings.TruffleStringIteratorFactory.InternalNextNodeGen;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.VarHandle;
import java.lang.invoke.MethodHandles.Lookup;
import java.util.Objects;
@GeneratedBy(TruffleString.class)
@SuppressWarnings("javadoc")
public final class TruffleStringFactory {
@GeneratedBy(WithMask.class)
public static final class WithMaskFactory {
/**
* Debug Info:
* Specialization {@link CreateNode#doCreate}
* Activation probability: 1.00000
* With/without class size: 16/0 bytes
*
*/
@GeneratedBy(CreateNode.class)
@SuppressWarnings("javadoc")
static final class CreateNodeGen extends CreateNode {
private static final Uncached UNCACHED = new Uncached();
private CreateNodeGen() {
}
@Override
public WithMask execute(AbstractTruffleString arg0Value, byte[] arg1Value, Encoding arg2Value) {
return doCreate(arg0Value, arg1Value, arg2Value);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static CreateNode create() {
return new CreateNodeGen();
}
@NeverDefault
public static CreateNode getUncached() {
return CreateNodeGen.UNCACHED;
}
@GeneratedBy(CreateNode.class)
@DenyReplace
private static final class Uncached extends CreateNode {
@TruffleBoundary
@Override
public WithMask execute(AbstractTruffleString arg0Value, byte[] arg1Value, Encoding arg2Value) {
return doCreate(arg0Value, arg1Value, arg2Value);
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link CreateUTF16Node#doCreate}
* Activation probability: 1.00000
* With/without class size: 16/0 bytes
*
*/
@GeneratedBy(CreateUTF16Node.class)
@SuppressWarnings("javadoc")
static final class CreateUTF16NodeGen extends CreateUTF16Node {
private static final Uncached UNCACHED = new Uncached();
private CreateUTF16NodeGen() {
}
@Override
public WithMask execute(AbstractTruffleString arg0Value, char[] arg1Value) {
return doCreate(arg0Value, arg1Value);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static CreateUTF16Node create() {
return new CreateUTF16NodeGen();
}
@NeverDefault
public static CreateUTF16Node getUncached() {
return CreateUTF16NodeGen.UNCACHED;
}
@GeneratedBy(CreateUTF16Node.class)
@DenyReplace
private static final class Uncached extends CreateUTF16Node {
@TruffleBoundary
@Override
public WithMask execute(AbstractTruffleString arg0Value, char[] arg1Value) {
return doCreate(arg0Value, arg1Value);
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link CreateUTF32Node#doCreate}
* Activation probability: 1.00000
* With/without class size: 16/0 bytes
*
*/
@GeneratedBy(CreateUTF32Node.class)
@SuppressWarnings("javadoc")
static final class CreateUTF32NodeGen extends CreateUTF32Node {
private static final Uncached UNCACHED = new Uncached();
private CreateUTF32NodeGen() {
}
@Override
public WithMask execute(AbstractTruffleString arg0Value, int[] arg1Value) {
return doCreate(arg0Value, arg1Value);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static CreateUTF32Node create() {
return new CreateUTF32NodeGen();
}
@NeverDefault
public static CreateUTF32Node getUncached() {
return CreateUTF32NodeGen.UNCACHED;
}
@GeneratedBy(CreateUTF32Node.class)
@DenyReplace
private static final class Uncached extends CreateUTF32Node {
@TruffleBoundary
@Override
public WithMask execute(AbstractTruffleString arg0Value, int[] arg1Value) {
return doCreate(arg0Value, arg1Value);
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
}
/**
* Debug Info:
* Specialization {@link FromCodePointNode#fromCodePoint}
* Activation probability: 1.00000
* With/without class size: 24/2 bytes
*
*/
@GeneratedBy(FromCodePointNode.class)
@SuppressWarnings("javadoc")
static final class FromCodePointNodeGen extends FromCodePointNode {
private static final StateField STATE_0_FromCodePointNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link FromCodePointNode#fromCodePoint}
* Parameter: {@link InlinedConditionProfile} bytesProfile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_BYTES_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_FromCodePointNode_UPDATER.subUpdater(0, 2)));
/**
* Source Info:
* Specialization: {@link FromCodePointNode#fromCodePoint}
* Parameter: {@link InlinedConditionProfile} utf8Profile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_UTF8_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_FromCodePointNode_UPDATER.subUpdater(2, 2)));
/**
* Source Info:
* Specialization: {@link FromCodePointNode#fromCodePoint}
* Parameter: {@link InlinedConditionProfile} utf16Profile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_UTF16_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_FromCodePointNode_UPDATER.subUpdater(4, 2)));
/**
* Source Info:
* Specialization: {@link FromCodePointNode#fromCodePoint}
* Parameter: {@link InlinedConditionProfile} utf32Profile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_UTF32_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_FromCodePointNode_UPDATER.subUpdater(6, 2)));
/**
* Source Info:
* Specialization: {@link FromCodePointNode#fromCodePoint}
* Parameter: {@link InlinedConditionProfile} exoticProfile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_EXOTIC_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_FromCodePointNode_UPDATER.subUpdater(8, 2)));
/**
* Source Info:
* Specialization: {@link FromCodePointNode#fromCodePoint}
* Parameter: {@link InlinedConditionProfile} bmpProfile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_BMP_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_FromCodePointNode_UPDATER.subUpdater(10, 2)));
/**
* Source Info:
* Specialization: {@link FromCodePointNode#fromCodePoint}
* Parameter: {@link InlinedBranchProfile} invalidCodePoint
* Inline method: {@link InlinedBranchProfile#inline}
*/
private static final InlinedBranchProfile INLINED_INVALID_CODE_POINT_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, STATE_0_FromCodePointNode_UPDATER.subUpdater(12, 1)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-1: InlinedCache
* Specialization: {@link FromCodePointNode#fromCodePoint}
* Parameter: {@link InlinedConditionProfile} bytesProfile
* Inline method: {@link InlinedConditionProfile#inline}
* 2-3: InlinedCache
* Specialization: {@link FromCodePointNode#fromCodePoint}
* Parameter: {@link InlinedConditionProfile} utf8Profile
* Inline method: {@link InlinedConditionProfile#inline}
* 4-5: InlinedCache
* Specialization: {@link FromCodePointNode#fromCodePoint}
* Parameter: {@link InlinedConditionProfile} utf16Profile
* Inline method: {@link InlinedConditionProfile#inline}
* 6-7: InlinedCache
* Specialization: {@link FromCodePointNode#fromCodePoint}
* Parameter: {@link InlinedConditionProfile} utf32Profile
* Inline method: {@link InlinedConditionProfile#inline}
* 8-9: InlinedCache
* Specialization: {@link FromCodePointNode#fromCodePoint}
* Parameter: {@link InlinedConditionProfile} exoticProfile
* Inline method: {@link InlinedConditionProfile#inline}
* 10-11: InlinedCache
* Specialization: {@link FromCodePointNode#fromCodePoint}
* Parameter: {@link InlinedConditionProfile} bmpProfile
* Inline method: {@link InlinedConditionProfile#inline}
* 12: InlinedCache
* Specialization: {@link FromCodePointNode#fromCodePoint}
* Parameter: {@link InlinedBranchProfile} invalidCodePoint
* Inline method: {@link InlinedBranchProfile#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
private FromCodePointNodeGen() {
}
@Override
public TruffleString execute(int arg0Value, Encoding arg1Value, boolean arg2Value) {
return fromCodePoint(arg0Value, arg1Value, arg2Value, INLINED_BYTES_PROFILE_, INLINED_UTF8_PROFILE_, INLINED_UTF16_PROFILE_, INLINED_UTF32_PROFILE_, INLINED_EXOTIC_PROFILE_, INLINED_BMP_PROFILE_, INLINED_INVALID_CODE_POINT_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static FromCodePointNode create() {
return new FromCodePointNodeGen();
}
@NeverDefault
public static FromCodePointNode getUncached() {
return FromCodePointNodeGen.UNCACHED;
}
@GeneratedBy(FromCodePointNode.class)
@DenyReplace
private static final class Uncached extends FromCodePointNode {
@TruffleBoundary
@Override
public TruffleString execute(int arg0Value, Encoding arg1Value, boolean arg2Value) {
return fromCodePoint(arg0Value, arg1Value, arg2Value, (InlinedConditionProfile.getUncached()), (InlinedConditionProfile.getUncached()), (InlinedConditionProfile.getUncached()), (InlinedConditionProfile.getUncached()), (InlinedConditionProfile.getUncached()), (InlinedConditionProfile.getUncached()), (InlinedBranchProfile.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link FromLongNode#doLazy}
* Activation probability: 0.48333
* With/without class size: 9/0 bytes
* Specialization {@link FromLongNode#doEager}
* Activation probability: 0.33333
* With/without class size: 8/0 bytes
* Specialization {@link FromLongNode#unsupported}
* Activation probability: 0.18333
* With/without class size: 6/0 bytes
*
*/
@GeneratedBy(FromLongNode.class)
@SuppressWarnings("javadoc")
static final class FromLongNodeGen extends FromLongNode {
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0: SpecializationActive {@link FromLongNode#doLazy}
* 1: SpecializationActive {@link FromLongNode#doEager}
* 2: SpecializationActive {@link FromLongNode#unsupported}
*
*/
@CompilationFinal private int state_0_;
private FromLongNodeGen() {
}
@Override
public TruffleString execute(long arg0Value, Encoding arg1Value, boolean arg2Value) {
int state_0 = this.state_0_;
if (state_0 != 0 /* is SpecializationActive[TruffleString.FromLongNode.doLazy(long, Encoding, boolean)] || SpecializationActive[TruffleString.FromLongNode.doEager(long, Encoding, boolean)] || SpecializationActive[TruffleString.FromLongNode.unsupported(long, Encoding, boolean)] */) {
if ((state_0 & 0b1) != 0 /* is SpecializationActive[TruffleString.FromLongNode.doLazy(long, Encoding, boolean)] */) {
if ((TStringGuards.is7BitCompatible(arg1Value)) && (arg2Value)) {
return FromLongNode.doLazy(arg0Value, arg1Value, arg2Value);
}
}
if ((state_0 & 0b10) != 0 /* is SpecializationActive[TruffleString.FromLongNode.doEager(long, Encoding, boolean)] */) {
if ((TStringGuards.is7BitCompatible(arg1Value)) && (!(arg2Value))) {
return FromLongNode.doEager(arg0Value, arg1Value, arg2Value);
}
}
if ((state_0 & 0b100) != 0 /* is SpecializationActive[TruffleString.FromLongNode.unsupported(long, Encoding, boolean)] */) {
if ((!(TStringGuards.is7BitCompatible(arg1Value)))) {
return FromLongNode.unsupported(arg0Value, arg1Value, arg2Value);
}
}
}
CompilerDirectives.transferToInterpreterAndInvalidate();
return executeAndSpecialize(arg0Value, arg1Value, arg2Value);
}
private TruffleString executeAndSpecialize(long arg0Value, Encoding arg1Value, boolean arg2Value) {
int state_0 = this.state_0_;
if ((TStringGuards.is7BitCompatible(arg1Value)) && (arg2Value)) {
state_0 = state_0 | 0b1 /* add SpecializationActive[TruffleString.FromLongNode.doLazy(long, Encoding, boolean)] */;
this.state_0_ = state_0;
return FromLongNode.doLazy(arg0Value, arg1Value, arg2Value);
}
if ((TStringGuards.is7BitCompatible(arg1Value)) && (!(arg2Value))) {
state_0 = state_0 | 0b10 /* add SpecializationActive[TruffleString.FromLongNode.doEager(long, Encoding, boolean)] */;
this.state_0_ = state_0;
return FromLongNode.doEager(arg0Value, arg1Value, arg2Value);
}
if ((!(TStringGuards.is7BitCompatible(arg1Value)))) {
state_0 = state_0 | 0b100 /* add SpecializationActive[TruffleString.FromLongNode.unsupported(long, Encoding, boolean)] */;
this.state_0_ = state_0;
return FromLongNode.unsupported(arg0Value, arg1Value, arg2Value);
}
throw new UnsupportedSpecializationException(this, new Node[] {null, null, null}, arg0Value, arg1Value, arg2Value);
}
@Override
public NodeCost getCost() {
int state_0 = this.state_0_;
if (state_0 == 0) {
return NodeCost.UNINITIALIZED;
} else {
if ((state_0 & (state_0 - 1)) == 0 /* is-single */) {
return NodeCost.MONOMORPHIC;
}
}
return NodeCost.POLYMORPHIC;
}
@NeverDefault
public static FromLongNode create() {
return new FromLongNodeGen();
}
@NeverDefault
public static FromLongNode getUncached() {
return FromLongNodeGen.UNCACHED;
}
@GeneratedBy(FromLongNode.class)
@DenyReplace
private static final class Uncached extends FromLongNode {
@TruffleBoundary
@Override
public TruffleString execute(long arg0Value, Encoding arg1Value, boolean arg2Value) {
if ((TStringGuards.is7BitCompatible(arg1Value)) && (arg2Value)) {
return FromLongNode.doLazy(arg0Value, arg1Value, arg2Value);
}
if ((TStringGuards.is7BitCompatible(arg1Value)) && (!(arg2Value))) {
return FromLongNode.doEager(arg0Value, arg1Value, arg2Value);
}
if ((!(TStringGuards.is7BitCompatible(arg1Value)))) {
return FromLongNode.unsupported(arg0Value, arg1Value, arg2Value);
}
throw new UnsupportedSpecializationException(this, new Node[] {null, null, null}, arg0Value, arg1Value, arg2Value);
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link FromByteArrayNode#fromByteArray}
* Activation probability: 1.00000
* With/without class size: 24/3 bytes
*
*/
@GeneratedBy(FromByteArrayNode.class)
@SuppressWarnings("javadoc")
static final class FromByteArrayNodeGen extends FromByteArrayNode {
private static final StateField STATE_0_FromByteArrayNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link FromByteArrayNode#fromByteArray}
* Parameter: {@link FromBufferWithStringCompactionNode} fromBufferWithStringCompactionNode
* Inline method: {@link FromBufferWithStringCompactionNodeGen#inline}
*/
private static final FromBufferWithStringCompactionNode INLINED_FROM_BUFFER_WITH_STRING_COMPACTION_NODE_ = FromBufferWithStringCompactionNodeGen.inline(InlineTarget.create(FromBufferWithStringCompactionNode.class, STATE_0_FromByteArrayNode_UPDATER.subUpdater(0, 20)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-19: InlinedCache
* Specialization: {@link FromByteArrayNode#fromByteArray}
* Parameter: {@link FromBufferWithStringCompactionNode} fromBufferWithStringCompactionNode
* Inline method: {@link FromBufferWithStringCompactionNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
private FromByteArrayNodeGen() {
}
@Override
public TruffleString execute(byte[] arg0Value, int arg1Value, int arg2Value, Encoding arg3Value, boolean arg4Value) {
return fromByteArray(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, INLINED_FROM_BUFFER_WITH_STRING_COMPACTION_NODE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static FromByteArrayNode create() {
return new FromByteArrayNodeGen();
}
@NeverDefault
public static FromByteArrayNode getUncached() {
return FromByteArrayNodeGen.UNCACHED;
}
@GeneratedBy(FromByteArrayNode.class)
@DenyReplace
private static final class Uncached extends FromByteArrayNode {
@TruffleBoundary
@Override
public TruffleString execute(byte[] arg0Value, int arg1Value, int arg2Value, Encoding arg3Value, boolean arg4Value) {
return fromByteArray(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, (FromBufferWithStringCompactionNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link FromCharArrayUTF16Node#doNonEmpty}
* Activation probability: 1.00000
* With/without class size: 24/1 bytes
*
*/
@GeneratedBy(FromCharArrayUTF16Node.class)
@SuppressWarnings("javadoc")
static final class FromCharArrayUTF16NodeGen extends FromCharArrayUTF16Node {
private static final StateField STATE_0_FromCharArrayUTF16Node_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link FromCharArrayUTF16Node#doNonEmpty}
* Parameter: {@link InlinedConditionProfile} utf16CompactProfile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_UTF16_COMPACT_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_FromCharArrayUTF16Node_UPDATER.subUpdater(0, 2)));
/**
* Source Info:
* Specialization: {@link FromCharArrayUTF16Node#doNonEmpty}
* Parameter: {@link InlinedBranchProfile} outOfMemoryProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private static final InlinedBranchProfile INLINED_OUT_OF_MEMORY_PROFILE_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, STATE_0_FromCharArrayUTF16Node_UPDATER.subUpdater(2, 1)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-1: InlinedCache
* Specialization: {@link FromCharArrayUTF16Node#doNonEmpty}
* Parameter: {@link InlinedConditionProfile} utf16CompactProfile
* Inline method: {@link InlinedConditionProfile#inline}
* 2: InlinedCache
* Specialization: {@link FromCharArrayUTF16Node#doNonEmpty}
* Parameter: {@link InlinedBranchProfile} outOfMemoryProfile
* Inline method: {@link InlinedBranchProfile#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
private FromCharArrayUTF16NodeGen() {
}
@Override
public TruffleString execute(char[] arg0Value, int arg1Value, int arg2Value) {
return doNonEmpty(arg0Value, arg1Value, arg2Value, INLINED_UTF16_COMPACT_PROFILE_, INLINED_OUT_OF_MEMORY_PROFILE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static FromCharArrayUTF16Node create() {
return new FromCharArrayUTF16NodeGen();
}
@NeverDefault
public static FromCharArrayUTF16Node getUncached() {
return FromCharArrayUTF16NodeGen.UNCACHED;
}
@GeneratedBy(FromCharArrayUTF16Node.class)
@DenyReplace
private static final class Uncached extends FromCharArrayUTF16Node {
@TruffleBoundary
@Override
public TruffleString execute(char[] arg0Value, int arg1Value, int arg2Value) {
return doNonEmpty(arg0Value, arg1Value, arg2Value, (InlinedConditionProfile.getUncached()), (InlinedBranchProfile.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link FromJavaStringNode#doUTF16}
* Activation probability: 1.00000
* With/without class size: 68/47 bytes
*
*/
@GeneratedBy(FromJavaStringNode.class)
@SuppressWarnings("javadoc")
static final class FromJavaStringNodeGen extends FromJavaStringNode {
private static final StateField STATE_0_FromJavaStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField STATE_1_FromJavaStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_1_");
private static final StateField STATE_2_FromJavaStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_2_");
private static final StateField STATE_3_FromJavaStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_3_");
private static final StateField STATE_4_FromJavaStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_4_");
private static final StateField STATE_5_FromJavaStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_5_");
private static final StateField STATE_6_FromJavaStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_6_");
private static final StateField STATE_7_FromJavaStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_7_");
private static final StateField STATE_8_FromJavaStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_8_");
private static final StateField STATE_9_FromJavaStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_9_");
private static final StateField STATE_10_FromJavaStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_10_");
private static final StateField STATE_11_FromJavaStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_11_");
/**
* Source Info:
* Specialization: {@link FromJavaStringNode#doUTF16}
* Parameter: {@link FromJavaStringUTF16Node} fromJavaStringUTF16Node
* Inline method: {@link FromJavaStringUTF16NodeGen#inline}
*/
private static final FromJavaStringUTF16Node INLINED_FROM_JAVA_STRING_U_T_F16_NODE_ = FromJavaStringUTF16NodeGen.inline(InlineTarget.create(FromJavaStringUTF16Node.class, STATE_0_FromJavaStringNode_UPDATER.subUpdater(0, 2)));
/**
* Source Info:
* Specialization: {@link FromJavaStringNode#doUTF16}
* Parameter: {@link InternalSwitchEncodingNode} switchEncodingNode
* Inline method: {@link InternalSwitchEncodingNodeGen#inline}
*/
private static final InternalSwitchEncodingNode INLINED_SWITCH_ENCODING_NODE_ = InternalSwitchEncodingNodeGen.inline(InlineTarget.create(InternalSwitchEncodingNode.class, STATE_1_FromJavaStringNode_UPDATER.subUpdater(0, 31), STATE_2_FromJavaStringNode_UPDATER.subUpdater(0, 31), STATE_3_FromJavaStringNode_UPDATER.subUpdater(0, 31), STATE_4_FromJavaStringNode_UPDATER.subUpdater(0, 29), STATE_5_FromJavaStringNode_UPDATER.subUpdater(0, 32), STATE_6_FromJavaStringNode_UPDATER.subUpdater(0, 26), STATE_7_FromJavaStringNode_UPDATER.subUpdater(0, 25), STATE_8_FromJavaStringNode_UPDATER.subUpdater(0, 25), STATE_9_FromJavaStringNode_UPDATER.subUpdater(0, 25), STATE_10_FromJavaStringNode_UPDATER.subUpdater(0, 24), STATE_11_FromJavaStringNode_UPDATER.subUpdater(0, 32), STATE_0_FromJavaStringNode_UPDATER.subUpdater(2, 25), ReferenceField.create(MethodHandles.lookup(), "switchEncodingNode__field12_", Node.class)));
/**
* Source Info:
* Specialization: {@link FromJavaStringNode#doUTF16}
* Parameter: {@link InlinedConditionProfile} utf16Profile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_UTF16_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_FromJavaStringNode_UPDATER.subUpdater(27, 2)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-1: InlinedCache
* Specialization: {@link FromJavaStringNode#doUTF16}
* Parameter: {@link FromJavaStringUTF16Node} fromJavaStringUTF16Node
* Inline method: {@link FromJavaStringUTF16NodeGen#inline}
* 2-26: InlinedCache
* Specialization: {@link FromJavaStringNode#doUTF16}
* Parameter: {@link InternalSwitchEncodingNode} switchEncodingNode
* Inline method: {@link InternalSwitchEncodingNodeGen#inline}
* 27-28: InlinedCache
* Specialization: {@link FromJavaStringNode#doUTF16}
* Parameter: {@link InlinedConditionProfile} utf16Profile
* Inline method: {@link InlinedConditionProfile#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* State Info:
* 0-30: InlinedCache
* Specialization: {@link FromJavaStringNode#doUTF16}
* Parameter: {@link InternalSwitchEncodingNode} switchEncodingNode
* Inline method: {@link InternalSwitchEncodingNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_1_;
/**
* State Info:
* 0-30: InlinedCache
* Specialization: {@link FromJavaStringNode#doUTF16}
* Parameter: {@link InternalSwitchEncodingNode} switchEncodingNode
* Inline method: {@link InternalSwitchEncodingNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_2_;
/**
* State Info:
* 0-30: InlinedCache
* Specialization: {@link FromJavaStringNode#doUTF16}
* Parameter: {@link InternalSwitchEncodingNode} switchEncodingNode
* Inline method: {@link InternalSwitchEncodingNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_3_;
/**
* State Info:
* 0-28: InlinedCache
* Specialization: {@link FromJavaStringNode#doUTF16}
* Parameter: {@link InternalSwitchEncodingNode} switchEncodingNode
* Inline method: {@link InternalSwitchEncodingNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_4_;
/**
* State Info:
* 0-31: InlinedCache
* Specialization: {@link FromJavaStringNode#doUTF16}
* Parameter: {@link InternalSwitchEncodingNode} switchEncodingNode
* Inline method: {@link InternalSwitchEncodingNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_5_;
/**
* State Info:
* 0-25: InlinedCache
* Specialization: {@link FromJavaStringNode#doUTF16}
* Parameter: {@link InternalSwitchEncodingNode} switchEncodingNode
* Inline method: {@link InternalSwitchEncodingNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_6_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link FromJavaStringNode#doUTF16}
* Parameter: {@link InternalSwitchEncodingNode} switchEncodingNode
* Inline method: {@link InternalSwitchEncodingNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_7_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link FromJavaStringNode#doUTF16}
* Parameter: {@link InternalSwitchEncodingNode} switchEncodingNode
* Inline method: {@link InternalSwitchEncodingNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_8_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link FromJavaStringNode#doUTF16}
* Parameter: {@link InternalSwitchEncodingNode} switchEncodingNode
* Inline method: {@link InternalSwitchEncodingNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_9_;
/**
* State Info:
* 0-23: InlinedCache
* Specialization: {@link FromJavaStringNode#doUTF16}
* Parameter: {@link InternalSwitchEncodingNode} switchEncodingNode
* Inline method: {@link InternalSwitchEncodingNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_10_;
/**
* State Info:
* 0-31: InlinedCache
* Specialization: {@link FromJavaStringNode#doUTF16}
* Parameter: {@link InternalSwitchEncodingNode} switchEncodingNode
* Inline method: {@link InternalSwitchEncodingNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_11_;
/**
* Source Info:
* Specialization: {@link FromJavaStringNode#doUTF16}
* Parameter: {@link InternalSwitchEncodingNode} switchEncodingNode
* Inline method: {@link InternalSwitchEncodingNodeGen#inline}
* Inline field: {@link Node} field12
*/
@Child @UnsafeAccessedField @SuppressWarnings("unused") private Node switchEncodingNode__field12_;
private FromJavaStringNodeGen() {
}
@Override
public TruffleString execute(String arg0Value, int arg1Value, int arg2Value, Encoding arg3Value, boolean arg4Value) {
return doUTF16(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, INLINED_FROM_JAVA_STRING_U_T_F16_NODE_, INLINED_SWITCH_ENCODING_NODE_, INLINED_UTF16_PROFILE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static FromJavaStringNode create() {
return new FromJavaStringNodeGen();
}
@NeverDefault
public static FromJavaStringNode getUncached() {
return FromJavaStringNodeGen.UNCACHED;
}
@GeneratedBy(FromJavaStringNode.class)
@DenyReplace
private static final class Uncached extends FromJavaStringNode {
@TruffleBoundary
@Override
public TruffleString execute(String arg0Value, int arg1Value, int arg2Value, Encoding arg3Value, boolean arg4Value) {
return doUTF16(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, (FromJavaStringUTF16NodeGen.getUncached()), (InternalSwitchEncodingNodeGen.getUncached()), (InlinedConditionProfile.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link FromIntArrayUTF32Node#doNonEmpty}
* Activation probability: 1.00000
* With/without class size: 24/1 bytes
*
*/
@GeneratedBy(FromIntArrayUTF32Node.class)
@SuppressWarnings("javadoc")
static final class FromIntArrayUTF32NodeGen extends FromIntArrayUTF32Node {
private static final StateField STATE_0_FromIntArrayUTF32Node_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link FromIntArrayUTF32Node#doNonEmpty}
* Parameter: {@link InlinedConditionProfile} utf32Compact0Profile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_UTF32_COMPACT0_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_FromIntArrayUTF32Node_UPDATER.subUpdater(0, 2)));
/**
* Source Info:
* Specialization: {@link FromIntArrayUTF32Node#doNonEmpty}
* Parameter: {@link InlinedConditionProfile} utf32Compact1Profile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_UTF32_COMPACT1_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_FromIntArrayUTF32Node_UPDATER.subUpdater(2, 2)));
/**
* Source Info:
* Specialization: {@link FromIntArrayUTF32Node#doNonEmpty}
* Parameter: {@link InlinedBranchProfile} outOfMemoryProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private static final InlinedBranchProfile INLINED_OUT_OF_MEMORY_PROFILE_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, STATE_0_FromIntArrayUTF32Node_UPDATER.subUpdater(4, 1)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-1: InlinedCache
* Specialization: {@link FromIntArrayUTF32Node#doNonEmpty}
* Parameter: {@link InlinedConditionProfile} utf32Compact0Profile
* Inline method: {@link InlinedConditionProfile#inline}
* 2-3: InlinedCache
* Specialization: {@link FromIntArrayUTF32Node#doNonEmpty}
* Parameter: {@link InlinedConditionProfile} utf32Compact1Profile
* Inline method: {@link InlinedConditionProfile#inline}
* 4: InlinedCache
* Specialization: {@link FromIntArrayUTF32Node#doNonEmpty}
* Parameter: {@link InlinedBranchProfile} outOfMemoryProfile
* Inline method: {@link InlinedBranchProfile#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
private FromIntArrayUTF32NodeGen() {
}
@Override
public TruffleString execute(int[] arg0Value, int arg1Value, int arg2Value) {
return doNonEmpty(arg0Value, arg1Value, arg2Value, INLINED_UTF32_COMPACT0_PROFILE_, INLINED_UTF32_COMPACT1_PROFILE_, INLINED_OUT_OF_MEMORY_PROFILE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static FromIntArrayUTF32Node create() {
return new FromIntArrayUTF32NodeGen();
}
@NeverDefault
public static FromIntArrayUTF32Node getUncached() {
return FromIntArrayUTF32NodeGen.UNCACHED;
}
@GeneratedBy(FromIntArrayUTF32Node.class)
@DenyReplace
private static final class Uncached extends FromIntArrayUTF32Node {
@TruffleBoundary
@Override
public TruffleString execute(int[] arg0Value, int arg1Value, int arg2Value) {
return doNonEmpty(arg0Value, arg1Value, arg2Value, (InlinedConditionProfile.getUncached()), (InlinedConditionProfile.getUncached()), (InlinedBranchProfile.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link com.oracle.truffle.api.strings.TruffleString.FromNativePointerNode#fromNativePointer}
* Activation probability: 1.00000
* With/without class size: 32/9 bytes
*
*/
@GeneratedBy(com.oracle.truffle.api.strings.TruffleString.FromNativePointerNode.class)
@SuppressWarnings("javadoc")
static final class FromNativePointerNodeGen extends com.oracle.truffle.api.strings.TruffleString.FromNativePointerNode {
private static final StateField STATE_0_FromNativePointerNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField STATE_1_FromNativePointerNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_1_");
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.FromNativePointerNode#fromNativePointer}
* Parameter: {@link com.oracle.truffle.api.strings.TStringInternalNodes.FromNativePointerNode} fromNativePointerNode
* Inline method: {@link com.oracle.truffle.api.strings.TStringInternalNodesFactory.FromNativePointerNodeGen#inline}
*/
private static final com.oracle.truffle.api.strings.TStringInternalNodes.FromNativePointerNode INLINED_FROM_NATIVE_POINTER_NODE_ = com.oracle.truffle.api.strings.TStringInternalNodesFactory.FromNativePointerNodeGen.inline(InlineTarget.create(com.oracle.truffle.api.strings.TStringInternalNodes.FromNativePointerNode.class, STATE_0_FromNativePointerNode_UPDATER.subUpdater(1, 14)));
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.FromNativePointerNode#fromNativePointer}
* Parameter: {@link FromBufferWithStringCompactionNode} fromBufferWithStringCompactionNode
* Inline method: {@link FromBufferWithStringCompactionNodeGen#inline}
*/
private static final FromBufferWithStringCompactionNode INLINED_FROM_BUFFER_WITH_STRING_COMPACTION_NODE_ = FromBufferWithStringCompactionNodeGen.inline(InlineTarget.create(FromBufferWithStringCompactionNode.class, STATE_1_FromNativePointerNode_UPDATER.subUpdater(0, 20)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0: SpecializationActive {@link com.oracle.truffle.api.strings.TruffleString.FromNativePointerNode#fromNativePointer}
* 1-14: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.FromNativePointerNode#fromNativePointer}
* Parameter: {@link com.oracle.truffle.api.strings.TStringInternalNodes.FromNativePointerNode} fromNativePointerNode
* Inline method: {@link com.oracle.truffle.api.strings.TStringInternalNodesFactory.FromNativePointerNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* State Info:
* 0-19: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.FromNativePointerNode#fromNativePointer}
* Parameter: {@link FromBufferWithStringCompactionNode} fromBufferWithStringCompactionNode
* Inline method: {@link FromBufferWithStringCompactionNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_1_;
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.FromNativePointerNode#fromNativePointer}
* Parameter: {@link Node} interopLibrary
*/
@Child private Node interopLibrary_;
private FromNativePointerNodeGen() {
}
@Override
public TruffleString execute(Object arg0Value, int arg1Value, int arg2Value, Encoding arg3Value, boolean arg4Value) {
int state_0 = this.state_0_;
if ((state_0 & 0b1) != 0 /* is SpecializationActive[TruffleString.FromNativePointerNode.fromNativePointer(Object, int, int, Encoding, boolean, Node, FromNativePointerNode, FromBufferWithStringCompactionNode)] */) {
{
Node interopLibrary__ = this.interopLibrary_;
if (interopLibrary__ != null) {
return fromNativePointer(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, interopLibrary__, INLINED_FROM_NATIVE_POINTER_NODE_, INLINED_FROM_BUFFER_WITH_STRING_COMPACTION_NODE_);
}
}
}
CompilerDirectives.transferToInterpreterAndInvalidate();
return executeAndSpecialize(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value);
}
private TruffleString executeAndSpecialize(Object arg0Value, int arg1Value, int arg2Value, Encoding arg3Value, boolean arg4Value) {
int state_0 = this.state_0_;
Node interopLibrary__ = this.insert((TStringAccessor.createInteropLibrary()));
Objects.requireNonNull(interopLibrary__, "Specialization 'fromNativePointer(Object, int, int, Encoding, boolean, Node, FromNativePointerNode, FromBufferWithStringCompactionNode)' cache 'interopLibrary' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'.");
VarHandle.storeStoreFence();
this.interopLibrary_ = interopLibrary__;
state_0 = state_0 | 0b1 /* add SpecializationActive[TruffleString.FromNativePointerNode.fromNativePointer(Object, int, int, Encoding, boolean, Node, FromNativePointerNode, FromBufferWithStringCompactionNode)] */;
this.state_0_ = state_0;
return fromNativePointer(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, interopLibrary__, INLINED_FROM_NATIVE_POINTER_NODE_, INLINED_FROM_BUFFER_WITH_STRING_COMPACTION_NODE_);
}
@Override
public NodeCost getCost() {
int state_0 = this.state_0_;
if ((state_0 & 0b1) == 0) {
return NodeCost.UNINITIALIZED;
} else {
return NodeCost.MONOMORPHIC;
}
}
@NeverDefault
public static com.oracle.truffle.api.strings.TruffleString.FromNativePointerNode create() {
return new com.oracle.truffle.api.strings.TruffleStringFactory.FromNativePointerNodeGen();
}
@NeverDefault
public static com.oracle.truffle.api.strings.TruffleString.FromNativePointerNode getUncached() {
return FromNativePointerNodeGen.UNCACHED;
}
@GeneratedBy(com.oracle.truffle.api.strings.TruffleString.FromNativePointerNode.class)
@DenyReplace
private static final class Uncached extends com.oracle.truffle.api.strings.TruffleString.FromNativePointerNode {
@TruffleBoundary
@Override
public TruffleString execute(Object arg0Value, int arg1Value, int arg2Value, Encoding arg3Value, boolean arg4Value) {
return fromNativePointer(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, (TStringAccessor.getUncachedInteropLibrary()), (com.oracle.truffle.api.strings.TStringInternalNodesFactory.FromNativePointerNodeGen.getUncached()), (FromBufferWithStringCompactionNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link AsTruffleStringNode#doDefault}
* Activation probability: 1.00000
* With/without class size: 28/8 bytes
*
*/
@GeneratedBy(AsTruffleStringNode.class)
@SuppressWarnings("javadoc")
static final class AsTruffleStringNodeGen extends AsTruffleStringNode {
private static final StateField STATE_0_AsTruffleStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField STATE_1_AsTruffleStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_1_");
/**
* Source Info:
* Specialization: {@link AsTruffleStringNode#doDefault}
* Parameter: {@link InternalAsTruffleStringNode} internalNode
* Inline method: {@link InternalAsTruffleStringNodeGen#inline}
*/
private static final InternalAsTruffleStringNode INLINED_INTERNAL_NODE_ = InternalAsTruffleStringNodeGen.inline(InlineTarget.create(InternalAsTruffleStringNode.class, STATE_0_AsTruffleStringNode_UPDATER.subUpdater(0, 31), STATE_1_AsTruffleStringNode_UPDATER.subUpdater(0, 31)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-30: InlinedCache
* Specialization: {@link AsTruffleStringNode#doDefault}
* Parameter: {@link InternalAsTruffleStringNode} internalNode
* Inline method: {@link InternalAsTruffleStringNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* State Info:
* 0-30: InlinedCache
* Specialization: {@link AsTruffleStringNode#doDefault}
* Parameter: {@link InternalAsTruffleStringNode} internalNode
* Inline method: {@link InternalAsTruffleStringNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_1_;
private AsTruffleStringNodeGen() {
}
@Override
public TruffleString execute(AbstractTruffleString arg0Value, Encoding arg1Value) {
return doDefault(arg0Value, arg1Value, INLINED_INTERNAL_NODE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static AsTruffleStringNode create() {
return new AsTruffleStringNodeGen();
}
@NeverDefault
public static AsTruffleStringNode getUncached() {
return AsTruffleStringNodeGen.UNCACHED;
}
@GeneratedBy(AsTruffleStringNode.class)
@DenyReplace
private static final class Uncached extends AsTruffleStringNode {
@TruffleBoundary
@Override
public TruffleString execute(AbstractTruffleString arg0Value, Encoding arg1Value) {
return doDefault(arg0Value, arg1Value, (InternalAsTruffleStringNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link InternalAsTruffleStringNode#immutable}
* Activation probability: 0.65000
* With/without class size: 11/0 bytes
* Specialization {@link InternalAsTruffleStringNode#fromMutableString}
* Activation probability: 0.35000
* With/without class size: 12/8 bytes
*
*/
@GeneratedBy(InternalAsTruffleStringNode.class)
@SuppressWarnings("javadoc")
static final class InternalAsTruffleStringNodeGen {
private static final Uncached UNCACHED = new Uncached();
@NeverDefault
public static InternalAsTruffleStringNode getUncached() {
return InternalAsTruffleStringNodeGen.UNCACHED;
}
/**
* Required Fields:
* - {@link Inlined#state_0_}
*
- {@link Inlined#state_1_}
*
*/
@NeverDefault
public static InternalAsTruffleStringNode inline(@RequiredField(bits = 31, value = StateField.class)@RequiredField(bits = 31, value = StateField.class) InlineTarget target) {
return new InternalAsTruffleStringNodeGen.Inlined(target);
}
@GeneratedBy(InternalAsTruffleStringNode.class)
@DenyReplace
private static final class Inlined extends InternalAsTruffleStringNode {
/**
* State Info:
* 0: SpecializationActive {@link InternalAsTruffleStringNode#immutable}
* 1: SpecializationActive {@link InternalAsTruffleStringNode#fromMutableString}
* 2-30: InlinedCache
* Specialization: {@link InternalAsTruffleStringNode#fromMutableString}
* Parameter: {@link FromBufferWithStringCompactionKnownAttributesNode} fromBufferWithStringCompactionNode
* Inline method: {@link FromBufferWithStringCompactionKnownAttributesNodeGen#inline}
*
*/
private final StateField state_0_;
/**
* State Info:
* 0-30: InlinedCache
* Specialization: {@link InternalAsTruffleStringNode#fromMutableString}
* Parameter: {@link FromBufferWithStringCompactionKnownAttributesNode} fromBufferWithStringCompactionNode
* Inline method: {@link FromBufferWithStringCompactionKnownAttributesNodeGen#inline}
*
*/
private final StateField state_1_;
/**
* Source Info:
* Specialization: {@link InternalAsTruffleStringNode#fromMutableString}
* Parameter: {@link FromBufferWithStringCompactionKnownAttributesNode} fromBufferWithStringCompactionNode
* Inline method: {@link FromBufferWithStringCompactionKnownAttributesNodeGen#inline}
*/
private final FromBufferWithStringCompactionKnownAttributesNode fromMutableString_fromBufferWithStringCompactionNode_;
private Inlined(InlineTarget target) {
assert target.getTargetClass().isAssignableFrom(InternalAsTruffleStringNode.class);
this.state_0_ = target.getState(0, 31);
this.state_1_ = target.getState(1, 31);
this.fromMutableString_fromBufferWithStringCompactionNode_ = FromBufferWithStringCompactionKnownAttributesNodeGen.inline(InlineTarget.create(FromBufferWithStringCompactionKnownAttributesNode.class, state_1_.subUpdater(0, 31), state_0_.subUpdater(2, 29)));
}
@Override
TruffleString execute(Node arg0Value, AbstractTruffleString arg1Value, Encoding arg2Value) {
int state_0 = this.state_0_.get(arg0Value);
if ((state_0 & 0b11) != 0 /* is SpecializationActive[TruffleString.InternalAsTruffleStringNode.immutable(TruffleString, Encoding)] || SpecializationActive[TruffleString.InternalAsTruffleStringNode.fromMutableString(Node, MutableTruffleString, Encoding, FromBufferWithStringCompactionKnownAttributesNode)] */) {
if ((state_0 & 0b1) != 0 /* is SpecializationActive[TruffleString.InternalAsTruffleStringNode.immutable(TruffleString, Encoding)] */ && arg1Value instanceof TruffleString) {
TruffleString arg1Value_ = (TruffleString) arg1Value;
return InternalAsTruffleStringNode.immutable(arg1Value_, arg2Value);
}
if ((state_0 & 0b10) != 0 /* is SpecializationActive[TruffleString.InternalAsTruffleStringNode.fromMutableString(Node, MutableTruffleString, Encoding, FromBufferWithStringCompactionKnownAttributesNode)] */ && arg1Value instanceof MutableTruffleString) {
MutableTruffleString arg1Value_ = (MutableTruffleString) arg1Value;
assert InlineSupport.validate(arg0Value, this.state_1_, this.state_0_);
return InternalAsTruffleStringNode.fromMutableString(arg0Value, arg1Value_, arg2Value, this.fromMutableString_fromBufferWithStringCompactionNode_);
}
}
CompilerDirectives.transferToInterpreterAndInvalidate();
return executeAndSpecialize(arg0Value, arg1Value, arg2Value);
}
private TruffleString executeAndSpecialize(Node arg0Value, AbstractTruffleString arg1Value, Encoding arg2Value) {
int state_0 = this.state_0_.get(arg0Value);
if (arg1Value instanceof TruffleString) {
TruffleString arg1Value_ = (TruffleString) arg1Value;
state_0 = state_0 | 0b1 /* add SpecializationActive[TruffleString.InternalAsTruffleStringNode.immutable(TruffleString, Encoding)] */;
this.state_0_.set(arg0Value, state_0);
return InternalAsTruffleStringNode.immutable(arg1Value_, arg2Value);
}
if (arg1Value instanceof MutableTruffleString) {
MutableTruffleString arg1Value_ = (MutableTruffleString) arg1Value;
state_0 = state_0 | 0b10 /* add SpecializationActive[TruffleString.InternalAsTruffleStringNode.fromMutableString(Node, MutableTruffleString, Encoding, FromBufferWithStringCompactionKnownAttributesNode)] */;
this.state_0_.set(arg0Value, state_0);
assert InlineSupport.validate(arg0Value, this.state_1_, this.state_0_);
return InternalAsTruffleStringNode.fromMutableString(arg0Value, arg1Value_, arg2Value, this.fromMutableString_fromBufferWithStringCompactionNode_);
}
throw new UnsupportedSpecializationException(this, new Node[] {null, null, null}, arg0Value, arg1Value, arg2Value);
}
@Override
public boolean isAdoptable() {
return false;
}
}
@GeneratedBy(InternalAsTruffleStringNode.class)
@DenyReplace
private static final class Uncached extends InternalAsTruffleStringNode {
@TruffleBoundary
@Override
TruffleString execute(Node arg0Value, AbstractTruffleString arg1Value, Encoding arg2Value) {
if (arg1Value instanceof TruffleString) {
TruffleString arg1Value_ = (TruffleString) arg1Value;
return InternalAsTruffleStringNode.immutable(arg1Value_, arg2Value);
}
if (arg1Value instanceof MutableTruffleString) {
MutableTruffleString arg1Value_ = (MutableTruffleString) arg1Value;
return InternalAsTruffleStringNode.fromMutableString(arg0Value, arg1Value_, arg2Value, (FromBufferWithStringCompactionKnownAttributesNode.getUncached()));
}
throw new UnsupportedSpecializationException(this, new Node[] {null, null, null}, arg0Value, arg1Value, arg2Value);
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link AsManagedNode#managedImmutable}
* Activation probability: 0.48333
* With/without class size: 9/0 bytes
* Specialization {@link AsManagedNode#nativeImmutable}
* Activation probability: 0.33333
* With/without class size: 10/1 bytes
* Specialization {@link AsManagedNode#mutable}
* Activation probability: 0.18333
* With/without class size: 6/0 bytes
*
*/
@GeneratedBy(AsManagedNode.class)
@SuppressWarnings("javadoc")
static final class AsManagedNodeGen extends AsManagedNode {
private static final StateField STATE_1_UPDATER = StateField.create(MethodHandles.lookup(), "state_1_");
private static final StateField STATE_2_UPDATER = StateField.create(MethodHandles.lookup(), "state_2_");
private static final StateField STATE_0_AsManagedNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link AsManagedNode#nativeImmutable}
* Parameter: {@link FromBufferWithStringCompactionKnownAttributesNode} attributesNode
* Inline method: {@link FromBufferWithStringCompactionKnownAttributesNodeGen#inline}
*/
private static final FromBufferWithStringCompactionKnownAttributesNode INLINED_ATTRIBUTES_NODE = FromBufferWithStringCompactionKnownAttributesNodeGen.inline(InlineTarget.create(FromBufferWithStringCompactionKnownAttributesNode.class, STATE_1_UPDATER.subUpdater(0, 31), STATE_2_UPDATER.subUpdater(0, 29)));
/**
* Source Info:
* Specialization: {@link AsManagedNode#nativeImmutable}
* Parameter: {@link InlinedConditionProfile} cacheHit
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_NATIVE_IMMUTABLE_CACHE_HIT_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_AsManagedNode_UPDATER.subUpdater(3, 2)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0: SpecializationActive {@link AsManagedNode#managedImmutable}
* 1: SpecializationActive {@link AsManagedNode#nativeImmutable}
* 2: SpecializationActive {@link AsManagedNode#mutable}
* 3-4: InlinedCache
* Specialization: {@link AsManagedNode#nativeImmutable}
* Parameter: {@link InlinedConditionProfile} cacheHit
* Inline method: {@link InlinedConditionProfile#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* State Info:
* 0-30: InlinedCache
* Specialization: {@link AsManagedNode#nativeImmutable}
* Parameter: {@link FromBufferWithStringCompactionKnownAttributesNode} attributesNode
* Inline method: {@link FromBufferWithStringCompactionKnownAttributesNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_1_;
/**
* State Info:
* 0-28: InlinedCache
* Specialization: {@link AsManagedNode#nativeImmutable}
* Parameter: {@link FromBufferWithStringCompactionKnownAttributesNode} attributesNode
* Inline method: {@link FromBufferWithStringCompactionKnownAttributesNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_2_;
private AsManagedNodeGen() {
}
@Override
public TruffleString execute(AbstractTruffleString arg0Value, Encoding arg1Value, boolean arg2Value) {
int state_0 = this.state_0_;
if ((state_0 & 0b111) != 0 /* is SpecializationActive[TruffleString.AsManagedNode.managedImmutable(TruffleString, Encoding, boolean)] || SpecializationActive[TruffleString.AsManagedNode.nativeImmutable(TruffleString, Encoding, boolean, InlinedConditionProfile, FromBufferWithStringCompactionKnownAttributesNode)] || SpecializationActive[TruffleString.AsManagedNode.mutable(MutableTruffleString, Encoding, boolean, FromBufferWithStringCompactionKnownAttributesNode)] */) {
if ((state_0 & 0b11) != 0 /* is SpecializationActive[TruffleString.AsManagedNode.managedImmutable(TruffleString, Encoding, boolean)] || SpecializationActive[TruffleString.AsManagedNode.nativeImmutable(TruffleString, Encoding, boolean, InlinedConditionProfile, FromBufferWithStringCompactionKnownAttributesNode)] */ && arg0Value instanceof TruffleString) {
TruffleString arg0Value_ = (TruffleString) arg0Value;
if ((state_0 & 0b1) != 0 /* is SpecializationActive[TruffleString.AsManagedNode.managedImmutable(TruffleString, Encoding, boolean)] */) {
if ((!(arg0Value_.isNative()))) {
return AsManagedNode.managedImmutable(arg0Value_, arg1Value, arg2Value);
}
}
if ((state_0 & 0b10) != 0 /* is SpecializationActive[TruffleString.AsManagedNode.nativeImmutable(TruffleString, Encoding, boolean, InlinedConditionProfile, FromBufferWithStringCompactionKnownAttributesNode)] */) {
if ((arg0Value_.isNative())) {
return nativeImmutable(arg0Value_, arg1Value, arg2Value, INLINED_NATIVE_IMMUTABLE_CACHE_HIT_, INLINED_ATTRIBUTES_NODE);
}
}
}
if ((state_0 & 0b100) != 0 /* is SpecializationActive[TruffleString.AsManagedNode.mutable(MutableTruffleString, Encoding, boolean, FromBufferWithStringCompactionKnownAttributesNode)] */ && arg0Value instanceof MutableTruffleString) {
MutableTruffleString arg0Value_ = (MutableTruffleString) arg0Value;
return mutable(arg0Value_, arg1Value, arg2Value, INLINED_ATTRIBUTES_NODE);
}
}
CompilerDirectives.transferToInterpreterAndInvalidate();
return executeAndSpecialize(arg0Value, arg1Value, arg2Value);
}
private TruffleString executeAndSpecialize(AbstractTruffleString arg0Value, Encoding arg1Value, boolean arg2Value) {
int state_0 = this.state_0_;
if (arg0Value instanceof TruffleString) {
TruffleString arg0Value_ = (TruffleString) arg0Value;
if ((!(arg0Value_.isNative()))) {
state_0 = state_0 | 0b1 /* add SpecializationActive[TruffleString.AsManagedNode.managedImmutable(TruffleString, Encoding, boolean)] */;
this.state_0_ = state_0;
return AsManagedNode.managedImmutable(arg0Value_, arg1Value, arg2Value);
}
if ((arg0Value_.isNative())) {
state_0 = state_0 | 0b10 /* add SpecializationActive[TruffleString.AsManagedNode.nativeImmutable(TruffleString, Encoding, boolean, InlinedConditionProfile, FromBufferWithStringCompactionKnownAttributesNode)] */;
this.state_0_ = state_0;
return nativeImmutable(arg0Value_, arg1Value, arg2Value, INLINED_NATIVE_IMMUTABLE_CACHE_HIT_, INLINED_ATTRIBUTES_NODE);
}
}
if (arg0Value instanceof MutableTruffleString) {
MutableTruffleString arg0Value_ = (MutableTruffleString) arg0Value;
state_0 = state_0 | 0b100 /* add SpecializationActive[TruffleString.AsManagedNode.mutable(MutableTruffleString, Encoding, boolean, FromBufferWithStringCompactionKnownAttributesNode)] */;
this.state_0_ = state_0;
return mutable(arg0Value_, arg1Value, arg2Value, INLINED_ATTRIBUTES_NODE);
}
throw new UnsupportedSpecializationException(this, new Node[] {null, null, null}, arg0Value, arg1Value, arg2Value);
}
@Override
public NodeCost getCost() {
int state_0 = this.state_0_;
if ((state_0 & 0b111) == 0) {
return NodeCost.UNINITIALIZED;
} else {
int counter = 0;
counter += Integer.bitCount((state_0 & 0b111));
if (counter == 1) {
return NodeCost.MONOMORPHIC;
}
}
return NodeCost.POLYMORPHIC;
}
@NeverDefault
public static AsManagedNode create() {
return new AsManagedNodeGen();
}
@NeverDefault
public static AsManagedNode getUncached() {
return AsManagedNodeGen.UNCACHED;
}
@GeneratedBy(AsManagedNode.class)
@DenyReplace
private static final class Uncached extends AsManagedNode {
@TruffleBoundary
@Override
public TruffleString execute(AbstractTruffleString arg0Value, Encoding arg1Value, boolean arg2Value) {
if (arg0Value instanceof TruffleString) {
TruffleString arg0Value_ = (TruffleString) arg0Value;
if ((!(arg0Value_.isNative()))) {
return AsManagedNode.managedImmutable(arg0Value_, arg1Value, arg2Value);
}
if ((arg0Value_.isNative())) {
return nativeImmutable(arg0Value_, arg1Value, arg2Value, (InlinedConditionProfile.getUncached()), (FromBufferWithStringCompactionKnownAttributesNode.getUncached()));
}
}
if (arg0Value instanceof MutableTruffleString) {
MutableTruffleString arg0Value_ = (MutableTruffleString) arg0Value;
return mutable(arg0Value_, arg1Value, arg2Value, (FromBufferWithStringCompactionKnownAttributesNode.getUncached()));
}
throw new UnsupportedSpecializationException(this, new Node[] {null, null, null}, arg0Value, arg1Value, arg2Value);
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link ToIndexableNode#doByteArray}
* Activation probability: 0.32000
* With/without class size: 7/0 bytes
* Specialization {@link ToIndexableNode#doNativeSupported}
* Activation probability: 0.26000
* With/without class size: 7/0 bytes
* Specialization {@link ToIndexableNode#doNativeUnsupported}
* Activation probability: 0.20000
* With/without class size: 7/0 bytes
* Specialization {@link ToIndexableNode#doLazyConcat}
* Activation probability: 0.14000
* With/without class size: 5/0 bytes
* Specialization {@link ToIndexableNode#doLazyLong}
* Activation probability: 0.08000
* With/without class size: 5/0 bytes
*
*/
@GeneratedBy(ToIndexableNode.class)
@SuppressWarnings("javadoc")
static final class ToIndexableNodeGen {
private static final Uncached UNCACHED = new Uncached();
@NeverDefault
public static ToIndexableNode getUncached() {
return ToIndexableNodeGen.UNCACHED;
}
/**
* Required Fields:
* - {@link Inlined#state_0_}
*
*/
@NeverDefault
public static ToIndexableNode inline(@RequiredField(bits = 7, value = StateField.class) InlineTarget target) {
return new ToIndexableNodeGen.Inlined(target);
}
@GeneratedBy(ToIndexableNode.class)
@DenyReplace
private static final class Inlined extends ToIndexableNode {
/**
* State Info:
* 0: SpecializationActive {@link ToIndexableNode#doByteArray}
* 1: SpecializationActive {@link ToIndexableNode#doNativeSupported}
* 2: SpecializationActive {@link ToIndexableNode#doNativeUnsupported}
* 3: SpecializationActive {@link ToIndexableNode#doLazyConcat}
* 4: SpecializationActive {@link ToIndexableNode#doLazyLong}
* 5-6: InlinedCache
* Specialization: {@link ToIndexableNode#doNativeUnsupported}
* Parameter: {@link InlinedConditionProfile} materializeProfile
* Inline method: {@link InlinedConditionProfile#inline}
*
*/
private final StateField state_0_;
/**
* Source Info:
* Specialization: {@link ToIndexableNode#doNativeUnsupported}
* Parameter: {@link InlinedConditionProfile} materializeProfile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private final InlinedConditionProfile materializeProfile;
private Inlined(InlineTarget target) {
assert target.getTargetClass().isAssignableFrom(ToIndexableNode.class);
this.state_0_ = target.getState(0, 7);
this.materializeProfile = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, state_0_.subUpdater(5, 2)));
}
@Override
Object execute(Node arg0Value, AbstractTruffleString arg1Value, Object arg2Value) {
int state_0 = this.state_0_.get(arg0Value);
if ((state_0 & 0b11111) != 0 /* is SpecializationActive[TruffleString.ToIndexableNode.doByteArray(AbstractTruffleString, byte[])] || SpecializationActive[TruffleString.ToIndexableNode.doNativeSupported(AbstractTruffleString, NativePointer)] || SpecializationActive[TruffleString.ToIndexableNode.doNativeUnsupported(Node, AbstractTruffleString, NativePointer, InlinedConditionProfile)] || SpecializationActive[TruffleString.ToIndexableNode.doLazyConcat(AbstractTruffleString, LazyConcat)] || SpecializationActive[TruffleString.ToIndexableNode.doLazyLong(Node, AbstractTruffleString, LazyLong, InlinedConditionProfile)] */) {
if ((state_0 & 0b1) != 0 /* is SpecializationActive[TruffleString.ToIndexableNode.doByteArray(AbstractTruffleString, byte[])] */ && arg2Value instanceof byte[]) {
byte[] arg2Value_ = (byte[]) arg2Value;
return ToIndexableNode.doByteArray(arg1Value, arg2Value_);
}
if ((state_0 & 0b110) != 0 /* is SpecializationActive[TruffleString.ToIndexableNode.doNativeSupported(AbstractTruffleString, NativePointer)] || SpecializationActive[TruffleString.ToIndexableNode.doNativeUnsupported(Node, AbstractTruffleString, NativePointer, InlinedConditionProfile)] */ && arg2Value instanceof NativePointer) {
NativePointer arg2Value_ = (NativePointer) arg2Value;
if ((state_0 & 0b10) != 0 /* is SpecializationActive[TruffleString.ToIndexableNode.doNativeSupported(AbstractTruffleString, NativePointer)] */) {
if ((TStringGuards.isSupportedEncoding(arg1Value.encoding()))) {
return ToIndexableNode.doNativeSupported(arg1Value, arg2Value_);
}
}
if ((state_0 & 0b100) != 0 /* is SpecializationActive[TruffleString.ToIndexableNode.doNativeUnsupported(Node, AbstractTruffleString, NativePointer, InlinedConditionProfile)] */) {
if ((!(TStringGuards.isSupportedEncoding(arg1Value.encoding())))) {
return ToIndexableNode.doNativeUnsupported(arg0Value, arg1Value, arg2Value_, this.materializeProfile);
}
}
}
if ((state_0 & 0b1000) != 0 /* is SpecializationActive[TruffleString.ToIndexableNode.doLazyConcat(AbstractTruffleString, LazyConcat)] */ && arg2Value instanceof LazyConcat) {
LazyConcat arg2Value_ = (LazyConcat) arg2Value;
return doLazyConcat(arg1Value, arg2Value_);
}
if ((state_0 & 0b10000) != 0 /* is SpecializationActive[TruffleString.ToIndexableNode.doLazyLong(Node, AbstractTruffleString, LazyLong, InlinedConditionProfile)] */ && arg2Value instanceof LazyLong) {
LazyLong arg2Value_ = (LazyLong) arg2Value;
return ToIndexableNode.doLazyLong(arg0Value, arg1Value, arg2Value_, this.materializeProfile);
}
}
CompilerDirectives.transferToInterpreterAndInvalidate();
return executeAndSpecialize(arg0Value, arg1Value, arg2Value);
}
private Object executeAndSpecialize(Node arg0Value, AbstractTruffleString arg1Value, Object arg2Value) {
int state_0 = this.state_0_.get(arg0Value);
if (arg2Value instanceof byte[]) {
byte[] arg2Value_ = (byte[]) arg2Value;
state_0 = state_0 | 0b1 /* add SpecializationActive[TruffleString.ToIndexableNode.doByteArray(AbstractTruffleString, byte[])] */;
this.state_0_.set(arg0Value, state_0);
return ToIndexableNode.doByteArray(arg1Value, arg2Value_);
}
if (arg2Value instanceof NativePointer) {
NativePointer arg2Value_ = (NativePointer) arg2Value;
if ((TStringGuards.isSupportedEncoding(arg1Value.encoding()))) {
state_0 = state_0 | 0b10 /* add SpecializationActive[TruffleString.ToIndexableNode.doNativeSupported(AbstractTruffleString, NativePointer)] */;
this.state_0_.set(arg0Value, state_0);
return ToIndexableNode.doNativeSupported(arg1Value, arg2Value_);
}
if ((!(TStringGuards.isSupportedEncoding(arg1Value.encoding())))) {
state_0 = state_0 | 0b100 /* add SpecializationActive[TruffleString.ToIndexableNode.doNativeUnsupported(Node, AbstractTruffleString, NativePointer, InlinedConditionProfile)] */;
this.state_0_.set(arg0Value, state_0);
return ToIndexableNode.doNativeUnsupported(arg0Value, arg1Value, arg2Value_, this.materializeProfile);
}
}
if (arg2Value instanceof LazyConcat) {
LazyConcat arg2Value_ = (LazyConcat) arg2Value;
state_0 = state_0 | 0b1000 /* add SpecializationActive[TruffleString.ToIndexableNode.doLazyConcat(AbstractTruffleString, LazyConcat)] */;
this.state_0_.set(arg0Value, state_0);
return doLazyConcat(arg1Value, arg2Value_);
}
if (arg2Value instanceof LazyLong) {
LazyLong arg2Value_ = (LazyLong) arg2Value;
state_0 = state_0 | 0b10000 /* add SpecializationActive[TruffleString.ToIndexableNode.doLazyLong(Node, AbstractTruffleString, LazyLong, InlinedConditionProfile)] */;
this.state_0_.set(arg0Value, state_0);
return ToIndexableNode.doLazyLong(arg0Value, arg1Value, arg2Value_, this.materializeProfile);
}
throw new UnsupportedSpecializationException(this, new Node[] {null, null, null}, arg0Value, arg1Value, arg2Value);
}
@Override
public boolean isAdoptable() {
return false;
}
}
@GeneratedBy(ToIndexableNode.class)
@DenyReplace
private static final class Uncached extends ToIndexableNode {
@TruffleBoundary
@Override
Object execute(Node arg0Value, AbstractTruffleString arg1Value, Object arg2Value) {
if (arg2Value instanceof byte[]) {
byte[] arg2Value_ = (byte[]) arg2Value;
return ToIndexableNode.doByteArray(arg1Value, arg2Value_);
}
if (arg2Value instanceof NativePointer) {
NativePointer arg2Value_ = (NativePointer) arg2Value;
if ((TStringGuards.isSupportedEncoding(arg1Value.encoding()))) {
return ToIndexableNode.doNativeSupported(arg1Value, arg2Value_);
}
if ((!(TStringGuards.isSupportedEncoding(arg1Value.encoding())))) {
return ToIndexableNode.doNativeUnsupported(arg0Value, arg1Value, arg2Value_, (InlinedConditionProfile.getUncached()));
}
}
if (arg2Value instanceof LazyConcat) {
LazyConcat arg2Value_ = (LazyConcat) arg2Value;
return doLazyConcat(arg1Value, arg2Value_);
}
if (arg2Value instanceof LazyLong) {
LazyLong arg2Value_ = (LazyLong) arg2Value;
return ToIndexableNode.doLazyLong(arg0Value, arg1Value, arg2Value_, (InlinedConditionProfile.getUncached()));
}
throw new UnsupportedSpecializationException(this, new Node[] {null, null, null}, arg0Value, arg1Value, arg2Value);
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link MaterializeNode#doMaterialize}
* Activation probability: 1.00000
* With/without class size: 24/1 bytes
*
*/
@GeneratedBy(MaterializeNode.class)
@SuppressWarnings("javadoc")
static final class MaterializeNodeGen extends MaterializeNode {
private static final StateField STATE_0_MaterializeNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link MaterializeNode#doMaterialize}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_MaterializeNode_UPDATER.subUpdater(0, 7)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-6: InlinedCache
* Specialization: {@link MaterializeNode#doMaterialize}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
private MaterializeNodeGen() {
}
@Override
public void execute(AbstractTruffleString arg0Value, Encoding arg1Value) {
doMaterialize(arg0Value, arg1Value, INLINED_TO_INDEXABLE_NODE_);
return;
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static MaterializeNode create() {
return new MaterializeNodeGen();
}
@NeverDefault
public static MaterializeNode getUncached() {
return MaterializeNodeGen.UNCACHED;
}
@GeneratedBy(MaterializeNode.class)
@DenyReplace
private static final class Uncached extends MaterializeNode {
@TruffleBoundary
@Override
public void execute(AbstractTruffleString arg0Value, Encoding arg1Value) {
doMaterialize(arg0Value, arg1Value, (ToIndexableNodeGen.getUncached()));
return;
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link GetCodeRangeNode#getCodeRange}
* Activation probability: 1.00000
* With/without class size: 24/4 bytes
*
*/
@GeneratedBy(GetCodeRangeNode.class)
@SuppressWarnings("javadoc")
static final class GetCodeRangeNodeGen extends GetCodeRangeNode {
private static final StateField STATE_0_GetCodeRangeNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link GetCodeRangeNode#getCodeRange}
* Parameter: {@link GetPreciseCodeRangeNode} getPreciseCodeRangeNode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
*/
private static final GetPreciseCodeRangeNode INLINED_GET_PRECISE_CODE_RANGE_NODE_ = GetPreciseCodeRangeNodeGen.inline(InlineTarget.create(GetPreciseCodeRangeNode.class, STATE_0_GetCodeRangeNode_UPDATER.subUpdater(0, 25)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link GetCodeRangeNode#getCodeRange}
* Parameter: {@link GetPreciseCodeRangeNode} getPreciseCodeRangeNode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
private GetCodeRangeNodeGen() {
}
@Override
public CodeRange execute(AbstractTruffleString arg0Value, Encoding arg1Value) {
return getCodeRange(arg0Value, arg1Value, INLINED_GET_PRECISE_CODE_RANGE_NODE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static GetCodeRangeNode create() {
return new GetCodeRangeNodeGen();
}
@NeverDefault
public static GetCodeRangeNode getUncached() {
return GetCodeRangeNodeGen.UNCACHED;
}
@GeneratedBy(GetCodeRangeNode.class)
@DenyReplace
private static final class Uncached extends GetCodeRangeNode {
@TruffleBoundary
@Override
public CodeRange execute(AbstractTruffleString arg0Value, Encoding arg1Value) {
return getCodeRange(arg0Value, arg1Value, (GetPreciseCodeRangeNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link GetCodeRangeImpreciseNode#getCodeRange}
* Activation probability: 1.00000
* With/without class size: 16/0 bytes
*
*/
@GeneratedBy(GetCodeRangeImpreciseNode.class)
@SuppressWarnings("javadoc")
static final class GetCodeRangeImpreciseNodeGen extends GetCodeRangeImpreciseNode {
private static final Uncached UNCACHED = new Uncached();
private GetCodeRangeImpreciseNodeGen() {
}
@Override
public CodeRange execute(AbstractTruffleString arg0Value, Encoding arg1Value) {
return GetCodeRangeImpreciseNode.getCodeRange(arg0Value, arg1Value);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static GetCodeRangeImpreciseNode create() {
return new GetCodeRangeImpreciseNodeGen();
}
@NeverDefault
public static GetCodeRangeImpreciseNode getUncached() {
return GetCodeRangeImpreciseNodeGen.UNCACHED;
}
@GeneratedBy(GetCodeRangeImpreciseNode.class)
@DenyReplace
private static final class Uncached extends GetCodeRangeImpreciseNode {
@TruffleBoundary
@Override
public CodeRange execute(AbstractTruffleString arg0Value, Encoding arg1Value) {
return GetCodeRangeImpreciseNode.getCodeRange(arg0Value, arg1Value);
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link GetByteCodeRangeNode#getCodeRange}
* Activation probability: 1.00000
* With/without class size: 24/4 bytes
*
*/
@GeneratedBy(GetByteCodeRangeNode.class)
@SuppressWarnings("javadoc")
static final class GetByteCodeRangeNodeGen extends GetByteCodeRangeNode {
private static final StateField STATE_0_GetByteCodeRangeNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link GetByteCodeRangeNode#getCodeRange}
* Parameter: {@link GetPreciseCodeRangeNode} getPreciseCodeRangeNode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
*/
private static final GetPreciseCodeRangeNode INLINED_GET_PRECISE_CODE_RANGE_NODE_ = GetPreciseCodeRangeNodeGen.inline(InlineTarget.create(GetPreciseCodeRangeNode.class, STATE_0_GetByteCodeRangeNode_UPDATER.subUpdater(0, 25)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link GetByteCodeRangeNode#getCodeRange}
* Parameter: {@link GetPreciseCodeRangeNode} getPreciseCodeRangeNode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
private GetByteCodeRangeNodeGen() {
}
@Override
public CodeRange execute(AbstractTruffleString arg0Value, Encoding arg1Value) {
return getCodeRange(arg0Value, arg1Value, INLINED_GET_PRECISE_CODE_RANGE_NODE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static GetByteCodeRangeNode create() {
return new GetByteCodeRangeNodeGen();
}
@NeverDefault
public static GetByteCodeRangeNode getUncached() {
return GetByteCodeRangeNodeGen.UNCACHED;
}
@GeneratedBy(GetByteCodeRangeNode.class)
@DenyReplace
private static final class Uncached extends GetByteCodeRangeNode {
@TruffleBoundary
@Override
public CodeRange execute(AbstractTruffleString arg0Value, Encoding arg1Value) {
return getCodeRange(arg0Value, arg1Value, (GetPreciseCodeRangeNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link CodeRangeEqualsNode#codeRangeEquals}
* Activation probability: 1.00000
* With/without class size: 24/4 bytes
*
*/
@GeneratedBy(CodeRangeEqualsNode.class)
@SuppressWarnings("javadoc")
static final class CodeRangeEqualsNodeGen extends CodeRangeEqualsNode {
private static final StateField STATE_0_CodeRangeEqualsNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link CodeRangeEqualsNode#codeRangeEquals}
* Parameter: {@link GetPreciseCodeRangeNode} getPreciseCodeRangeNode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
*/
private static final GetPreciseCodeRangeNode INLINED_GET_PRECISE_CODE_RANGE_NODE_ = GetPreciseCodeRangeNodeGen.inline(InlineTarget.create(GetPreciseCodeRangeNode.class, STATE_0_CodeRangeEqualsNode_UPDATER.subUpdater(0, 25)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link CodeRangeEqualsNode#codeRangeEquals}
* Parameter: {@link GetPreciseCodeRangeNode} getPreciseCodeRangeNode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
private CodeRangeEqualsNodeGen() {
}
@Override
public boolean execute(AbstractTruffleString arg0Value, CodeRange arg1Value) {
return codeRangeEquals(arg0Value, arg1Value, INLINED_GET_PRECISE_CODE_RANGE_NODE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static CodeRangeEqualsNode create() {
return new CodeRangeEqualsNodeGen();
}
@NeverDefault
public static CodeRangeEqualsNode getUncached() {
return CodeRangeEqualsNodeGen.UNCACHED;
}
@GeneratedBy(CodeRangeEqualsNode.class)
@DenyReplace
private static final class Uncached extends CodeRangeEqualsNode {
@TruffleBoundary
@Override
public boolean execute(AbstractTruffleString arg0Value, CodeRange arg1Value) {
return codeRangeEquals(arg0Value, arg1Value, (GetPreciseCodeRangeNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link IsValidNode#isValid}
* Activation probability: 1.00000
* With/without class size: 24/4 bytes
*
*/
@GeneratedBy(IsValidNode.class)
@SuppressWarnings("javadoc")
static final class IsValidNodeGen extends IsValidNode {
private static final StateField STATE_0_IsValidNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link IsValidNode#isValid}
* Parameter: {@link GetPreciseCodeRangeNode} getPreciseCodeRangeNode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
*/
private static final GetPreciseCodeRangeNode INLINED_GET_PRECISE_CODE_RANGE_NODE_ = GetPreciseCodeRangeNodeGen.inline(InlineTarget.create(GetPreciseCodeRangeNode.class, STATE_0_IsValidNode_UPDATER.subUpdater(0, 25)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link IsValidNode#isValid}
* Parameter: {@link GetPreciseCodeRangeNode} getPreciseCodeRangeNode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
private IsValidNodeGen() {
}
@Override
public boolean execute(AbstractTruffleString arg0Value, Encoding arg1Value) {
return isValid(arg0Value, arg1Value, INLINED_GET_PRECISE_CODE_RANGE_NODE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static IsValidNode create() {
return new IsValidNodeGen();
}
@NeverDefault
public static IsValidNode getUncached() {
return IsValidNodeGen.UNCACHED;
}
@GeneratedBy(IsValidNode.class)
@DenyReplace
private static final class Uncached extends IsValidNode {
@TruffleBoundary
@Override
public boolean execute(AbstractTruffleString arg0Value, Encoding arg1Value) {
return isValid(arg0Value, arg1Value, (GetPreciseCodeRangeNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link GetStringCompactionLevelNode#getStringCompactionLevel}
* Activation probability: 1.00000
* With/without class size: 16/0 bytes
*
*/
@GeneratedBy(GetStringCompactionLevelNode.class)
@SuppressWarnings("javadoc")
static final class GetStringCompactionLevelNodeGen extends GetStringCompactionLevelNode {
private static final Uncached UNCACHED = new Uncached();
private GetStringCompactionLevelNodeGen() {
}
@Override
public CompactionLevel execute(AbstractTruffleString arg0Value, Encoding arg1Value) {
return GetStringCompactionLevelNode.getStringCompactionLevel(arg0Value, arg1Value);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static GetStringCompactionLevelNode create() {
return new GetStringCompactionLevelNodeGen();
}
@NeverDefault
public static GetStringCompactionLevelNode getUncached() {
return GetStringCompactionLevelNodeGen.UNCACHED;
}
@GeneratedBy(GetStringCompactionLevelNode.class)
@DenyReplace
private static final class Uncached extends GetStringCompactionLevelNode {
@TruffleBoundary
@Override
public CompactionLevel execute(AbstractTruffleString arg0Value, Encoding arg1Value) {
return GetStringCompactionLevelNode.getStringCompactionLevel(arg0Value, arg1Value);
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link CodePointLengthNode#get}
* Activation probability: 1.00000
* With/without class size: 24/4 bytes
*
*/
@GeneratedBy(CodePointLengthNode.class)
@SuppressWarnings("javadoc")
static final class CodePointLengthNodeGen extends CodePointLengthNode {
private static final StateField STATE_0_CodePointLengthNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link CodePointLengthNode#get}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthNode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
*/
private static final GetCodePointLengthNode INLINED_GET_CODE_POINT_LENGTH_NODE_ = GetCodePointLengthNodeGen.inline(InlineTarget.create(GetCodePointLengthNode.class, STATE_0_CodePointLengthNode_UPDATER.subUpdater(0, 25)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link CodePointLengthNode#get}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthNode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
private CodePointLengthNodeGen() {
}
@Override
public int execute(AbstractTruffleString arg0Value, Encoding arg1Value) {
return get(arg0Value, arg1Value, INLINED_GET_CODE_POINT_LENGTH_NODE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static CodePointLengthNode create() {
return new CodePointLengthNodeGen();
}
@NeverDefault
public static CodePointLengthNode getUncached() {
return CodePointLengthNodeGen.UNCACHED;
}
@GeneratedBy(CodePointLengthNode.class)
@DenyReplace
private static final class Uncached extends CodePointLengthNode {
@TruffleBoundary
@Override
public int execute(AbstractTruffleString arg0Value, Encoding arg1Value) {
return get(arg0Value, arg1Value, (GetCodePointLengthNode.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link HashCodeNode#calculateHash}
* Activation probability: 1.00000
* With/without class size: 24/3 bytes
*
*/
@GeneratedBy(HashCodeNode.class)
@SuppressWarnings("javadoc")
static final class HashCodeNodeGen extends HashCodeNode {
private static final StateField STATE_0_HashCodeNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link HashCodeNode#calculateHash}
* Parameter: {@link InlinedConditionProfile} cacheMiss
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_CACHE_MISS_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_HashCodeNode_UPDATER.subUpdater(0, 2)));
/**
* Source Info:
* Specialization: {@link HashCodeNode#calculateHash}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_HashCodeNode_UPDATER.subUpdater(2, 7)));
/**
* Source Info:
* Specialization: {@link HashCodeNode#calculateHash}
* Parameter: {@link CalculateHashCodeNode} calculateHashCodeNode
* Inline method: {@link CalculateHashCodeNodeGen#inline}
*/
private static final CalculateHashCodeNode INLINED_CALCULATE_HASH_CODE_NODE_ = CalculateHashCodeNodeGen.inline(InlineTarget.create(CalculateHashCodeNode.class, STATE_0_HashCodeNode_UPDATER.subUpdater(9, 12)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-1: InlinedCache
* Specialization: {@link HashCodeNode#calculateHash}
* Parameter: {@link InlinedConditionProfile} cacheMiss
* Inline method: {@link InlinedConditionProfile#inline}
* 2-8: InlinedCache
* Specialization: {@link HashCodeNode#calculateHash}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
* 9-20: InlinedCache
* Specialization: {@link HashCodeNode#calculateHash}
* Parameter: {@link CalculateHashCodeNode} calculateHashCodeNode
* Inline method: {@link CalculateHashCodeNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
private HashCodeNodeGen() {
}
@Override
public int execute(AbstractTruffleString arg0Value, Encoding arg1Value) {
return calculateHash(arg0Value, arg1Value, INLINED_CACHE_MISS_, INLINED_TO_INDEXABLE_NODE_, INLINED_CALCULATE_HASH_CODE_NODE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static HashCodeNode create() {
return new HashCodeNodeGen();
}
@NeverDefault
public static HashCodeNode getUncached() {
return HashCodeNodeGen.UNCACHED;
}
@GeneratedBy(HashCodeNode.class)
@DenyReplace
private static final class Uncached extends HashCodeNode {
@TruffleBoundary
@Override
public int execute(AbstractTruffleString arg0Value, Encoding arg1Value) {
return calculateHash(arg0Value, arg1Value, (InlinedConditionProfile.getUncached()), (ToIndexableNodeGen.getUncached()), (CalculateHashCodeNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link com.oracle.truffle.api.strings.TruffleString.ReadByteNode#doRead}
* Activation probability: 1.00000
* With/without class size: 24/2 bytes
*
*/
@GeneratedBy(com.oracle.truffle.api.strings.TruffleString.ReadByteNode.class)
@SuppressWarnings("javadoc")
static final class ReadByteNodeGen extends com.oracle.truffle.api.strings.TruffleString.ReadByteNode {
private static final StateField STATE_0_ReadByteNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ReadByteNode#doRead}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_ReadByteNode_UPDATER.subUpdater(0, 7)));
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ReadByteNode#doRead}
* Parameter: {@link com.oracle.truffle.api.strings.TStringInternalNodes.ReadByteNode} readByteNode
* Inline method: {@link com.oracle.truffle.api.strings.TStringInternalNodesFactory.ReadByteNodeGen#inline}
*/
private static final com.oracle.truffle.api.strings.TStringInternalNodes.ReadByteNode INLINED_READ_BYTE_NODE_ = com.oracle.truffle.api.strings.TStringInternalNodesFactory.ReadByteNodeGen.inline(InlineTarget.create(com.oracle.truffle.api.strings.TStringInternalNodes.ReadByteNode.class, STATE_0_ReadByteNode_UPDATER.subUpdater(7, 7)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-6: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ReadByteNode#doRead}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
* 7-13: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ReadByteNode#doRead}
* Parameter: {@link com.oracle.truffle.api.strings.TStringInternalNodes.ReadByteNode} readByteNode
* Inline method: {@link com.oracle.truffle.api.strings.TStringInternalNodesFactory.ReadByteNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
private ReadByteNodeGen() {
}
@Override
public int execute(AbstractTruffleString arg0Value, int arg1Value, Encoding arg2Value) {
return doRead(arg0Value, arg1Value, arg2Value, INLINED_TO_INDEXABLE_NODE_, INLINED_READ_BYTE_NODE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static com.oracle.truffle.api.strings.TruffleString.ReadByteNode create() {
return new com.oracle.truffle.api.strings.TruffleStringFactory.ReadByteNodeGen();
}
@NeverDefault
public static com.oracle.truffle.api.strings.TruffleString.ReadByteNode getUncached() {
return ReadByteNodeGen.UNCACHED;
}
@GeneratedBy(com.oracle.truffle.api.strings.TruffleString.ReadByteNode.class)
@DenyReplace
private static final class Uncached extends com.oracle.truffle.api.strings.TruffleString.ReadByteNode {
@TruffleBoundary
@Override
public int execute(AbstractTruffleString arg0Value, int arg1Value, Encoding arg2Value) {
return doRead(arg0Value, arg1Value, arg2Value, (ToIndexableNodeGen.getUncached()), (com.oracle.truffle.api.strings.TStringInternalNodesFactory.ReadByteNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link ReadCharUTF16Node#doRead}
* Activation probability: 1.00000
* With/without class size: 24/2 bytes
*
*/
@GeneratedBy(ReadCharUTF16Node.class)
@SuppressWarnings("javadoc")
static final class ReadCharUTF16NodeGen extends ReadCharUTF16Node {
private static final StateField STATE_0_ReadCharUTF16Node_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link ReadCharUTF16Node#doRead}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_ReadCharUTF16Node_UPDATER.subUpdater(0, 7)));
/**
* Source Info:
* Specialization: {@link ReadCharUTF16Node#doRead}
* Parameter: {@link InlinedConditionProfile} utf16S0Profile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_UTF16_S0_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_ReadCharUTF16Node_UPDATER.subUpdater(7, 2)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-6: InlinedCache
* Specialization: {@link ReadCharUTF16Node#doRead}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
* 7-8: InlinedCache
* Specialization: {@link ReadCharUTF16Node#doRead}
* Parameter: {@link InlinedConditionProfile} utf16S0Profile
* Inline method: {@link InlinedConditionProfile#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
private ReadCharUTF16NodeGen() {
}
@Override
public char execute(AbstractTruffleString arg0Value, int arg1Value) {
return doRead(arg0Value, arg1Value, INLINED_TO_INDEXABLE_NODE_, INLINED_UTF16_S0_PROFILE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static ReadCharUTF16Node create() {
return new ReadCharUTF16NodeGen();
}
@NeverDefault
public static ReadCharUTF16Node getUncached() {
return ReadCharUTF16NodeGen.UNCACHED;
}
@GeneratedBy(ReadCharUTF16Node.class)
@DenyReplace
private static final class Uncached extends ReadCharUTF16Node {
@TruffleBoundary
@Override
public char execute(AbstractTruffleString arg0Value, int arg1Value) {
return doRead(arg0Value, arg1Value, (ToIndexableNodeGen.getUncached()), (InlinedConditionProfile.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link com.oracle.truffle.api.strings.TruffleString.ByteLengthOfCodePointNode#translate}
* Activation probability: 1.00000
* With/without class size: 28/8 bytes
*
*/
@GeneratedBy(com.oracle.truffle.api.strings.TruffleString.ByteLengthOfCodePointNode.class)
@SuppressWarnings("javadoc")
static final class ByteLengthOfCodePointNodeGen extends com.oracle.truffle.api.strings.TruffleString.ByteLengthOfCodePointNode {
private static final StateField STATE_0_ByteLengthOfCodePointNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField STATE_1_ByteLengthOfCodePointNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_1_");
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ByteLengthOfCodePointNode#translate}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_ByteLengthOfCodePointNode_UPDATER.subUpdater(0, 7)));
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ByteLengthOfCodePointNode#translate}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeNode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*/
private static final GetCodeRangeForIndexCalculationNode INLINED_GET_CODE_RANGE_NODE_ = GetCodeRangeForIndexCalculationNodeGen.inline(InlineTarget.create(GetCodeRangeForIndexCalculationNode.class, STATE_0_ByteLengthOfCodePointNode_UPDATER.subUpdater(7, 25)));
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ByteLengthOfCodePointNode#translate}
* Parameter: {@link com.oracle.truffle.api.strings.TStringInternalNodes.ByteLengthOfCodePointNode} byteLengthOfCodePointNode
* Inline method: {@link com.oracle.truffle.api.strings.TStringInternalNodesFactory.ByteLengthOfCodePointNodeGen#inline}
*/
private static final com.oracle.truffle.api.strings.TStringInternalNodes.ByteLengthOfCodePointNode INLINED_BYTE_LENGTH_OF_CODE_POINT_NODE_ = com.oracle.truffle.api.strings.TStringInternalNodesFactory.ByteLengthOfCodePointNodeGen.inline(InlineTarget.create(com.oracle.truffle.api.strings.TStringInternalNodes.ByteLengthOfCodePointNode.class, STATE_1_ByteLengthOfCodePointNode_UPDATER.subUpdater(0, 27)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-6: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ByteLengthOfCodePointNode#translate}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
* 7-31: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ByteLengthOfCodePointNode#translate}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeNode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* State Info:
* 0-26: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ByteLengthOfCodePointNode#translate}
* Parameter: {@link com.oracle.truffle.api.strings.TStringInternalNodes.ByteLengthOfCodePointNode} byteLengthOfCodePointNode
* Inline method: {@link com.oracle.truffle.api.strings.TStringInternalNodesFactory.ByteLengthOfCodePointNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_1_;
private ByteLengthOfCodePointNodeGen() {
}
@Override
public int execute(AbstractTruffleString arg0Value, int arg1Value, Encoding arg2Value, ErrorHandling arg3Value) {
return translate(arg0Value, arg1Value, arg2Value, arg3Value, INLINED_TO_INDEXABLE_NODE_, INLINED_GET_CODE_RANGE_NODE_, INLINED_BYTE_LENGTH_OF_CODE_POINT_NODE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static com.oracle.truffle.api.strings.TruffleString.ByteLengthOfCodePointNode create() {
return new com.oracle.truffle.api.strings.TruffleStringFactory.ByteLengthOfCodePointNodeGen();
}
@NeverDefault
public static com.oracle.truffle.api.strings.TruffleString.ByteLengthOfCodePointNode getUncached() {
return ByteLengthOfCodePointNodeGen.UNCACHED;
}
@GeneratedBy(com.oracle.truffle.api.strings.TruffleString.ByteLengthOfCodePointNode.class)
@DenyReplace
private static final class Uncached extends com.oracle.truffle.api.strings.TruffleString.ByteLengthOfCodePointNode {
@TruffleBoundary
@Override
public int execute(AbstractTruffleString arg0Value, int arg1Value, Encoding arg2Value, ErrorHandling arg3Value) {
return translate(arg0Value, arg1Value, arg2Value, arg3Value, (ToIndexableNodeGen.getUncached()), (GetCodeRangeForIndexCalculationNodeGen.getUncached()), (com.oracle.truffle.api.strings.TStringInternalNodesFactory.ByteLengthOfCodePointNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link ByteIndexToCodePointIndexNode#translate}
* Activation probability: 1.00000
* With/without class size: 28/6 bytes
*
*/
@GeneratedBy(ByteIndexToCodePointIndexNode.class)
@SuppressWarnings("javadoc")
static final class ByteIndexToCodePointIndexNodeGen extends ByteIndexToCodePointIndexNode {
private static final StateField STATE_0_ByteIndexToCodePointIndexNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField STATE_1_ByteIndexToCodePointIndexNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_1_");
/**
* Source Info:
* Specialization: {@link ByteIndexToCodePointIndexNode#translate}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_ByteIndexToCodePointIndexNode_UPDATER.subUpdater(0, 7)));
/**
* Source Info:
* Specialization: {@link ByteIndexToCodePointIndexNode#translate}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeNode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*/
private static final GetCodeRangeForIndexCalculationNode INLINED_GET_CODE_RANGE_NODE_ = GetCodeRangeForIndexCalculationNodeGen.inline(InlineTarget.create(GetCodeRangeForIndexCalculationNode.class, STATE_0_ByteIndexToCodePointIndexNode_UPDATER.subUpdater(7, 25)));
/**
* Source Info:
* Specialization: {@link ByteIndexToCodePointIndexNode#translate}
* Parameter: {@link RawIndexToCodePointIndexNode} rawIndexToCodePointIndexNode
* Inline method: {@link RawIndexToCodePointIndexNodeGen#inline}
*/
private static final RawIndexToCodePointIndexNode INLINED_RAW_INDEX_TO_CODE_POINT_INDEX_NODE_ = RawIndexToCodePointIndexNodeGen.inline(InlineTarget.create(RawIndexToCodePointIndexNode.class, STATE_1_ByteIndexToCodePointIndexNode_UPDATER.subUpdater(0, 10)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-6: InlinedCache
* Specialization: {@link ByteIndexToCodePointIndexNode#translate}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
* 7-31: InlinedCache
* Specialization: {@link ByteIndexToCodePointIndexNode#translate}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeNode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* State Info:
* 0-9: InlinedCache
* Specialization: {@link ByteIndexToCodePointIndexNode#translate}
* Parameter: {@link RawIndexToCodePointIndexNode} rawIndexToCodePointIndexNode
* Inline method: {@link RawIndexToCodePointIndexNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_1_;
private ByteIndexToCodePointIndexNodeGen() {
}
@Override
public int execute(AbstractTruffleString arg0Value, int arg1Value, int arg2Value, Encoding arg3Value) {
return translate(arg0Value, arg1Value, arg2Value, arg3Value, INLINED_TO_INDEXABLE_NODE_, INLINED_GET_CODE_RANGE_NODE_, INLINED_RAW_INDEX_TO_CODE_POINT_INDEX_NODE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static ByteIndexToCodePointIndexNode create() {
return new ByteIndexToCodePointIndexNodeGen();
}
@NeverDefault
public static ByteIndexToCodePointIndexNode getUncached() {
return ByteIndexToCodePointIndexNodeGen.UNCACHED;
}
@GeneratedBy(ByteIndexToCodePointIndexNode.class)
@DenyReplace
private static final class Uncached extends ByteIndexToCodePointIndexNode {
@TruffleBoundary
@Override
public int execute(AbstractTruffleString arg0Value, int arg1Value, int arg2Value, Encoding arg3Value) {
return translate(arg0Value, arg1Value, arg2Value, arg3Value, (ToIndexableNodeGen.getUncached()), (GetCodeRangeForIndexCalculationNodeGen.getUncached()), (RawIndexToCodePointIndexNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link CodePointIndexToByteIndexNode#translate}
* Activation probability: 1.00000
* With/without class size: 28/8 bytes
*
*/
@GeneratedBy(CodePointIndexToByteIndexNode.class)
@SuppressWarnings("javadoc")
static final class CodePointIndexToByteIndexNodeGen extends CodePointIndexToByteIndexNode {
private static final StateField STATE_0_CodePointIndexToByteIndexNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField STATE_1_CodePointIndexToByteIndexNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_1_");
/**
* Source Info:
* Specialization: {@link CodePointIndexToByteIndexNode#translate}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_CodePointIndexToByteIndexNode_UPDATER.subUpdater(0, 7)));
/**
* Source Info:
* Specialization: {@link CodePointIndexToByteIndexNode#translate}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthNode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
*/
private static final GetCodePointLengthNode INLINED_GET_CODE_POINT_LENGTH_NODE_ = GetCodePointLengthNodeGen.inline(InlineTarget.create(GetCodePointLengthNode.class, STATE_0_CodePointIndexToByteIndexNode_UPDATER.subUpdater(7, 25)));
/**
* Source Info:
* Specialization: {@link CodePointIndexToByteIndexNode#translate}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeNode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*/
private static final GetCodeRangeForIndexCalculationNode INLINED_GET_CODE_RANGE_NODE_ = GetCodeRangeForIndexCalculationNodeGen.inline(InlineTarget.create(GetCodeRangeForIndexCalculationNode.class, STATE_1_CodePointIndexToByteIndexNode_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link CodePointIndexToByteIndexNode#translate}
* Parameter: {@link CodePointIndexToRawNode} codePointIndexToRawNode
* Inline method: {@link CodePointIndexToRawNodeGen#inline}
*/
private static final CodePointIndexToRawNode INLINED_CODE_POINT_INDEX_TO_RAW_NODE_ = CodePointIndexToRawNodeGen.inline(InlineTarget.create(CodePointIndexToRawNode.class, STATE_1_CodePointIndexToByteIndexNode_UPDATER.subUpdater(25, 6)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-6: InlinedCache
* Specialization: {@link CodePointIndexToByteIndexNode#translate}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
* 7-31: InlinedCache
* Specialization: {@link CodePointIndexToByteIndexNode#translate}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthNode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link CodePointIndexToByteIndexNode#translate}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeNode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
* 25-30: InlinedCache
* Specialization: {@link CodePointIndexToByteIndexNode#translate}
* Parameter: {@link CodePointIndexToRawNode} codePointIndexToRawNode
* Inline method: {@link CodePointIndexToRawNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_1_;
private CodePointIndexToByteIndexNodeGen() {
}
@Override
public int execute(AbstractTruffleString arg0Value, int arg1Value, int arg2Value, Encoding arg3Value) {
return translate(arg0Value, arg1Value, arg2Value, arg3Value, INLINED_TO_INDEXABLE_NODE_, INLINED_GET_CODE_POINT_LENGTH_NODE_, INLINED_GET_CODE_RANGE_NODE_, INLINED_CODE_POINT_INDEX_TO_RAW_NODE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static CodePointIndexToByteIndexNode create() {
return new CodePointIndexToByteIndexNodeGen();
}
@NeverDefault
public static CodePointIndexToByteIndexNode getUncached() {
return CodePointIndexToByteIndexNodeGen.UNCACHED;
}
@GeneratedBy(CodePointIndexToByteIndexNode.class)
@DenyReplace
private static final class Uncached extends CodePointIndexToByteIndexNode {
@TruffleBoundary
@Override
public int execute(AbstractTruffleString arg0Value, int arg1Value, int arg2Value, Encoding arg3Value) {
return translate(arg0Value, arg1Value, arg2Value, arg3Value, (ToIndexableNodeGen.getUncached()), (GetCodePointLengthNode.getUncached()), (GetCodeRangeForIndexCalculationNodeGen.getUncached()), (CodePointIndexToRawNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link CodePointAtIndexNode#readCodePoint}
* Activation probability: 1.00000
* With/without class size: 32/10 bytes
*
*/
@GeneratedBy(CodePointAtIndexNode.class)
@SuppressWarnings("javadoc")
static final class CodePointAtIndexNodeGen extends CodePointAtIndexNode {
private static final StateField STATE_0_CodePointAtIndexNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField STATE_1_CodePointAtIndexNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_1_");
private static final StateField STATE_2_CodePointAtIndexNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_2_");
/**
* Source Info:
* Specialization: {@link CodePointAtIndexNode#readCodePoint}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_CodePointAtIndexNode_UPDATER.subUpdater(0, 7)));
/**
* Source Info:
* Specialization: {@link CodePointAtIndexNode#readCodePoint}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthNode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
*/
private static final GetCodePointLengthNode INLINED_GET_CODE_POINT_LENGTH_NODE_ = GetCodePointLengthNodeGen.inline(InlineTarget.create(GetCodePointLengthNode.class, STATE_0_CodePointAtIndexNode_UPDATER.subUpdater(7, 25)));
/**
* Source Info:
* Specialization: {@link CodePointAtIndexNode#readCodePoint}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeNode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*/
private static final GetCodeRangeForIndexCalculationNode INLINED_GET_CODE_RANGE_NODE_ = GetCodeRangeForIndexCalculationNodeGen.inline(InlineTarget.create(GetCodeRangeForIndexCalculationNode.class, STATE_1_CodePointAtIndexNode_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link CodePointAtIndexNode#readCodePoint}
* Parameter: {@link CodePointAtNode} readCodePointNode
* Inline method: {@link CodePointAtNodeGen#inline}
*/
private static final CodePointAtNode INLINED_READ_CODE_POINT_NODE_ = CodePointAtNodeGen.inline(InlineTarget.create(CodePointAtNode.class, STATE_2_CodePointAtIndexNode_UPDATER.subUpdater(0, 16)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-6: InlinedCache
* Specialization: {@link CodePointAtIndexNode#readCodePoint}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
* 7-31: InlinedCache
* Specialization: {@link CodePointAtIndexNode#readCodePoint}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthNode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link CodePointAtIndexNode#readCodePoint}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeNode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_1_;
/**
* State Info:
* 0-15: InlinedCache
* Specialization: {@link CodePointAtIndexNode#readCodePoint}
* Parameter: {@link CodePointAtNode} readCodePointNode
* Inline method: {@link CodePointAtNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_2_;
private CodePointAtIndexNodeGen() {
}
@Override
public int execute(AbstractTruffleString arg0Value, int arg1Value, Encoding arg2Value, ErrorHandling arg3Value) {
return readCodePoint(arg0Value, arg1Value, arg2Value, arg3Value, INLINED_TO_INDEXABLE_NODE_, INLINED_GET_CODE_POINT_LENGTH_NODE_, INLINED_GET_CODE_RANGE_NODE_, INLINED_READ_CODE_POINT_NODE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static CodePointAtIndexNode create() {
return new CodePointAtIndexNodeGen();
}
@NeverDefault
public static CodePointAtIndexNode getUncached() {
return CodePointAtIndexNodeGen.UNCACHED;
}
@GeneratedBy(CodePointAtIndexNode.class)
@DenyReplace
private static final class Uncached extends CodePointAtIndexNode {
@TruffleBoundary
@Override
public int execute(AbstractTruffleString arg0Value, int arg1Value, Encoding arg2Value, ErrorHandling arg3Value) {
return readCodePoint(arg0Value, arg1Value, arg2Value, arg3Value, (ToIndexableNodeGen.getUncached()), (GetCodePointLengthNode.getUncached()), (GetCodeRangeForIndexCalculationNodeGen.getUncached()), (CodePointAtNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link CodePointAtByteIndexNode#readCodePoint}
* Activation probability: 1.00000
* With/without class size: 28/7 bytes
*
*/
@GeneratedBy(CodePointAtByteIndexNode.class)
@SuppressWarnings("javadoc")
static final class CodePointAtByteIndexNodeGen extends CodePointAtByteIndexNode {
private static final StateField STATE_0_CodePointAtByteIndexNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField STATE_1_CodePointAtByteIndexNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_1_");
/**
* Source Info:
* Specialization: {@link CodePointAtByteIndexNode#readCodePoint}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_CodePointAtByteIndexNode_UPDATER.subUpdater(0, 7)));
/**
* Source Info:
* Specialization: {@link CodePointAtByteIndexNode#readCodePoint}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeNode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*/
private static final GetCodeRangeForIndexCalculationNode INLINED_GET_CODE_RANGE_NODE_ = GetCodeRangeForIndexCalculationNodeGen.inline(InlineTarget.create(GetCodeRangeForIndexCalculationNode.class, STATE_0_CodePointAtByteIndexNode_UPDATER.subUpdater(7, 25)));
/**
* Source Info:
* Specialization: {@link CodePointAtByteIndexNode#readCodePoint}
* Parameter: {@link CodePointAtRawNode} readCodePointNode
* Inline method: {@link CodePointAtRawNodeGen#inline}
*/
private static final CodePointAtRawNode INLINED_READ_CODE_POINT_NODE_ = CodePointAtRawNodeGen.inline(InlineTarget.create(CodePointAtRawNode.class, STATE_1_CodePointAtByteIndexNode_UPDATER.subUpdater(0, 18)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-6: InlinedCache
* Specialization: {@link CodePointAtByteIndexNode#readCodePoint}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
* 7-31: InlinedCache
* Specialization: {@link CodePointAtByteIndexNode#readCodePoint}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeNode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* State Info:
* 0-17: InlinedCache
* Specialization: {@link CodePointAtByteIndexNode#readCodePoint}
* Parameter: {@link CodePointAtRawNode} readCodePointNode
* Inline method: {@link CodePointAtRawNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_1_;
private CodePointAtByteIndexNodeGen() {
}
@Override
public int execute(AbstractTruffleString arg0Value, int arg1Value, Encoding arg2Value, ErrorHandling arg3Value) {
return readCodePoint(arg0Value, arg1Value, arg2Value, arg3Value, INLINED_TO_INDEXABLE_NODE_, INLINED_GET_CODE_RANGE_NODE_, INLINED_READ_CODE_POINT_NODE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static CodePointAtByteIndexNode create() {
return new CodePointAtByteIndexNodeGen();
}
@NeverDefault
public static CodePointAtByteIndexNode getUncached() {
return CodePointAtByteIndexNodeGen.UNCACHED;
}
@GeneratedBy(CodePointAtByteIndexNode.class)
@DenyReplace
private static final class Uncached extends CodePointAtByteIndexNode {
@TruffleBoundary
@Override
public int execute(AbstractTruffleString arg0Value, int arg1Value, Encoding arg2Value, ErrorHandling arg3Value) {
return readCodePoint(arg0Value, arg1Value, arg2Value, arg3Value, (ToIndexableNodeGen.getUncached()), (GetCodeRangeForIndexCalculationNodeGen.getUncached()), (CodePointAtRawNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link ByteIndexOfAnyByteNode#indexOfRaw}
* Activation probability: 1.00000
* With/without class size: 24/1 bytes
*
*/
@GeneratedBy(ByteIndexOfAnyByteNode.class)
@SuppressWarnings("javadoc")
static final class ByteIndexOfAnyByteNodeGen extends ByteIndexOfAnyByteNode {
private static final StateField STATE_0_ByteIndexOfAnyByteNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link ByteIndexOfAnyByteNode#indexOfRaw}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_ByteIndexOfAnyByteNode_UPDATER.subUpdater(0, 7)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-6: InlinedCache
* Specialization: {@link ByteIndexOfAnyByteNode#indexOfRaw}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
private ByteIndexOfAnyByteNodeGen() {
}
@Override
public int execute(AbstractTruffleString arg0Value, int arg1Value, int arg2Value, byte[] arg3Value, Encoding arg4Value) {
return indexOfRaw(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, INLINED_TO_INDEXABLE_NODE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static ByteIndexOfAnyByteNode create() {
return new ByteIndexOfAnyByteNodeGen();
}
@NeverDefault
public static ByteIndexOfAnyByteNode getUncached() {
return ByteIndexOfAnyByteNodeGen.UNCACHED;
}
@GeneratedBy(ByteIndexOfAnyByteNode.class)
@DenyReplace
private static final class Uncached extends ByteIndexOfAnyByteNode {
@TruffleBoundary
@Override
public int execute(AbstractTruffleString arg0Value, int arg1Value, int arg2Value, byte[] arg3Value, Encoding arg4Value) {
return indexOfRaw(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, (ToIndexableNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link CharIndexOfAnyCharUTF16Node#indexOfRaw}
* Activation probability: 1.00000
* With/without class size: 28/5 bytes
*
*/
@GeneratedBy(CharIndexOfAnyCharUTF16Node.class)
@SuppressWarnings("javadoc")
static final class CharIndexOfAnyCharUTF16NodeGen extends CharIndexOfAnyCharUTF16Node {
private static final StateField STATE_0_CharIndexOfAnyCharUTF16Node_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField STATE_1_CharIndexOfAnyCharUTF16Node_UPDATER = StateField.create(MethodHandles.lookup(), "state_1_");
/**
* Source Info:
* Specialization: {@link CharIndexOfAnyCharUTF16Node#indexOfRaw}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_CharIndexOfAnyCharUTF16Node_UPDATER.subUpdater(0, 7)));
/**
* Source Info:
* Specialization: {@link CharIndexOfAnyCharUTF16Node#indexOfRaw}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeNode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*/
private static final GetCodeRangeForIndexCalculationNode INLINED_GET_CODE_RANGE_NODE_ = GetCodeRangeForIndexCalculationNodeGen.inline(InlineTarget.create(GetCodeRangeForIndexCalculationNode.class, STATE_0_CharIndexOfAnyCharUTF16Node_UPDATER.subUpdater(7, 25)));
/**
* Source Info:
* Specialization: {@link CharIndexOfAnyCharUTF16Node#indexOfRaw}
* Parameter: {@link IndexOfAnyCharNode} indexOfNode
* Inline method: {@link IndexOfAnyCharNodeGen#inline}
*/
private static final IndexOfAnyCharNode INLINED_INDEX_OF_NODE_ = IndexOfAnyCharNodeGen.inline(InlineTarget.create(IndexOfAnyCharNode.class, STATE_1_CharIndexOfAnyCharUTF16Node_UPDATER.subUpdater(0, 3)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-6: InlinedCache
* Specialization: {@link CharIndexOfAnyCharUTF16Node#indexOfRaw}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
* 7-31: InlinedCache
* Specialization: {@link CharIndexOfAnyCharUTF16Node#indexOfRaw}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeNode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* State Info:
* 0-2: InlinedCache
* Specialization: {@link CharIndexOfAnyCharUTF16Node#indexOfRaw}
* Parameter: {@link IndexOfAnyCharNode} indexOfNode
* Inline method: {@link IndexOfAnyCharNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_1_;
private CharIndexOfAnyCharUTF16NodeGen() {
}
@Override
public int execute(AbstractTruffleString arg0Value, int arg1Value, int arg2Value, char[] arg3Value) {
return indexOfRaw(arg0Value, arg1Value, arg2Value, arg3Value, INLINED_TO_INDEXABLE_NODE_, INLINED_GET_CODE_RANGE_NODE_, INLINED_INDEX_OF_NODE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static CharIndexOfAnyCharUTF16Node create() {
return new CharIndexOfAnyCharUTF16NodeGen();
}
@NeverDefault
public static CharIndexOfAnyCharUTF16Node getUncached() {
return CharIndexOfAnyCharUTF16NodeGen.UNCACHED;
}
@GeneratedBy(CharIndexOfAnyCharUTF16Node.class)
@DenyReplace
private static final class Uncached extends CharIndexOfAnyCharUTF16Node {
@TruffleBoundary
@Override
public int execute(AbstractTruffleString arg0Value, int arg1Value, int arg2Value, char[] arg3Value) {
return indexOfRaw(arg0Value, arg1Value, arg2Value, arg3Value, (ToIndexableNodeGen.getUncached()), (GetCodeRangeForIndexCalculationNodeGen.getUncached()), (IndexOfAnyCharNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link IntIndexOfAnyIntUTF32Node#indexOfRaw}
* Activation probability: 1.00000
* With/without class size: 24/2 bytes
*
*/
@GeneratedBy(IntIndexOfAnyIntUTF32Node.class)
@SuppressWarnings("javadoc")
static final class IntIndexOfAnyIntUTF32NodeGen extends IntIndexOfAnyIntUTF32Node {
private static final StateField STATE_0_IntIndexOfAnyIntUTF32Node_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link IntIndexOfAnyIntUTF32Node#indexOfRaw}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_IntIndexOfAnyIntUTF32Node_UPDATER.subUpdater(0, 7)));
/**
* Source Info:
* Specialization: {@link IntIndexOfAnyIntUTF32Node#indexOfRaw}
* Parameter: {@link IndexOfAnyIntNode} indexOfNode
* Inline method: {@link IndexOfAnyIntNodeGen#inline}
*/
private static final IndexOfAnyIntNode INLINED_INDEX_OF_NODE_ = IndexOfAnyIntNodeGen.inline(InlineTarget.create(IndexOfAnyIntNode.class, STATE_0_IntIndexOfAnyIntUTF32Node_UPDATER.subUpdater(7, 5)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-6: InlinedCache
* Specialization: {@link IntIndexOfAnyIntUTF32Node#indexOfRaw}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
* 7-11: InlinedCache
* Specialization: {@link IntIndexOfAnyIntUTF32Node#indexOfRaw}
* Parameter: {@link IndexOfAnyIntNode} indexOfNode
* Inline method: {@link IndexOfAnyIntNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
private IntIndexOfAnyIntUTF32NodeGen() {
}
@Override
public int execute(AbstractTruffleString arg0Value, int arg1Value, int arg2Value, int[] arg3Value) {
return indexOfRaw(arg0Value, arg1Value, arg2Value, arg3Value, INLINED_TO_INDEXABLE_NODE_, INLINED_INDEX_OF_NODE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static IntIndexOfAnyIntUTF32Node create() {
return new IntIndexOfAnyIntUTF32NodeGen();
}
@NeverDefault
public static IntIndexOfAnyIntUTF32Node getUncached() {
return IntIndexOfAnyIntUTF32NodeGen.UNCACHED;
}
@GeneratedBy(IntIndexOfAnyIntUTF32Node.class)
@DenyReplace
private static final class Uncached extends IntIndexOfAnyIntUTF32Node {
@TruffleBoundary
@Override
public int execute(AbstractTruffleString arg0Value, int arg1Value, int arg2Value, int[] arg3Value) {
return indexOfRaw(arg0Value, arg1Value, arg2Value, arg3Value, (ToIndexableNodeGen.getUncached()), (IndexOfAnyIntNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link ByteIndexOfCodePointSetNode#indexOfSpecialized}
* Activation probability: 0.65000
* With/without class size: 22/12 bytes
* Specialization {@link ByteIndexOfCodePointSetNode#indexOfUncached}
* Activation probability: 0.35000
* With/without class size: 12/6 bytes
*
*/
@GeneratedBy(ByteIndexOfCodePointSetNode.class)
@SuppressWarnings("javadoc")
static final class ByteIndexOfCodePointSetNodeGen extends ByteIndexOfCodePointSetNode {
private static final StateField STATE_0_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField STATE_0_ByteIndexOfCodePointSetNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField INDEX_OF_SPECIALIZED__BYTE_INDEX_OF_CODE_POINT_SET_NODE_INDEX_OF_SPECIALIZED_STATE_0_UPDATER = StateField.create(IndexOfSpecializedData.lookup_(), "indexOfSpecialized_state_0_");
private static final StateField STATE_1_ByteIndexOfCodePointSetNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_1_");
static final ReferenceField INDEX_OF_SPECIALIZED_CACHE_UPDATER = ReferenceField.create(MethodHandles.lookup(), "indexOfSpecialized_cache", IndexOfSpecializedData.class);
/**
* Source Info:
* Specialization: {@link ByteIndexOfCodePointSetNode#indexOfSpecialized}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_UPDATER.subUpdater(2, 7)));
/**
* Source Info:
* Specialization: {@link ByteIndexOfCodePointSetNode#indexOfSpecialized}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_INDEX_OF_SPECIALIZED_TO_INDEXABLE_NODE = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_ByteIndexOfCodePointSetNode_UPDATER.subUpdater(2, 7)));
/**
* Source Info:
* Specialization: {@link ByteIndexOfCodePointSetNode#indexOfSpecialized}
* Parameter: {@link GetPreciseCodeRangeNode} getPreciseCodeRangeNode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
*/
private static final GetPreciseCodeRangeNode INLINED_INDEX_OF_SPECIALIZED_GET_PRECISE_CODE_RANGE_NODE_ = GetPreciseCodeRangeNodeGen.inline(InlineTarget.create(GetPreciseCodeRangeNode.class, INDEX_OF_SPECIALIZED__BYTE_INDEX_OF_CODE_POINT_SET_NODE_INDEX_OF_SPECIALIZED_STATE_0_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link ByteIndexOfCodePointSetNode#indexOfUncached}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeNode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*/
private static final GetCodeRangeForIndexCalculationNode INLINED_INDEX_OF_UNCACHED_GET_CODE_RANGE_NODE_ = GetCodeRangeForIndexCalculationNodeGen.inline(InlineTarget.create(GetCodeRangeForIndexCalculationNode.class, STATE_1_ByteIndexOfCodePointSetNode_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link ByteIndexOfCodePointSetNode#indexOfUncached}
* Parameter: {@link InternalNextNode} nextNode
* Inline method: {@link InternalNextNodeGen#inline}
*/
private static final InternalNextNode INLINED_INDEX_OF_UNCACHED_NEXT_NODE_ = InternalNextNodeGen.inline(InlineTarget.create(InternalNextNode.class, STATE_0_ByteIndexOfCodePointSetNode_UPDATER.subUpdater(9, 21)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0: SpecializationActive {@link ByteIndexOfCodePointSetNode#indexOfSpecialized}
* 1: SpecializationActive {@link ByteIndexOfCodePointSetNode#indexOfUncached}
* 2-8: InlinedCache
* Specialization: {@link ByteIndexOfCodePointSetNode#indexOfSpecialized}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
* 9-29: InlinedCache
* Specialization: {@link ByteIndexOfCodePointSetNode#indexOfUncached}
* Parameter: {@link InternalNextNode} nextNode
* Inline method: {@link InternalNextNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link ByteIndexOfCodePointSetNode#indexOfUncached}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeNode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_1_;
@UnsafeAccessedField @Child private IndexOfSpecializedData indexOfSpecialized_cache;
private ByteIndexOfCodePointSetNodeGen() {
}
@Override
public int execute(AbstractTruffleString arg0Value, int arg1Value, int arg2Value, CodePointSet arg3Value) {
int state_0 = this.state_0_;
if ((state_0 & 0b11) != 0 /* is SpecializationActive[TruffleString.ByteIndexOfCodePointSetNode.indexOfSpecialized(AbstractTruffleString, int, int, CodePointSet, Node, ToIndexableNode, GetPreciseCodeRangeNode, CodePointSet, IndexOfCodePointSetNode)] || SpecializationActive[TruffleString.ByteIndexOfCodePointSetNode.indexOfUncached(AbstractTruffleString, int, int, CodePointSet, ToIndexableNode, GetCodeRangeForIndexCalculationNode, InternalNextNode)] */) {
if ((state_0 & 0b1) != 0 /* is SpecializationActive[TruffleString.ByteIndexOfCodePointSetNode.indexOfSpecialized(AbstractTruffleString, int, int, CodePointSet, Node, ToIndexableNode, GetPreciseCodeRangeNode, CodePointSet, IndexOfCodePointSetNode)] */) {
IndexOfSpecializedData s0_ = this.indexOfSpecialized_cache;
if (s0_ != null) {
if ((arg3Value == s0_.cachedCodePointSet_)) {
Node node__ = (s0_);
return ByteIndexOfCodePointSetNode.indexOfSpecialized(arg0Value, arg1Value, arg2Value, arg3Value, node__, INLINED_INDEX_OF_SPECIALIZED_TO_INDEXABLE_NODE, INLINED_INDEX_OF_SPECIALIZED_GET_PRECISE_CODE_RANGE_NODE_, s0_.cachedCodePointSet_, s0_.internalNode_);
}
}
}
if ((state_0 & 0b10) != 0 /* is SpecializationActive[TruffleString.ByteIndexOfCodePointSetNode.indexOfUncached(AbstractTruffleString, int, int, CodePointSet, ToIndexableNode, GetCodeRangeForIndexCalculationNode, InternalNextNode)] */) {
return indexOfUncached(arg0Value, arg1Value, arg2Value, arg3Value, INLINED_TO_INDEXABLE_NODE, INLINED_INDEX_OF_UNCACHED_GET_CODE_RANGE_NODE_, INLINED_INDEX_OF_UNCACHED_NEXT_NODE_);
}
}
CompilerDirectives.transferToInterpreterAndInvalidate();
return executeAndSpecialize(arg0Value, arg1Value, arg2Value, arg3Value);
}
private int executeAndSpecialize(AbstractTruffleString arg0Value, int arg1Value, int arg2Value, CodePointSet arg3Value) {
int state_0 = this.state_0_;
{
Node node__ = null;
if (((state_0 & 0b10)) == 0 /* is-not SpecializationActive[TruffleString.ByteIndexOfCodePointSetNode.indexOfUncached(AbstractTruffleString, int, int, CodePointSet, ToIndexableNode, GetCodeRangeForIndexCalculationNode, InternalNextNode)] */) {
while (true) {
int count0_ = 0;
IndexOfSpecializedData s0_ = INDEX_OF_SPECIALIZED_CACHE_UPDATER.getVolatile(this);
IndexOfSpecializedData s0_original = s0_;
while (s0_ != null) {
if ((arg3Value == s0_.cachedCodePointSet_)) {
node__ = (s0_);
break;
}
count0_++;
s0_ = null;
break;
}
if (s0_ == null && count0_ < 1) {
// assert (arg3Value == s0_.cachedCodePointSet_);
s0_ = this.insert(new IndexOfSpecializedData());
node__ = (s0_);
s0_.cachedCodePointSet_ = (arg3Value);
s0_.internalNode_ = s0_.insert((s0_.cachedCodePointSet_.createNode()));
if (!INDEX_OF_SPECIALIZED_CACHE_UPDATER.compareAndSet(this, s0_original, s0_)) {
continue;
}
state_0 = state_0 | 0b1 /* add SpecializationActive[TruffleString.ByteIndexOfCodePointSetNode.indexOfSpecialized(AbstractTruffleString, int, int, CodePointSet, Node, ToIndexableNode, GetPreciseCodeRangeNode, CodePointSet, IndexOfCodePointSetNode)] */;
this.state_0_ = state_0;
}
if (s0_ != null) {
return ByteIndexOfCodePointSetNode.indexOfSpecialized(arg0Value, arg1Value, arg2Value, arg3Value, node__, INLINED_INDEX_OF_SPECIALIZED_TO_INDEXABLE_NODE, INLINED_INDEX_OF_SPECIALIZED_GET_PRECISE_CODE_RANGE_NODE_, s0_.cachedCodePointSet_, s0_.internalNode_);
}
break;
}
}
}
this.indexOfSpecialized_cache = null;
state_0 = state_0 & 0xfffffffe /* remove SpecializationActive[TruffleString.ByteIndexOfCodePointSetNode.indexOfSpecialized(AbstractTruffleString, int, int, CodePointSet, Node, ToIndexableNode, GetPreciseCodeRangeNode, CodePointSet, IndexOfCodePointSetNode)] */;
state_0 = state_0 | 0b10 /* add SpecializationActive[TruffleString.ByteIndexOfCodePointSetNode.indexOfUncached(AbstractTruffleString, int, int, CodePointSet, ToIndexableNode, GetCodeRangeForIndexCalculationNode, InternalNextNode)] */;
this.state_0_ = state_0;
return indexOfUncached(arg0Value, arg1Value, arg2Value, arg3Value, INLINED_TO_INDEXABLE_NODE, INLINED_INDEX_OF_UNCACHED_GET_CODE_RANGE_NODE_, INLINED_INDEX_OF_UNCACHED_NEXT_NODE_);
}
@Override
public NodeCost getCost() {
int state_0 = this.state_0_;
if ((state_0 & 0b11) == 0) {
return NodeCost.UNINITIALIZED;
} else {
int counter = 0;
counter += Integer.bitCount((state_0 & 0b11));
if (counter == 1) {
return NodeCost.MONOMORPHIC;
}
}
return NodeCost.POLYMORPHIC;
}
@NeverDefault
public static ByteIndexOfCodePointSetNode create() {
return new ByteIndexOfCodePointSetNodeGen();
}
@NeverDefault
public static ByteIndexOfCodePointSetNode getUncached() {
return ByteIndexOfCodePointSetNodeGen.UNCACHED;
}
@GeneratedBy(ByteIndexOfCodePointSetNode.class)
@DenyReplace
private static final class IndexOfSpecializedData extends Node implements SpecializationDataNode {
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link ByteIndexOfCodePointSetNode#indexOfSpecialized}
* Parameter: {@link GetPreciseCodeRangeNode} getPreciseCodeRangeNode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int indexOfSpecialized_state_0_;
/**
* Source Info:
* Specialization: {@link ByteIndexOfCodePointSetNode#indexOfSpecialized}
* Parameter: {@link CodePointSet} cachedCodePointSet
*/
@CompilationFinal CodePointSet cachedCodePointSet_;
/**
* Source Info:
* Specialization: {@link ByteIndexOfCodePointSetNode#indexOfSpecialized}
* Parameter: {@link IndexOfCodePointSetNode} internalNode
*/
@Child IndexOfCodePointSetNode internalNode_;
IndexOfSpecializedData() {
}
@Override
public NodeCost getCost() {
return NodeCost.NONE;
}
private static Lookup lookup_() {
return MethodHandles.lookup();
}
}
@GeneratedBy(ByteIndexOfCodePointSetNode.class)
@DenyReplace
private static final class Uncached extends ByteIndexOfCodePointSetNode {
@TruffleBoundary
@Override
public int execute(AbstractTruffleString arg0Value, int arg1Value, int arg2Value, CodePointSet arg3Value) {
return indexOfUncached(arg0Value, arg1Value, arg2Value, arg3Value, (ToIndexableNodeGen.getUncached()), (GetCodeRangeForIndexCalculationNodeGen.getUncached()), (InternalNextNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link com.oracle.truffle.api.strings.TruffleString.IndexOfCodePointNode#doIndexOf}
* Activation probability: 1.00000
* With/without class size: 32/12 bytes
*
*/
@GeneratedBy(com.oracle.truffle.api.strings.TruffleString.IndexOfCodePointNode.class)
@SuppressWarnings("javadoc")
static final class IndexOfCodePointNodeGen extends com.oracle.truffle.api.strings.TruffleString.IndexOfCodePointNode {
private static final StateField STATE_0_IndexOfCodePointNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField STATE_1_IndexOfCodePointNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_1_");
private static final StateField STATE_2_IndexOfCodePointNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_2_");
private static final StateField STATE_3_IndexOfCodePointNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_3_");
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.IndexOfCodePointNode#doIndexOf}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_IndexOfCodePointNode_UPDATER.subUpdater(0, 7)));
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.IndexOfCodePointNode#doIndexOf}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthNode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
*/
private static final GetCodePointLengthNode INLINED_GET_CODE_POINT_LENGTH_NODE_ = GetCodePointLengthNodeGen.inline(InlineTarget.create(GetCodePointLengthNode.class, STATE_0_IndexOfCodePointNode_UPDATER.subUpdater(7, 25)));
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.IndexOfCodePointNode#doIndexOf}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeNode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*/
private static final GetCodeRangeForIndexCalculationNode INLINED_GET_CODE_RANGE_NODE_ = GetCodeRangeForIndexCalculationNodeGen.inline(InlineTarget.create(GetCodeRangeForIndexCalculationNode.class, STATE_1_IndexOfCodePointNode_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.IndexOfCodePointNode#doIndexOf}
* Parameter: {@link com.oracle.truffle.api.strings.TStringInternalNodes.IndexOfCodePointNode} indexOfNode
* Inline method: {@link com.oracle.truffle.api.strings.TStringInternalNodesFactory.IndexOfCodePointNodeGen#inline}
*/
private static final com.oracle.truffle.api.strings.TStringInternalNodes.IndexOfCodePointNode INLINED_INDEX_OF_NODE_ = com.oracle.truffle.api.strings.TStringInternalNodesFactory.IndexOfCodePointNodeGen.inline(InlineTarget.create(com.oracle.truffle.api.strings.TStringInternalNodes.IndexOfCodePointNode.class, STATE_2_IndexOfCodePointNode_UPDATER.subUpdater(0, 14), STATE_3_IndexOfCodePointNode_UPDATER.subUpdater(0, 21)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-6: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.IndexOfCodePointNode#doIndexOf}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
* 7-31: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.IndexOfCodePointNode#doIndexOf}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthNode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.IndexOfCodePointNode#doIndexOf}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeNode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_1_;
/**
* State Info:
* 0-13: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.IndexOfCodePointNode#doIndexOf}
* Parameter: {@link com.oracle.truffle.api.strings.TStringInternalNodes.IndexOfCodePointNode} indexOfNode
* Inline method: {@link com.oracle.truffle.api.strings.TStringInternalNodesFactory.IndexOfCodePointNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_2_;
/**
* State Info:
* 0-20: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.IndexOfCodePointNode#doIndexOf}
* Parameter: {@link com.oracle.truffle.api.strings.TStringInternalNodes.IndexOfCodePointNode} indexOfNode
* Inline method: {@link com.oracle.truffle.api.strings.TStringInternalNodesFactory.IndexOfCodePointNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_3_;
private IndexOfCodePointNodeGen() {
}
@Override
public int execute(AbstractTruffleString arg0Value, int arg1Value, int arg2Value, int arg3Value, Encoding arg4Value) {
return doIndexOf(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, INLINED_TO_INDEXABLE_NODE_, INLINED_GET_CODE_POINT_LENGTH_NODE_, INLINED_GET_CODE_RANGE_NODE_, INLINED_INDEX_OF_NODE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static com.oracle.truffle.api.strings.TruffleString.IndexOfCodePointNode create() {
return new com.oracle.truffle.api.strings.TruffleStringFactory.IndexOfCodePointNodeGen();
}
@NeverDefault
public static com.oracle.truffle.api.strings.TruffleString.IndexOfCodePointNode getUncached() {
return IndexOfCodePointNodeGen.UNCACHED;
}
@GeneratedBy(com.oracle.truffle.api.strings.TruffleString.IndexOfCodePointNode.class)
@DenyReplace
private static final class Uncached extends com.oracle.truffle.api.strings.TruffleString.IndexOfCodePointNode {
@TruffleBoundary
@Override
public int execute(AbstractTruffleString arg0Value, int arg1Value, int arg2Value, int arg3Value, Encoding arg4Value) {
return doIndexOf(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, (ToIndexableNodeGen.getUncached()), (GetCodePointLengthNode.getUncached()), (GetCodeRangeForIndexCalculationNodeGen.getUncached()), (com.oracle.truffle.api.strings.TStringInternalNodesFactory.IndexOfCodePointNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link ByteIndexOfCodePointNode#doIndexOf}
* Activation probability: 1.00000
* With/without class size: 32/9 bytes
*
*/
@GeneratedBy(ByteIndexOfCodePointNode.class)
@SuppressWarnings("javadoc")
static final class ByteIndexOfCodePointNodeGen extends ByteIndexOfCodePointNode {
private static final StateField STATE_0_ByteIndexOfCodePointNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField STATE_1_ByteIndexOfCodePointNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_1_");
private static final StateField STATE_2_ByteIndexOfCodePointNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_2_");
/**
* Source Info:
* Specialization: {@link ByteIndexOfCodePointNode#doIndexOf}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_ByteIndexOfCodePointNode_UPDATER.subUpdater(0, 7)));
/**
* Source Info:
* Specialization: {@link ByteIndexOfCodePointNode#doIndexOf}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeNode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*/
private static final GetCodeRangeForIndexCalculationNode INLINED_GET_CODE_RANGE_NODE_ = GetCodeRangeForIndexCalculationNodeGen.inline(InlineTarget.create(GetCodeRangeForIndexCalculationNode.class, STATE_0_ByteIndexOfCodePointNode_UPDATER.subUpdater(7, 25)));
/**
* Source Info:
* Specialization: {@link ByteIndexOfCodePointNode#doIndexOf}
* Parameter: {@link IndexOfCodePointRawNode} indexOfNode
* Inline method: {@link IndexOfCodePointRawNodeGen#inline}
*/
private static final IndexOfCodePointRawNode INLINED_INDEX_OF_NODE_ = IndexOfCodePointRawNodeGen.inline(InlineTarget.create(IndexOfCodePointRawNode.class, STATE_1_ByteIndexOfCodePointNode_UPDATER.subUpdater(0, 16), STATE_2_ByteIndexOfCodePointNode_UPDATER.subUpdater(0, 21)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-6: InlinedCache
* Specialization: {@link ByteIndexOfCodePointNode#doIndexOf}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
* 7-31: InlinedCache
* Specialization: {@link ByteIndexOfCodePointNode#doIndexOf}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeNode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* State Info:
* 0-15: InlinedCache
* Specialization: {@link ByteIndexOfCodePointNode#doIndexOf}
* Parameter: {@link IndexOfCodePointRawNode} indexOfNode
* Inline method: {@link IndexOfCodePointRawNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_1_;
/**
* State Info:
* 0-20: InlinedCache
* Specialization: {@link ByteIndexOfCodePointNode#doIndexOf}
* Parameter: {@link IndexOfCodePointRawNode} indexOfNode
* Inline method: {@link IndexOfCodePointRawNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_2_;
private ByteIndexOfCodePointNodeGen() {
}
@Override
public int execute(AbstractTruffleString arg0Value, int arg1Value, int arg2Value, int arg3Value, Encoding arg4Value) {
return doIndexOf(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, INLINED_TO_INDEXABLE_NODE_, INLINED_GET_CODE_RANGE_NODE_, INLINED_INDEX_OF_NODE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static ByteIndexOfCodePointNode create() {
return new ByteIndexOfCodePointNodeGen();
}
@NeverDefault
public static ByteIndexOfCodePointNode getUncached() {
return ByteIndexOfCodePointNodeGen.UNCACHED;
}
@GeneratedBy(ByteIndexOfCodePointNode.class)
@DenyReplace
private static final class Uncached extends ByteIndexOfCodePointNode {
@TruffleBoundary
@Override
public int execute(AbstractTruffleString arg0Value, int arg1Value, int arg2Value, int arg3Value, Encoding arg4Value) {
return doIndexOf(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, (ToIndexableNodeGen.getUncached()), (GetCodeRangeForIndexCalculationNodeGen.getUncached()), (IndexOfCodePointRawNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link com.oracle.truffle.api.strings.TruffleString.LastIndexOfCodePointNode#doIndexOf}
* Activation probability: 1.00000
* With/without class size: 32/12 bytes
*
*/
@GeneratedBy(com.oracle.truffle.api.strings.TruffleString.LastIndexOfCodePointNode.class)
@SuppressWarnings("javadoc")
static final class LastIndexOfCodePointNodeGen extends com.oracle.truffle.api.strings.TruffleString.LastIndexOfCodePointNode {
private static final StateField STATE_0_LastIndexOfCodePointNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField STATE_1_LastIndexOfCodePointNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_1_");
private static final StateField STATE_2_LastIndexOfCodePointNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_2_");
private static final StateField STATE_3_LastIndexOfCodePointNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_3_");
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.LastIndexOfCodePointNode#doIndexOf}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_LastIndexOfCodePointNode_UPDATER.subUpdater(0, 7)));
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.LastIndexOfCodePointNode#doIndexOf}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthNode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
*/
private static final GetCodePointLengthNode INLINED_GET_CODE_POINT_LENGTH_NODE_ = GetCodePointLengthNodeGen.inline(InlineTarget.create(GetCodePointLengthNode.class, STATE_0_LastIndexOfCodePointNode_UPDATER.subUpdater(7, 25)));
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.LastIndexOfCodePointNode#doIndexOf}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeNode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*/
private static final GetCodeRangeForIndexCalculationNode INLINED_GET_CODE_RANGE_NODE_ = GetCodeRangeForIndexCalculationNodeGen.inline(InlineTarget.create(GetCodeRangeForIndexCalculationNode.class, STATE_1_LastIndexOfCodePointNode_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.LastIndexOfCodePointNode#doIndexOf}
* Parameter: {@link com.oracle.truffle.api.strings.TStringInternalNodes.LastIndexOfCodePointNode} lastIndexOfNode
* Inline method: {@link com.oracle.truffle.api.strings.TStringInternalNodesFactory.LastIndexOfCodePointNodeGen#inline}
*/
private static final com.oracle.truffle.api.strings.TStringInternalNodes.LastIndexOfCodePointNode INLINED_LAST_INDEX_OF_NODE_ = com.oracle.truffle.api.strings.TStringInternalNodesFactory.LastIndexOfCodePointNodeGen.inline(InlineTarget.create(com.oracle.truffle.api.strings.TStringInternalNodes.LastIndexOfCodePointNode.class, STATE_2_LastIndexOfCodePointNode_UPDATER.subUpdater(0, 14), STATE_3_LastIndexOfCodePointNode_UPDATER.subUpdater(0, 21)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-6: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.LastIndexOfCodePointNode#doIndexOf}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
* 7-31: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.LastIndexOfCodePointNode#doIndexOf}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthNode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.LastIndexOfCodePointNode#doIndexOf}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeNode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_1_;
/**
* State Info:
* 0-13: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.LastIndexOfCodePointNode#doIndexOf}
* Parameter: {@link com.oracle.truffle.api.strings.TStringInternalNodes.LastIndexOfCodePointNode} lastIndexOfNode
* Inline method: {@link com.oracle.truffle.api.strings.TStringInternalNodesFactory.LastIndexOfCodePointNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_2_;
/**
* State Info:
* 0-20: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.LastIndexOfCodePointNode#doIndexOf}
* Parameter: {@link com.oracle.truffle.api.strings.TStringInternalNodes.LastIndexOfCodePointNode} lastIndexOfNode
* Inline method: {@link com.oracle.truffle.api.strings.TStringInternalNodesFactory.LastIndexOfCodePointNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_3_;
private LastIndexOfCodePointNodeGen() {
}
@Override
public int execute(AbstractTruffleString arg0Value, int arg1Value, int arg2Value, int arg3Value, Encoding arg4Value) {
return doIndexOf(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, INLINED_TO_INDEXABLE_NODE_, INLINED_GET_CODE_POINT_LENGTH_NODE_, INLINED_GET_CODE_RANGE_NODE_, INLINED_LAST_INDEX_OF_NODE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static com.oracle.truffle.api.strings.TruffleString.LastIndexOfCodePointNode create() {
return new com.oracle.truffle.api.strings.TruffleStringFactory.LastIndexOfCodePointNodeGen();
}
@NeverDefault
public static com.oracle.truffle.api.strings.TruffleString.LastIndexOfCodePointNode getUncached() {
return LastIndexOfCodePointNodeGen.UNCACHED;
}
@GeneratedBy(com.oracle.truffle.api.strings.TruffleString.LastIndexOfCodePointNode.class)
@DenyReplace
private static final class Uncached extends com.oracle.truffle.api.strings.TruffleString.LastIndexOfCodePointNode {
@TruffleBoundary
@Override
public int execute(AbstractTruffleString arg0Value, int arg1Value, int arg2Value, int arg3Value, Encoding arg4Value) {
return doIndexOf(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, (ToIndexableNodeGen.getUncached()), (GetCodePointLengthNode.getUncached()), (GetCodeRangeForIndexCalculationNodeGen.getUncached()), (com.oracle.truffle.api.strings.TStringInternalNodesFactory.LastIndexOfCodePointNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link LastByteIndexOfCodePointNode#doIndexOf}
* Activation probability: 1.00000
* With/without class size: 32/9 bytes
*
*/
@GeneratedBy(LastByteIndexOfCodePointNode.class)
@SuppressWarnings("javadoc")
static final class LastByteIndexOfCodePointNodeGen extends LastByteIndexOfCodePointNode {
private static final StateField STATE_0_LastByteIndexOfCodePointNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField STATE_1_LastByteIndexOfCodePointNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_1_");
private static final StateField STATE_2_LastByteIndexOfCodePointNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_2_");
/**
* Source Info:
* Specialization: {@link LastByteIndexOfCodePointNode#doIndexOf}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_LastByteIndexOfCodePointNode_UPDATER.subUpdater(0, 7)));
/**
* Source Info:
* Specialization: {@link LastByteIndexOfCodePointNode#doIndexOf}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeNode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*/
private static final GetCodeRangeForIndexCalculationNode INLINED_GET_CODE_RANGE_NODE_ = GetCodeRangeForIndexCalculationNodeGen.inline(InlineTarget.create(GetCodeRangeForIndexCalculationNode.class, STATE_0_LastByteIndexOfCodePointNode_UPDATER.subUpdater(7, 25)));
/**
* Source Info:
* Specialization: {@link LastByteIndexOfCodePointNode#doIndexOf}
* Parameter: {@link LastIndexOfCodePointRawNode} lastIndexOfNode
* Inline method: {@link LastIndexOfCodePointRawNodeGen#inline}
*/
private static final LastIndexOfCodePointRawNode INLINED_LAST_INDEX_OF_NODE_ = LastIndexOfCodePointRawNodeGen.inline(InlineTarget.create(LastIndexOfCodePointRawNode.class, STATE_1_LastByteIndexOfCodePointNode_UPDATER.subUpdater(0, 16), STATE_2_LastByteIndexOfCodePointNode_UPDATER.subUpdater(0, 21)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-6: InlinedCache
* Specialization: {@link LastByteIndexOfCodePointNode#doIndexOf}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
* 7-31: InlinedCache
* Specialization: {@link LastByteIndexOfCodePointNode#doIndexOf}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeNode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* State Info:
* 0-15: InlinedCache
* Specialization: {@link LastByteIndexOfCodePointNode#doIndexOf}
* Parameter: {@link LastIndexOfCodePointRawNode} lastIndexOfNode
* Inline method: {@link LastIndexOfCodePointRawNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_1_;
/**
* State Info:
* 0-20: InlinedCache
* Specialization: {@link LastByteIndexOfCodePointNode#doIndexOf}
* Parameter: {@link LastIndexOfCodePointRawNode} lastIndexOfNode
* Inline method: {@link LastIndexOfCodePointRawNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_2_;
private LastByteIndexOfCodePointNodeGen() {
}
@Override
public int execute(AbstractTruffleString arg0Value, int arg1Value, int arg2Value, int arg3Value, Encoding arg4Value) {
return doIndexOf(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, INLINED_TO_INDEXABLE_NODE_, INLINED_GET_CODE_RANGE_NODE_, INLINED_LAST_INDEX_OF_NODE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static LastByteIndexOfCodePointNode create() {
return new LastByteIndexOfCodePointNodeGen();
}
@NeverDefault
public static LastByteIndexOfCodePointNode getUncached() {
return LastByteIndexOfCodePointNodeGen.UNCACHED;
}
@GeneratedBy(LastByteIndexOfCodePointNode.class)
@DenyReplace
private static final class Uncached extends LastByteIndexOfCodePointNode {
@TruffleBoundary
@Override
public int execute(AbstractTruffleString arg0Value, int arg1Value, int arg2Value, int arg3Value, Encoding arg4Value) {
return doIndexOf(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, (ToIndexableNodeGen.getUncached()), (GetCodeRangeForIndexCalculationNodeGen.getUncached()), (LastIndexOfCodePointRawNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link IndexOfStringNode#indexOfString}
* Activation probability: 1.00000
* With/without class size: 44/24 bytes
*
*/
@GeneratedBy(IndexOfStringNode.class)
@SuppressWarnings("javadoc")
static final class IndexOfStringNodeGen extends IndexOfStringNode {
private static final StateField STATE_0_IndexOfStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField STATE_1_IndexOfStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_1_");
private static final StateField STATE_2_IndexOfStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_2_");
private static final StateField STATE_3_IndexOfStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_3_");
private static final StateField STATE_4_IndexOfStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_4_");
private static final StateField STATE_5_IndexOfStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_5_");
private static final StateField STATE_6_IndexOfStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_6_");
/**
* Source Info:
* Specialization: {@link IndexOfStringNode#indexOfString}
* Parameter: {@link ToIndexableNode} toIndexableNodeA
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_A_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_IndexOfStringNode_UPDATER.subUpdater(0, 7)));
/**
* Source Info:
* Specialization: {@link IndexOfStringNode#indexOfString}
* Parameter: {@link ToIndexableNode} toIndexableNodeB
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_B_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_IndexOfStringNode_UPDATER.subUpdater(7, 7)));
/**
* Source Info:
* Specialization: {@link IndexOfStringNode#indexOfString}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthANode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
*/
private static final GetCodePointLengthNode INLINED_GET_CODE_POINT_LENGTH_A_NODE_ = GetCodePointLengthNodeGen.inline(InlineTarget.create(GetCodePointLengthNode.class, STATE_1_IndexOfStringNode_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link IndexOfStringNode#indexOfString}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthBNode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
*/
private static final GetCodePointLengthNode INLINED_GET_CODE_POINT_LENGTH_B_NODE_ = GetCodePointLengthNodeGen.inline(InlineTarget.create(GetCodePointLengthNode.class, STATE_2_IndexOfStringNode_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link IndexOfStringNode#indexOfString}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeANode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*/
private static final GetCodeRangeForIndexCalculationNode INLINED_GET_CODE_RANGE_A_NODE_ = GetCodeRangeForIndexCalculationNodeGen.inline(InlineTarget.create(GetCodeRangeForIndexCalculationNode.class, STATE_3_IndexOfStringNode_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link IndexOfStringNode#indexOfString}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeBNode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*/
private static final GetCodeRangeForIndexCalculationNode INLINED_GET_CODE_RANGE_B_NODE_ = GetCodeRangeForIndexCalculationNodeGen.inline(InlineTarget.create(GetCodeRangeForIndexCalculationNode.class, STATE_4_IndexOfStringNode_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link IndexOfStringNode#indexOfString}
* Parameter: {@link InternalIndexOfStringNode} indexOfStringNode
* Inline method: {@link InternalIndexOfStringNodeGen#inline}
*/
private static final InternalIndexOfStringNode INLINED_INDEX_OF_STRING_NODE_ = InternalIndexOfStringNodeGen.inline(InlineTarget.create(InternalIndexOfStringNode.class, STATE_5_IndexOfStringNode_UPDATER.subUpdater(0, 24), STATE_6_IndexOfStringNode_UPDATER.subUpdater(0, 21), ReferenceField.create(MethodHandles.lookup(), "indexOfStringNode__field2_", Node.class)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-6: InlinedCache
* Specialization: {@link IndexOfStringNode#indexOfString}
* Parameter: {@link ToIndexableNode} toIndexableNodeA
* Inline method: {@link ToIndexableNodeGen#inline}
* 7-13: InlinedCache
* Specialization: {@link IndexOfStringNode#indexOfString}
* Parameter: {@link ToIndexableNode} toIndexableNodeB
* Inline method: {@link ToIndexableNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link IndexOfStringNode#indexOfString}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthANode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_1_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link IndexOfStringNode#indexOfString}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthBNode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_2_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link IndexOfStringNode#indexOfString}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeANode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_3_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link IndexOfStringNode#indexOfString}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeBNode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_4_;
/**
* State Info:
* 0-23: InlinedCache
* Specialization: {@link IndexOfStringNode#indexOfString}
* Parameter: {@link InternalIndexOfStringNode} indexOfStringNode
* Inline method: {@link InternalIndexOfStringNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_5_;
/**
* State Info:
* 0-20: InlinedCache
* Specialization: {@link IndexOfStringNode#indexOfString}
* Parameter: {@link InternalIndexOfStringNode} indexOfStringNode
* Inline method: {@link InternalIndexOfStringNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_6_;
/**
* Source Info:
* Specialization: {@link IndexOfStringNode#indexOfString}
* Parameter: {@link InternalIndexOfStringNode} indexOfStringNode
* Inline method: {@link InternalIndexOfStringNodeGen#inline}
* Inline field: {@link Node} field2
*/
@Child @UnsafeAccessedField @SuppressWarnings("unused") private Node indexOfStringNode__field2_;
private IndexOfStringNodeGen() {
}
@Override
public int execute(AbstractTruffleString arg0Value, AbstractTruffleString arg1Value, int arg2Value, int arg3Value, Encoding arg4Value) {
return indexOfString(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, INLINED_TO_INDEXABLE_NODE_A_, INLINED_TO_INDEXABLE_NODE_B_, INLINED_GET_CODE_POINT_LENGTH_A_NODE_, INLINED_GET_CODE_POINT_LENGTH_B_NODE_, INLINED_GET_CODE_RANGE_A_NODE_, INLINED_GET_CODE_RANGE_B_NODE_, INLINED_INDEX_OF_STRING_NODE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static IndexOfStringNode create() {
return new IndexOfStringNodeGen();
}
@NeverDefault
public static IndexOfStringNode getUncached() {
return IndexOfStringNodeGen.UNCACHED;
}
@GeneratedBy(IndexOfStringNode.class)
@DenyReplace
private static final class Uncached extends IndexOfStringNode {
@TruffleBoundary
@Override
public int execute(AbstractTruffleString arg0Value, AbstractTruffleString arg1Value, int arg2Value, int arg3Value, Encoding arg4Value) {
return indexOfString(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, (ToIndexableNodeGen.getUncached()), (ToIndexableNodeGen.getUncached()), (GetCodePointLengthNode.getUncached()), (GetCodePointLengthNode.getUncached()), (GetCodeRangeForIndexCalculationNodeGen.getUncached()), (GetCodeRangeForIndexCalculationNodeGen.getUncached()), (InternalIndexOfStringNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link ByteIndexOfStringNode#indexOfString}
* Activation probability: 1.00000
* With/without class size: 40/18 bytes
*
*/
@GeneratedBy(ByteIndexOfStringNode.class)
@SuppressWarnings("javadoc")
static final class ByteIndexOfStringNodeGen extends ByteIndexOfStringNode {
private static final StateField STATE_0_ByteIndexOfStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField STATE_1_ByteIndexOfStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_1_");
private static final StateField STATE_2_ByteIndexOfStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_2_");
private static final StateField STATE_3_ByteIndexOfStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_3_");
private static final StateField STATE_4_ByteIndexOfStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_4_");
/**
* Source Info:
* Specialization: {@link ByteIndexOfStringNode#indexOfString}
* Parameter: {@link ToIndexableNode} toIndexableNodeA
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_A_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_ByteIndexOfStringNode_UPDATER.subUpdater(0, 7)));
/**
* Source Info:
* Specialization: {@link ByteIndexOfStringNode#indexOfString}
* Parameter: {@link ToIndexableNode} toIndexableNodeB
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_B_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_ByteIndexOfStringNode_UPDATER.subUpdater(7, 7)));
/**
* Source Info:
* Specialization: {@link ByteIndexOfStringNode#indexOfString}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeANode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*/
private static final GetCodeRangeForIndexCalculationNode INLINED_GET_CODE_RANGE_A_NODE_ = GetCodeRangeForIndexCalculationNodeGen.inline(InlineTarget.create(GetCodeRangeForIndexCalculationNode.class, STATE_1_ByteIndexOfStringNode_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link ByteIndexOfStringNode#indexOfString}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeBNode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*/
private static final GetCodeRangeForIndexCalculationNode INLINED_GET_CODE_RANGE_B_NODE_ = GetCodeRangeForIndexCalculationNodeGen.inline(InlineTarget.create(GetCodeRangeForIndexCalculationNode.class, STATE_2_ByteIndexOfStringNode_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link ByteIndexOfStringNode#indexOfString}
* Parameter: {@link IndexOfStringRawNode} indexOfStringNode
* Inline method: {@link IndexOfStringRawNodeGen#inline}
*/
private static final IndexOfStringRawNode INLINED_INDEX_OF_STRING_NODE_ = IndexOfStringRawNodeGen.inline(InlineTarget.create(IndexOfStringRawNode.class, STATE_3_ByteIndexOfStringNode_UPDATER.subUpdater(0, 24), STATE_4_ByteIndexOfStringNode_UPDATER.subUpdater(0, 21), ReferenceField.create(MethodHandles.lookup(), "indexOfStringNode__field2_", Node.class)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-6: InlinedCache
* Specialization: {@link ByteIndexOfStringNode#indexOfString}
* Parameter: {@link ToIndexableNode} toIndexableNodeA
* Inline method: {@link ToIndexableNodeGen#inline}
* 7-13: InlinedCache
* Specialization: {@link ByteIndexOfStringNode#indexOfString}
* Parameter: {@link ToIndexableNode} toIndexableNodeB
* Inline method: {@link ToIndexableNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link ByteIndexOfStringNode#indexOfString}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeANode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_1_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link ByteIndexOfStringNode#indexOfString}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeBNode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_2_;
/**
* State Info:
* 0-23: InlinedCache
* Specialization: {@link ByteIndexOfStringNode#indexOfString}
* Parameter: {@link IndexOfStringRawNode} indexOfStringNode
* Inline method: {@link IndexOfStringRawNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_3_;
/**
* State Info:
* 0-20: InlinedCache
* Specialization: {@link ByteIndexOfStringNode#indexOfString}
* Parameter: {@link IndexOfStringRawNode} indexOfStringNode
* Inline method: {@link IndexOfStringRawNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_4_;
/**
* Source Info:
* Specialization: {@link ByteIndexOfStringNode#indexOfString}
* Parameter: {@link IndexOfStringRawNode} indexOfStringNode
* Inline method: {@link IndexOfStringRawNodeGen#inline}
* Inline field: {@link Node} field2
*/
@Child @UnsafeAccessedField @SuppressWarnings("unused") private Node indexOfStringNode__field2_;
private ByteIndexOfStringNodeGen() {
}
@Override
int execute(AbstractTruffleString arg0Value, AbstractTruffleString arg1Value, int arg2Value, int arg3Value, byte[] arg4Value, Encoding arg5Value) {
return indexOfString(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value, INLINED_TO_INDEXABLE_NODE_A_, INLINED_TO_INDEXABLE_NODE_B_, INLINED_GET_CODE_RANGE_A_NODE_, INLINED_GET_CODE_RANGE_B_NODE_, INLINED_INDEX_OF_STRING_NODE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static ByteIndexOfStringNode create() {
return new ByteIndexOfStringNodeGen();
}
@NeverDefault
public static ByteIndexOfStringNode getUncached() {
return ByteIndexOfStringNodeGen.UNCACHED;
}
@GeneratedBy(ByteIndexOfStringNode.class)
@DenyReplace
private static final class Uncached extends ByteIndexOfStringNode {
@TruffleBoundary
@Override
int execute(AbstractTruffleString arg0Value, AbstractTruffleString arg1Value, int arg2Value, int arg3Value, byte[] arg4Value, Encoding arg5Value) {
return indexOfString(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value, (ToIndexableNodeGen.getUncached()), (ToIndexableNodeGen.getUncached()), (GetCodeRangeForIndexCalculationNodeGen.getUncached()), (GetCodeRangeForIndexCalculationNodeGen.getUncached()), (IndexOfStringRawNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link com.oracle.truffle.api.strings.TruffleString.LastIndexOfStringNode#lastIndexOfString}
* Activation probability: 1.00000
* With/without class size: 48/27 bytes
*
*/
@GeneratedBy(com.oracle.truffle.api.strings.TruffleString.LastIndexOfStringNode.class)
@SuppressWarnings("javadoc")
static final class LastIndexOfStringNodeGen extends com.oracle.truffle.api.strings.TruffleString.LastIndexOfStringNode {
private static final StateField STATE_0_LastIndexOfStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField STATE_1_LastIndexOfStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_1_");
private static final StateField STATE_2_LastIndexOfStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_2_");
private static final StateField STATE_3_LastIndexOfStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_3_");
private static final StateField STATE_4_LastIndexOfStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_4_");
private static final StateField STATE_5_LastIndexOfStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_5_");
private static final StateField STATE_6_LastIndexOfStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_6_");
private static final StateField STATE_7_LastIndexOfStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_7_");
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.LastIndexOfStringNode#lastIndexOfString}
* Parameter: {@link ToIndexableNode} toIndexableNodeA
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_A_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_LastIndexOfStringNode_UPDATER.subUpdater(0, 7)));
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.LastIndexOfStringNode#lastIndexOfString}
* Parameter: {@link ToIndexableNode} toIndexableNodeB
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_B_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_LastIndexOfStringNode_UPDATER.subUpdater(7, 7)));
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.LastIndexOfStringNode#lastIndexOfString}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthANode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
*/
private static final GetCodePointLengthNode INLINED_GET_CODE_POINT_LENGTH_A_NODE_ = GetCodePointLengthNodeGen.inline(InlineTarget.create(GetCodePointLengthNode.class, STATE_1_LastIndexOfStringNode_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.LastIndexOfStringNode#lastIndexOfString}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthBNode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
*/
private static final GetCodePointLengthNode INLINED_GET_CODE_POINT_LENGTH_B_NODE_ = GetCodePointLengthNodeGen.inline(InlineTarget.create(GetCodePointLengthNode.class, STATE_2_LastIndexOfStringNode_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.LastIndexOfStringNode#lastIndexOfString}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeANode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*/
private static final GetCodeRangeForIndexCalculationNode INLINED_GET_CODE_RANGE_A_NODE_ = GetCodeRangeForIndexCalculationNodeGen.inline(InlineTarget.create(GetCodeRangeForIndexCalculationNode.class, STATE_3_LastIndexOfStringNode_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.LastIndexOfStringNode#lastIndexOfString}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeBNode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*/
private static final GetCodeRangeForIndexCalculationNode INLINED_GET_CODE_RANGE_B_NODE_ = GetCodeRangeForIndexCalculationNodeGen.inline(InlineTarget.create(GetCodeRangeForIndexCalculationNode.class, STATE_4_LastIndexOfStringNode_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.LastIndexOfStringNode#lastIndexOfString}
* Parameter: {@link com.oracle.truffle.api.strings.TStringInternalNodes.LastIndexOfStringNode} indexOfStringNode
* Inline method: {@link com.oracle.truffle.api.strings.TStringInternalNodesFactory.LastIndexOfStringNodeGen#inline}
*/
private static final com.oracle.truffle.api.strings.TStringInternalNodes.LastIndexOfStringNode INLINED_INDEX_OF_STRING_NODE_ = com.oracle.truffle.api.strings.TStringInternalNodesFactory.LastIndexOfStringNodeGen.inline(InlineTarget.create(com.oracle.truffle.api.strings.TStringInternalNodes.LastIndexOfStringNode.class, STATE_5_LastIndexOfStringNode_UPDATER.subUpdater(0, 24), STATE_6_LastIndexOfStringNode_UPDATER.subUpdater(0, 21), STATE_7_LastIndexOfStringNode_UPDATER.subUpdater(0, 21), ReferenceField.create(MethodHandles.lookup(), "indexOfStringNode__field3_", Node.class)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-6: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.LastIndexOfStringNode#lastIndexOfString}
* Parameter: {@link ToIndexableNode} toIndexableNodeA
* Inline method: {@link ToIndexableNodeGen#inline}
* 7-13: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.LastIndexOfStringNode#lastIndexOfString}
* Parameter: {@link ToIndexableNode} toIndexableNodeB
* Inline method: {@link ToIndexableNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.LastIndexOfStringNode#lastIndexOfString}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthANode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_1_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.LastIndexOfStringNode#lastIndexOfString}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthBNode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_2_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.LastIndexOfStringNode#lastIndexOfString}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeANode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_3_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.LastIndexOfStringNode#lastIndexOfString}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeBNode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_4_;
/**
* State Info:
* 0-23: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.LastIndexOfStringNode#lastIndexOfString}
* Parameter: {@link com.oracle.truffle.api.strings.TStringInternalNodes.LastIndexOfStringNode} indexOfStringNode
* Inline method: {@link com.oracle.truffle.api.strings.TStringInternalNodesFactory.LastIndexOfStringNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_5_;
/**
* State Info:
* 0-20: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.LastIndexOfStringNode#lastIndexOfString}
* Parameter: {@link com.oracle.truffle.api.strings.TStringInternalNodes.LastIndexOfStringNode} indexOfStringNode
* Inline method: {@link com.oracle.truffle.api.strings.TStringInternalNodesFactory.LastIndexOfStringNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_6_;
/**
* State Info:
* 0-20: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.LastIndexOfStringNode#lastIndexOfString}
* Parameter: {@link com.oracle.truffle.api.strings.TStringInternalNodes.LastIndexOfStringNode} indexOfStringNode
* Inline method: {@link com.oracle.truffle.api.strings.TStringInternalNodesFactory.LastIndexOfStringNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_7_;
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.LastIndexOfStringNode#lastIndexOfString}
* Parameter: {@link com.oracle.truffle.api.strings.TStringInternalNodes.LastIndexOfStringNode} indexOfStringNode
* Inline method: {@link com.oracle.truffle.api.strings.TStringInternalNodesFactory.LastIndexOfStringNodeGen#inline}
* Inline field: {@link Node} field3
*/
@Child @UnsafeAccessedField @SuppressWarnings("unused") private Node indexOfStringNode__field3_;
private LastIndexOfStringNodeGen() {
}
@Override
public int execute(AbstractTruffleString arg0Value, AbstractTruffleString arg1Value, int arg2Value, int arg3Value, Encoding arg4Value) {
return lastIndexOfString(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, INLINED_TO_INDEXABLE_NODE_A_, INLINED_TO_INDEXABLE_NODE_B_, INLINED_GET_CODE_POINT_LENGTH_A_NODE_, INLINED_GET_CODE_POINT_LENGTH_B_NODE_, INLINED_GET_CODE_RANGE_A_NODE_, INLINED_GET_CODE_RANGE_B_NODE_, INLINED_INDEX_OF_STRING_NODE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static com.oracle.truffle.api.strings.TruffleString.LastIndexOfStringNode create() {
return new com.oracle.truffle.api.strings.TruffleStringFactory.LastIndexOfStringNodeGen();
}
@NeverDefault
public static com.oracle.truffle.api.strings.TruffleString.LastIndexOfStringNode getUncached() {
return LastIndexOfStringNodeGen.UNCACHED;
}
@GeneratedBy(com.oracle.truffle.api.strings.TruffleString.LastIndexOfStringNode.class)
@DenyReplace
private static final class Uncached extends com.oracle.truffle.api.strings.TruffleString.LastIndexOfStringNode {
@TruffleBoundary
@Override
public int execute(AbstractTruffleString arg0Value, AbstractTruffleString arg1Value, int arg2Value, int arg3Value, Encoding arg4Value) {
return lastIndexOfString(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, (ToIndexableNodeGen.getUncached()), (ToIndexableNodeGen.getUncached()), (GetCodePointLengthNode.getUncached()), (GetCodePointLengthNode.getUncached()), (GetCodeRangeForIndexCalculationNodeGen.getUncached()), (GetCodeRangeForIndexCalculationNodeGen.getUncached()), (com.oracle.truffle.api.strings.TStringInternalNodesFactory.LastIndexOfStringNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link LastByteIndexOfStringNode#lastByteIndexOfString}
* Activation probability: 1.00000
* With/without class size: 44/21 bytes
*
*/
@GeneratedBy(LastByteIndexOfStringNode.class)
@SuppressWarnings("javadoc")
static final class LastByteIndexOfStringNodeGen extends LastByteIndexOfStringNode {
private static final StateField STATE_0_LastByteIndexOfStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField STATE_1_LastByteIndexOfStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_1_");
private static final StateField STATE_2_LastByteIndexOfStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_2_");
private static final StateField STATE_3_LastByteIndexOfStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_3_");
private static final StateField STATE_4_LastByteIndexOfStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_4_");
private static final StateField STATE_5_LastByteIndexOfStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_5_");
/**
* Source Info:
* Specialization: {@link LastByteIndexOfStringNode#lastByteIndexOfString}
* Parameter: {@link ToIndexableNode} toIndexableNodeA
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_A_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_LastByteIndexOfStringNode_UPDATER.subUpdater(0, 7)));
/**
* Source Info:
* Specialization: {@link LastByteIndexOfStringNode#lastByteIndexOfString}
* Parameter: {@link ToIndexableNode} toIndexableNodeB
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_B_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_LastByteIndexOfStringNode_UPDATER.subUpdater(7, 7)));
/**
* Source Info:
* Specialization: {@link LastByteIndexOfStringNode#lastByteIndexOfString}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeANode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*/
private static final GetCodeRangeForIndexCalculationNode INLINED_GET_CODE_RANGE_A_NODE_ = GetCodeRangeForIndexCalculationNodeGen.inline(InlineTarget.create(GetCodeRangeForIndexCalculationNode.class, STATE_1_LastByteIndexOfStringNode_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link LastByteIndexOfStringNode#lastByteIndexOfString}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeBNode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*/
private static final GetCodeRangeForIndexCalculationNode INLINED_GET_CODE_RANGE_B_NODE_ = GetCodeRangeForIndexCalculationNodeGen.inline(InlineTarget.create(GetCodeRangeForIndexCalculationNode.class, STATE_2_LastByteIndexOfStringNode_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link LastByteIndexOfStringNode#lastByteIndexOfString}
* Parameter: {@link LastIndexOfStringRawNode} indexOfStringNode
* Inline method: {@link LastIndexOfStringRawNodeGen#inline}
*/
private static final LastIndexOfStringRawNode INLINED_INDEX_OF_STRING_NODE_ = LastIndexOfStringRawNodeGen.inline(InlineTarget.create(LastIndexOfStringRawNode.class, STATE_3_LastByteIndexOfStringNode_UPDATER.subUpdater(0, 24), STATE_4_LastByteIndexOfStringNode_UPDATER.subUpdater(0, 21), STATE_5_LastByteIndexOfStringNode_UPDATER.subUpdater(0, 21), ReferenceField.create(MethodHandles.lookup(), "indexOfStringNode__field3_", Node.class)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-6: InlinedCache
* Specialization: {@link LastByteIndexOfStringNode#lastByteIndexOfString}
* Parameter: {@link ToIndexableNode} toIndexableNodeA
* Inline method: {@link ToIndexableNodeGen#inline}
* 7-13: InlinedCache
* Specialization: {@link LastByteIndexOfStringNode#lastByteIndexOfString}
* Parameter: {@link ToIndexableNode} toIndexableNodeB
* Inline method: {@link ToIndexableNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link LastByteIndexOfStringNode#lastByteIndexOfString}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeANode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_1_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link LastByteIndexOfStringNode#lastByteIndexOfString}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeBNode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_2_;
/**
* State Info:
* 0-23: InlinedCache
* Specialization: {@link LastByteIndexOfStringNode#lastByteIndexOfString}
* Parameter: {@link LastIndexOfStringRawNode} indexOfStringNode
* Inline method: {@link LastIndexOfStringRawNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_3_;
/**
* State Info:
* 0-20: InlinedCache
* Specialization: {@link LastByteIndexOfStringNode#lastByteIndexOfString}
* Parameter: {@link LastIndexOfStringRawNode} indexOfStringNode
* Inline method: {@link LastIndexOfStringRawNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_4_;
/**
* State Info:
* 0-20: InlinedCache
* Specialization: {@link LastByteIndexOfStringNode#lastByteIndexOfString}
* Parameter: {@link LastIndexOfStringRawNode} indexOfStringNode
* Inline method: {@link LastIndexOfStringRawNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_5_;
/**
* Source Info:
* Specialization: {@link LastByteIndexOfStringNode#lastByteIndexOfString}
* Parameter: {@link LastIndexOfStringRawNode} indexOfStringNode
* Inline method: {@link LastIndexOfStringRawNodeGen#inline}
* Inline field: {@link Node} field3
*/
@Child @UnsafeAccessedField @SuppressWarnings("unused") private Node indexOfStringNode__field3_;
private LastByteIndexOfStringNodeGen() {
}
@Override
int execute(AbstractTruffleString arg0Value, AbstractTruffleString arg1Value, int arg2Value, int arg3Value, byte[] arg4Value, Encoding arg5Value) {
return lastByteIndexOfString(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value, INLINED_TO_INDEXABLE_NODE_A_, INLINED_TO_INDEXABLE_NODE_B_, INLINED_GET_CODE_RANGE_A_NODE_, INLINED_GET_CODE_RANGE_B_NODE_, INLINED_INDEX_OF_STRING_NODE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static LastByteIndexOfStringNode create() {
return new LastByteIndexOfStringNodeGen();
}
@NeverDefault
public static LastByteIndexOfStringNode getUncached() {
return LastByteIndexOfStringNodeGen.UNCACHED;
}
@GeneratedBy(LastByteIndexOfStringNode.class)
@DenyReplace
private static final class Uncached extends LastByteIndexOfStringNode {
@TruffleBoundary
@Override
int execute(AbstractTruffleString arg0Value, AbstractTruffleString arg1Value, int arg2Value, int arg3Value, byte[] arg4Value, Encoding arg5Value) {
return lastByteIndexOfString(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value, (ToIndexableNodeGen.getUncached()), (ToIndexableNodeGen.getUncached()), (GetCodeRangeForIndexCalculationNodeGen.getUncached()), (GetCodeRangeForIndexCalculationNodeGen.getUncached()), (LastIndexOfStringRawNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link CompareBytesNode#compare}
* Activation probability: 1.00000
* With/without class size: 24/2 bytes
*
*/
@GeneratedBy(CompareBytesNode.class)
@SuppressWarnings("javadoc")
static final class CompareBytesNodeGen extends CompareBytesNode {
private static final StateField STATE_0_CompareBytesNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link CompareBytesNode#compare}
* Parameter: {@link ToIndexableNode} toIndexableNodeA
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_A_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_CompareBytesNode_UPDATER.subUpdater(0, 7)));
/**
* Source Info:
* Specialization: {@link CompareBytesNode#compare}
* Parameter: {@link ToIndexableNode} toIndexableNodeB
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_B_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_CompareBytesNode_UPDATER.subUpdater(7, 7)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-6: InlinedCache
* Specialization: {@link CompareBytesNode#compare}
* Parameter: {@link ToIndexableNode} toIndexableNodeA
* Inline method: {@link ToIndexableNodeGen#inline}
* 7-13: InlinedCache
* Specialization: {@link CompareBytesNode#compare}
* Parameter: {@link ToIndexableNode} toIndexableNodeB
* Inline method: {@link ToIndexableNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
private CompareBytesNodeGen() {
}
@Override
public int execute(AbstractTruffleString arg0Value, AbstractTruffleString arg1Value, Encoding arg2Value) {
return compare(arg0Value, arg1Value, arg2Value, INLINED_TO_INDEXABLE_NODE_A_, INLINED_TO_INDEXABLE_NODE_B_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static CompareBytesNode create() {
return new CompareBytesNodeGen();
}
@NeverDefault
public static CompareBytesNode getUncached() {
return CompareBytesNodeGen.UNCACHED;
}
@GeneratedBy(CompareBytesNode.class)
@DenyReplace
private static final class Uncached extends CompareBytesNode {
@TruffleBoundary
@Override
public int execute(AbstractTruffleString arg0Value, AbstractTruffleString arg1Value, Encoding arg2Value) {
return compare(arg0Value, arg1Value, arg2Value, (ToIndexableNodeGen.getUncached()), (ToIndexableNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link CompareCharsUTF16Node#compare}
* Activation probability: 1.00000
* With/without class size: 24/2 bytes
*
*/
@GeneratedBy(CompareCharsUTF16Node.class)
@SuppressWarnings("javadoc")
static final class CompareCharsUTF16NodeGen extends CompareCharsUTF16Node {
private static final StateField STATE_0_CompareCharsUTF16Node_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link CompareCharsUTF16Node#compare}
* Parameter: {@link ToIndexableNode} toIndexableNodeA
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_A_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_CompareCharsUTF16Node_UPDATER.subUpdater(0, 7)));
/**
* Source Info:
* Specialization: {@link CompareCharsUTF16Node#compare}
* Parameter: {@link ToIndexableNode} toIndexableNodeB
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_B_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_CompareCharsUTF16Node_UPDATER.subUpdater(7, 7)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-6: InlinedCache
* Specialization: {@link CompareCharsUTF16Node#compare}
* Parameter: {@link ToIndexableNode} toIndexableNodeA
* Inline method: {@link ToIndexableNodeGen#inline}
* 7-13: InlinedCache
* Specialization: {@link CompareCharsUTF16Node#compare}
* Parameter: {@link ToIndexableNode} toIndexableNodeB
* Inline method: {@link ToIndexableNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
private CompareCharsUTF16NodeGen() {
}
@Override
public int execute(AbstractTruffleString arg0Value, AbstractTruffleString arg1Value) {
return compare(arg0Value, arg1Value, INLINED_TO_INDEXABLE_NODE_A_, INLINED_TO_INDEXABLE_NODE_B_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static CompareCharsUTF16Node create() {
return new CompareCharsUTF16NodeGen();
}
@NeverDefault
public static CompareCharsUTF16Node getUncached() {
return CompareCharsUTF16NodeGen.UNCACHED;
}
@GeneratedBy(CompareCharsUTF16Node.class)
@DenyReplace
private static final class Uncached extends CompareCharsUTF16Node {
@TruffleBoundary
@Override
public int execute(AbstractTruffleString arg0Value, AbstractTruffleString arg1Value) {
return compare(arg0Value, arg1Value, (ToIndexableNodeGen.getUncached()), (ToIndexableNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link CompareIntsUTF32Node#compare}
* Activation probability: 1.00000
* With/without class size: 24/2 bytes
*
*/
@GeneratedBy(CompareIntsUTF32Node.class)
@SuppressWarnings("javadoc")
static final class CompareIntsUTF32NodeGen extends CompareIntsUTF32Node {
private static final StateField STATE_0_CompareIntsUTF32Node_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link CompareIntsUTF32Node#compare}
* Parameter: {@link ToIndexableNode} toIndexableNodeA
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_A_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_CompareIntsUTF32Node_UPDATER.subUpdater(0, 7)));
/**
* Source Info:
* Specialization: {@link CompareIntsUTF32Node#compare}
* Parameter: {@link ToIndexableNode} toIndexableNodeB
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_B_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_CompareIntsUTF32Node_UPDATER.subUpdater(7, 7)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-6: InlinedCache
* Specialization: {@link CompareIntsUTF32Node#compare}
* Parameter: {@link ToIndexableNode} toIndexableNodeA
* Inline method: {@link ToIndexableNodeGen#inline}
* 7-13: InlinedCache
* Specialization: {@link CompareIntsUTF32Node#compare}
* Parameter: {@link ToIndexableNode} toIndexableNodeB
* Inline method: {@link ToIndexableNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
private CompareIntsUTF32NodeGen() {
}
@Override
public int execute(AbstractTruffleString arg0Value, AbstractTruffleString arg1Value) {
return compare(arg0Value, arg1Value, INLINED_TO_INDEXABLE_NODE_A_, INLINED_TO_INDEXABLE_NODE_B_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static CompareIntsUTF32Node create() {
return new CompareIntsUTF32NodeGen();
}
@NeverDefault
public static CompareIntsUTF32Node getUncached() {
return CompareIntsUTF32NodeGen.UNCACHED;
}
@GeneratedBy(CompareIntsUTF32Node.class)
@DenyReplace
private static final class Uncached extends CompareIntsUTF32Node {
@TruffleBoundary
@Override
public int execute(AbstractTruffleString arg0Value, AbstractTruffleString arg1Value) {
return compare(arg0Value, arg1Value, (ToIndexableNodeGen.getUncached()), (ToIndexableNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link RegionEqualNode#regionEquals}
* Activation probability: 1.00000
* With/without class size: 40/20 bytes
*
*/
@GeneratedBy(RegionEqualNode.class)
@SuppressWarnings("javadoc")
static final class RegionEqualNodeGen extends RegionEqualNode {
private static final StateField STATE_0_RegionEqualNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField STATE_1_RegionEqualNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_1_");
private static final StateField STATE_2_RegionEqualNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_2_");
private static final StateField STATE_3_RegionEqualNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_3_");
private static final StateField STATE_4_RegionEqualNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_4_");
private static final StateField STATE_5_RegionEqualNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_5_");
private static final StateField STATE_6_RegionEqualNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_6_");
/**
* Source Info:
* Specialization: {@link RegionEqualNode#regionEquals}
* Parameter: {@link ToIndexableNode} toIndexableNodeA
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_A_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_RegionEqualNode_UPDATER.subUpdater(0, 7)));
/**
* Source Info:
* Specialization: {@link RegionEqualNode#regionEquals}
* Parameter: {@link ToIndexableNode} toIndexableNodeB
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_B_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_RegionEqualNode_UPDATER.subUpdater(7, 7)));
/**
* Source Info:
* Specialization: {@link RegionEqualNode#regionEquals}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthANode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
*/
private static final GetCodePointLengthNode INLINED_GET_CODE_POINT_LENGTH_A_NODE_ = GetCodePointLengthNodeGen.inline(InlineTarget.create(GetCodePointLengthNode.class, STATE_1_RegionEqualNode_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link RegionEqualNode#regionEquals}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthBNode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
*/
private static final GetCodePointLengthNode INLINED_GET_CODE_POINT_LENGTH_B_NODE_ = GetCodePointLengthNodeGen.inline(InlineTarget.create(GetCodePointLengthNode.class, STATE_2_RegionEqualNode_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link RegionEqualNode#regionEquals}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeANode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*/
private static final GetCodeRangeForIndexCalculationNode INLINED_GET_CODE_RANGE_A_NODE_ = GetCodeRangeForIndexCalculationNodeGen.inline(InlineTarget.create(GetCodeRangeForIndexCalculationNode.class, STATE_3_RegionEqualNode_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link RegionEqualNode#regionEquals}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeBNode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*/
private static final GetCodeRangeForIndexCalculationNode INLINED_GET_CODE_RANGE_B_NODE_ = GetCodeRangeForIndexCalculationNodeGen.inline(InlineTarget.create(GetCodeRangeForIndexCalculationNode.class, STATE_4_RegionEqualNode_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link RegionEqualNode#regionEquals}
* Parameter: {@link RegionEqualsNode} regionEqualsNode
* Inline method: {@link RegionEqualsNodeGen#inline}
*/
private static final RegionEqualsNode INLINED_REGION_EQUALS_NODE_ = RegionEqualsNodeGen.inline(InlineTarget.create(RegionEqualsNode.class, STATE_5_RegionEqualNode_UPDATER.subUpdater(0, 23), STATE_6_RegionEqualNode_UPDATER.subUpdater(0, 21)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-6: InlinedCache
* Specialization: {@link RegionEqualNode#regionEquals}
* Parameter: {@link ToIndexableNode} toIndexableNodeA
* Inline method: {@link ToIndexableNodeGen#inline}
* 7-13: InlinedCache
* Specialization: {@link RegionEqualNode#regionEquals}
* Parameter: {@link ToIndexableNode} toIndexableNodeB
* Inline method: {@link ToIndexableNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link RegionEqualNode#regionEquals}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthANode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_1_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link RegionEqualNode#regionEquals}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthBNode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_2_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link RegionEqualNode#regionEquals}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeANode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_3_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link RegionEqualNode#regionEquals}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeBNode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_4_;
/**
* State Info:
* 0-22: InlinedCache
* Specialization: {@link RegionEqualNode#regionEquals}
* Parameter: {@link RegionEqualsNode} regionEqualsNode
* Inline method: {@link RegionEqualsNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_5_;
/**
* State Info:
* 0-20: InlinedCache
* Specialization: {@link RegionEqualNode#regionEquals}
* Parameter: {@link RegionEqualsNode} regionEqualsNode
* Inline method: {@link RegionEqualsNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_6_;
private RegionEqualNodeGen() {
}
@Override
public boolean execute(AbstractTruffleString arg0Value, int arg1Value, AbstractTruffleString arg2Value, int arg3Value, int arg4Value, Encoding arg5Value) {
return regionEquals(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value, INLINED_TO_INDEXABLE_NODE_A_, INLINED_TO_INDEXABLE_NODE_B_, INLINED_GET_CODE_POINT_LENGTH_A_NODE_, INLINED_GET_CODE_POINT_LENGTH_B_NODE_, INLINED_GET_CODE_RANGE_A_NODE_, INLINED_GET_CODE_RANGE_B_NODE_, INLINED_REGION_EQUALS_NODE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static RegionEqualNode create() {
return new RegionEqualNodeGen();
}
@NeverDefault
public static RegionEqualNode getUncached() {
return RegionEqualNodeGen.UNCACHED;
}
@GeneratedBy(RegionEqualNode.class)
@DenyReplace
private static final class Uncached extends RegionEqualNode {
@TruffleBoundary
@Override
public boolean execute(AbstractTruffleString arg0Value, int arg1Value, AbstractTruffleString arg2Value, int arg3Value, int arg4Value, Encoding arg5Value) {
return regionEquals(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value, (ToIndexableNodeGen.getUncached()), (ToIndexableNodeGen.getUncached()), (GetCodePointLengthNode.getUncached()), (GetCodePointLengthNode.getUncached()), (GetCodeRangeForIndexCalculationNodeGen.getUncached()), (GetCodeRangeForIndexCalculationNodeGen.getUncached()), (RegionEqualsNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link RegionEqualByteIndexNode#regionEquals}
* Activation probability: 1.00000
* With/without class size: 24/2 bytes
*
*/
@GeneratedBy(RegionEqualByteIndexNode.class)
@SuppressWarnings("javadoc")
static final class RegionEqualByteIndexNodeGen extends RegionEqualByteIndexNode {
private static final StateField STATE_0_RegionEqualByteIndexNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link RegionEqualByteIndexNode#regionEquals}
* Parameter: {@link ToIndexableNode} toIndexableNodeA
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_A_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_RegionEqualByteIndexNode_UPDATER.subUpdater(0, 7)));
/**
* Source Info:
* Specialization: {@link RegionEqualByteIndexNode#regionEquals}
* Parameter: {@link ToIndexableNode} toIndexableNodeB
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_B_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_RegionEqualByteIndexNode_UPDATER.subUpdater(7, 7)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-6: InlinedCache
* Specialization: {@link RegionEqualByteIndexNode#regionEquals}
* Parameter: {@link ToIndexableNode} toIndexableNodeA
* Inline method: {@link ToIndexableNodeGen#inline}
* 7-13: InlinedCache
* Specialization: {@link RegionEqualByteIndexNode#regionEquals}
* Parameter: {@link ToIndexableNode} toIndexableNodeB
* Inline method: {@link ToIndexableNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
private RegionEqualByteIndexNodeGen() {
}
@Override
boolean execute(AbstractTruffleString arg0Value, int arg1Value, AbstractTruffleString arg2Value, int arg3Value, int arg4Value, byte[] arg5Value, Encoding arg6Value) {
return regionEquals(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value, arg6Value, INLINED_TO_INDEXABLE_NODE_A_, INLINED_TO_INDEXABLE_NODE_B_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static RegionEqualByteIndexNode create() {
return new RegionEqualByteIndexNodeGen();
}
@NeverDefault
public static RegionEqualByteIndexNode getUncached() {
return RegionEqualByteIndexNodeGen.UNCACHED;
}
@GeneratedBy(RegionEqualByteIndexNode.class)
@DenyReplace
private static final class Uncached extends RegionEqualByteIndexNode {
@TruffleBoundary
@Override
boolean execute(AbstractTruffleString arg0Value, int arg1Value, AbstractTruffleString arg2Value, int arg3Value, int arg4Value, byte[] arg5Value, Encoding arg6Value) {
return regionEquals(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value, arg6Value, (ToIndexableNodeGen.getUncached()), (ToIndexableNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link ConcatNode#aEmpty}
* Activation probability: 0.32000
* With/without class size: 7/0 bytes
* Specialization {@link ConcatNode#aEmptyMutable}
* Activation probability: 0.26000
* With/without class size: 8/0 bytes
* Specialization {@link ConcatNode#bEmpty}
* Activation probability: 0.20000
* With/without class size: 6/0 bytes
* Specialization {@link ConcatNode#bEmptyMutable}
* Activation probability: 0.14000
* With/without class size: 6/0 bytes
* Specialization {@link ConcatNode#doConcat}
* Activation probability: 0.08000
* With/without class size: 7/26 bytes
*
*/
@GeneratedBy(ConcatNode.class)
@SuppressWarnings("javadoc")
static final class ConcatNodeGen extends ConcatNode {
private static final StateField STATE_1_UPDATER = StateField.create(MethodHandles.lookup(), "state_1_");
private static final StateField STATE_2_UPDATER = StateField.create(MethodHandles.lookup(), "state_2_");
private static final StateField CONCAT__CONCAT_NODE_CONCAT_STATE_0_UPDATER = StateField.create(ConcatData.lookup_(), "concat_state_0_");
private static final StateField CONCAT__CONCAT_NODE_CONCAT_STATE_1_UPDATER = StateField.create(ConcatData.lookup_(), "concat_state_1_");
private static final StateField CONCAT__CONCAT_NODE_CONCAT_STATE_2_UPDATER = StateField.create(ConcatData.lookup_(), "concat_state_2_");
private static final StateField CONCAT__CONCAT_NODE_CONCAT_STATE_3_UPDATER = StateField.create(ConcatData.lookup_(), "concat_state_3_");
private static final StateField CONCAT__CONCAT_NODE_CONCAT_STATE_4_UPDATER = StateField.create(ConcatData.lookup_(), "concat_state_4_");
/**
* Source Info:
* Specialization: {@link ConcatNode#aEmptyMutable}
* Parameter: {@link FromBufferWithStringCompactionKnownAttributesNode} attributesNode
* Inline method: {@link FromBufferWithStringCompactionKnownAttributesNodeGen#inline}
*/
private static final FromBufferWithStringCompactionKnownAttributesNode INLINED_ATTRIBUTES_NODE = FromBufferWithStringCompactionKnownAttributesNodeGen.inline(InlineTarget.create(FromBufferWithStringCompactionKnownAttributesNode.class, STATE_1_UPDATER.subUpdater(0, 31), STATE_2_UPDATER.subUpdater(0, 29)));
/**
* Source Info:
* Specialization: {@link ConcatNode#doConcat}
* Parameter: {@link GetPreciseCodeRangeNode} getCodeRangeANode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
*/
private static final GetPreciseCodeRangeNode INLINED_CONCAT_GET_CODE_RANGE_A_NODE_ = GetPreciseCodeRangeNodeGen.inline(InlineTarget.create(GetPreciseCodeRangeNode.class, CONCAT__CONCAT_NODE_CONCAT_STATE_0_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link ConcatNode#doConcat}
* Parameter: {@link GetPreciseCodeRangeNode} getCodeRangeBNode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
*/
private static final GetPreciseCodeRangeNode INLINED_CONCAT_GET_CODE_RANGE_B_NODE_ = GetPreciseCodeRangeNodeGen.inline(InlineTarget.create(GetPreciseCodeRangeNode.class, CONCAT__CONCAT_NODE_CONCAT_STATE_1_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link ConcatNode#doConcat}
* Parameter: {@link StrideFromCodeRangeNode} getStrideNode
* Inline method: {@link StrideFromCodeRangeNodeGen#inline}
*/
private static final StrideFromCodeRangeNode INLINED_CONCAT_GET_STRIDE_NODE_ = StrideFromCodeRangeNodeGen.inline(InlineTarget.create(StrideFromCodeRangeNode.class, CONCAT__CONCAT_NODE_CONCAT_STATE_0_UPDATER.subUpdater(25, 3)));
/**
* Source Info:
* Specialization: {@link ConcatNode#doConcat}
* Parameter: {@link ConcatEagerNode} concatEagerNode
* Inline method: {@link ConcatEagerNodeGen#inline}
*/
private static final ConcatEagerNode INLINED_CONCAT_CONCAT_EAGER_NODE_ = ConcatEagerNodeGen.inline(InlineTarget.create(ConcatEagerNode.class, CONCAT__CONCAT_NODE_CONCAT_STATE_2_UPDATER.subUpdater(0, 32), CONCAT__CONCAT_NODE_CONCAT_STATE_3_UPDATER.subUpdater(0, 27), CONCAT__CONCAT_NODE_CONCAT_STATE_4_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link ConcatNode#doConcat}
* Parameter: {@link InlinedBranchProfile} outOfMemoryProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private static final InlinedBranchProfile INLINED_CONCAT_OUT_OF_MEMORY_PROFILE_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, CONCAT__CONCAT_NODE_CONCAT_STATE_0_UPDATER.subUpdater(28, 1)));
/**
* Source Info:
* Specialization: {@link ConcatNode#doConcat}
* Parameter: {@link InlinedConditionProfile} lazyProfile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_CONCAT_LAZY_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, CONCAT__CONCAT_NODE_CONCAT_STATE_0_UPDATER.subUpdater(29, 2)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0: SpecializationActive {@link ConcatNode#aEmpty}
* 1: SpecializationActive {@link ConcatNode#aEmptyMutable}
* 2: SpecializationActive {@link ConcatNode#bEmpty}
* 3: SpecializationActive {@link ConcatNode#bEmptyMutable}
* 4: SpecializationActive {@link ConcatNode#doConcat}
*
*/
@CompilationFinal private int state_0_;
/**
* State Info:
* 0-30: InlinedCache
* Specialization: {@link ConcatNode#aEmptyMutable}
* Parameter: {@link FromBufferWithStringCompactionKnownAttributesNode} attributesNode
* Inline method: {@link FromBufferWithStringCompactionKnownAttributesNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_1_;
/**
* State Info:
* 0-28: InlinedCache
* Specialization: {@link ConcatNode#aEmptyMutable}
* Parameter: {@link FromBufferWithStringCompactionKnownAttributesNode} attributesNode
* Inline method: {@link FromBufferWithStringCompactionKnownAttributesNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_2_;
@Child private ConcatData concat_cache;
private ConcatNodeGen() {
}
@Override
public TruffleString execute(AbstractTruffleString arg0Value, AbstractTruffleString arg1Value, Encoding arg2Value, boolean arg3Value) {
int state_0 = this.state_0_;
if (state_0 != 0 /* is SpecializationActive[TruffleString.ConcatNode.aEmpty(AbstractTruffleString, TruffleString, Encoding, boolean)] || SpecializationActive[TruffleString.ConcatNode.aEmptyMutable(AbstractTruffleString, MutableTruffleString, Encoding, boolean, FromBufferWithStringCompactionKnownAttributesNode)] || SpecializationActive[TruffleString.ConcatNode.bEmpty(TruffleString, AbstractTruffleString, Encoding, boolean)] || SpecializationActive[TruffleString.ConcatNode.bEmptyMutable(MutableTruffleString, AbstractTruffleString, Encoding, boolean, Node, FromBufferWithStringCompactionKnownAttributesNode)] || SpecializationActive[TruffleString.ConcatNode.doConcat(AbstractTruffleString, AbstractTruffleString, Encoding, boolean, Node, GetPreciseCodeRangeNode, GetPreciseCodeRangeNode, StrideFromCodeRangeNode, ConcatEagerNode, AsTruffleStringNode, AsTruffleStringNode, InlinedBranchProfile, InlinedConditionProfile)] */) {
if ((state_0 & 0b11) != 0 /* is SpecializationActive[TruffleString.ConcatNode.aEmpty(AbstractTruffleString, TruffleString, Encoding, boolean)] || SpecializationActive[TruffleString.ConcatNode.aEmptyMutable(AbstractTruffleString, MutableTruffleString, Encoding, boolean, FromBufferWithStringCompactionKnownAttributesNode)] */) {
if ((state_0 & 0b1) != 0 /* is SpecializationActive[TruffleString.ConcatNode.aEmpty(AbstractTruffleString, TruffleString, Encoding, boolean)] */ && arg1Value instanceof TruffleString) {
TruffleString arg1Value_ = (TruffleString) arg1Value;
if ((TStringGuards.isEmpty(arg0Value))) {
return ConcatNode.aEmpty(arg0Value, arg1Value_, arg2Value, arg3Value);
}
}
if ((state_0 & 0b10) != 0 /* is SpecializationActive[TruffleString.ConcatNode.aEmptyMutable(AbstractTruffleString, MutableTruffleString, Encoding, boolean, FromBufferWithStringCompactionKnownAttributesNode)] */ && arg1Value instanceof MutableTruffleString) {
MutableTruffleString arg1Value_ = (MutableTruffleString) arg1Value;
if ((TStringGuards.isEmpty(arg0Value))) {
return aEmptyMutable(arg0Value, arg1Value_, arg2Value, arg3Value, INLINED_ATTRIBUTES_NODE);
}
}
}
if ((state_0 & 0b11100) != 0 /* is SpecializationActive[TruffleString.ConcatNode.bEmpty(TruffleString, AbstractTruffleString, Encoding, boolean)] || SpecializationActive[TruffleString.ConcatNode.bEmptyMutable(MutableTruffleString, AbstractTruffleString, Encoding, boolean, Node, FromBufferWithStringCompactionKnownAttributesNode)] || SpecializationActive[TruffleString.ConcatNode.doConcat(AbstractTruffleString, AbstractTruffleString, Encoding, boolean, Node, GetPreciseCodeRangeNode, GetPreciseCodeRangeNode, StrideFromCodeRangeNode, ConcatEagerNode, AsTruffleStringNode, AsTruffleStringNode, InlinedBranchProfile, InlinedConditionProfile)] */) {
if ((state_0 & 0b100) != 0 /* is SpecializationActive[TruffleString.ConcatNode.bEmpty(TruffleString, AbstractTruffleString, Encoding, boolean)] */ && arg0Value instanceof TruffleString) {
TruffleString arg0Value_ = (TruffleString) arg0Value;
if ((TStringGuards.isEmpty(arg1Value))) {
return ConcatNode.bEmpty(arg0Value_, arg1Value, arg2Value, arg3Value);
}
}
if ((state_0 & 0b1000) != 0 /* is SpecializationActive[TruffleString.ConcatNode.bEmptyMutable(MutableTruffleString, AbstractTruffleString, Encoding, boolean, Node, FromBufferWithStringCompactionKnownAttributesNode)] */ && arg0Value instanceof MutableTruffleString) {
MutableTruffleString arg0Value_ = (MutableTruffleString) arg0Value;
if ((TStringGuards.isEmpty(arg1Value))) {
Node node__ = (this);
return ConcatNode.bEmptyMutable(arg0Value_, arg1Value, arg2Value, arg3Value, node__, INLINED_ATTRIBUTES_NODE);
}
}
if ((state_0 & 0b10000) != 0 /* is SpecializationActive[TruffleString.ConcatNode.doConcat(AbstractTruffleString, AbstractTruffleString, Encoding, boolean, Node, GetPreciseCodeRangeNode, GetPreciseCodeRangeNode, StrideFromCodeRangeNode, ConcatEagerNode, AsTruffleStringNode, AsTruffleStringNode, InlinedBranchProfile, InlinedConditionProfile)] */) {
ConcatData s4_ = this.concat_cache;
if (s4_ != null) {
if ((!(TStringGuards.isEmpty(arg0Value))) && (!(TStringGuards.isEmpty(arg1Value)))) {
Node node__1 = (s4_);
return ConcatNode.doConcat(arg0Value, arg1Value, arg2Value, arg3Value, node__1, INLINED_CONCAT_GET_CODE_RANGE_A_NODE_, INLINED_CONCAT_GET_CODE_RANGE_B_NODE_, INLINED_CONCAT_GET_STRIDE_NODE_, INLINED_CONCAT_CONCAT_EAGER_NODE_, s4_.asTruffleStringANode_, s4_.asTruffleStringBNode_, INLINED_CONCAT_OUT_OF_MEMORY_PROFILE_, INLINED_CONCAT_LAZY_PROFILE_);
}
}
}
}
}
CompilerDirectives.transferToInterpreterAndInvalidate();
return executeAndSpecialize(arg0Value, arg1Value, arg2Value, arg3Value);
}
private TruffleString executeAndSpecialize(AbstractTruffleString arg0Value, AbstractTruffleString arg1Value, Encoding arg2Value, boolean arg3Value) {
int state_0 = this.state_0_;
if (arg1Value instanceof TruffleString) {
TruffleString arg1Value_ = (TruffleString) arg1Value;
if ((TStringGuards.isEmpty(arg0Value))) {
state_0 = state_0 | 0b1 /* add SpecializationActive[TruffleString.ConcatNode.aEmpty(AbstractTruffleString, TruffleString, Encoding, boolean)] */;
this.state_0_ = state_0;
return ConcatNode.aEmpty(arg0Value, arg1Value_, arg2Value, arg3Value);
}
}
if (arg1Value instanceof MutableTruffleString) {
MutableTruffleString arg1Value_ = (MutableTruffleString) arg1Value;
if ((TStringGuards.isEmpty(arg0Value))) {
state_0 = state_0 | 0b10 /* add SpecializationActive[TruffleString.ConcatNode.aEmptyMutable(AbstractTruffleString, MutableTruffleString, Encoding, boolean, FromBufferWithStringCompactionKnownAttributesNode)] */;
this.state_0_ = state_0;
return aEmptyMutable(arg0Value, arg1Value_, arg2Value, arg3Value, INLINED_ATTRIBUTES_NODE);
}
}
if (arg0Value instanceof TruffleString) {
TruffleString arg0Value_ = (TruffleString) arg0Value;
if ((TStringGuards.isEmpty(arg1Value))) {
state_0 = state_0 | 0b100 /* add SpecializationActive[TruffleString.ConcatNode.bEmpty(TruffleString, AbstractTruffleString, Encoding, boolean)] */;
this.state_0_ = state_0;
return ConcatNode.bEmpty(arg0Value_, arg1Value, arg2Value, arg3Value);
}
}
{
Node node__ = null;
if (arg0Value instanceof MutableTruffleString) {
MutableTruffleString arg0Value_ = (MutableTruffleString) arg0Value;
if ((TStringGuards.isEmpty(arg1Value))) {
node__ = (this);
state_0 = state_0 | 0b1000 /* add SpecializationActive[TruffleString.ConcatNode.bEmptyMutable(MutableTruffleString, AbstractTruffleString, Encoding, boolean, Node, FromBufferWithStringCompactionKnownAttributesNode)] */;
this.state_0_ = state_0;
return ConcatNode.bEmptyMutable(arg0Value_, arg1Value, arg2Value, arg3Value, node__, INLINED_ATTRIBUTES_NODE);
}
}
}
{
Node node__1 = null;
if ((!(TStringGuards.isEmpty(arg0Value))) && (!(TStringGuards.isEmpty(arg1Value)))) {
ConcatData s4_ = this.insert(new ConcatData());
node__1 = (s4_);
AsTruffleStringNode asTruffleStringANode__ = s4_.insert((AsTruffleStringNode.create()));
Objects.requireNonNull(asTruffleStringANode__, "Specialization 'doConcat(AbstractTruffleString, AbstractTruffleString, Encoding, boolean, Node, GetPreciseCodeRangeNode, GetPreciseCodeRangeNode, StrideFromCodeRangeNode, ConcatEagerNode, AsTruffleStringNode, AsTruffleStringNode, InlinedBranchProfile, InlinedConditionProfile)' cache 'asTruffleStringANode' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'.");
s4_.asTruffleStringANode_ = asTruffleStringANode__;
AsTruffleStringNode asTruffleStringBNode__ = s4_.insert((AsTruffleStringNode.create()));
Objects.requireNonNull(asTruffleStringBNode__, "Specialization 'doConcat(AbstractTruffleString, AbstractTruffleString, Encoding, boolean, Node, GetPreciseCodeRangeNode, GetPreciseCodeRangeNode, StrideFromCodeRangeNode, ConcatEagerNode, AsTruffleStringNode, AsTruffleStringNode, InlinedBranchProfile, InlinedConditionProfile)' cache 'asTruffleStringBNode' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'.");
s4_.asTruffleStringBNode_ = asTruffleStringBNode__;
VarHandle.storeStoreFence();
this.concat_cache = s4_;
state_0 = state_0 | 0b10000 /* add SpecializationActive[TruffleString.ConcatNode.doConcat(AbstractTruffleString, AbstractTruffleString, Encoding, boolean, Node, GetPreciseCodeRangeNode, GetPreciseCodeRangeNode, StrideFromCodeRangeNode, ConcatEagerNode, AsTruffleStringNode, AsTruffleStringNode, InlinedBranchProfile, InlinedConditionProfile)] */;
this.state_0_ = state_0;
return ConcatNode.doConcat(arg0Value, arg1Value, arg2Value, arg3Value, node__1, INLINED_CONCAT_GET_CODE_RANGE_A_NODE_, INLINED_CONCAT_GET_CODE_RANGE_B_NODE_, INLINED_CONCAT_GET_STRIDE_NODE_, INLINED_CONCAT_CONCAT_EAGER_NODE_, asTruffleStringANode__, asTruffleStringBNode__, INLINED_CONCAT_OUT_OF_MEMORY_PROFILE_, INLINED_CONCAT_LAZY_PROFILE_);
}
}
throw new UnsupportedSpecializationException(this, new Node[] {null, null, null, null}, arg0Value, arg1Value, arg2Value, arg3Value);
}
@Override
public NodeCost getCost() {
int state_0 = this.state_0_;
if (state_0 == 0) {
return NodeCost.UNINITIALIZED;
} else {
int counter = 0;
counter += Integer.bitCount(state_0);
if (counter == 1) {
return NodeCost.MONOMORPHIC;
}
}
return NodeCost.POLYMORPHIC;
}
@NeverDefault
public static ConcatNode create() {
return new ConcatNodeGen();
}
@NeverDefault
public static ConcatNode getUncached() {
return ConcatNodeGen.UNCACHED;
}
@GeneratedBy(ConcatNode.class)
@DenyReplace
private static final class ConcatData extends Node implements SpecializationDataNode {
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link ConcatNode#doConcat}
* Parameter: {@link GetPreciseCodeRangeNode} getCodeRangeANode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
* 25-27: InlinedCache
* Specialization: {@link ConcatNode#doConcat}
* Parameter: {@link StrideFromCodeRangeNode} getStrideNode
* Inline method: {@link StrideFromCodeRangeNodeGen#inline}
* 28: InlinedCache
* Specialization: {@link ConcatNode#doConcat}
* Parameter: {@link InlinedBranchProfile} outOfMemoryProfile
* Inline method: {@link InlinedBranchProfile#inline}
* 29-30: InlinedCache
* Specialization: {@link ConcatNode#doConcat}
* Parameter: {@link InlinedConditionProfile} lazyProfile
* Inline method: {@link InlinedConditionProfile#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int concat_state_0_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link ConcatNode#doConcat}
* Parameter: {@link GetPreciseCodeRangeNode} getCodeRangeBNode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int concat_state_1_;
/**
* State Info:
* 0-31: InlinedCache
* Specialization: {@link ConcatNode#doConcat}
* Parameter: {@link ConcatEagerNode} concatEagerNode
* Inline method: {@link ConcatEagerNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int concat_state_2_;
/**
* State Info:
* 0-26: InlinedCache
* Specialization: {@link ConcatNode#doConcat}
* Parameter: {@link ConcatEagerNode} concatEagerNode
* Inline method: {@link ConcatEagerNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int concat_state_3_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link ConcatNode#doConcat}
* Parameter: {@link ConcatEagerNode} concatEagerNode
* Inline method: {@link ConcatEagerNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int concat_state_4_;
/**
* Source Info:
* Specialization: {@link ConcatNode#doConcat}
* Parameter: {@link AsTruffleStringNode} asTruffleStringANode
*/
@Child AsTruffleStringNode asTruffleStringANode_;
/**
* Source Info:
* Specialization: {@link ConcatNode#doConcat}
* Parameter: {@link AsTruffleStringNode} asTruffleStringBNode
*/
@Child AsTruffleStringNode asTruffleStringBNode_;
ConcatData() {
}
@Override
public NodeCost getCost() {
return NodeCost.NONE;
}
private static Lookup lookup_() {
return MethodHandles.lookup();
}
}
@GeneratedBy(ConcatNode.class)
@DenyReplace
private static final class Uncached extends ConcatNode {
@TruffleBoundary
@Override
public TruffleString execute(AbstractTruffleString arg0Value, AbstractTruffleString arg1Value, Encoding arg2Value, boolean arg3Value) {
if (arg1Value instanceof TruffleString) {
TruffleString arg1Value_ = (TruffleString) arg1Value;
if ((TStringGuards.isEmpty(arg0Value))) {
return ConcatNode.aEmpty(arg0Value, arg1Value_, arg2Value, arg3Value);
}
}
if (arg1Value instanceof MutableTruffleString) {
MutableTruffleString arg1Value_ = (MutableTruffleString) arg1Value;
if ((TStringGuards.isEmpty(arg0Value))) {
return aEmptyMutable(arg0Value, arg1Value_, arg2Value, arg3Value, (FromBufferWithStringCompactionKnownAttributesNode.getUncached()));
}
}
if (arg0Value instanceof TruffleString) {
TruffleString arg0Value_ = (TruffleString) arg0Value;
if ((TStringGuards.isEmpty(arg1Value))) {
return ConcatNode.bEmpty(arg0Value_, arg1Value, arg2Value, arg3Value);
}
}
if (arg0Value instanceof MutableTruffleString) {
MutableTruffleString arg0Value_ = (MutableTruffleString) arg0Value;
if ((TStringGuards.isEmpty(arg1Value))) {
return ConcatNode.bEmptyMutable(arg0Value_, arg1Value, arg2Value, arg3Value, (this), (FromBufferWithStringCompactionKnownAttributesNode.getUncached()));
}
}
if ((!(TStringGuards.isEmpty(arg0Value))) && (!(TStringGuards.isEmpty(arg1Value)))) {
return ConcatNode.doConcat(arg0Value, arg1Value, arg2Value, arg3Value, (this), (GetPreciseCodeRangeNodeGen.getUncached()), (GetPreciseCodeRangeNodeGen.getUncached()), (StrideFromCodeRangeNodeGen.getUncached()), (ConcatEagerNodeGen.getUncached()), (AsTruffleStringNode.getUncached()), (AsTruffleStringNode.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedConditionProfile.getUncached()));
}
throw new UnsupportedSpecializationException(this, new Node[] {null, null, null, null}, arg0Value, arg1Value, arg2Value, arg3Value);
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link RepeatNode#repeat}
* Activation probability: 1.00000
* With/without class size: 36/14 bytes
*
*/
@GeneratedBy(RepeatNode.class)
@SuppressWarnings("javadoc")
static final class RepeatNodeGen extends RepeatNode {
private static final StateField STATE_0_RepeatNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField STATE_1_RepeatNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_1_");
private static final StateField STATE_2_RepeatNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_2_");
/**
* Source Info:
* Specialization: {@link RepeatNode#repeat}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_RepeatNode_UPDATER.subUpdater(1, 7)));
/**
* Source Info:
* Specialization: {@link RepeatNode#repeat}
* Parameter: {@link GetPreciseCodeRangeNode} getPreciseCodeRangeNode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
*/
private static final GetPreciseCodeRangeNode INLINED_GET_PRECISE_CODE_RANGE_NODE_ = GetPreciseCodeRangeNodeGen.inline(InlineTarget.create(GetPreciseCodeRangeNode.class, STATE_1_RepeatNode_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link RepeatNode#repeat}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthNode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
*/
private static final GetCodePointLengthNode INLINED_GET_CODE_POINT_LENGTH_NODE_ = GetCodePointLengthNodeGen.inline(InlineTarget.create(GetCodePointLengthNode.class, STATE_2_RepeatNode_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link RepeatNode#repeat}
* Parameter: {@link CalcStringAttributesNode} calcStringAttributesNode
* Inline method: {@link CalcStringAttributesNodeGen#inline}
*/
private static final CalcStringAttributesNode INLINED_CALC_STRING_ATTRIBUTES_NODE_ = CalcStringAttributesNodeGen.inline(InlineTarget.create(CalcStringAttributesNode.class, STATE_0_RepeatNode_UPDATER.subUpdater(8, 16)));
/**
* Source Info:
* Specialization: {@link RepeatNode#repeat}
* Parameter: {@link InlinedConditionProfile} brokenProfile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_BROKEN_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_RepeatNode_UPDATER.subUpdater(24, 2)));
/**
* Source Info:
* Specialization: {@link RepeatNode#repeat}
* Parameter: {@link InlinedBranchProfile} outOfMemoryProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private static final InlinedBranchProfile INLINED_OUT_OF_MEMORY_PROFILE_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, STATE_0_RepeatNode_UPDATER.subUpdater(26, 1)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0: SpecializationActive {@link RepeatNode#repeat}
* 1-7: InlinedCache
* Specialization: {@link RepeatNode#repeat}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
* 8-23: InlinedCache
* Specialization: {@link RepeatNode#repeat}
* Parameter: {@link CalcStringAttributesNode} calcStringAttributesNode
* Inline method: {@link CalcStringAttributesNodeGen#inline}
* 24-25: InlinedCache
* Specialization: {@link RepeatNode#repeat}
* Parameter: {@link InlinedConditionProfile} brokenProfile
* Inline method: {@link InlinedConditionProfile#inline}
* 26: InlinedCache
* Specialization: {@link RepeatNode#repeat}
* Parameter: {@link InlinedBranchProfile} outOfMemoryProfile
* Inline method: {@link InlinedBranchProfile#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link RepeatNode#repeat}
* Parameter: {@link GetPreciseCodeRangeNode} getPreciseCodeRangeNode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_1_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link RepeatNode#repeat}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthNode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_2_;
/**
* Source Info:
* Specialization: {@link RepeatNode#repeat}
* Parameter: {@link AsTruffleStringNode} asTruffleStringNode
*/
@Child private AsTruffleStringNode asTruffleStringNode_;
private RepeatNodeGen() {
}
@Override
public TruffleString execute(AbstractTruffleString arg0Value, int arg1Value, Encoding arg2Value) {
int state_0 = this.state_0_;
if ((state_0 & 0b1) != 0 /* is SpecializationActive[TruffleString.RepeatNode.repeat(AbstractTruffleString, int, Encoding, AsTruffleStringNode, ToIndexableNode, GetPreciseCodeRangeNode, GetCodePointLengthNode, CalcStringAttributesNode, InlinedConditionProfile, InlinedBranchProfile)] */) {
{
AsTruffleStringNode asTruffleStringNode__ = this.asTruffleStringNode_;
if (asTruffleStringNode__ != null) {
return repeat(arg0Value, arg1Value, arg2Value, asTruffleStringNode__, INLINED_TO_INDEXABLE_NODE_, INLINED_GET_PRECISE_CODE_RANGE_NODE_, INLINED_GET_CODE_POINT_LENGTH_NODE_, INLINED_CALC_STRING_ATTRIBUTES_NODE_, INLINED_BROKEN_PROFILE_, INLINED_OUT_OF_MEMORY_PROFILE_);
}
}
}
CompilerDirectives.transferToInterpreterAndInvalidate();
return executeAndSpecialize(arg0Value, arg1Value, arg2Value);
}
private TruffleString executeAndSpecialize(AbstractTruffleString arg0Value, int arg1Value, Encoding arg2Value) {
int state_0 = this.state_0_;
AsTruffleStringNode asTruffleStringNode__ = this.insert((AsTruffleStringNode.create()));
Objects.requireNonNull(asTruffleStringNode__, "Specialization 'repeat(AbstractTruffleString, int, Encoding, AsTruffleStringNode, ToIndexableNode, GetPreciseCodeRangeNode, GetCodePointLengthNode, CalcStringAttributesNode, InlinedConditionProfile, InlinedBranchProfile)' cache 'asTruffleStringNode' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'.");
VarHandle.storeStoreFence();
this.asTruffleStringNode_ = asTruffleStringNode__;
state_0 = state_0 | 0b1 /* add SpecializationActive[TruffleString.RepeatNode.repeat(AbstractTruffleString, int, Encoding, AsTruffleStringNode, ToIndexableNode, GetPreciseCodeRangeNode, GetCodePointLengthNode, CalcStringAttributesNode, InlinedConditionProfile, InlinedBranchProfile)] */;
this.state_0_ = state_0;
return repeat(arg0Value, arg1Value, arg2Value, asTruffleStringNode__, INLINED_TO_INDEXABLE_NODE_, INLINED_GET_PRECISE_CODE_RANGE_NODE_, INLINED_GET_CODE_POINT_LENGTH_NODE_, INLINED_CALC_STRING_ATTRIBUTES_NODE_, INLINED_BROKEN_PROFILE_, INLINED_OUT_OF_MEMORY_PROFILE_);
}
@Override
public NodeCost getCost() {
int state_0 = this.state_0_;
if ((state_0 & 0b1) == 0) {
return NodeCost.UNINITIALIZED;
} else {
return NodeCost.MONOMORPHIC;
}
}
@NeverDefault
public static RepeatNode create() {
return new RepeatNodeGen();
}
@NeverDefault
public static RepeatNode getUncached() {
return RepeatNodeGen.UNCACHED;
}
@GeneratedBy(RepeatNode.class)
@DenyReplace
private static final class Uncached extends RepeatNode {
@TruffleBoundary
@Override
public TruffleString execute(AbstractTruffleString arg0Value, int arg1Value, Encoding arg2Value) {
return repeat(arg0Value, arg1Value, arg2Value, (AsTruffleStringNode.getUncached()), (ToIndexableNodeGen.getUncached()), (GetPreciseCodeRangeNodeGen.getUncached()), (GetCodePointLengthNode.getUncached()), (CalcStringAttributesNodeGen.getUncached()), (InlinedConditionProfile.getUncached()), (InlinedBranchProfile.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link com.oracle.truffle.api.strings.TruffleString.SubstringNode#substring}
* Activation probability: 1.00000
* With/without class size: 32/12 bytes
*
*/
@GeneratedBy(com.oracle.truffle.api.strings.TruffleString.SubstringNode.class)
@SuppressWarnings("javadoc")
static final class SubstringNodeGen extends com.oracle.truffle.api.strings.TruffleString.SubstringNode {
private static final StateField STATE_0_SubstringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField STATE_1_SubstringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_1_");
private static final StateField STATE_2_SubstringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_2_");
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.SubstringNode#substring}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_SubstringNode_UPDATER.subUpdater(0, 7)));
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.SubstringNode#substring}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeANode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*/
private static final GetCodeRangeForIndexCalculationNode INLINED_GET_CODE_RANGE_A_NODE_ = GetCodeRangeForIndexCalculationNodeGen.inline(InlineTarget.create(GetCodeRangeForIndexCalculationNode.class, STATE_0_SubstringNode_UPDATER.subUpdater(7, 25)));
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.SubstringNode#substring}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthNode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
*/
private static final GetCodePointLengthNode INLINED_GET_CODE_POINT_LENGTH_NODE_ = GetCodePointLengthNodeGen.inline(InlineTarget.create(GetCodePointLengthNode.class, STATE_1_SubstringNode_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.SubstringNode#substring}
* Parameter: {@link CodePointIndexToRawNode} translateIndexNode
* Inline method: {@link CodePointIndexToRawNodeGen#inline}
*/
private static final CodePointIndexToRawNode INLINED_TRANSLATE_INDEX_NODE_ = CodePointIndexToRawNodeGen.inline(InlineTarget.create(CodePointIndexToRawNode.class, STATE_1_SubstringNode_UPDATER.subUpdater(25, 6)));
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.SubstringNode#substring}
* Parameter: {@link com.oracle.truffle.api.strings.TStringInternalNodes.SubstringNode} substringNode
* Inline method: {@link com.oracle.truffle.api.strings.TStringInternalNodesFactory.SubstringNodeGen#inline}
*/
private static final com.oracle.truffle.api.strings.TStringInternalNodes.SubstringNode INLINED_SUBSTRING_NODE_ = com.oracle.truffle.api.strings.TStringInternalNodesFactory.SubstringNodeGen.inline(InlineTarget.create(com.oracle.truffle.api.strings.TStringInternalNodes.SubstringNode.class, STATE_2_SubstringNode_UPDATER.subUpdater(0, 28)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-6: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.SubstringNode#substring}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
* 7-31: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.SubstringNode#substring}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeANode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.SubstringNode#substring}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthNode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
* 25-30: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.SubstringNode#substring}
* Parameter: {@link CodePointIndexToRawNode} translateIndexNode
* Inline method: {@link CodePointIndexToRawNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_1_;
/**
* State Info:
* 0-27: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.SubstringNode#substring}
* Parameter: {@link com.oracle.truffle.api.strings.TStringInternalNodes.SubstringNode} substringNode
* Inline method: {@link com.oracle.truffle.api.strings.TStringInternalNodesFactory.SubstringNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_2_;
private SubstringNodeGen() {
}
@Override
public TruffleString execute(AbstractTruffleString arg0Value, int arg1Value, int arg2Value, Encoding arg3Value, boolean arg4Value) {
return substring(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, INLINED_TO_INDEXABLE_NODE_, INLINED_GET_CODE_RANGE_A_NODE_, INLINED_GET_CODE_POINT_LENGTH_NODE_, INLINED_TRANSLATE_INDEX_NODE_, INLINED_SUBSTRING_NODE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static com.oracle.truffle.api.strings.TruffleString.SubstringNode create() {
return new com.oracle.truffle.api.strings.TruffleStringFactory.SubstringNodeGen();
}
@NeverDefault
public static com.oracle.truffle.api.strings.TruffleString.SubstringNode getUncached() {
return SubstringNodeGen.UNCACHED;
}
@GeneratedBy(com.oracle.truffle.api.strings.TruffleString.SubstringNode.class)
@DenyReplace
private static final class Uncached extends com.oracle.truffle.api.strings.TruffleString.SubstringNode {
@TruffleBoundary
@Override
public TruffleString execute(AbstractTruffleString arg0Value, int arg1Value, int arg2Value, Encoding arg3Value, boolean arg4Value) {
return substring(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, (ToIndexableNodeGen.getUncached()), (GetCodeRangeForIndexCalculationNodeGen.getUncached()), (GetCodePointLengthNode.getUncached()), (CodePointIndexToRawNodeGen.getUncached()), (com.oracle.truffle.api.strings.TStringInternalNodesFactory.SubstringNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link SubstringByteIndexNode#substringEmpty}
* Activation probability: 0.65000
* With/without class size: 11/0 bytes
* Specialization {@link SubstringByteIndexNode#substringRaw}
* Activation probability: 0.35000
* With/without class size: 12/5 bytes
*
*/
@GeneratedBy(SubstringByteIndexNode.class)
@SuppressWarnings("javadoc")
static final class SubstringByteIndexNodeGen extends SubstringByteIndexNode {
private static final StateField STATE_0_SubstringByteIndexNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField STATE_1_SubstringByteIndexNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_1_");
/**
* Source Info:
* Specialization: {@link SubstringByteIndexNode#substringRaw}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_SUBSTRING_RAW_TO_INDEXABLE_NODE_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_SubstringByteIndexNode_UPDATER.subUpdater(2, 7)));
/**
* Source Info:
* Specialization: {@link SubstringByteIndexNode#substringRaw}
* Parameter: {@link com.oracle.truffle.api.strings.TStringInternalNodes.SubstringNode} substringNode
* Inline method: {@link com.oracle.truffle.api.strings.TStringInternalNodesFactory.SubstringNodeGen#inline}
*/
private static final com.oracle.truffle.api.strings.TStringInternalNodes.SubstringNode INLINED_SUBSTRING_RAW_SUBSTRING_NODE_ = com.oracle.truffle.api.strings.TStringInternalNodesFactory.SubstringNodeGen.inline(InlineTarget.create(com.oracle.truffle.api.strings.TStringInternalNodes.SubstringNode.class, STATE_1_SubstringByteIndexNode_UPDATER.subUpdater(0, 28)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0: SpecializationActive {@link SubstringByteIndexNode#substringEmpty}
* 1: SpecializationActive {@link SubstringByteIndexNode#substringRaw}
* 2-8: InlinedCache
* Specialization: {@link SubstringByteIndexNode#substringRaw}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* State Info:
* 0-27: InlinedCache
* Specialization: {@link SubstringByteIndexNode#substringRaw}
* Parameter: {@link com.oracle.truffle.api.strings.TStringInternalNodes.SubstringNode} substringNode
* Inline method: {@link com.oracle.truffle.api.strings.TStringInternalNodesFactory.SubstringNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_1_;
private SubstringByteIndexNodeGen() {
}
@Override
public TruffleString execute(AbstractTruffleString arg0Value, int arg1Value, int arg2Value, Encoding arg3Value, boolean arg4Value) {
int state_0 = this.state_0_;
if ((state_0 & 0b11) != 0 /* is SpecializationActive[TruffleString.SubstringByteIndexNode.substringEmpty(AbstractTruffleString, int, int, Encoding, boolean)] || SpecializationActive[TruffleString.SubstringByteIndexNode.substringRaw(AbstractTruffleString, int, int, Encoding, boolean, ToIndexableNode, SubstringNode)] */) {
if ((state_0 & 0b1) != 0 /* is SpecializationActive[TruffleString.SubstringByteIndexNode.substringEmpty(AbstractTruffleString, int, int, Encoding, boolean)] */) {
if ((SubstringByteIndexNode.isSame(arg2Value, 0))) {
return SubstringByteIndexNode.substringEmpty(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value);
}
}
if ((state_0 & 0b10) != 0 /* is SpecializationActive[TruffleString.SubstringByteIndexNode.substringRaw(AbstractTruffleString, int, int, Encoding, boolean, ToIndexableNode, SubstringNode)] */) {
if ((arg2Value != 0)) {
return substringRaw(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, INLINED_SUBSTRING_RAW_TO_INDEXABLE_NODE_, INLINED_SUBSTRING_RAW_SUBSTRING_NODE_);
}
}
}
CompilerDirectives.transferToInterpreterAndInvalidate();
return executeAndSpecialize(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value);
}
private TruffleString executeAndSpecialize(AbstractTruffleString arg0Value, int arg1Value, int arg2Value, Encoding arg3Value, boolean arg4Value) {
int state_0 = this.state_0_;
if ((SubstringByteIndexNode.isSame(arg2Value, 0))) {
state_0 = state_0 | 0b1 /* add SpecializationActive[TruffleString.SubstringByteIndexNode.substringEmpty(AbstractTruffleString, int, int, Encoding, boolean)] */;
this.state_0_ = state_0;
return SubstringByteIndexNode.substringEmpty(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value);
}
if ((arg2Value != 0)) {
state_0 = state_0 | 0b10 /* add SpecializationActive[TruffleString.SubstringByteIndexNode.substringRaw(AbstractTruffleString, int, int, Encoding, boolean, ToIndexableNode, SubstringNode)] */;
this.state_0_ = state_0;
return substringRaw(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, INLINED_SUBSTRING_RAW_TO_INDEXABLE_NODE_, INLINED_SUBSTRING_RAW_SUBSTRING_NODE_);
}
throw new UnsupportedSpecializationException(this, new Node[] {null, null, null, null, null}, arg0Value, arg1Value, arg2Value, arg3Value, arg4Value);
}
@Override
public NodeCost getCost() {
int state_0 = this.state_0_;
if ((state_0 & 0b11) == 0) {
return NodeCost.UNINITIALIZED;
} else {
int counter = 0;
counter += Integer.bitCount((state_0 & 0b11));
if (counter == 1) {
return NodeCost.MONOMORPHIC;
}
}
return NodeCost.POLYMORPHIC;
}
@NeverDefault
public static SubstringByteIndexNode create() {
return new SubstringByteIndexNodeGen();
}
@NeverDefault
public static SubstringByteIndexNode getUncached() {
return SubstringByteIndexNodeGen.UNCACHED;
}
@GeneratedBy(SubstringByteIndexNode.class)
@DenyReplace
private static final class Uncached extends SubstringByteIndexNode {
@TruffleBoundary
@Override
public TruffleString execute(AbstractTruffleString arg0Value, int arg1Value, int arg2Value, Encoding arg3Value, boolean arg4Value) {
if ((SubstringByteIndexNode.isSame(arg2Value, 0))) {
return SubstringByteIndexNode.substringEmpty(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value);
}
if ((arg2Value != 0)) {
return substringRaw(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, (ToIndexableNodeGen.getUncached()), (com.oracle.truffle.api.strings.TStringInternalNodesFactory.SubstringNodeGen.getUncached()));
}
throw new UnsupportedSpecializationException(this, new Node[] {null, null, null, null, null}, arg0Value, arg1Value, arg2Value, arg3Value, arg4Value);
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link EqualNode#sameObject}
* Activation probability: 0.65000
* With/without class size: 11/0 bytes
* Specialization {@link EqualNode#check}
* Activation probability: 0.35000
* With/without class size: 11/3 bytes
*
*/
@GeneratedBy(EqualNode.class)
@SuppressWarnings("javadoc")
static final class EqualNodeGen extends EqualNode {
private static final StateField STATE_0_EqualNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link EqualNode#check}
* Parameter: {@link ToIndexableNode} toIndexableNodeA
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_CHECK_TO_INDEXABLE_NODE_A_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_EqualNode_UPDATER.subUpdater(2, 7)));
/**
* Source Info:
* Specialization: {@link EqualNode#check}
* Parameter: {@link ToIndexableNode} toIndexableNodeB
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_CHECK_TO_INDEXABLE_NODE_B_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_EqualNode_UPDATER.subUpdater(9, 7)));
/**
* Source Info:
* Specialization: {@link EqualNode#check}
* Parameter: {@link InlinedConditionProfile} lengthAndCodeRangeCheckProfile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_CHECK_LENGTH_AND_CODE_RANGE_CHECK_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_EqualNode_UPDATER.subUpdater(16, 2)));
/**
* Source Info:
* Specialization: {@link EqualNode#check}
* Parameter: {@link InlinedBranchProfile} compareHashProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private static final InlinedBranchProfile INLINED_CHECK_COMPARE_HASH_PROFILE_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, STATE_0_EqualNode_UPDATER.subUpdater(18, 1)));
/**
* Source Info:
* Specialization: {@link EqualNode#check}
* Parameter: {@link InlinedConditionProfile} checkFirstByteProfile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_CHECK_CHECK_FIRST_BYTE_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_EqualNode_UPDATER.subUpdater(19, 2)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0: SpecializationActive {@link EqualNode#sameObject}
* 1: SpecializationActive {@link EqualNode#check}
* 2-8: InlinedCache
* Specialization: {@link EqualNode#check}
* Parameter: {@link ToIndexableNode} toIndexableNodeA
* Inline method: {@link ToIndexableNodeGen#inline}
* 9-15: InlinedCache
* Specialization: {@link EqualNode#check}
* Parameter: {@link ToIndexableNode} toIndexableNodeB
* Inline method: {@link ToIndexableNodeGen#inline}
* 16-17: InlinedCache
* Specialization: {@link EqualNode#check}
* Parameter: {@link InlinedConditionProfile} lengthAndCodeRangeCheckProfile
* Inline method: {@link InlinedConditionProfile#inline}
* 18: InlinedCache
* Specialization: {@link EqualNode#check}
* Parameter: {@link InlinedBranchProfile} compareHashProfile
* Inline method: {@link InlinedBranchProfile#inline}
* 19-20: InlinedCache
* Specialization: {@link EqualNode#check}
* Parameter: {@link InlinedConditionProfile} checkFirstByteProfile
* Inline method: {@link InlinedConditionProfile#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
private EqualNodeGen() {
}
@Override
public boolean execute(AbstractTruffleString arg0Value, AbstractTruffleString arg1Value, Encoding arg2Value) {
int state_0 = this.state_0_;
if ((state_0 & 0b11) != 0 /* is SpecializationActive[TruffleString.EqualNode.sameObject(AbstractTruffleString, AbstractTruffleString, Encoding)] || SpecializationActive[TruffleString.EqualNode.check(AbstractTruffleString, AbstractTruffleString, Encoding, ToIndexableNode, ToIndexableNode, InlinedConditionProfile, InlinedBranchProfile, InlinedConditionProfile)] */) {
if ((state_0 & 0b1) != 0 /* is SpecializationActive[TruffleString.EqualNode.sameObject(AbstractTruffleString, AbstractTruffleString, Encoding)] */) {
if ((TStringGuards.identical(arg0Value, arg1Value))) {
return EqualNode.sameObject(arg0Value, arg1Value, arg2Value);
}
}
if ((state_0 & 0b10) != 0 /* is SpecializationActive[TruffleString.EqualNode.check(AbstractTruffleString, AbstractTruffleString, Encoding, ToIndexableNode, ToIndexableNode, InlinedConditionProfile, InlinedBranchProfile, InlinedConditionProfile)] */) {
if ((!(TStringGuards.identical(arg0Value, arg1Value)))) {
return check(arg0Value, arg1Value, arg2Value, INLINED_CHECK_TO_INDEXABLE_NODE_A_, INLINED_CHECK_TO_INDEXABLE_NODE_B_, INLINED_CHECK_LENGTH_AND_CODE_RANGE_CHECK_PROFILE_, INLINED_CHECK_COMPARE_HASH_PROFILE_, INLINED_CHECK_CHECK_FIRST_BYTE_PROFILE_);
}
}
}
CompilerDirectives.transferToInterpreterAndInvalidate();
return executeAndSpecialize(arg0Value, arg1Value, arg2Value);
}
private boolean executeAndSpecialize(AbstractTruffleString arg0Value, AbstractTruffleString arg1Value, Encoding arg2Value) {
int state_0 = this.state_0_;
if ((TStringGuards.identical(arg0Value, arg1Value))) {
state_0 = state_0 | 0b1 /* add SpecializationActive[TruffleString.EqualNode.sameObject(AbstractTruffleString, AbstractTruffleString, Encoding)] */;
this.state_0_ = state_0;
return EqualNode.sameObject(arg0Value, arg1Value, arg2Value);
}
if ((!(TStringGuards.identical(arg0Value, arg1Value)))) {
state_0 = state_0 | 0b10 /* add SpecializationActive[TruffleString.EqualNode.check(AbstractTruffleString, AbstractTruffleString, Encoding, ToIndexableNode, ToIndexableNode, InlinedConditionProfile, InlinedBranchProfile, InlinedConditionProfile)] */;
this.state_0_ = state_0;
return check(arg0Value, arg1Value, arg2Value, INLINED_CHECK_TO_INDEXABLE_NODE_A_, INLINED_CHECK_TO_INDEXABLE_NODE_B_, INLINED_CHECK_LENGTH_AND_CODE_RANGE_CHECK_PROFILE_, INLINED_CHECK_COMPARE_HASH_PROFILE_, INLINED_CHECK_CHECK_FIRST_BYTE_PROFILE_);
}
throw new UnsupportedSpecializationException(this, new Node[] {null, null, null}, arg0Value, arg1Value, arg2Value);
}
@Override
public NodeCost getCost() {
int state_0 = this.state_0_;
if ((state_0 & 0b11) == 0) {
return NodeCost.UNINITIALIZED;
} else {
if (((state_0 & 0b11) & ((state_0 & 0b11) - 1)) == 0 /* is-single */) {
return NodeCost.MONOMORPHIC;
}
}
return NodeCost.POLYMORPHIC;
}
@NeverDefault
public static EqualNode create() {
return new EqualNodeGen();
}
@NeverDefault
public static EqualNode getUncached() {
return EqualNodeGen.UNCACHED;
}
@GeneratedBy(EqualNode.class)
@DenyReplace
private static final class Uncached extends EqualNode {
@TruffleBoundary
@Override
public boolean execute(AbstractTruffleString arg0Value, AbstractTruffleString arg1Value, Encoding arg2Value) {
if ((TStringGuards.identical(arg0Value, arg1Value))) {
return EqualNode.sameObject(arg0Value, arg1Value, arg2Value);
}
if ((!(TStringGuards.identical(arg0Value, arg1Value)))) {
return check(arg0Value, arg1Value, arg2Value, (ToIndexableNodeGen.getUncached()), (ToIndexableNodeGen.getUncached()), (InlinedConditionProfile.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedConditionProfile.getUncached()));
}
throw new UnsupportedSpecializationException(this, new Node[] {null, null, null}, arg0Value, arg1Value, arg2Value);
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link com.oracle.truffle.api.strings.TruffleString.ParseIntNode#doLazyLong}
* Activation probability: 0.65000
* With/without class size: 17/1 bytes
* Specialization {@link com.oracle.truffle.api.strings.TruffleString.ParseIntNode#doParse}
* Activation probability: 0.35000
* With/without class size: 15/13 bytes
*
*/
@GeneratedBy(com.oracle.truffle.api.strings.TruffleString.ParseIntNode.class)
@SuppressWarnings("javadoc")
static final class ParseIntNodeGen extends com.oracle.truffle.api.strings.TruffleString.ParseIntNode {
private static final StateField STATE_0_ParseIntNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField STATE_1_ParseIntNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_1_");
private static final StateField STATE_2_ParseIntNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_2_");
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ParseIntNode#doLazyLong}
* Parameter: {@link InlinedBranchProfile} errorProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private static final InlinedBranchProfile INLINED_LAZY_LONG_ERROR_PROFILE_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, STATE_0_ParseIntNode_UPDATER.subUpdater(2, 1)));
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ParseIntNode#doParse}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_PARSE_TO_INDEXABLE_NODE_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_ParseIntNode_UPDATER.subUpdater(3, 7)));
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ParseIntNode#doParse}
* Parameter: {@link GetPreciseCodeRangeNode} getCodeRangeANode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
*/
private static final GetPreciseCodeRangeNode INLINED_PARSE_GET_CODE_RANGE_A_NODE_ = GetPreciseCodeRangeNodeGen.inline(InlineTarget.create(GetPreciseCodeRangeNode.class, STATE_1_ParseIntNode_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ParseIntNode#doParse}
* Parameter: {@link com.oracle.truffle.api.strings.TStringInternalNodes.ParseIntNode} parseIntNode
* Inline method: {@link com.oracle.truffle.api.strings.TStringInternalNodesFactory.ParseIntNodeGen#inline}
*/
private static final com.oracle.truffle.api.strings.TStringInternalNodes.ParseIntNode INLINED_PARSE_PARSE_INT_NODE_ = com.oracle.truffle.api.strings.TStringInternalNodesFactory.ParseIntNodeGen.inline(InlineTarget.create(com.oracle.truffle.api.strings.TStringInternalNodes.ParseIntNode.class, STATE_0_ParseIntNode_UPDATER.subUpdater(10, 17), STATE_2_ParseIntNode_UPDATER.subUpdater(0, 21)));
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ParseIntNode#doParse}
* Parameter: {@link InlinedIntValueProfile} radixProfile
* Inline method: {@link InlinedIntValueProfile#inline}
*/
private static final InlinedIntValueProfile INLINED_PARSE_RADIX_PROFILE_ = InlinedIntValueProfile.inline(InlineTarget.create(InlinedIntValueProfile.class, STATE_0_ParseIntNode_UPDATER.subUpdater(27, 2), IntField.create(MethodHandles.lookup(), "parse_radixProfile__field1_")));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0: SpecializationActive {@link com.oracle.truffle.api.strings.TruffleString.ParseIntNode#doLazyLong}
* 1: SpecializationActive {@link com.oracle.truffle.api.strings.TruffleString.ParseIntNode#doParse}
* 2: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ParseIntNode#doLazyLong}
* Parameter: {@link InlinedBranchProfile} errorProfile
* Inline method: {@link InlinedBranchProfile#inline}
* 3-9: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ParseIntNode#doParse}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
* 10-26: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ParseIntNode#doParse}
* Parameter: {@link com.oracle.truffle.api.strings.TStringInternalNodes.ParseIntNode} parseIntNode
* Inline method: {@link com.oracle.truffle.api.strings.TStringInternalNodesFactory.ParseIntNodeGen#inline}
* 27-28: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ParseIntNode#doParse}
* Parameter: {@link InlinedIntValueProfile} radixProfile
* Inline method: {@link InlinedIntValueProfile#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ParseIntNode#doParse}
* Parameter: {@link GetPreciseCodeRangeNode} getCodeRangeANode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_1_;
/**
* State Info:
* 0-20: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ParseIntNode#doParse}
* Parameter: {@link com.oracle.truffle.api.strings.TStringInternalNodes.ParseIntNode} parseIntNode
* Inline method: {@link com.oracle.truffle.api.strings.TStringInternalNodesFactory.ParseIntNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_2_;
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ParseIntNode#doParse}
* Parameter: {@link InlinedIntValueProfile} radixProfile
* Inline method: {@link InlinedIntValueProfile#inline}
* Inline field: int field1
*/
@CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private int parse_radixProfile__field1_;
private ParseIntNodeGen() {
}
@Override
public int execute(AbstractTruffleString arg0Value, int arg1Value) throws NumberFormatException {
int state_0 = this.state_0_;
if ((state_0 & 0b11) != 0 /* is SpecializationActive[TruffleString.ParseIntNode.doLazyLong(AbstractTruffleString, int, InlinedBranchProfile)] || SpecializationActive[TruffleString.ParseIntNode.doParse(AbstractTruffleString, int, ToIndexableNode, GetPreciseCodeRangeNode, ParseIntNode, InlinedIntValueProfile)] */) {
if ((state_0 & 0b1) != 0 /* is SpecializationActive[TruffleString.ParseIntNode.doLazyLong(AbstractTruffleString, int, InlinedBranchProfile)] */) {
if ((arg0Value.isLazyLong()) && (arg1Value == 10)) {
return doLazyLong(arg0Value, arg1Value, INLINED_LAZY_LONG_ERROR_PROFILE_);
}
}
if ((state_0 & 0b10) != 0 /* is SpecializationActive[TruffleString.ParseIntNode.doParse(AbstractTruffleString, int, ToIndexableNode, GetPreciseCodeRangeNode, ParseIntNode, InlinedIntValueProfile)] */) {
if ((!(arg0Value.isLazyLong()) || arg1Value != 10)) {
return doParse(arg0Value, arg1Value, INLINED_PARSE_TO_INDEXABLE_NODE_, INLINED_PARSE_GET_CODE_RANGE_A_NODE_, INLINED_PARSE_PARSE_INT_NODE_, INLINED_PARSE_RADIX_PROFILE_);
}
}
}
CompilerDirectives.transferToInterpreterAndInvalidate();
return executeAndSpecialize(arg0Value, arg1Value);
}
private int executeAndSpecialize(AbstractTruffleString arg0Value, int arg1Value) throws NumberFormatException {
int state_0 = this.state_0_;
if ((arg0Value.isLazyLong()) && (arg1Value == 10)) {
state_0 = state_0 | 0b1 /* add SpecializationActive[TruffleString.ParseIntNode.doLazyLong(AbstractTruffleString, int, InlinedBranchProfile)] */;
this.state_0_ = state_0;
return doLazyLong(arg0Value, arg1Value, INLINED_LAZY_LONG_ERROR_PROFILE_);
}
if ((!(arg0Value.isLazyLong()) || arg1Value != 10)) {
state_0 = state_0 | 0b10 /* add SpecializationActive[TruffleString.ParseIntNode.doParse(AbstractTruffleString, int, ToIndexableNode, GetPreciseCodeRangeNode, ParseIntNode, InlinedIntValueProfile)] */;
this.state_0_ = state_0;
return doParse(arg0Value, arg1Value, INLINED_PARSE_TO_INDEXABLE_NODE_, INLINED_PARSE_GET_CODE_RANGE_A_NODE_, INLINED_PARSE_PARSE_INT_NODE_, INLINED_PARSE_RADIX_PROFILE_);
}
throw new UnsupportedSpecializationException(this, new Node[] {null, null}, arg0Value, arg1Value);
}
@Override
public NodeCost getCost() {
int state_0 = this.state_0_;
if ((state_0 & 0b11) == 0) {
return NodeCost.UNINITIALIZED;
} else {
int counter = 0;
counter += Integer.bitCount((state_0 & 0b11));
if (counter == 1) {
return NodeCost.MONOMORPHIC;
}
}
return NodeCost.POLYMORPHIC;
}
@NeverDefault
public static com.oracle.truffle.api.strings.TruffleString.ParseIntNode create() {
return new com.oracle.truffle.api.strings.TruffleStringFactory.ParseIntNodeGen();
}
@NeverDefault
public static com.oracle.truffle.api.strings.TruffleString.ParseIntNode getUncached() {
return ParseIntNodeGen.UNCACHED;
}
@GeneratedBy(com.oracle.truffle.api.strings.TruffleString.ParseIntNode.class)
@DenyReplace
private static final class Uncached extends com.oracle.truffle.api.strings.TruffleString.ParseIntNode {
@TruffleBoundary
@Override
public int execute(AbstractTruffleString arg0Value, int arg1Value) throws NumberFormatException {
if ((arg0Value.isLazyLong()) && (arg1Value == 10)) {
return doLazyLong(arg0Value, arg1Value, (InlinedBranchProfile.getUncached()));
}
if ((!(arg0Value.isLazyLong()) || arg1Value != 10)) {
return doParse(arg0Value, arg1Value, (ToIndexableNodeGen.getUncached()), (GetPreciseCodeRangeNodeGen.getUncached()), (com.oracle.truffle.api.strings.TStringInternalNodesFactory.ParseIntNodeGen.getUncached()), (InlinedIntValueProfile.getUncached()));
}
throw new UnsupportedSpecializationException(this, new Node[] {null, null}, arg0Value, arg1Value);
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link com.oracle.truffle.api.strings.TruffleString.ParseLongNode#doLazyLong}
* Activation probability: 0.65000
* With/without class size: 11/0 bytes
* Specialization {@link com.oracle.truffle.api.strings.TruffleString.ParseLongNode#doParse}
* Activation probability: 0.35000
* With/without class size: 15/13 bytes
*
*/
@GeneratedBy(com.oracle.truffle.api.strings.TruffleString.ParseLongNode.class)
@SuppressWarnings("javadoc")
static final class ParseLongNodeGen extends com.oracle.truffle.api.strings.TruffleString.ParseLongNode {
private static final StateField STATE_0_ParseLongNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField STATE_1_ParseLongNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_1_");
private static final StateField STATE_2_ParseLongNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_2_");
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ParseLongNode#doParse}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_PARSE_TO_INDEXABLE_NODE_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_ParseLongNode_UPDATER.subUpdater(2, 7)));
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ParseLongNode#doParse}
* Parameter: {@link GetPreciseCodeRangeNode} getCodeRangeANode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
*/
private static final GetPreciseCodeRangeNode INLINED_PARSE_GET_CODE_RANGE_A_NODE_ = GetPreciseCodeRangeNodeGen.inline(InlineTarget.create(GetPreciseCodeRangeNode.class, STATE_1_ParseLongNode_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ParseLongNode#doParse}
* Parameter: {@link com.oracle.truffle.api.strings.TStringInternalNodes.ParseLongNode} parseLongNode
* Inline method: {@link com.oracle.truffle.api.strings.TStringInternalNodesFactory.ParseLongNodeGen#inline}
*/
private static final com.oracle.truffle.api.strings.TStringInternalNodes.ParseLongNode INLINED_PARSE_PARSE_LONG_NODE_ = com.oracle.truffle.api.strings.TStringInternalNodesFactory.ParseLongNodeGen.inline(InlineTarget.create(com.oracle.truffle.api.strings.TStringInternalNodes.ParseLongNode.class, STATE_2_ParseLongNode_UPDATER.subUpdater(0, 17), STATE_0_ParseLongNode_UPDATER.subUpdater(9, 21)));
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ParseLongNode#doParse}
* Parameter: {@link InlinedIntValueProfile} radixProfile
* Inline method: {@link InlinedIntValueProfile#inline}
*/
private static final InlinedIntValueProfile INLINED_PARSE_RADIX_PROFILE_ = InlinedIntValueProfile.inline(InlineTarget.create(InlinedIntValueProfile.class, STATE_0_ParseLongNode_UPDATER.subUpdater(30, 2), IntField.create(MethodHandles.lookup(), "parse_radixProfile__field1_")));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0: SpecializationActive {@link com.oracle.truffle.api.strings.TruffleString.ParseLongNode#doLazyLong}
* 1: SpecializationActive {@link com.oracle.truffle.api.strings.TruffleString.ParseLongNode#doParse}
* 2-8: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ParseLongNode#doParse}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
* 9-29: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ParseLongNode#doParse}
* Parameter: {@link com.oracle.truffle.api.strings.TStringInternalNodes.ParseLongNode} parseLongNode
* Inline method: {@link com.oracle.truffle.api.strings.TStringInternalNodesFactory.ParseLongNodeGen#inline}
* 30-31: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ParseLongNode#doParse}
* Parameter: {@link InlinedIntValueProfile} radixProfile
* Inline method: {@link InlinedIntValueProfile#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ParseLongNode#doParse}
* Parameter: {@link GetPreciseCodeRangeNode} getCodeRangeANode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_1_;
/**
* State Info:
* 0-16: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ParseLongNode#doParse}
* Parameter: {@link com.oracle.truffle.api.strings.TStringInternalNodes.ParseLongNode} parseLongNode
* Inline method: {@link com.oracle.truffle.api.strings.TStringInternalNodesFactory.ParseLongNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_2_;
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ParseLongNode#doParse}
* Parameter: {@link InlinedIntValueProfile} radixProfile
* Inline method: {@link InlinedIntValueProfile#inline}
* Inline field: int field1
*/
@CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private int parse_radixProfile__field1_;
private ParseLongNodeGen() {
}
@Override
public long execute(AbstractTruffleString arg0Value, int arg1Value) throws NumberFormatException {
int state_0 = this.state_0_;
if ((state_0 & 0b11) != 0 /* is SpecializationActive[TruffleString.ParseLongNode.doLazyLong(AbstractTruffleString, int)] || SpecializationActive[TruffleString.ParseLongNode.doParse(AbstractTruffleString, int, ToIndexableNode, GetPreciseCodeRangeNode, ParseLongNode, InlinedIntValueProfile)] */) {
if ((state_0 & 0b1) != 0 /* is SpecializationActive[TruffleString.ParseLongNode.doLazyLong(AbstractTruffleString, int)] */) {
if ((arg0Value.isLazyLong()) && (arg1Value == 10)) {
return com.oracle.truffle.api.strings.TruffleString.ParseLongNode.doLazyLong(arg0Value, arg1Value);
}
}
if ((state_0 & 0b10) != 0 /* is SpecializationActive[TruffleString.ParseLongNode.doParse(AbstractTruffleString, int, ToIndexableNode, GetPreciseCodeRangeNode, ParseLongNode, InlinedIntValueProfile)] */) {
if ((!(arg0Value.isLazyLong()) || arg1Value != 10)) {
return doParse(arg0Value, arg1Value, INLINED_PARSE_TO_INDEXABLE_NODE_, INLINED_PARSE_GET_CODE_RANGE_A_NODE_, INLINED_PARSE_PARSE_LONG_NODE_, INLINED_PARSE_RADIX_PROFILE_);
}
}
}
CompilerDirectives.transferToInterpreterAndInvalidate();
return executeAndSpecialize(arg0Value, arg1Value);
}
private long executeAndSpecialize(AbstractTruffleString arg0Value, int arg1Value) throws NumberFormatException {
int state_0 = this.state_0_;
if ((arg0Value.isLazyLong()) && (arg1Value == 10)) {
state_0 = state_0 | 0b1 /* add SpecializationActive[TruffleString.ParseLongNode.doLazyLong(AbstractTruffleString, int)] */;
this.state_0_ = state_0;
return com.oracle.truffle.api.strings.TruffleString.ParseLongNode.doLazyLong(arg0Value, arg1Value);
}
if ((!(arg0Value.isLazyLong()) || arg1Value != 10)) {
state_0 = state_0 | 0b10 /* add SpecializationActive[TruffleString.ParseLongNode.doParse(AbstractTruffleString, int, ToIndexableNode, GetPreciseCodeRangeNode, ParseLongNode, InlinedIntValueProfile)] */;
this.state_0_ = state_0;
return doParse(arg0Value, arg1Value, INLINED_PARSE_TO_INDEXABLE_NODE_, INLINED_PARSE_GET_CODE_RANGE_A_NODE_, INLINED_PARSE_PARSE_LONG_NODE_, INLINED_PARSE_RADIX_PROFILE_);
}
throw new UnsupportedSpecializationException(this, new Node[] {null, null}, arg0Value, arg1Value);
}
@Override
public NodeCost getCost() {
int state_0 = this.state_0_;
if ((state_0 & 0b11) == 0) {
return NodeCost.UNINITIALIZED;
} else {
int counter = 0;
counter += Integer.bitCount((state_0 & 0b11));
if (counter == 1) {
return NodeCost.MONOMORPHIC;
}
}
return NodeCost.POLYMORPHIC;
}
@NeverDefault
public static com.oracle.truffle.api.strings.TruffleString.ParseLongNode create() {
return new com.oracle.truffle.api.strings.TruffleStringFactory.ParseLongNodeGen();
}
@NeverDefault
public static com.oracle.truffle.api.strings.TruffleString.ParseLongNode getUncached() {
return ParseLongNodeGen.UNCACHED;
}
@GeneratedBy(com.oracle.truffle.api.strings.TruffleString.ParseLongNode.class)
@DenyReplace
private static final class Uncached extends com.oracle.truffle.api.strings.TruffleString.ParseLongNode {
@TruffleBoundary
@Override
public long execute(AbstractTruffleString arg0Value, int arg1Value) throws NumberFormatException {
if ((arg0Value.isLazyLong()) && (arg1Value == 10)) {
return com.oracle.truffle.api.strings.TruffleString.ParseLongNode.doLazyLong(arg0Value, arg1Value);
}
if ((!(arg0Value.isLazyLong()) || arg1Value != 10)) {
return doParse(arg0Value, arg1Value, (ToIndexableNodeGen.getUncached()), (GetPreciseCodeRangeNodeGen.getUncached()), (com.oracle.truffle.api.strings.TStringInternalNodesFactory.ParseLongNodeGen.getUncached()), (InlinedIntValueProfile.getUncached()));
}
throw new UnsupportedSpecializationException(this, new Node[] {null, null}, arg0Value, arg1Value);
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link com.oracle.truffle.api.strings.TruffleString.ParseDoubleNode#doLazyLong}
* Activation probability: 0.65000
* With/without class size: 11/0 bytes
* Specialization {@link com.oracle.truffle.api.strings.TruffleString.ParseDoubleNode#parseDouble}
* Activation probability: 0.35000
* With/without class size: 11/3 bytes
*
*/
@GeneratedBy(com.oracle.truffle.api.strings.TruffleString.ParseDoubleNode.class)
@SuppressWarnings("javadoc")
static final class ParseDoubleNodeGen extends com.oracle.truffle.api.strings.TruffleString.ParseDoubleNode {
private static final StateField STATE_0_ParseDoubleNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ParseDoubleNode#parseDouble}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_PARSE_DOUBLE_TO_INDEXABLE_NODE_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_ParseDoubleNode_UPDATER.subUpdater(2, 7)));
/**
* Source Info:
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ParseDoubleNode#parseDouble}
* Parameter: {@link com.oracle.truffle.api.strings.TStringInternalNodes.ParseDoubleNode} parseDoubleNode
* Inline method: {@link com.oracle.truffle.api.strings.TStringInternalNodesFactory.ParseDoubleNodeGen#inline}
*/
private static final com.oracle.truffle.api.strings.TStringInternalNodes.ParseDoubleNode INLINED_PARSE_DOUBLE_PARSE_DOUBLE_NODE_ = com.oracle.truffle.api.strings.TStringInternalNodesFactory.ParseDoubleNodeGen.inline(InlineTarget.create(com.oracle.truffle.api.strings.TStringInternalNodes.ParseDoubleNode.class, STATE_0_ParseDoubleNode_UPDATER.subUpdater(9, 15)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0: SpecializationActive {@link com.oracle.truffle.api.strings.TruffleString.ParseDoubleNode#doLazyLong}
* 1: SpecializationActive {@link com.oracle.truffle.api.strings.TruffleString.ParseDoubleNode#parseDouble}
* 2-8: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ParseDoubleNode#parseDouble}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
* 9-23: InlinedCache
* Specialization: {@link com.oracle.truffle.api.strings.TruffleString.ParseDoubleNode#parseDouble}
* Parameter: {@link com.oracle.truffle.api.strings.TStringInternalNodes.ParseDoubleNode} parseDoubleNode
* Inline method: {@link com.oracle.truffle.api.strings.TStringInternalNodesFactory.ParseDoubleNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
private ParseDoubleNodeGen() {
}
@Override
public double execute(AbstractTruffleString arg0Value) throws NumberFormatException {
int state_0 = this.state_0_;
if ((state_0 & 0b11) != 0 /* is SpecializationActive[TruffleString.ParseDoubleNode.doLazyLong(AbstractTruffleString)] || SpecializationActive[TruffleString.ParseDoubleNode.parseDouble(AbstractTruffleString, ToIndexableNode, ParseDoubleNode)] */) {
if ((state_0 & 0b1) != 0 /* is SpecializationActive[TruffleString.ParseDoubleNode.doLazyLong(AbstractTruffleString)] */) {
if ((com.oracle.truffle.api.strings.TruffleString.ParseDoubleNode.isLazyLongSafeInteger(arg0Value))) {
return com.oracle.truffle.api.strings.TruffleString.ParseDoubleNode.doLazyLong(arg0Value);
}
}
if ((state_0 & 0b10) != 0 /* is SpecializationActive[TruffleString.ParseDoubleNode.parseDouble(AbstractTruffleString, ToIndexableNode, ParseDoubleNode)] */) {
if ((!(com.oracle.truffle.api.strings.TruffleString.ParseDoubleNode.isLazyLongSafeInteger(arg0Value)))) {
return parseDouble(arg0Value, INLINED_PARSE_DOUBLE_TO_INDEXABLE_NODE_, INLINED_PARSE_DOUBLE_PARSE_DOUBLE_NODE_);
}
}
}
CompilerDirectives.transferToInterpreterAndInvalidate();
return executeAndSpecialize(arg0Value);
}
private double executeAndSpecialize(AbstractTruffleString arg0Value) throws NumberFormatException {
int state_0 = this.state_0_;
if ((com.oracle.truffle.api.strings.TruffleString.ParseDoubleNode.isLazyLongSafeInteger(arg0Value))) {
state_0 = state_0 | 0b1 /* add SpecializationActive[TruffleString.ParseDoubleNode.doLazyLong(AbstractTruffleString)] */;
this.state_0_ = state_0;
return com.oracle.truffle.api.strings.TruffleString.ParseDoubleNode.doLazyLong(arg0Value);
}
if ((!(com.oracle.truffle.api.strings.TruffleString.ParseDoubleNode.isLazyLongSafeInteger(arg0Value)))) {
state_0 = state_0 | 0b10 /* add SpecializationActive[TruffleString.ParseDoubleNode.parseDouble(AbstractTruffleString, ToIndexableNode, ParseDoubleNode)] */;
this.state_0_ = state_0;
return parseDouble(arg0Value, INLINED_PARSE_DOUBLE_TO_INDEXABLE_NODE_, INLINED_PARSE_DOUBLE_PARSE_DOUBLE_NODE_);
}
throw new UnsupportedSpecializationException(this, new Node[] {null}, arg0Value);
}
@Override
public NodeCost getCost() {
int state_0 = this.state_0_;
if ((state_0 & 0b11) == 0) {
return NodeCost.UNINITIALIZED;
} else {
if (((state_0 & 0b11) & ((state_0 & 0b11) - 1)) == 0 /* is-single */) {
return NodeCost.MONOMORPHIC;
}
}
return NodeCost.POLYMORPHIC;
}
@NeverDefault
public static com.oracle.truffle.api.strings.TruffleString.ParseDoubleNode create() {
return new com.oracle.truffle.api.strings.TruffleStringFactory.ParseDoubleNodeGen();
}
@NeverDefault
public static com.oracle.truffle.api.strings.TruffleString.ParseDoubleNode getUncached() {
return ParseDoubleNodeGen.UNCACHED;
}
@GeneratedBy(com.oracle.truffle.api.strings.TruffleString.ParseDoubleNode.class)
@DenyReplace
private static final class Uncached extends com.oracle.truffle.api.strings.TruffleString.ParseDoubleNode {
@TruffleBoundary
@Override
public double execute(AbstractTruffleString arg0Value) throws NumberFormatException {
if ((com.oracle.truffle.api.strings.TruffleString.ParseDoubleNode.isLazyLongSafeInteger(arg0Value))) {
return com.oracle.truffle.api.strings.TruffleString.ParseDoubleNode.doLazyLong(arg0Value);
}
if ((!(com.oracle.truffle.api.strings.TruffleString.ParseDoubleNode.isLazyLongSafeInteger(arg0Value)))) {
return parseDouble(arg0Value, (ToIndexableNodeGen.getUncached()), (com.oracle.truffle.api.strings.TStringInternalNodesFactory.ParseDoubleNodeGen.getUncached()));
}
throw new UnsupportedSpecializationException(this, new Node[] {null}, arg0Value);
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link GetInternalByteArrayNode#getInternalByteArray}
* Activation probability: 1.00000
* With/without class size: 24/3 bytes
*
*/
@GeneratedBy(GetInternalByteArrayNode.class)
@SuppressWarnings("javadoc")
static final class GetInternalByteArrayNodeGen extends GetInternalByteArrayNode {
private static final StateField STATE_0_GetInternalByteArrayNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link GetInternalByteArrayNode#getInternalByteArray}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_GetInternalByteArrayNode_UPDATER.subUpdater(0, 7)));
/**
* Source Info:
* Specialization: {@link GetInternalByteArrayNode#getInternalByteArray}
* Parameter: {@link InlinedConditionProfile} utf16Profile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_UTF16_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_GetInternalByteArrayNode_UPDATER.subUpdater(7, 2)));
/**
* Source Info:
* Specialization: {@link GetInternalByteArrayNode#getInternalByteArray}
* Parameter: {@link InlinedConditionProfile} utf16S0Profile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_UTF16_S0_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_GetInternalByteArrayNode_UPDATER.subUpdater(9, 2)));
/**
* Source Info:
* Specialization: {@link GetInternalByteArrayNode#getInternalByteArray}
* Parameter: {@link InlinedConditionProfile} utf32Profile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_UTF32_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_GetInternalByteArrayNode_UPDATER.subUpdater(11, 2)));
/**
* Source Info:
* Specialization: {@link GetInternalByteArrayNode#getInternalByteArray}
* Parameter: {@link InlinedConditionProfile} utf32S0Profile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_UTF32_S0_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_GetInternalByteArrayNode_UPDATER.subUpdater(13, 2)));
/**
* Source Info:
* Specialization: {@link GetInternalByteArrayNode#getInternalByteArray}
* Parameter: {@link InlinedConditionProfile} utf32S1Profile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_UTF32_S1_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_GetInternalByteArrayNode_UPDATER.subUpdater(15, 2)));
/**
* Source Info:
* Specialization: {@link GetInternalByteArrayNode#getInternalByteArray}
* Parameter: {@link InlinedConditionProfile} isByteArrayProfile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_IS_BYTE_ARRAY_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_GetInternalByteArrayNode_UPDATER.subUpdater(17, 2)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-6: InlinedCache
* Specialization: {@link GetInternalByteArrayNode#getInternalByteArray}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
* 7-8: InlinedCache
* Specialization: {@link GetInternalByteArrayNode#getInternalByteArray}
* Parameter: {@link InlinedConditionProfile} utf16Profile
* Inline method: {@link InlinedConditionProfile#inline}
* 9-10: InlinedCache
* Specialization: {@link GetInternalByteArrayNode#getInternalByteArray}
* Parameter: {@link InlinedConditionProfile} utf16S0Profile
* Inline method: {@link InlinedConditionProfile#inline}
* 11-12: InlinedCache
* Specialization: {@link GetInternalByteArrayNode#getInternalByteArray}
* Parameter: {@link InlinedConditionProfile} utf32Profile
* Inline method: {@link InlinedConditionProfile#inline}
* 13-14: InlinedCache
* Specialization: {@link GetInternalByteArrayNode#getInternalByteArray}
* Parameter: {@link InlinedConditionProfile} utf32S0Profile
* Inline method: {@link InlinedConditionProfile#inline}
* 15-16: InlinedCache
* Specialization: {@link GetInternalByteArrayNode#getInternalByteArray}
* Parameter: {@link InlinedConditionProfile} utf32S1Profile
* Inline method: {@link InlinedConditionProfile#inline}
* 17-18: InlinedCache
* Specialization: {@link GetInternalByteArrayNode#getInternalByteArray}
* Parameter: {@link InlinedConditionProfile} isByteArrayProfile
* Inline method: {@link InlinedConditionProfile#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
private GetInternalByteArrayNodeGen() {
}
@Override
public InternalByteArray execute(AbstractTruffleString arg0Value, Encoding arg1Value) {
return getInternalByteArray(arg0Value, arg1Value, INLINED_TO_INDEXABLE_NODE_, INLINED_UTF16_PROFILE_, INLINED_UTF16_S0_PROFILE_, INLINED_UTF32_PROFILE_, INLINED_UTF32_S0_PROFILE_, INLINED_UTF32_S1_PROFILE_, INLINED_IS_BYTE_ARRAY_PROFILE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static GetInternalByteArrayNode create() {
return new GetInternalByteArrayNodeGen();
}
@NeverDefault
public static GetInternalByteArrayNode getUncached() {
return GetInternalByteArrayNodeGen.UNCACHED;
}
@GeneratedBy(GetInternalByteArrayNode.class)
@DenyReplace
private static final class Uncached extends GetInternalByteArrayNode {
@TruffleBoundary
@Override
public InternalByteArray execute(AbstractTruffleString arg0Value, Encoding arg1Value) {
return getInternalByteArray(arg0Value, arg1Value, (ToIndexableNodeGen.getUncached()), (InlinedConditionProfile.getUncached()), (InlinedConditionProfile.getUncached()), (InlinedConditionProfile.getUncached()), (InlinedConditionProfile.getUncached()), (InlinedConditionProfile.getUncached()), (InlinedConditionProfile.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link GetInternalNativePointerNode#getNativePointer}
* Activation probability: 1.00000
* With/without class size: 16/0 bytes
*
*/
@GeneratedBy(GetInternalNativePointerNode.class)
@SuppressWarnings("javadoc")
static final class GetInternalNativePointerNodeGen extends GetInternalNativePointerNode {
private static final Uncached UNCACHED = new Uncached();
private GetInternalNativePointerNodeGen() {
}
@Override
public Object execute(AbstractTruffleString arg0Value, Encoding arg1Value) {
return GetInternalNativePointerNode.getNativePointer(arg0Value, arg1Value);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static GetInternalNativePointerNode create() {
return new GetInternalNativePointerNodeGen();
}
@NeverDefault
public static GetInternalNativePointerNode getUncached() {
return GetInternalNativePointerNodeGen.UNCACHED;
}
@GeneratedBy(GetInternalNativePointerNode.class)
@DenyReplace
private static final class Uncached extends GetInternalNativePointerNode {
@TruffleBoundary
@Override
public Object execute(AbstractTruffleString arg0Value, Encoding arg1Value) {
return GetInternalNativePointerNode.getNativePointer(arg0Value, arg1Value);
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link CopyToByteArrayNode#doCopy}
* Activation probability: 1.00000
* With/without class size: 24/3 bytes
*
*/
@GeneratedBy(CopyToByteArrayNode.class)
@SuppressWarnings("javadoc")
static final class CopyToByteArrayNodeGen extends CopyToByteArrayNode {
private static final StateField STATE_0_CopyToByteArrayNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link CopyToByteArrayNode#doCopy}
* Parameter: {@link InternalCopyToByteArrayNode} internalNode
* Inline method: {@link InternalCopyToByteArrayNodeGen#inline}
*/
private static final InternalCopyToByteArrayNode INLINED_INTERNAL_NODE_ = InternalCopyToByteArrayNodeGen.inline(InlineTarget.create(InternalCopyToByteArrayNode.class, STATE_0_CopyToByteArrayNode_UPDATER.subUpdater(0, 17)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-16: InlinedCache
* Specialization: {@link CopyToByteArrayNode#doCopy}
* Parameter: {@link InternalCopyToByteArrayNode} internalNode
* Inline method: {@link InternalCopyToByteArrayNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
private CopyToByteArrayNodeGen() {
}
@Override
public void execute(AbstractTruffleString arg0Value, int arg1Value, byte[] arg2Value, int arg3Value, int arg4Value, Encoding arg5Value) {
doCopy(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value, INLINED_INTERNAL_NODE_);
return;
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static CopyToByteArrayNode create() {
return new CopyToByteArrayNodeGen();
}
@NeverDefault
public static CopyToByteArrayNode getUncached() {
return CopyToByteArrayNodeGen.UNCACHED;
}
@GeneratedBy(CopyToByteArrayNode.class)
@DenyReplace
private static final class Uncached extends CopyToByteArrayNode {
@TruffleBoundary
@Override
public void execute(AbstractTruffleString arg0Value, int arg1Value, byte[] arg2Value, int arg3Value, int arg4Value, Encoding arg5Value) {
doCopy(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value, (InternalCopyToByteArrayNodeGen.getUncached()));
return;
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link InternalCopyToByteArrayNode#doCopy}
* Activation probability: 1.00000
* With/without class size: 24/3 bytes
*
*/
@GeneratedBy(InternalCopyToByteArrayNode.class)
@SuppressWarnings("javadoc")
static final class InternalCopyToByteArrayNodeGen {
private static final Uncached UNCACHED = new Uncached();
@NeverDefault
public static InternalCopyToByteArrayNode getUncached() {
return InternalCopyToByteArrayNodeGen.UNCACHED;
}
/**
* Required Fields:
* - {@link Inlined#state_0_}
*
*/
@NeverDefault
public static InternalCopyToByteArrayNode inline(@RequiredField(bits = 17, value = StateField.class) InlineTarget target) {
return new InternalCopyToByteArrayNodeGen.Inlined(target);
}
@GeneratedBy(InternalCopyToByteArrayNode.class)
@DenyReplace
private static final class Inlined extends InternalCopyToByteArrayNode {
/**
* State Info:
* 0-6: InlinedCache
* Specialization: {@link InternalCopyToByteArrayNode#doCopy}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
* 7-8: InlinedCache
* Specialization: {@link InternalCopyToByteArrayNode#doCopy}
* Parameter: {@link InlinedConditionProfile} utf16Profile
* Inline method: {@link InlinedConditionProfile#inline}
* 9-10: InlinedCache
* Specialization: {@link InternalCopyToByteArrayNode#doCopy}
* Parameter: {@link InlinedConditionProfile} utf16S0Profile
* Inline method: {@link InlinedConditionProfile#inline}
* 11-12: InlinedCache
* Specialization: {@link InternalCopyToByteArrayNode#doCopy}
* Parameter: {@link InlinedConditionProfile} utf32Profile
* Inline method: {@link InlinedConditionProfile#inline}
* 13-14: InlinedCache
* Specialization: {@link InternalCopyToByteArrayNode#doCopy}
* Parameter: {@link InlinedConditionProfile} utf32S0Profile
* Inline method: {@link InlinedConditionProfile#inline}
* 15-16: InlinedCache
* Specialization: {@link InternalCopyToByteArrayNode#doCopy}
* Parameter: {@link InlinedConditionProfile} utf32S1Profile
* Inline method: {@link InlinedConditionProfile#inline}
*
*/
private final StateField state_0_;
/**
* Source Info:
* Specialization: {@link InternalCopyToByteArrayNode#doCopy}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private final ToIndexableNode toIndexableNode_;
/**
* Source Info:
* Specialization: {@link InternalCopyToByteArrayNode#doCopy}
* Parameter: {@link InlinedConditionProfile} utf16Profile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private final InlinedConditionProfile utf16Profile_;
/**
* Source Info:
* Specialization: {@link InternalCopyToByteArrayNode#doCopy}
* Parameter: {@link InlinedConditionProfile} utf16S0Profile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private final InlinedConditionProfile utf16S0Profile_;
/**
* Source Info:
* Specialization: {@link InternalCopyToByteArrayNode#doCopy}
* Parameter: {@link InlinedConditionProfile} utf32Profile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private final InlinedConditionProfile utf32Profile_;
/**
* Source Info:
* Specialization: {@link InternalCopyToByteArrayNode#doCopy}
* Parameter: {@link InlinedConditionProfile} utf32S0Profile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private final InlinedConditionProfile utf32S0Profile_;
/**
* Source Info:
* Specialization: {@link InternalCopyToByteArrayNode#doCopy}
* Parameter: {@link InlinedConditionProfile} utf32S1Profile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private final InlinedConditionProfile utf32S1Profile_;
private Inlined(InlineTarget target) {
assert target.getTargetClass().isAssignableFrom(InternalCopyToByteArrayNode.class);
this.state_0_ = target.getState(0, 17);
this.toIndexableNode_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, state_0_.subUpdater(0, 7)));
this.utf16Profile_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, state_0_.subUpdater(7, 2)));
this.utf16S0Profile_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, state_0_.subUpdater(9, 2)));
this.utf32Profile_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, state_0_.subUpdater(11, 2)));
this.utf32S0Profile_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, state_0_.subUpdater(13, 2)));
this.utf32S1Profile_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, state_0_.subUpdater(15, 2)));
}
@Override
void execute(Node arg0Value, AbstractTruffleString arg1Value, int arg2Value, byte[] arg3Value, int arg4Value, int arg5Value, Encoding arg6Value) {
assert InlineSupport.validate(arg0Value, this.state_0_, this.state_0_, this.state_0_, this.state_0_, this.state_0_, this.state_0_);
InternalCopyToByteArrayNode.doCopy(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value, arg6Value, this.toIndexableNode_, this.utf16Profile_, this.utf16S0Profile_, this.utf32Profile_, this.utf32S0Profile_, this.utf32S1Profile_);
return;
}
@Override
public boolean isAdoptable() {
return false;
}
}
@GeneratedBy(InternalCopyToByteArrayNode.class)
@DenyReplace
private static final class Uncached extends InternalCopyToByteArrayNode {
@TruffleBoundary
@Override
void execute(Node arg0Value, AbstractTruffleString arg1Value, int arg2Value, byte[] arg3Value, int arg4Value, int arg5Value, Encoding arg6Value) {
InternalCopyToByteArrayNode.doCopy(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value, arg6Value, (ToIndexableNodeGen.getUncached()), (InlinedConditionProfile.getUncached()), (InlinedConditionProfile.getUncached()), (InlinedConditionProfile.getUncached()), (InlinedConditionProfile.getUncached()), (InlinedConditionProfile.getUncached()));
return;
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link CopyToNativeMemoryNode#doCopy}
* Activation probability: 1.00000
* With/without class size: 28/7 bytes
*
*/
@GeneratedBy(CopyToNativeMemoryNode.class)
@SuppressWarnings("javadoc")
static final class CopyToNativeMemoryNodeGen extends CopyToNativeMemoryNode {
private static final StateField STATE_0_CopyToNativeMemoryNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link CopyToNativeMemoryNode#doCopy}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_CopyToNativeMemoryNode_UPDATER.subUpdater(1, 7)));
/**
* Source Info:
* Specialization: {@link CopyToNativeMemoryNode#doCopy}
* Parameter: {@link InlinedConditionProfile} utf16Profile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_UTF16_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_CopyToNativeMemoryNode_UPDATER.subUpdater(8, 2)));
/**
* Source Info:
* Specialization: {@link CopyToNativeMemoryNode#doCopy}
* Parameter: {@link InlinedConditionProfile} utf16S0Profile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_UTF16_S0_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_CopyToNativeMemoryNode_UPDATER.subUpdater(10, 2)));
/**
* Source Info:
* Specialization: {@link CopyToNativeMemoryNode#doCopy}
* Parameter: {@link InlinedConditionProfile} utf32Profile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_UTF32_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_CopyToNativeMemoryNode_UPDATER.subUpdater(12, 2)));
/**
* Source Info:
* Specialization: {@link CopyToNativeMemoryNode#doCopy}
* Parameter: {@link InlinedConditionProfile} utf32S0Profile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_UTF32_S0_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_CopyToNativeMemoryNode_UPDATER.subUpdater(14, 2)));
/**
* Source Info:
* Specialization: {@link CopyToNativeMemoryNode#doCopy}
* Parameter: {@link InlinedConditionProfile} utf32S1Profile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_UTF32_S1_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_CopyToNativeMemoryNode_UPDATER.subUpdater(16, 2)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0: SpecializationActive {@link CopyToNativeMemoryNode#doCopy}
* 1-7: InlinedCache
* Specialization: {@link CopyToNativeMemoryNode#doCopy}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
* 8-9: InlinedCache
* Specialization: {@link CopyToNativeMemoryNode#doCopy}
* Parameter: {@link InlinedConditionProfile} utf16Profile
* Inline method: {@link InlinedConditionProfile#inline}
* 10-11: InlinedCache
* Specialization: {@link CopyToNativeMemoryNode#doCopy}
* Parameter: {@link InlinedConditionProfile} utf16S0Profile
* Inline method: {@link InlinedConditionProfile#inline}
* 12-13: InlinedCache
* Specialization: {@link CopyToNativeMemoryNode#doCopy}
* Parameter: {@link InlinedConditionProfile} utf32Profile
* Inline method: {@link InlinedConditionProfile#inline}
* 14-15: InlinedCache
* Specialization: {@link CopyToNativeMemoryNode#doCopy}
* Parameter: {@link InlinedConditionProfile} utf32S0Profile
* Inline method: {@link InlinedConditionProfile#inline}
* 16-17: InlinedCache
* Specialization: {@link CopyToNativeMemoryNode#doCopy}
* Parameter: {@link InlinedConditionProfile} utf32S1Profile
* Inline method: {@link InlinedConditionProfile#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* Source Info:
* Specialization: {@link CopyToNativeMemoryNode#doCopy}
* Parameter: {@link Node} interopLibrary
*/
@Child private Node interopLibrary_;
private CopyToNativeMemoryNodeGen() {
}
@Override
public void execute(AbstractTruffleString arg0Value, int arg1Value, Object arg2Value, int arg3Value, int arg4Value, Encoding arg5Value) {
int state_0 = this.state_0_;
if ((state_0 & 0b1) != 0 /* is SpecializationActive[TruffleString.CopyToNativeMemoryNode.doCopy(AbstractTruffleString, int, Object, int, int, Encoding, Node, ToIndexableNode, InlinedConditionProfile, InlinedConditionProfile, InlinedConditionProfile, InlinedConditionProfile, InlinedConditionProfile)] */) {
{
Node interopLibrary__ = this.interopLibrary_;
if (interopLibrary__ != null) {
doCopy(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value, interopLibrary__, INLINED_TO_INDEXABLE_NODE_, INLINED_UTF16_PROFILE_, INLINED_UTF16_S0_PROFILE_, INLINED_UTF32_PROFILE_, INLINED_UTF32_S0_PROFILE_, INLINED_UTF32_S1_PROFILE_);
return;
}
}
}
CompilerDirectives.transferToInterpreterAndInvalidate();
executeAndSpecialize(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value);
return;
}
private void executeAndSpecialize(AbstractTruffleString arg0Value, int arg1Value, Object arg2Value, int arg3Value, int arg4Value, Encoding arg5Value) {
int state_0 = this.state_0_;
Node interopLibrary__ = this.insert((TStringAccessor.createInteropLibrary()));
Objects.requireNonNull(interopLibrary__, "Specialization 'doCopy(AbstractTruffleString, int, Object, int, int, Encoding, Node, ToIndexableNode, InlinedConditionProfile, InlinedConditionProfile, InlinedConditionProfile, InlinedConditionProfile, InlinedConditionProfile)' cache 'interopLibrary' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'.");
VarHandle.storeStoreFence();
this.interopLibrary_ = interopLibrary__;
state_0 = state_0 | 0b1 /* add SpecializationActive[TruffleString.CopyToNativeMemoryNode.doCopy(AbstractTruffleString, int, Object, int, int, Encoding, Node, ToIndexableNode, InlinedConditionProfile, InlinedConditionProfile, InlinedConditionProfile, InlinedConditionProfile, InlinedConditionProfile)] */;
this.state_0_ = state_0;
doCopy(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value, interopLibrary__, INLINED_TO_INDEXABLE_NODE_, INLINED_UTF16_PROFILE_, INLINED_UTF16_S0_PROFILE_, INLINED_UTF32_PROFILE_, INLINED_UTF32_S0_PROFILE_, INLINED_UTF32_S1_PROFILE_);
return;
}
@Override
public NodeCost getCost() {
int state_0 = this.state_0_;
if ((state_0 & 0b1) == 0) {
return NodeCost.UNINITIALIZED;
} else {
return NodeCost.MONOMORPHIC;
}
}
@NeverDefault
public static CopyToNativeMemoryNode create() {
return new CopyToNativeMemoryNodeGen();
}
@NeverDefault
public static CopyToNativeMemoryNode getUncached() {
return CopyToNativeMemoryNodeGen.UNCACHED;
}
@GeneratedBy(CopyToNativeMemoryNode.class)
@DenyReplace
private static final class Uncached extends CopyToNativeMemoryNode {
@TruffleBoundary
@Override
public void execute(AbstractTruffleString arg0Value, int arg1Value, Object arg2Value, int arg3Value, int arg4Value, Encoding arg5Value) {
doCopy(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, arg5Value, (TStringAccessor.getUncachedInteropLibrary()), (ToIndexableNodeGen.getUncached()), (InlinedConditionProfile.getUncached()), (InlinedConditionProfile.getUncached()), (InlinedConditionProfile.getUncached()), (InlinedConditionProfile.getUncached()), (InlinedConditionProfile.getUncached()));
return;
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link ToJavaStringNode#doUTF16}
* Activation probability: 0.65000
* With/without class size: 17/2 bytes
* Specialization {@link ToJavaStringNode#doMutable}
* Activation probability: 0.35000
* With/without class size: 9/0 bytes
*
*/
@GeneratedBy(ToJavaStringNode.class)
@SuppressWarnings("javadoc")
static final class ToJavaStringNodeGen extends ToJavaStringNode {
private static final StateField STATE_1_UPDATER = StateField.create(MethodHandles.lookup(), "state_1_");
private static final StateField STATE_2_UPDATER = StateField.create(MethodHandles.lookup(), "state_2_");
private static final StateField STATE_3_UPDATER = StateField.create(MethodHandles.lookup(), "state_3_");
private static final StateField STATE_4_UPDATER = StateField.create(MethodHandles.lookup(), "state_4_");
private static final StateField STATE_5_UPDATER = StateField.create(MethodHandles.lookup(), "state_5_");
private static final StateField STATE_6_UPDATER = StateField.create(MethodHandles.lookup(), "state_6_");
private static final StateField STATE_7_UPDATER = StateField.create(MethodHandles.lookup(), "state_7_");
private static final StateField STATE_8_UPDATER = StateField.create(MethodHandles.lookup(), "state_8_");
private static final StateField STATE_9_UPDATER = StateField.create(MethodHandles.lookup(), "state_9_");
private static final StateField STATE_10_UPDATER = StateField.create(MethodHandles.lookup(), "state_10_");
private static final StateField STATE_0_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField STATE_0_ToJavaStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link ToJavaStringNode#doUTF16}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthNode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
*/
private static final GetCodePointLengthNode INLINED_GET_CODE_POINT_LENGTH_NODE = GetCodePointLengthNodeGen.inline(InlineTarget.create(GetCodePointLengthNode.class, STATE_1_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link ToJavaStringNode#doUTF16}
* Parameter: {@link GetPreciseCodeRangeNode} getPreciseCodeRangeNode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
*/
private static final GetPreciseCodeRangeNode INLINED_GET_PRECISE_CODE_RANGE_NODE = GetPreciseCodeRangeNodeGen.inline(InlineTarget.create(GetPreciseCodeRangeNode.class, STATE_2_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link ToJavaStringNode#doUTF16}
* Parameter: {@link TransCodeNode} transCodeNode
* Inline method: {@link TransCodeNodeGen#inline}
*/
private static final TransCodeNode INLINED_TRANS_CODE_NODE = TransCodeNodeGen.inline(InlineTarget.create(TransCodeNode.class, STATE_3_UPDATER.subUpdater(0, 25), STATE_4_UPDATER.subUpdater(0, 26), STATE_5_UPDATER.subUpdater(0, 25), STATE_6_UPDATER.subUpdater(0, 25), STATE_7_UPDATER.subUpdater(0, 25), STATE_8_UPDATER.subUpdater(0, 24), STATE_9_UPDATER.subUpdater(0, 32), STATE_10_UPDATER.subUpdater(0, 25), ReferenceField.create(MethodHandles.lookup(), "transCodeNode_field8_", Node.class)));
/**
* Source Info:
* Specialization: {@link ToJavaStringNode#doUTF16}
* Parameter: {@link CreateJavaStringNode} createJavaStringNode
* Inline method: {@link CreateJavaStringNodeGen#inline}
*/
private static final CreateJavaStringNode INLINED_CREATE_JAVA_STRING_NODE = CreateJavaStringNodeGen.inline(InlineTarget.create(CreateJavaStringNode.class, STATE_0_UPDATER.subUpdater(11, 2)));
/**
* Source Info:
* Specialization: {@link ToJavaStringNode#doUTF16}
* Parameter: {@link InlinedConditionProfile} noTranscodeProfile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_NO_TRANSCODE_PROFILE = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_UPDATER.subUpdater(13, 2)));
/**
* Source Info:
* Specialization: {@link ToJavaStringNode#doUTF16}
* Parameter: {@link InlinedConditionProfile} cacheHit
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_U_T_F16_CACHE_HIT_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_ToJavaStringNode_UPDATER.subUpdater(2, 2)));
/**
* Source Info:
* Specialization: {@link ToJavaStringNode#doUTF16}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_U_T_F16_TO_INDEXABLE_NODE_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_ToJavaStringNode_UPDATER.subUpdater(4, 7)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0: SpecializationActive {@link ToJavaStringNode#doUTF16}
* 1: SpecializationActive {@link ToJavaStringNode#doMutable}
* 2-3: InlinedCache
* Specialization: {@link ToJavaStringNode#doUTF16}
* Parameter: {@link InlinedConditionProfile} cacheHit
* Inline method: {@link InlinedConditionProfile#inline}
* 4-10: InlinedCache
* Specialization: {@link ToJavaStringNode#doUTF16}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
* 11-12: InlinedCache
* Specialization: {@link ToJavaStringNode#doUTF16}
* Parameter: {@link CreateJavaStringNode} createJavaStringNode
* Inline method: {@link CreateJavaStringNodeGen#inline}
* 13-14: InlinedCache
* Specialization: {@link ToJavaStringNode#doUTF16}
* Parameter: {@link InlinedConditionProfile} noTranscodeProfile
* Inline method: {@link InlinedConditionProfile#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link ToJavaStringNode#doUTF16}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthNode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_1_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link ToJavaStringNode#doUTF16}
* Parameter: {@link GetPreciseCodeRangeNode} getPreciseCodeRangeNode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_2_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link ToJavaStringNode#doUTF16}
* Parameter: {@link TransCodeNode} transCodeNode
* Inline method: {@link TransCodeNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_3_;
/**
* State Info:
* 0-25: InlinedCache
* Specialization: {@link ToJavaStringNode#doUTF16}
* Parameter: {@link TransCodeNode} transCodeNode
* Inline method: {@link TransCodeNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_4_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link ToJavaStringNode#doUTF16}
* Parameter: {@link TransCodeNode} transCodeNode
* Inline method: {@link TransCodeNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_5_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link ToJavaStringNode#doUTF16}
* Parameter: {@link TransCodeNode} transCodeNode
* Inline method: {@link TransCodeNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_6_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link ToJavaStringNode#doUTF16}
* Parameter: {@link TransCodeNode} transCodeNode
* Inline method: {@link TransCodeNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_7_;
/**
* State Info:
* 0-23: InlinedCache
* Specialization: {@link ToJavaStringNode#doUTF16}
* Parameter: {@link TransCodeNode} transCodeNode
* Inline method: {@link TransCodeNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_8_;
/**
* State Info:
* 0-31: InlinedCache
* Specialization: {@link ToJavaStringNode#doUTF16}
* Parameter: {@link TransCodeNode} transCodeNode
* Inline method: {@link TransCodeNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_9_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link ToJavaStringNode#doUTF16}
* Parameter: {@link TransCodeNode} transCodeNode
* Inline method: {@link TransCodeNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_10_;
/**
* Source Info:
* Specialization: {@link ToJavaStringNode#doUTF16}
* Parameter: {@link TransCodeNode} transCodeNode
* Inline method: {@link TransCodeNodeGen#inline}
* Inline field: {@link Node} field8
*/
@Child @UnsafeAccessedField @SuppressWarnings("unused") private Node transCodeNode_field8_;
private ToJavaStringNodeGen() {
}
@Override
public String execute(AbstractTruffleString arg0Value) {
int state_0 = this.state_0_;
if ((state_0 & 0b11) != 0 /* is SpecializationActive[TruffleString.ToJavaStringNode.doUTF16(TruffleString, Node, InlinedConditionProfile, ToIndexableNode, GetCodePointLengthNode, GetPreciseCodeRangeNode, TransCodeNode, CreateJavaStringNode, InlinedConditionProfile)] || SpecializationActive[TruffleString.ToJavaStringNode.doMutable(MutableTruffleString, Node, GetCodePointLengthNode, GetPreciseCodeRangeNode, TransCodeNode, CreateJavaStringNode, InlinedConditionProfile)] */) {
if ((state_0 & 0b1) != 0 /* is SpecializationActive[TruffleString.ToJavaStringNode.doUTF16(TruffleString, Node, InlinedConditionProfile, ToIndexableNode, GetCodePointLengthNode, GetPreciseCodeRangeNode, TransCodeNode, CreateJavaStringNode, InlinedConditionProfile)] */ && arg0Value instanceof TruffleString) {
TruffleString arg0Value_ = (TruffleString) arg0Value;
{
Node node__ = (this);
return ToJavaStringNode.doUTF16(arg0Value_, node__, INLINED_U_T_F16_CACHE_HIT_, INLINED_U_T_F16_TO_INDEXABLE_NODE_, INLINED_GET_CODE_POINT_LENGTH_NODE, INLINED_GET_PRECISE_CODE_RANGE_NODE, INLINED_TRANS_CODE_NODE, INLINED_CREATE_JAVA_STRING_NODE, INLINED_NO_TRANSCODE_PROFILE);
}
}
if ((state_0 & 0b10) != 0 /* is SpecializationActive[TruffleString.ToJavaStringNode.doMutable(MutableTruffleString, Node, GetCodePointLengthNode, GetPreciseCodeRangeNode, TransCodeNode, CreateJavaStringNode, InlinedConditionProfile)] */ && arg0Value instanceof MutableTruffleString) {
MutableTruffleString arg0Value_ = (MutableTruffleString) arg0Value;
{
Node node__1 = (this);
return ToJavaStringNode.doMutable(arg0Value_, node__1, INLINED_GET_CODE_POINT_LENGTH_NODE, INLINED_GET_PRECISE_CODE_RANGE_NODE, INLINED_TRANS_CODE_NODE, INLINED_CREATE_JAVA_STRING_NODE, INLINED_NO_TRANSCODE_PROFILE);
}
}
}
CompilerDirectives.transferToInterpreterAndInvalidate();
return executeAndSpecialize(arg0Value);
}
private String executeAndSpecialize(AbstractTruffleString arg0Value) {
int state_0 = this.state_0_;
{
Node node__ = null;
if (arg0Value instanceof TruffleString) {
TruffleString arg0Value_ = (TruffleString) arg0Value;
node__ = (this);
state_0 = state_0 | 0b1 /* add SpecializationActive[TruffleString.ToJavaStringNode.doUTF16(TruffleString, Node, InlinedConditionProfile, ToIndexableNode, GetCodePointLengthNode, GetPreciseCodeRangeNode, TransCodeNode, CreateJavaStringNode, InlinedConditionProfile)] */;
this.state_0_ = state_0;
return ToJavaStringNode.doUTF16(arg0Value_, node__, INLINED_U_T_F16_CACHE_HIT_, INLINED_U_T_F16_TO_INDEXABLE_NODE_, INLINED_GET_CODE_POINT_LENGTH_NODE, INLINED_GET_PRECISE_CODE_RANGE_NODE, INLINED_TRANS_CODE_NODE, INLINED_CREATE_JAVA_STRING_NODE, INLINED_NO_TRANSCODE_PROFILE);
}
}
{
Node node__1 = null;
if (arg0Value instanceof MutableTruffleString) {
MutableTruffleString arg0Value_ = (MutableTruffleString) arg0Value;
node__1 = (this);
state_0 = state_0 | 0b10 /* add SpecializationActive[TruffleString.ToJavaStringNode.doMutable(MutableTruffleString, Node, GetCodePointLengthNode, GetPreciseCodeRangeNode, TransCodeNode, CreateJavaStringNode, InlinedConditionProfile)] */;
this.state_0_ = state_0;
return ToJavaStringNode.doMutable(arg0Value_, node__1, INLINED_GET_CODE_POINT_LENGTH_NODE, INLINED_GET_PRECISE_CODE_RANGE_NODE, INLINED_TRANS_CODE_NODE, INLINED_CREATE_JAVA_STRING_NODE, INLINED_NO_TRANSCODE_PROFILE);
}
}
throw new UnsupportedSpecializationException(this, new Node[] {null}, arg0Value);
}
@Override
public NodeCost getCost() {
int state_0 = this.state_0_;
if ((state_0 & 0b11) == 0) {
return NodeCost.UNINITIALIZED;
} else {
int counter = 0;
counter += Integer.bitCount((state_0 & 0b11));
if (counter == 1) {
return NodeCost.MONOMORPHIC;
}
}
return NodeCost.POLYMORPHIC;
}
@NeverDefault
public static ToJavaStringNode create() {
return new ToJavaStringNodeGen();
}
@NeverDefault
public static ToJavaStringNode getUncached() {
return ToJavaStringNodeGen.UNCACHED;
}
@GeneratedBy(ToJavaStringNode.class)
@DenyReplace
private static final class Uncached extends ToJavaStringNode {
@TruffleBoundary
@Override
public String execute(AbstractTruffleString arg0Value) {
if (arg0Value instanceof TruffleString) {
TruffleString arg0Value_ = (TruffleString) arg0Value;
return ToJavaStringNode.doUTF16(arg0Value_, (this), (InlinedConditionProfile.getUncached()), (ToIndexableNodeGen.getUncached()), (GetCodePointLengthNode.getUncached()), (GetPreciseCodeRangeNodeGen.getUncached()), (TransCodeNodeGen.getUncached()), (CreateJavaStringNodeGen.getUncached()), (InlinedConditionProfile.getUncached()));
}
if (arg0Value instanceof MutableTruffleString) {
MutableTruffleString arg0Value_ = (MutableTruffleString) arg0Value;
return ToJavaStringNode.doMutable(arg0Value_, (this), (GetCodePointLengthNode.getUncached()), (GetPreciseCodeRangeNodeGen.getUncached()), (TransCodeNodeGen.getUncached()), (CreateJavaStringNodeGen.getUncached()), (InlinedConditionProfile.getUncached()));
}
throw new UnsupportedSpecializationException(this, new Node[] {null}, arg0Value);
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link AsNativeNode#asNative}
* Activation probability: 1.00000
* With/without class size: 36/13 bytes
*
*/
@GeneratedBy(AsNativeNode.class)
@SuppressWarnings("javadoc")
static final class AsNativeNodeGen extends AsNativeNode {
private static final StateField STATE_0_AsNativeNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField STATE_1_AsNativeNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_1_");
/**
* Source Info:
* Specialization: {@link AsNativeNode#asNative}
* Parameter: {@link InlinedConditionProfile} isNativeProfile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_IS_NATIVE_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_AsNativeNode_UPDATER.subUpdater(1, 2)));
/**
* Source Info:
* Specialization: {@link AsNativeNode#asNative}
* Parameter: {@link InlinedConditionProfile} cacheHit
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_CACHE_HIT_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_AsNativeNode_UPDATER.subUpdater(3, 2)));
/**
* Source Info:
* Specialization: {@link AsNativeNode#asNative}
* Parameter: {@link InlinedIntValueProfile} inflateStrideProfile
* Inline method: {@link InlinedIntValueProfile#inline}
*/
private static final InlinedIntValueProfile INLINED_INFLATE_STRIDE_PROFILE_ = InlinedIntValueProfile.inline(InlineTarget.create(InlinedIntValueProfile.class, STATE_0_AsNativeNode_UPDATER.subUpdater(5, 2), IntField.create(MethodHandles.lookup(), "inflateStrideProfile__field1_")));
/**
* Source Info:
* Specialization: {@link AsNativeNode#asNative}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_AsNativeNode_UPDATER.subUpdater(7, 7)));
/**
* Source Info:
* Specialization: {@link AsNativeNode#asNative}
* Parameter: {@link GetPreciseCodeRangeNode} getPreciseCodeRangeNode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
*/
private static final GetPreciseCodeRangeNode INLINED_GET_PRECISE_CODE_RANGE_NODE_ = GetPreciseCodeRangeNodeGen.inline(InlineTarget.create(GetPreciseCodeRangeNode.class, STATE_1_AsNativeNode_UPDATER.subUpdater(0, 25)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0: SpecializationActive {@link AsNativeNode#asNative}
* 1-2: InlinedCache
* Specialization: {@link AsNativeNode#asNative}
* Parameter: {@link InlinedConditionProfile} isNativeProfile
* Inline method: {@link InlinedConditionProfile#inline}
* 3-4: InlinedCache
* Specialization: {@link AsNativeNode#asNative}
* Parameter: {@link InlinedConditionProfile} cacheHit
* Inline method: {@link InlinedConditionProfile#inline}
* 5-6: InlinedCache
* Specialization: {@link AsNativeNode#asNative}
* Parameter: {@link InlinedIntValueProfile} inflateStrideProfile
* Inline method: {@link InlinedIntValueProfile#inline}
* 7-13: InlinedCache
* Specialization: {@link AsNativeNode#asNative}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link AsNativeNode#asNative}
* Parameter: {@link GetPreciseCodeRangeNode} getPreciseCodeRangeNode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_1_;
/**
* Source Info:
* Specialization: {@link AsNativeNode#asNative}
* Parameter: {@link Node} interopLibrary
*/
@Child private Node interopLibrary_;
/**
* Source Info:
* Specialization: {@link AsNativeNode#asNative}
* Parameter: {@link InlinedIntValueProfile} inflateStrideProfile
* Inline method: {@link InlinedIntValueProfile#inline}
* Inline field: int field1
*/
@CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private int inflateStrideProfile__field1_;
private AsNativeNodeGen() {
}
@Override
public TruffleString execute(TruffleString arg0Value, NativeAllocator arg1Value, Encoding arg2Value, boolean arg3Value, boolean arg4Value) {
int state_0 = this.state_0_;
if ((state_0 & 0b1) != 0 /* is SpecializationActive[TruffleString.AsNativeNode.asNative(TruffleString, NativeAllocator, Encoding, boolean, boolean, Node, Node, InlinedConditionProfile, InlinedConditionProfile, InlinedIntValueProfile, ToIndexableNode, GetPreciseCodeRangeNode)] */) {
{
Node interopLibrary__ = this.interopLibrary_;
if (interopLibrary__ != null) {
Node node__ = (this);
return AsNativeNode.asNative(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, node__, interopLibrary__, INLINED_IS_NATIVE_PROFILE_, INLINED_CACHE_HIT_, INLINED_INFLATE_STRIDE_PROFILE_, INLINED_TO_INDEXABLE_NODE_, INLINED_GET_PRECISE_CODE_RANGE_NODE_);
}
}
}
CompilerDirectives.transferToInterpreterAndInvalidate();
return executeAndSpecialize(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value);
}
private TruffleString executeAndSpecialize(TruffleString arg0Value, NativeAllocator arg1Value, Encoding arg2Value, boolean arg3Value, boolean arg4Value) {
int state_0 = this.state_0_;
{
Node node__ = null;
node__ = (this);
Node interopLibrary__ = this.insert((TStringAccessor.createInteropLibrary()));
Objects.requireNonNull(interopLibrary__, "Specialization 'asNative(TruffleString, NativeAllocator, Encoding, boolean, boolean, Node, Node, InlinedConditionProfile, InlinedConditionProfile, InlinedIntValueProfile, ToIndexableNode, GetPreciseCodeRangeNode)' cache 'interopLibrary' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'.");
VarHandle.storeStoreFence();
this.interopLibrary_ = interopLibrary__;
state_0 = state_0 | 0b1 /* add SpecializationActive[TruffleString.AsNativeNode.asNative(TruffleString, NativeAllocator, Encoding, boolean, boolean, Node, Node, InlinedConditionProfile, InlinedConditionProfile, InlinedIntValueProfile, ToIndexableNode, GetPreciseCodeRangeNode)] */;
this.state_0_ = state_0;
return AsNativeNode.asNative(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, node__, interopLibrary__, INLINED_IS_NATIVE_PROFILE_, INLINED_CACHE_HIT_, INLINED_INFLATE_STRIDE_PROFILE_, INLINED_TO_INDEXABLE_NODE_, INLINED_GET_PRECISE_CODE_RANGE_NODE_);
}
}
@Override
public NodeCost getCost() {
int state_0 = this.state_0_;
if ((state_0 & 0b1) == 0) {
return NodeCost.UNINITIALIZED;
} else {
return NodeCost.MONOMORPHIC;
}
}
@NeverDefault
public static AsNativeNode create() {
return new AsNativeNodeGen();
}
@NeverDefault
public static AsNativeNode getUncached() {
return AsNativeNodeGen.UNCACHED;
}
@GeneratedBy(AsNativeNode.class)
@DenyReplace
private static final class Uncached extends AsNativeNode {
@TruffleBoundary
@Override
public TruffleString execute(TruffleString arg0Value, NativeAllocator arg1Value, Encoding arg2Value, boolean arg3Value, boolean arg4Value) {
return AsNativeNode.asNative(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value, (this), (TStringAccessor.getUncachedInteropLibrary()), (InlinedConditionProfile.getUncached()), (InlinedConditionProfile.getUncached()), (InlinedIntValueProfile.getUncached()), (ToIndexableNodeGen.getUncached()), (GetPreciseCodeRangeNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link SwitchEncodingNode#switchEncoding}
* Activation probability: 1.00000
* With/without class size: 68/46 bytes
*
*/
@GeneratedBy(SwitchEncodingNode.class)
@SuppressWarnings("javadoc")
static final class SwitchEncodingNodeGen extends SwitchEncodingNode {
private static final StateField STATE_0_SwitchEncodingNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField STATE_1_SwitchEncodingNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_1_");
private static final StateField STATE_2_SwitchEncodingNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_2_");
private static final StateField STATE_3_SwitchEncodingNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_3_");
private static final StateField STATE_4_SwitchEncodingNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_4_");
private static final StateField STATE_5_SwitchEncodingNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_5_");
private static final StateField STATE_6_SwitchEncodingNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_6_");
private static final StateField STATE_7_SwitchEncodingNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_7_");
private static final StateField STATE_8_SwitchEncodingNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_8_");
private static final StateField STATE_9_SwitchEncodingNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_9_");
private static final StateField STATE_10_SwitchEncodingNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_10_");
private static final StateField STATE_11_SwitchEncodingNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_11_");
/**
* Source Info:
* Specialization: {@link SwitchEncodingNode#switchEncoding}
* Parameter: {@link InternalSwitchEncodingNode} internalNode
* Inline method: {@link InternalSwitchEncodingNodeGen#inline}
*/
private static final InternalSwitchEncodingNode INLINED_INTERNAL_NODE_ = InternalSwitchEncodingNodeGen.inline(InlineTarget.create(InternalSwitchEncodingNode.class, STATE_0_SwitchEncodingNode_UPDATER.subUpdater(0, 31), STATE_1_SwitchEncodingNode_UPDATER.subUpdater(0, 31), STATE_2_SwitchEncodingNode_UPDATER.subUpdater(0, 31), STATE_3_SwitchEncodingNode_UPDATER.subUpdater(0, 29), STATE_4_SwitchEncodingNode_UPDATER.subUpdater(0, 32), STATE_5_SwitchEncodingNode_UPDATER.subUpdater(0, 26), STATE_6_SwitchEncodingNode_UPDATER.subUpdater(0, 25), STATE_7_SwitchEncodingNode_UPDATER.subUpdater(0, 25), STATE_8_SwitchEncodingNode_UPDATER.subUpdater(0, 25), STATE_9_SwitchEncodingNode_UPDATER.subUpdater(0, 24), STATE_10_SwitchEncodingNode_UPDATER.subUpdater(0, 32), STATE_11_SwitchEncodingNode_UPDATER.subUpdater(0, 25), ReferenceField.create(MethodHandles.lookup(), "internalNode__field12_", Node.class)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-30: InlinedCache
* Specialization: {@link SwitchEncodingNode#switchEncoding}
* Parameter: {@link InternalSwitchEncodingNode} internalNode
* Inline method: {@link InternalSwitchEncodingNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* State Info:
* 0-30: InlinedCache
* Specialization: {@link SwitchEncodingNode#switchEncoding}
* Parameter: {@link InternalSwitchEncodingNode} internalNode
* Inline method: {@link InternalSwitchEncodingNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_1_;
/**
* State Info:
* 0-30: InlinedCache
* Specialization: {@link SwitchEncodingNode#switchEncoding}
* Parameter: {@link InternalSwitchEncodingNode} internalNode
* Inline method: {@link InternalSwitchEncodingNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_2_;
/**
* State Info:
* 0-28: InlinedCache
* Specialization: {@link SwitchEncodingNode#switchEncoding}
* Parameter: {@link InternalSwitchEncodingNode} internalNode
* Inline method: {@link InternalSwitchEncodingNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_3_;
/**
* State Info:
* 0-31: InlinedCache
* Specialization: {@link SwitchEncodingNode#switchEncoding}
* Parameter: {@link InternalSwitchEncodingNode} internalNode
* Inline method: {@link InternalSwitchEncodingNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_4_;
/**
* State Info:
* 0-25: InlinedCache
* Specialization: {@link SwitchEncodingNode#switchEncoding}
* Parameter: {@link InternalSwitchEncodingNode} internalNode
* Inline method: {@link InternalSwitchEncodingNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_5_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link SwitchEncodingNode#switchEncoding}
* Parameter: {@link InternalSwitchEncodingNode} internalNode
* Inline method: {@link InternalSwitchEncodingNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_6_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link SwitchEncodingNode#switchEncoding}
* Parameter: {@link InternalSwitchEncodingNode} internalNode
* Inline method: {@link InternalSwitchEncodingNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_7_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link SwitchEncodingNode#switchEncoding}
* Parameter: {@link InternalSwitchEncodingNode} internalNode
* Inline method: {@link InternalSwitchEncodingNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_8_;
/**
* State Info:
* 0-23: InlinedCache
* Specialization: {@link SwitchEncodingNode#switchEncoding}
* Parameter: {@link InternalSwitchEncodingNode} internalNode
* Inline method: {@link InternalSwitchEncodingNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_9_;
/**
* State Info:
* 0-31: InlinedCache
* Specialization: {@link SwitchEncodingNode#switchEncoding}
* Parameter: {@link InternalSwitchEncodingNode} internalNode
* Inline method: {@link InternalSwitchEncodingNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_10_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link SwitchEncodingNode#switchEncoding}
* Parameter: {@link InternalSwitchEncodingNode} internalNode
* Inline method: {@link InternalSwitchEncodingNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_11_;
/**
* Source Info:
* Specialization: {@link SwitchEncodingNode#switchEncoding}
* Parameter: {@link InternalSwitchEncodingNode} internalNode
* Inline method: {@link InternalSwitchEncodingNodeGen#inline}
* Inline field: {@link Node} field12
*/
@Child @UnsafeAccessedField @SuppressWarnings("unused") private Node internalNode__field12_;
private SwitchEncodingNodeGen() {
}
@Override
public TruffleString execute(AbstractTruffleString arg0Value, Encoding arg1Value, TranscodingErrorHandler arg2Value) {
return switchEncoding(arg0Value, arg1Value, arg2Value, INLINED_INTERNAL_NODE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static SwitchEncodingNode create() {
return new SwitchEncodingNodeGen();
}
@NeverDefault
public static SwitchEncodingNode getUncached() {
return SwitchEncodingNodeGen.UNCACHED;
}
@GeneratedBy(SwitchEncodingNode.class)
@DenyReplace
private static final class Uncached extends SwitchEncodingNode {
@TruffleBoundary
@Override
public TruffleString execute(AbstractTruffleString arg0Value, Encoding arg1Value, TranscodingErrorHandler arg2Value) {
return switchEncoding(arg0Value, arg1Value, arg2Value, (InternalSwitchEncodingNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link InternalSwitchEncodingNode#compatibleImmutable}
* Activation probability: 0.38500
* With/without class size: 8/0 bytes
* Specialization {@link InternalSwitchEncodingNode#compatibleMutable}
* Activation probability: 0.29500
* With/without class size: 11/8 bytes
* Specialization {@link InternalSwitchEncodingNode#transCode}
* Activation probability: 0.20500
* With/without class size: 8/2 bytes
* Specialization {@link InternalSwitchEncodingNode#transCodeMutable}
* Activation probability: 0.11500
* With/without class size: 6/4 bytes
*
*/
@GeneratedBy(InternalSwitchEncodingNode.class)
@SuppressWarnings("javadoc")
static final class InternalSwitchEncodingNodeGen {
private static final Uncached UNCACHED = new Uncached();
@NeverDefault
public static InternalSwitchEncodingNode getUncached() {
return InternalSwitchEncodingNodeGen.UNCACHED;
}
/**
* Required Fields:
* - {@link Inlined#state_0_}
*
- {@link Inlined#state_1_}
*
- {@link Inlined#state_2_}
*
- {@link Inlined#state_3_}
*
- {@link Inlined#state_4_}
*
- {@link Inlined#state_5_}
*
- {@link Inlined#state_6_}
*
- {@link Inlined#state_7_}
*
- {@link Inlined#state_8_}
*
- {@link Inlined#state_9_}
*
- {@link Inlined#state_10_}
*
- {@link Inlined#state_11_}
*
- {@link Inlined#transCodeNode_field8_}
*
*/
@NeverDefault
public static InternalSwitchEncodingNode inline(@RequiredField(bits = 31, value = StateField.class)@RequiredField(bits = 31, value = StateField.class)@RequiredField(bits = 31, value = StateField.class)@RequiredField(bits = 29, value = StateField.class)@RequiredField(bits = 32, value = StateField.class)@RequiredField(bits = 26, value = StateField.class)@RequiredField(bits = 25, value = StateField.class)@RequiredField(bits = 25, value = StateField.class)@RequiredField(bits = 25, value = StateField.class)@RequiredField(bits = 24, value = StateField.class)@RequiredField(bits = 32, value = StateField.class)@RequiredField(bits = 25, value = StateField.class)@RequiredField(type = Node.class, value = ReferenceField.class) InlineTarget target) {
return new InternalSwitchEncodingNodeGen.Inlined(target);
}
@GeneratedBy(InternalSwitchEncodingNode.class)
@DenyReplace
private static final class Inlined extends InternalSwitchEncodingNode {
/**
* State Info:
* 0: SpecializationActive {@link InternalSwitchEncodingNode#compatibleImmutable}
* 1: SpecializationActive {@link InternalSwitchEncodingNode#compatibleMutable}
* 2: SpecializationActive {@link InternalSwitchEncodingNode#transCode}
* 3: SpecializationActive {@link InternalSwitchEncodingNode#transCodeMutable}
* 4-28: InlinedCache
* Specialization: {@link InternalSwitchEncodingNode#transCodeMutable}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthNode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
* 29-30: InlinedCache
* Specialization: {@link InternalSwitchEncodingNode#transCode}
* Parameter: {@link InlinedConditionProfile} preciseCodeRangeIsCompatibleProfile
* Inline method: {@link InlinedConditionProfile#inline}
*
*/
private final StateField state_0_;
/**
* State Info:
* 0-30: InlinedCache
* Specialization: {@link InternalSwitchEncodingNode#compatibleMutable}
* Parameter: {@link InternalAsTruffleStringNode} asTruffleStringNode
* Inline method: {@link InternalAsTruffleStringNodeGen#inline}
*
*/
private final StateField state_1_;
/**
* State Info:
* 0-30: InlinedCache
* Specialization: {@link InternalSwitchEncodingNode#compatibleMutable}
* Parameter: {@link InternalAsTruffleStringNode} asTruffleStringNode
* Inline method: {@link InternalAsTruffleStringNodeGen#inline}
*
*/
private final StateField state_2_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link InternalSwitchEncodingNode#transCode}
* Parameter: {@link GetPreciseCodeRangeNode} getPreciseCodeRangeNode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
* 25-26: InlinedCache
* Specialization: {@link InternalSwitchEncodingNode#transCode}
* Parameter: {@link InlinedConditionProfile} cacheHit
* Inline method: {@link InlinedConditionProfile#inline}
* 27-28: InlinedCache
* Specialization: {@link InternalSwitchEncodingNode#transCodeMutable}
* Parameter: {@link InlinedConditionProfile} isCompatibleProfile
* Inline method: {@link InlinedConditionProfile#inline}
*
*/
private final StateField state_3_;
/**
* State Info:
* 0-6: InlinedCache
* Specialization: {@link InternalSwitchEncodingNode#transCode}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
* 7-31: InlinedCache
* Specialization: {@link InternalSwitchEncodingNode#transCode}
* Parameter: {@link TransCodeNode} transCodeNode
* Inline method: {@link TransCodeNodeGen#inline}
*
*/
private final StateField state_4_;
/**
* State Info:
* 0-25: InlinedCache
* Specialization: {@link InternalSwitchEncodingNode#transCode}
* Parameter: {@link TransCodeNode} transCodeNode
* Inline method: {@link TransCodeNodeGen#inline}
*
*/
private final StateField state_5_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link InternalSwitchEncodingNode#transCode}
* Parameter: {@link TransCodeNode} transCodeNode
* Inline method: {@link TransCodeNodeGen#inline}
*
*/
private final StateField state_6_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link InternalSwitchEncodingNode#transCode}
* Parameter: {@link TransCodeNode} transCodeNode
* Inline method: {@link TransCodeNodeGen#inline}
*
*/
private final StateField state_7_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link InternalSwitchEncodingNode#transCode}
* Parameter: {@link TransCodeNode} transCodeNode
* Inline method: {@link TransCodeNodeGen#inline}
*
*/
private final StateField state_8_;
/**
* State Info:
* 0-23: InlinedCache
* Specialization: {@link InternalSwitchEncodingNode#transCode}
* Parameter: {@link TransCodeNode} transCodeNode
* Inline method: {@link TransCodeNodeGen#inline}
*
*/
private final StateField state_9_;
/**
* State Info:
* 0-31: InlinedCache
* Specialization: {@link InternalSwitchEncodingNode#transCode}
* Parameter: {@link TransCodeNode} transCodeNode
* Inline method: {@link TransCodeNodeGen#inline}
*
*/
private final StateField state_10_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link InternalSwitchEncodingNode#transCode}
* Parameter: {@link TransCodeNode} transCodeNode
* Inline method: {@link TransCodeNodeGen#inline}
*
*/
private final StateField state_11_;
private final ReferenceField transCodeNode_field8_;
/**
* Source Info:
* Specialization: {@link InternalSwitchEncodingNode#transCode}
* Parameter: {@link GetPreciseCodeRangeNode} getPreciseCodeRangeNode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
*/
private final GetPreciseCodeRangeNode getPreciseCodeRangeNode;
/**
* Source Info:
* Specialization: {@link InternalSwitchEncodingNode#transCode}
* Parameter: {@link TransCodeNode} transCodeNode
* Inline method: {@link TransCodeNodeGen#inline}
*/
private final TransCodeNode transCodeNode;
/**
* Source Info:
* Specialization: {@link InternalSwitchEncodingNode#compatibleMutable}
* Parameter: {@link InternalAsTruffleStringNode} asTruffleStringNode
* Inline method: {@link InternalAsTruffleStringNodeGen#inline}
*/
private final InternalAsTruffleStringNode compatibleMutable_asTruffleStringNode_;
/**
* Source Info:
* Specialization: {@link InternalSwitchEncodingNode#transCode}
* Parameter: {@link InlinedConditionProfile} preciseCodeRangeIsCompatibleProfile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private final InlinedConditionProfile transCode_preciseCodeRangeIsCompatibleProfile_;
/**
* Source Info:
* Specialization: {@link InternalSwitchEncodingNode#transCode}
* Parameter: {@link InlinedConditionProfile} cacheHit
* Inline method: {@link InlinedConditionProfile#inline}
*/
private final InlinedConditionProfile transCode_cacheHit_;
/**
* Source Info:
* Specialization: {@link InternalSwitchEncodingNode#transCode}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private final ToIndexableNode transCode_toIndexableNode_;
/**
* Source Info:
* Specialization: {@link InternalSwitchEncodingNode#transCodeMutable}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthNode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
*/
private final GetCodePointLengthNode transCodeMutable_getCodePointLengthNode_;
/**
* Source Info:
* Specialization: {@link InternalSwitchEncodingNode#transCodeMutable}
* Parameter: {@link InlinedConditionProfile} isCompatibleProfile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private final InlinedConditionProfile transCodeMutable_isCompatibleProfile_;
@SuppressWarnings("unchecked")
private Inlined(InlineTarget target) {
assert target.getTargetClass().isAssignableFrom(InternalSwitchEncodingNode.class);
this.state_0_ = target.getState(0, 31);
this.state_1_ = target.getState(1, 31);
this.state_2_ = target.getState(2, 31);
this.state_3_ = target.getState(3, 29);
this.state_4_ = target.getState(4, 32);
this.state_5_ = target.getState(5, 26);
this.state_6_ = target.getState(6, 25);
this.state_7_ = target.getState(7, 25);
this.state_8_ = target.getState(8, 25);
this.state_9_ = target.getState(9, 24);
this.state_10_ = target.getState(10, 32);
this.state_11_ = target.getState(11, 25);
this.transCodeNode_field8_ = target.getReference(12, Node.class);
this.getPreciseCodeRangeNode = GetPreciseCodeRangeNodeGen.inline(InlineTarget.create(GetPreciseCodeRangeNode.class, state_3_.subUpdater(0, 25)));
this.transCodeNode = TransCodeNodeGen.inline(InlineTarget.create(TransCodeNode.class, state_4_.subUpdater(7, 25), state_5_.subUpdater(0, 26), state_6_.subUpdater(0, 25), state_7_.subUpdater(0, 25), state_8_.subUpdater(0, 25), state_9_.subUpdater(0, 24), state_10_.subUpdater(0, 32), state_11_.subUpdater(0, 25), transCodeNode_field8_));
this.compatibleMutable_asTruffleStringNode_ = InternalAsTruffleStringNodeGen.inline(InlineTarget.create(InternalAsTruffleStringNode.class, state_1_.subUpdater(0, 31), state_2_.subUpdater(0, 31)));
this.transCode_preciseCodeRangeIsCompatibleProfile_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, state_0_.subUpdater(29, 2)));
this.transCode_cacheHit_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, state_3_.subUpdater(25, 2)));
this.transCode_toIndexableNode_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, state_4_.subUpdater(0, 7)));
this.transCodeMutable_getCodePointLengthNode_ = GetCodePointLengthNodeGen.inline(InlineTarget.create(GetCodePointLengthNode.class, state_0_.subUpdater(4, 25)));
this.transCodeMutable_isCompatibleProfile_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, state_3_.subUpdater(27, 2)));
}
@Override
public TruffleString execute(Node arg0Value, AbstractTruffleString arg1Value, Encoding arg2Value, TranscodingErrorHandler arg3Value) {
int state_0 = this.state_0_.get(arg0Value);
if ((state_0 & 0b1111) != 0 /* is SpecializationActive[TruffleString.InternalSwitchEncodingNode.compatibleImmutable(TruffleString, Encoding, TranscodingErrorHandler)] || SpecializationActive[TruffleString.InternalSwitchEncodingNode.compatibleMutable(Node, MutableTruffleString, Encoding, TranscodingErrorHandler, InternalAsTruffleStringNode)] || SpecializationActive[TruffleString.InternalSwitchEncodingNode.transCode(Node, TruffleString, Encoding, TranscodingErrorHandler, GetPreciseCodeRangeNode, InlinedConditionProfile, InlinedConditionProfile, ToIndexableNode, TransCodeNode)] || SpecializationActive[TruffleString.InternalSwitchEncodingNode.transCodeMutable(Node, MutableTruffleString, Encoding, TranscodingErrorHandler, GetCodePointLengthNode, GetPreciseCodeRangeNode, TransCodeNode, InlinedConditionProfile)] */) {
if ((state_0 & 0b1) != 0 /* is SpecializationActive[TruffleString.InternalSwitchEncodingNode.compatibleImmutable(TruffleString, Encoding, TranscodingErrorHandler)] */ && arg1Value instanceof TruffleString) {
TruffleString arg1Value_ = (TruffleString) arg1Value;
if ((arg1Value_.isCompatibleToIntl(arg2Value))) {
return InternalSwitchEncodingNode.compatibleImmutable(arg1Value_, arg2Value, arg3Value);
}
}
if ((state_0 & 0b10) != 0 /* is SpecializationActive[TruffleString.InternalSwitchEncodingNode.compatibleMutable(Node, MutableTruffleString, Encoding, TranscodingErrorHandler, InternalAsTruffleStringNode)] */ && arg1Value instanceof MutableTruffleString) {
MutableTruffleString arg1Value_ = (MutableTruffleString) arg1Value;
if ((arg1Value_.isCompatibleToIntl(arg2Value))) {
assert InlineSupport.validate(arg0Value, this.state_1_, this.state_2_);
return InternalSwitchEncodingNode.compatibleMutable(arg0Value, arg1Value_, arg2Value, arg3Value, this.compatibleMutable_asTruffleStringNode_);
}
}
if ((state_0 & 0b100) != 0 /* is SpecializationActive[TruffleString.InternalSwitchEncodingNode.transCode(Node, TruffleString, Encoding, TranscodingErrorHandler, GetPreciseCodeRangeNode, InlinedConditionProfile, InlinedConditionProfile, ToIndexableNode, TransCodeNode)] */ && arg1Value instanceof TruffleString) {
TruffleString arg1Value_ = (TruffleString) arg1Value;
if ((!(arg1Value_.isCompatibleToIntl(arg2Value)))) {
assert InlineSupport.validate(arg0Value, this.state_0_, this.state_3_, this.state_4_);
return InternalSwitchEncodingNode.transCode(arg0Value, arg1Value_, arg2Value, arg3Value, this.getPreciseCodeRangeNode, this.transCode_preciseCodeRangeIsCompatibleProfile_, this.transCode_cacheHit_, this.transCode_toIndexableNode_, this.transCodeNode);
}
}
if ((state_0 & 0b1000) != 0 /* is SpecializationActive[TruffleString.InternalSwitchEncodingNode.transCodeMutable(Node, MutableTruffleString, Encoding, TranscodingErrorHandler, GetCodePointLengthNode, GetPreciseCodeRangeNode, TransCodeNode, InlinedConditionProfile)] */ && arg1Value instanceof MutableTruffleString) {
MutableTruffleString arg1Value_ = (MutableTruffleString) arg1Value;
if ((!(arg1Value_.isCompatibleToIntl(arg2Value)))) {
assert InlineSupport.validate(arg0Value, this.state_0_, this.state_3_);
return InternalSwitchEncodingNode.transCodeMutable(arg0Value, arg1Value_, arg2Value, arg3Value, this.transCodeMutable_getCodePointLengthNode_, this.getPreciseCodeRangeNode, this.transCodeNode, this.transCodeMutable_isCompatibleProfile_);
}
}
}
CompilerDirectives.transferToInterpreterAndInvalidate();
return executeAndSpecialize(arg0Value, arg1Value, arg2Value, arg3Value);
}
private TruffleString executeAndSpecialize(Node arg0Value, AbstractTruffleString arg1Value, Encoding arg2Value, TranscodingErrorHandler arg3Value) {
int state_0 = this.state_0_.get(arg0Value);
if (arg1Value instanceof TruffleString) {
TruffleString arg1Value_ = (TruffleString) arg1Value;
if ((arg1Value_.isCompatibleToIntl(arg2Value))) {
state_0 = state_0 | 0b1 /* add SpecializationActive[TruffleString.InternalSwitchEncodingNode.compatibleImmutable(TruffleString, Encoding, TranscodingErrorHandler)] */;
this.state_0_.set(arg0Value, state_0);
return InternalSwitchEncodingNode.compatibleImmutable(arg1Value_, arg2Value, arg3Value);
}
}
if (arg1Value instanceof MutableTruffleString) {
MutableTruffleString arg1Value_ = (MutableTruffleString) arg1Value;
if ((arg1Value_.isCompatibleToIntl(arg2Value))) {
state_0 = state_0 | 0b10 /* add SpecializationActive[TruffleString.InternalSwitchEncodingNode.compatibleMutable(Node, MutableTruffleString, Encoding, TranscodingErrorHandler, InternalAsTruffleStringNode)] */;
this.state_0_.set(arg0Value, state_0);
assert InlineSupport.validate(arg0Value, this.state_1_, this.state_2_);
return InternalSwitchEncodingNode.compatibleMutable(arg0Value, arg1Value_, arg2Value, arg3Value, this.compatibleMutable_asTruffleStringNode_);
}
}
if (arg1Value instanceof TruffleString) {
TruffleString arg1Value_ = (TruffleString) arg1Value;
if ((!(arg1Value_.isCompatibleToIntl(arg2Value)))) {
state_0 = state_0 | 0b100 /* add SpecializationActive[TruffleString.InternalSwitchEncodingNode.transCode(Node, TruffleString, Encoding, TranscodingErrorHandler, GetPreciseCodeRangeNode, InlinedConditionProfile, InlinedConditionProfile, ToIndexableNode, TransCodeNode)] */;
this.state_0_.set(arg0Value, state_0);
assert InlineSupport.validate(arg0Value, this.state_0_, this.state_3_, this.state_4_);
return InternalSwitchEncodingNode.transCode(arg0Value, arg1Value_, arg2Value, arg3Value, this.getPreciseCodeRangeNode, this.transCode_preciseCodeRangeIsCompatibleProfile_, this.transCode_cacheHit_, this.transCode_toIndexableNode_, this.transCodeNode);
}
}
if (arg1Value instanceof MutableTruffleString) {
MutableTruffleString arg1Value_ = (MutableTruffleString) arg1Value;
if ((!(arg1Value_.isCompatibleToIntl(arg2Value)))) {
state_0 = state_0 | 0b1000 /* add SpecializationActive[TruffleString.InternalSwitchEncodingNode.transCodeMutable(Node, MutableTruffleString, Encoding, TranscodingErrorHandler, GetCodePointLengthNode, GetPreciseCodeRangeNode, TransCodeNode, InlinedConditionProfile)] */;
this.state_0_.set(arg0Value, state_0);
assert InlineSupport.validate(arg0Value, this.state_0_, this.state_3_);
return InternalSwitchEncodingNode.transCodeMutable(arg0Value, arg1Value_, arg2Value, arg3Value, this.transCodeMutable_getCodePointLengthNode_, this.getPreciseCodeRangeNode, this.transCodeNode, this.transCodeMutable_isCompatibleProfile_);
}
}
throw new UnsupportedSpecializationException(this, new Node[] {null, null, null, null}, arg0Value, arg1Value, arg2Value, arg3Value);
}
@Override
public boolean isAdoptable() {
return false;
}
}
@GeneratedBy(InternalSwitchEncodingNode.class)
@DenyReplace
private static final class Uncached extends InternalSwitchEncodingNode {
@TruffleBoundary
@Override
public TruffleString execute(Node arg0Value, AbstractTruffleString arg1Value, Encoding arg2Value, TranscodingErrorHandler arg3Value) {
if (arg1Value instanceof TruffleString) {
TruffleString arg1Value_ = (TruffleString) arg1Value;
if ((arg1Value_.isCompatibleToIntl(arg2Value))) {
return InternalSwitchEncodingNode.compatibleImmutable(arg1Value_, arg2Value, arg3Value);
}
}
if (arg1Value instanceof MutableTruffleString) {
MutableTruffleString arg1Value_ = (MutableTruffleString) arg1Value;
if ((arg1Value_.isCompatibleToIntl(arg2Value))) {
return InternalSwitchEncodingNode.compatibleMutable(arg0Value, arg1Value_, arg2Value, arg3Value, (InternalAsTruffleStringNodeGen.getUncached()));
}
}
if (arg1Value instanceof TruffleString) {
TruffleString arg1Value_ = (TruffleString) arg1Value;
if ((!(arg1Value_.isCompatibleToIntl(arg2Value)))) {
return InternalSwitchEncodingNode.transCode(arg0Value, arg1Value_, arg2Value, arg3Value, (GetPreciseCodeRangeNodeGen.getUncached()), (InlinedConditionProfile.getUncached()), (InlinedConditionProfile.getUncached()), (ToIndexableNodeGen.getUncached()), (TransCodeNodeGen.getUncached()));
}
}
if (arg1Value instanceof MutableTruffleString) {
MutableTruffleString arg1Value_ = (MutableTruffleString) arg1Value;
if ((!(arg1Value_.isCompatibleToIntl(arg2Value)))) {
return InternalSwitchEncodingNode.transCodeMutable(arg0Value, arg1Value_, arg2Value, arg3Value, (GetCodePointLengthNode.getUncached()), (GetPreciseCodeRangeNodeGen.getUncached()), (TransCodeNodeGen.getUncached()), (InlinedConditionProfile.getUncached()));
}
}
throw new UnsupportedSpecializationException(this, new Node[] {null, null, null, null}, arg0Value, arg1Value, arg2Value, arg3Value);
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link ForceEncodingNode#compatibleImmutable}
* Activation probability: 0.48333
* With/without class size: 9/0 bytes
* Specialization {@link ForceEncodingNode#compatibleMutable}
* Activation probability: 0.33333
* With/without class size: 12/8 bytes
* Specialization {@link ForceEncodingNode#reinterpret}
* Activation probability: 0.18333
* With/without class size: 8/6 bytes
*
*/
@GeneratedBy(ForceEncodingNode.class)
@SuppressWarnings("javadoc")
static final class ForceEncodingNodeGen extends ForceEncodingNode {
private static final StateField STATE_1_ForceEncodingNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_1_");
private static final StateField STATE_2_ForceEncodingNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_2_");
private static final StateField STATE_0_ForceEncodingNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField STATE_3_ForceEncodingNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_3_");
/**
* Source Info:
* Specialization: {@link ForceEncodingNode#compatibleMutable}
* Parameter: {@link InternalAsTruffleStringNode} asTruffleStringNode
* Inline method: {@link InternalAsTruffleStringNodeGen#inline}
*/
private static final InternalAsTruffleStringNode INLINED_COMPATIBLE_MUTABLE_AS_TRUFFLE_STRING_NODE_ = InternalAsTruffleStringNodeGen.inline(InlineTarget.create(InternalAsTruffleStringNode.class, STATE_1_ForceEncodingNode_UPDATER.subUpdater(0, 31), STATE_2_ForceEncodingNode_UPDATER.subUpdater(0, 31)));
/**
* Source Info:
* Specialization: {@link ForceEncodingNode#reinterpret}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_REINTERPRET_TO_INDEXABLE_NODE_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_ForceEncodingNode_UPDATER.subUpdater(23, 7)));
/**
* Source Info:
* Specialization: {@link ForceEncodingNode#reinterpret}
* Parameter: {@link InlinedConditionProfile} inflateProfile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_REINTERPRET_INFLATE_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_ForceEncodingNode_UPDATER.subUpdater(30, 2)));
/**
* Source Info:
* Specialization: {@link ForceEncodingNode#reinterpret}
* Parameter: {@link InternalCopyToByteArrayNode} copyToByteArrayNode
* Inline method: {@link InternalCopyToByteArrayNodeGen#inline}
*/
private static final InternalCopyToByteArrayNode INLINED_REINTERPRET_COPY_TO_BYTE_ARRAY_NODE_ = InternalCopyToByteArrayNodeGen.inline(InlineTarget.create(InternalCopyToByteArrayNode.class, STATE_3_ForceEncodingNode_UPDATER.subUpdater(0, 17)));
/**
* Source Info:
* Specialization: {@link ForceEncodingNode#reinterpret}
* Parameter: {@link FromBufferWithStringCompactionNode} fromBufferWithStringCompactionNode
* Inline method: {@link FromBufferWithStringCompactionNodeGen#inline}
*/
private static final FromBufferWithStringCompactionNode INLINED_REINTERPRET_FROM_BUFFER_WITH_STRING_COMPACTION_NODE_ = FromBufferWithStringCompactionNodeGen.inline(InlineTarget.create(FromBufferWithStringCompactionNode.class, STATE_0_ForceEncodingNode_UPDATER.subUpdater(3, 20)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0: SpecializationActive {@link ForceEncodingNode#compatibleImmutable}
* 1: SpecializationActive {@link ForceEncodingNode#compatibleMutable}
* 2: SpecializationActive {@link ForceEncodingNode#reinterpret}
* 3-22: InlinedCache
* Specialization: {@link ForceEncodingNode#reinterpret}
* Parameter: {@link FromBufferWithStringCompactionNode} fromBufferWithStringCompactionNode
* Inline method: {@link FromBufferWithStringCompactionNodeGen#inline}
* 23-29: InlinedCache
* Specialization: {@link ForceEncodingNode#reinterpret}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
* 30-31: InlinedCache
* Specialization: {@link ForceEncodingNode#reinterpret}
* Parameter: {@link InlinedConditionProfile} inflateProfile
* Inline method: {@link InlinedConditionProfile#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* State Info:
* 0-30: InlinedCache
* Specialization: {@link ForceEncodingNode#compatibleMutable}
* Parameter: {@link InternalAsTruffleStringNode} asTruffleStringNode
* Inline method: {@link InternalAsTruffleStringNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_1_;
/**
* State Info:
* 0-30: InlinedCache
* Specialization: {@link ForceEncodingNode#compatibleMutable}
* Parameter: {@link InternalAsTruffleStringNode} asTruffleStringNode
* Inline method: {@link InternalAsTruffleStringNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_2_;
/**
* State Info:
* 0-16: InlinedCache
* Specialization: {@link ForceEncodingNode#reinterpret}
* Parameter: {@link InternalCopyToByteArrayNode} copyToByteArrayNode
* Inline method: {@link InternalCopyToByteArrayNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_3_;
private ForceEncodingNodeGen() {
}
@Override
public TruffleString execute(AbstractTruffleString arg0Value, Encoding arg1Value, Encoding arg2Value) {
int state_0 = this.state_0_;
if ((state_0 & 0b111) != 0 /* is SpecializationActive[TruffleString.ForceEncodingNode.compatibleImmutable(TruffleString, Encoding, Encoding)] || SpecializationActive[TruffleString.ForceEncodingNode.compatibleMutable(MutableTruffleString, Encoding, Encoding, InternalAsTruffleStringNode)] || SpecializationActive[TruffleString.ForceEncodingNode.reinterpret(AbstractTruffleString, Encoding, Encoding, ToIndexableNode, InlinedConditionProfile, InternalCopyToByteArrayNode, FromBufferWithStringCompactionNode)] */) {
if ((state_0 & 0b1) != 0 /* is SpecializationActive[TruffleString.ForceEncodingNode.compatibleImmutable(TruffleString, Encoding, Encoding)] */ && arg0Value instanceof TruffleString) {
TruffleString arg0Value_ = (TruffleString) arg0Value;
if ((ForceEncodingNode.isCompatibleAndNotCompacted(arg0Value_, arg1Value, arg2Value))) {
return ForceEncodingNode.compatibleImmutable(arg0Value_, arg1Value, arg2Value);
}
}
if ((state_0 & 0b10) != 0 /* is SpecializationActive[TruffleString.ForceEncodingNode.compatibleMutable(MutableTruffleString, Encoding, Encoding, InternalAsTruffleStringNode)] */ && arg0Value instanceof MutableTruffleString) {
MutableTruffleString arg0Value_ = (MutableTruffleString) arg0Value;
if ((ForceEncodingNode.isCompatibleAndNotCompacted(arg0Value_, arg1Value, arg2Value))) {
return compatibleMutable(arg0Value_, arg1Value, arg2Value, INLINED_COMPATIBLE_MUTABLE_AS_TRUFFLE_STRING_NODE_);
}
}
if ((state_0 & 0b100) != 0 /* is SpecializationActive[TruffleString.ForceEncodingNode.reinterpret(AbstractTruffleString, Encoding, Encoding, ToIndexableNode, InlinedConditionProfile, InternalCopyToByteArrayNode, FromBufferWithStringCompactionNode)] */) {
if ((!(ForceEncodingNode.isCompatibleAndNotCompacted(arg0Value, arg1Value, arg2Value)))) {
return reinterpret(arg0Value, arg1Value, arg2Value, INLINED_REINTERPRET_TO_INDEXABLE_NODE_, INLINED_REINTERPRET_INFLATE_PROFILE_, INLINED_REINTERPRET_COPY_TO_BYTE_ARRAY_NODE_, INLINED_REINTERPRET_FROM_BUFFER_WITH_STRING_COMPACTION_NODE_);
}
}
}
CompilerDirectives.transferToInterpreterAndInvalidate();
return executeAndSpecialize(arg0Value, arg1Value, arg2Value);
}
private TruffleString executeAndSpecialize(AbstractTruffleString arg0Value, Encoding arg1Value, Encoding arg2Value) {
int state_0 = this.state_0_;
if (arg0Value instanceof TruffleString) {
TruffleString arg0Value_ = (TruffleString) arg0Value;
if ((ForceEncodingNode.isCompatibleAndNotCompacted(arg0Value_, arg1Value, arg2Value))) {
state_0 = state_0 | 0b1 /* add SpecializationActive[TruffleString.ForceEncodingNode.compatibleImmutable(TruffleString, Encoding, Encoding)] */;
this.state_0_ = state_0;
return ForceEncodingNode.compatibleImmutable(arg0Value_, arg1Value, arg2Value);
}
}
if (arg0Value instanceof MutableTruffleString) {
MutableTruffleString arg0Value_ = (MutableTruffleString) arg0Value;
if ((ForceEncodingNode.isCompatibleAndNotCompacted(arg0Value_, arg1Value, arg2Value))) {
state_0 = state_0 | 0b10 /* add SpecializationActive[TruffleString.ForceEncodingNode.compatibleMutable(MutableTruffleString, Encoding, Encoding, InternalAsTruffleStringNode)] */;
this.state_0_ = state_0;
return compatibleMutable(arg0Value_, arg1Value, arg2Value, INLINED_COMPATIBLE_MUTABLE_AS_TRUFFLE_STRING_NODE_);
}
}
if ((!(ForceEncodingNode.isCompatibleAndNotCompacted(arg0Value, arg1Value, arg2Value)))) {
state_0 = state_0 | 0b100 /* add SpecializationActive[TruffleString.ForceEncodingNode.reinterpret(AbstractTruffleString, Encoding, Encoding, ToIndexableNode, InlinedConditionProfile, InternalCopyToByteArrayNode, FromBufferWithStringCompactionNode)] */;
this.state_0_ = state_0;
return reinterpret(arg0Value, arg1Value, arg2Value, INLINED_REINTERPRET_TO_INDEXABLE_NODE_, INLINED_REINTERPRET_INFLATE_PROFILE_, INLINED_REINTERPRET_COPY_TO_BYTE_ARRAY_NODE_, INLINED_REINTERPRET_FROM_BUFFER_WITH_STRING_COMPACTION_NODE_);
}
throw new UnsupportedSpecializationException(this, new Node[] {null, null, null}, arg0Value, arg1Value, arg2Value);
}
@Override
public NodeCost getCost() {
int state_0 = this.state_0_;
if ((state_0 & 0b111) == 0) {
return NodeCost.UNINITIALIZED;
} else {
int counter = 0;
counter += Integer.bitCount((state_0 & 0b111));
if (counter == 1) {
return NodeCost.MONOMORPHIC;
}
}
return NodeCost.POLYMORPHIC;
}
@NeverDefault
public static ForceEncodingNode create() {
return new ForceEncodingNodeGen();
}
@NeverDefault
public static ForceEncodingNode getUncached() {
return ForceEncodingNodeGen.UNCACHED;
}
@GeneratedBy(ForceEncodingNode.class)
@DenyReplace
private static final class Uncached extends ForceEncodingNode {
@TruffleBoundary
@Override
public TruffleString execute(AbstractTruffleString arg0Value, Encoding arg1Value, Encoding arg2Value) {
if (arg0Value instanceof TruffleString) {
TruffleString arg0Value_ = (TruffleString) arg0Value;
if ((ForceEncodingNode.isCompatibleAndNotCompacted(arg0Value_, arg1Value, arg2Value))) {
return ForceEncodingNode.compatibleImmutable(arg0Value_, arg1Value, arg2Value);
}
}
if (arg0Value instanceof MutableTruffleString) {
MutableTruffleString arg0Value_ = (MutableTruffleString) arg0Value;
if ((ForceEncodingNode.isCompatibleAndNotCompacted(arg0Value_, arg1Value, arg2Value))) {
return compatibleMutable(arg0Value_, arg1Value, arg2Value, (InternalAsTruffleStringNodeGen.getUncached()));
}
}
if ((!(ForceEncodingNode.isCompatibleAndNotCompacted(arg0Value, arg1Value, arg2Value)))) {
return reinterpret(arg0Value, arg1Value, arg2Value, (ToIndexableNodeGen.getUncached()), (InlinedConditionProfile.getUncached()), (InternalCopyToByteArrayNodeGen.getUncached()), (FromBufferWithStringCompactionNodeGen.getUncached()));
}
throw new UnsupportedSpecializationException(this, new Node[] {null, null, null}, arg0Value, arg1Value, arg2Value);
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link CreateCodePointIteratorNode#createIterator}
* Activation probability: 1.00000
* With/without class size: 24/4 bytes
*
*/
@GeneratedBy(CreateCodePointIteratorNode.class)
@SuppressWarnings("javadoc")
static final class CreateCodePointIteratorNodeGen extends CreateCodePointIteratorNode {
private static final StateField STATE_0_CreateCodePointIteratorNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link CreateCodePointIteratorNode#createIterator}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_CreateCodePointIteratorNode_UPDATER.subUpdater(0, 7)));
/**
* Source Info:
* Specialization: {@link CreateCodePointIteratorNode#createIterator}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeANode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*/
private static final GetCodeRangeForIndexCalculationNode INLINED_GET_CODE_RANGE_A_NODE_ = GetCodeRangeForIndexCalculationNodeGen.inline(InlineTarget.create(GetCodeRangeForIndexCalculationNode.class, STATE_0_CreateCodePointIteratorNode_UPDATER.subUpdater(7, 25)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-6: InlinedCache
* Specialization: {@link CreateCodePointIteratorNode#createIterator}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
* 7-31: InlinedCache
* Specialization: {@link CreateCodePointIteratorNode#createIterator}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeANode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
private CreateCodePointIteratorNodeGen() {
}
@Override
public TruffleStringIterator execute(AbstractTruffleString arg0Value, Encoding arg1Value, ErrorHandling arg2Value) {
return createIterator(arg0Value, arg1Value, arg2Value, INLINED_TO_INDEXABLE_NODE_, INLINED_GET_CODE_RANGE_A_NODE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static CreateCodePointIteratorNode create() {
return new CreateCodePointIteratorNodeGen();
}
@NeverDefault
public static CreateCodePointIteratorNode getUncached() {
return CreateCodePointIteratorNodeGen.UNCACHED;
}
@GeneratedBy(CreateCodePointIteratorNode.class)
@DenyReplace
private static final class Uncached extends CreateCodePointIteratorNode {
@TruffleBoundary
@Override
public TruffleStringIterator execute(AbstractTruffleString arg0Value, Encoding arg1Value, ErrorHandling arg2Value) {
return createIterator(arg0Value, arg1Value, arg2Value, (ToIndexableNodeGen.getUncached()), (GetCodeRangeForIndexCalculationNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
/**
* Debug Info:
* Specialization {@link CreateBackwardCodePointIteratorNode#createIterator}
* Activation probability: 1.00000
* With/without class size: 24/4 bytes
*
*/
@GeneratedBy(CreateBackwardCodePointIteratorNode.class)
@SuppressWarnings("javadoc")
static final class CreateBackwardCodePointIteratorNodeGen extends CreateBackwardCodePointIteratorNode {
private static final StateField STATE_0_CreateBackwardCodePointIteratorNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link CreateBackwardCodePointIteratorNode#createIterator}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_TO_INDEXABLE_NODE_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, STATE_0_CreateBackwardCodePointIteratorNode_UPDATER.subUpdater(0, 7)));
/**
* Source Info:
* Specialization: {@link CreateBackwardCodePointIteratorNode#createIterator}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeANode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*/
private static final GetCodeRangeForIndexCalculationNode INLINED_GET_CODE_RANGE_A_NODE_ = GetCodeRangeForIndexCalculationNodeGen.inline(InlineTarget.create(GetCodeRangeForIndexCalculationNode.class, STATE_0_CreateBackwardCodePointIteratorNode_UPDATER.subUpdater(7, 25)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-6: InlinedCache
* Specialization: {@link CreateBackwardCodePointIteratorNode#createIterator}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
* 7-31: InlinedCache
* Specialization: {@link CreateBackwardCodePointIteratorNode#createIterator}
* Parameter: {@link GetCodeRangeForIndexCalculationNode} getCodeRangeANode
* Inline method: {@link GetCodeRangeForIndexCalculationNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
private CreateBackwardCodePointIteratorNodeGen() {
}
@Override
public TruffleStringIterator execute(AbstractTruffleString arg0Value, Encoding arg1Value, ErrorHandling arg2Value) {
return createIterator(arg0Value, arg1Value, arg2Value, INLINED_TO_INDEXABLE_NODE_, INLINED_GET_CODE_RANGE_A_NODE_);
}
@Override
public NodeCost getCost() {
return NodeCost.MONOMORPHIC;
}
@NeverDefault
public static CreateBackwardCodePointIteratorNode create() {
return new CreateBackwardCodePointIteratorNodeGen();
}
@NeverDefault
public static CreateBackwardCodePointIteratorNode getUncached() {
return CreateBackwardCodePointIteratorNodeGen.UNCACHED;
}
@GeneratedBy(CreateBackwardCodePointIteratorNode.class)
@DenyReplace
private static final class Uncached extends CreateBackwardCodePointIteratorNode {
@TruffleBoundary
@Override
public TruffleStringIterator execute(AbstractTruffleString arg0Value, Encoding arg1Value, ErrorHandling arg2Value) {
return createIterator(arg0Value, arg1Value, arg2Value, (ToIndexableNodeGen.getUncached()), (GetCodeRangeForIndexCalculationNodeGen.getUncached()));
}
@Override
public NodeCost getCost() {
return NodeCost.MEGAMORPHIC;
}
@Override
public boolean isAdoptable() {
return false;
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy