All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.oracle.graal.python.lib.PyObjectRichCompareBoolFactory Maven / Gradle / Ivy

There is a newer version: 24.1.1
Show newest version
// CheckStyle: start generated
package com.oracle.graal.python.lib;

import com.oracle.graal.python.builtins.objects.ints.PInt;
import com.oracle.graal.python.builtins.objects.type.TypeNodes.IsSameTypeNode;
import com.oracle.graal.python.builtins.objects.type.TypeNodesFactory.IsSameTypeNodeGen;
import com.oracle.graal.python.lib.PyObjectRichCompareBool.Comparison;
import com.oracle.graal.python.lib.PyObjectRichCompareBool.ComparisonBaseNode;
import com.oracle.graal.python.lib.PyObjectRichCompareBool.EqNode;
import com.oracle.graal.python.lib.PyObjectRichCompareBool.GeNode;
import com.oracle.graal.python.lib.PyObjectRichCompareBool.GtNode;
import com.oracle.graal.python.lib.PyObjectRichCompareBool.LeNode;
import com.oracle.graal.python.lib.PyObjectRichCompareBool.LtNode;
import com.oracle.graal.python.lib.PyObjectRichCompareBool.NeNode;
import com.oracle.graal.python.nodes.PGuards;
import com.oracle.graal.python.nodes.PRaiseNode.Lazy;
import com.oracle.graal.python.nodes.PRaiseNodeGen.LazyNodeGen;
import com.oracle.graal.python.nodes.call.special.CallBinaryMethodNode;
import com.oracle.graal.python.nodes.call.special.LookupSpecialMethodSlotNode;
import com.oracle.graal.python.nodes.classes.IsSubtypeNode;
import com.oracle.graal.python.nodes.object.GetClassNode;
import com.oracle.graal.python.nodes.object.GetClassNodeGen;
import com.oracle.graal.python.nodes.object.IsNode;
import com.oracle.graal.python.util.OverflowException;
import com.oracle.truffle.api.CompilerDirectives;
import com.oracle.truffle.api.CompilerDirectives.CompilationFinal;
import com.oracle.truffle.api.dsl.GeneratedBy;
import com.oracle.truffle.api.dsl.NeverDefault;
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.frame.Frame;
import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.nodes.DenyReplace;
import com.oracle.truffle.api.nodes.Node;
import com.oracle.truffle.api.nodes.NodeCost;
import com.oracle.truffle.api.profiles.InlinedConditionProfile;
import com.oracle.truffle.api.strings.TruffleString;
import com.oracle.truffle.api.strings.TruffleString.CompareIntsUTF32Node;
import com.oracle.truffle.api.strings.TruffleString.EqualNode;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.VarHandle;
import java.lang.invoke.MethodHandles.Lookup;
import java.util.Objects;

@GeneratedBy(PyObjectRichCompareBool.class)
@SuppressWarnings("javadoc")
public final class PyObjectRichCompareBoolFactory {

    /**
     * Debug Info: 
     *   Specialization {@link ComparisonBaseNode#doBB}
     *     Activation probability: 0.08658
     *     With/without class size: 5/0 bytes
     *   Specialization {@link ComparisonBaseNode#doII}
     *     Activation probability: 0.08268
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doIL}
     *     Activation probability: 0.07879
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doID}
     *     Activation probability: 0.07489
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doIPNoOVerflow}
     *     Activation probability: 0.07100
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doIP}
     *     Activation probability: 0.06710
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doLL}
     *     Activation probability: 0.06320
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doLI}
     *     Activation probability: 0.05931
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doLD}
     *     Activation probability: 0.05541
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doLPNoOVerflow}
     *     Activation probability: 0.05152
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doLP}
     *     Activation probability: 0.04762
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doPINoOverflow}
     *     Activation probability: 0.04372
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doPI}
     *     Activation probability: 0.03983
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doPLNoOverflow}
     *     Activation probability: 0.03593
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doPL}
     *     Activation probability: 0.03203
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doPP}
     *     Activation probability: 0.02814
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doDD}
     *     Activation probability: 0.02424
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doDI}
     *     Activation probability: 0.02035
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doDL}
     *     Activation probability: 0.01645
     *     With/without class size: 4/0 bytes
     *   Specialization {@link EqNode#doSS}
     *     Activation probability: 0.01255
     *     With/without class size: 4/4 bytes
     *   Specialization {@link ComparisonBaseNode#doGeneric}
     *     Activation probability: 0.00866
     *     With/without class size: 4/69 bytes
     * 
*/ @GeneratedBy(EqNode.class) @SuppressWarnings("javadoc") public static final class EqNodeGen extends EqNode { private static final StateField GENERIC__EQ_NODE_GENERIC_STATE_0_UPDATER = StateField.create(GenericData.lookup_(), "generic_state_0_"); private static final StateField GENERIC__EQ_NODE_GENERIC_STATE_1_UPDATER = StateField.create(GenericData.lookup_(), "generic_state_1_"); private static final StateField GENERIC__EQ_NODE_GENERIC_STATE_2_UPDATER = StateField.create(GenericData.lookup_(), "generic_state_2_"); /** * Source Info:
         *   Specialization: {@link ComparisonBaseNode#doGeneric}
         *   Parameter: {@link GetClassNode} getClassA
         *   Inline method: {@link GetClassNodeGen#inline}
*/ private static final GetClassNode INLINED_GENERIC_GET_CLASS_A_ = GetClassNodeGen.inline(InlineTarget.create(GetClassNode.class, GENERIC__EQ_NODE_GENERIC_STATE_0_UPDATER.subUpdater(0, 17), ReferenceField.create(GenericData.lookup_(), "generic_getClassA__field1_", Node.class))); /** * Source Info:
         *   Specialization: {@link ComparisonBaseNode#doGeneric}
         *   Parameter: {@link GetClassNode} getClassB
         *   Inline method: {@link GetClassNodeGen#inline}
*/ private static final GetClassNode INLINED_GENERIC_GET_CLASS_B_ = GetClassNodeGen.inline(InlineTarget.create(GetClassNode.class, GENERIC__EQ_NODE_GENERIC_STATE_1_UPDATER.subUpdater(0, 17), ReferenceField.create(GenericData.lookup_(), "generic_getClassB__field1_", Node.class))); /** * Source Info:
         *   Specialization: {@link ComparisonBaseNode#doGeneric}
         *   Parameter: {@link InlinedConditionProfile} reversedFirst
         *   Inline method: {@link InlinedConditionProfile#inline}
*/ private static final InlinedConditionProfile INLINED_GENERIC_REVERSED_FIRST_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, GENERIC__EQ_NODE_GENERIC_STATE_0_UPDATER.subUpdater(17, 2))); /** * Source Info:
         *   Specialization: {@link ComparisonBaseNode#doGeneric}
         *   Parameter: {@link IsSameTypeNode} isSameTypeNode
         *   Inline method: {@link IsSameTypeNodeGen#inline}
*/ private static final IsSameTypeNode INLINED_GENERIC_IS_SAME_TYPE_NODE_ = IsSameTypeNodeGen.inline(InlineTarget.create(IsSameTypeNode.class, GENERIC__EQ_NODE_GENERIC_STATE_0_UPDATER.subUpdater(19, 6), ReferenceField.create(GenericData.lookup_(), "generic_isSameTypeNode__field1_", Node.class))); /** * Source Info:
         *   Specialization: {@link ComparisonBaseNode#doGeneric}
         *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
         *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
*/ private static final PyObjectIsTrueNode INLINED_GENERIC_IS_TRUE_NODE_ = PyObjectIsTrueNodeGen.inline(InlineTarget.create(PyObjectIsTrueNode.class, GENERIC__EQ_NODE_GENERIC_STATE_2_UPDATER.subUpdater(0, 19), GENERIC__EQ_NODE_GENERIC_STATE_0_UPDATER.subUpdater(25, 4), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field2_", Object.class), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field3_", Node.class), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field4_", Node.class), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field5_", Node.class), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field6_", Node.class))); /** * Source Info:
         *   Specialization: {@link ComparisonBaseNode#doGeneric}
         *   Parameter: {@link Lazy} raiseNode
         *   Inline method: {@link LazyNodeGen#inline}
*/ private static final Lazy INLINED_GENERIC_RAISE_NODE_ = LazyNodeGen.inline(InlineTarget.create(Lazy.class, GENERIC__EQ_NODE_GENERIC_STATE_0_UPDATER.subUpdater(29, 1), ReferenceField.create(GenericData.lookup_(), "generic_raiseNode__field1_", Node.class))); private static final Uncached UNCACHED = new Uncached(); /** * State Info:
         *   0: SpecializationActive {@link ComparisonBaseNode#doBB}
         *   1: SpecializationActive {@link ComparisonBaseNode#doII}
         *   2: SpecializationActive {@link ComparisonBaseNode#doIL}
         *   3: SpecializationActive {@link ComparisonBaseNode#doID}
         *   4: SpecializationActive {@link ComparisonBaseNode#doIPNoOVerflow}
         *   5: SpecializationExcluded {@link ComparisonBaseNode#doIPNoOVerflow}
         *   6: SpecializationActive {@link ComparisonBaseNode#doIP}
         *   7: SpecializationActive {@link ComparisonBaseNode#doLL}
         *   8: SpecializationActive {@link ComparisonBaseNode#doLI}
         *   9: SpecializationActive {@link ComparisonBaseNode#doLD}
         *   10: SpecializationActive {@link ComparisonBaseNode#doLPNoOVerflow}
         *   11: SpecializationExcluded {@link ComparisonBaseNode#doLPNoOVerflow}
         *   12: SpecializationActive {@link ComparisonBaseNode#doLP}
         *   13: SpecializationActive {@link ComparisonBaseNode#doPINoOverflow}
         *   14: SpecializationExcluded {@link ComparisonBaseNode#doPINoOverflow}
         *   15: SpecializationActive {@link ComparisonBaseNode#doPI}
         *   16: SpecializationActive {@link ComparisonBaseNode#doPLNoOverflow}
         *   17: SpecializationExcluded {@link ComparisonBaseNode#doPLNoOverflow}
         *   18: SpecializationActive {@link ComparisonBaseNode#doPL}
         *   19: SpecializationActive {@link ComparisonBaseNode#doPP}
         *   20: SpecializationActive {@link ComparisonBaseNode#doDD}
         *   21: SpecializationActive {@link ComparisonBaseNode#doDI}
         *   22: SpecializationActive {@link ComparisonBaseNode#doDL}
         *   23: SpecializationActive {@link EqNode#doSS}
         *   24: SpecializationActive {@link ComparisonBaseNode#doGeneric}
         * 
*/ @CompilationFinal private int state_0_; /** * Source Info:
         *   Specialization: {@link EqNode#doSS}
         *   Parameter: {@link EqualNode} equalNode
*/ @Child private EqualNode sS_equalNode_; @Child private GenericData generic_cache; private EqNodeGen() { } @Override protected boolean execute(Frame frameValue, Node arg0Value, Object arg1Value, Object arg2Value, Comparison arg3Value) { int state_0 = this.state_0_; if ((state_0 & 0x1fdb7df) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doBB(boolean, boolean, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doII(int, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIL(int, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doID(int, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLL(long, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLI(long, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLD(long, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPP(PInt, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDD(double, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDI(double, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDL(double, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.EqNode.doSS(TruffleString, TruffleString, Comparison, EqualNode)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)] */) { if ((state_0 & 0b1) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doBB(boolean, boolean, Comparison)] */ && arg1Value instanceof Boolean) { boolean arg1Value_ = (boolean) arg1Value; if (arg2Value instanceof Boolean) { boolean arg2Value_ = (boolean) arg2Value; return ComparisonBaseNode.doBB(arg1Value_, arg2Value_, arg3Value); } } if ((state_0 & 0b1011110) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doII(int, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIL(int, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doID(int, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */ && arg1Value instanceof Integer) { int arg1Value_ = (int) arg1Value; if ((state_0 & 0b10) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doII(int, int, Comparison)] */ && arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doII(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b100) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIL(int, long, Comparison)] */ && arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doIL(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b1000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doID(int, double, Comparison)] */ && arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doID(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b1010000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */ && arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((state_0 & 0b10000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { try { return ComparisonBaseNode.doIPNoOVerflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_; state_0 = state_0 & 0xffffffef /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */; state_0 = state_0 | 0b100000 /* add SpecializationExcluded */; this.state_0_ = state_0; return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0b1000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doIP(arg1Value_, arg2Value_, arg3Value); } } } } if ((state_0 & 0b1011110000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLL(long, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLI(long, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLD(long, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */ && arg1Value instanceof Long) { long arg1Value_ = (long) arg1Value; if ((state_0 & 0b10000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLL(long, long, Comparison)] */ && arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doLL(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b100000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLI(long, int, Comparison)] */ && arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doLI(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b1000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLD(long, double, Comparison)] */ && arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doLD(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b1010000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */ && arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((state_0 & 0b10000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { try { return ComparisonBaseNode.doLPNoOVerflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_; state_0 = state_0 & 0xfffffbff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */; state_0 = state_0 | 0b100000000000 /* add SpecializationExcluded */; this.state_0_ = state_0; return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0b1000000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doLP(arg1Value_, arg2Value_, arg3Value); } } } } if ((state_0 & 0xda000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPP(PInt, PInt, Comparison)] */ && arg1Value instanceof PInt) { PInt arg1Value_ = (PInt) arg1Value; if ((state_0 & 0b1010000000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] */ && arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; if ((state_0 & 0b10000000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { try { return ComparisonBaseNode.doPINoOverflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_; state_0 = state_0 & 0xffffdfff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */; state_0 = state_0 | 0b100000000000000 /* add SpecializationExcluded */; this.state_0_ = state_0; return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0b1000000000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { return ComparisonBaseNode.doPI(arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0x50000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] */ && arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; if ((state_0 & 0x10000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { try { return ComparisonBaseNode.doPLNoOverflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_; state_0 = state_0 & 0xfffeffff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */; state_0 = state_0 | 0x20000 /* add SpecializationExcluded */; this.state_0_ = state_0; return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0x40000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { return ComparisonBaseNode.doPL(arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0x80000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPP(PInt, PInt, Comparison)] */ && arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_)) && (PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doPP(arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0x700000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDD(double, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDI(double, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDL(double, long, Comparison)] */ && arg1Value instanceof Double) { double arg1Value_ = (double) arg1Value; if ((state_0 & 0x100000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDD(double, double, Comparison)] */ && arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doDD(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0x200000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDI(double, int, Comparison)] */ && arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doDI(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0x400000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDL(double, long, Comparison)] */ && arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doDL(arg1Value_, arg2Value_, arg3Value); } } if ((state_0 & 0x800000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.EqNode.doSS(TruffleString, TruffleString, Comparison, EqualNode)] */ && arg1Value instanceof TruffleString) { TruffleString arg1Value_ = (TruffleString) arg1Value; if (arg2Value instanceof TruffleString) { TruffleString arg2Value_ = (TruffleString) arg2Value; { EqualNode equalNode__ = this.sS_equalNode_; if (equalNode__ != null) { return EqNode.doSS(arg1Value_, arg2Value_, arg3Value, equalNode__); } } } } if ((state_0 & 0x1000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)] */) { GenericData s20_ = this.generic_cache; if (s20_ != null) { return ComparisonBaseNode.doGeneric((VirtualFrame) frameValue, s20_, arg1Value, arg2Value, arg3Value, s20_.isNode_, INLINED_GENERIC_GET_CLASS_A_, INLINED_GENERIC_GET_CLASS_B_, INLINED_GENERIC_REVERSED_FIRST_, INLINED_GENERIC_IS_SAME_TYPE_NODE_, s20_.isSubtypeNode_, s20_.lookupMethod_, s20_.lookupReverseMethod_, s20_.callMethod_, s20_.callReverseMethod_, INLINED_GENERIC_IS_TRUE_NODE_, INLINED_GENERIC_RAISE_NODE_); } } } CompilerDirectives.transferToInterpreterAndInvalidate(); return executeAndSpecialize(frameValue, arg0Value, arg1Value, arg2Value, arg3Value); } private boolean executeAndSpecialize(Frame frameValue, Node arg0Value, Object arg1Value, Object arg2Value, Comparison arg3Value) { int state_0 = this.state_0_; if (arg1Value instanceof Boolean) { boolean arg1Value_ = (boolean) arg1Value; if (arg2Value instanceof Boolean) { boolean arg2Value_ = (boolean) arg2Value; state_0 = state_0 | 0b1 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doBB(boolean, boolean, Comparison)] */; this.state_0_ = state_0; return ComparisonBaseNode.doBB(arg1Value_, arg2Value_, arg3Value); } } if (arg1Value instanceof Integer) { int arg1Value_ = (int) arg1Value; if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; state_0 = state_0 | 0b10 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doII(int, int, Comparison)] */; this.state_0_ = state_0; return ComparisonBaseNode.doII(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; state_0 = state_0 | 0b100 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIL(int, long, Comparison)] */; this.state_0_ = state_0; return ComparisonBaseNode.doIL(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; state_0 = state_0 | 0b1000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doID(int, double, Comparison)] */; this.state_0_ = state_0; return ComparisonBaseNode.doID(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if (((state_0 & 0b1000000)) == 0 /* is-not SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */ && ((state_0 & 0b100000)) == 0 /* is-not SpecializationExcluded */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 | 0b10000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */; this.state_0_ = state_0; try { return ComparisonBaseNode.doIPNoOVerflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_; state_0 = state_0 & 0xffffffef /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */; state_0 = state_0 | 0b100000 /* add SpecializationExcluded */; this.state_0_ = state_0; return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 & 0xffffffef /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */; state_0 = state_0 | 0b1000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */; this.state_0_ = state_0; return ComparisonBaseNode.doIP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof Long) { long arg1Value_ = (long) arg1Value; if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; state_0 = state_0 | 0b10000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLL(long, long, Comparison)] */; this.state_0_ = state_0; return ComparisonBaseNode.doLL(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; state_0 = state_0 | 0b100000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLI(long, int, Comparison)] */; this.state_0_ = state_0; return ComparisonBaseNode.doLI(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; state_0 = state_0 | 0b1000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLD(long, double, Comparison)] */; this.state_0_ = state_0; return ComparisonBaseNode.doLD(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if (((state_0 & 0b1000000000000)) == 0 /* is-not SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */ && ((state_0 & 0b100000000000)) == 0 /* is-not SpecializationExcluded */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 | 0b10000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */; this.state_0_ = state_0; try { return ComparisonBaseNode.doLPNoOVerflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_; state_0 = state_0 & 0xfffffbff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */; state_0 = state_0 | 0b100000000000 /* add SpecializationExcluded */; this.state_0_ = state_0; return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 & 0xfffffbff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */; state_0 = state_0 | 0b1000000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */; this.state_0_ = state_0; return ComparisonBaseNode.doLP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof PInt) { PInt arg1Value_ = (PInt) arg1Value; if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; if (((state_0 & 0b1000000000000000)) == 0 /* is-not SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] */ && ((state_0 & 0b100000000000000)) == 0 /* is-not SpecializationExcluded */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { state_0 = state_0 | 0b10000000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */; this.state_0_ = state_0; try { return ComparisonBaseNode.doPINoOverflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_; state_0 = state_0 & 0xffffdfff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */; state_0 = state_0 | 0b100000000000000 /* add SpecializationExcluded */; this.state_0_ = state_0; return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((PGuards.isBuiltinPInt(arg1Value_))) { state_0 = state_0 & 0xffffdfff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */; state_0 = state_0 | 0b1000000000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] */; this.state_0_ = state_0; return ComparisonBaseNode.doPI(arg1Value_, arg2Value_, arg3Value); } } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; if (((state_0 & 0x40000)) == 0 /* is-not SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] */ && ((state_0 & 0x20000)) == 0 /* is-not SpecializationExcluded */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { state_0 = state_0 | 0x10000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */; this.state_0_ = state_0; try { return ComparisonBaseNode.doPLNoOverflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_; state_0 = state_0 & 0xfffeffff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */; state_0 = state_0 | 0x20000 /* add SpecializationExcluded */; this.state_0_ = state_0; return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((PGuards.isBuiltinPInt(arg1Value_))) { state_0 = state_0 & 0xfffeffff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */; state_0 = state_0 | 0x40000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] */; this.state_0_ = state_0; return ComparisonBaseNode.doPL(arg1Value_, arg2Value_, arg3Value); } } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_)) && (PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 | 0x80000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPP(PInt, PInt, Comparison)] */; this.state_0_ = state_0; return ComparisonBaseNode.doPP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof Double) { double arg1Value_ = (double) arg1Value; if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; state_0 = state_0 | 0x100000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDD(double, double, Comparison)] */; this.state_0_ = state_0; return ComparisonBaseNode.doDD(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; state_0 = state_0 | 0x200000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDI(double, int, Comparison)] */; this.state_0_ = state_0; return ComparisonBaseNode.doDI(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; state_0 = state_0 | 0x400000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDL(double, long, Comparison)] */; this.state_0_ = state_0; return ComparisonBaseNode.doDL(arg1Value_, arg2Value_, arg3Value); } } if (arg1Value instanceof TruffleString) { TruffleString arg1Value_ = (TruffleString) arg1Value; if (arg2Value instanceof TruffleString) { TruffleString arg2Value_ = (TruffleString) arg2Value; EqualNode equalNode__ = this.insert((EqualNode.create())); Objects.requireNonNull(equalNode__, "Specialization 'doSS(TruffleString, TruffleString, Comparison, EqualNode)' cache 'equalNode' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); VarHandle.storeStoreFence(); this.sS_equalNode_ = equalNode__; state_0 = state_0 | 0x800000 /* add SpecializationActive[PyObjectRichCompareBool.EqNode.doSS(TruffleString, TruffleString, Comparison, EqualNode)] */; this.state_0_ = state_0; return EqNode.doSS(arg1Value_, arg2Value_, arg3Value, equalNode__); } } GenericData s20_ = this.insert(new GenericData()); IsNode isNode__ = s20_.insert((IsNode.create())); Objects.requireNonNull(isNode__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'isNode' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.isNode_ = isNode__; IsSubtypeNode isSubtypeNode__ = s20_.insert((IsSubtypeNode.create())); Objects.requireNonNull(isSubtypeNode__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'isSubtypeNode' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.isSubtypeNode_ = isSubtypeNode__; LookupSpecialMethodSlotNode lookupMethod__ = s20_.insert((LookupSpecialMethodSlotNode.create(arg3Value.getSlot()))); Objects.requireNonNull(lookupMethod__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'lookupMethod' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.lookupMethod_ = lookupMethod__; LookupSpecialMethodSlotNode lookupReverseMethod__ = s20_.insert((LookupSpecialMethodSlotNode.create(arg3Value.getReverseSlot()))); Objects.requireNonNull(lookupReverseMethod__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'lookupReverseMethod' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.lookupReverseMethod_ = lookupReverseMethod__; CallBinaryMethodNode callMethod__ = s20_.insert((CallBinaryMethodNode.create())); Objects.requireNonNull(callMethod__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'callMethod' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.callMethod_ = callMethod__; CallBinaryMethodNode callReverseMethod__ = s20_.insert((CallBinaryMethodNode.create())); Objects.requireNonNull(callReverseMethod__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'callReverseMethod' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.callReverseMethod_ = callReverseMethod__; VarHandle.storeStoreFence(); this.generic_cache = s20_; state_0 = state_0 | 0x1000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)] */; this.state_0_ = state_0; return ComparisonBaseNode.doGeneric((VirtualFrame) frameValue, s20_, arg1Value, arg2Value, arg3Value, isNode__, INLINED_GENERIC_GET_CLASS_A_, INLINED_GENERIC_GET_CLASS_B_, INLINED_GENERIC_REVERSED_FIRST_, INLINED_GENERIC_IS_SAME_TYPE_NODE_, isSubtypeNode__, lookupMethod__, lookupReverseMethod__, callMethod__, callReverseMethod__, INLINED_GENERIC_IS_TRUE_NODE_, INLINED_GENERIC_RAISE_NODE_); } @Override public NodeCost getCost() { int state_0 = this.state_0_; if ((state_0 & 0x1fdb7df) == 0) { return NodeCost.UNINITIALIZED; } else { if (((state_0 & 0x1fdb7df) & ((state_0 & 0x1fdb7df) - 1)) == 0 /* is-single */) { return NodeCost.MONOMORPHIC; } } return NodeCost.POLYMORPHIC; } @NeverDefault public static EqNode create() { return new EqNodeGen(); } @NeverDefault public static EqNode getUncached() { return EqNodeGen.UNCACHED; } /** * Required Fields:
    *
  • {@link Inlined#state_0_} *
  • {@link Inlined#sS_equalNode_} *
  • {@link Inlined#generic_cache} *
*/ @NeverDefault public static EqNode inline(@RequiredField(bits = 25, value = StateField.class)@RequiredField(type = Node.class, value = ReferenceField.class)@RequiredField(type = Node.class, value = ReferenceField.class) InlineTarget target) { return new EqNodeGen.Inlined(target); } @GeneratedBy(EqNode.class) @DenyReplace private static final class Inlined extends EqNode { /** * State Info:
             *   0: SpecializationActive {@link ComparisonBaseNode#doBB}
             *   1: SpecializationActive {@link ComparisonBaseNode#doII}
             *   2: SpecializationActive {@link ComparisonBaseNode#doIL}
             *   3: SpecializationActive {@link ComparisonBaseNode#doID}
             *   4: SpecializationActive {@link ComparisonBaseNode#doIPNoOVerflow}
             *   5: SpecializationExcluded {@link ComparisonBaseNode#doIPNoOVerflow}
             *   6: SpecializationActive {@link ComparisonBaseNode#doIP}
             *   7: SpecializationActive {@link ComparisonBaseNode#doLL}
             *   8: SpecializationActive {@link ComparisonBaseNode#doLI}
             *   9: SpecializationActive {@link ComparisonBaseNode#doLD}
             *   10: SpecializationActive {@link ComparisonBaseNode#doLPNoOVerflow}
             *   11: SpecializationExcluded {@link ComparisonBaseNode#doLPNoOVerflow}
             *   12: SpecializationActive {@link ComparisonBaseNode#doLP}
             *   13: SpecializationActive {@link ComparisonBaseNode#doPINoOverflow}
             *   14: SpecializationExcluded {@link ComparisonBaseNode#doPINoOverflow}
             *   15: SpecializationActive {@link ComparisonBaseNode#doPI}
             *   16: SpecializationActive {@link ComparisonBaseNode#doPLNoOverflow}
             *   17: SpecializationExcluded {@link ComparisonBaseNode#doPLNoOverflow}
             *   18: SpecializationActive {@link ComparisonBaseNode#doPL}
             *   19: SpecializationActive {@link ComparisonBaseNode#doPP}
             *   20: SpecializationActive {@link ComparisonBaseNode#doDD}
             *   21: SpecializationActive {@link ComparisonBaseNode#doDI}
             *   22: SpecializationActive {@link ComparisonBaseNode#doDL}
             *   23: SpecializationActive {@link EqNode#doSS}
             *   24: SpecializationActive {@link ComparisonBaseNode#doGeneric}
             * 
*/ private final StateField state_0_; private final ReferenceField sS_equalNode_; private final ReferenceField generic_cache; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link GetClassNode} getClassA
             *   Inline method: {@link GetClassNodeGen#inline}
*/ private final GetClassNode generic_getClassA_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link GetClassNode} getClassB
             *   Inline method: {@link GetClassNodeGen#inline}
*/ private final GetClassNode generic_getClassB_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link InlinedConditionProfile} reversedFirst
             *   Inline method: {@link InlinedConditionProfile#inline}
*/ private final InlinedConditionProfile generic_reversedFirst_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link IsSameTypeNode} isSameTypeNode
             *   Inline method: {@link IsSameTypeNodeGen#inline}
*/ private final IsSameTypeNode generic_isSameTypeNode_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
*/ private final PyObjectIsTrueNode generic_isTrueNode_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link Lazy} raiseNode
             *   Inline method: {@link LazyNodeGen#inline}
*/ private final Lazy generic_raiseNode_; @SuppressWarnings("unchecked") private Inlined(InlineTarget target) { assert target.getTargetClass().isAssignableFrom(EqNode.class); this.state_0_ = target.getState(0, 25); this.sS_equalNode_ = target.getReference(1, EqualNode.class); this.generic_cache = target.getReference(2, GenericData.class); this.generic_getClassA_ = GetClassNodeGen.inline(InlineTarget.create(GetClassNode.class, GENERIC__EQ_NODE_GENERIC_STATE_0_UPDATER.subUpdater(0, 17), ReferenceField.create(GenericData.lookup_(), "generic_getClassA__field1_", Node.class))); this.generic_getClassB_ = GetClassNodeGen.inline(InlineTarget.create(GetClassNode.class, GENERIC__EQ_NODE_GENERIC_STATE_1_UPDATER.subUpdater(0, 17), ReferenceField.create(GenericData.lookup_(), "generic_getClassB__field1_", Node.class))); this.generic_reversedFirst_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, GENERIC__EQ_NODE_GENERIC_STATE_0_UPDATER.subUpdater(17, 2))); this.generic_isSameTypeNode_ = IsSameTypeNodeGen.inline(InlineTarget.create(IsSameTypeNode.class, GENERIC__EQ_NODE_GENERIC_STATE_0_UPDATER.subUpdater(19, 6), ReferenceField.create(GenericData.lookup_(), "generic_isSameTypeNode__field1_", Node.class))); this.generic_isTrueNode_ = PyObjectIsTrueNodeGen.inline(InlineTarget.create(PyObjectIsTrueNode.class, GENERIC__EQ_NODE_GENERIC_STATE_2_UPDATER.subUpdater(0, 19), GENERIC__EQ_NODE_GENERIC_STATE_0_UPDATER.subUpdater(25, 4), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field2_", Object.class), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field3_", Node.class), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field4_", Node.class), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field5_", Node.class), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field6_", Node.class))); this.generic_raiseNode_ = LazyNodeGen.inline(InlineTarget.create(Lazy.class, GENERIC__EQ_NODE_GENERIC_STATE_0_UPDATER.subUpdater(29, 1), ReferenceField.create(GenericData.lookup_(), "generic_raiseNode__field1_", Node.class))); } @Override protected boolean execute(Frame frameValue, Node arg0Value, Object arg1Value, Object arg2Value, Comparison arg3Value) { int state_0 = this.state_0_.get(arg0Value); if ((state_0 & 0x1fdb7df) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doBB(boolean, boolean, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doII(int, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIL(int, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doID(int, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLL(long, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLI(long, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLD(long, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPP(PInt, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDD(double, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDI(double, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDL(double, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.EqNode.doSS(TruffleString, TruffleString, Comparison, EqualNode)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)] */) { if ((state_0 & 0b1) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doBB(boolean, boolean, Comparison)] */ && arg1Value instanceof Boolean) { boolean arg1Value_ = (boolean) arg1Value; if (arg2Value instanceof Boolean) { boolean arg2Value_ = (boolean) arg2Value; return ComparisonBaseNode.doBB(arg1Value_, arg2Value_, arg3Value); } } if ((state_0 & 0b1011110) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doII(int, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIL(int, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doID(int, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */ && arg1Value instanceof Integer) { int arg1Value_ = (int) arg1Value; if ((state_0 & 0b10) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doII(int, int, Comparison)] */ && arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doII(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b100) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIL(int, long, Comparison)] */ && arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doIL(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b1000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doID(int, double, Comparison)] */ && arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doID(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b1010000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */ && arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((state_0 & 0b10000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { try { return ComparisonBaseNode.doIPNoOVerflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xffffffef /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */; state_0 = state_0 | 0b100000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0b1000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doIP(arg1Value_, arg2Value_, arg3Value); } } } } if ((state_0 & 0b1011110000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLL(long, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLI(long, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLD(long, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */ && arg1Value instanceof Long) { long arg1Value_ = (long) arg1Value; if ((state_0 & 0b10000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLL(long, long, Comparison)] */ && arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doLL(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b100000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLI(long, int, Comparison)] */ && arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doLI(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b1000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLD(long, double, Comparison)] */ && arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doLD(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b1010000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */ && arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((state_0 & 0b10000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { try { return ComparisonBaseNode.doLPNoOVerflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xfffffbff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */; state_0 = state_0 | 0b100000000000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0b1000000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doLP(arg1Value_, arg2Value_, arg3Value); } } } } if ((state_0 & 0xda000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPP(PInt, PInt, Comparison)] */ && arg1Value instanceof PInt) { PInt arg1Value_ = (PInt) arg1Value; if ((state_0 & 0b1010000000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] */ && arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; if ((state_0 & 0b10000000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { try { return ComparisonBaseNode.doPINoOverflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xffffdfff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */; state_0 = state_0 | 0b100000000000000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0b1000000000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { return ComparisonBaseNode.doPI(arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0x50000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] */ && arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; if ((state_0 & 0x10000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { try { return ComparisonBaseNode.doPLNoOverflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xfffeffff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */; state_0 = state_0 | 0x20000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0x40000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { return ComparisonBaseNode.doPL(arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0x80000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPP(PInt, PInt, Comparison)] */ && arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_)) && (PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doPP(arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0x700000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDD(double, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDI(double, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDL(double, long, Comparison)] */ && arg1Value instanceof Double) { double arg1Value_ = (double) arg1Value; if ((state_0 & 0x100000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDD(double, double, Comparison)] */ && arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doDD(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0x200000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDI(double, int, Comparison)] */ && arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doDI(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0x400000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDL(double, long, Comparison)] */ && arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doDL(arg1Value_, arg2Value_, arg3Value); } } if ((state_0 & 0x800000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.EqNode.doSS(TruffleString, TruffleString, Comparison, EqualNode)] */ && arg1Value instanceof TruffleString) { TruffleString arg1Value_ = (TruffleString) arg1Value; if (arg2Value instanceof TruffleString) { TruffleString arg2Value_ = (TruffleString) arg2Value; { EqualNode equalNode__ = this.sS_equalNode_.get(arg0Value); if (equalNode__ != null) { return EqNode.doSS(arg1Value_, arg2Value_, arg3Value, equalNode__); } } } } if ((state_0 & 0x1000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)] */) { GenericData s20_ = this.generic_cache.get(arg0Value); if (s20_ != null) { return ComparisonBaseNode.doGeneric((VirtualFrame) frameValue, s20_, arg1Value, arg2Value, arg3Value, s20_.isNode_, this.generic_getClassA_, this.generic_getClassB_, this.generic_reversedFirst_, this.generic_isSameTypeNode_, s20_.isSubtypeNode_, s20_.lookupMethod_, s20_.lookupReverseMethod_, s20_.callMethod_, s20_.callReverseMethod_, this.generic_isTrueNode_, this.generic_raiseNode_); } } } CompilerDirectives.transferToInterpreterAndInvalidate(); return executeAndSpecialize(frameValue, arg0Value, arg1Value, arg2Value, arg3Value); } private boolean executeAndSpecialize(Frame frameValue, Node arg0Value, Object arg1Value, Object arg2Value, Comparison arg3Value) { int state_0 = this.state_0_.get(arg0Value); if (arg1Value instanceof Boolean) { boolean arg1Value_ = (boolean) arg1Value; if (arg2Value instanceof Boolean) { boolean arg2Value_ = (boolean) arg2Value; state_0 = state_0 | 0b1 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doBB(boolean, boolean, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doBB(arg1Value_, arg2Value_, arg3Value); } } if (arg1Value instanceof Integer) { int arg1Value_ = (int) arg1Value; if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; state_0 = state_0 | 0b10 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doII(int, int, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doII(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; state_0 = state_0 | 0b100 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIL(int, long, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doIL(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; state_0 = state_0 | 0b1000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doID(int, double, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doID(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if (((state_0 & 0b1000000)) == 0 /* is-not SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */ && ((state_0 & 0b100000)) == 0 /* is-not SpecializationExcluded */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 | 0b10000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */; this.state_0_.set(arg0Value, state_0); try { return ComparisonBaseNode.doIPNoOVerflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xffffffef /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */; state_0 = state_0 | 0b100000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 & 0xffffffef /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */; state_0 = state_0 | 0b1000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doIP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof Long) { long arg1Value_ = (long) arg1Value; if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; state_0 = state_0 | 0b10000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLL(long, long, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doLL(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; state_0 = state_0 | 0b100000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLI(long, int, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doLI(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; state_0 = state_0 | 0b1000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLD(long, double, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doLD(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if (((state_0 & 0b1000000000000)) == 0 /* is-not SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */ && ((state_0 & 0b100000000000)) == 0 /* is-not SpecializationExcluded */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 | 0b10000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */; this.state_0_.set(arg0Value, state_0); try { return ComparisonBaseNode.doLPNoOVerflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xfffffbff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */; state_0 = state_0 | 0b100000000000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 & 0xfffffbff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */; state_0 = state_0 | 0b1000000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doLP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof PInt) { PInt arg1Value_ = (PInt) arg1Value; if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; if (((state_0 & 0b1000000000000000)) == 0 /* is-not SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] */ && ((state_0 & 0b100000000000000)) == 0 /* is-not SpecializationExcluded */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { state_0 = state_0 | 0b10000000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */; this.state_0_.set(arg0Value, state_0); try { return ComparisonBaseNode.doPINoOverflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xffffdfff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */; state_0 = state_0 | 0b100000000000000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((PGuards.isBuiltinPInt(arg1Value_))) { state_0 = state_0 & 0xffffdfff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */; state_0 = state_0 | 0b1000000000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doPI(arg1Value_, arg2Value_, arg3Value); } } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; if (((state_0 & 0x40000)) == 0 /* is-not SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] */ && ((state_0 & 0x20000)) == 0 /* is-not SpecializationExcluded */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { state_0 = state_0 | 0x10000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */; this.state_0_.set(arg0Value, state_0); try { return ComparisonBaseNode.doPLNoOverflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xfffeffff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */; state_0 = state_0 | 0x20000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((PGuards.isBuiltinPInt(arg1Value_))) { state_0 = state_0 & 0xfffeffff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */; state_0 = state_0 | 0x40000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doPL(arg1Value_, arg2Value_, arg3Value); } } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_)) && (PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 | 0x80000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPP(PInt, PInt, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doPP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof Double) { double arg1Value_ = (double) arg1Value; if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; state_0 = state_0 | 0x100000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDD(double, double, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doDD(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; state_0 = state_0 | 0x200000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDI(double, int, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doDI(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; state_0 = state_0 | 0x400000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDL(double, long, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doDL(arg1Value_, arg2Value_, arg3Value); } } if (arg1Value instanceof TruffleString) { TruffleString arg1Value_ = (TruffleString) arg1Value; if (arg2Value instanceof TruffleString) { TruffleString arg2Value_ = (TruffleString) arg2Value; EqualNode equalNode__ = arg0Value.insert((EqualNode.create())); Objects.requireNonNull(equalNode__, "Specialization 'doSS(TruffleString, TruffleString, Comparison, EqualNode)' cache 'equalNode' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); VarHandle.storeStoreFence(); this.sS_equalNode_.set(arg0Value, equalNode__); state_0 = state_0 | 0x800000 /* add SpecializationActive[PyObjectRichCompareBool.EqNode.doSS(TruffleString, TruffleString, Comparison, EqualNode)] */; this.state_0_.set(arg0Value, state_0); return EqNode.doSS(arg1Value_, arg2Value_, arg3Value, equalNode__); } } GenericData s20_ = arg0Value.insert(new GenericData()); IsNode isNode__ = s20_.insert((IsNode.create())); Objects.requireNonNull(isNode__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'isNode' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.isNode_ = isNode__; IsSubtypeNode isSubtypeNode__ = s20_.insert((IsSubtypeNode.create())); Objects.requireNonNull(isSubtypeNode__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'isSubtypeNode' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.isSubtypeNode_ = isSubtypeNode__; LookupSpecialMethodSlotNode lookupMethod__ = s20_.insert((LookupSpecialMethodSlotNode.create(arg3Value.getSlot()))); Objects.requireNonNull(lookupMethod__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'lookupMethod' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.lookupMethod_ = lookupMethod__; LookupSpecialMethodSlotNode lookupReverseMethod__ = s20_.insert((LookupSpecialMethodSlotNode.create(arg3Value.getReverseSlot()))); Objects.requireNonNull(lookupReverseMethod__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'lookupReverseMethod' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.lookupReverseMethod_ = lookupReverseMethod__; CallBinaryMethodNode callMethod__ = s20_.insert((CallBinaryMethodNode.create())); Objects.requireNonNull(callMethod__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'callMethod' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.callMethod_ = callMethod__; CallBinaryMethodNode callReverseMethod__ = s20_.insert((CallBinaryMethodNode.create())); Objects.requireNonNull(callReverseMethod__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'callReverseMethod' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.callReverseMethod_ = callReverseMethod__; VarHandle.storeStoreFence(); this.generic_cache.set(arg0Value, s20_); state_0 = state_0 | 0x1000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doGeneric((VirtualFrame) frameValue, s20_, arg1Value, arg2Value, arg3Value, isNode__, this.generic_getClassA_, this.generic_getClassB_, this.generic_reversedFirst_, this.generic_isSameTypeNode_, isSubtypeNode__, lookupMethod__, lookupReverseMethod__, callMethod__, callReverseMethod__, this.generic_isTrueNode_, this.generic_raiseNode_); } @Override public boolean isAdoptable() { return false; } } @GeneratedBy(EqNode.class) @DenyReplace private static final class GenericData extends Node implements SpecializationDataNode { /** * State Info:
             *   0-16: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link GetClassNode} getClassA
             *        Inline method: {@link GetClassNodeGen#inline}
             *   17-18: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link InlinedConditionProfile} reversedFirst
             *        Inline method: {@link InlinedConditionProfile#inline}
             *   19-24: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link IsSameTypeNode} isSameTypeNode
             *        Inline method: {@link IsSameTypeNodeGen#inline}
             *   25-28: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *        Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   29: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link Lazy} raiseNode
             *        Inline method: {@link LazyNodeGen#inline}
             * 
*/ @CompilationFinal @UnsafeAccessedField private int generic_state_0_; /** * State Info:
             *   0-16: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link GetClassNode} getClassB
             *        Inline method: {@link GetClassNodeGen#inline}
             * 
*/ @CompilationFinal @UnsafeAccessedField private int generic_state_1_; /** * State Info:
             *   0-18: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *        Inline method: {@link PyObjectIsTrueNodeGen#inline}
             * 
*/ @CompilationFinal @UnsafeAccessedField private int generic_state_2_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link IsNode} isNode
*/ @Child IsNode isNode_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link GetClassNode} getClassA
             *   Inline method: {@link GetClassNodeGen#inline}
             *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_getClassA__field1_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link GetClassNode} getClassB
             *   Inline method: {@link GetClassNodeGen#inline}
             *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_getClassB__field1_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link IsSameTypeNode} isSameTypeNode
             *   Inline method: {@link IsSameTypeNodeGen#inline}
             *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_isSameTypeNode__field1_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link IsSubtypeNode} isSubtypeNode
*/ @Child IsSubtypeNode isSubtypeNode_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link LookupSpecialMethodSlotNode} lookupMethod
*/ @Child LookupSpecialMethodSlotNode lookupMethod_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link LookupSpecialMethodSlotNode} lookupReverseMethod
*/ @Child LookupSpecialMethodSlotNode lookupReverseMethod_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link CallBinaryMethodNode} callMethod
*/ @Child CallBinaryMethodNode callMethod_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link CallBinaryMethodNode} callReverseMethod
*/ @Child CallBinaryMethodNode callReverseMethod_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   Inline field: {@link Object} field2
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private Object generic_isTrueNode__field2_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   Inline field: {@link Node} field3
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_isTrueNode__field3_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   Inline field: {@link Node} field4
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_isTrueNode__field4_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   Inline field: {@link Node} field5
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_isTrueNode__field5_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   Inline field: {@link Node} field6
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_isTrueNode__field6_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link Lazy} raiseNode
             *   Inline method: {@link LazyNodeGen#inline}
             *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_raiseNode__field1_; GenericData() { } @Override public NodeCost getCost() { return NodeCost.NONE; } private static Lookup lookup_() { return MethodHandles.lookup(); } } @GeneratedBy(EqNode.class) @DenyReplace private static final class Uncached extends EqNode { @Override protected boolean execute(Frame frameValue, Node arg0Value, Object arg1Value, Object arg2Value, Comparison arg3Value) { CompilerDirectives.transferToInterpreterAndInvalidate(); if (arg1Value instanceof Boolean) { boolean arg1Value_ = (boolean) arg1Value; if (arg2Value instanceof Boolean) { boolean arg2Value_ = (boolean) arg2Value; return ComparisonBaseNode.doBB(arg1Value_, arg2Value_, arg3Value); } } if (arg1Value instanceof Integer) { int arg1Value_ = (int) arg1Value; if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doII(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doIL(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doID(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doIP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof Long) { long arg1Value_ = (long) arg1Value; if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doLL(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doLI(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doLD(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doLP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof PInt) { PInt arg1Value_ = (PInt) arg1Value; if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_))) { return ComparisonBaseNode.doPI(arg1Value_, arg2Value_, arg3Value); } } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_))) { return ComparisonBaseNode.doPL(arg1Value_, arg2Value_, arg3Value); } } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_)) && (PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doPP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof Double) { double arg1Value_ = (double) arg1Value; if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doDD(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doDI(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doDL(arg1Value_, arg2Value_, arg3Value); } } if (arg1Value instanceof TruffleString) { TruffleString arg1Value_ = (TruffleString) arg1Value; if (arg2Value instanceof TruffleString) { TruffleString arg2Value_ = (TruffleString) arg2Value; return EqNode.doSS(arg1Value_, arg2Value_, arg3Value, (EqualNode.getUncached())); } } return ComparisonBaseNode.doGeneric((VirtualFrame) frameValue, arg0Value, arg1Value, arg2Value, arg3Value, (IsNode.getUncached()), (GetClassNode.getUncached()), (GetClassNode.getUncached()), (InlinedConditionProfile.getUncached()), (IsSameTypeNodeGen.getUncached()), (IsSubtypeNode.getUncached()), (LookupSpecialMethodSlotNode.getUncached(arg3Value.getSlot())), (LookupSpecialMethodSlotNode.getUncached(arg3Value.getReverseSlot())), (CallBinaryMethodNode.getUncached()), (CallBinaryMethodNode.getUncached()), (PyObjectIsTrueNode.getUncached()), (Lazy.getUncached())); } @Override public NodeCost getCost() { return NodeCost.MEGAMORPHIC; } @Override public boolean isAdoptable() { return false; } } } /** * Debug Info:
     *   Specialization {@link ComparisonBaseNode#doBB}
     *     Activation probability: 0.08658
     *     With/without class size: 5/0 bytes
     *   Specialization {@link ComparisonBaseNode#doII}
     *     Activation probability: 0.08268
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doIL}
     *     Activation probability: 0.07879
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doID}
     *     Activation probability: 0.07489
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doIPNoOVerflow}
     *     Activation probability: 0.07100
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doIP}
     *     Activation probability: 0.06710
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doLL}
     *     Activation probability: 0.06320
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doLI}
     *     Activation probability: 0.05931
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doLD}
     *     Activation probability: 0.05541
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doLPNoOVerflow}
     *     Activation probability: 0.05152
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doLP}
     *     Activation probability: 0.04762
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doPINoOverflow}
     *     Activation probability: 0.04372
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doPI}
     *     Activation probability: 0.03983
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doPLNoOverflow}
     *     Activation probability: 0.03593
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doPL}
     *     Activation probability: 0.03203
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doPP}
     *     Activation probability: 0.02814
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doDD}
     *     Activation probability: 0.02424
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doDI}
     *     Activation probability: 0.02035
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doDL}
     *     Activation probability: 0.01645
     *     With/without class size: 4/0 bytes
     *   Specialization {@link NeNode#doSS}
     *     Activation probability: 0.01255
     *     With/without class size: 4/4 bytes
     *   Specialization {@link ComparisonBaseNode#doGeneric}
     *     Activation probability: 0.00866
     *     With/without class size: 4/69 bytes
     * 
*/ @GeneratedBy(NeNode.class) @SuppressWarnings("javadoc") public static final class NeNodeGen { private static final StateField GENERIC__NE_NODE_GENERIC_STATE_0_UPDATER = StateField.create(GenericData.lookup_(), "generic_state_0_"); private static final StateField GENERIC__NE_NODE_GENERIC_STATE_1_UPDATER = StateField.create(GenericData.lookup_(), "generic_state_1_"); private static final StateField GENERIC__NE_NODE_GENERIC_STATE_2_UPDATER = StateField.create(GenericData.lookup_(), "generic_state_2_"); private static final Uncached UNCACHED = new Uncached(); @NeverDefault public static NeNode getUncached() { return NeNodeGen.UNCACHED; } /** * Required Fields:
    *
  • {@link Inlined#state_0_} *
  • {@link Inlined#sS_equalNode_} *
  • {@link Inlined#generic_cache} *
*/ @NeverDefault public static NeNode inline(@RequiredField(bits = 25, value = StateField.class)@RequiredField(type = Node.class, value = ReferenceField.class)@RequiredField(type = Node.class, value = ReferenceField.class) InlineTarget target) { return new NeNodeGen.Inlined(target); } @GeneratedBy(NeNode.class) @DenyReplace private static final class Inlined extends NeNode { /** * State Info:
             *   0: SpecializationActive {@link ComparisonBaseNode#doBB}
             *   1: SpecializationActive {@link ComparisonBaseNode#doII}
             *   2: SpecializationActive {@link ComparisonBaseNode#doIL}
             *   3: SpecializationActive {@link ComparisonBaseNode#doID}
             *   4: SpecializationActive {@link ComparisonBaseNode#doIPNoOVerflow}
             *   5: SpecializationExcluded {@link ComparisonBaseNode#doIPNoOVerflow}
             *   6: SpecializationActive {@link ComparisonBaseNode#doIP}
             *   7: SpecializationActive {@link ComparisonBaseNode#doLL}
             *   8: SpecializationActive {@link ComparisonBaseNode#doLI}
             *   9: SpecializationActive {@link ComparisonBaseNode#doLD}
             *   10: SpecializationActive {@link ComparisonBaseNode#doLPNoOVerflow}
             *   11: SpecializationExcluded {@link ComparisonBaseNode#doLPNoOVerflow}
             *   12: SpecializationActive {@link ComparisonBaseNode#doLP}
             *   13: SpecializationActive {@link ComparisonBaseNode#doPINoOverflow}
             *   14: SpecializationExcluded {@link ComparisonBaseNode#doPINoOverflow}
             *   15: SpecializationActive {@link ComparisonBaseNode#doPI}
             *   16: SpecializationActive {@link ComparisonBaseNode#doPLNoOverflow}
             *   17: SpecializationExcluded {@link ComparisonBaseNode#doPLNoOverflow}
             *   18: SpecializationActive {@link ComparisonBaseNode#doPL}
             *   19: SpecializationActive {@link ComparisonBaseNode#doPP}
             *   20: SpecializationActive {@link ComparisonBaseNode#doDD}
             *   21: SpecializationActive {@link ComparisonBaseNode#doDI}
             *   22: SpecializationActive {@link ComparisonBaseNode#doDL}
             *   23: SpecializationActive {@link NeNode#doSS}
             *   24: SpecializationActive {@link ComparisonBaseNode#doGeneric}
             * 
*/ private final StateField state_0_; private final ReferenceField sS_equalNode_; private final ReferenceField generic_cache; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link GetClassNode} getClassA
             *   Inline method: {@link GetClassNodeGen#inline}
*/ private final GetClassNode generic_getClassA_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link GetClassNode} getClassB
             *   Inline method: {@link GetClassNodeGen#inline}
*/ private final GetClassNode generic_getClassB_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link InlinedConditionProfile} reversedFirst
             *   Inline method: {@link InlinedConditionProfile#inline}
*/ private final InlinedConditionProfile generic_reversedFirst_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link IsSameTypeNode} isSameTypeNode
             *   Inline method: {@link IsSameTypeNodeGen#inline}
*/ private final IsSameTypeNode generic_isSameTypeNode_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
*/ private final PyObjectIsTrueNode generic_isTrueNode_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link Lazy} raiseNode
             *   Inline method: {@link LazyNodeGen#inline}
*/ private final Lazy generic_raiseNode_; @SuppressWarnings("unchecked") private Inlined(InlineTarget target) { assert target.getTargetClass().isAssignableFrom(NeNode.class); this.state_0_ = target.getState(0, 25); this.sS_equalNode_ = target.getReference(1, EqualNode.class); this.generic_cache = target.getReference(2, GenericData.class); this.generic_getClassA_ = GetClassNodeGen.inline(InlineTarget.create(GetClassNode.class, GENERIC__NE_NODE_GENERIC_STATE_0_UPDATER.subUpdater(0, 17), ReferenceField.create(GenericData.lookup_(), "generic_getClassA__field1_", Node.class))); this.generic_getClassB_ = GetClassNodeGen.inline(InlineTarget.create(GetClassNode.class, GENERIC__NE_NODE_GENERIC_STATE_1_UPDATER.subUpdater(0, 17), ReferenceField.create(GenericData.lookup_(), "generic_getClassB__field1_", Node.class))); this.generic_reversedFirst_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, GENERIC__NE_NODE_GENERIC_STATE_0_UPDATER.subUpdater(17, 2))); this.generic_isSameTypeNode_ = IsSameTypeNodeGen.inline(InlineTarget.create(IsSameTypeNode.class, GENERIC__NE_NODE_GENERIC_STATE_0_UPDATER.subUpdater(19, 6), ReferenceField.create(GenericData.lookup_(), "generic_isSameTypeNode__field1_", Node.class))); this.generic_isTrueNode_ = PyObjectIsTrueNodeGen.inline(InlineTarget.create(PyObjectIsTrueNode.class, GENERIC__NE_NODE_GENERIC_STATE_2_UPDATER.subUpdater(0, 19), GENERIC__NE_NODE_GENERIC_STATE_0_UPDATER.subUpdater(25, 4), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field2_", Object.class), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field3_", Node.class), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field4_", Node.class), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field5_", Node.class), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field6_", Node.class))); this.generic_raiseNode_ = LazyNodeGen.inline(InlineTarget.create(Lazy.class, GENERIC__NE_NODE_GENERIC_STATE_0_UPDATER.subUpdater(29, 1), ReferenceField.create(GenericData.lookup_(), "generic_raiseNode__field1_", Node.class))); } @Override protected boolean execute(Frame frameValue, Node arg0Value, Object arg1Value, Object arg2Value, Comparison arg3Value) { int state_0 = this.state_0_.get(arg0Value); if ((state_0 & 0x1fdb7df) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doBB(boolean, boolean, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doII(int, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIL(int, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doID(int, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLL(long, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLI(long, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLD(long, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPP(PInt, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDD(double, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDI(double, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDL(double, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.NeNode.doSS(TruffleString, TruffleString, Comparison, EqualNode)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)] */) { if ((state_0 & 0b1) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doBB(boolean, boolean, Comparison)] */ && arg1Value instanceof Boolean) { boolean arg1Value_ = (boolean) arg1Value; if (arg2Value instanceof Boolean) { boolean arg2Value_ = (boolean) arg2Value; return ComparisonBaseNode.doBB(arg1Value_, arg2Value_, arg3Value); } } if ((state_0 & 0b1011110) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doII(int, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIL(int, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doID(int, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */ && arg1Value instanceof Integer) { int arg1Value_ = (int) arg1Value; if ((state_0 & 0b10) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doII(int, int, Comparison)] */ && arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doII(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b100) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIL(int, long, Comparison)] */ && arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doIL(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b1000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doID(int, double, Comparison)] */ && arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doID(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b1010000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */ && arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((state_0 & 0b10000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { try { return ComparisonBaseNode.doIPNoOVerflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xffffffef /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */; state_0 = state_0 | 0b100000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0b1000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doIP(arg1Value_, arg2Value_, arg3Value); } } } } if ((state_0 & 0b1011110000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLL(long, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLI(long, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLD(long, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */ && arg1Value instanceof Long) { long arg1Value_ = (long) arg1Value; if ((state_0 & 0b10000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLL(long, long, Comparison)] */ && arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doLL(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b100000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLI(long, int, Comparison)] */ && arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doLI(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b1000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLD(long, double, Comparison)] */ && arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doLD(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b1010000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */ && arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((state_0 & 0b10000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { try { return ComparisonBaseNode.doLPNoOVerflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xfffffbff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */; state_0 = state_0 | 0b100000000000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0b1000000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doLP(arg1Value_, arg2Value_, arg3Value); } } } } if ((state_0 & 0xda000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPP(PInt, PInt, Comparison)] */ && arg1Value instanceof PInt) { PInt arg1Value_ = (PInt) arg1Value; if ((state_0 & 0b1010000000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] */ && arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; if ((state_0 & 0b10000000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { try { return ComparisonBaseNode.doPINoOverflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xffffdfff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */; state_0 = state_0 | 0b100000000000000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0b1000000000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { return ComparisonBaseNode.doPI(arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0x50000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] */ && arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; if ((state_0 & 0x10000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { try { return ComparisonBaseNode.doPLNoOverflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xfffeffff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */; state_0 = state_0 | 0x20000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0x40000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { return ComparisonBaseNode.doPL(arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0x80000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPP(PInt, PInt, Comparison)] */ && arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_)) && (PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doPP(arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0x700000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDD(double, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDI(double, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDL(double, long, Comparison)] */ && arg1Value instanceof Double) { double arg1Value_ = (double) arg1Value; if ((state_0 & 0x100000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDD(double, double, Comparison)] */ && arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doDD(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0x200000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDI(double, int, Comparison)] */ && arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doDI(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0x400000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDL(double, long, Comparison)] */ && arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doDL(arg1Value_, arg2Value_, arg3Value); } } if ((state_0 & 0x800000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.NeNode.doSS(TruffleString, TruffleString, Comparison, EqualNode)] */ && arg1Value instanceof TruffleString) { TruffleString arg1Value_ = (TruffleString) arg1Value; if (arg2Value instanceof TruffleString) { TruffleString arg2Value_ = (TruffleString) arg2Value; { EqualNode equalNode__ = this.sS_equalNode_.get(arg0Value); if (equalNode__ != null) { return NeNode.doSS(arg1Value_, arg2Value_, arg3Value, equalNode__); } } } } if ((state_0 & 0x1000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)] */) { GenericData s20_ = this.generic_cache.get(arg0Value); if (s20_ != null) { return ComparisonBaseNode.doGeneric((VirtualFrame) frameValue, s20_, arg1Value, arg2Value, arg3Value, s20_.isNode_, this.generic_getClassA_, this.generic_getClassB_, this.generic_reversedFirst_, this.generic_isSameTypeNode_, s20_.isSubtypeNode_, s20_.lookupMethod_, s20_.lookupReverseMethod_, s20_.callMethod_, s20_.callReverseMethod_, this.generic_isTrueNode_, this.generic_raiseNode_); } } } CompilerDirectives.transferToInterpreterAndInvalidate(); return executeAndSpecialize(frameValue, arg0Value, arg1Value, arg2Value, arg3Value); } private boolean executeAndSpecialize(Frame frameValue, Node arg0Value, Object arg1Value, Object arg2Value, Comparison arg3Value) { int state_0 = this.state_0_.get(arg0Value); if (arg1Value instanceof Boolean) { boolean arg1Value_ = (boolean) arg1Value; if (arg2Value instanceof Boolean) { boolean arg2Value_ = (boolean) arg2Value; state_0 = state_0 | 0b1 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doBB(boolean, boolean, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doBB(arg1Value_, arg2Value_, arg3Value); } } if (arg1Value instanceof Integer) { int arg1Value_ = (int) arg1Value; if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; state_0 = state_0 | 0b10 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doII(int, int, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doII(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; state_0 = state_0 | 0b100 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIL(int, long, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doIL(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; state_0 = state_0 | 0b1000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doID(int, double, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doID(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if (((state_0 & 0b1000000)) == 0 /* is-not SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */ && ((state_0 & 0b100000)) == 0 /* is-not SpecializationExcluded */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 | 0b10000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */; this.state_0_.set(arg0Value, state_0); try { return ComparisonBaseNode.doIPNoOVerflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xffffffef /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */; state_0 = state_0 | 0b100000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 & 0xffffffef /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */; state_0 = state_0 | 0b1000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doIP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof Long) { long arg1Value_ = (long) arg1Value; if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; state_0 = state_0 | 0b10000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLL(long, long, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doLL(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; state_0 = state_0 | 0b100000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLI(long, int, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doLI(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; state_0 = state_0 | 0b1000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLD(long, double, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doLD(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if (((state_0 & 0b1000000000000)) == 0 /* is-not SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */ && ((state_0 & 0b100000000000)) == 0 /* is-not SpecializationExcluded */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 | 0b10000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */; this.state_0_.set(arg0Value, state_0); try { return ComparisonBaseNode.doLPNoOVerflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xfffffbff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */; state_0 = state_0 | 0b100000000000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 & 0xfffffbff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */; state_0 = state_0 | 0b1000000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doLP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof PInt) { PInt arg1Value_ = (PInt) arg1Value; if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; if (((state_0 & 0b1000000000000000)) == 0 /* is-not SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] */ && ((state_0 & 0b100000000000000)) == 0 /* is-not SpecializationExcluded */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { state_0 = state_0 | 0b10000000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */; this.state_0_.set(arg0Value, state_0); try { return ComparisonBaseNode.doPINoOverflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xffffdfff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */; state_0 = state_0 | 0b100000000000000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((PGuards.isBuiltinPInt(arg1Value_))) { state_0 = state_0 & 0xffffdfff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */; state_0 = state_0 | 0b1000000000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doPI(arg1Value_, arg2Value_, arg3Value); } } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; if (((state_0 & 0x40000)) == 0 /* is-not SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] */ && ((state_0 & 0x20000)) == 0 /* is-not SpecializationExcluded */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { state_0 = state_0 | 0x10000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */; this.state_0_.set(arg0Value, state_0); try { return ComparisonBaseNode.doPLNoOverflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xfffeffff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */; state_0 = state_0 | 0x20000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((PGuards.isBuiltinPInt(arg1Value_))) { state_0 = state_0 & 0xfffeffff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */; state_0 = state_0 | 0x40000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doPL(arg1Value_, arg2Value_, arg3Value); } } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_)) && (PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 | 0x80000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPP(PInt, PInt, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doPP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof Double) { double arg1Value_ = (double) arg1Value; if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; state_0 = state_0 | 0x100000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDD(double, double, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doDD(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; state_0 = state_0 | 0x200000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDI(double, int, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doDI(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; state_0 = state_0 | 0x400000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDL(double, long, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doDL(arg1Value_, arg2Value_, arg3Value); } } if (arg1Value instanceof TruffleString) { TruffleString arg1Value_ = (TruffleString) arg1Value; if (arg2Value instanceof TruffleString) { TruffleString arg2Value_ = (TruffleString) arg2Value; EqualNode equalNode__ = arg0Value.insert((EqualNode.create())); Objects.requireNonNull(equalNode__, "Specialization 'doSS(TruffleString, TruffleString, Comparison, EqualNode)' cache 'equalNode' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); VarHandle.storeStoreFence(); this.sS_equalNode_.set(arg0Value, equalNode__); state_0 = state_0 | 0x800000 /* add SpecializationActive[PyObjectRichCompareBool.NeNode.doSS(TruffleString, TruffleString, Comparison, EqualNode)] */; this.state_0_.set(arg0Value, state_0); return NeNode.doSS(arg1Value_, arg2Value_, arg3Value, equalNode__); } } GenericData s20_ = arg0Value.insert(new GenericData()); IsNode isNode__ = s20_.insert((IsNode.create())); Objects.requireNonNull(isNode__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'isNode' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.isNode_ = isNode__; IsSubtypeNode isSubtypeNode__ = s20_.insert((IsSubtypeNode.create())); Objects.requireNonNull(isSubtypeNode__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'isSubtypeNode' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.isSubtypeNode_ = isSubtypeNode__; LookupSpecialMethodSlotNode lookupMethod__ = s20_.insert((LookupSpecialMethodSlotNode.create(arg3Value.getSlot()))); Objects.requireNonNull(lookupMethod__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'lookupMethod' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.lookupMethod_ = lookupMethod__; LookupSpecialMethodSlotNode lookupReverseMethod__ = s20_.insert((LookupSpecialMethodSlotNode.create(arg3Value.getReverseSlot()))); Objects.requireNonNull(lookupReverseMethod__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'lookupReverseMethod' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.lookupReverseMethod_ = lookupReverseMethod__; CallBinaryMethodNode callMethod__ = s20_.insert((CallBinaryMethodNode.create())); Objects.requireNonNull(callMethod__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'callMethod' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.callMethod_ = callMethod__; CallBinaryMethodNode callReverseMethod__ = s20_.insert((CallBinaryMethodNode.create())); Objects.requireNonNull(callReverseMethod__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'callReverseMethod' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.callReverseMethod_ = callReverseMethod__; VarHandle.storeStoreFence(); this.generic_cache.set(arg0Value, s20_); state_0 = state_0 | 0x1000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doGeneric((VirtualFrame) frameValue, s20_, arg1Value, arg2Value, arg3Value, isNode__, this.generic_getClassA_, this.generic_getClassB_, this.generic_reversedFirst_, this.generic_isSameTypeNode_, isSubtypeNode__, lookupMethod__, lookupReverseMethod__, callMethod__, callReverseMethod__, this.generic_isTrueNode_, this.generic_raiseNode_); } @Override public boolean isAdoptable() { return false; } } @GeneratedBy(NeNode.class) @DenyReplace private static final class GenericData extends Node implements SpecializationDataNode { /** * State Info:
             *   0-16: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link GetClassNode} getClassA
             *        Inline method: {@link GetClassNodeGen#inline}
             *   17-18: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link InlinedConditionProfile} reversedFirst
             *        Inline method: {@link InlinedConditionProfile#inline}
             *   19-24: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link IsSameTypeNode} isSameTypeNode
             *        Inline method: {@link IsSameTypeNodeGen#inline}
             *   25-28: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *        Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   29: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link Lazy} raiseNode
             *        Inline method: {@link LazyNodeGen#inline}
             * 
*/ @CompilationFinal @UnsafeAccessedField private int generic_state_0_; /** * State Info:
             *   0-16: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link GetClassNode} getClassB
             *        Inline method: {@link GetClassNodeGen#inline}
             * 
*/ @CompilationFinal @UnsafeAccessedField private int generic_state_1_; /** * State Info:
             *   0-18: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *        Inline method: {@link PyObjectIsTrueNodeGen#inline}
             * 
*/ @CompilationFinal @UnsafeAccessedField private int generic_state_2_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link IsNode} isNode
*/ @Child IsNode isNode_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link GetClassNode} getClassA
             *   Inline method: {@link GetClassNodeGen#inline}
             *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_getClassA__field1_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link GetClassNode} getClassB
             *   Inline method: {@link GetClassNodeGen#inline}
             *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_getClassB__field1_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link IsSameTypeNode} isSameTypeNode
             *   Inline method: {@link IsSameTypeNodeGen#inline}
             *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_isSameTypeNode__field1_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link IsSubtypeNode} isSubtypeNode
*/ @Child IsSubtypeNode isSubtypeNode_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link LookupSpecialMethodSlotNode} lookupMethod
*/ @Child LookupSpecialMethodSlotNode lookupMethod_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link LookupSpecialMethodSlotNode} lookupReverseMethod
*/ @Child LookupSpecialMethodSlotNode lookupReverseMethod_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link CallBinaryMethodNode} callMethod
*/ @Child CallBinaryMethodNode callMethod_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link CallBinaryMethodNode} callReverseMethod
*/ @Child CallBinaryMethodNode callReverseMethod_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   Inline field: {@link Object} field2
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private Object generic_isTrueNode__field2_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   Inline field: {@link Node} field3
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_isTrueNode__field3_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   Inline field: {@link Node} field4
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_isTrueNode__field4_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   Inline field: {@link Node} field5
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_isTrueNode__field5_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   Inline field: {@link Node} field6
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_isTrueNode__field6_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link Lazy} raiseNode
             *   Inline method: {@link LazyNodeGen#inline}
             *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_raiseNode__field1_; GenericData() { } @Override public NodeCost getCost() { return NodeCost.NONE; } private static Lookup lookup_() { return MethodHandles.lookup(); } } @GeneratedBy(NeNode.class) @DenyReplace private static final class Uncached extends NeNode { @Override protected boolean execute(Frame frameValue, Node arg0Value, Object arg1Value, Object arg2Value, Comparison arg3Value) { CompilerDirectives.transferToInterpreterAndInvalidate(); if (arg1Value instanceof Boolean) { boolean arg1Value_ = (boolean) arg1Value; if (arg2Value instanceof Boolean) { boolean arg2Value_ = (boolean) arg2Value; return ComparisonBaseNode.doBB(arg1Value_, arg2Value_, arg3Value); } } if (arg1Value instanceof Integer) { int arg1Value_ = (int) arg1Value; if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doII(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doIL(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doID(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doIP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof Long) { long arg1Value_ = (long) arg1Value; if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doLL(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doLI(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doLD(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doLP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof PInt) { PInt arg1Value_ = (PInt) arg1Value; if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_))) { return ComparisonBaseNode.doPI(arg1Value_, arg2Value_, arg3Value); } } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_))) { return ComparisonBaseNode.doPL(arg1Value_, arg2Value_, arg3Value); } } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_)) && (PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doPP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof Double) { double arg1Value_ = (double) arg1Value; if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doDD(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doDI(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doDL(arg1Value_, arg2Value_, arg3Value); } } if (arg1Value instanceof TruffleString) { TruffleString arg1Value_ = (TruffleString) arg1Value; if (arg2Value instanceof TruffleString) { TruffleString arg2Value_ = (TruffleString) arg2Value; return NeNode.doSS(arg1Value_, arg2Value_, arg3Value, (EqualNode.getUncached())); } } return ComparisonBaseNode.doGeneric((VirtualFrame) frameValue, arg0Value, arg1Value, arg2Value, arg3Value, (IsNode.getUncached()), (GetClassNode.getUncached()), (GetClassNode.getUncached()), (InlinedConditionProfile.getUncached()), (IsSameTypeNodeGen.getUncached()), (IsSubtypeNode.getUncached()), (LookupSpecialMethodSlotNode.getUncached(arg3Value.getSlot())), (LookupSpecialMethodSlotNode.getUncached(arg3Value.getReverseSlot())), (CallBinaryMethodNode.getUncached()), (CallBinaryMethodNode.getUncached()), (PyObjectIsTrueNode.getUncached()), (Lazy.getUncached())); } @Override public NodeCost getCost() { return NodeCost.MEGAMORPHIC; } @Override public boolean isAdoptable() { return false; } } } /** * Debug Info:
     *   Specialization {@link ComparisonBaseNode#doBB}
     *     Activation probability: 0.08658
     *     With/without class size: 5/0 bytes
     *   Specialization {@link ComparisonBaseNode#doII}
     *     Activation probability: 0.08268
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doIL}
     *     Activation probability: 0.07879
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doID}
     *     Activation probability: 0.07489
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doIPNoOVerflow}
     *     Activation probability: 0.07100
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doIP}
     *     Activation probability: 0.06710
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doLL}
     *     Activation probability: 0.06320
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doLI}
     *     Activation probability: 0.05931
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doLD}
     *     Activation probability: 0.05541
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doLPNoOVerflow}
     *     Activation probability: 0.05152
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doLP}
     *     Activation probability: 0.04762
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doPINoOverflow}
     *     Activation probability: 0.04372
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doPI}
     *     Activation probability: 0.03983
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doPLNoOverflow}
     *     Activation probability: 0.03593
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doPL}
     *     Activation probability: 0.03203
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doPP}
     *     Activation probability: 0.02814
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doDD}
     *     Activation probability: 0.02424
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doDI}
     *     Activation probability: 0.02035
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doDL}
     *     Activation probability: 0.01645
     *     With/without class size: 4/0 bytes
     *   Specialization {@link LtNode#doSS}
     *     Activation probability: 0.01255
     *     With/without class size: 4/4 bytes
     *   Specialization {@link ComparisonBaseNode#doGeneric}
     *     Activation probability: 0.00866
     *     With/without class size: 4/69 bytes
     * 
*/ @GeneratedBy(LtNode.class) @SuppressWarnings("javadoc") public static final class LtNodeGen { private static final StateField GENERIC__LT_NODE_GENERIC_STATE_0_UPDATER = StateField.create(GenericData.lookup_(), "generic_state_0_"); private static final StateField GENERIC__LT_NODE_GENERIC_STATE_1_UPDATER = StateField.create(GenericData.lookup_(), "generic_state_1_"); private static final StateField GENERIC__LT_NODE_GENERIC_STATE_2_UPDATER = StateField.create(GenericData.lookup_(), "generic_state_2_"); private static final Uncached UNCACHED = new Uncached(); @NeverDefault public static LtNode getUncached() { return LtNodeGen.UNCACHED; } /** * Required Fields:
    *
  • {@link Inlined#state_0_} *
  • {@link Inlined#sS_compareIntsUTF32Node_} *
  • {@link Inlined#generic_cache} *
*/ @NeverDefault public static LtNode inline(@RequiredField(bits = 25, value = StateField.class)@RequiredField(type = Node.class, value = ReferenceField.class)@RequiredField(type = Node.class, value = ReferenceField.class) InlineTarget target) { return new LtNodeGen.Inlined(target); } @GeneratedBy(LtNode.class) @DenyReplace private static final class Inlined extends LtNode { /** * State Info:
             *   0: SpecializationActive {@link ComparisonBaseNode#doBB}
             *   1: SpecializationActive {@link ComparisonBaseNode#doII}
             *   2: SpecializationActive {@link ComparisonBaseNode#doIL}
             *   3: SpecializationActive {@link ComparisonBaseNode#doID}
             *   4: SpecializationActive {@link ComparisonBaseNode#doIPNoOVerflow}
             *   5: SpecializationExcluded {@link ComparisonBaseNode#doIPNoOVerflow}
             *   6: SpecializationActive {@link ComparisonBaseNode#doIP}
             *   7: SpecializationActive {@link ComparisonBaseNode#doLL}
             *   8: SpecializationActive {@link ComparisonBaseNode#doLI}
             *   9: SpecializationActive {@link ComparisonBaseNode#doLD}
             *   10: SpecializationActive {@link ComparisonBaseNode#doLPNoOVerflow}
             *   11: SpecializationExcluded {@link ComparisonBaseNode#doLPNoOVerflow}
             *   12: SpecializationActive {@link ComparisonBaseNode#doLP}
             *   13: SpecializationActive {@link ComparisonBaseNode#doPINoOverflow}
             *   14: SpecializationExcluded {@link ComparisonBaseNode#doPINoOverflow}
             *   15: SpecializationActive {@link ComparisonBaseNode#doPI}
             *   16: SpecializationActive {@link ComparisonBaseNode#doPLNoOverflow}
             *   17: SpecializationExcluded {@link ComparisonBaseNode#doPLNoOverflow}
             *   18: SpecializationActive {@link ComparisonBaseNode#doPL}
             *   19: SpecializationActive {@link ComparisonBaseNode#doPP}
             *   20: SpecializationActive {@link ComparisonBaseNode#doDD}
             *   21: SpecializationActive {@link ComparisonBaseNode#doDI}
             *   22: SpecializationActive {@link ComparisonBaseNode#doDL}
             *   23: SpecializationActive {@link LtNode#doSS}
             *   24: SpecializationActive {@link ComparisonBaseNode#doGeneric}
             * 
*/ private final StateField state_0_; private final ReferenceField sS_compareIntsUTF32Node_; private final ReferenceField generic_cache; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link GetClassNode} getClassA
             *   Inline method: {@link GetClassNodeGen#inline}
*/ private final GetClassNode generic_getClassA_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link GetClassNode} getClassB
             *   Inline method: {@link GetClassNodeGen#inline}
*/ private final GetClassNode generic_getClassB_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link InlinedConditionProfile} reversedFirst
             *   Inline method: {@link InlinedConditionProfile#inline}
*/ private final InlinedConditionProfile generic_reversedFirst_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link IsSameTypeNode} isSameTypeNode
             *   Inline method: {@link IsSameTypeNodeGen#inline}
*/ private final IsSameTypeNode generic_isSameTypeNode_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
*/ private final PyObjectIsTrueNode generic_isTrueNode_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link Lazy} raiseNode
             *   Inline method: {@link LazyNodeGen#inline}
*/ private final Lazy generic_raiseNode_; @SuppressWarnings("unchecked") private Inlined(InlineTarget target) { assert target.getTargetClass().isAssignableFrom(LtNode.class); this.state_0_ = target.getState(0, 25); this.sS_compareIntsUTF32Node_ = target.getReference(1, CompareIntsUTF32Node.class); this.generic_cache = target.getReference(2, GenericData.class); this.generic_getClassA_ = GetClassNodeGen.inline(InlineTarget.create(GetClassNode.class, GENERIC__LT_NODE_GENERIC_STATE_0_UPDATER.subUpdater(0, 17), ReferenceField.create(GenericData.lookup_(), "generic_getClassA__field1_", Node.class))); this.generic_getClassB_ = GetClassNodeGen.inline(InlineTarget.create(GetClassNode.class, GENERIC__LT_NODE_GENERIC_STATE_1_UPDATER.subUpdater(0, 17), ReferenceField.create(GenericData.lookup_(), "generic_getClassB__field1_", Node.class))); this.generic_reversedFirst_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, GENERIC__LT_NODE_GENERIC_STATE_0_UPDATER.subUpdater(17, 2))); this.generic_isSameTypeNode_ = IsSameTypeNodeGen.inline(InlineTarget.create(IsSameTypeNode.class, GENERIC__LT_NODE_GENERIC_STATE_0_UPDATER.subUpdater(19, 6), ReferenceField.create(GenericData.lookup_(), "generic_isSameTypeNode__field1_", Node.class))); this.generic_isTrueNode_ = PyObjectIsTrueNodeGen.inline(InlineTarget.create(PyObjectIsTrueNode.class, GENERIC__LT_NODE_GENERIC_STATE_2_UPDATER.subUpdater(0, 19), GENERIC__LT_NODE_GENERIC_STATE_0_UPDATER.subUpdater(25, 4), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field2_", Object.class), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field3_", Node.class), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field4_", Node.class), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field5_", Node.class), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field6_", Node.class))); this.generic_raiseNode_ = LazyNodeGen.inline(InlineTarget.create(Lazy.class, GENERIC__LT_NODE_GENERIC_STATE_0_UPDATER.subUpdater(29, 1), ReferenceField.create(GenericData.lookup_(), "generic_raiseNode__field1_", Node.class))); } @Override protected boolean execute(Frame frameValue, Node arg0Value, Object arg1Value, Object arg2Value, Comparison arg3Value) { int state_0 = this.state_0_.get(arg0Value); if ((state_0 & 0x1fdb7df) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doBB(boolean, boolean, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doII(int, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIL(int, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doID(int, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLL(long, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLI(long, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLD(long, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPP(PInt, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDD(double, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDI(double, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDL(double, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.LtNode.doSS(TruffleString, TruffleString, Comparison, CompareIntsUTF32Node)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)] */) { if ((state_0 & 0b1) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doBB(boolean, boolean, Comparison)] */ && arg1Value instanceof Boolean) { boolean arg1Value_ = (boolean) arg1Value; if (arg2Value instanceof Boolean) { boolean arg2Value_ = (boolean) arg2Value; return ComparisonBaseNode.doBB(arg1Value_, arg2Value_, arg3Value); } } if ((state_0 & 0b1011110) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doII(int, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIL(int, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doID(int, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */ && arg1Value instanceof Integer) { int arg1Value_ = (int) arg1Value; if ((state_0 & 0b10) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doII(int, int, Comparison)] */ && arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doII(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b100) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIL(int, long, Comparison)] */ && arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doIL(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b1000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doID(int, double, Comparison)] */ && arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doID(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b1010000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */ && arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((state_0 & 0b10000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { try { return ComparisonBaseNode.doIPNoOVerflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xffffffef /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */; state_0 = state_0 | 0b100000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0b1000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doIP(arg1Value_, arg2Value_, arg3Value); } } } } if ((state_0 & 0b1011110000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLL(long, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLI(long, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLD(long, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */ && arg1Value instanceof Long) { long arg1Value_ = (long) arg1Value; if ((state_0 & 0b10000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLL(long, long, Comparison)] */ && arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doLL(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b100000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLI(long, int, Comparison)] */ && arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doLI(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b1000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLD(long, double, Comparison)] */ && arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doLD(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b1010000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */ && arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((state_0 & 0b10000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { try { return ComparisonBaseNode.doLPNoOVerflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xfffffbff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */; state_0 = state_0 | 0b100000000000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0b1000000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doLP(arg1Value_, arg2Value_, arg3Value); } } } } if ((state_0 & 0xda000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPP(PInt, PInt, Comparison)] */ && arg1Value instanceof PInt) { PInt arg1Value_ = (PInt) arg1Value; if ((state_0 & 0b1010000000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] */ && arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; if ((state_0 & 0b10000000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { try { return ComparisonBaseNode.doPINoOverflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xffffdfff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */; state_0 = state_0 | 0b100000000000000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0b1000000000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { return ComparisonBaseNode.doPI(arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0x50000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] */ && arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; if ((state_0 & 0x10000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { try { return ComparisonBaseNode.doPLNoOverflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xfffeffff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */; state_0 = state_0 | 0x20000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0x40000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { return ComparisonBaseNode.doPL(arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0x80000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPP(PInt, PInt, Comparison)] */ && arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_)) && (PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doPP(arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0x700000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDD(double, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDI(double, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDL(double, long, Comparison)] */ && arg1Value instanceof Double) { double arg1Value_ = (double) arg1Value; if ((state_0 & 0x100000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDD(double, double, Comparison)] */ && arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doDD(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0x200000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDI(double, int, Comparison)] */ && arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doDI(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0x400000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDL(double, long, Comparison)] */ && arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doDL(arg1Value_, arg2Value_, arg3Value); } } if ((state_0 & 0x800000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.LtNode.doSS(TruffleString, TruffleString, Comparison, CompareIntsUTF32Node)] */ && arg1Value instanceof TruffleString) { TruffleString arg1Value_ = (TruffleString) arg1Value; if (arg2Value instanceof TruffleString) { TruffleString arg2Value_ = (TruffleString) arg2Value; { CompareIntsUTF32Node compareIntsUTF32Node__ = this.sS_compareIntsUTF32Node_.get(arg0Value); if (compareIntsUTF32Node__ != null) { return LtNode.doSS(arg1Value_, arg2Value_, arg3Value, compareIntsUTF32Node__); } } } } if ((state_0 & 0x1000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)] */) { GenericData s20_ = this.generic_cache.get(arg0Value); if (s20_ != null) { return ComparisonBaseNode.doGeneric((VirtualFrame) frameValue, s20_, arg1Value, arg2Value, arg3Value, s20_.isNode_, this.generic_getClassA_, this.generic_getClassB_, this.generic_reversedFirst_, this.generic_isSameTypeNode_, s20_.isSubtypeNode_, s20_.lookupMethod_, s20_.lookupReverseMethod_, s20_.callMethod_, s20_.callReverseMethod_, this.generic_isTrueNode_, this.generic_raiseNode_); } } } CompilerDirectives.transferToInterpreterAndInvalidate(); return executeAndSpecialize(frameValue, arg0Value, arg1Value, arg2Value, arg3Value); } private boolean executeAndSpecialize(Frame frameValue, Node arg0Value, Object arg1Value, Object arg2Value, Comparison arg3Value) { int state_0 = this.state_0_.get(arg0Value); if (arg1Value instanceof Boolean) { boolean arg1Value_ = (boolean) arg1Value; if (arg2Value instanceof Boolean) { boolean arg2Value_ = (boolean) arg2Value; state_0 = state_0 | 0b1 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doBB(boolean, boolean, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doBB(arg1Value_, arg2Value_, arg3Value); } } if (arg1Value instanceof Integer) { int arg1Value_ = (int) arg1Value; if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; state_0 = state_0 | 0b10 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doII(int, int, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doII(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; state_0 = state_0 | 0b100 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIL(int, long, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doIL(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; state_0 = state_0 | 0b1000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doID(int, double, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doID(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if (((state_0 & 0b1000000)) == 0 /* is-not SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */ && ((state_0 & 0b100000)) == 0 /* is-not SpecializationExcluded */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 | 0b10000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */; this.state_0_.set(arg0Value, state_0); try { return ComparisonBaseNode.doIPNoOVerflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xffffffef /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */; state_0 = state_0 | 0b100000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 & 0xffffffef /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */; state_0 = state_0 | 0b1000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doIP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof Long) { long arg1Value_ = (long) arg1Value; if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; state_0 = state_0 | 0b10000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLL(long, long, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doLL(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; state_0 = state_0 | 0b100000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLI(long, int, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doLI(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; state_0 = state_0 | 0b1000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLD(long, double, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doLD(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if (((state_0 & 0b1000000000000)) == 0 /* is-not SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */ && ((state_0 & 0b100000000000)) == 0 /* is-not SpecializationExcluded */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 | 0b10000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */; this.state_0_.set(arg0Value, state_0); try { return ComparisonBaseNode.doLPNoOVerflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xfffffbff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */; state_0 = state_0 | 0b100000000000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 & 0xfffffbff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */; state_0 = state_0 | 0b1000000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doLP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof PInt) { PInt arg1Value_ = (PInt) arg1Value; if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; if (((state_0 & 0b1000000000000000)) == 0 /* is-not SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] */ && ((state_0 & 0b100000000000000)) == 0 /* is-not SpecializationExcluded */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { state_0 = state_0 | 0b10000000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */; this.state_0_.set(arg0Value, state_0); try { return ComparisonBaseNode.doPINoOverflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xffffdfff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */; state_0 = state_0 | 0b100000000000000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((PGuards.isBuiltinPInt(arg1Value_))) { state_0 = state_0 & 0xffffdfff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */; state_0 = state_0 | 0b1000000000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doPI(arg1Value_, arg2Value_, arg3Value); } } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; if (((state_0 & 0x40000)) == 0 /* is-not SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] */ && ((state_0 & 0x20000)) == 0 /* is-not SpecializationExcluded */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { state_0 = state_0 | 0x10000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */; this.state_0_.set(arg0Value, state_0); try { return ComparisonBaseNode.doPLNoOverflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xfffeffff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */; state_0 = state_0 | 0x20000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((PGuards.isBuiltinPInt(arg1Value_))) { state_0 = state_0 & 0xfffeffff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */; state_0 = state_0 | 0x40000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doPL(arg1Value_, arg2Value_, arg3Value); } } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_)) && (PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 | 0x80000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPP(PInt, PInt, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doPP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof Double) { double arg1Value_ = (double) arg1Value; if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; state_0 = state_0 | 0x100000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDD(double, double, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doDD(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; state_0 = state_0 | 0x200000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDI(double, int, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doDI(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; state_0 = state_0 | 0x400000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDL(double, long, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doDL(arg1Value_, arg2Value_, arg3Value); } } if (arg1Value instanceof TruffleString) { TruffleString arg1Value_ = (TruffleString) arg1Value; if (arg2Value instanceof TruffleString) { TruffleString arg2Value_ = (TruffleString) arg2Value; CompareIntsUTF32Node compareIntsUTF32Node__ = arg0Value.insert((CompareIntsUTF32Node.create())); Objects.requireNonNull(compareIntsUTF32Node__, "Specialization 'doSS(TruffleString, TruffleString, Comparison, CompareIntsUTF32Node)' cache 'compareIntsUTF32Node' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); VarHandle.storeStoreFence(); this.sS_compareIntsUTF32Node_.set(arg0Value, compareIntsUTF32Node__); state_0 = state_0 | 0x800000 /* add SpecializationActive[PyObjectRichCompareBool.LtNode.doSS(TruffleString, TruffleString, Comparison, CompareIntsUTF32Node)] */; this.state_0_.set(arg0Value, state_0); return LtNode.doSS(arg1Value_, arg2Value_, arg3Value, compareIntsUTF32Node__); } } GenericData s20_ = arg0Value.insert(new GenericData()); IsNode isNode__ = s20_.insert((IsNode.create())); Objects.requireNonNull(isNode__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'isNode' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.isNode_ = isNode__; IsSubtypeNode isSubtypeNode__ = s20_.insert((IsSubtypeNode.create())); Objects.requireNonNull(isSubtypeNode__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'isSubtypeNode' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.isSubtypeNode_ = isSubtypeNode__; LookupSpecialMethodSlotNode lookupMethod__ = s20_.insert((LookupSpecialMethodSlotNode.create(arg3Value.getSlot()))); Objects.requireNonNull(lookupMethod__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'lookupMethod' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.lookupMethod_ = lookupMethod__; LookupSpecialMethodSlotNode lookupReverseMethod__ = s20_.insert((LookupSpecialMethodSlotNode.create(arg3Value.getReverseSlot()))); Objects.requireNonNull(lookupReverseMethod__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'lookupReverseMethod' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.lookupReverseMethod_ = lookupReverseMethod__; CallBinaryMethodNode callMethod__ = s20_.insert((CallBinaryMethodNode.create())); Objects.requireNonNull(callMethod__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'callMethod' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.callMethod_ = callMethod__; CallBinaryMethodNode callReverseMethod__ = s20_.insert((CallBinaryMethodNode.create())); Objects.requireNonNull(callReverseMethod__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'callReverseMethod' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.callReverseMethod_ = callReverseMethod__; VarHandle.storeStoreFence(); this.generic_cache.set(arg0Value, s20_); state_0 = state_0 | 0x1000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doGeneric((VirtualFrame) frameValue, s20_, arg1Value, arg2Value, arg3Value, isNode__, this.generic_getClassA_, this.generic_getClassB_, this.generic_reversedFirst_, this.generic_isSameTypeNode_, isSubtypeNode__, lookupMethod__, lookupReverseMethod__, callMethod__, callReverseMethod__, this.generic_isTrueNode_, this.generic_raiseNode_); } @Override public boolean isAdoptable() { return false; } } @GeneratedBy(LtNode.class) @DenyReplace private static final class GenericData extends Node implements SpecializationDataNode { /** * State Info:
             *   0-16: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link GetClassNode} getClassA
             *        Inline method: {@link GetClassNodeGen#inline}
             *   17-18: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link InlinedConditionProfile} reversedFirst
             *        Inline method: {@link InlinedConditionProfile#inline}
             *   19-24: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link IsSameTypeNode} isSameTypeNode
             *        Inline method: {@link IsSameTypeNodeGen#inline}
             *   25-28: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *        Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   29: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link Lazy} raiseNode
             *        Inline method: {@link LazyNodeGen#inline}
             * 
*/ @CompilationFinal @UnsafeAccessedField private int generic_state_0_; /** * State Info:
             *   0-16: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link GetClassNode} getClassB
             *        Inline method: {@link GetClassNodeGen#inline}
             * 
*/ @CompilationFinal @UnsafeAccessedField private int generic_state_1_; /** * State Info:
             *   0-18: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *        Inline method: {@link PyObjectIsTrueNodeGen#inline}
             * 
*/ @CompilationFinal @UnsafeAccessedField private int generic_state_2_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link IsNode} isNode
*/ @Child IsNode isNode_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link GetClassNode} getClassA
             *   Inline method: {@link GetClassNodeGen#inline}
             *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_getClassA__field1_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link GetClassNode} getClassB
             *   Inline method: {@link GetClassNodeGen#inline}
             *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_getClassB__field1_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link IsSameTypeNode} isSameTypeNode
             *   Inline method: {@link IsSameTypeNodeGen#inline}
             *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_isSameTypeNode__field1_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link IsSubtypeNode} isSubtypeNode
*/ @Child IsSubtypeNode isSubtypeNode_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link LookupSpecialMethodSlotNode} lookupMethod
*/ @Child LookupSpecialMethodSlotNode lookupMethod_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link LookupSpecialMethodSlotNode} lookupReverseMethod
*/ @Child LookupSpecialMethodSlotNode lookupReverseMethod_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link CallBinaryMethodNode} callMethod
*/ @Child CallBinaryMethodNode callMethod_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link CallBinaryMethodNode} callReverseMethod
*/ @Child CallBinaryMethodNode callReverseMethod_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   Inline field: {@link Object} field2
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private Object generic_isTrueNode__field2_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   Inline field: {@link Node} field3
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_isTrueNode__field3_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   Inline field: {@link Node} field4
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_isTrueNode__field4_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   Inline field: {@link Node} field5
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_isTrueNode__field5_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   Inline field: {@link Node} field6
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_isTrueNode__field6_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link Lazy} raiseNode
             *   Inline method: {@link LazyNodeGen#inline}
             *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_raiseNode__field1_; GenericData() { } @Override public NodeCost getCost() { return NodeCost.NONE; } private static Lookup lookup_() { return MethodHandles.lookup(); } } @GeneratedBy(LtNode.class) @DenyReplace private static final class Uncached extends LtNode { @Override protected boolean execute(Frame frameValue, Node arg0Value, Object arg1Value, Object arg2Value, Comparison arg3Value) { CompilerDirectives.transferToInterpreterAndInvalidate(); if (arg1Value instanceof Boolean) { boolean arg1Value_ = (boolean) arg1Value; if (arg2Value instanceof Boolean) { boolean arg2Value_ = (boolean) arg2Value; return ComparisonBaseNode.doBB(arg1Value_, arg2Value_, arg3Value); } } if (arg1Value instanceof Integer) { int arg1Value_ = (int) arg1Value; if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doII(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doIL(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doID(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doIP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof Long) { long arg1Value_ = (long) arg1Value; if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doLL(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doLI(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doLD(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doLP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof PInt) { PInt arg1Value_ = (PInt) arg1Value; if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_))) { return ComparisonBaseNode.doPI(arg1Value_, arg2Value_, arg3Value); } } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_))) { return ComparisonBaseNode.doPL(arg1Value_, arg2Value_, arg3Value); } } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_)) && (PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doPP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof Double) { double arg1Value_ = (double) arg1Value; if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doDD(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doDI(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doDL(arg1Value_, arg2Value_, arg3Value); } } if (arg1Value instanceof TruffleString) { TruffleString arg1Value_ = (TruffleString) arg1Value; if (arg2Value instanceof TruffleString) { TruffleString arg2Value_ = (TruffleString) arg2Value; return LtNode.doSS(arg1Value_, arg2Value_, arg3Value, (CompareIntsUTF32Node.getUncached())); } } return ComparisonBaseNode.doGeneric((VirtualFrame) frameValue, arg0Value, arg1Value, arg2Value, arg3Value, (IsNode.getUncached()), (GetClassNode.getUncached()), (GetClassNode.getUncached()), (InlinedConditionProfile.getUncached()), (IsSameTypeNodeGen.getUncached()), (IsSubtypeNode.getUncached()), (LookupSpecialMethodSlotNode.getUncached(arg3Value.getSlot())), (LookupSpecialMethodSlotNode.getUncached(arg3Value.getReverseSlot())), (CallBinaryMethodNode.getUncached()), (CallBinaryMethodNode.getUncached()), (PyObjectIsTrueNode.getUncached()), (Lazy.getUncached())); } @Override public NodeCost getCost() { return NodeCost.MEGAMORPHIC; } @Override public boolean isAdoptable() { return false; } } } /** * Debug Info:
     *   Specialization {@link ComparisonBaseNode#doBB}
     *     Activation probability: 0.08658
     *     With/without class size: 5/0 bytes
     *   Specialization {@link ComparisonBaseNode#doII}
     *     Activation probability: 0.08268
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doIL}
     *     Activation probability: 0.07879
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doID}
     *     Activation probability: 0.07489
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doIPNoOVerflow}
     *     Activation probability: 0.07100
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doIP}
     *     Activation probability: 0.06710
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doLL}
     *     Activation probability: 0.06320
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doLI}
     *     Activation probability: 0.05931
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doLD}
     *     Activation probability: 0.05541
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doLPNoOVerflow}
     *     Activation probability: 0.05152
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doLP}
     *     Activation probability: 0.04762
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doPINoOverflow}
     *     Activation probability: 0.04372
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doPI}
     *     Activation probability: 0.03983
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doPLNoOverflow}
     *     Activation probability: 0.03593
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doPL}
     *     Activation probability: 0.03203
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doPP}
     *     Activation probability: 0.02814
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doDD}
     *     Activation probability: 0.02424
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doDI}
     *     Activation probability: 0.02035
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doDL}
     *     Activation probability: 0.01645
     *     With/without class size: 4/0 bytes
     *   Specialization {@link LeNode#doSS}
     *     Activation probability: 0.01255
     *     With/without class size: 4/4 bytes
     *   Specialization {@link ComparisonBaseNode#doGeneric}
     *     Activation probability: 0.00866
     *     With/without class size: 4/69 bytes
     * 
*/ @GeneratedBy(LeNode.class) @SuppressWarnings("javadoc") public static final class LeNodeGen extends LeNode { private static final StateField GENERIC__LE_NODE_GENERIC_STATE_0_UPDATER = StateField.create(GenericData.lookup_(), "generic_state_0_"); private static final StateField GENERIC__LE_NODE_GENERIC_STATE_1_UPDATER = StateField.create(GenericData.lookup_(), "generic_state_1_"); private static final StateField GENERIC__LE_NODE_GENERIC_STATE_2_UPDATER = StateField.create(GenericData.lookup_(), "generic_state_2_"); /** * Source Info:
         *   Specialization: {@link ComparisonBaseNode#doGeneric}
         *   Parameter: {@link GetClassNode} getClassA
         *   Inline method: {@link GetClassNodeGen#inline}
*/ private static final GetClassNode INLINED_GENERIC_GET_CLASS_A_ = GetClassNodeGen.inline(InlineTarget.create(GetClassNode.class, GENERIC__LE_NODE_GENERIC_STATE_0_UPDATER.subUpdater(0, 17), ReferenceField.create(GenericData.lookup_(), "generic_getClassA__field1_", Node.class))); /** * Source Info:
         *   Specialization: {@link ComparisonBaseNode#doGeneric}
         *   Parameter: {@link GetClassNode} getClassB
         *   Inline method: {@link GetClassNodeGen#inline}
*/ private static final GetClassNode INLINED_GENERIC_GET_CLASS_B_ = GetClassNodeGen.inline(InlineTarget.create(GetClassNode.class, GENERIC__LE_NODE_GENERIC_STATE_1_UPDATER.subUpdater(0, 17), ReferenceField.create(GenericData.lookup_(), "generic_getClassB__field1_", Node.class))); /** * Source Info:
         *   Specialization: {@link ComparisonBaseNode#doGeneric}
         *   Parameter: {@link InlinedConditionProfile} reversedFirst
         *   Inline method: {@link InlinedConditionProfile#inline}
*/ private static final InlinedConditionProfile INLINED_GENERIC_REVERSED_FIRST_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, GENERIC__LE_NODE_GENERIC_STATE_0_UPDATER.subUpdater(17, 2))); /** * Source Info:
         *   Specialization: {@link ComparisonBaseNode#doGeneric}
         *   Parameter: {@link IsSameTypeNode} isSameTypeNode
         *   Inline method: {@link IsSameTypeNodeGen#inline}
*/ private static final IsSameTypeNode INLINED_GENERIC_IS_SAME_TYPE_NODE_ = IsSameTypeNodeGen.inline(InlineTarget.create(IsSameTypeNode.class, GENERIC__LE_NODE_GENERIC_STATE_0_UPDATER.subUpdater(19, 6), ReferenceField.create(GenericData.lookup_(), "generic_isSameTypeNode__field1_", Node.class))); /** * Source Info:
         *   Specialization: {@link ComparisonBaseNode#doGeneric}
         *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
         *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
*/ private static final PyObjectIsTrueNode INLINED_GENERIC_IS_TRUE_NODE_ = PyObjectIsTrueNodeGen.inline(InlineTarget.create(PyObjectIsTrueNode.class, GENERIC__LE_NODE_GENERIC_STATE_2_UPDATER.subUpdater(0, 19), GENERIC__LE_NODE_GENERIC_STATE_0_UPDATER.subUpdater(25, 4), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field2_", Object.class), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field3_", Node.class), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field4_", Node.class), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field5_", Node.class), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field6_", Node.class))); /** * Source Info:
         *   Specialization: {@link ComparisonBaseNode#doGeneric}
         *   Parameter: {@link Lazy} raiseNode
         *   Inline method: {@link LazyNodeGen#inline}
*/ private static final Lazy INLINED_GENERIC_RAISE_NODE_ = LazyNodeGen.inline(InlineTarget.create(Lazy.class, GENERIC__LE_NODE_GENERIC_STATE_0_UPDATER.subUpdater(29, 1), ReferenceField.create(GenericData.lookup_(), "generic_raiseNode__field1_", Node.class))); private static final Uncached UNCACHED = new Uncached(); /** * State Info:
         *   0: SpecializationActive {@link ComparisonBaseNode#doBB}
         *   1: SpecializationActive {@link ComparisonBaseNode#doII}
         *   2: SpecializationActive {@link ComparisonBaseNode#doIL}
         *   3: SpecializationActive {@link ComparisonBaseNode#doID}
         *   4: SpecializationActive {@link ComparisonBaseNode#doIPNoOVerflow}
         *   5: SpecializationExcluded {@link ComparisonBaseNode#doIPNoOVerflow}
         *   6: SpecializationActive {@link ComparisonBaseNode#doIP}
         *   7: SpecializationActive {@link ComparisonBaseNode#doLL}
         *   8: SpecializationActive {@link ComparisonBaseNode#doLI}
         *   9: SpecializationActive {@link ComparisonBaseNode#doLD}
         *   10: SpecializationActive {@link ComparisonBaseNode#doLPNoOVerflow}
         *   11: SpecializationExcluded {@link ComparisonBaseNode#doLPNoOVerflow}
         *   12: SpecializationActive {@link ComparisonBaseNode#doLP}
         *   13: SpecializationActive {@link ComparisonBaseNode#doPINoOverflow}
         *   14: SpecializationExcluded {@link ComparisonBaseNode#doPINoOverflow}
         *   15: SpecializationActive {@link ComparisonBaseNode#doPI}
         *   16: SpecializationActive {@link ComparisonBaseNode#doPLNoOverflow}
         *   17: SpecializationExcluded {@link ComparisonBaseNode#doPLNoOverflow}
         *   18: SpecializationActive {@link ComparisonBaseNode#doPL}
         *   19: SpecializationActive {@link ComparisonBaseNode#doPP}
         *   20: SpecializationActive {@link ComparisonBaseNode#doDD}
         *   21: SpecializationActive {@link ComparisonBaseNode#doDI}
         *   22: SpecializationActive {@link ComparisonBaseNode#doDL}
         *   23: SpecializationActive {@link LeNode#doSS}
         *   24: SpecializationActive {@link ComparisonBaseNode#doGeneric}
         * 
*/ @CompilationFinal private int state_0_; /** * Source Info:
         *   Specialization: {@link LeNode#doSS}
         *   Parameter: {@link CompareIntsUTF32Node} compareIntsUTF32Node
*/ @Child private CompareIntsUTF32Node sS_compareIntsUTF32Node_; @Child private GenericData generic_cache; private LeNodeGen() { } @Override protected boolean execute(Frame frameValue, Node arg0Value, Object arg1Value, Object arg2Value, Comparison arg3Value) { int state_0 = this.state_0_; if ((state_0 & 0x1fdb7df) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doBB(boolean, boolean, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doII(int, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIL(int, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doID(int, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLL(long, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLI(long, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLD(long, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPP(PInt, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDD(double, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDI(double, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDL(double, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.LeNode.doSS(TruffleString, TruffleString, Comparison, CompareIntsUTF32Node)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)] */) { if ((state_0 & 0b1) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doBB(boolean, boolean, Comparison)] */ && arg1Value instanceof Boolean) { boolean arg1Value_ = (boolean) arg1Value; if (arg2Value instanceof Boolean) { boolean arg2Value_ = (boolean) arg2Value; return ComparisonBaseNode.doBB(arg1Value_, arg2Value_, arg3Value); } } if ((state_0 & 0b1011110) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doII(int, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIL(int, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doID(int, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */ && arg1Value instanceof Integer) { int arg1Value_ = (int) arg1Value; if ((state_0 & 0b10) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doII(int, int, Comparison)] */ && arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doII(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b100) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIL(int, long, Comparison)] */ && arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doIL(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b1000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doID(int, double, Comparison)] */ && arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doID(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b1010000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */ && arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((state_0 & 0b10000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { try { return ComparisonBaseNode.doIPNoOVerflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_; state_0 = state_0 & 0xffffffef /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */; state_0 = state_0 | 0b100000 /* add SpecializationExcluded */; this.state_0_ = state_0; return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0b1000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doIP(arg1Value_, arg2Value_, arg3Value); } } } } if ((state_0 & 0b1011110000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLL(long, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLI(long, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLD(long, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */ && arg1Value instanceof Long) { long arg1Value_ = (long) arg1Value; if ((state_0 & 0b10000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLL(long, long, Comparison)] */ && arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doLL(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b100000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLI(long, int, Comparison)] */ && arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doLI(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b1000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLD(long, double, Comparison)] */ && arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doLD(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b1010000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */ && arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((state_0 & 0b10000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { try { return ComparisonBaseNode.doLPNoOVerflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_; state_0 = state_0 & 0xfffffbff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */; state_0 = state_0 | 0b100000000000 /* add SpecializationExcluded */; this.state_0_ = state_0; return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0b1000000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doLP(arg1Value_, arg2Value_, arg3Value); } } } } if ((state_0 & 0xda000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPP(PInt, PInt, Comparison)] */ && arg1Value instanceof PInt) { PInt arg1Value_ = (PInt) arg1Value; if ((state_0 & 0b1010000000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] */ && arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; if ((state_0 & 0b10000000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { try { return ComparisonBaseNode.doPINoOverflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_; state_0 = state_0 & 0xffffdfff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */; state_0 = state_0 | 0b100000000000000 /* add SpecializationExcluded */; this.state_0_ = state_0; return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0b1000000000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { return ComparisonBaseNode.doPI(arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0x50000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] */ && arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; if ((state_0 & 0x10000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { try { return ComparisonBaseNode.doPLNoOverflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_; state_0 = state_0 & 0xfffeffff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */; state_0 = state_0 | 0x20000 /* add SpecializationExcluded */; this.state_0_ = state_0; return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0x40000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { return ComparisonBaseNode.doPL(arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0x80000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPP(PInt, PInt, Comparison)] */ && arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_)) && (PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doPP(arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0x700000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDD(double, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDI(double, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDL(double, long, Comparison)] */ && arg1Value instanceof Double) { double arg1Value_ = (double) arg1Value; if ((state_0 & 0x100000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDD(double, double, Comparison)] */ && arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doDD(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0x200000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDI(double, int, Comparison)] */ && arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doDI(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0x400000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDL(double, long, Comparison)] */ && arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doDL(arg1Value_, arg2Value_, arg3Value); } } if ((state_0 & 0x800000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.LeNode.doSS(TruffleString, TruffleString, Comparison, CompareIntsUTF32Node)] */ && arg1Value instanceof TruffleString) { TruffleString arg1Value_ = (TruffleString) arg1Value; if (arg2Value instanceof TruffleString) { TruffleString arg2Value_ = (TruffleString) arg2Value; { CompareIntsUTF32Node compareIntsUTF32Node__ = this.sS_compareIntsUTF32Node_; if (compareIntsUTF32Node__ != null) { return LeNode.doSS(arg1Value_, arg2Value_, arg3Value, compareIntsUTF32Node__); } } } } if ((state_0 & 0x1000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)] */) { GenericData s20_ = this.generic_cache; if (s20_ != null) { return ComparisonBaseNode.doGeneric((VirtualFrame) frameValue, s20_, arg1Value, arg2Value, arg3Value, s20_.isNode_, INLINED_GENERIC_GET_CLASS_A_, INLINED_GENERIC_GET_CLASS_B_, INLINED_GENERIC_REVERSED_FIRST_, INLINED_GENERIC_IS_SAME_TYPE_NODE_, s20_.isSubtypeNode_, s20_.lookupMethod_, s20_.lookupReverseMethod_, s20_.callMethod_, s20_.callReverseMethod_, INLINED_GENERIC_IS_TRUE_NODE_, INLINED_GENERIC_RAISE_NODE_); } } } CompilerDirectives.transferToInterpreterAndInvalidate(); return executeAndSpecialize(frameValue, arg0Value, arg1Value, arg2Value, arg3Value); } private boolean executeAndSpecialize(Frame frameValue, Node arg0Value, Object arg1Value, Object arg2Value, Comparison arg3Value) { int state_0 = this.state_0_; if (arg1Value instanceof Boolean) { boolean arg1Value_ = (boolean) arg1Value; if (arg2Value instanceof Boolean) { boolean arg2Value_ = (boolean) arg2Value; state_0 = state_0 | 0b1 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doBB(boolean, boolean, Comparison)] */; this.state_0_ = state_0; return ComparisonBaseNode.doBB(arg1Value_, arg2Value_, arg3Value); } } if (arg1Value instanceof Integer) { int arg1Value_ = (int) arg1Value; if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; state_0 = state_0 | 0b10 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doII(int, int, Comparison)] */; this.state_0_ = state_0; return ComparisonBaseNode.doII(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; state_0 = state_0 | 0b100 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIL(int, long, Comparison)] */; this.state_0_ = state_0; return ComparisonBaseNode.doIL(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; state_0 = state_0 | 0b1000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doID(int, double, Comparison)] */; this.state_0_ = state_0; return ComparisonBaseNode.doID(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if (((state_0 & 0b1000000)) == 0 /* is-not SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */ && ((state_0 & 0b100000)) == 0 /* is-not SpecializationExcluded */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 | 0b10000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */; this.state_0_ = state_0; try { return ComparisonBaseNode.doIPNoOVerflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_; state_0 = state_0 & 0xffffffef /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */; state_0 = state_0 | 0b100000 /* add SpecializationExcluded */; this.state_0_ = state_0; return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 & 0xffffffef /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */; state_0 = state_0 | 0b1000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */; this.state_0_ = state_0; return ComparisonBaseNode.doIP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof Long) { long arg1Value_ = (long) arg1Value; if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; state_0 = state_0 | 0b10000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLL(long, long, Comparison)] */; this.state_0_ = state_0; return ComparisonBaseNode.doLL(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; state_0 = state_0 | 0b100000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLI(long, int, Comparison)] */; this.state_0_ = state_0; return ComparisonBaseNode.doLI(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; state_0 = state_0 | 0b1000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLD(long, double, Comparison)] */; this.state_0_ = state_0; return ComparisonBaseNode.doLD(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if (((state_0 & 0b1000000000000)) == 0 /* is-not SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */ && ((state_0 & 0b100000000000)) == 0 /* is-not SpecializationExcluded */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 | 0b10000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */; this.state_0_ = state_0; try { return ComparisonBaseNode.doLPNoOVerflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_; state_0 = state_0 & 0xfffffbff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */; state_0 = state_0 | 0b100000000000 /* add SpecializationExcluded */; this.state_0_ = state_0; return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 & 0xfffffbff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */; state_0 = state_0 | 0b1000000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */; this.state_0_ = state_0; return ComparisonBaseNode.doLP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof PInt) { PInt arg1Value_ = (PInt) arg1Value; if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; if (((state_0 & 0b1000000000000000)) == 0 /* is-not SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] */ && ((state_0 & 0b100000000000000)) == 0 /* is-not SpecializationExcluded */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { state_0 = state_0 | 0b10000000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */; this.state_0_ = state_0; try { return ComparisonBaseNode.doPINoOverflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_; state_0 = state_0 & 0xffffdfff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */; state_0 = state_0 | 0b100000000000000 /* add SpecializationExcluded */; this.state_0_ = state_0; return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((PGuards.isBuiltinPInt(arg1Value_))) { state_0 = state_0 & 0xffffdfff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */; state_0 = state_0 | 0b1000000000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] */; this.state_0_ = state_0; return ComparisonBaseNode.doPI(arg1Value_, arg2Value_, arg3Value); } } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; if (((state_0 & 0x40000)) == 0 /* is-not SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] */ && ((state_0 & 0x20000)) == 0 /* is-not SpecializationExcluded */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { state_0 = state_0 | 0x10000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */; this.state_0_ = state_0; try { return ComparisonBaseNode.doPLNoOverflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_; state_0 = state_0 & 0xfffeffff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */; state_0 = state_0 | 0x20000 /* add SpecializationExcluded */; this.state_0_ = state_0; return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((PGuards.isBuiltinPInt(arg1Value_))) { state_0 = state_0 & 0xfffeffff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */; state_0 = state_0 | 0x40000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] */; this.state_0_ = state_0; return ComparisonBaseNode.doPL(arg1Value_, arg2Value_, arg3Value); } } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_)) && (PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 | 0x80000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPP(PInt, PInt, Comparison)] */; this.state_0_ = state_0; return ComparisonBaseNode.doPP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof Double) { double arg1Value_ = (double) arg1Value; if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; state_0 = state_0 | 0x100000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDD(double, double, Comparison)] */; this.state_0_ = state_0; return ComparisonBaseNode.doDD(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; state_0 = state_0 | 0x200000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDI(double, int, Comparison)] */; this.state_0_ = state_0; return ComparisonBaseNode.doDI(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; state_0 = state_0 | 0x400000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDL(double, long, Comparison)] */; this.state_0_ = state_0; return ComparisonBaseNode.doDL(arg1Value_, arg2Value_, arg3Value); } } if (arg1Value instanceof TruffleString) { TruffleString arg1Value_ = (TruffleString) arg1Value; if (arg2Value instanceof TruffleString) { TruffleString arg2Value_ = (TruffleString) arg2Value; CompareIntsUTF32Node compareIntsUTF32Node__ = this.insert((CompareIntsUTF32Node.create())); Objects.requireNonNull(compareIntsUTF32Node__, "Specialization 'doSS(TruffleString, TruffleString, Comparison, CompareIntsUTF32Node)' cache 'compareIntsUTF32Node' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); VarHandle.storeStoreFence(); this.sS_compareIntsUTF32Node_ = compareIntsUTF32Node__; state_0 = state_0 | 0x800000 /* add SpecializationActive[PyObjectRichCompareBool.LeNode.doSS(TruffleString, TruffleString, Comparison, CompareIntsUTF32Node)] */; this.state_0_ = state_0; return LeNode.doSS(arg1Value_, arg2Value_, arg3Value, compareIntsUTF32Node__); } } GenericData s20_ = this.insert(new GenericData()); IsNode isNode__ = s20_.insert((IsNode.create())); Objects.requireNonNull(isNode__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'isNode' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.isNode_ = isNode__; IsSubtypeNode isSubtypeNode__ = s20_.insert((IsSubtypeNode.create())); Objects.requireNonNull(isSubtypeNode__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'isSubtypeNode' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.isSubtypeNode_ = isSubtypeNode__; LookupSpecialMethodSlotNode lookupMethod__ = s20_.insert((LookupSpecialMethodSlotNode.create(arg3Value.getSlot()))); Objects.requireNonNull(lookupMethod__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'lookupMethod' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.lookupMethod_ = lookupMethod__; LookupSpecialMethodSlotNode lookupReverseMethod__ = s20_.insert((LookupSpecialMethodSlotNode.create(arg3Value.getReverseSlot()))); Objects.requireNonNull(lookupReverseMethod__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'lookupReverseMethod' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.lookupReverseMethod_ = lookupReverseMethod__; CallBinaryMethodNode callMethod__ = s20_.insert((CallBinaryMethodNode.create())); Objects.requireNonNull(callMethod__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'callMethod' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.callMethod_ = callMethod__; CallBinaryMethodNode callReverseMethod__ = s20_.insert((CallBinaryMethodNode.create())); Objects.requireNonNull(callReverseMethod__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'callReverseMethod' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.callReverseMethod_ = callReverseMethod__; VarHandle.storeStoreFence(); this.generic_cache = s20_; state_0 = state_0 | 0x1000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)] */; this.state_0_ = state_0; return ComparisonBaseNode.doGeneric((VirtualFrame) frameValue, s20_, arg1Value, arg2Value, arg3Value, isNode__, INLINED_GENERIC_GET_CLASS_A_, INLINED_GENERIC_GET_CLASS_B_, INLINED_GENERIC_REVERSED_FIRST_, INLINED_GENERIC_IS_SAME_TYPE_NODE_, isSubtypeNode__, lookupMethod__, lookupReverseMethod__, callMethod__, callReverseMethod__, INLINED_GENERIC_IS_TRUE_NODE_, INLINED_GENERIC_RAISE_NODE_); } @Override public NodeCost getCost() { int state_0 = this.state_0_; if ((state_0 & 0x1fdb7df) == 0) { return NodeCost.UNINITIALIZED; } else { if (((state_0 & 0x1fdb7df) & ((state_0 & 0x1fdb7df) - 1)) == 0 /* is-single */) { return NodeCost.MONOMORPHIC; } } return NodeCost.POLYMORPHIC; } @NeverDefault public static LeNode create() { return new LeNodeGen(); } @NeverDefault public static LeNode getUncached() { return LeNodeGen.UNCACHED; } /** * Required Fields:
    *
  • {@link Inlined#state_0_} *
  • {@link Inlined#sS_compareIntsUTF32Node_} *
  • {@link Inlined#generic_cache} *
*/ @NeverDefault public static LeNode inline(@RequiredField(bits = 25, value = StateField.class)@RequiredField(type = Node.class, value = ReferenceField.class)@RequiredField(type = Node.class, value = ReferenceField.class) InlineTarget target) { return new LeNodeGen.Inlined(target); } @GeneratedBy(LeNode.class) @DenyReplace private static final class Inlined extends LeNode { /** * State Info:
             *   0: SpecializationActive {@link ComparisonBaseNode#doBB}
             *   1: SpecializationActive {@link ComparisonBaseNode#doII}
             *   2: SpecializationActive {@link ComparisonBaseNode#doIL}
             *   3: SpecializationActive {@link ComparisonBaseNode#doID}
             *   4: SpecializationActive {@link ComparisonBaseNode#doIPNoOVerflow}
             *   5: SpecializationExcluded {@link ComparisonBaseNode#doIPNoOVerflow}
             *   6: SpecializationActive {@link ComparisonBaseNode#doIP}
             *   7: SpecializationActive {@link ComparisonBaseNode#doLL}
             *   8: SpecializationActive {@link ComparisonBaseNode#doLI}
             *   9: SpecializationActive {@link ComparisonBaseNode#doLD}
             *   10: SpecializationActive {@link ComparisonBaseNode#doLPNoOVerflow}
             *   11: SpecializationExcluded {@link ComparisonBaseNode#doLPNoOVerflow}
             *   12: SpecializationActive {@link ComparisonBaseNode#doLP}
             *   13: SpecializationActive {@link ComparisonBaseNode#doPINoOverflow}
             *   14: SpecializationExcluded {@link ComparisonBaseNode#doPINoOverflow}
             *   15: SpecializationActive {@link ComparisonBaseNode#doPI}
             *   16: SpecializationActive {@link ComparisonBaseNode#doPLNoOverflow}
             *   17: SpecializationExcluded {@link ComparisonBaseNode#doPLNoOverflow}
             *   18: SpecializationActive {@link ComparisonBaseNode#doPL}
             *   19: SpecializationActive {@link ComparisonBaseNode#doPP}
             *   20: SpecializationActive {@link ComparisonBaseNode#doDD}
             *   21: SpecializationActive {@link ComparisonBaseNode#doDI}
             *   22: SpecializationActive {@link ComparisonBaseNode#doDL}
             *   23: SpecializationActive {@link LeNode#doSS}
             *   24: SpecializationActive {@link ComparisonBaseNode#doGeneric}
             * 
*/ private final StateField state_0_; private final ReferenceField sS_compareIntsUTF32Node_; private final ReferenceField generic_cache; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link GetClassNode} getClassA
             *   Inline method: {@link GetClassNodeGen#inline}
*/ private final GetClassNode generic_getClassA_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link GetClassNode} getClassB
             *   Inline method: {@link GetClassNodeGen#inline}
*/ private final GetClassNode generic_getClassB_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link InlinedConditionProfile} reversedFirst
             *   Inline method: {@link InlinedConditionProfile#inline}
*/ private final InlinedConditionProfile generic_reversedFirst_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link IsSameTypeNode} isSameTypeNode
             *   Inline method: {@link IsSameTypeNodeGen#inline}
*/ private final IsSameTypeNode generic_isSameTypeNode_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
*/ private final PyObjectIsTrueNode generic_isTrueNode_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link Lazy} raiseNode
             *   Inline method: {@link LazyNodeGen#inline}
*/ private final Lazy generic_raiseNode_; @SuppressWarnings("unchecked") private Inlined(InlineTarget target) { assert target.getTargetClass().isAssignableFrom(LeNode.class); this.state_0_ = target.getState(0, 25); this.sS_compareIntsUTF32Node_ = target.getReference(1, CompareIntsUTF32Node.class); this.generic_cache = target.getReference(2, GenericData.class); this.generic_getClassA_ = GetClassNodeGen.inline(InlineTarget.create(GetClassNode.class, GENERIC__LE_NODE_GENERIC_STATE_0_UPDATER.subUpdater(0, 17), ReferenceField.create(GenericData.lookup_(), "generic_getClassA__field1_", Node.class))); this.generic_getClassB_ = GetClassNodeGen.inline(InlineTarget.create(GetClassNode.class, GENERIC__LE_NODE_GENERIC_STATE_1_UPDATER.subUpdater(0, 17), ReferenceField.create(GenericData.lookup_(), "generic_getClassB__field1_", Node.class))); this.generic_reversedFirst_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, GENERIC__LE_NODE_GENERIC_STATE_0_UPDATER.subUpdater(17, 2))); this.generic_isSameTypeNode_ = IsSameTypeNodeGen.inline(InlineTarget.create(IsSameTypeNode.class, GENERIC__LE_NODE_GENERIC_STATE_0_UPDATER.subUpdater(19, 6), ReferenceField.create(GenericData.lookup_(), "generic_isSameTypeNode__field1_", Node.class))); this.generic_isTrueNode_ = PyObjectIsTrueNodeGen.inline(InlineTarget.create(PyObjectIsTrueNode.class, GENERIC__LE_NODE_GENERIC_STATE_2_UPDATER.subUpdater(0, 19), GENERIC__LE_NODE_GENERIC_STATE_0_UPDATER.subUpdater(25, 4), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field2_", Object.class), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field3_", Node.class), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field4_", Node.class), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field5_", Node.class), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field6_", Node.class))); this.generic_raiseNode_ = LazyNodeGen.inline(InlineTarget.create(Lazy.class, GENERIC__LE_NODE_GENERIC_STATE_0_UPDATER.subUpdater(29, 1), ReferenceField.create(GenericData.lookup_(), "generic_raiseNode__field1_", Node.class))); } @Override protected boolean execute(Frame frameValue, Node arg0Value, Object arg1Value, Object arg2Value, Comparison arg3Value) { int state_0 = this.state_0_.get(arg0Value); if ((state_0 & 0x1fdb7df) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doBB(boolean, boolean, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doII(int, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIL(int, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doID(int, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLL(long, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLI(long, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLD(long, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPP(PInt, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDD(double, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDI(double, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDL(double, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.LeNode.doSS(TruffleString, TruffleString, Comparison, CompareIntsUTF32Node)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)] */) { if ((state_0 & 0b1) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doBB(boolean, boolean, Comparison)] */ && arg1Value instanceof Boolean) { boolean arg1Value_ = (boolean) arg1Value; if (arg2Value instanceof Boolean) { boolean arg2Value_ = (boolean) arg2Value; return ComparisonBaseNode.doBB(arg1Value_, arg2Value_, arg3Value); } } if ((state_0 & 0b1011110) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doII(int, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIL(int, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doID(int, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */ && arg1Value instanceof Integer) { int arg1Value_ = (int) arg1Value; if ((state_0 & 0b10) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doII(int, int, Comparison)] */ && arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doII(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b100) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIL(int, long, Comparison)] */ && arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doIL(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b1000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doID(int, double, Comparison)] */ && arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doID(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b1010000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */ && arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((state_0 & 0b10000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { try { return ComparisonBaseNode.doIPNoOVerflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xffffffef /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */; state_0 = state_0 | 0b100000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0b1000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doIP(arg1Value_, arg2Value_, arg3Value); } } } } if ((state_0 & 0b1011110000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLL(long, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLI(long, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLD(long, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */ && arg1Value instanceof Long) { long arg1Value_ = (long) arg1Value; if ((state_0 & 0b10000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLL(long, long, Comparison)] */ && arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doLL(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b100000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLI(long, int, Comparison)] */ && arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doLI(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b1000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLD(long, double, Comparison)] */ && arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doLD(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b1010000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */ && arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((state_0 & 0b10000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { try { return ComparisonBaseNode.doLPNoOVerflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xfffffbff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */; state_0 = state_0 | 0b100000000000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0b1000000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doLP(arg1Value_, arg2Value_, arg3Value); } } } } if ((state_0 & 0xda000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPP(PInt, PInt, Comparison)] */ && arg1Value instanceof PInt) { PInt arg1Value_ = (PInt) arg1Value; if ((state_0 & 0b1010000000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] */ && arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; if ((state_0 & 0b10000000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { try { return ComparisonBaseNode.doPINoOverflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xffffdfff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */; state_0 = state_0 | 0b100000000000000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0b1000000000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { return ComparisonBaseNode.doPI(arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0x50000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] */ && arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; if ((state_0 & 0x10000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { try { return ComparisonBaseNode.doPLNoOverflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xfffeffff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */; state_0 = state_0 | 0x20000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0x40000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { return ComparisonBaseNode.doPL(arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0x80000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPP(PInt, PInt, Comparison)] */ && arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_)) && (PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doPP(arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0x700000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDD(double, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDI(double, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDL(double, long, Comparison)] */ && arg1Value instanceof Double) { double arg1Value_ = (double) arg1Value; if ((state_0 & 0x100000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDD(double, double, Comparison)] */ && arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doDD(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0x200000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDI(double, int, Comparison)] */ && arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doDI(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0x400000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDL(double, long, Comparison)] */ && arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doDL(arg1Value_, arg2Value_, arg3Value); } } if ((state_0 & 0x800000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.LeNode.doSS(TruffleString, TruffleString, Comparison, CompareIntsUTF32Node)] */ && arg1Value instanceof TruffleString) { TruffleString arg1Value_ = (TruffleString) arg1Value; if (arg2Value instanceof TruffleString) { TruffleString arg2Value_ = (TruffleString) arg2Value; { CompareIntsUTF32Node compareIntsUTF32Node__ = this.sS_compareIntsUTF32Node_.get(arg0Value); if (compareIntsUTF32Node__ != null) { return LeNode.doSS(arg1Value_, arg2Value_, arg3Value, compareIntsUTF32Node__); } } } } if ((state_0 & 0x1000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)] */) { GenericData s20_ = this.generic_cache.get(arg0Value); if (s20_ != null) { return ComparisonBaseNode.doGeneric((VirtualFrame) frameValue, s20_, arg1Value, arg2Value, arg3Value, s20_.isNode_, this.generic_getClassA_, this.generic_getClassB_, this.generic_reversedFirst_, this.generic_isSameTypeNode_, s20_.isSubtypeNode_, s20_.lookupMethod_, s20_.lookupReverseMethod_, s20_.callMethod_, s20_.callReverseMethod_, this.generic_isTrueNode_, this.generic_raiseNode_); } } } CompilerDirectives.transferToInterpreterAndInvalidate(); return executeAndSpecialize(frameValue, arg0Value, arg1Value, arg2Value, arg3Value); } private boolean executeAndSpecialize(Frame frameValue, Node arg0Value, Object arg1Value, Object arg2Value, Comparison arg3Value) { int state_0 = this.state_0_.get(arg0Value); if (arg1Value instanceof Boolean) { boolean arg1Value_ = (boolean) arg1Value; if (arg2Value instanceof Boolean) { boolean arg2Value_ = (boolean) arg2Value; state_0 = state_0 | 0b1 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doBB(boolean, boolean, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doBB(arg1Value_, arg2Value_, arg3Value); } } if (arg1Value instanceof Integer) { int arg1Value_ = (int) arg1Value; if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; state_0 = state_0 | 0b10 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doII(int, int, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doII(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; state_0 = state_0 | 0b100 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIL(int, long, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doIL(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; state_0 = state_0 | 0b1000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doID(int, double, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doID(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if (((state_0 & 0b1000000)) == 0 /* is-not SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */ && ((state_0 & 0b100000)) == 0 /* is-not SpecializationExcluded */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 | 0b10000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */; this.state_0_.set(arg0Value, state_0); try { return ComparisonBaseNode.doIPNoOVerflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xffffffef /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */; state_0 = state_0 | 0b100000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 & 0xffffffef /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */; state_0 = state_0 | 0b1000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doIP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof Long) { long arg1Value_ = (long) arg1Value; if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; state_0 = state_0 | 0b10000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLL(long, long, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doLL(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; state_0 = state_0 | 0b100000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLI(long, int, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doLI(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; state_0 = state_0 | 0b1000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLD(long, double, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doLD(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if (((state_0 & 0b1000000000000)) == 0 /* is-not SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */ && ((state_0 & 0b100000000000)) == 0 /* is-not SpecializationExcluded */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 | 0b10000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */; this.state_0_.set(arg0Value, state_0); try { return ComparisonBaseNode.doLPNoOVerflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xfffffbff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */; state_0 = state_0 | 0b100000000000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 & 0xfffffbff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */; state_0 = state_0 | 0b1000000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doLP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof PInt) { PInt arg1Value_ = (PInt) arg1Value; if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; if (((state_0 & 0b1000000000000000)) == 0 /* is-not SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] */ && ((state_0 & 0b100000000000000)) == 0 /* is-not SpecializationExcluded */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { state_0 = state_0 | 0b10000000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */; this.state_0_.set(arg0Value, state_0); try { return ComparisonBaseNode.doPINoOverflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xffffdfff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */; state_0 = state_0 | 0b100000000000000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((PGuards.isBuiltinPInt(arg1Value_))) { state_0 = state_0 & 0xffffdfff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */; state_0 = state_0 | 0b1000000000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doPI(arg1Value_, arg2Value_, arg3Value); } } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; if (((state_0 & 0x40000)) == 0 /* is-not SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] */ && ((state_0 & 0x20000)) == 0 /* is-not SpecializationExcluded */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { state_0 = state_0 | 0x10000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */; this.state_0_.set(arg0Value, state_0); try { return ComparisonBaseNode.doPLNoOverflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xfffeffff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */; state_0 = state_0 | 0x20000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((PGuards.isBuiltinPInt(arg1Value_))) { state_0 = state_0 & 0xfffeffff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */; state_0 = state_0 | 0x40000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doPL(arg1Value_, arg2Value_, arg3Value); } } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_)) && (PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 | 0x80000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPP(PInt, PInt, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doPP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof Double) { double arg1Value_ = (double) arg1Value; if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; state_0 = state_0 | 0x100000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDD(double, double, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doDD(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; state_0 = state_0 | 0x200000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDI(double, int, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doDI(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; state_0 = state_0 | 0x400000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDL(double, long, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doDL(arg1Value_, arg2Value_, arg3Value); } } if (arg1Value instanceof TruffleString) { TruffleString arg1Value_ = (TruffleString) arg1Value; if (arg2Value instanceof TruffleString) { TruffleString arg2Value_ = (TruffleString) arg2Value; CompareIntsUTF32Node compareIntsUTF32Node__ = arg0Value.insert((CompareIntsUTF32Node.create())); Objects.requireNonNull(compareIntsUTF32Node__, "Specialization 'doSS(TruffleString, TruffleString, Comparison, CompareIntsUTF32Node)' cache 'compareIntsUTF32Node' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); VarHandle.storeStoreFence(); this.sS_compareIntsUTF32Node_.set(arg0Value, compareIntsUTF32Node__); state_0 = state_0 | 0x800000 /* add SpecializationActive[PyObjectRichCompareBool.LeNode.doSS(TruffleString, TruffleString, Comparison, CompareIntsUTF32Node)] */; this.state_0_.set(arg0Value, state_0); return LeNode.doSS(arg1Value_, arg2Value_, arg3Value, compareIntsUTF32Node__); } } GenericData s20_ = arg0Value.insert(new GenericData()); IsNode isNode__ = s20_.insert((IsNode.create())); Objects.requireNonNull(isNode__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'isNode' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.isNode_ = isNode__; IsSubtypeNode isSubtypeNode__ = s20_.insert((IsSubtypeNode.create())); Objects.requireNonNull(isSubtypeNode__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'isSubtypeNode' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.isSubtypeNode_ = isSubtypeNode__; LookupSpecialMethodSlotNode lookupMethod__ = s20_.insert((LookupSpecialMethodSlotNode.create(arg3Value.getSlot()))); Objects.requireNonNull(lookupMethod__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'lookupMethod' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.lookupMethod_ = lookupMethod__; LookupSpecialMethodSlotNode lookupReverseMethod__ = s20_.insert((LookupSpecialMethodSlotNode.create(arg3Value.getReverseSlot()))); Objects.requireNonNull(lookupReverseMethod__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'lookupReverseMethod' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.lookupReverseMethod_ = lookupReverseMethod__; CallBinaryMethodNode callMethod__ = s20_.insert((CallBinaryMethodNode.create())); Objects.requireNonNull(callMethod__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'callMethod' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.callMethod_ = callMethod__; CallBinaryMethodNode callReverseMethod__ = s20_.insert((CallBinaryMethodNode.create())); Objects.requireNonNull(callReverseMethod__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'callReverseMethod' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.callReverseMethod_ = callReverseMethod__; VarHandle.storeStoreFence(); this.generic_cache.set(arg0Value, s20_); state_0 = state_0 | 0x1000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doGeneric((VirtualFrame) frameValue, s20_, arg1Value, arg2Value, arg3Value, isNode__, this.generic_getClassA_, this.generic_getClassB_, this.generic_reversedFirst_, this.generic_isSameTypeNode_, isSubtypeNode__, lookupMethod__, lookupReverseMethod__, callMethod__, callReverseMethod__, this.generic_isTrueNode_, this.generic_raiseNode_); } @Override public boolean isAdoptable() { return false; } } @GeneratedBy(LeNode.class) @DenyReplace private static final class GenericData extends Node implements SpecializationDataNode { /** * State Info:
             *   0-16: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link GetClassNode} getClassA
             *        Inline method: {@link GetClassNodeGen#inline}
             *   17-18: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link InlinedConditionProfile} reversedFirst
             *        Inline method: {@link InlinedConditionProfile#inline}
             *   19-24: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link IsSameTypeNode} isSameTypeNode
             *        Inline method: {@link IsSameTypeNodeGen#inline}
             *   25-28: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *        Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   29: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link Lazy} raiseNode
             *        Inline method: {@link LazyNodeGen#inline}
             * 
*/ @CompilationFinal @UnsafeAccessedField private int generic_state_0_; /** * State Info:
             *   0-16: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link GetClassNode} getClassB
             *        Inline method: {@link GetClassNodeGen#inline}
             * 
*/ @CompilationFinal @UnsafeAccessedField private int generic_state_1_; /** * State Info:
             *   0-18: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *        Inline method: {@link PyObjectIsTrueNodeGen#inline}
             * 
*/ @CompilationFinal @UnsafeAccessedField private int generic_state_2_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link IsNode} isNode
*/ @Child IsNode isNode_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link GetClassNode} getClassA
             *   Inline method: {@link GetClassNodeGen#inline}
             *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_getClassA__field1_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link GetClassNode} getClassB
             *   Inline method: {@link GetClassNodeGen#inline}
             *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_getClassB__field1_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link IsSameTypeNode} isSameTypeNode
             *   Inline method: {@link IsSameTypeNodeGen#inline}
             *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_isSameTypeNode__field1_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link IsSubtypeNode} isSubtypeNode
*/ @Child IsSubtypeNode isSubtypeNode_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link LookupSpecialMethodSlotNode} lookupMethod
*/ @Child LookupSpecialMethodSlotNode lookupMethod_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link LookupSpecialMethodSlotNode} lookupReverseMethod
*/ @Child LookupSpecialMethodSlotNode lookupReverseMethod_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link CallBinaryMethodNode} callMethod
*/ @Child CallBinaryMethodNode callMethod_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link CallBinaryMethodNode} callReverseMethod
*/ @Child CallBinaryMethodNode callReverseMethod_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   Inline field: {@link Object} field2
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private Object generic_isTrueNode__field2_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   Inline field: {@link Node} field3
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_isTrueNode__field3_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   Inline field: {@link Node} field4
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_isTrueNode__field4_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   Inline field: {@link Node} field5
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_isTrueNode__field5_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   Inline field: {@link Node} field6
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_isTrueNode__field6_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link Lazy} raiseNode
             *   Inline method: {@link LazyNodeGen#inline}
             *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_raiseNode__field1_; GenericData() { } @Override public NodeCost getCost() { return NodeCost.NONE; } private static Lookup lookup_() { return MethodHandles.lookup(); } } @GeneratedBy(LeNode.class) @DenyReplace private static final class Uncached extends LeNode { @Override protected boolean execute(Frame frameValue, Node arg0Value, Object arg1Value, Object arg2Value, Comparison arg3Value) { CompilerDirectives.transferToInterpreterAndInvalidate(); if (arg1Value instanceof Boolean) { boolean arg1Value_ = (boolean) arg1Value; if (arg2Value instanceof Boolean) { boolean arg2Value_ = (boolean) arg2Value; return ComparisonBaseNode.doBB(arg1Value_, arg2Value_, arg3Value); } } if (arg1Value instanceof Integer) { int arg1Value_ = (int) arg1Value; if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doII(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doIL(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doID(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doIP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof Long) { long arg1Value_ = (long) arg1Value; if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doLL(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doLI(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doLD(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doLP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof PInt) { PInt arg1Value_ = (PInt) arg1Value; if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_))) { return ComparisonBaseNode.doPI(arg1Value_, arg2Value_, arg3Value); } } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_))) { return ComparisonBaseNode.doPL(arg1Value_, arg2Value_, arg3Value); } } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_)) && (PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doPP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof Double) { double arg1Value_ = (double) arg1Value; if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doDD(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doDI(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doDL(arg1Value_, arg2Value_, arg3Value); } } if (arg1Value instanceof TruffleString) { TruffleString arg1Value_ = (TruffleString) arg1Value; if (arg2Value instanceof TruffleString) { TruffleString arg2Value_ = (TruffleString) arg2Value; return LeNode.doSS(arg1Value_, arg2Value_, arg3Value, (CompareIntsUTF32Node.getUncached())); } } return ComparisonBaseNode.doGeneric((VirtualFrame) frameValue, arg0Value, arg1Value, arg2Value, arg3Value, (IsNode.getUncached()), (GetClassNode.getUncached()), (GetClassNode.getUncached()), (InlinedConditionProfile.getUncached()), (IsSameTypeNodeGen.getUncached()), (IsSubtypeNode.getUncached()), (LookupSpecialMethodSlotNode.getUncached(arg3Value.getSlot())), (LookupSpecialMethodSlotNode.getUncached(arg3Value.getReverseSlot())), (CallBinaryMethodNode.getUncached()), (CallBinaryMethodNode.getUncached()), (PyObjectIsTrueNode.getUncached()), (Lazy.getUncached())); } @Override public NodeCost getCost() { return NodeCost.MEGAMORPHIC; } @Override public boolean isAdoptable() { return false; } } } /** * Debug Info:
     *   Specialization {@link ComparisonBaseNode#doBB}
     *     Activation probability: 0.08658
     *     With/without class size: 5/0 bytes
     *   Specialization {@link ComparisonBaseNode#doII}
     *     Activation probability: 0.08268
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doIL}
     *     Activation probability: 0.07879
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doID}
     *     Activation probability: 0.07489
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doIPNoOVerflow}
     *     Activation probability: 0.07100
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doIP}
     *     Activation probability: 0.06710
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doLL}
     *     Activation probability: 0.06320
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doLI}
     *     Activation probability: 0.05931
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doLD}
     *     Activation probability: 0.05541
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doLPNoOVerflow}
     *     Activation probability: 0.05152
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doLP}
     *     Activation probability: 0.04762
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doPINoOverflow}
     *     Activation probability: 0.04372
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doPI}
     *     Activation probability: 0.03983
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doPLNoOverflow}
     *     Activation probability: 0.03593
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doPL}
     *     Activation probability: 0.03203
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doPP}
     *     Activation probability: 0.02814
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doDD}
     *     Activation probability: 0.02424
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doDI}
     *     Activation probability: 0.02035
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doDL}
     *     Activation probability: 0.01645
     *     With/without class size: 4/0 bytes
     *   Specialization {@link GtNode#doSS}
     *     Activation probability: 0.01255
     *     With/without class size: 4/4 bytes
     *   Specialization {@link ComparisonBaseNode#doGeneric}
     *     Activation probability: 0.00866
     *     With/without class size: 4/69 bytes
     * 
*/ @GeneratedBy(GtNode.class) @SuppressWarnings("javadoc") public static final class GtNodeGen { private static final StateField GENERIC__GT_NODE_GENERIC_STATE_0_UPDATER = StateField.create(GenericData.lookup_(), "generic_state_0_"); private static final StateField GENERIC__GT_NODE_GENERIC_STATE_1_UPDATER = StateField.create(GenericData.lookup_(), "generic_state_1_"); private static final StateField GENERIC__GT_NODE_GENERIC_STATE_2_UPDATER = StateField.create(GenericData.lookup_(), "generic_state_2_"); private static final Uncached UNCACHED = new Uncached(); @NeverDefault public static GtNode getUncached() { return GtNodeGen.UNCACHED; } /** * Required Fields:
    *
  • {@link Inlined#state_0_} *
  • {@link Inlined#sS_compareIntsUTF32Node_} *
  • {@link Inlined#generic_cache} *
*/ @NeverDefault public static GtNode inline(@RequiredField(bits = 25, value = StateField.class)@RequiredField(type = Node.class, value = ReferenceField.class)@RequiredField(type = Node.class, value = ReferenceField.class) InlineTarget target) { return new GtNodeGen.Inlined(target); } @GeneratedBy(GtNode.class) @DenyReplace private static final class Inlined extends GtNode { /** * State Info:
             *   0: SpecializationActive {@link ComparisonBaseNode#doBB}
             *   1: SpecializationActive {@link ComparisonBaseNode#doII}
             *   2: SpecializationActive {@link ComparisonBaseNode#doIL}
             *   3: SpecializationActive {@link ComparisonBaseNode#doID}
             *   4: SpecializationActive {@link ComparisonBaseNode#doIPNoOVerflow}
             *   5: SpecializationExcluded {@link ComparisonBaseNode#doIPNoOVerflow}
             *   6: SpecializationActive {@link ComparisonBaseNode#doIP}
             *   7: SpecializationActive {@link ComparisonBaseNode#doLL}
             *   8: SpecializationActive {@link ComparisonBaseNode#doLI}
             *   9: SpecializationActive {@link ComparisonBaseNode#doLD}
             *   10: SpecializationActive {@link ComparisonBaseNode#doLPNoOVerflow}
             *   11: SpecializationExcluded {@link ComparisonBaseNode#doLPNoOVerflow}
             *   12: SpecializationActive {@link ComparisonBaseNode#doLP}
             *   13: SpecializationActive {@link ComparisonBaseNode#doPINoOverflow}
             *   14: SpecializationExcluded {@link ComparisonBaseNode#doPINoOverflow}
             *   15: SpecializationActive {@link ComparisonBaseNode#doPI}
             *   16: SpecializationActive {@link ComparisonBaseNode#doPLNoOverflow}
             *   17: SpecializationExcluded {@link ComparisonBaseNode#doPLNoOverflow}
             *   18: SpecializationActive {@link ComparisonBaseNode#doPL}
             *   19: SpecializationActive {@link ComparisonBaseNode#doPP}
             *   20: SpecializationActive {@link ComparisonBaseNode#doDD}
             *   21: SpecializationActive {@link ComparisonBaseNode#doDI}
             *   22: SpecializationActive {@link ComparisonBaseNode#doDL}
             *   23: SpecializationActive {@link GtNode#doSS}
             *   24: SpecializationActive {@link ComparisonBaseNode#doGeneric}
             * 
*/ private final StateField state_0_; private final ReferenceField sS_compareIntsUTF32Node_; private final ReferenceField generic_cache; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link GetClassNode} getClassA
             *   Inline method: {@link GetClassNodeGen#inline}
*/ private final GetClassNode generic_getClassA_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link GetClassNode} getClassB
             *   Inline method: {@link GetClassNodeGen#inline}
*/ private final GetClassNode generic_getClassB_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link InlinedConditionProfile} reversedFirst
             *   Inline method: {@link InlinedConditionProfile#inline}
*/ private final InlinedConditionProfile generic_reversedFirst_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link IsSameTypeNode} isSameTypeNode
             *   Inline method: {@link IsSameTypeNodeGen#inline}
*/ private final IsSameTypeNode generic_isSameTypeNode_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
*/ private final PyObjectIsTrueNode generic_isTrueNode_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link Lazy} raiseNode
             *   Inline method: {@link LazyNodeGen#inline}
*/ private final Lazy generic_raiseNode_; @SuppressWarnings("unchecked") private Inlined(InlineTarget target) { assert target.getTargetClass().isAssignableFrom(GtNode.class); this.state_0_ = target.getState(0, 25); this.sS_compareIntsUTF32Node_ = target.getReference(1, CompareIntsUTF32Node.class); this.generic_cache = target.getReference(2, GenericData.class); this.generic_getClassA_ = GetClassNodeGen.inline(InlineTarget.create(GetClassNode.class, GENERIC__GT_NODE_GENERIC_STATE_0_UPDATER.subUpdater(0, 17), ReferenceField.create(GenericData.lookup_(), "generic_getClassA__field1_", Node.class))); this.generic_getClassB_ = GetClassNodeGen.inline(InlineTarget.create(GetClassNode.class, GENERIC__GT_NODE_GENERIC_STATE_1_UPDATER.subUpdater(0, 17), ReferenceField.create(GenericData.lookup_(), "generic_getClassB__field1_", Node.class))); this.generic_reversedFirst_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, GENERIC__GT_NODE_GENERIC_STATE_0_UPDATER.subUpdater(17, 2))); this.generic_isSameTypeNode_ = IsSameTypeNodeGen.inline(InlineTarget.create(IsSameTypeNode.class, GENERIC__GT_NODE_GENERIC_STATE_0_UPDATER.subUpdater(19, 6), ReferenceField.create(GenericData.lookup_(), "generic_isSameTypeNode__field1_", Node.class))); this.generic_isTrueNode_ = PyObjectIsTrueNodeGen.inline(InlineTarget.create(PyObjectIsTrueNode.class, GENERIC__GT_NODE_GENERIC_STATE_2_UPDATER.subUpdater(0, 19), GENERIC__GT_NODE_GENERIC_STATE_0_UPDATER.subUpdater(25, 4), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field2_", Object.class), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field3_", Node.class), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field4_", Node.class), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field5_", Node.class), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field6_", Node.class))); this.generic_raiseNode_ = LazyNodeGen.inline(InlineTarget.create(Lazy.class, GENERIC__GT_NODE_GENERIC_STATE_0_UPDATER.subUpdater(29, 1), ReferenceField.create(GenericData.lookup_(), "generic_raiseNode__field1_", Node.class))); } @Override protected boolean execute(Frame frameValue, Node arg0Value, Object arg1Value, Object arg2Value, Comparison arg3Value) { int state_0 = this.state_0_.get(arg0Value); if ((state_0 & 0x1fdb7df) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doBB(boolean, boolean, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doII(int, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIL(int, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doID(int, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLL(long, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLI(long, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLD(long, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPP(PInt, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDD(double, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDI(double, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDL(double, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.GtNode.doSS(TruffleString, TruffleString, Comparison, CompareIntsUTF32Node)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)] */) { if ((state_0 & 0b1) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doBB(boolean, boolean, Comparison)] */ && arg1Value instanceof Boolean) { boolean arg1Value_ = (boolean) arg1Value; if (arg2Value instanceof Boolean) { boolean arg2Value_ = (boolean) arg2Value; return ComparisonBaseNode.doBB(arg1Value_, arg2Value_, arg3Value); } } if ((state_0 & 0b1011110) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doII(int, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIL(int, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doID(int, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */ && arg1Value instanceof Integer) { int arg1Value_ = (int) arg1Value; if ((state_0 & 0b10) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doII(int, int, Comparison)] */ && arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doII(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b100) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIL(int, long, Comparison)] */ && arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doIL(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b1000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doID(int, double, Comparison)] */ && arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doID(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b1010000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */ && arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((state_0 & 0b10000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { try { return ComparisonBaseNode.doIPNoOVerflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xffffffef /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */; state_0 = state_0 | 0b100000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0b1000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doIP(arg1Value_, arg2Value_, arg3Value); } } } } if ((state_0 & 0b1011110000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLL(long, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLI(long, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLD(long, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */ && arg1Value instanceof Long) { long arg1Value_ = (long) arg1Value; if ((state_0 & 0b10000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLL(long, long, Comparison)] */ && arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doLL(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b100000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLI(long, int, Comparison)] */ && arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doLI(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b1000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLD(long, double, Comparison)] */ && arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doLD(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b1010000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */ && arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((state_0 & 0b10000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { try { return ComparisonBaseNode.doLPNoOVerflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xfffffbff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */; state_0 = state_0 | 0b100000000000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0b1000000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doLP(arg1Value_, arg2Value_, arg3Value); } } } } if ((state_0 & 0xda000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPP(PInt, PInt, Comparison)] */ && arg1Value instanceof PInt) { PInt arg1Value_ = (PInt) arg1Value; if ((state_0 & 0b1010000000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] */ && arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; if ((state_0 & 0b10000000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { try { return ComparisonBaseNode.doPINoOverflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xffffdfff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */; state_0 = state_0 | 0b100000000000000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0b1000000000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { return ComparisonBaseNode.doPI(arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0x50000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] */ && arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; if ((state_0 & 0x10000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { try { return ComparisonBaseNode.doPLNoOverflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xfffeffff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */; state_0 = state_0 | 0x20000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0x40000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { return ComparisonBaseNode.doPL(arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0x80000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPP(PInt, PInt, Comparison)] */ && arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_)) && (PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doPP(arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0x700000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDD(double, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDI(double, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDL(double, long, Comparison)] */ && arg1Value instanceof Double) { double arg1Value_ = (double) arg1Value; if ((state_0 & 0x100000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDD(double, double, Comparison)] */ && arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doDD(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0x200000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDI(double, int, Comparison)] */ && arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doDI(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0x400000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDL(double, long, Comparison)] */ && arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doDL(arg1Value_, arg2Value_, arg3Value); } } if ((state_0 & 0x800000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.GtNode.doSS(TruffleString, TruffleString, Comparison, CompareIntsUTF32Node)] */ && arg1Value instanceof TruffleString) { TruffleString arg1Value_ = (TruffleString) arg1Value; if (arg2Value instanceof TruffleString) { TruffleString arg2Value_ = (TruffleString) arg2Value; { CompareIntsUTF32Node compareIntsUTF32Node__ = this.sS_compareIntsUTF32Node_.get(arg0Value); if (compareIntsUTF32Node__ != null) { return GtNode.doSS(arg1Value_, arg2Value_, arg3Value, compareIntsUTF32Node__); } } } } if ((state_0 & 0x1000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)] */) { GenericData s20_ = this.generic_cache.get(arg0Value); if (s20_ != null) { return ComparisonBaseNode.doGeneric((VirtualFrame) frameValue, s20_, arg1Value, arg2Value, arg3Value, s20_.isNode_, this.generic_getClassA_, this.generic_getClassB_, this.generic_reversedFirst_, this.generic_isSameTypeNode_, s20_.isSubtypeNode_, s20_.lookupMethod_, s20_.lookupReverseMethod_, s20_.callMethod_, s20_.callReverseMethod_, this.generic_isTrueNode_, this.generic_raiseNode_); } } } CompilerDirectives.transferToInterpreterAndInvalidate(); return executeAndSpecialize(frameValue, arg0Value, arg1Value, arg2Value, arg3Value); } private boolean executeAndSpecialize(Frame frameValue, Node arg0Value, Object arg1Value, Object arg2Value, Comparison arg3Value) { int state_0 = this.state_0_.get(arg0Value); if (arg1Value instanceof Boolean) { boolean arg1Value_ = (boolean) arg1Value; if (arg2Value instanceof Boolean) { boolean arg2Value_ = (boolean) arg2Value; state_0 = state_0 | 0b1 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doBB(boolean, boolean, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doBB(arg1Value_, arg2Value_, arg3Value); } } if (arg1Value instanceof Integer) { int arg1Value_ = (int) arg1Value; if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; state_0 = state_0 | 0b10 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doII(int, int, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doII(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; state_0 = state_0 | 0b100 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIL(int, long, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doIL(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; state_0 = state_0 | 0b1000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doID(int, double, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doID(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if (((state_0 & 0b1000000)) == 0 /* is-not SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */ && ((state_0 & 0b100000)) == 0 /* is-not SpecializationExcluded */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 | 0b10000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */; this.state_0_.set(arg0Value, state_0); try { return ComparisonBaseNode.doIPNoOVerflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xffffffef /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */; state_0 = state_0 | 0b100000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 & 0xffffffef /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */; state_0 = state_0 | 0b1000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doIP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof Long) { long arg1Value_ = (long) arg1Value; if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; state_0 = state_0 | 0b10000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLL(long, long, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doLL(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; state_0 = state_0 | 0b100000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLI(long, int, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doLI(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; state_0 = state_0 | 0b1000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLD(long, double, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doLD(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if (((state_0 & 0b1000000000000)) == 0 /* is-not SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */ && ((state_0 & 0b100000000000)) == 0 /* is-not SpecializationExcluded */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 | 0b10000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */; this.state_0_.set(arg0Value, state_0); try { return ComparisonBaseNode.doLPNoOVerflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xfffffbff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */; state_0 = state_0 | 0b100000000000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 & 0xfffffbff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */; state_0 = state_0 | 0b1000000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doLP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof PInt) { PInt arg1Value_ = (PInt) arg1Value; if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; if (((state_0 & 0b1000000000000000)) == 0 /* is-not SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] */ && ((state_0 & 0b100000000000000)) == 0 /* is-not SpecializationExcluded */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { state_0 = state_0 | 0b10000000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */; this.state_0_.set(arg0Value, state_0); try { return ComparisonBaseNode.doPINoOverflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xffffdfff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */; state_0 = state_0 | 0b100000000000000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((PGuards.isBuiltinPInt(arg1Value_))) { state_0 = state_0 & 0xffffdfff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */; state_0 = state_0 | 0b1000000000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doPI(arg1Value_, arg2Value_, arg3Value); } } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; if (((state_0 & 0x40000)) == 0 /* is-not SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] */ && ((state_0 & 0x20000)) == 0 /* is-not SpecializationExcluded */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { state_0 = state_0 | 0x10000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */; this.state_0_.set(arg0Value, state_0); try { return ComparisonBaseNode.doPLNoOverflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xfffeffff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */; state_0 = state_0 | 0x20000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((PGuards.isBuiltinPInt(arg1Value_))) { state_0 = state_0 & 0xfffeffff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */; state_0 = state_0 | 0x40000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doPL(arg1Value_, arg2Value_, arg3Value); } } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_)) && (PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 | 0x80000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPP(PInt, PInt, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doPP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof Double) { double arg1Value_ = (double) arg1Value; if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; state_0 = state_0 | 0x100000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDD(double, double, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doDD(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; state_0 = state_0 | 0x200000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDI(double, int, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doDI(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; state_0 = state_0 | 0x400000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDL(double, long, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doDL(arg1Value_, arg2Value_, arg3Value); } } if (arg1Value instanceof TruffleString) { TruffleString arg1Value_ = (TruffleString) arg1Value; if (arg2Value instanceof TruffleString) { TruffleString arg2Value_ = (TruffleString) arg2Value; CompareIntsUTF32Node compareIntsUTF32Node__ = arg0Value.insert((CompareIntsUTF32Node.create())); Objects.requireNonNull(compareIntsUTF32Node__, "Specialization 'doSS(TruffleString, TruffleString, Comparison, CompareIntsUTF32Node)' cache 'compareIntsUTF32Node' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); VarHandle.storeStoreFence(); this.sS_compareIntsUTF32Node_.set(arg0Value, compareIntsUTF32Node__); state_0 = state_0 | 0x800000 /* add SpecializationActive[PyObjectRichCompareBool.GtNode.doSS(TruffleString, TruffleString, Comparison, CompareIntsUTF32Node)] */; this.state_0_.set(arg0Value, state_0); return GtNode.doSS(arg1Value_, arg2Value_, arg3Value, compareIntsUTF32Node__); } } GenericData s20_ = arg0Value.insert(new GenericData()); IsNode isNode__ = s20_.insert((IsNode.create())); Objects.requireNonNull(isNode__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'isNode' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.isNode_ = isNode__; IsSubtypeNode isSubtypeNode__ = s20_.insert((IsSubtypeNode.create())); Objects.requireNonNull(isSubtypeNode__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'isSubtypeNode' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.isSubtypeNode_ = isSubtypeNode__; LookupSpecialMethodSlotNode lookupMethod__ = s20_.insert((LookupSpecialMethodSlotNode.create(arg3Value.getSlot()))); Objects.requireNonNull(lookupMethod__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'lookupMethod' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.lookupMethod_ = lookupMethod__; LookupSpecialMethodSlotNode lookupReverseMethod__ = s20_.insert((LookupSpecialMethodSlotNode.create(arg3Value.getReverseSlot()))); Objects.requireNonNull(lookupReverseMethod__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'lookupReverseMethod' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.lookupReverseMethod_ = lookupReverseMethod__; CallBinaryMethodNode callMethod__ = s20_.insert((CallBinaryMethodNode.create())); Objects.requireNonNull(callMethod__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'callMethod' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.callMethod_ = callMethod__; CallBinaryMethodNode callReverseMethod__ = s20_.insert((CallBinaryMethodNode.create())); Objects.requireNonNull(callReverseMethod__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'callReverseMethod' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.callReverseMethod_ = callReverseMethod__; VarHandle.storeStoreFence(); this.generic_cache.set(arg0Value, s20_); state_0 = state_0 | 0x1000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doGeneric((VirtualFrame) frameValue, s20_, arg1Value, arg2Value, arg3Value, isNode__, this.generic_getClassA_, this.generic_getClassB_, this.generic_reversedFirst_, this.generic_isSameTypeNode_, isSubtypeNode__, lookupMethod__, lookupReverseMethod__, callMethod__, callReverseMethod__, this.generic_isTrueNode_, this.generic_raiseNode_); } @Override public boolean isAdoptable() { return false; } } @GeneratedBy(GtNode.class) @DenyReplace private static final class GenericData extends Node implements SpecializationDataNode { /** * State Info:
             *   0-16: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link GetClassNode} getClassA
             *        Inline method: {@link GetClassNodeGen#inline}
             *   17-18: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link InlinedConditionProfile} reversedFirst
             *        Inline method: {@link InlinedConditionProfile#inline}
             *   19-24: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link IsSameTypeNode} isSameTypeNode
             *        Inline method: {@link IsSameTypeNodeGen#inline}
             *   25-28: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *        Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   29: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link Lazy} raiseNode
             *        Inline method: {@link LazyNodeGen#inline}
             * 
*/ @CompilationFinal @UnsafeAccessedField private int generic_state_0_; /** * State Info:
             *   0-16: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link GetClassNode} getClassB
             *        Inline method: {@link GetClassNodeGen#inline}
             * 
*/ @CompilationFinal @UnsafeAccessedField private int generic_state_1_; /** * State Info:
             *   0-18: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *        Inline method: {@link PyObjectIsTrueNodeGen#inline}
             * 
*/ @CompilationFinal @UnsafeAccessedField private int generic_state_2_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link IsNode} isNode
*/ @Child IsNode isNode_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link GetClassNode} getClassA
             *   Inline method: {@link GetClassNodeGen#inline}
             *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_getClassA__field1_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link GetClassNode} getClassB
             *   Inline method: {@link GetClassNodeGen#inline}
             *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_getClassB__field1_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link IsSameTypeNode} isSameTypeNode
             *   Inline method: {@link IsSameTypeNodeGen#inline}
             *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_isSameTypeNode__field1_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link IsSubtypeNode} isSubtypeNode
*/ @Child IsSubtypeNode isSubtypeNode_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link LookupSpecialMethodSlotNode} lookupMethod
*/ @Child LookupSpecialMethodSlotNode lookupMethod_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link LookupSpecialMethodSlotNode} lookupReverseMethod
*/ @Child LookupSpecialMethodSlotNode lookupReverseMethod_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link CallBinaryMethodNode} callMethod
*/ @Child CallBinaryMethodNode callMethod_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link CallBinaryMethodNode} callReverseMethod
*/ @Child CallBinaryMethodNode callReverseMethod_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   Inline field: {@link Object} field2
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private Object generic_isTrueNode__field2_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   Inline field: {@link Node} field3
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_isTrueNode__field3_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   Inline field: {@link Node} field4
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_isTrueNode__field4_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   Inline field: {@link Node} field5
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_isTrueNode__field5_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   Inline field: {@link Node} field6
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_isTrueNode__field6_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link Lazy} raiseNode
             *   Inline method: {@link LazyNodeGen#inline}
             *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_raiseNode__field1_; GenericData() { } @Override public NodeCost getCost() { return NodeCost.NONE; } private static Lookup lookup_() { return MethodHandles.lookup(); } } @GeneratedBy(GtNode.class) @DenyReplace private static final class Uncached extends GtNode { @Override protected boolean execute(Frame frameValue, Node arg0Value, Object arg1Value, Object arg2Value, Comparison arg3Value) { CompilerDirectives.transferToInterpreterAndInvalidate(); if (arg1Value instanceof Boolean) { boolean arg1Value_ = (boolean) arg1Value; if (arg2Value instanceof Boolean) { boolean arg2Value_ = (boolean) arg2Value; return ComparisonBaseNode.doBB(arg1Value_, arg2Value_, arg3Value); } } if (arg1Value instanceof Integer) { int arg1Value_ = (int) arg1Value; if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doII(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doIL(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doID(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doIP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof Long) { long arg1Value_ = (long) arg1Value; if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doLL(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doLI(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doLD(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doLP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof PInt) { PInt arg1Value_ = (PInt) arg1Value; if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_))) { return ComparisonBaseNode.doPI(arg1Value_, arg2Value_, arg3Value); } } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_))) { return ComparisonBaseNode.doPL(arg1Value_, arg2Value_, arg3Value); } } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_)) && (PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doPP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof Double) { double arg1Value_ = (double) arg1Value; if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doDD(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doDI(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doDL(arg1Value_, arg2Value_, arg3Value); } } if (arg1Value instanceof TruffleString) { TruffleString arg1Value_ = (TruffleString) arg1Value; if (arg2Value instanceof TruffleString) { TruffleString arg2Value_ = (TruffleString) arg2Value; return GtNode.doSS(arg1Value_, arg2Value_, arg3Value, (CompareIntsUTF32Node.getUncached())); } } return ComparisonBaseNode.doGeneric((VirtualFrame) frameValue, arg0Value, arg1Value, arg2Value, arg3Value, (IsNode.getUncached()), (GetClassNode.getUncached()), (GetClassNode.getUncached()), (InlinedConditionProfile.getUncached()), (IsSameTypeNodeGen.getUncached()), (IsSubtypeNode.getUncached()), (LookupSpecialMethodSlotNode.getUncached(arg3Value.getSlot())), (LookupSpecialMethodSlotNode.getUncached(arg3Value.getReverseSlot())), (CallBinaryMethodNode.getUncached()), (CallBinaryMethodNode.getUncached()), (PyObjectIsTrueNode.getUncached()), (Lazy.getUncached())); } @Override public NodeCost getCost() { return NodeCost.MEGAMORPHIC; } @Override public boolean isAdoptable() { return false; } } } /** * Debug Info:
     *   Specialization {@link ComparisonBaseNode#doBB}
     *     Activation probability: 0.08658
     *     With/without class size: 5/0 bytes
     *   Specialization {@link ComparisonBaseNode#doII}
     *     Activation probability: 0.08268
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doIL}
     *     Activation probability: 0.07879
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doID}
     *     Activation probability: 0.07489
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doIPNoOVerflow}
     *     Activation probability: 0.07100
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doIP}
     *     Activation probability: 0.06710
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doLL}
     *     Activation probability: 0.06320
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doLI}
     *     Activation probability: 0.05931
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doLD}
     *     Activation probability: 0.05541
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doLPNoOVerflow}
     *     Activation probability: 0.05152
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doLP}
     *     Activation probability: 0.04762
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doPINoOverflow}
     *     Activation probability: 0.04372
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doPI}
     *     Activation probability: 0.03983
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doPLNoOverflow}
     *     Activation probability: 0.03593
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doPL}
     *     Activation probability: 0.03203
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doPP}
     *     Activation probability: 0.02814
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doDD}
     *     Activation probability: 0.02424
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doDI}
     *     Activation probability: 0.02035
     *     With/without class size: 4/0 bytes
     *   Specialization {@link ComparisonBaseNode#doDL}
     *     Activation probability: 0.01645
     *     With/without class size: 4/0 bytes
     *   Specialization {@link GeNode#doSS}
     *     Activation probability: 0.01255
     *     With/without class size: 4/4 bytes
     *   Specialization {@link ComparisonBaseNode#doGeneric}
     *     Activation probability: 0.00866
     *     With/without class size: 4/69 bytes
     * 
*/ @GeneratedBy(GeNode.class) @SuppressWarnings("javadoc") public static final class GeNodeGen { private static final StateField GENERIC__GE_NODE_GENERIC_STATE_0_UPDATER = StateField.create(GenericData.lookup_(), "generic_state_0_"); private static final StateField GENERIC__GE_NODE_GENERIC_STATE_1_UPDATER = StateField.create(GenericData.lookup_(), "generic_state_1_"); private static final StateField GENERIC__GE_NODE_GENERIC_STATE_2_UPDATER = StateField.create(GenericData.lookup_(), "generic_state_2_"); private static final Uncached UNCACHED = new Uncached(); @NeverDefault public static GeNode getUncached() { return GeNodeGen.UNCACHED; } /** * Required Fields:
    *
  • {@link Inlined#state_0_} *
  • {@link Inlined#sS_compareIntsUTF32Node_} *
  • {@link Inlined#generic_cache} *
*/ @NeverDefault public static GeNode inline(@RequiredField(bits = 25, value = StateField.class)@RequiredField(type = Node.class, value = ReferenceField.class)@RequiredField(type = Node.class, value = ReferenceField.class) InlineTarget target) { return new GeNodeGen.Inlined(target); } @GeneratedBy(GeNode.class) @DenyReplace private static final class Inlined extends GeNode { /** * State Info:
             *   0: SpecializationActive {@link ComparisonBaseNode#doBB}
             *   1: SpecializationActive {@link ComparisonBaseNode#doII}
             *   2: SpecializationActive {@link ComparisonBaseNode#doIL}
             *   3: SpecializationActive {@link ComparisonBaseNode#doID}
             *   4: SpecializationActive {@link ComparisonBaseNode#doIPNoOVerflow}
             *   5: SpecializationExcluded {@link ComparisonBaseNode#doIPNoOVerflow}
             *   6: SpecializationActive {@link ComparisonBaseNode#doIP}
             *   7: SpecializationActive {@link ComparisonBaseNode#doLL}
             *   8: SpecializationActive {@link ComparisonBaseNode#doLI}
             *   9: SpecializationActive {@link ComparisonBaseNode#doLD}
             *   10: SpecializationActive {@link ComparisonBaseNode#doLPNoOVerflow}
             *   11: SpecializationExcluded {@link ComparisonBaseNode#doLPNoOVerflow}
             *   12: SpecializationActive {@link ComparisonBaseNode#doLP}
             *   13: SpecializationActive {@link ComparisonBaseNode#doPINoOverflow}
             *   14: SpecializationExcluded {@link ComparisonBaseNode#doPINoOverflow}
             *   15: SpecializationActive {@link ComparisonBaseNode#doPI}
             *   16: SpecializationActive {@link ComparisonBaseNode#doPLNoOverflow}
             *   17: SpecializationExcluded {@link ComparisonBaseNode#doPLNoOverflow}
             *   18: SpecializationActive {@link ComparisonBaseNode#doPL}
             *   19: SpecializationActive {@link ComparisonBaseNode#doPP}
             *   20: SpecializationActive {@link ComparisonBaseNode#doDD}
             *   21: SpecializationActive {@link ComparisonBaseNode#doDI}
             *   22: SpecializationActive {@link ComparisonBaseNode#doDL}
             *   23: SpecializationActive {@link GeNode#doSS}
             *   24: SpecializationActive {@link ComparisonBaseNode#doGeneric}
             * 
*/ private final StateField state_0_; private final ReferenceField sS_compareIntsUTF32Node_; private final ReferenceField generic_cache; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link GetClassNode} getClassA
             *   Inline method: {@link GetClassNodeGen#inline}
*/ private final GetClassNode generic_getClassA_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link GetClassNode} getClassB
             *   Inline method: {@link GetClassNodeGen#inline}
*/ private final GetClassNode generic_getClassB_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link InlinedConditionProfile} reversedFirst
             *   Inline method: {@link InlinedConditionProfile#inline}
*/ private final InlinedConditionProfile generic_reversedFirst_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link IsSameTypeNode} isSameTypeNode
             *   Inline method: {@link IsSameTypeNodeGen#inline}
*/ private final IsSameTypeNode generic_isSameTypeNode_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
*/ private final PyObjectIsTrueNode generic_isTrueNode_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link Lazy} raiseNode
             *   Inline method: {@link LazyNodeGen#inline}
*/ private final Lazy generic_raiseNode_; @SuppressWarnings("unchecked") private Inlined(InlineTarget target) { assert target.getTargetClass().isAssignableFrom(GeNode.class); this.state_0_ = target.getState(0, 25); this.sS_compareIntsUTF32Node_ = target.getReference(1, CompareIntsUTF32Node.class); this.generic_cache = target.getReference(2, GenericData.class); this.generic_getClassA_ = GetClassNodeGen.inline(InlineTarget.create(GetClassNode.class, GENERIC__GE_NODE_GENERIC_STATE_0_UPDATER.subUpdater(0, 17), ReferenceField.create(GenericData.lookup_(), "generic_getClassA__field1_", Node.class))); this.generic_getClassB_ = GetClassNodeGen.inline(InlineTarget.create(GetClassNode.class, GENERIC__GE_NODE_GENERIC_STATE_1_UPDATER.subUpdater(0, 17), ReferenceField.create(GenericData.lookup_(), "generic_getClassB__field1_", Node.class))); this.generic_reversedFirst_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, GENERIC__GE_NODE_GENERIC_STATE_0_UPDATER.subUpdater(17, 2))); this.generic_isSameTypeNode_ = IsSameTypeNodeGen.inline(InlineTarget.create(IsSameTypeNode.class, GENERIC__GE_NODE_GENERIC_STATE_0_UPDATER.subUpdater(19, 6), ReferenceField.create(GenericData.lookup_(), "generic_isSameTypeNode__field1_", Node.class))); this.generic_isTrueNode_ = PyObjectIsTrueNodeGen.inline(InlineTarget.create(PyObjectIsTrueNode.class, GENERIC__GE_NODE_GENERIC_STATE_2_UPDATER.subUpdater(0, 19), GENERIC__GE_NODE_GENERIC_STATE_0_UPDATER.subUpdater(25, 4), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field2_", Object.class), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field3_", Node.class), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field4_", Node.class), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field5_", Node.class), ReferenceField.create(GenericData.lookup_(), "generic_isTrueNode__field6_", Node.class))); this.generic_raiseNode_ = LazyNodeGen.inline(InlineTarget.create(Lazy.class, GENERIC__GE_NODE_GENERIC_STATE_0_UPDATER.subUpdater(29, 1), ReferenceField.create(GenericData.lookup_(), "generic_raiseNode__field1_", Node.class))); } @Override protected boolean execute(Frame frameValue, Node arg0Value, Object arg1Value, Object arg2Value, Comparison arg3Value) { int state_0 = this.state_0_.get(arg0Value); if ((state_0 & 0x1fdb7df) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doBB(boolean, boolean, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doII(int, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIL(int, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doID(int, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLL(long, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLI(long, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLD(long, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPP(PInt, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDD(double, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDI(double, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDL(double, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.GeNode.doSS(TruffleString, TruffleString, Comparison, CompareIntsUTF32Node)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)] */) { if ((state_0 & 0b1) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doBB(boolean, boolean, Comparison)] */ && arg1Value instanceof Boolean) { boolean arg1Value_ = (boolean) arg1Value; if (arg2Value instanceof Boolean) { boolean arg2Value_ = (boolean) arg2Value; return ComparisonBaseNode.doBB(arg1Value_, arg2Value_, arg3Value); } } if ((state_0 & 0b1011110) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doII(int, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIL(int, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doID(int, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */ && arg1Value instanceof Integer) { int arg1Value_ = (int) arg1Value; if ((state_0 & 0b10) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doII(int, int, Comparison)] */ && arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doII(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b100) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIL(int, long, Comparison)] */ && arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doIL(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b1000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doID(int, double, Comparison)] */ && arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doID(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b1010000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */ && arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((state_0 & 0b10000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { try { return ComparisonBaseNode.doIPNoOVerflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xffffffef /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */; state_0 = state_0 | 0b100000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0b1000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doIP(arg1Value_, arg2Value_, arg3Value); } } } } if ((state_0 & 0b1011110000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLL(long, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLI(long, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLD(long, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */ && arg1Value instanceof Long) { long arg1Value_ = (long) arg1Value; if ((state_0 & 0b10000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLL(long, long, Comparison)] */ && arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doLL(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b100000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLI(long, int, Comparison)] */ && arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doLI(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b1000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLD(long, double, Comparison)] */ && arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doLD(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0b1010000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */ && arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((state_0 & 0b10000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { try { return ComparisonBaseNode.doLPNoOVerflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xfffffbff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */; state_0 = state_0 | 0b100000000000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0b1000000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doLP(arg1Value_, arg2Value_, arg3Value); } } } } if ((state_0 & 0xda000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPP(PInt, PInt, Comparison)] */ && arg1Value instanceof PInt) { PInt arg1Value_ = (PInt) arg1Value; if ((state_0 & 0b1010000000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] */ && arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; if ((state_0 & 0b10000000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { try { return ComparisonBaseNode.doPINoOverflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xffffdfff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */; state_0 = state_0 | 0b100000000000000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0b1000000000000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { return ComparisonBaseNode.doPI(arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0x50000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] */ && arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; if ((state_0 & 0x10000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { try { return ComparisonBaseNode.doPLNoOverflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xfffeffff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */; state_0 = state_0 | 0x20000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0x40000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { return ComparisonBaseNode.doPL(arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0x80000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPP(PInt, PInt, Comparison)] */ && arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_)) && (PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doPP(arg1Value_, arg2Value_, arg3Value); } } } if ((state_0 & 0x700000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDD(double, double, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDI(double, int, Comparison)] || SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDL(double, long, Comparison)] */ && arg1Value instanceof Double) { double arg1Value_ = (double) arg1Value; if ((state_0 & 0x100000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDD(double, double, Comparison)] */ && arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doDD(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0x200000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDI(double, int, Comparison)] */ && arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doDI(arg1Value_, arg2Value_, arg3Value); } if ((state_0 & 0x400000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDL(double, long, Comparison)] */ && arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doDL(arg1Value_, arg2Value_, arg3Value); } } if ((state_0 & 0x800000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.GeNode.doSS(TruffleString, TruffleString, Comparison, CompareIntsUTF32Node)] */ && arg1Value instanceof TruffleString) { TruffleString arg1Value_ = (TruffleString) arg1Value; if (arg2Value instanceof TruffleString) { TruffleString arg2Value_ = (TruffleString) arg2Value; { CompareIntsUTF32Node compareIntsUTF32Node__ = this.sS_compareIntsUTF32Node_.get(arg0Value); if (compareIntsUTF32Node__ != null) { return GeNode.doSS(arg1Value_, arg2Value_, arg3Value, compareIntsUTF32Node__); } } } } if ((state_0 & 0x1000000) != 0 /* is SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)] */) { GenericData s20_ = this.generic_cache.get(arg0Value); if (s20_ != null) { return ComparisonBaseNode.doGeneric((VirtualFrame) frameValue, s20_, arg1Value, arg2Value, arg3Value, s20_.isNode_, this.generic_getClassA_, this.generic_getClassB_, this.generic_reversedFirst_, this.generic_isSameTypeNode_, s20_.isSubtypeNode_, s20_.lookupMethod_, s20_.lookupReverseMethod_, s20_.callMethod_, s20_.callReverseMethod_, this.generic_isTrueNode_, this.generic_raiseNode_); } } } CompilerDirectives.transferToInterpreterAndInvalidate(); return executeAndSpecialize(frameValue, arg0Value, arg1Value, arg2Value, arg3Value); } private boolean executeAndSpecialize(Frame frameValue, Node arg0Value, Object arg1Value, Object arg2Value, Comparison arg3Value) { int state_0 = this.state_0_.get(arg0Value); if (arg1Value instanceof Boolean) { boolean arg1Value_ = (boolean) arg1Value; if (arg2Value instanceof Boolean) { boolean arg2Value_ = (boolean) arg2Value; state_0 = state_0 | 0b1 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doBB(boolean, boolean, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doBB(arg1Value_, arg2Value_, arg3Value); } } if (arg1Value instanceof Integer) { int arg1Value_ = (int) arg1Value; if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; state_0 = state_0 | 0b10 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doII(int, int, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doII(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; state_0 = state_0 | 0b100 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIL(int, long, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doIL(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; state_0 = state_0 | 0b1000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doID(int, double, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doID(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if (((state_0 & 0b1000000)) == 0 /* is-not SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */ && ((state_0 & 0b100000)) == 0 /* is-not SpecializationExcluded */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 | 0b10000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */; this.state_0_.set(arg0Value, state_0); try { return ComparisonBaseNode.doIPNoOVerflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xffffffef /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */; state_0 = state_0 | 0b100000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 & 0xffffffef /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIPNoOVerflow(int, PInt, Comparison)] */; state_0 = state_0 | 0b1000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doIP(int, PInt, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doIP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof Long) { long arg1Value_ = (long) arg1Value; if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; state_0 = state_0 | 0b10000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLL(long, long, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doLL(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; state_0 = state_0 | 0b100000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLI(long, int, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doLI(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; state_0 = state_0 | 0b1000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLD(long, double, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doLD(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if (((state_0 & 0b1000000000000)) == 0 /* is-not SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */ && ((state_0 & 0b100000000000)) == 0 /* is-not SpecializationExcluded */) { if ((PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 | 0b10000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */; this.state_0_.set(arg0Value, state_0); try { return ComparisonBaseNode.doLPNoOVerflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xfffffbff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */; state_0 = state_0 | 0b100000000000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 & 0xfffffbff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLPNoOVerflow(long, PInt, Comparison)] */; state_0 = state_0 | 0b1000000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doLP(long, PInt, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doLP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof PInt) { PInt arg1Value_ = (PInt) arg1Value; if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; if (((state_0 & 0b1000000000000000)) == 0 /* is-not SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] */ && ((state_0 & 0b100000000000000)) == 0 /* is-not SpecializationExcluded */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { state_0 = state_0 | 0b10000000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */; this.state_0_.set(arg0Value, state_0); try { return ComparisonBaseNode.doPINoOverflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xffffdfff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */; state_0 = state_0 | 0b100000000000000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((PGuards.isBuiltinPInt(arg1Value_))) { state_0 = state_0 & 0xffffdfff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPINoOverflow(PInt, int, Comparison)] */; state_0 = state_0 | 0b1000000000000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPI(PInt, int, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doPI(arg1Value_, arg2Value_, arg3Value); } } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; if (((state_0 & 0x40000)) == 0 /* is-not SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] */ && ((state_0 & 0x20000)) == 0 /* is-not SpecializationExcluded */) { if ((PGuards.isBuiltinPInt(arg1Value_))) { state_0 = state_0 | 0x10000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */; this.state_0_.set(arg0Value, state_0); try { return ComparisonBaseNode.doPLNoOverflow(arg1Value_, arg2Value_, arg3Value); } catch (OverflowException ex) { CompilerDirectives.transferToInterpreterAndInvalidate(); state_0 = this.state_0_.get(arg0Value); state_0 = state_0 & 0xfffeffff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */; state_0 = state_0 | 0x20000 /* add SpecializationExcluded */; this.state_0_.set(arg0Value, state_0); return executeAndSpecialize(frameValue, arg0Value, arg1Value_, arg2Value_, arg3Value); } } } if ((PGuards.isBuiltinPInt(arg1Value_))) { state_0 = state_0 & 0xfffeffff /* remove SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPLNoOverflow(PInt, long, Comparison)] */; state_0 = state_0 | 0x40000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPL(PInt, long, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doPL(arg1Value_, arg2Value_, arg3Value); } } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_)) && (PGuards.isBuiltinPInt(arg2Value_))) { state_0 = state_0 | 0x80000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doPP(PInt, PInt, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doPP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof Double) { double arg1Value_ = (double) arg1Value; if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; state_0 = state_0 | 0x100000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDD(double, double, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doDD(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; state_0 = state_0 | 0x200000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDI(double, int, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doDI(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; state_0 = state_0 | 0x400000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doDL(double, long, Comparison)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doDL(arg1Value_, arg2Value_, arg3Value); } } if (arg1Value instanceof TruffleString) { TruffleString arg1Value_ = (TruffleString) arg1Value; if (arg2Value instanceof TruffleString) { TruffleString arg2Value_ = (TruffleString) arg2Value; CompareIntsUTF32Node compareIntsUTF32Node__ = arg0Value.insert((CompareIntsUTF32Node.create())); Objects.requireNonNull(compareIntsUTF32Node__, "Specialization 'doSS(TruffleString, TruffleString, Comparison, CompareIntsUTF32Node)' cache 'compareIntsUTF32Node' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); VarHandle.storeStoreFence(); this.sS_compareIntsUTF32Node_.set(arg0Value, compareIntsUTF32Node__); state_0 = state_0 | 0x800000 /* add SpecializationActive[PyObjectRichCompareBool.GeNode.doSS(TruffleString, TruffleString, Comparison, CompareIntsUTF32Node)] */; this.state_0_.set(arg0Value, state_0); return GeNode.doSS(arg1Value_, arg2Value_, arg3Value, compareIntsUTF32Node__); } } GenericData s20_ = arg0Value.insert(new GenericData()); IsNode isNode__ = s20_.insert((IsNode.create())); Objects.requireNonNull(isNode__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'isNode' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.isNode_ = isNode__; IsSubtypeNode isSubtypeNode__ = s20_.insert((IsSubtypeNode.create())); Objects.requireNonNull(isSubtypeNode__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'isSubtypeNode' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.isSubtypeNode_ = isSubtypeNode__; LookupSpecialMethodSlotNode lookupMethod__ = s20_.insert((LookupSpecialMethodSlotNode.create(arg3Value.getSlot()))); Objects.requireNonNull(lookupMethod__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'lookupMethod' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.lookupMethod_ = lookupMethod__; LookupSpecialMethodSlotNode lookupReverseMethod__ = s20_.insert((LookupSpecialMethodSlotNode.create(arg3Value.getReverseSlot()))); Objects.requireNonNull(lookupReverseMethod__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'lookupReverseMethod' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.lookupReverseMethod_ = lookupReverseMethod__; CallBinaryMethodNode callMethod__ = s20_.insert((CallBinaryMethodNode.create())); Objects.requireNonNull(callMethod__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'callMethod' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.callMethod_ = callMethod__; CallBinaryMethodNode callReverseMethod__ = s20_.insert((CallBinaryMethodNode.create())); Objects.requireNonNull(callReverseMethod__, "Specialization 'doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)' cache 'callReverseMethod' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s20_.callReverseMethod_ = callReverseMethod__; VarHandle.storeStoreFence(); this.generic_cache.set(arg0Value, s20_); state_0 = state_0 | 0x1000000 /* add SpecializationActive[PyObjectRichCompareBool.ComparisonBaseNode.doGeneric(VirtualFrame, Node, Object, Object, Comparison, IsNode, GetClassNode, GetClassNode, InlinedConditionProfile, IsSameTypeNode, IsSubtypeNode, LookupSpecialMethodSlotNode, LookupSpecialMethodSlotNode, CallBinaryMethodNode, CallBinaryMethodNode, PyObjectIsTrueNode, Lazy)] */; this.state_0_.set(arg0Value, state_0); return ComparisonBaseNode.doGeneric((VirtualFrame) frameValue, s20_, arg1Value, arg2Value, arg3Value, isNode__, this.generic_getClassA_, this.generic_getClassB_, this.generic_reversedFirst_, this.generic_isSameTypeNode_, isSubtypeNode__, lookupMethod__, lookupReverseMethod__, callMethod__, callReverseMethod__, this.generic_isTrueNode_, this.generic_raiseNode_); } @Override public boolean isAdoptable() { return false; } } @GeneratedBy(GeNode.class) @DenyReplace private static final class GenericData extends Node implements SpecializationDataNode { /** * State Info:
             *   0-16: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link GetClassNode} getClassA
             *        Inline method: {@link GetClassNodeGen#inline}
             *   17-18: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link InlinedConditionProfile} reversedFirst
             *        Inline method: {@link InlinedConditionProfile#inline}
             *   19-24: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link IsSameTypeNode} isSameTypeNode
             *        Inline method: {@link IsSameTypeNodeGen#inline}
             *   25-28: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *        Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   29: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link Lazy} raiseNode
             *        Inline method: {@link LazyNodeGen#inline}
             * 
*/ @CompilationFinal @UnsafeAccessedField private int generic_state_0_; /** * State Info:
             *   0-16: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link GetClassNode} getClassB
             *        Inline method: {@link GetClassNodeGen#inline}
             * 
*/ @CompilationFinal @UnsafeAccessedField private int generic_state_1_; /** * State Info:
             *   0-18: InlinedCache
             *        Specialization: {@link ComparisonBaseNode#doGeneric}
             *        Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *        Inline method: {@link PyObjectIsTrueNodeGen#inline}
             * 
*/ @CompilationFinal @UnsafeAccessedField private int generic_state_2_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link IsNode} isNode
*/ @Child IsNode isNode_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link GetClassNode} getClassA
             *   Inline method: {@link GetClassNodeGen#inline}
             *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_getClassA__field1_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link GetClassNode} getClassB
             *   Inline method: {@link GetClassNodeGen#inline}
             *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_getClassB__field1_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link IsSameTypeNode} isSameTypeNode
             *   Inline method: {@link IsSameTypeNodeGen#inline}
             *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_isSameTypeNode__field1_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link IsSubtypeNode} isSubtypeNode
*/ @Child IsSubtypeNode isSubtypeNode_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link LookupSpecialMethodSlotNode} lookupMethod
*/ @Child LookupSpecialMethodSlotNode lookupMethod_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link LookupSpecialMethodSlotNode} lookupReverseMethod
*/ @Child LookupSpecialMethodSlotNode lookupReverseMethod_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link CallBinaryMethodNode} callMethod
*/ @Child CallBinaryMethodNode callMethod_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link CallBinaryMethodNode} callReverseMethod
*/ @Child CallBinaryMethodNode callReverseMethod_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   Inline field: {@link Object} field2
*/ @CompilationFinal @UnsafeAccessedField @SuppressWarnings("unused") private Object generic_isTrueNode__field2_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   Inline field: {@link Node} field3
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_isTrueNode__field3_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   Inline field: {@link Node} field4
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_isTrueNode__field4_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   Inline field: {@link Node} field5
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_isTrueNode__field5_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link PyObjectIsTrueNode} isTrueNode
             *   Inline method: {@link PyObjectIsTrueNodeGen#inline}
             *   Inline field: {@link Node} field6
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_isTrueNode__field6_; /** * Source Info:
             *   Specialization: {@link ComparisonBaseNode#doGeneric}
             *   Parameter: {@link Lazy} raiseNode
             *   Inline method: {@link LazyNodeGen#inline}
             *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node generic_raiseNode__field1_; GenericData() { } @Override public NodeCost getCost() { return NodeCost.NONE; } private static Lookup lookup_() { return MethodHandles.lookup(); } } @GeneratedBy(GeNode.class) @DenyReplace private static final class Uncached extends GeNode { @Override protected boolean execute(Frame frameValue, Node arg0Value, Object arg1Value, Object arg2Value, Comparison arg3Value) { CompilerDirectives.transferToInterpreterAndInvalidate(); if (arg1Value instanceof Boolean) { boolean arg1Value_ = (boolean) arg1Value; if (arg2Value instanceof Boolean) { boolean arg2Value_ = (boolean) arg2Value; return ComparisonBaseNode.doBB(arg1Value_, arg2Value_, arg3Value); } } if (arg1Value instanceof Integer) { int arg1Value_ = (int) arg1Value; if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doII(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doIL(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doID(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doIP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof Long) { long arg1Value_ = (long) arg1Value; if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doLL(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doLI(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doLD(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doLP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof PInt) { PInt arg1Value_ = (PInt) arg1Value; if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_))) { return ComparisonBaseNode.doPI(arg1Value_, arg2Value_, arg3Value); } } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_))) { return ComparisonBaseNode.doPL(arg1Value_, arg2Value_, arg3Value); } } if (arg2Value instanceof PInt) { PInt arg2Value_ = (PInt) arg2Value; if ((PGuards.isBuiltinPInt(arg1Value_)) && (PGuards.isBuiltinPInt(arg2Value_))) { return ComparisonBaseNode.doPP(arg1Value_, arg2Value_, arg3Value); } } } if (arg1Value instanceof Double) { double arg1Value_ = (double) arg1Value; if (arg2Value instanceof Double) { double arg2Value_ = (double) arg2Value; return ComparisonBaseNode.doDD(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Integer) { int arg2Value_ = (int) arg2Value; return ComparisonBaseNode.doDI(arg1Value_, arg2Value_, arg3Value); } if (arg2Value instanceof Long) { long arg2Value_ = (long) arg2Value; return ComparisonBaseNode.doDL(arg1Value_, arg2Value_, arg3Value); } } if (arg1Value instanceof TruffleString) { TruffleString arg1Value_ = (TruffleString) arg1Value; if (arg2Value instanceof TruffleString) { TruffleString arg2Value_ = (TruffleString) arg2Value; return GeNode.doSS(arg1Value_, arg2Value_, arg3Value, (CompareIntsUTF32Node.getUncached())); } } return ComparisonBaseNode.doGeneric((VirtualFrame) frameValue, arg0Value, arg1Value, arg2Value, arg3Value, (IsNode.getUncached()), (GetClassNode.getUncached()), (GetClassNode.getUncached()), (InlinedConditionProfile.getUncached()), (IsSameTypeNodeGen.getUncached()), (IsSubtypeNode.getUncached()), (LookupSpecialMethodSlotNode.getUncached(arg3Value.getSlot())), (LookupSpecialMethodSlotNode.getUncached(arg3Value.getReverseSlot())), (CallBinaryMethodNode.getUncached()), (CallBinaryMethodNode.getUncached()), (PyObjectIsTrueNode.getUncached()), (Lazy.getUncached())); } @Override public NodeCost getCost() { return NodeCost.MEGAMORPHIC; } @Override public boolean isAdoptable() { return false; } } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy