com.oracle.truffle.api.strings.TruffleStringBuilderFactory Maven / Gradle / Ivy
// 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.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.UnadoptableNode;
import com.oracle.truffle.api.profiles.InlinedBranchProfile;
import com.oracle.truffle.api.profiles.InlinedConditionProfile;
import com.oracle.truffle.api.strings.TStringInternalNodes.CalcStringAttributesNode;
import com.oracle.truffle.api.strings.TStringInternalNodes.GetCodePointLengthNode;
import com.oracle.truffle.api.strings.TStringInternalNodes.GetPreciseCodeRangeNode;
import com.oracle.truffle.api.strings.TStringInternalNodesFactory.CalcStringAttributesNodeGen;
import com.oracle.truffle.api.strings.TStringInternalNodesFactory.GetCodePointLengthNodeGen;
import com.oracle.truffle.api.strings.TStringInternalNodesFactory.GetPreciseCodeRangeNodeGen;
import com.oracle.truffle.api.strings.TruffleString.ToIndexableNode;
import com.oracle.truffle.api.strings.TruffleStringBuilder.AppendByteNode;
import com.oracle.truffle.api.strings.TruffleStringBuilder.AppendCharUTF16Node;
import com.oracle.truffle.api.strings.TruffleStringBuilder.AppendCodePointIntlNode;
import com.oracle.truffle.api.strings.TruffleStringBuilder.AppendCodePointNode;
import com.oracle.truffle.api.strings.TruffleStringBuilder.AppendIntNumberNode;
import com.oracle.truffle.api.strings.TruffleStringBuilder.AppendJavaStringUTF16Node;
import com.oracle.truffle.api.strings.TruffleStringBuilder.AppendLongNumberNode;
import com.oracle.truffle.api.strings.TruffleStringBuilder.AppendStringIntlNode;
import com.oracle.truffle.api.strings.TruffleStringBuilder.AppendStringNode;
import com.oracle.truffle.api.strings.TruffleStringBuilder.AppendSubstringByteIndexNode;
import com.oracle.truffle.api.strings.TruffleStringBuilder.ToStringIntlNode;
import com.oracle.truffle.api.strings.TruffleStringBuilder.ToStringNode;
import com.oracle.truffle.api.strings.TruffleStringFactory.ToIndexableNodeGen;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.VarHandle;
import java.lang.invoke.MethodHandles.Lookup;
@GeneratedBy(TruffleStringBuilder.class)
@SuppressWarnings("javadoc")
public final class TruffleStringBuilderFactory {
/**
* Debug Info:
* Specialization {@link AppendByteNode#append(TruffleStringBuilderUTF8, byte, InlinedBranchProfile, InlinedBranchProfile)}
* Activation probability: 0.65000
* With/without class size: 14/0 bytes
* Specialization {@link AppendByteNode#append(TruffleStringBuilderGeneric, byte, InlinedBranchProfile, InlinedBranchProfile)}
* Activation probability: 0.35000
* With/without class size: 9/0 bytes
*
*/
@GeneratedBy(AppendByteNode.class)
@SuppressWarnings("javadoc")
static final class AppendByteNodeGen extends AppendByteNode {
private static final StateField STATE_0_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link AppendByteNode#append(TruffleStringBuilderUTF8, byte, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} bufferGrowProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private static final InlinedBranchProfile INLINED_BUFFER_GROW_PROFILE = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, STATE_0_UPDATER.subUpdater(2, 1)));
/**
* Source Info:
* Specialization: {@link AppendByteNode#append(TruffleStringBuilderUTF8, byte, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} errorProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private static final InlinedBranchProfile INLINED_ERROR_PROFILE = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, STATE_0_UPDATER.subUpdater(3, 1)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0: SpecializationActive {@link AppendByteNode#append(TruffleStringBuilderUTF8, byte, InlinedBranchProfile, InlinedBranchProfile)}
* 1: SpecializationActive {@link AppendByteNode#append(TruffleStringBuilderGeneric, byte, InlinedBranchProfile, InlinedBranchProfile)}
* 2: InlinedCache
* Specialization: {@link AppendByteNode#append(TruffleStringBuilderUTF8, byte, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} bufferGrowProfile
* Inline method: {@link InlinedBranchProfile#inline}
* 3: InlinedCache
* Specialization: {@link AppendByteNode#append(TruffleStringBuilderUTF8, byte, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} errorProfile
* Inline method: {@link InlinedBranchProfile#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
private AppendByteNodeGen() {
}
@Override
public void execute(TruffleStringBuilder arg0Value, byte arg1Value) {
int state_0 = this.state_0_;
if ((state_0 & 0b11) != 0 /* is SpecializationActive[TruffleStringBuilder.AppendByteNode.append(TruffleStringBuilderUTF8, byte, InlinedBranchProfile, InlinedBranchProfile)] || SpecializationActive[TruffleStringBuilder.AppendByteNode.append(TruffleStringBuilderGeneric, byte, InlinedBranchProfile, InlinedBranchProfile)] */) {
if ((state_0 & 0b1) != 0 /* is SpecializationActive[TruffleStringBuilder.AppendByteNode.append(TruffleStringBuilderUTF8, byte, InlinedBranchProfile, InlinedBranchProfile)] */ && arg0Value instanceof TruffleStringBuilderUTF8) {
TruffleStringBuilderUTF8 arg0Value_ = (TruffleStringBuilderUTF8) arg0Value;
append(arg0Value_, arg1Value, INLINED_BUFFER_GROW_PROFILE, INLINED_ERROR_PROFILE);
return;
}
if ((state_0 & 0b10) != 0 /* is SpecializationActive[TruffleStringBuilder.AppendByteNode.append(TruffleStringBuilderGeneric, byte, InlinedBranchProfile, InlinedBranchProfile)] */ && arg0Value instanceof TruffleStringBuilderGeneric) {
TruffleStringBuilderGeneric arg0Value_ = (TruffleStringBuilderGeneric) arg0Value;
append(arg0Value_, arg1Value, INLINED_BUFFER_GROW_PROFILE, INLINED_ERROR_PROFILE);
return;
}
}
CompilerDirectives.transferToInterpreterAndInvalidate();
executeAndSpecialize(arg0Value, arg1Value);
return;
}
private void executeAndSpecialize(TruffleStringBuilder arg0Value, byte arg1Value) {
int state_0 = this.state_0_;
if (arg0Value instanceof TruffleStringBuilderUTF8) {
TruffleStringBuilderUTF8 arg0Value_ = (TruffleStringBuilderUTF8) arg0Value;
state_0 = state_0 | 0b1 /* add SpecializationActive[TruffleStringBuilder.AppendByteNode.append(TruffleStringBuilderUTF8, byte, InlinedBranchProfile, InlinedBranchProfile)] */;
this.state_0_ = state_0;
append(arg0Value_, arg1Value, INLINED_BUFFER_GROW_PROFILE, INLINED_ERROR_PROFILE);
return;
}
if (arg0Value instanceof TruffleStringBuilderGeneric) {
TruffleStringBuilderGeneric arg0Value_ = (TruffleStringBuilderGeneric) arg0Value;
state_0 = state_0 | 0b10 /* add SpecializationActive[TruffleStringBuilder.AppendByteNode.append(TruffleStringBuilderGeneric, byte, InlinedBranchProfile, InlinedBranchProfile)] */;
this.state_0_ = state_0;
append(arg0Value_, arg1Value, INLINED_BUFFER_GROW_PROFILE, INLINED_ERROR_PROFILE);
return;
}
throw new UnsupportedSpecializationException(this, null, arg0Value, arg1Value);
}
@TruffleBoundary
private static UnsupportedSpecializationException newUnsupportedSpecializationException2LB(Node thisNode_, Object arg0Value, byte arg1Value) {
return new UnsupportedSpecializationException(thisNode_, null, arg0Value, arg1Value);
}
@NeverDefault
public static AppendByteNode create() {
return new AppendByteNodeGen();
}
@NeverDefault
public static AppendByteNode getUncached() {
return AppendByteNodeGen.UNCACHED;
}
@GeneratedBy(AppendByteNode.class)
@DenyReplace
private static final class Uncached extends AppendByteNode implements UnadoptableNode {
@TruffleBoundary
@Override
public void execute(TruffleStringBuilder arg0Value, byte arg1Value) {
if (arg0Value instanceof TruffleStringBuilderUTF8) {
TruffleStringBuilderUTF8 arg0Value_ = (TruffleStringBuilderUTF8) arg0Value;
append(arg0Value_, arg1Value, (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()));
return;
}
if (arg0Value instanceof TruffleStringBuilderGeneric) {
TruffleStringBuilderGeneric arg0Value_ = (TruffleStringBuilderGeneric) arg0Value;
append(arg0Value_, arg1Value, (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()));
return;
}
throw newUnsupportedSpecializationException2LB(this, arg0Value, arg1Value);
}
}
}
/**
* Debug Info:
* Specialization {@link AppendCharUTF16Node#append}
* Activation probability: 1.00000
* With/without class size: 24/1 bytes
*
*/
@GeneratedBy(AppendCharUTF16Node.class)
@SuppressWarnings("javadoc")
static final class AppendCharUTF16NodeGen extends AppendCharUTF16Node {
private static final StateField STATE_0_AppendCharUTF16Node_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link AppendCharUTF16Node#append}
* Parameter: {@link InlinedBranchProfile} nonAsciiProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private static final InlinedBranchProfile INLINED_NON_ASCII_PROFILE_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, STATE_0_AppendCharUTF16Node_UPDATER.subUpdater(1, 1)));
/**
* Source Info:
* Specialization: {@link AppendCharUTF16Node#append}
* Parameter: {@link InlinedBranchProfile} inflateProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private static final InlinedBranchProfile INLINED_INFLATE_PROFILE_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, STATE_0_AppendCharUTF16Node_UPDATER.subUpdater(2, 1)));
/**
* Source Info:
* Specialization: {@link AppendCharUTF16Node#append}
* Parameter: {@link InlinedBranchProfile} bufferGrowProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private static final InlinedBranchProfile INLINED_BUFFER_GROW_PROFILE_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, STATE_0_AppendCharUTF16Node_UPDATER.subUpdater(3, 1)));
/**
* Source Info:
* Specialization: {@link AppendCharUTF16Node#append}
* Parameter: {@link InlinedBranchProfile} errorProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private static final InlinedBranchProfile INLINED_ERROR_PROFILE_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, STATE_0_AppendCharUTF16Node_UPDATER.subUpdater(4, 1)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0: SpecializationActive {@link AppendCharUTF16Node#append}
* 1: InlinedCache
* Specialization: {@link AppendCharUTF16Node#append}
* Parameter: {@link InlinedBranchProfile} nonAsciiProfile
* Inline method: {@link InlinedBranchProfile#inline}
* 2: InlinedCache
* Specialization: {@link AppendCharUTF16Node#append}
* Parameter: {@link InlinedBranchProfile} inflateProfile
* Inline method: {@link InlinedBranchProfile#inline}
* 3: InlinedCache
* Specialization: {@link AppendCharUTF16Node#append}
* Parameter: {@link InlinedBranchProfile} bufferGrowProfile
* Inline method: {@link InlinedBranchProfile#inline}
* 4: InlinedCache
* Specialization: {@link AppendCharUTF16Node#append}
* Parameter: {@link InlinedBranchProfile} errorProfile
* Inline method: {@link InlinedBranchProfile#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
private AppendCharUTF16NodeGen() {
}
@Override
public void execute(TruffleStringBuilder arg0Value, char arg1Value) {
int state_0 = this.state_0_;
if ((state_0 & 0b1) != 0 /* is SpecializationActive[TruffleStringBuilder.AppendCharUTF16Node.append(TruffleStringBuilderUTF16, char, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)] */ && arg0Value instanceof TruffleStringBuilderUTF16) {
TruffleStringBuilderUTF16 arg0Value_ = (TruffleStringBuilderUTF16) arg0Value;
append(arg0Value_, arg1Value, INLINED_NON_ASCII_PROFILE_, INLINED_INFLATE_PROFILE_, INLINED_BUFFER_GROW_PROFILE_, INLINED_ERROR_PROFILE_);
return;
}
CompilerDirectives.transferToInterpreterAndInvalidate();
executeAndSpecialize(arg0Value, arg1Value);
return;
}
private void executeAndSpecialize(TruffleStringBuilder arg0Value, char arg1Value) {
int state_0 = this.state_0_;
if (arg0Value instanceof TruffleStringBuilderUTF16) {
TruffleStringBuilderUTF16 arg0Value_ = (TruffleStringBuilderUTF16) arg0Value;
state_0 = state_0 | 0b1 /* add SpecializationActive[TruffleStringBuilder.AppendCharUTF16Node.append(TruffleStringBuilderUTF16, char, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)] */;
this.state_0_ = state_0;
append(arg0Value_, arg1Value, INLINED_NON_ASCII_PROFILE_, INLINED_INFLATE_PROFILE_, INLINED_BUFFER_GROW_PROFILE_, INLINED_ERROR_PROFILE_);
return;
}
throw new UnsupportedSpecializationException(this, null, arg0Value, arg1Value);
}
@TruffleBoundary
private static UnsupportedSpecializationException newUnsupportedSpecializationException2LC(Node thisNode_, Object arg0Value, char arg1Value) {
return new UnsupportedSpecializationException(thisNode_, null, arg0Value, arg1Value);
}
@NeverDefault
public static AppendCharUTF16Node create() {
return new AppendCharUTF16NodeGen();
}
@NeverDefault
public static AppendCharUTF16Node getUncached() {
return AppendCharUTF16NodeGen.UNCACHED;
}
@GeneratedBy(AppendCharUTF16Node.class)
@DenyReplace
private static final class Uncached extends AppendCharUTF16Node implements UnadoptableNode {
@TruffleBoundary
@Override
public void execute(TruffleStringBuilder arg0Value, char arg1Value) {
if (arg0Value instanceof TruffleStringBuilderUTF16) {
TruffleStringBuilderUTF16 arg0Value_ = (TruffleStringBuilderUTF16) arg0Value;
append(arg0Value_, arg1Value, (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()));
return;
}
throw newUnsupportedSpecializationException2LC(this, arg0Value, arg1Value);
}
}
}
/**
* Debug Info:
* Specialization {@link AppendCodePointNode#append}
* Activation probability: 1.00000
* With/without class size: 24/2 bytes
*
*/
@GeneratedBy(AppendCodePointNode.class)
@SuppressWarnings("javadoc")
static final class AppendCodePointNodeGen extends AppendCodePointNode {
private static final StateField STATE_0_AppendCodePointNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link AppendCodePointNode#append}
* Parameter: {@link AppendCodePointIntlNode} appendCodePointIntlNode
* Inline method: {@link AppendCodePointIntlNodeGen#inline}
*/
private static final AppendCodePointIntlNode INLINED_APPEND_CODE_POINT_INTL_NODE_ = AppendCodePointIntlNodeGen.inline(InlineTarget.create(AppendCodePointIntlNode.class, STATE_0_AppendCodePointNode_UPDATER.subUpdater(0, 11)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-10: InlinedCache
* Specialization: {@link AppendCodePointNode#append}
* Parameter: {@link AppendCodePointIntlNode} appendCodePointIntlNode
* Inline method: {@link AppendCodePointIntlNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
private AppendCodePointNodeGen() {
}
@Override
public void execute(TruffleStringBuilder arg0Value, int arg1Value, int arg2Value, boolean arg3Value) {
append(arg0Value, arg1Value, arg2Value, arg3Value, INLINED_APPEND_CODE_POINT_INTL_NODE_);
return;
}
@NeverDefault
public static AppendCodePointNode create() {
return new AppendCodePointNodeGen();
}
@NeverDefault
public static AppendCodePointNode getUncached() {
return AppendCodePointNodeGen.UNCACHED;
}
@GeneratedBy(AppendCodePointNode.class)
@DenyReplace
private static final class Uncached extends AppendCodePointNode implements UnadoptableNode {
@TruffleBoundary
@Override
public void execute(TruffleStringBuilder arg0Value, int arg1Value, int arg2Value, boolean arg3Value) {
append(arg0Value, arg1Value, arg2Value, arg3Value, (AppendCodePointIntlNodeGen.getUncached()));
return;
}
}
}
/**
* Debug Info:
* Specialization {@link AppendCodePointIntlNode#append(Node, TruffleStringBuilderUTF8, int, int, boolean, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Activation probability: 0.38500
* With/without class size: 10/0 bytes
* Specialization {@link AppendCodePointIntlNode#append(Node, TruffleStringBuilderUTF16, int, int, boolean, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Activation probability: 0.29500
* With/without class size: 8/0 bytes
* Specialization {@link AppendCodePointIntlNode#append(Node, TruffleStringBuilderUTF32, int, int, boolean, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Activation probability: 0.20500
* With/without class size: 7/0 bytes
* Specialization {@link AppendCodePointIntlNode#generic}
* Activation probability: 0.11500
* With/without class size: 6/1 bytes
*
*/
@GeneratedBy(AppendCodePointIntlNode.class)
@SuppressWarnings("javadoc")
static final class AppendCodePointIntlNodeGen {
private static final Uncached UNCACHED = new Uncached();
@TruffleBoundary
private static UnsupportedSpecializationException newUnsupportedSpecializationException5LLIIZ(Node thisNode_, Object arg0Value, Object arg1Value, int arg2Value, int arg3Value, boolean arg4Value) {
return new UnsupportedSpecializationException(thisNode_, null, arg0Value, arg1Value, arg2Value, arg3Value, arg4Value);
}
@NeverDefault
public static AppendCodePointIntlNode getUncached() {
return AppendCodePointIntlNodeGen.UNCACHED;
}
/**
* Required Fields:
* - {@link Inlined#state_0_}
*
*/
@NeverDefault
public static AppendCodePointIntlNode inline(@RequiredField(bits = 11, value = StateField.class) InlineTarget target) {
return new AppendCodePointIntlNodeGen.Inlined(target);
}
@GeneratedBy(AppendCodePointIntlNode.class)
@DenyReplace
private static final class Inlined extends AppendCodePointIntlNode implements UnadoptableNode {
/**
* State Info:
* 0: SpecializationActive {@link AppendCodePointIntlNode#append(Node, TruffleStringBuilderUTF8, int, int, boolean, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* 1: SpecializationActive {@link AppendCodePointIntlNode#append(Node, TruffleStringBuilderUTF16, int, int, boolean, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* 2: SpecializationActive {@link AppendCodePointIntlNode#append(Node, TruffleStringBuilderUTF32, int, int, boolean, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* 3: SpecializationActive {@link AppendCodePointIntlNode#generic}
* 4: InlinedCache
* Specialization: {@link AppendCodePointIntlNode#append(Node, TruffleStringBuilderUTF8, int, int, boolean, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} multiByteProfile
* Inline method: {@link InlinedBranchProfile#inline}
* 5: InlinedCache
* Specialization: {@link AppendCodePointIntlNode#append(Node, TruffleStringBuilderUTF8, int, int, boolean, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} bufferGrowProfile
* Inline method: {@link InlinedBranchProfile#inline}
* 6: InlinedCache
* Specialization: {@link AppendCodePointIntlNode#append(Node, TruffleStringBuilderUTF8, int, int, boolean, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} errorProfile
* Inline method: {@link InlinedBranchProfile#inline}
* 7: InlinedCache
* Specialization: {@link AppendCodePointIntlNode#append(Node, TruffleStringBuilderUTF16, int, int, boolean, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} nonAsciiProfile
* Inline method: {@link InlinedBranchProfile#inline}
* 8: InlinedCache
* Specialization: {@link AppendCodePointIntlNode#append(Node, TruffleStringBuilderUTF16, int, int, boolean, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} inflateProfile
* Inline method: {@link InlinedBranchProfile#inline}
* 9-10: InlinedCache
* Specialization: {@link AppendCodePointIntlNode#generic}
* Parameter: {@link InlinedConditionProfile} supportedProfile
* Inline method: {@link InlinedConditionProfile#inline}
*
*/
private final StateField state_0_;
/**
* Source Info:
* Specialization: {@link AppendCodePointIntlNode#append(Node, TruffleStringBuilderUTF8, int, int, boolean, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} multiByteProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private final InlinedBranchProfile multiByteProfile;
/**
* Source Info:
* Specialization: {@link AppendCodePointIntlNode#append(Node, TruffleStringBuilderUTF8, int, int, boolean, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} bufferGrowProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private final InlinedBranchProfile bufferGrowProfile;
/**
* Source Info:
* Specialization: {@link AppendCodePointIntlNode#append(Node, TruffleStringBuilderUTF8, int, int, boolean, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} errorProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private final InlinedBranchProfile errorProfile;
/**
* Source Info:
* Specialization: {@link AppendCodePointIntlNode#append(Node, TruffleStringBuilderUTF16, int, int, boolean, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} nonAsciiProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private final InlinedBranchProfile nonAsciiProfile;
/**
* Source Info:
* Specialization: {@link AppendCodePointIntlNode#append(Node, TruffleStringBuilderUTF16, int, int, boolean, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} inflateProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private final InlinedBranchProfile inflateProfile;
/**
* Source Info:
* Specialization: {@link AppendCodePointIntlNode#generic}
* Parameter: {@link InlinedConditionProfile} supportedProfile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private final InlinedConditionProfile generic_supportedProfile_;
private Inlined(InlineTarget target) {
assert target.getTargetClass().isAssignableFrom(AppendCodePointIntlNode.class);
this.state_0_ = target.getState(0, 11);
this.multiByteProfile = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, state_0_.subUpdater(4, 1)));
this.bufferGrowProfile = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, state_0_.subUpdater(5, 1)));
this.errorProfile = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, state_0_.subUpdater(6, 1)));
this.nonAsciiProfile = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, state_0_.subUpdater(7, 1)));
this.inflateProfile = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, state_0_.subUpdater(8, 1)));
this.generic_supportedProfile_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, state_0_.subUpdater(9, 2)));
}
@Override
void execute(Node arg0Value, TruffleStringBuilder arg1Value, int arg2Value, int arg3Value, boolean arg4Value) {
int state_0 = this.state_0_.get(arg0Value);
if ((state_0 & 0b1111) != 0 /* is SpecializationActive[TruffleStringBuilder.AppendCodePointIntlNode.append(Node, TruffleStringBuilderUTF8, int, int, boolean, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)] || SpecializationActive[TruffleStringBuilder.AppendCodePointIntlNode.append(Node, TruffleStringBuilderUTF16, int, int, boolean, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)] || SpecializationActive[TruffleStringBuilder.AppendCodePointIntlNode.append(Node, TruffleStringBuilderUTF32, int, int, boolean, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)] || SpecializationActive[TruffleStringBuilder.AppendCodePointIntlNode.generic(Node, TruffleStringBuilderGeneric, int, int, boolean, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)] */) {
if ((state_0 & 0b1) != 0 /* is SpecializationActive[TruffleStringBuilder.AppendCodePointIntlNode.append(Node, TruffleStringBuilderUTF8, int, int, boolean, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)] */ && arg1Value instanceof TruffleStringBuilderUTF8) {
TruffleStringBuilderUTF8 arg1Value_ = (TruffleStringBuilderUTF8) arg1Value;
AppendCodePointIntlNode.append(arg0Value, arg1Value_, arg2Value, arg3Value, arg4Value, this.multiByteProfile, this.bufferGrowProfile, this.errorProfile);
return;
}
if ((state_0 & 0b10) != 0 /* is SpecializationActive[TruffleStringBuilder.AppendCodePointIntlNode.append(Node, TruffleStringBuilderUTF16, int, int, boolean, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)] */ && arg1Value instanceof TruffleStringBuilderUTF16) {
TruffleStringBuilderUTF16 arg1Value_ = (TruffleStringBuilderUTF16) arg1Value;
AppendCodePointIntlNode.append(arg0Value, arg1Value_, arg2Value, arg3Value, arg4Value, this.nonAsciiProfile, this.multiByteProfile, this.inflateProfile, this.bufferGrowProfile, this.errorProfile);
return;
}
if ((state_0 & 0b100) != 0 /* is SpecializationActive[TruffleStringBuilder.AppendCodePointIntlNode.append(Node, TruffleStringBuilderUTF32, int, int, boolean, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)] */ && arg1Value instanceof TruffleStringBuilderUTF32) {
TruffleStringBuilderUTF32 arg1Value_ = (TruffleStringBuilderUTF32) arg1Value;
AppendCodePointIntlNode.append(arg0Value, arg1Value_, arg2Value, arg3Value, arg4Value, this.nonAsciiProfile, this.inflateProfile, this.bufferGrowProfile, this.errorProfile);
return;
}
if ((state_0 & 0b1000) != 0 /* is SpecializationActive[TruffleStringBuilder.AppendCodePointIntlNode.generic(Node, TruffleStringBuilderGeneric, int, int, boolean, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)] */ && arg1Value instanceof TruffleStringBuilderGeneric) {
TruffleStringBuilderGeneric arg1Value_ = (TruffleStringBuilderGeneric) arg1Value;
assert InlineSupport.validate(arg0Value, this.state_0_);
AppendCodePointIntlNode.generic(arg0Value, arg1Value_, arg2Value, arg3Value, arg4Value, this.generic_supportedProfile_, this.bufferGrowProfile, this.errorProfile);
return;
}
}
CompilerDirectives.transferToInterpreterAndInvalidate();
executeAndSpecialize(arg0Value, arg1Value, arg2Value, arg3Value, arg4Value);
return;
}
private void executeAndSpecialize(Node arg0Value, TruffleStringBuilder arg1Value, int arg2Value, int arg3Value, boolean arg4Value) {
int state_0 = this.state_0_.get(arg0Value);
if (arg1Value instanceof TruffleStringBuilderUTF8) {
TruffleStringBuilderUTF8 arg1Value_ = (TruffleStringBuilderUTF8) arg1Value;
state_0 = state_0 | 0b1 /* add SpecializationActive[TruffleStringBuilder.AppendCodePointIntlNode.append(Node, TruffleStringBuilderUTF8, int, int, boolean, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)] */;
this.state_0_.set(arg0Value, state_0);
AppendCodePointIntlNode.append(arg0Value, arg1Value_, arg2Value, arg3Value, arg4Value, this.multiByteProfile, this.bufferGrowProfile, this.errorProfile);
return;
}
if (arg1Value instanceof TruffleStringBuilderUTF16) {
TruffleStringBuilderUTF16 arg1Value_ = (TruffleStringBuilderUTF16) arg1Value;
state_0 = state_0 | 0b10 /* add SpecializationActive[TruffleStringBuilder.AppendCodePointIntlNode.append(Node, TruffleStringBuilderUTF16, int, int, boolean, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)] */;
this.state_0_.set(arg0Value, state_0);
AppendCodePointIntlNode.append(arg0Value, arg1Value_, arg2Value, arg3Value, arg4Value, this.nonAsciiProfile, this.multiByteProfile, this.inflateProfile, this.bufferGrowProfile, this.errorProfile);
return;
}
if (arg1Value instanceof TruffleStringBuilderUTF32) {
TruffleStringBuilderUTF32 arg1Value_ = (TruffleStringBuilderUTF32) arg1Value;
state_0 = state_0 | 0b100 /* add SpecializationActive[TruffleStringBuilder.AppendCodePointIntlNode.append(Node, TruffleStringBuilderUTF32, int, int, boolean, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)] */;
this.state_0_.set(arg0Value, state_0);
AppendCodePointIntlNode.append(arg0Value, arg1Value_, arg2Value, arg3Value, arg4Value, this.nonAsciiProfile, this.inflateProfile, this.bufferGrowProfile, this.errorProfile);
return;
}
if (arg1Value instanceof TruffleStringBuilderGeneric) {
TruffleStringBuilderGeneric arg1Value_ = (TruffleStringBuilderGeneric) arg1Value;
state_0 = state_0 | 0b1000 /* add SpecializationActive[TruffleStringBuilder.AppendCodePointIntlNode.generic(Node, TruffleStringBuilderGeneric, int, int, boolean, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)] */;
this.state_0_.set(arg0Value, state_0);
assert InlineSupport.validate(arg0Value, this.state_0_);
AppendCodePointIntlNode.generic(arg0Value, arg1Value_, arg2Value, arg3Value, arg4Value, this.generic_supportedProfile_, this.bufferGrowProfile, this.errorProfile);
return;
}
throw newUnsupportedSpecializationException5LLIIZ(this, arg0Value, arg1Value, arg2Value, arg3Value, arg4Value);
}
}
@GeneratedBy(AppendCodePointIntlNode.class)
@DenyReplace
private static final class Uncached extends AppendCodePointIntlNode implements UnadoptableNode {
@TruffleBoundary
@Override
void execute(Node arg0Value, TruffleStringBuilder arg1Value, int arg2Value, int arg3Value, boolean arg4Value) {
if (arg1Value instanceof TruffleStringBuilderUTF8) {
TruffleStringBuilderUTF8 arg1Value_ = (TruffleStringBuilderUTF8) arg1Value;
AppendCodePointIntlNode.append(arg0Value, arg1Value_, arg2Value, arg3Value, arg4Value, (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()));
return;
}
if (arg1Value instanceof TruffleStringBuilderUTF16) {
TruffleStringBuilderUTF16 arg1Value_ = (TruffleStringBuilderUTF16) arg1Value;
AppendCodePointIntlNode.append(arg0Value, arg1Value_, arg2Value, arg3Value, arg4Value, (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()));
return;
}
if (arg1Value instanceof TruffleStringBuilderUTF32) {
TruffleStringBuilderUTF32 arg1Value_ = (TruffleStringBuilderUTF32) arg1Value;
AppendCodePointIntlNode.append(arg0Value, arg1Value_, arg2Value, arg3Value, arg4Value, (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()));
return;
}
if (arg1Value instanceof TruffleStringBuilderGeneric) {
TruffleStringBuilderGeneric arg1Value_ = (TruffleStringBuilderGeneric) arg1Value;
AppendCodePointIntlNode.generic(arg0Value, arg1Value_, arg2Value, arg3Value, arg4Value, (InlinedConditionProfile.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()));
return;
}
throw newUnsupportedSpecializationException5LLIIZ(this, arg0Value, arg1Value, arg2Value, arg3Value, arg4Value);
}
}
}
/**
* Debug Info:
* Specialization {@link AppendIntNumberNode#doAppend(TruffleStringBuilderUTF8, int, InlinedBranchProfile, InlinedBranchProfile)}
* Activation probability: 0.38500
* With/without class size: 10/0 bytes
* Specialization {@link AppendIntNumberNode#doAppend(TruffleStringBuilderUTF16, int, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Activation probability: 0.29500
* With/without class size: 8/0 bytes
* Specialization {@link AppendIntNumberNode#doAppend(TruffleStringBuilderUTF32, int, InlinedConditionProfile, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Activation probability: 0.20500
* With/without class size: 8/1 bytes
* Specialization {@link AppendIntNumberNode#doAppend(TruffleStringBuilderGeneric, int, InlinedBranchProfile, InlinedBranchProfile)}
* Activation probability: 0.11500
* With/without class size: 5/0 bytes
*
*/
@GeneratedBy(AppendIntNumberNode.class)
@SuppressWarnings("javadoc")
static final class AppendIntNumberNodeGen extends AppendIntNumberNode {
private static final StateField STATE_0_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField STATE_0_AppendIntNumberNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link AppendIntNumberNode#doAppend(TruffleStringBuilderUTF8, int, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} bufferGrowProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private static final InlinedBranchProfile INLINED_BUFFER_GROW_PROFILE = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, STATE_0_UPDATER.subUpdater(4, 1)));
/**
* Source Info:
* Specialization: {@link AppendIntNumberNode#doAppend(TruffleStringBuilderUTF8, int, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} errorProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private static final InlinedBranchProfile INLINED_ERROR_PROFILE = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, STATE_0_UPDATER.subUpdater(5, 1)));
/**
* Source Info:
* Specialization: {@link AppendIntNumberNode#doAppend(TruffleStringBuilderUTF16, int, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedConditionProfile} stride0Profile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_STRIDE0_PROFILE = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_UPDATER.subUpdater(6, 2)));
/**
* Source Info:
* Specialization: {@link AppendIntNumberNode#doAppend(TruffleStringBuilderUTF32, int, InlinedConditionProfile, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedConditionProfile} stride1Profile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_APPEND2_STRIDE1_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_AppendIntNumberNode_UPDATER.subUpdater(8, 2)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0: SpecializationActive {@link AppendIntNumberNode#doAppend(TruffleStringBuilderUTF8, int, InlinedBranchProfile, InlinedBranchProfile)}
* 1: SpecializationActive {@link AppendIntNumberNode#doAppend(TruffleStringBuilderUTF16, int, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)}
* 2: SpecializationActive {@link AppendIntNumberNode#doAppend(TruffleStringBuilderUTF32, int, InlinedConditionProfile, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)}
* 3: SpecializationActive {@link AppendIntNumberNode#doAppend(TruffleStringBuilderGeneric, int, InlinedBranchProfile, InlinedBranchProfile)}
* 4: InlinedCache
* Specialization: {@link AppendIntNumberNode#doAppend(TruffleStringBuilderUTF8, int, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} bufferGrowProfile
* Inline method: {@link InlinedBranchProfile#inline}
* 5: InlinedCache
* Specialization: {@link AppendIntNumberNode#doAppend(TruffleStringBuilderUTF8, int, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} errorProfile
* Inline method: {@link InlinedBranchProfile#inline}
* 6-7: InlinedCache
* Specialization: {@link AppendIntNumberNode#doAppend(TruffleStringBuilderUTF16, int, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedConditionProfile} stride0Profile
* Inline method: {@link InlinedConditionProfile#inline}
* 8-9: InlinedCache
* Specialization: {@link AppendIntNumberNode#doAppend(TruffleStringBuilderUTF32, int, InlinedConditionProfile, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedConditionProfile} stride1Profile
* Inline method: {@link InlinedConditionProfile#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
private AppendIntNumberNodeGen() {
}
@Override
public void execute(TruffleStringBuilder arg0Value, int arg1Value) {
int state_0 = this.state_0_;
if ((state_0 & 0b1111) != 0 /* is SpecializationActive[TruffleStringBuilder.AppendIntNumberNode.doAppend(TruffleStringBuilderUTF8, int, InlinedBranchProfile, InlinedBranchProfile)] || SpecializationActive[TruffleStringBuilder.AppendIntNumberNode.doAppend(TruffleStringBuilderUTF16, int, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)] || SpecializationActive[TruffleStringBuilder.AppendIntNumberNode.doAppend(TruffleStringBuilderUTF32, int, InlinedConditionProfile, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)] || SpecializationActive[TruffleStringBuilder.AppendIntNumberNode.doAppend(TruffleStringBuilderGeneric, int, InlinedBranchProfile, InlinedBranchProfile)] */) {
if ((state_0 & 0b1) != 0 /* is SpecializationActive[TruffleStringBuilder.AppendIntNumberNode.doAppend(TruffleStringBuilderUTF8, int, InlinedBranchProfile, InlinedBranchProfile)] */ && arg0Value instanceof TruffleStringBuilderUTF8) {
TruffleStringBuilderUTF8 arg0Value_ = (TruffleStringBuilderUTF8) arg0Value;
doAppend(arg0Value_, arg1Value, INLINED_BUFFER_GROW_PROFILE, INLINED_ERROR_PROFILE);
return;
}
if ((state_0 & 0b10) != 0 /* is SpecializationActive[TruffleStringBuilder.AppendIntNumberNode.doAppend(TruffleStringBuilderUTF16, int, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)] */ && arg0Value instanceof TruffleStringBuilderUTF16) {
TruffleStringBuilderUTF16 arg0Value_ = (TruffleStringBuilderUTF16) arg0Value;
doAppend(arg0Value_, arg1Value, INLINED_STRIDE0_PROFILE, INLINED_BUFFER_GROW_PROFILE, INLINED_ERROR_PROFILE);
return;
}
if ((state_0 & 0b100) != 0 /* is SpecializationActive[TruffleStringBuilder.AppendIntNumberNode.doAppend(TruffleStringBuilderUTF32, int, InlinedConditionProfile, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)] */ && arg0Value instanceof TruffleStringBuilderUTF32) {
TruffleStringBuilderUTF32 arg0Value_ = (TruffleStringBuilderUTF32) arg0Value;
doAppend(arg0Value_, arg1Value, INLINED_STRIDE0_PROFILE, INLINED_APPEND2_STRIDE1_PROFILE_, INLINED_BUFFER_GROW_PROFILE, INLINED_ERROR_PROFILE);
return;
}
if ((state_0 & 0b1000) != 0 /* is SpecializationActive[TruffleStringBuilder.AppendIntNumberNode.doAppend(TruffleStringBuilderGeneric, int, InlinedBranchProfile, InlinedBranchProfile)] */ && arg0Value instanceof TruffleStringBuilderGeneric) {
TruffleStringBuilderGeneric arg0Value_ = (TruffleStringBuilderGeneric) arg0Value;
doAppend(arg0Value_, arg1Value, INLINED_BUFFER_GROW_PROFILE, INLINED_ERROR_PROFILE);
return;
}
}
CompilerDirectives.transferToInterpreterAndInvalidate();
executeAndSpecialize(arg0Value, arg1Value);
return;
}
private void executeAndSpecialize(TruffleStringBuilder arg0Value, int arg1Value) {
int state_0 = this.state_0_;
if (arg0Value instanceof TruffleStringBuilderUTF8) {
TruffleStringBuilderUTF8 arg0Value_ = (TruffleStringBuilderUTF8) arg0Value;
state_0 = state_0 | 0b1 /* add SpecializationActive[TruffleStringBuilder.AppendIntNumberNode.doAppend(TruffleStringBuilderUTF8, int, InlinedBranchProfile, InlinedBranchProfile)] */;
this.state_0_ = state_0;
doAppend(arg0Value_, arg1Value, INLINED_BUFFER_GROW_PROFILE, INLINED_ERROR_PROFILE);
return;
}
if (arg0Value instanceof TruffleStringBuilderUTF16) {
TruffleStringBuilderUTF16 arg0Value_ = (TruffleStringBuilderUTF16) arg0Value;
state_0 = state_0 | 0b10 /* add SpecializationActive[TruffleStringBuilder.AppendIntNumberNode.doAppend(TruffleStringBuilderUTF16, int, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)] */;
this.state_0_ = state_0;
doAppend(arg0Value_, arg1Value, INLINED_STRIDE0_PROFILE, INLINED_BUFFER_GROW_PROFILE, INLINED_ERROR_PROFILE);
return;
}
if (arg0Value instanceof TruffleStringBuilderUTF32) {
TruffleStringBuilderUTF32 arg0Value_ = (TruffleStringBuilderUTF32) arg0Value;
state_0 = state_0 | 0b100 /* add SpecializationActive[TruffleStringBuilder.AppendIntNumberNode.doAppend(TruffleStringBuilderUTF32, int, InlinedConditionProfile, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)] */;
this.state_0_ = state_0;
doAppend(arg0Value_, arg1Value, INLINED_STRIDE0_PROFILE, INLINED_APPEND2_STRIDE1_PROFILE_, INLINED_BUFFER_GROW_PROFILE, INLINED_ERROR_PROFILE);
return;
}
if (arg0Value instanceof TruffleStringBuilderGeneric) {
TruffleStringBuilderGeneric arg0Value_ = (TruffleStringBuilderGeneric) arg0Value;
state_0 = state_0 | 0b1000 /* add SpecializationActive[TruffleStringBuilder.AppendIntNumberNode.doAppend(TruffleStringBuilderGeneric, int, InlinedBranchProfile, InlinedBranchProfile)] */;
this.state_0_ = state_0;
doAppend(arg0Value_, arg1Value, INLINED_BUFFER_GROW_PROFILE, INLINED_ERROR_PROFILE);
return;
}
throw new UnsupportedSpecializationException(this, null, arg0Value, arg1Value);
}
@TruffleBoundary
private static UnsupportedSpecializationException newUnsupportedSpecializationException2LI(Node thisNode_, Object arg0Value, int arg1Value) {
return new UnsupportedSpecializationException(thisNode_, null, arg0Value, arg1Value);
}
@NeverDefault
public static AppendIntNumberNode create() {
return new AppendIntNumberNodeGen();
}
@NeverDefault
public static AppendIntNumberNode getUncached() {
return AppendIntNumberNodeGen.UNCACHED;
}
@GeneratedBy(AppendIntNumberNode.class)
@DenyReplace
private static final class Uncached extends AppendIntNumberNode implements UnadoptableNode {
@TruffleBoundary
@Override
public void execute(TruffleStringBuilder arg0Value, int arg1Value) {
if (arg0Value instanceof TruffleStringBuilderUTF8) {
TruffleStringBuilderUTF8 arg0Value_ = (TruffleStringBuilderUTF8) arg0Value;
doAppend(arg0Value_, arg1Value, (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()));
return;
}
if (arg0Value instanceof TruffleStringBuilderUTF16) {
TruffleStringBuilderUTF16 arg0Value_ = (TruffleStringBuilderUTF16) arg0Value;
doAppend(arg0Value_, arg1Value, (InlinedConditionProfile.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()));
return;
}
if (arg0Value instanceof TruffleStringBuilderUTF32) {
TruffleStringBuilderUTF32 arg0Value_ = (TruffleStringBuilderUTF32) arg0Value;
doAppend(arg0Value_, arg1Value, (InlinedConditionProfile.getUncached()), (InlinedConditionProfile.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()));
return;
}
if (arg0Value instanceof TruffleStringBuilderGeneric) {
TruffleStringBuilderGeneric arg0Value_ = (TruffleStringBuilderGeneric) arg0Value;
doAppend(arg0Value_, arg1Value, (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()));
return;
}
throw newUnsupportedSpecializationException2LI(this, arg0Value, arg1Value);
}
}
}
/**
* Debug Info:
* Specialization {@link AppendLongNumberNode#doAppend(TruffleStringBuilderUTF8, long, InlinedBranchProfile, InlinedBranchProfile)}
* Activation probability: 0.38500
* With/without class size: 10/0 bytes
* Specialization {@link AppendLongNumberNode#doAppend(TruffleStringBuilderUTF16, long, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Activation probability: 0.29500
* With/without class size: 8/0 bytes
* Specialization {@link AppendLongNumberNode#doAppend(TruffleStringBuilderUTF32, long, InlinedConditionProfile, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Activation probability: 0.20500
* With/without class size: 8/1 bytes
* Specialization {@link AppendLongNumberNode#doAppend(TruffleStringBuilderGeneric, long, InlinedBranchProfile, InlinedBranchProfile)}
* Activation probability: 0.11500
* With/without class size: 5/0 bytes
*
*/
@GeneratedBy(AppendLongNumberNode.class)
@SuppressWarnings("javadoc")
static final class AppendLongNumberNodeGen extends AppendLongNumberNode {
private static final StateField STATE_0_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField STATE_0_AppendLongNumberNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link AppendLongNumberNode#doAppend(TruffleStringBuilderUTF8, long, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} bufferGrowProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private static final InlinedBranchProfile INLINED_BUFFER_GROW_PROFILE = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, STATE_0_UPDATER.subUpdater(4, 1)));
/**
* Source Info:
* Specialization: {@link AppendLongNumberNode#doAppend(TruffleStringBuilderUTF8, long, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} errorProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private static final InlinedBranchProfile INLINED_ERROR_PROFILE = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, STATE_0_UPDATER.subUpdater(5, 1)));
/**
* Source Info:
* Specialization: {@link AppendLongNumberNode#doAppend(TruffleStringBuilderUTF16, long, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedConditionProfile} stride0Profile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_STRIDE0_PROFILE = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_UPDATER.subUpdater(6, 2)));
/**
* Source Info:
* Specialization: {@link AppendLongNumberNode#doAppend(TruffleStringBuilderUTF32, long, InlinedConditionProfile, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedConditionProfile} stride1Profile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_APPEND2_STRIDE1_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_AppendLongNumberNode_UPDATER.subUpdater(8, 2)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0: SpecializationActive {@link AppendLongNumberNode#doAppend(TruffleStringBuilderUTF8, long, InlinedBranchProfile, InlinedBranchProfile)}
* 1: SpecializationActive {@link AppendLongNumberNode#doAppend(TruffleStringBuilderUTF16, long, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)}
* 2: SpecializationActive {@link AppendLongNumberNode#doAppend(TruffleStringBuilderUTF32, long, InlinedConditionProfile, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)}
* 3: SpecializationActive {@link AppendLongNumberNode#doAppend(TruffleStringBuilderGeneric, long, InlinedBranchProfile, InlinedBranchProfile)}
* 4: InlinedCache
* Specialization: {@link AppendLongNumberNode#doAppend(TruffleStringBuilderUTF8, long, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} bufferGrowProfile
* Inline method: {@link InlinedBranchProfile#inline}
* 5: InlinedCache
* Specialization: {@link AppendLongNumberNode#doAppend(TruffleStringBuilderUTF8, long, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} errorProfile
* Inline method: {@link InlinedBranchProfile#inline}
* 6-7: InlinedCache
* Specialization: {@link AppendLongNumberNode#doAppend(TruffleStringBuilderUTF16, long, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedConditionProfile} stride0Profile
* Inline method: {@link InlinedConditionProfile#inline}
* 8-9: InlinedCache
* Specialization: {@link AppendLongNumberNode#doAppend(TruffleStringBuilderUTF32, long, InlinedConditionProfile, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedConditionProfile} stride1Profile
* Inline method: {@link InlinedConditionProfile#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
private AppendLongNumberNodeGen() {
}
@Override
public void execute(TruffleStringBuilder arg0Value, long arg1Value) {
int state_0 = this.state_0_;
if ((state_0 & 0b1111) != 0 /* is SpecializationActive[TruffleStringBuilder.AppendLongNumberNode.doAppend(TruffleStringBuilderUTF8, long, InlinedBranchProfile, InlinedBranchProfile)] || SpecializationActive[TruffleStringBuilder.AppendLongNumberNode.doAppend(TruffleStringBuilderUTF16, long, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)] || SpecializationActive[TruffleStringBuilder.AppendLongNumberNode.doAppend(TruffleStringBuilderUTF32, long, InlinedConditionProfile, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)] || SpecializationActive[TruffleStringBuilder.AppendLongNumberNode.doAppend(TruffleStringBuilderGeneric, long, InlinedBranchProfile, InlinedBranchProfile)] */) {
if ((state_0 & 0b1) != 0 /* is SpecializationActive[TruffleStringBuilder.AppendLongNumberNode.doAppend(TruffleStringBuilderUTF8, long, InlinedBranchProfile, InlinedBranchProfile)] */ && arg0Value instanceof TruffleStringBuilderUTF8) {
TruffleStringBuilderUTF8 arg0Value_ = (TruffleStringBuilderUTF8) arg0Value;
doAppend(arg0Value_, arg1Value, INLINED_BUFFER_GROW_PROFILE, INLINED_ERROR_PROFILE);
return;
}
if ((state_0 & 0b10) != 0 /* is SpecializationActive[TruffleStringBuilder.AppendLongNumberNode.doAppend(TruffleStringBuilderUTF16, long, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)] */ && arg0Value instanceof TruffleStringBuilderUTF16) {
TruffleStringBuilderUTF16 arg0Value_ = (TruffleStringBuilderUTF16) arg0Value;
doAppend(arg0Value_, arg1Value, INLINED_STRIDE0_PROFILE, INLINED_BUFFER_GROW_PROFILE, INLINED_ERROR_PROFILE);
return;
}
if ((state_0 & 0b100) != 0 /* is SpecializationActive[TruffleStringBuilder.AppendLongNumberNode.doAppend(TruffleStringBuilderUTF32, long, InlinedConditionProfile, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)] */ && arg0Value instanceof TruffleStringBuilderUTF32) {
TruffleStringBuilderUTF32 arg0Value_ = (TruffleStringBuilderUTF32) arg0Value;
doAppend(arg0Value_, arg1Value, INLINED_STRIDE0_PROFILE, INLINED_APPEND2_STRIDE1_PROFILE_, INLINED_BUFFER_GROW_PROFILE, INLINED_ERROR_PROFILE);
return;
}
if ((state_0 & 0b1000) != 0 /* is SpecializationActive[TruffleStringBuilder.AppendLongNumberNode.doAppend(TruffleStringBuilderGeneric, long, InlinedBranchProfile, InlinedBranchProfile)] */ && arg0Value instanceof TruffleStringBuilderGeneric) {
TruffleStringBuilderGeneric arg0Value_ = (TruffleStringBuilderGeneric) arg0Value;
doAppend(arg0Value_, arg1Value, INLINED_BUFFER_GROW_PROFILE, INLINED_ERROR_PROFILE);
return;
}
}
CompilerDirectives.transferToInterpreterAndInvalidate();
executeAndSpecialize(arg0Value, arg1Value);
return;
}
private void executeAndSpecialize(TruffleStringBuilder arg0Value, long arg1Value) {
int state_0 = this.state_0_;
if (arg0Value instanceof TruffleStringBuilderUTF8) {
TruffleStringBuilderUTF8 arg0Value_ = (TruffleStringBuilderUTF8) arg0Value;
state_0 = state_0 | 0b1 /* add SpecializationActive[TruffleStringBuilder.AppendLongNumberNode.doAppend(TruffleStringBuilderUTF8, long, InlinedBranchProfile, InlinedBranchProfile)] */;
this.state_0_ = state_0;
doAppend(arg0Value_, arg1Value, INLINED_BUFFER_GROW_PROFILE, INLINED_ERROR_PROFILE);
return;
}
if (arg0Value instanceof TruffleStringBuilderUTF16) {
TruffleStringBuilderUTF16 arg0Value_ = (TruffleStringBuilderUTF16) arg0Value;
state_0 = state_0 | 0b10 /* add SpecializationActive[TruffleStringBuilder.AppendLongNumberNode.doAppend(TruffleStringBuilderUTF16, long, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)] */;
this.state_0_ = state_0;
doAppend(arg0Value_, arg1Value, INLINED_STRIDE0_PROFILE, INLINED_BUFFER_GROW_PROFILE, INLINED_ERROR_PROFILE);
return;
}
if (arg0Value instanceof TruffleStringBuilderUTF32) {
TruffleStringBuilderUTF32 arg0Value_ = (TruffleStringBuilderUTF32) arg0Value;
state_0 = state_0 | 0b100 /* add SpecializationActive[TruffleStringBuilder.AppendLongNumberNode.doAppend(TruffleStringBuilderUTF32, long, InlinedConditionProfile, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)] */;
this.state_0_ = state_0;
doAppend(arg0Value_, arg1Value, INLINED_STRIDE0_PROFILE, INLINED_APPEND2_STRIDE1_PROFILE_, INLINED_BUFFER_GROW_PROFILE, INLINED_ERROR_PROFILE);
return;
}
if (arg0Value instanceof TruffleStringBuilderGeneric) {
TruffleStringBuilderGeneric arg0Value_ = (TruffleStringBuilderGeneric) arg0Value;
state_0 = state_0 | 0b1000 /* add SpecializationActive[TruffleStringBuilder.AppendLongNumberNode.doAppend(TruffleStringBuilderGeneric, long, InlinedBranchProfile, InlinedBranchProfile)] */;
this.state_0_ = state_0;
doAppend(arg0Value_, arg1Value, INLINED_BUFFER_GROW_PROFILE, INLINED_ERROR_PROFILE);
return;
}
throw new UnsupportedSpecializationException(this, null, arg0Value, arg1Value);
}
@TruffleBoundary
private static UnsupportedSpecializationException newUnsupportedSpecializationException2LJ(Node thisNode_, Object arg0Value, long arg1Value) {
return new UnsupportedSpecializationException(thisNode_, null, arg0Value, arg1Value);
}
@NeverDefault
public static AppendLongNumberNode create() {
return new AppendLongNumberNodeGen();
}
@NeverDefault
public static AppendLongNumberNode getUncached() {
return AppendLongNumberNodeGen.UNCACHED;
}
@GeneratedBy(AppendLongNumberNode.class)
@DenyReplace
private static final class Uncached extends AppendLongNumberNode implements UnadoptableNode {
@TruffleBoundary
@Override
public void execute(TruffleStringBuilder arg0Value, long arg1Value) {
if (arg0Value instanceof TruffleStringBuilderUTF8) {
TruffleStringBuilderUTF8 arg0Value_ = (TruffleStringBuilderUTF8) arg0Value;
doAppend(arg0Value_, arg1Value, (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()));
return;
}
if (arg0Value instanceof TruffleStringBuilderUTF16) {
TruffleStringBuilderUTF16 arg0Value_ = (TruffleStringBuilderUTF16) arg0Value;
doAppend(arg0Value_, arg1Value, (InlinedConditionProfile.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()));
return;
}
if (arg0Value instanceof TruffleStringBuilderUTF32) {
TruffleStringBuilderUTF32 arg0Value_ = (TruffleStringBuilderUTF32) arg0Value;
doAppend(arg0Value_, arg1Value, (InlinedConditionProfile.getUncached()), (InlinedConditionProfile.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()));
return;
}
if (arg0Value instanceof TruffleStringBuilderGeneric) {
TruffleStringBuilderGeneric arg0Value_ = (TruffleStringBuilderGeneric) arg0Value;
doAppend(arg0Value_, arg1Value, (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()));
return;
}
throw newUnsupportedSpecializationException2LJ(this, arg0Value, arg1Value);
}
}
}
/**
* Debug Info:
* Specialization {@link AppendStringNode#append}
* Activation probability: 1.00000
* With/without class size: 36/16 bytes
*
*/
@GeneratedBy(AppendStringNode.class)
@SuppressWarnings("javadoc")
static final class AppendStringNodeGen extends AppendStringNode {
private static final StateField STATE_0_AppendStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField STATE_1_AppendStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_1_");
private static final StateField STATE_2_AppendStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_2_");
private static final StateField STATE_3_AppendStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_3_");
/**
* Source Info:
* Specialization: {@link AppendStringNode#append}
* Parameter: {@link AppendStringIntlNode} intlNode
* Inline method: {@link AppendStringIntlNodeGen#inline}
*/
private static final AppendStringIntlNode INLINED_INTL_NODE_ = AppendStringIntlNodeGen.inline(InlineTarget.create(AppendStringIntlNode.class, STATE_0_AppendStringNode_UPDATER.subUpdater(0, 15), STATE_1_AppendStringNode_UPDATER.subUpdater(0, 25), STATE_2_AppendStringNode_UPDATER.subUpdater(0, 25), STATE_3_AppendStringNode_UPDATER.subUpdater(0, 25), ReferenceField.create(MethodHandles.lookup(), "intlNode__field4_", Node.class)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-14: InlinedCache
* Specialization: {@link AppendStringNode#append}
* Parameter: {@link AppendStringIntlNode} intlNode
* Inline method: {@link AppendStringIntlNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link AppendStringNode#append}
* Parameter: {@link AppendStringIntlNode} intlNode
* Inline method: {@link AppendStringIntlNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_1_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link AppendStringNode#append}
* Parameter: {@link AppendStringIntlNode} intlNode
* Inline method: {@link AppendStringIntlNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_2_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link AppendStringNode#append}
* Parameter: {@link AppendStringIntlNode} intlNode
* Inline method: {@link AppendStringIntlNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_3_;
/**
* Source Info:
* Specialization: {@link AppendStringNode#append}
* Parameter: {@link AppendStringIntlNode} intlNode
* Inline method: {@link AppendStringIntlNodeGen#inline}
* Inline field: {@link Node} field4
*/
@Child @UnsafeAccessedField @SuppressWarnings("unused") private Node intlNode__field4_;
private AppendStringNodeGen() {
}
@Override
public void execute(TruffleStringBuilder arg0Value, AbstractTruffleString arg1Value) {
append(arg0Value, arg1Value, INLINED_INTL_NODE_);
return;
}
@NeverDefault
public static AppendStringNode create() {
return new AppendStringNodeGen();
}
@NeverDefault
public static AppendStringNode getUncached() {
return AppendStringNodeGen.UNCACHED;
}
@GeneratedBy(AppendStringNode.class)
@DenyReplace
private static final class Uncached extends AppendStringNode implements UnadoptableNode {
@TruffleBoundary
@Override
public void execute(TruffleStringBuilder arg0Value, AbstractTruffleString arg1Value) {
append(arg0Value, arg1Value, (AppendStringIntlNodeGen.getUncached()));
return;
}
}
}
/**
* Debug Info:
* Specialization {@link AppendStringIntlNode#append(Node, TruffleStringBuilderUTF8, AbstractTruffleString, ToIndexableNode, InlinedBranchProfile, InlinedBranchProfile)}
* Activation probability: 0.38500
* With/without class size: 10/0 bytes
* Specialization {@link AppendStringIntlNode#append(Node, TruffleStringBuilderUTF16, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, GetCodePointLengthNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Activation probability: 0.29500
* With/without class size: 11/7 bytes
* Specialization {@link AppendStringIntlNode#append(Node, TruffleStringBuilderUTF32, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Activation probability: 0.20500
* With/without class size: 8/4 bytes
* Specialization {@link AppendStringIntlNode#append(Node, TruffleStringBuilderGeneric, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, GetCodePointLengthNode, InlinedBranchProfile, InlinedBranchProfile)}
* Activation probability: 0.11500
* With/without class size: 6/8 bytes
*
*/
@GeneratedBy(AppendStringIntlNode.class)
@SuppressWarnings("javadoc")
static final class AppendStringIntlNodeGen {
private static final StateField APPEND3__APPEND_STRING_INTL_NODE_APPEND3_STATE_0_UPDATER = StateField.create(Append3Data.lookup_(), "append3_state_0_");
private static final StateField APPEND3__APPEND_STRING_INTL_NODE_APPEND3_STATE_1_UPDATER = StateField.create(Append3Data.lookup_(), "append3_state_1_");
private static final Uncached UNCACHED = new Uncached();
@TruffleBoundary
private static UnsupportedSpecializationException newUnsupportedSpecializationException3(Node thisNode_, Object arg0Value, Object arg1Value, Object arg2Value) {
return new UnsupportedSpecializationException(thisNode_, null, arg0Value, arg1Value, arg2Value);
}
@NeverDefault
public static AppendStringIntlNode getUncached() {
return AppendStringIntlNodeGen.UNCACHED;
}
/**
* Required Fields:
* - {@link Inlined#state_0_}
*
- {@link Inlined#state_1_}
*
- {@link Inlined#state_2_}
*
- {@link Inlined#state_3_}
*
- {@link Inlined#append3_cache}
*
*/
@NeverDefault
public static AppendStringIntlNode inline(@RequiredField(bits = 15, value = StateField.class)@RequiredField(bits = 25, value = StateField.class)@RequiredField(bits = 25, value = StateField.class)@RequiredField(bits = 25, value = StateField.class)@RequiredField(type = Node.class, value = ReferenceField.class) InlineTarget target) {
return new AppendStringIntlNodeGen.Inlined(target);
}
@GeneratedBy(AppendStringIntlNode.class)
@DenyReplace
private static final class Inlined extends AppendStringIntlNode implements UnadoptableNode {
/**
* State Info:
* 0: SpecializationActive {@link AppendStringIntlNode#append(Node, TruffleStringBuilderUTF8, AbstractTruffleString, ToIndexableNode, InlinedBranchProfile, InlinedBranchProfile)}
* 1: SpecializationActive {@link AppendStringIntlNode#append(Node, TruffleStringBuilderUTF16, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, GetCodePointLengthNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* 2: SpecializationActive {@link AppendStringIntlNode#append(Node, TruffleStringBuilderUTF32, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* 3: SpecializationActive {@link AppendStringIntlNode#append(Node, TruffleStringBuilderGeneric, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, GetCodePointLengthNode, InlinedBranchProfile, InlinedBranchProfile)}
* 4-10: InlinedCache
* Specialization: {@link AppendStringIntlNode#append(Node, TruffleStringBuilderUTF8, AbstractTruffleString, ToIndexableNode, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
* 11: InlinedCache
* Specialization: {@link AppendStringIntlNode#append(Node, TruffleStringBuilderUTF8, AbstractTruffleString, ToIndexableNode, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} bufferGrowProfile
* Inline method: {@link InlinedBranchProfile#inline}
* 12: InlinedCache
* Specialization: {@link AppendStringIntlNode#append(Node, TruffleStringBuilderUTF8, AbstractTruffleString, ToIndexableNode, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} errorProfile
* Inline method: {@link InlinedBranchProfile#inline}
* 13: InlinedCache
* Specialization: {@link AppendStringIntlNode#append(Node, TruffleStringBuilderUTF16, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, GetCodePointLengthNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} slowPathProfile
* Inline method: {@link InlinedBranchProfile#inline}
* 14: InlinedCache
* Specialization: {@link AppendStringIntlNode#append(Node, TruffleStringBuilderUTF16, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, GetCodePointLengthNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} inflateProfile
* Inline method: {@link InlinedBranchProfile#inline}
*
*/
private final StateField state_0_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link AppendStringIntlNode#append(Node, TruffleStringBuilderUTF16, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, GetCodePointLengthNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link GetPreciseCodeRangeNode} getPreciseCodeRangeNode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
*
*/
private final StateField state_1_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link AppendStringIntlNode#append(Node, TruffleStringBuilderUTF16, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, GetCodePointLengthNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthNode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
*
*/
private final StateField state_2_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link AppendStringIntlNode#append(Node, TruffleStringBuilderUTF32, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link GetPreciseCodeRangeNode} getPreciseCodeRangeNode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
*
*/
private final StateField state_3_;
private final ReferenceField append3_cache;
/**
* Source Info:
* Specialization: {@link AppendStringIntlNode#append(Node, TruffleStringBuilderUTF8, AbstractTruffleString, ToIndexableNode, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private final ToIndexableNode toIndexableNode;
/**
* Source Info:
* Specialization: {@link AppendStringIntlNode#append(Node, TruffleStringBuilderUTF8, AbstractTruffleString, ToIndexableNode, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} bufferGrowProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private final InlinedBranchProfile bufferGrowProfile;
/**
* Source Info:
* Specialization: {@link AppendStringIntlNode#append(Node, TruffleStringBuilderUTF8, AbstractTruffleString, ToIndexableNode, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} errorProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private final InlinedBranchProfile errorProfile;
/**
* Source Info:
* Specialization: {@link AppendStringIntlNode#append(Node, TruffleStringBuilderUTF16, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, GetCodePointLengthNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} slowPathProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private final InlinedBranchProfile slowPathProfile;
/**
* Source Info:
* Specialization: {@link AppendStringIntlNode#append(Node, TruffleStringBuilderUTF16, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, GetCodePointLengthNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} inflateProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private final InlinedBranchProfile inflateProfile;
/**
* Source Info:
* Specialization: {@link AppendStringIntlNode#append(Node, TruffleStringBuilderUTF16, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, GetCodePointLengthNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link GetPreciseCodeRangeNode} getPreciseCodeRangeNode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
*/
private final GetPreciseCodeRangeNode append1_getPreciseCodeRangeNode_;
/**
* Source Info:
* Specialization: {@link AppendStringIntlNode#append(Node, TruffleStringBuilderUTF16, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, GetCodePointLengthNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthNode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
*/
private final GetCodePointLengthNode append1_getCodePointLengthNode_;
/**
* Source Info:
* Specialization: {@link AppendStringIntlNode#append(Node, TruffleStringBuilderUTF32, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link GetPreciseCodeRangeNode} getPreciseCodeRangeNode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
*/
private final GetPreciseCodeRangeNode append2_getPreciseCodeRangeNode_;
/**
* Source Info:
* Specialization: {@link AppendStringIntlNode#append(Node, TruffleStringBuilderGeneric, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, GetCodePointLengthNode, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private final ToIndexableNode append3_toIndexableNode_;
/**
* Source Info:
* Specialization: {@link AppendStringIntlNode#append(Node, TruffleStringBuilderGeneric, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, GetCodePointLengthNode, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link GetPreciseCodeRangeNode} getPreciseCodeRangeNode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
*/
private final GetPreciseCodeRangeNode append3_getPreciseCodeRangeNode_;
/**
* Source Info:
* Specialization: {@link AppendStringIntlNode#append(Node, TruffleStringBuilderGeneric, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, GetCodePointLengthNode, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthNode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
*/
private final GetCodePointLengthNode append3_getCodePointLengthNode_;
/**
* Source Info:
* Specialization: {@link AppendStringIntlNode#append(Node, TruffleStringBuilderGeneric, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, GetCodePointLengthNode, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} bufferGrowProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private final InlinedBranchProfile append3_bufferGrowProfile_;
/**
* Source Info:
* Specialization: {@link AppendStringIntlNode#append(Node, TruffleStringBuilderGeneric, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, GetCodePointLengthNode, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} errorProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private final InlinedBranchProfile append3_errorProfile_;
@SuppressWarnings("unchecked")
private Inlined(InlineTarget target) {
assert target.getTargetClass().isAssignableFrom(AppendStringIntlNode.class);
this.state_0_ = target.getState(0, 15);
this.state_1_ = target.getState(1, 25);
this.state_2_ = target.getState(2, 25);
this.state_3_ = target.getState(3, 25);
this.append3_cache = target.getReference(4, Append3Data.class);
this.toIndexableNode = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, state_0_.subUpdater(4, 7)));
this.bufferGrowProfile = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, state_0_.subUpdater(11, 1)));
this.errorProfile = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, state_0_.subUpdater(12, 1)));
this.slowPathProfile = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, state_0_.subUpdater(13, 1)));
this.inflateProfile = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, state_0_.subUpdater(14, 1)));
this.append1_getPreciseCodeRangeNode_ = GetPreciseCodeRangeNodeGen.inline(InlineTarget.create(GetPreciseCodeRangeNode.class, state_1_.subUpdater(0, 25)));
this.append1_getCodePointLengthNode_ = GetCodePointLengthNodeGen.inline(InlineTarget.create(GetCodePointLengthNode.class, state_2_.subUpdater(0, 25)));
this.append2_getPreciseCodeRangeNode_ = GetPreciseCodeRangeNodeGen.inline(InlineTarget.create(GetPreciseCodeRangeNode.class, state_3_.subUpdater(0, 25)));
this.append3_toIndexableNode_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, APPEND3__APPEND_STRING_INTL_NODE_APPEND3_STATE_0_UPDATER.subUpdater(0, 7)));
this.append3_getPreciseCodeRangeNode_ = GetPreciseCodeRangeNodeGen.inline(InlineTarget.create(GetPreciseCodeRangeNode.class, APPEND3__APPEND_STRING_INTL_NODE_APPEND3_STATE_0_UPDATER.subUpdater(7, 25)));
this.append3_getCodePointLengthNode_ = GetCodePointLengthNodeGen.inline(InlineTarget.create(GetCodePointLengthNode.class, APPEND3__APPEND_STRING_INTL_NODE_APPEND3_STATE_1_UPDATER.subUpdater(0, 25)));
this.append3_bufferGrowProfile_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, APPEND3__APPEND_STRING_INTL_NODE_APPEND3_STATE_1_UPDATER.subUpdater(25, 1)));
this.append3_errorProfile_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, APPEND3__APPEND_STRING_INTL_NODE_APPEND3_STATE_1_UPDATER.subUpdater(26, 1)));
}
@Override
public void execute(Node arg0Value, TruffleStringBuilder arg1Value, AbstractTruffleString arg2Value) {
int state_0 = this.state_0_.get(arg0Value);
if ((state_0 & 0b1111) != 0 /* is SpecializationActive[TruffleStringBuilder.AppendStringIntlNode.append(Node, TruffleStringBuilderUTF8, AbstractTruffleString, ToIndexableNode, InlinedBranchProfile, InlinedBranchProfile)] || SpecializationActive[TruffleStringBuilder.AppendStringIntlNode.append(Node, TruffleStringBuilderUTF16, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, GetCodePointLengthNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)] || SpecializationActive[TruffleStringBuilder.AppendStringIntlNode.append(Node, TruffleStringBuilderUTF32, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)] || SpecializationActive[TruffleStringBuilder.AppendStringIntlNode.append(Node, TruffleStringBuilderGeneric, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, GetCodePointLengthNode, InlinedBranchProfile, InlinedBranchProfile)] */) {
if ((state_0 & 0b1) != 0 /* is SpecializationActive[TruffleStringBuilder.AppendStringIntlNode.append(Node, TruffleStringBuilderUTF8, AbstractTruffleString, ToIndexableNode, InlinedBranchProfile, InlinedBranchProfile)] */ && arg1Value instanceof TruffleStringBuilderUTF8) {
TruffleStringBuilderUTF8 arg1Value_ = (TruffleStringBuilderUTF8) arg1Value;
AppendStringIntlNode.append(arg0Value, arg1Value_, arg2Value, this.toIndexableNode, this.bufferGrowProfile, this.errorProfile);
return;
}
if ((state_0 & 0b10) != 0 /* is SpecializationActive[TruffleStringBuilder.AppendStringIntlNode.append(Node, TruffleStringBuilderUTF16, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, GetCodePointLengthNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)] */ && arg1Value instanceof TruffleStringBuilderUTF16) {
TruffleStringBuilderUTF16 arg1Value_ = (TruffleStringBuilderUTF16) arg1Value;
assert InlineSupport.validate(arg0Value, this.state_1_, this.state_2_);
AppendStringIntlNode.append(arg0Value, arg1Value_, arg2Value, this.toIndexableNode, this.append1_getPreciseCodeRangeNode_, this.append1_getCodePointLengthNode_, this.slowPathProfile, this.inflateProfile, this.bufferGrowProfile, this.errorProfile);
return;
}
if ((state_0 & 0b100) != 0 /* is SpecializationActive[TruffleStringBuilder.AppendStringIntlNode.append(Node, TruffleStringBuilderUTF32, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)] */ && arg1Value instanceof TruffleStringBuilderUTF32) {
TruffleStringBuilderUTF32 arg1Value_ = (TruffleStringBuilderUTF32) arg1Value;
assert InlineSupport.validate(arg0Value, this.state_3_);
AppendStringIntlNode.append(arg0Value, arg1Value_, arg2Value, this.toIndexableNode, this.append2_getPreciseCodeRangeNode_, this.slowPathProfile, this.inflateProfile, this.bufferGrowProfile, this.errorProfile);
return;
}
if ((state_0 & 0b1000) != 0 /* is SpecializationActive[TruffleStringBuilder.AppendStringIntlNode.append(Node, TruffleStringBuilderGeneric, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, GetCodePointLengthNode, InlinedBranchProfile, InlinedBranchProfile)] */ && arg1Value instanceof TruffleStringBuilderGeneric) {
TruffleStringBuilderGeneric arg1Value_ = (TruffleStringBuilderGeneric) arg1Value;
Append3Data s3_ = this.append3_cache.get(arg0Value);
if (s3_ != null) {
AppendStringIntlNode.append(s3_, arg1Value_, arg2Value, this.append3_toIndexableNode_, this.append3_getPreciseCodeRangeNode_, this.append3_getCodePointLengthNode_, this.append3_bufferGrowProfile_, this.append3_errorProfile_);
return;
}
}
}
CompilerDirectives.transferToInterpreterAndInvalidate();
executeAndSpecialize(arg0Value, arg1Value, arg2Value);
return;
}
private void executeAndSpecialize(Node arg0Value, TruffleStringBuilder arg1Value, AbstractTruffleString arg2Value) {
int state_0 = this.state_0_.get(arg0Value);
if (arg1Value instanceof TruffleStringBuilderUTF8) {
TruffleStringBuilderUTF8 arg1Value_ = (TruffleStringBuilderUTF8) arg1Value;
state_0 = state_0 | 0b1 /* add SpecializationActive[TruffleStringBuilder.AppendStringIntlNode.append(Node, TruffleStringBuilderUTF8, AbstractTruffleString, ToIndexableNode, InlinedBranchProfile, InlinedBranchProfile)] */;
this.state_0_.set(arg0Value, state_0);
AppendStringIntlNode.append(arg0Value, arg1Value_, arg2Value, this.toIndexableNode, this.bufferGrowProfile, this.errorProfile);
return;
}
if (arg1Value instanceof TruffleStringBuilderUTF16) {
TruffleStringBuilderUTF16 arg1Value_ = (TruffleStringBuilderUTF16) arg1Value;
state_0 = state_0 | 0b10 /* add SpecializationActive[TruffleStringBuilder.AppendStringIntlNode.append(Node, TruffleStringBuilderUTF16, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, GetCodePointLengthNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)] */;
this.state_0_.set(arg0Value, state_0);
assert InlineSupport.validate(arg0Value, this.state_1_, this.state_2_);
AppendStringIntlNode.append(arg0Value, arg1Value_, arg2Value, this.toIndexableNode, this.append1_getPreciseCodeRangeNode_, this.append1_getCodePointLengthNode_, this.slowPathProfile, this.inflateProfile, this.bufferGrowProfile, this.errorProfile);
return;
}
if (arg1Value instanceof TruffleStringBuilderUTF32) {
TruffleStringBuilderUTF32 arg1Value_ = (TruffleStringBuilderUTF32) arg1Value;
state_0 = state_0 | 0b100 /* add SpecializationActive[TruffleStringBuilder.AppendStringIntlNode.append(Node, TruffleStringBuilderUTF32, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)] */;
this.state_0_.set(arg0Value, state_0);
assert InlineSupport.validate(arg0Value, this.state_3_);
AppendStringIntlNode.append(arg0Value, arg1Value_, arg2Value, this.toIndexableNode, this.append2_getPreciseCodeRangeNode_, this.slowPathProfile, this.inflateProfile, this.bufferGrowProfile, this.errorProfile);
return;
}
if (arg1Value instanceof TruffleStringBuilderGeneric) {
TruffleStringBuilderGeneric arg1Value_ = (TruffleStringBuilderGeneric) arg1Value;
Append3Data s3_ = arg0Value.insert(new Append3Data());
VarHandle.storeStoreFence();
this.append3_cache.set(arg0Value, s3_);
state_0 = state_0 | 0b1000 /* add SpecializationActive[TruffleStringBuilder.AppendStringIntlNode.append(Node, TruffleStringBuilderGeneric, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, GetCodePointLengthNode, InlinedBranchProfile, InlinedBranchProfile)] */;
this.state_0_.set(arg0Value, state_0);
AppendStringIntlNode.append(s3_, arg1Value_, arg2Value, this.append3_toIndexableNode_, this.append3_getPreciseCodeRangeNode_, this.append3_getCodePointLengthNode_, this.append3_bufferGrowProfile_, this.append3_errorProfile_);
return;
}
throw newUnsupportedSpecializationException3(this, arg0Value, arg1Value, arg2Value);
}
}
@GeneratedBy(AppendStringIntlNode.class)
@DenyReplace
private static final class Append3Data extends Node implements SpecializationDataNode {
/**
* State Info:
* 0-6: InlinedCache
* Specialization: {@link AppendStringIntlNode#append(Node, TruffleStringBuilderGeneric, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, GetCodePointLengthNode, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
* 7-31: InlinedCache
* Specialization: {@link AppendStringIntlNode#append(Node, TruffleStringBuilderGeneric, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, GetCodePointLengthNode, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link GetPreciseCodeRangeNode} getPreciseCodeRangeNode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int append3_state_0_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link AppendStringIntlNode#append(Node, TruffleStringBuilderGeneric, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, GetCodePointLengthNode, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthNode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
* 25: InlinedCache
* Specialization: {@link AppendStringIntlNode#append(Node, TruffleStringBuilderGeneric, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, GetCodePointLengthNode, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} bufferGrowProfile
* Inline method: {@link InlinedBranchProfile#inline}
* 26: InlinedCache
* Specialization: {@link AppendStringIntlNode#append(Node, TruffleStringBuilderGeneric, AbstractTruffleString, ToIndexableNode, GetPreciseCodeRangeNode, GetCodePointLengthNode, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} errorProfile
* Inline method: {@link InlinedBranchProfile#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int append3_state_1_;
Append3Data() {
}
private static Lookup lookup_() {
return MethodHandles.lookup();
}
}
@GeneratedBy(AppendStringIntlNode.class)
@DenyReplace
private static final class Uncached extends AppendStringIntlNode implements UnadoptableNode {
@TruffleBoundary
@Override
public void execute(Node arg0Value, TruffleStringBuilder arg1Value, AbstractTruffleString arg2Value) {
if (arg1Value instanceof TruffleStringBuilderUTF8) {
TruffleStringBuilderUTF8 arg1Value_ = (TruffleStringBuilderUTF8) arg1Value;
AppendStringIntlNode.append(arg0Value, arg1Value_, arg2Value, (ToIndexableNode.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()));
return;
}
if (arg1Value instanceof TruffleStringBuilderUTF16) {
TruffleStringBuilderUTF16 arg1Value_ = (TruffleStringBuilderUTF16) arg1Value;
AppendStringIntlNode.append(arg0Value, arg1Value_, arg2Value, (ToIndexableNode.getUncached()), (GetPreciseCodeRangeNodeGen.getUncached()), (GetCodePointLengthNode.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()));
return;
}
if (arg1Value instanceof TruffleStringBuilderUTF32) {
TruffleStringBuilderUTF32 arg1Value_ = (TruffleStringBuilderUTF32) arg1Value;
AppendStringIntlNode.append(arg0Value, arg1Value_, arg2Value, (ToIndexableNode.getUncached()), (GetPreciseCodeRangeNodeGen.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()));
return;
}
if (arg1Value instanceof TruffleStringBuilderGeneric) {
TruffleStringBuilderGeneric arg1Value_ = (TruffleStringBuilderGeneric) arg1Value;
AppendStringIntlNode.append(arg0Value, arg1Value_, arg2Value, (ToIndexableNode.getUncached()), (GetPreciseCodeRangeNodeGen.getUncached()), (GetCodePointLengthNode.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()));
return;
}
throw newUnsupportedSpecializationException3(this, arg0Value, arg1Value, arg2Value);
}
}
}
/**
* Debug Info:
* Specialization {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderUTF8, AbstractTruffleString, int, int, ToIndexableNode, InlinedBranchProfile, InlinedBranchProfile)}
* Activation probability: 0.38500
* With/without class size: 10/0 bytes
* Specialization {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderUTF16, AbstractTruffleString, int, int, ToIndexableNode, GetPreciseCodeRangeNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Activation probability: 0.29500
* With/without class size: 8/0 bytes
* Specialization {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderUTF32, AbstractTruffleString, int, int, ToIndexableNode, GetPreciseCodeRangeNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Activation probability: 0.20500
* With/without class size: 7/0 bytes
* Specialization {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderGeneric, AbstractTruffleString, int, int, Node, ToIndexableNode, GetCodePointLengthNode, GetPreciseCodeRangeNode, CalcStringAttributesNode, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Activation probability: 0.11500
* With/without class size: 7/10 bytes
*
*/
@GeneratedBy(AppendSubstringByteIndexNode.class)
@SuppressWarnings("javadoc")
static final class AppendSubstringByteIndexNodeGen extends AppendSubstringByteIndexNode {
private static final StateField STATE_0_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField STATE_1_UPDATER = StateField.create(MethodHandles.lookup(), "state_1_");
private static final StateField APPEND3__APPEND_SUBSTRING_BYTE_INDEX_NODE_APPEND3_STATE_0_UPDATER = StateField.create(Append3Data.lookup_(), "append3_state_0_");
private static final StateField APPEND3__APPEND_SUBSTRING_BYTE_INDEX_NODE_APPEND3_STATE_1_UPDATER = StateField.create(Append3Data.lookup_(), "append3_state_1_");
private static final StateField APPEND3__APPEND_SUBSTRING_BYTE_INDEX_NODE_APPEND3_STATE_2_UPDATER = StateField.create(Append3Data.lookup_(), "append3_state_2_");
/**
* Source Info:
* Specialization: {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderUTF8, AbstractTruffleString, int, int, ToIndexableNode, InlinedBranchProfile, InlinedBranchProfile)}
* 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(4, 7)));
/**
* Source Info:
* Specialization: {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderUTF8, AbstractTruffleString, int, int, ToIndexableNode, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} bufferGrowProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private static final InlinedBranchProfile INLINED_BUFFER_GROW_PROFILE = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, STATE_0_UPDATER.subUpdater(11, 1)));
/**
* Source Info:
* Specialization: {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderUTF8, AbstractTruffleString, int, int, ToIndexableNode, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} errorProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private static final InlinedBranchProfile INLINED_ERROR_PROFILE = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, STATE_0_UPDATER.subUpdater(12, 1)));
/**
* Source Info:
* Specialization: {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderUTF16, AbstractTruffleString, int, int, ToIndexableNode, GetPreciseCodeRangeNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* 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_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderUTF16, AbstractTruffleString, int, int, ToIndexableNode, GetPreciseCodeRangeNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} slowPathProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private static final InlinedBranchProfile INLINED_SLOW_PATH_PROFILE = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, STATE_0_UPDATER.subUpdater(13, 1)));
/**
* Source Info:
* Specialization: {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderUTF16, AbstractTruffleString, int, int, ToIndexableNode, GetPreciseCodeRangeNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} inflateProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private static final InlinedBranchProfile INLINED_INFLATE_PROFILE = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, STATE_0_UPDATER.subUpdater(14, 1)));
/**
* Source Info:
* Specialization: {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderGeneric, AbstractTruffleString, int, int, Node, ToIndexableNode, GetCodePointLengthNode, GetPreciseCodeRangeNode, CalcStringAttributesNode, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
*/
private static final ToIndexableNode INLINED_APPEND3_TO_INDEXABLE_NODE_ = ToIndexableNodeGen.inline(InlineTarget.create(ToIndexableNode.class, APPEND3__APPEND_SUBSTRING_BYTE_INDEX_NODE_APPEND3_STATE_0_UPDATER.subUpdater(0, 7)));
/**
* Source Info:
* Specialization: {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderGeneric, AbstractTruffleString, int, int, Node, ToIndexableNode, GetCodePointLengthNode, GetPreciseCodeRangeNode, CalcStringAttributesNode, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthNode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
*/
private static final GetCodePointLengthNode INLINED_APPEND3_GET_CODE_POINT_LENGTH_NODE_ = GetCodePointLengthNodeGen.inline(InlineTarget.create(GetCodePointLengthNode.class, APPEND3__APPEND_SUBSTRING_BYTE_INDEX_NODE_APPEND3_STATE_0_UPDATER.subUpdater(7, 25)));
/**
* Source Info:
* Specialization: {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderGeneric, AbstractTruffleString, int, int, Node, ToIndexableNode, GetCodePointLengthNode, GetPreciseCodeRangeNode, CalcStringAttributesNode, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link GetPreciseCodeRangeNode} getPreciseCodeRangeNode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
*/
private static final GetPreciseCodeRangeNode INLINED_APPEND3_GET_PRECISE_CODE_RANGE_NODE_ = GetPreciseCodeRangeNodeGen.inline(InlineTarget.create(GetPreciseCodeRangeNode.class, APPEND3__APPEND_SUBSTRING_BYTE_INDEX_NODE_APPEND3_STATE_1_UPDATER.subUpdater(0, 25)));
/**
* Source Info:
* Specialization: {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderGeneric, AbstractTruffleString, int, int, Node, ToIndexableNode, GetCodePointLengthNode, GetPreciseCodeRangeNode, CalcStringAttributesNode, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link CalcStringAttributesNode} calcAttributesNode
* Inline method: {@link CalcStringAttributesNodeGen#inline}
*/
private static final CalcStringAttributesNode INLINED_APPEND3_CALC_ATTRIBUTES_NODE_ = CalcStringAttributesNodeGen.inline(InlineTarget.create(CalcStringAttributesNode.class, APPEND3__APPEND_SUBSTRING_BYTE_INDEX_NODE_APPEND3_STATE_2_UPDATER.subUpdater(0, 16)));
/**
* Source Info:
* Specialization: {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderGeneric, AbstractTruffleString, int, int, Node, ToIndexableNode, GetCodePointLengthNode, GetPreciseCodeRangeNode, CalcStringAttributesNode, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedConditionProfile} calcAttrsProfile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_APPEND3_CALC_ATTRS_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, APPEND3__APPEND_SUBSTRING_BYTE_INDEX_NODE_APPEND3_STATE_1_UPDATER.subUpdater(25, 2)));
/**
* Source Info:
* Specialization: {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderGeneric, AbstractTruffleString, int, int, Node, ToIndexableNode, GetCodePointLengthNode, GetPreciseCodeRangeNode, CalcStringAttributesNode, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} bufferGrowProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private static final InlinedBranchProfile INLINED_APPEND3_BUFFER_GROW_PROFILE_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, APPEND3__APPEND_SUBSTRING_BYTE_INDEX_NODE_APPEND3_STATE_1_UPDATER.subUpdater(27, 1)));
/**
* Source Info:
* Specialization: {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderGeneric, AbstractTruffleString, int, int, Node, ToIndexableNode, GetCodePointLengthNode, GetPreciseCodeRangeNode, CalcStringAttributesNode, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} errorProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private static final InlinedBranchProfile INLINED_APPEND3_ERROR_PROFILE_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, APPEND3__APPEND_SUBSTRING_BYTE_INDEX_NODE_APPEND3_STATE_1_UPDATER.subUpdater(28, 1)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0: SpecializationActive {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderUTF8, AbstractTruffleString, int, int, ToIndexableNode, InlinedBranchProfile, InlinedBranchProfile)}
* 1: SpecializationActive {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderUTF16, AbstractTruffleString, int, int, ToIndexableNode, GetPreciseCodeRangeNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* 2: SpecializationActive {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderUTF32, AbstractTruffleString, int, int, ToIndexableNode, GetPreciseCodeRangeNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* 3: SpecializationActive {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderGeneric, AbstractTruffleString, int, int, Node, ToIndexableNode, GetCodePointLengthNode, GetPreciseCodeRangeNode, CalcStringAttributesNode, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)}
* 4-10: InlinedCache
* Specialization: {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderUTF8, AbstractTruffleString, int, int, ToIndexableNode, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
* 11: InlinedCache
* Specialization: {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderUTF8, AbstractTruffleString, int, int, ToIndexableNode, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} bufferGrowProfile
* Inline method: {@link InlinedBranchProfile#inline}
* 12: InlinedCache
* Specialization: {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderUTF8, AbstractTruffleString, int, int, ToIndexableNode, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} errorProfile
* Inline method: {@link InlinedBranchProfile#inline}
* 13: InlinedCache
* Specialization: {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderUTF16, AbstractTruffleString, int, int, ToIndexableNode, GetPreciseCodeRangeNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} slowPathProfile
* Inline method: {@link InlinedBranchProfile#inline}
* 14: InlinedCache
* Specialization: {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderUTF16, AbstractTruffleString, int, int, ToIndexableNode, GetPreciseCodeRangeNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} inflateProfile
* Inline method: {@link InlinedBranchProfile#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderUTF16, AbstractTruffleString, int, int, ToIndexableNode, GetPreciseCodeRangeNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link GetPreciseCodeRangeNode} getPreciseCodeRangeNode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_1_;
@Child private Append3Data append3_cache;
private AppendSubstringByteIndexNodeGen() {
}
@Override
public void execute(TruffleStringBuilder arg0Value, AbstractTruffleString arg1Value, int arg2Value, int arg3Value) {
int state_0 = this.state_0_;
if ((state_0 & 0b1111) != 0 /* is SpecializationActive[TruffleStringBuilder.AppendSubstringByteIndexNode.append(TruffleStringBuilderUTF8, AbstractTruffleString, int, int, ToIndexableNode, InlinedBranchProfile, InlinedBranchProfile)] || SpecializationActive[TruffleStringBuilder.AppendSubstringByteIndexNode.append(TruffleStringBuilderUTF16, AbstractTruffleString, int, int, ToIndexableNode, GetPreciseCodeRangeNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)] || SpecializationActive[TruffleStringBuilder.AppendSubstringByteIndexNode.append(TruffleStringBuilderUTF32, AbstractTruffleString, int, int, ToIndexableNode, GetPreciseCodeRangeNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)] || SpecializationActive[TruffleStringBuilder.AppendSubstringByteIndexNode.append(TruffleStringBuilderGeneric, AbstractTruffleString, int, int, Node, ToIndexableNode, GetCodePointLengthNode, GetPreciseCodeRangeNode, CalcStringAttributesNode, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)] */) {
if ((state_0 & 0b1) != 0 /* is SpecializationActive[TruffleStringBuilder.AppendSubstringByteIndexNode.append(TruffleStringBuilderUTF8, AbstractTruffleString, int, int, ToIndexableNode, InlinedBranchProfile, InlinedBranchProfile)] */ && arg0Value instanceof TruffleStringBuilderUTF8) {
TruffleStringBuilderUTF8 arg0Value_ = (TruffleStringBuilderUTF8) arg0Value;
append(arg0Value_, arg1Value, arg2Value, arg3Value, INLINED_TO_INDEXABLE_NODE, INLINED_BUFFER_GROW_PROFILE, INLINED_ERROR_PROFILE);
return;
}
if ((state_0 & 0b10) != 0 /* is SpecializationActive[TruffleStringBuilder.AppendSubstringByteIndexNode.append(TruffleStringBuilderUTF16, AbstractTruffleString, int, int, ToIndexableNode, GetPreciseCodeRangeNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)] */ && arg0Value instanceof TruffleStringBuilderUTF16) {
TruffleStringBuilderUTF16 arg0Value_ = (TruffleStringBuilderUTF16) arg0Value;
append(arg0Value_, arg1Value, arg2Value, arg3Value, INLINED_TO_INDEXABLE_NODE, INLINED_GET_PRECISE_CODE_RANGE_NODE, INLINED_SLOW_PATH_PROFILE, INLINED_INFLATE_PROFILE, INLINED_BUFFER_GROW_PROFILE, INLINED_ERROR_PROFILE);
return;
}
if ((state_0 & 0b100) != 0 /* is SpecializationActive[TruffleStringBuilder.AppendSubstringByteIndexNode.append(TruffleStringBuilderUTF32, AbstractTruffleString, int, int, ToIndexableNode, GetPreciseCodeRangeNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)] */ && arg0Value instanceof TruffleStringBuilderUTF32) {
TruffleStringBuilderUTF32 arg0Value_ = (TruffleStringBuilderUTF32) arg0Value;
append(arg0Value_, arg1Value, arg2Value, arg3Value, INLINED_TO_INDEXABLE_NODE, INLINED_GET_PRECISE_CODE_RANGE_NODE, INLINED_SLOW_PATH_PROFILE, INLINED_INFLATE_PROFILE, INLINED_BUFFER_GROW_PROFILE, INLINED_ERROR_PROFILE);
return;
}
if ((state_0 & 0b1000) != 0 /* is SpecializationActive[TruffleStringBuilder.AppendSubstringByteIndexNode.append(TruffleStringBuilderGeneric, AbstractTruffleString, int, int, Node, ToIndexableNode, GetCodePointLengthNode, GetPreciseCodeRangeNode, CalcStringAttributesNode, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)] */ && arg0Value instanceof TruffleStringBuilderGeneric) {
TruffleStringBuilderGeneric arg0Value_ = (TruffleStringBuilderGeneric) arg0Value;
Append3Data s3_ = this.append3_cache;
if (s3_ != null) {
{
Node node__ = (s3_);
AppendSubstringByteIndexNode.append(arg0Value_, arg1Value, arg2Value, arg3Value, node__, INLINED_APPEND3_TO_INDEXABLE_NODE_, INLINED_APPEND3_GET_CODE_POINT_LENGTH_NODE_, INLINED_APPEND3_GET_PRECISE_CODE_RANGE_NODE_, INLINED_APPEND3_CALC_ATTRIBUTES_NODE_, INLINED_APPEND3_CALC_ATTRS_PROFILE_, INLINED_APPEND3_BUFFER_GROW_PROFILE_, INLINED_APPEND3_ERROR_PROFILE_);
return;
}
}
}
}
CompilerDirectives.transferToInterpreterAndInvalidate();
executeAndSpecialize(arg0Value, arg1Value, arg2Value, arg3Value);
return;
}
private void executeAndSpecialize(TruffleStringBuilder arg0Value, AbstractTruffleString arg1Value, int arg2Value, int arg3Value) {
int state_0 = this.state_0_;
if (arg0Value instanceof TruffleStringBuilderUTF8) {
TruffleStringBuilderUTF8 arg0Value_ = (TruffleStringBuilderUTF8) arg0Value;
state_0 = state_0 | 0b1 /* add SpecializationActive[TruffleStringBuilder.AppendSubstringByteIndexNode.append(TruffleStringBuilderUTF8, AbstractTruffleString, int, int, ToIndexableNode, InlinedBranchProfile, InlinedBranchProfile)] */;
this.state_0_ = state_0;
append(arg0Value_, arg1Value, arg2Value, arg3Value, INLINED_TO_INDEXABLE_NODE, INLINED_BUFFER_GROW_PROFILE, INLINED_ERROR_PROFILE);
return;
}
if (arg0Value instanceof TruffleStringBuilderUTF16) {
TruffleStringBuilderUTF16 arg0Value_ = (TruffleStringBuilderUTF16) arg0Value;
state_0 = state_0 | 0b10 /* add SpecializationActive[TruffleStringBuilder.AppendSubstringByteIndexNode.append(TruffleStringBuilderUTF16, AbstractTruffleString, int, int, ToIndexableNode, GetPreciseCodeRangeNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)] */;
this.state_0_ = state_0;
append(arg0Value_, arg1Value, arg2Value, arg3Value, INLINED_TO_INDEXABLE_NODE, INLINED_GET_PRECISE_CODE_RANGE_NODE, INLINED_SLOW_PATH_PROFILE, INLINED_INFLATE_PROFILE, INLINED_BUFFER_GROW_PROFILE, INLINED_ERROR_PROFILE);
return;
}
if (arg0Value instanceof TruffleStringBuilderUTF32) {
TruffleStringBuilderUTF32 arg0Value_ = (TruffleStringBuilderUTF32) arg0Value;
state_0 = state_0 | 0b100 /* add SpecializationActive[TruffleStringBuilder.AppendSubstringByteIndexNode.append(TruffleStringBuilderUTF32, AbstractTruffleString, int, int, ToIndexableNode, GetPreciseCodeRangeNode, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)] */;
this.state_0_ = state_0;
append(arg0Value_, arg1Value, arg2Value, arg3Value, INLINED_TO_INDEXABLE_NODE, INLINED_GET_PRECISE_CODE_RANGE_NODE, INLINED_SLOW_PATH_PROFILE, INLINED_INFLATE_PROFILE, INLINED_BUFFER_GROW_PROFILE, INLINED_ERROR_PROFILE);
return;
}
{
Node node__ = null;
if (arg0Value instanceof TruffleStringBuilderGeneric) {
TruffleStringBuilderGeneric arg0Value_ = (TruffleStringBuilderGeneric) arg0Value;
Append3Data s3_ = this.insert(new Append3Data());
node__ = (s3_);
VarHandle.storeStoreFence();
this.append3_cache = s3_;
state_0 = state_0 | 0b1000 /* add SpecializationActive[TruffleStringBuilder.AppendSubstringByteIndexNode.append(TruffleStringBuilderGeneric, AbstractTruffleString, int, int, Node, ToIndexableNode, GetCodePointLengthNode, GetPreciseCodeRangeNode, CalcStringAttributesNode, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)] */;
this.state_0_ = state_0;
AppendSubstringByteIndexNode.append(arg0Value_, arg1Value, arg2Value, arg3Value, node__, INLINED_APPEND3_TO_INDEXABLE_NODE_, INLINED_APPEND3_GET_CODE_POINT_LENGTH_NODE_, INLINED_APPEND3_GET_PRECISE_CODE_RANGE_NODE_, INLINED_APPEND3_CALC_ATTRIBUTES_NODE_, INLINED_APPEND3_CALC_ATTRS_PROFILE_, INLINED_APPEND3_BUFFER_GROW_PROFILE_, INLINED_APPEND3_ERROR_PROFILE_);
return;
}
}
throw new UnsupportedSpecializationException(this, null, arg0Value, arg1Value, arg2Value, arg3Value);
}
@TruffleBoundary
private static UnsupportedSpecializationException newUnsupportedSpecializationException4LLII(Node thisNode_, Object arg0Value, Object arg1Value, int arg2Value, int arg3Value) {
return new UnsupportedSpecializationException(thisNode_, null, arg0Value, arg1Value, arg2Value, arg3Value);
}
@NeverDefault
public static AppendSubstringByteIndexNode create() {
return new AppendSubstringByteIndexNodeGen();
}
@NeverDefault
public static AppendSubstringByteIndexNode getUncached() {
return AppendSubstringByteIndexNodeGen.UNCACHED;
}
@GeneratedBy(AppendSubstringByteIndexNode.class)
@DenyReplace
private static final class Append3Data extends Node implements SpecializationDataNode {
/**
* State Info:
* 0-6: InlinedCache
* Specialization: {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderGeneric, AbstractTruffleString, int, int, Node, ToIndexableNode, GetCodePointLengthNode, GetPreciseCodeRangeNode, CalcStringAttributesNode, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link ToIndexableNode} toIndexableNode
* Inline method: {@link ToIndexableNodeGen#inline}
* 7-31: InlinedCache
* Specialization: {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderGeneric, AbstractTruffleString, int, int, Node, ToIndexableNode, GetCodePointLengthNode, GetPreciseCodeRangeNode, CalcStringAttributesNode, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link GetCodePointLengthNode} getCodePointLengthNode
* Inline method: {@link GetCodePointLengthNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int append3_state_0_;
/**
* State Info:
* 0-24: InlinedCache
* Specialization: {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderGeneric, AbstractTruffleString, int, int, Node, ToIndexableNode, GetCodePointLengthNode, GetPreciseCodeRangeNode, CalcStringAttributesNode, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link GetPreciseCodeRangeNode} getPreciseCodeRangeNode
* Inline method: {@link GetPreciseCodeRangeNodeGen#inline}
* 25-26: InlinedCache
* Specialization: {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderGeneric, AbstractTruffleString, int, int, Node, ToIndexableNode, GetCodePointLengthNode, GetPreciseCodeRangeNode, CalcStringAttributesNode, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedConditionProfile} calcAttrsProfile
* Inline method: {@link InlinedConditionProfile#inline}
* 27: InlinedCache
* Specialization: {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderGeneric, AbstractTruffleString, int, int, Node, ToIndexableNode, GetCodePointLengthNode, GetPreciseCodeRangeNode, CalcStringAttributesNode, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} bufferGrowProfile
* Inline method: {@link InlinedBranchProfile#inline}
* 28: InlinedCache
* Specialization: {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderGeneric, AbstractTruffleString, int, int, Node, ToIndexableNode, GetCodePointLengthNode, GetPreciseCodeRangeNode, CalcStringAttributesNode, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link InlinedBranchProfile} errorProfile
* Inline method: {@link InlinedBranchProfile#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int append3_state_1_;
/**
* State Info:
* 0-15: InlinedCache
* Specialization: {@link AppendSubstringByteIndexNode#append(TruffleStringBuilderGeneric, AbstractTruffleString, int, int, Node, ToIndexableNode, GetCodePointLengthNode, GetPreciseCodeRangeNode, CalcStringAttributesNode, InlinedConditionProfile, InlinedBranchProfile, InlinedBranchProfile)}
* Parameter: {@link CalcStringAttributesNode} calcAttributesNode
* Inline method: {@link CalcStringAttributesNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int append3_state_2_;
Append3Data() {
}
private static Lookup lookup_() {
return MethodHandles.lookup();
}
}
@GeneratedBy(AppendSubstringByteIndexNode.class)
@DenyReplace
private static final class Uncached extends AppendSubstringByteIndexNode implements UnadoptableNode {
@TruffleBoundary
@Override
public void execute(TruffleStringBuilder arg0Value, AbstractTruffleString arg1Value, int arg2Value, int arg3Value) {
if (arg0Value instanceof TruffleStringBuilderUTF8) {
TruffleStringBuilderUTF8 arg0Value_ = (TruffleStringBuilderUTF8) arg0Value;
append(arg0Value_, arg1Value, arg2Value, arg3Value, (ToIndexableNode.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()));
return;
}
if (arg0Value instanceof TruffleStringBuilderUTF16) {
TruffleStringBuilderUTF16 arg0Value_ = (TruffleStringBuilderUTF16) arg0Value;
append(arg0Value_, arg1Value, arg2Value, arg3Value, (ToIndexableNode.getUncached()), (GetPreciseCodeRangeNodeGen.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()));
return;
}
if (arg0Value instanceof TruffleStringBuilderUTF32) {
TruffleStringBuilderUTF32 arg0Value_ = (TruffleStringBuilderUTF32) arg0Value;
append(arg0Value_, arg1Value, arg2Value, arg3Value, (ToIndexableNode.getUncached()), (GetPreciseCodeRangeNodeGen.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()));
return;
}
if (arg0Value instanceof TruffleStringBuilderGeneric) {
TruffleStringBuilderGeneric arg0Value_ = (TruffleStringBuilderGeneric) arg0Value;
AppendSubstringByteIndexNode.append(arg0Value_, arg1Value, arg2Value, arg3Value, (this), (ToIndexableNode.getUncached()), (GetCodePointLengthNode.getUncached()), (GetPreciseCodeRangeNodeGen.getUncached()), (CalcStringAttributesNodeGen.getUncached()), (InlinedConditionProfile.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()));
return;
}
throw newUnsupportedSpecializationException4LLII(this, arg0Value, arg1Value, arg2Value, arg3Value);
}
}
}
/**
* Debug Info:
* Specialization {@link AppendJavaStringUTF16Node#append}
* Activation probability: 1.00000
* With/without class size: 24/1 bytes
*
*/
@GeneratedBy(AppendJavaStringUTF16Node.class)
@SuppressWarnings("javadoc")
static final class AppendJavaStringUTF16NodeGen extends AppendJavaStringUTF16Node {
private static final StateField STATE_0_AppendJavaStringUTF16Node_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link AppendJavaStringUTF16Node#append}
* Parameter: {@link InlinedBranchProfile} slowPathProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private static final InlinedBranchProfile INLINED_SLOW_PATH_PROFILE_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, STATE_0_AppendJavaStringUTF16Node_UPDATER.subUpdater(1, 1)));
/**
* Source Info:
* Specialization: {@link AppendJavaStringUTF16Node#append}
* Parameter: {@link InlinedBranchProfile} inflateProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private static final InlinedBranchProfile INLINED_INFLATE_PROFILE_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, STATE_0_AppendJavaStringUTF16Node_UPDATER.subUpdater(2, 1)));
/**
* Source Info:
* Specialization: {@link AppendJavaStringUTF16Node#append}
* Parameter: {@link InlinedBranchProfile} bufferGrowProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private static final InlinedBranchProfile INLINED_BUFFER_GROW_PROFILE_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, STATE_0_AppendJavaStringUTF16Node_UPDATER.subUpdater(3, 1)));
/**
* Source Info:
* Specialization: {@link AppendJavaStringUTF16Node#append}
* Parameter: {@link InlinedBranchProfile} errorProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private static final InlinedBranchProfile INLINED_ERROR_PROFILE_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, STATE_0_AppendJavaStringUTF16Node_UPDATER.subUpdater(4, 1)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0: SpecializationActive {@link AppendJavaStringUTF16Node#append}
* 1: InlinedCache
* Specialization: {@link AppendJavaStringUTF16Node#append}
* Parameter: {@link InlinedBranchProfile} slowPathProfile
* Inline method: {@link InlinedBranchProfile#inline}
* 2: InlinedCache
* Specialization: {@link AppendJavaStringUTF16Node#append}
* Parameter: {@link InlinedBranchProfile} inflateProfile
* Inline method: {@link InlinedBranchProfile#inline}
* 3: InlinedCache
* Specialization: {@link AppendJavaStringUTF16Node#append}
* Parameter: {@link InlinedBranchProfile} bufferGrowProfile
* Inline method: {@link InlinedBranchProfile#inline}
* 4: InlinedCache
* Specialization: {@link AppendJavaStringUTF16Node#append}
* Parameter: {@link InlinedBranchProfile} errorProfile
* Inline method: {@link InlinedBranchProfile#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
private AppendJavaStringUTF16NodeGen() {
}
@Override
public void execute(TruffleStringBuilder arg0Value, String arg1Value, int arg2Value, int arg3Value) {
int state_0 = this.state_0_;
if ((state_0 & 0b1) != 0 /* is SpecializationActive[TruffleStringBuilder.AppendJavaStringUTF16Node.append(TruffleStringBuilderUTF16, String, int, int, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)] */ && arg0Value instanceof TruffleStringBuilderUTF16) {
TruffleStringBuilderUTF16 arg0Value_ = (TruffleStringBuilderUTF16) arg0Value;
append(arg0Value_, arg1Value, arg2Value, arg3Value, INLINED_SLOW_PATH_PROFILE_, INLINED_INFLATE_PROFILE_, INLINED_BUFFER_GROW_PROFILE_, INLINED_ERROR_PROFILE_);
return;
}
CompilerDirectives.transferToInterpreterAndInvalidate();
executeAndSpecialize(arg0Value, arg1Value, arg2Value, arg3Value);
return;
}
private void executeAndSpecialize(TruffleStringBuilder arg0Value, String arg1Value, int arg2Value, int arg3Value) {
int state_0 = this.state_0_;
if (arg0Value instanceof TruffleStringBuilderUTF16) {
TruffleStringBuilderUTF16 arg0Value_ = (TruffleStringBuilderUTF16) arg0Value;
state_0 = state_0 | 0b1 /* add SpecializationActive[TruffleStringBuilder.AppendJavaStringUTF16Node.append(TruffleStringBuilderUTF16, String, int, int, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile, InlinedBranchProfile)] */;
this.state_0_ = state_0;
append(arg0Value_, arg1Value, arg2Value, arg3Value, INLINED_SLOW_PATH_PROFILE_, INLINED_INFLATE_PROFILE_, INLINED_BUFFER_GROW_PROFILE_, INLINED_ERROR_PROFILE_);
return;
}
throw new UnsupportedSpecializationException(this, null, arg0Value, arg1Value, arg2Value, arg3Value);
}
@TruffleBoundary
private static UnsupportedSpecializationException newUnsupportedSpecializationException4LLII(Node thisNode_, Object arg0Value, Object arg1Value, int arg2Value, int arg3Value) {
return new UnsupportedSpecializationException(thisNode_, null, arg0Value, arg1Value, arg2Value, arg3Value);
}
@NeverDefault
public static AppendJavaStringUTF16Node create() {
return new AppendJavaStringUTF16NodeGen();
}
@NeverDefault
public static AppendJavaStringUTF16Node getUncached() {
return AppendJavaStringUTF16NodeGen.UNCACHED;
}
@GeneratedBy(AppendJavaStringUTF16Node.class)
@DenyReplace
private static final class Uncached extends AppendJavaStringUTF16Node implements UnadoptableNode {
@TruffleBoundary
@Override
public void execute(TruffleStringBuilder arg0Value, String arg1Value, int arg2Value, int arg3Value) {
if (arg0Value instanceof TruffleStringBuilderUTF16) {
TruffleStringBuilderUTF16 arg0Value_ = (TruffleStringBuilderUTF16) arg0Value;
append(arg0Value_, arg1Value, arg2Value, arg3Value, (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()), (InlinedBranchProfile.getUncached()));
return;
}
throw newUnsupportedSpecializationException4LLII(this, arg0Value, arg1Value, arg2Value, arg3Value);
}
}
}
/**
* Debug Info:
* Specialization {@link ToStringNode#createString}
* Activation probability: 1.00000
* With/without class size: 24/3 bytes
*
*/
@GeneratedBy(ToStringNode.class)
@SuppressWarnings("javadoc")
static final class ToStringNodeGen extends ToStringNode {
private static final StateField STATE_0_ToStringNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link ToStringNode#createString}
* Parameter: {@link ToStringIntlNode} intlNode
* Inline method: {@link ToStringIntlNodeGen#inline}
*/
private static final ToStringIntlNode INLINED_INTL_NODE_ = ToStringIntlNodeGen.inline(InlineTarget.create(ToStringIntlNode.class, STATE_0_ToStringNode_UPDATER.subUpdater(0, 24)));
private static final Uncached UNCACHED = new Uncached();
/**
* State Info:
* 0-23: InlinedCache
* Specialization: {@link ToStringNode#createString}
* Parameter: {@link ToStringIntlNode} intlNode
* Inline method: {@link ToStringIntlNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
private ToStringNodeGen() {
}
@Override
public TruffleString execute(TruffleStringBuilder arg0Value, boolean arg1Value) {
return createString(arg0Value, arg1Value, INLINED_INTL_NODE_);
}
@NeverDefault
public static ToStringNode create() {
return new ToStringNodeGen();
}
@NeverDefault
public static ToStringNode getUncached() {
return ToStringNodeGen.UNCACHED;
}
@GeneratedBy(ToStringNode.class)
@DenyReplace
private static final class Uncached extends ToStringNode implements UnadoptableNode {
@TruffleBoundary
@Override
public TruffleString execute(TruffleStringBuilder arg0Value, boolean arg1Value) {
return createString(arg0Value, arg1Value, (ToStringIntlNodeGen.getUncached()));
}
}
}
/**
* Debug Info:
* Specialization {@link ToStringIntlNode#createString(Node, TruffleStringBuilderUTF8, boolean, InlinedConditionProfile, InlinedConditionProfile)}
* Activation probability: 0.38500
* With/without class size: 11/1 bytes
* Specialization {@link ToStringIntlNode#createString(Node, TruffleStringBuilderUTF16, boolean, InlinedConditionProfile)}
* Activation probability: 0.29500
* With/without class size: 8/0 bytes
* Specialization {@link ToStringIntlNode#createString(TruffleStringBuilderUTF32, boolean)}
* Activation probability: 0.20500
* With/without class size: 6/0 bytes
* Specialization {@link ToStringIntlNode#createString(Node, TruffleStringBuilderGeneric, boolean, InlinedConditionProfile, CalcStringAttributesNode)}
* Activation probability: 0.11500
* With/without class size: 6/2 bytes
*
*/
@GeneratedBy(ToStringIntlNode.class)
@SuppressWarnings("javadoc")
static final class ToStringIntlNodeGen {
private static final Uncached UNCACHED = new Uncached();
@TruffleBoundary
private static UnsupportedSpecializationException newUnsupportedSpecializationException3LLZ(Node thisNode_, Object arg0Value, Object arg1Value, boolean arg2Value) {
return new UnsupportedSpecializationException(thisNode_, null, arg0Value, arg1Value, arg2Value);
}
@NeverDefault
public static ToStringIntlNode getUncached() {
return ToStringIntlNodeGen.UNCACHED;
}
/**
* Required Fields:
* - {@link Inlined#state_0_}
*
*/
@NeverDefault
public static ToStringIntlNode inline(@RequiredField(bits = 24, value = StateField.class) InlineTarget target) {
return new ToStringIntlNodeGen.Inlined(target);
}
@GeneratedBy(ToStringIntlNode.class)
@DenyReplace
private static final class Inlined extends ToStringIntlNode implements UnadoptableNode {
/**
* State Info:
* 0: SpecializationActive {@link ToStringIntlNode#createString(Node, TruffleStringBuilderUTF8, boolean, InlinedConditionProfile, InlinedConditionProfile)}
* 1: SpecializationActive {@link ToStringIntlNode#createString(Node, TruffleStringBuilderUTF16, boolean, InlinedConditionProfile)}
* 2: SpecializationActive {@link ToStringIntlNode#createString(TruffleStringBuilderUTF32, boolean)}
* 3: SpecializationActive {@link ToStringIntlNode#createString(Node, TruffleStringBuilderGeneric, boolean, InlinedConditionProfile, CalcStringAttributesNode)}
* 4-5: InlinedCache
* Specialization: {@link ToStringIntlNode#createString(Node, TruffleStringBuilderUTF8, boolean, InlinedConditionProfile, InlinedConditionProfile)}
* Parameter: {@link InlinedConditionProfile} calcAttributesProfile
* Inline method: {@link InlinedConditionProfile#inline}
* 6-7: InlinedCache
* Specialization: {@link ToStringIntlNode#createString(Node, TruffleStringBuilderUTF8, boolean, InlinedConditionProfile, InlinedConditionProfile)}
* Parameter: {@link InlinedConditionProfile} brokenProfile
* Inline method: {@link InlinedConditionProfile#inline}
* 8-23: InlinedCache
* Specialization: {@link ToStringIntlNode#createString(Node, TruffleStringBuilderGeneric, boolean, InlinedConditionProfile, CalcStringAttributesNode)}
* Parameter: {@link CalcStringAttributesNode} calcAttributesNode
* Inline method: {@link CalcStringAttributesNodeGen#inline}
*
*/
private final StateField state_0_;
/**
* Source Info:
* Specialization: {@link ToStringIntlNode#createString(Node, TruffleStringBuilderUTF8, boolean, InlinedConditionProfile, InlinedConditionProfile)}
* Parameter: {@link InlinedConditionProfile} calcAttributesProfile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private final InlinedConditionProfile calcAttributesProfile;
/**
* Source Info:
* Specialization: {@link ToStringIntlNode#createString(Node, TruffleStringBuilderUTF8, boolean, InlinedConditionProfile, InlinedConditionProfile)}
* Parameter: {@link InlinedConditionProfile} brokenProfile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private final InlinedConditionProfile createString0_brokenProfile_;
/**
* Source Info:
* Specialization: {@link ToStringIntlNode#createString(Node, TruffleStringBuilderGeneric, boolean, InlinedConditionProfile, CalcStringAttributesNode)}
* Parameter: {@link CalcStringAttributesNode} calcAttributesNode
* Inline method: {@link CalcStringAttributesNodeGen#inline}
*/
private final CalcStringAttributesNode createString3_calcAttributesNode_;
private Inlined(InlineTarget target) {
assert target.getTargetClass().isAssignableFrom(ToStringIntlNode.class);
this.state_0_ = target.getState(0, 24);
this.calcAttributesProfile = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, state_0_.subUpdater(4, 2)));
this.createString0_brokenProfile_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, state_0_.subUpdater(6, 2)));
this.createString3_calcAttributesNode_ = CalcStringAttributesNodeGen.inline(InlineTarget.create(CalcStringAttributesNode.class, state_0_.subUpdater(8, 16)));
}
@Override
public TruffleString execute(Node arg0Value, TruffleStringBuilder arg1Value, boolean arg2Value) {
int state_0 = this.state_0_.get(arg0Value);
if ((state_0 & 0b1111) != 0 /* is SpecializationActive[TruffleStringBuilder.ToStringIntlNode.createString(Node, TruffleStringBuilderUTF8, boolean, InlinedConditionProfile, InlinedConditionProfile)] || SpecializationActive[TruffleStringBuilder.ToStringIntlNode.createString(Node, TruffleStringBuilderUTF16, boolean, InlinedConditionProfile)] || SpecializationActive[TruffleStringBuilder.ToStringIntlNode.createString(TruffleStringBuilderUTF32, boolean)] || SpecializationActive[TruffleStringBuilder.ToStringIntlNode.createString(Node, TruffleStringBuilderGeneric, boolean, InlinedConditionProfile, CalcStringAttributesNode)] */) {
if ((state_0 & 0b1) != 0 /* is SpecializationActive[TruffleStringBuilder.ToStringIntlNode.createString(Node, TruffleStringBuilderUTF8, boolean, InlinedConditionProfile, InlinedConditionProfile)] */ && arg1Value instanceof TruffleStringBuilderUTF8) {
TruffleStringBuilderUTF8 arg1Value_ = (TruffleStringBuilderUTF8) arg1Value;
assert InlineSupport.validate(arg0Value, this.state_0_);
return ToStringIntlNode.createString(arg0Value, arg1Value_, arg2Value, this.calcAttributesProfile, this.createString0_brokenProfile_);
}
if ((state_0 & 0b10) != 0 /* is SpecializationActive[TruffleStringBuilder.ToStringIntlNode.createString(Node, TruffleStringBuilderUTF16, boolean, InlinedConditionProfile)] */ && arg1Value instanceof TruffleStringBuilderUTF16) {
TruffleStringBuilderUTF16 arg1Value_ = (TruffleStringBuilderUTF16) arg1Value;
return ToStringIntlNode.createString(arg0Value, arg1Value_, arg2Value, this.calcAttributesProfile);
}
if ((state_0 & 0b100) != 0 /* is SpecializationActive[TruffleStringBuilder.ToStringIntlNode.createString(TruffleStringBuilderUTF32, boolean)] */ && arg1Value instanceof TruffleStringBuilderUTF32) {
TruffleStringBuilderUTF32 arg1Value_ = (TruffleStringBuilderUTF32) arg1Value;
return ToStringIntlNode.createString(arg1Value_, arg2Value);
}
if ((state_0 & 0b1000) != 0 /* is SpecializationActive[TruffleStringBuilder.ToStringIntlNode.createString(Node, TruffleStringBuilderGeneric, boolean, InlinedConditionProfile, CalcStringAttributesNode)] */ && arg1Value instanceof TruffleStringBuilderGeneric) {
TruffleStringBuilderGeneric arg1Value_ = (TruffleStringBuilderGeneric) arg1Value;
assert InlineSupport.validate(arg0Value, this.state_0_);
return ToStringIntlNode.createString(arg0Value, arg1Value_, arg2Value, this.calcAttributesProfile, this.createString3_calcAttributesNode_);
}
}
CompilerDirectives.transferToInterpreterAndInvalidate();
return executeAndSpecialize(arg0Value, arg1Value, arg2Value);
}
private TruffleString executeAndSpecialize(Node arg0Value, TruffleStringBuilder arg1Value, boolean arg2Value) {
int state_0 = this.state_0_.get(arg0Value);
if (arg1Value instanceof TruffleStringBuilderUTF8) {
TruffleStringBuilderUTF8 arg1Value_ = (TruffleStringBuilderUTF8) arg1Value;
state_0 = state_0 | 0b1 /* add SpecializationActive[TruffleStringBuilder.ToStringIntlNode.createString(Node, TruffleStringBuilderUTF8, boolean, InlinedConditionProfile, InlinedConditionProfile)] */;
this.state_0_.set(arg0Value, state_0);
assert InlineSupport.validate(arg0Value, this.state_0_);
return ToStringIntlNode.createString(arg0Value, arg1Value_, arg2Value, this.calcAttributesProfile, this.createString0_brokenProfile_);
}
if (arg1Value instanceof TruffleStringBuilderUTF16) {
TruffleStringBuilderUTF16 arg1Value_ = (TruffleStringBuilderUTF16) arg1Value;
state_0 = state_0 | 0b10 /* add SpecializationActive[TruffleStringBuilder.ToStringIntlNode.createString(Node, TruffleStringBuilderUTF16, boolean, InlinedConditionProfile)] */;
this.state_0_.set(arg0Value, state_0);
return ToStringIntlNode.createString(arg0Value, arg1Value_, arg2Value, this.calcAttributesProfile);
}
if (arg1Value instanceof TruffleStringBuilderUTF32) {
TruffleStringBuilderUTF32 arg1Value_ = (TruffleStringBuilderUTF32) arg1Value;
state_0 = state_0 | 0b100 /* add SpecializationActive[TruffleStringBuilder.ToStringIntlNode.createString(TruffleStringBuilderUTF32, boolean)] */;
this.state_0_.set(arg0Value, state_0);
return ToStringIntlNode.createString(arg1Value_, arg2Value);
}
if (arg1Value instanceof TruffleStringBuilderGeneric) {
TruffleStringBuilderGeneric arg1Value_ = (TruffleStringBuilderGeneric) arg1Value;
state_0 = state_0 | 0b1000 /* add SpecializationActive[TruffleStringBuilder.ToStringIntlNode.createString(Node, TruffleStringBuilderGeneric, boolean, InlinedConditionProfile, CalcStringAttributesNode)] */;
this.state_0_.set(arg0Value, state_0);
assert InlineSupport.validate(arg0Value, this.state_0_);
return ToStringIntlNode.createString(arg0Value, arg1Value_, arg2Value, this.calcAttributesProfile, this.createString3_calcAttributesNode_);
}
throw newUnsupportedSpecializationException3LLZ(this, arg0Value, arg1Value, arg2Value);
}
}
@GeneratedBy(ToStringIntlNode.class)
@DenyReplace
private static final class Uncached extends ToStringIntlNode implements UnadoptableNode {
@TruffleBoundary
@Override
public TruffleString execute(Node arg0Value, TruffleStringBuilder arg1Value, boolean arg2Value) {
if (arg1Value instanceof TruffleStringBuilderUTF8) {
TruffleStringBuilderUTF8 arg1Value_ = (TruffleStringBuilderUTF8) arg1Value;
return ToStringIntlNode.createString(arg0Value, arg1Value_, arg2Value, (InlinedConditionProfile.getUncached()), (InlinedConditionProfile.getUncached()));
}
if (arg1Value instanceof TruffleStringBuilderUTF16) {
TruffleStringBuilderUTF16 arg1Value_ = (TruffleStringBuilderUTF16) arg1Value;
return ToStringIntlNode.createString(arg0Value, arg1Value_, arg2Value, (InlinedConditionProfile.getUncached()));
}
if (arg1Value instanceof TruffleStringBuilderUTF32) {
TruffleStringBuilderUTF32 arg1Value_ = (TruffleStringBuilderUTF32) arg1Value;
return ToStringIntlNode.createString(arg1Value_, arg2Value);
}
if (arg1Value instanceof TruffleStringBuilderGeneric) {
TruffleStringBuilderGeneric arg1Value_ = (TruffleStringBuilderGeneric) arg1Value;
return ToStringIntlNode.createString(arg0Value, arg1Value_, arg2Value, (InlinedConditionProfile.getUncached()), (CalcStringAttributesNodeGen.getUncached()));
}
throw newUnsupportedSpecializationException3LLZ(this, arg0Value, arg1Value, arg2Value);
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy