com.oracle.graal.python.nodes.bytecode.RaiseNodeGen Maven / Gradle / Ivy
// CheckStyle: start generated
package com.oracle.graal.python.nodes.bytecode;
import com.oracle.graal.python.builtins.objects.PNone;
import com.oracle.graal.python.builtins.objects.cext.PythonAbstractNativeObject;
import com.oracle.graal.python.builtins.objects.exception.PBaseException;
import com.oracle.graal.python.builtins.objects.exception.ExceptionNodes.SetCauseNode;
import com.oracle.graal.python.builtins.objects.exception.ExceptionNodesFactory.SetCauseNodeGen;
import com.oracle.graal.python.builtins.objects.type.TypeNodes.IsTypeNode;
import com.oracle.graal.python.builtins.objects.type.TypeNodesFactory.IsTypeNodeGen;
import com.oracle.graal.python.lib.PyExceptionInstanceCheckNode;
import com.oracle.graal.python.lib.PyExceptionInstanceCheckNodeGen;
import com.oracle.graal.python.nodes.PGuards;
import com.oracle.graal.python.nodes.PRaiseNode;
import com.oracle.graal.python.nodes.PRaiseNode.Lazy;
import com.oracle.graal.python.nodes.PRaiseNodeGen.LazyNodeGen;
import com.oracle.graal.python.nodes.call.CallNode;
import com.oracle.graal.python.nodes.exception.ValidExceptionNode;
import com.oracle.graal.python.nodes.exception.ValidExceptionNodeGen;
import com.oracle.graal.python.nodes.util.ExceptionStateNodes.GetCaughtExceptionNode;
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.UnsupportedSpecializationException;
import com.oracle.truffle.api.dsl.DSLSupport.SpecializationDataNode;
import com.oracle.truffle.api.dsl.InlineSupport.InlineTarget;
import com.oracle.truffle.api.dsl.InlineSupport.ReferenceField;
import com.oracle.truffle.api.dsl.InlineSupport.StateField;
import com.oracle.truffle.api.dsl.InlineSupport.UnsafeAccessedField;
import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.interop.InteropLibrary;
import com.oracle.truffle.api.library.LibraryFactory;
import com.oracle.truffle.api.nodes.DenyReplace;
import com.oracle.truffle.api.nodes.Node;
import com.oracle.truffle.api.nodes.NodeCost;
import com.oracle.truffle.api.profiles.InlinedBranchProfile;
import com.oracle.truffle.api.profiles.InlinedConditionProfile;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.VarHandle;
import java.lang.invoke.MethodHandles.Lookup;
import java.util.Objects;
/**
* Debug Info:
* Specialization {@link RaiseNode#reraise}
* Activation probability: 0.21250
* With/without class size: 9/9 bytes
* Specialization {@link RaiseNode#doRaise(VirtualFrame, PBaseException, PNone, boolean)}
* Activation probability: 0.18750
* With/without class size: 6/0 bytes
* Specialization {@link RaiseNode#doRaiseNative(VirtualFrame, PythonAbstractNativeObject, PNone, boolean, Node, PyExceptionInstanceCheckNode)}
* Activation probability: 0.16250
* With/without class size: 6/0 bytes
* Specialization {@link RaiseNode#doRaise(VirtualFrame, PBaseException, Object, boolean, SetExceptionCauseNode)}
* Activation probability: 0.13750
* With/without class size: 5/0 bytes
* Specialization {@link RaiseNode#doRaiseNative(VirtualFrame, PythonAbstractNativeObject, Object, boolean, Node, PyExceptionInstanceCheckNode, SetExceptionCauseNode)}
* Activation probability: 0.11250
* With/without class size: 5/0 bytes
* Specialization {@link RaiseNode#doRaise(VirtualFrame, Object, PNone, boolean, Node, IsTypeNode, ValidExceptionNode, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, Lazy)}
* Activation probability: 0.08750
* With/without class size: 7/28 bytes
* Specialization {@link RaiseNode#doRaise(VirtualFrame, Object, Object, boolean, Node, IsTypeNode, ValidExceptionNode, Lazy, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, SetExceptionCauseNode)}
* Activation probability: 0.06250
* With/without class size: 7/32 bytes
* Specialization {@link RaiseNode#doRaise(VirtualFrame, Object, Object, boolean, Node, InteropLibrary, Lazy)}
* Activation probability: 0.03750
* With/without class size: 5/9 bytes
*
*/
@GeneratedBy(RaiseNode.class)
@SuppressWarnings({"javadoc", "unused"})
public final class RaiseNodeGen extends RaiseNode {
private static final StateField STATE_1_UPDATER = StateField.create(MethodHandles.lookup(), "state_1_");
private static final StateField STATE_0_RaiseNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField RAISE2__RAISE_NODE_RAISE2_STATE_0_UPDATER = StateField.create(Raise2Data.lookup_(), "raise2_state_0_");
private static final StateField RAISE3__RAISE_NODE_RAISE3_STATE_0_UPDATER = StateField.create(Raise3Data.lookup_(), "raise3_state_0_");
private static final StateField FALLBACK__RAISE_NODE_FALLBACK_STATE_0_UPDATER = StateField.create(FallbackData.lookup_(), "fallback_state_0_");
static final ReferenceField RAISE2_CACHE_UPDATER = ReferenceField.create(MethodHandles.lookup(), "raise2_cache", Raise2Data.class);
static final ReferenceField RAISE3_CACHE_UPDATER = ReferenceField.create(MethodHandles.lookup(), "raise3_cache", Raise3Data.class);
/**
* Source Info:
* Specialization: {@link RaiseNode#doRaiseNative(VirtualFrame, PythonAbstractNativeObject, PNone, boolean, Node, PyExceptionInstanceCheckNode)}
* Parameter: {@link PyExceptionInstanceCheckNode} check
* Inline method: {@link PyExceptionInstanceCheckNodeGen#inline}
*/
private static final PyExceptionInstanceCheckNode INLINED_CHECK = PyExceptionInstanceCheckNodeGen.inline(InlineTarget.create(PyExceptionInstanceCheckNode.class, STATE_1_UPDATER.subUpdater(0, 19), ReferenceField.create(MethodHandles.lookup(), "check_field1_", Node.class), ReferenceField.create(MethodHandles.lookup(), "check_field2_", Node.class)));
/**
* Source Info:
* Specialization: {@link RaiseNode#reraise}
* Parameter: {@link Lazy} raise
* Inline method: {@link LazyNodeGen#inline}
*/
private static final Lazy INLINED_RERAISE_RAISE_ = LazyNodeGen.inline(InlineTarget.create(Lazy.class, STATE_0_RaiseNode_UPDATER.subUpdater(10, 1), ReferenceField.create(MethodHandles.lookup(), "reraise_raise__field1_", Node.class)));
/**
* Source Info:
* Specialization: {@link RaiseNode#reraise}
* Parameter: {@link InlinedConditionProfile} hasCurrentException
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_RERAISE_HAS_CURRENT_EXCEPTION_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_RaiseNode_UPDATER.subUpdater(11, 2)));
/**
* Source Info:
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, Object, PNone, boolean, Node, IsTypeNode, ValidExceptionNode, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, Lazy)}
* Parameter: {@link IsTypeNode} isTypeNode
* Inline method: {@link IsTypeNodeGen#inline}
*/
private static final IsTypeNode INLINED_RAISE2_IS_TYPE_NODE_ = IsTypeNodeGen.inline(InlineTarget.create(IsTypeNode.class, RAISE2__RAISE_NODE_RAISE2_STATE_0_UPDATER.subUpdater(2, 5), ReferenceField.create(Raise2Data.lookup_(), "raise2_isTypeNode__field1_", Node.class)));
/**
* Source Info:
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, Object, PNone, boolean, Node, IsTypeNode, ValidExceptionNode, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, Lazy)}
* Parameter: {@link PyExceptionInstanceCheckNode} check
* Inline method: {@link PyExceptionInstanceCheckNodeGen#inline}
*/
private static final PyExceptionInstanceCheckNode INLINED_RAISE2_CHECK_ = PyExceptionInstanceCheckNodeGen.inline(InlineTarget.create(PyExceptionInstanceCheckNode.class, RAISE2__RAISE_NODE_RAISE2_STATE_0_UPDATER.subUpdater(7, 19), ReferenceField.create(Raise2Data.lookup_(), "raise2_check__field1_", Node.class), ReferenceField.create(Raise2Data.lookup_(), "raise2_check__field2_", Node.class)));
/**
* Source Info:
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, Object, PNone, boolean, Node, IsTypeNode, ValidExceptionNode, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, Lazy)}
* Parameter: {@link InlinedBranchProfile} baseCheckFailedProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private static final InlinedBranchProfile INLINED_RAISE2_BASE_CHECK_FAILED_PROFILE_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, RAISE2__RAISE_NODE_RAISE2_STATE_0_UPDATER.subUpdater(26, 1)));
/**
* Source Info:
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, Object, PNone, boolean, Node, IsTypeNode, ValidExceptionNode, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, Lazy)}
* Parameter: {@link Lazy} raise
* Inline method: {@link LazyNodeGen#inline}
*/
private static final Lazy INLINED_RAISE2_RAISE_ = LazyNodeGen.inline(InlineTarget.create(Lazy.class, RAISE2__RAISE_NODE_RAISE2_STATE_0_UPDATER.subUpdater(27, 1), ReferenceField.create(Raise2Data.lookup_(), "raise2_raise__field1_", Node.class)));
/**
* Source Info:
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, Object, Object, boolean, Node, IsTypeNode, ValidExceptionNode, Lazy, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, SetExceptionCauseNode)}
* Parameter: {@link IsTypeNode} isTypeNode
* Inline method: {@link IsTypeNodeGen#inline}
*/
private static final IsTypeNode INLINED_RAISE3_IS_TYPE_NODE_ = IsTypeNodeGen.inline(InlineTarget.create(IsTypeNode.class, RAISE3__RAISE_NODE_RAISE3_STATE_0_UPDATER.subUpdater(2, 5), ReferenceField.create(Raise3Data.lookup_(), "raise3_isTypeNode__field1_", Node.class)));
/**
* Source Info:
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, Object, Object, boolean, Node, IsTypeNode, ValidExceptionNode, Lazy, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, SetExceptionCauseNode)}
* Parameter: {@link Lazy} raise
* Inline method: {@link LazyNodeGen#inline}
*/
private static final Lazy INLINED_RAISE3_RAISE_ = LazyNodeGen.inline(InlineTarget.create(Lazy.class, RAISE3__RAISE_NODE_RAISE3_STATE_0_UPDATER.subUpdater(7, 1), ReferenceField.create(Raise3Data.lookup_(), "raise3_raise__field1_", Node.class)));
/**
* Source Info:
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, Object, Object, boolean, Node, IsTypeNode, ValidExceptionNode, Lazy, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, SetExceptionCauseNode)}
* Parameter: {@link PyExceptionInstanceCheckNode} check
* Inline method: {@link PyExceptionInstanceCheckNodeGen#inline}
*/
private static final PyExceptionInstanceCheckNode INLINED_RAISE3_CHECK_ = PyExceptionInstanceCheckNodeGen.inline(InlineTarget.create(PyExceptionInstanceCheckNode.class, RAISE3__RAISE_NODE_RAISE3_STATE_0_UPDATER.subUpdater(8, 19), ReferenceField.create(Raise3Data.lookup_(), "raise3_check__field1_", Node.class), ReferenceField.create(Raise3Data.lookup_(), "raise3_check__field2_", Node.class)));
/**
* Source Info:
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, Object, Object, boolean, Node, IsTypeNode, ValidExceptionNode, Lazy, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, SetExceptionCauseNode)}
* Parameter: {@link InlinedBranchProfile} baseCheckFailedProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private static final InlinedBranchProfile INLINED_RAISE3_BASE_CHECK_FAILED_PROFILE_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, RAISE3__RAISE_NODE_RAISE3_STATE_0_UPDATER.subUpdater(27, 1)));
/**
* Source Info:
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, Object, Object, boolean, Node, InteropLibrary, Lazy)}
* Parameter: {@link Lazy} raise
* Inline method: {@link LazyNodeGen#inline}
*/
private static final Lazy INLINED_FALLBACK_RAISE_ = LazyNodeGen.inline(InlineTarget.create(Lazy.class, FALLBACK__RAISE_NODE_FALLBACK_STATE_0_UPDATER.subUpdater(0, 1), ReferenceField.create(FallbackData.lookup_(), "fallback_raise__field1_", Node.class)));
private static final LibraryFactory INTEROP_LIBRARY_ = LibraryFactory.resolve(InteropLibrary.class);
/**
* State Info:
* 0: SpecializationActive {@link RaiseNode#reraise}
* 1: SpecializationActive {@link RaiseNode#doRaise(VirtualFrame, PBaseException, PNone, boolean)}
* 2: SpecializationActive {@link RaiseNode#doRaiseNative(VirtualFrame, PythonAbstractNativeObject, PNone, boolean, Node, PyExceptionInstanceCheckNode)}
* 3: GuardActive[guardIndex=0] {@link RaiseNode#doRaiseNative(VirtualFrame, PythonAbstractNativeObject, PNone, boolean, Node, PyExceptionInstanceCheckNode)}
* 4: SpecializationActive {@link RaiseNode#doRaise(VirtualFrame, PBaseException, Object, boolean, SetExceptionCauseNode)}
* 5: SpecializationActive {@link RaiseNode#doRaiseNative(VirtualFrame, PythonAbstractNativeObject, Object, boolean, Node, PyExceptionInstanceCheckNode, SetExceptionCauseNode)}
* 6: GuardActive[guardIndex=0] {@link RaiseNode#doRaiseNative(VirtualFrame, PythonAbstractNativeObject, Object, boolean, Node, PyExceptionInstanceCheckNode, SetExceptionCauseNode)}
* 7: SpecializationActive {@link RaiseNode#doRaise(VirtualFrame, Object, PNone, boolean, Node, IsTypeNode, ValidExceptionNode, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, Lazy)}
* 8: SpecializationActive {@link RaiseNode#doRaise(VirtualFrame, Object, Object, boolean, Node, IsTypeNode, ValidExceptionNode, Lazy, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, SetExceptionCauseNode)}
* 9: SpecializationActive {@link RaiseNode#doRaise(VirtualFrame, Object, Object, boolean, Node, InteropLibrary, Lazy)}
* 10: InlinedCache
* Specialization: {@link RaiseNode#reraise}
* Parameter: {@link Lazy} raise
* Inline method: {@link LazyNodeGen#inline}
* 11-12: InlinedCache
* Specialization: {@link RaiseNode#reraise}
* Parameter: {@link InlinedConditionProfile} hasCurrentException
* Inline method: {@link InlinedConditionProfile#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* State Info:
* 0-18: InlinedCache
* Specialization: {@link RaiseNode#doRaiseNative(VirtualFrame, PythonAbstractNativeObject, PNone, boolean, Node, PyExceptionInstanceCheckNode)}
* Parameter: {@link PyExceptionInstanceCheckNode} check
* Inline method: {@link PyExceptionInstanceCheckNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_1_;
/**
* Source Info:
* Specialization: {@link RaiseNode#doRaiseNative(VirtualFrame, PythonAbstractNativeObject, PNone, boolean, Node, PyExceptionInstanceCheckNode)}
* Parameter: {@link PyExceptionInstanceCheckNode} check
* Inline method: {@link PyExceptionInstanceCheckNodeGen#inline}
* Inline field: {@link Node} field1
*/
@Child @UnsafeAccessedField @SuppressWarnings("unused") private Node check_field1_;
/**
* Source Info:
* Specialization: {@link RaiseNode#doRaiseNative(VirtualFrame, PythonAbstractNativeObject, PNone, boolean, Node, PyExceptionInstanceCheckNode)}
* Parameter: {@link PyExceptionInstanceCheckNode} check
* Inline method: {@link PyExceptionInstanceCheckNodeGen#inline}
* Inline field: {@link Node} field2
*/
@Child @UnsafeAccessedField @SuppressWarnings("unused") private Node check_field2_;
/**
* Source Info:
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, PBaseException, Object, boolean, SetExceptionCauseNode)}
* Parameter: {@link SetExceptionCauseNode} setExceptionCauseNode
*/
@Child private SetExceptionCauseNode setExceptionCauseNode;
/**
* Source Info:
* Specialization: {@link RaiseNode#reraise}
* Parameter: {@link Lazy} raise
* Inline method: {@link LazyNodeGen#inline}
* Inline field: {@link Node} field1
*/
@Child @UnsafeAccessedField @SuppressWarnings("unused") private Node reraise_raise__field1_;
/**
* Source Info:
* Specialization: {@link RaiseNode#reraise}
* Parameter: {@link GetCaughtExceptionNode} getCaughtExceptionNode
*/
@Child private GetCaughtExceptionNode reraise_getCaughtExceptionNode_;
@UnsafeAccessedField @Child private Raise2Data raise2_cache;
@UnsafeAccessedField @Child private Raise3Data raise3_cache;
@Child private FallbackData fallback_cache;
private RaiseNodeGen() {
}
@SuppressWarnings("static-method")
private boolean fallbackGuard_(int state_0, Object arg0Value, Object arg1Value, boolean arg2Value) {
if (arg0Value instanceof PNone) {
PNone arg0Value_ = (PNone) arg0Value;
if ((PGuards.isNoValue(arg0Value_))) {
return false;
}
}
if (arg1Value instanceof PNone) {
if (arg0Value instanceof PBaseException) {
PNone arg1Value_ = (PNone) arg1Value;
if ((PGuards.isNoValue(arg1Value_))) {
return false;
}
}
if (arg0Value instanceof PythonAbstractNativeObject) {
PythonAbstractNativeObject arg0Value_ = (PythonAbstractNativeObject) arg0Value;
Node inliningTarget__ = (this);
PyExceptionInstanceCheckNode check_ = INLINED_CHECK;
if ((((state_0 & 0b1000)) == 0 /* is-not GuardActive[specialization=RaiseNode.doRaiseNative(VirtualFrame, PythonAbstractNativeObject, PNone, boolean, Node, PyExceptionInstanceCheckNode), guardIndex=0] */ || inliningTarget__ == null || check_ == null || (check_.execute(inliningTarget__, arg0Value_)))) {
PNone arg1Value_ = (PNone) arg1Value;
if ((((state_0 & 0b1000)) == 0 /* is-not GuardActive[specialization=RaiseNode.doRaiseNative(VirtualFrame, PythonAbstractNativeObject, PNone, boolean, Node, PyExceptionInstanceCheckNode), guardIndex=0] */ || (PGuards.isNoValue(arg1Value_)))) {
return false;
}
}
}
}
if (!((state_0 & 0b10000) != 0 /* is SpecializationActive[RaiseNode.doRaise(VirtualFrame, PBaseException, Object, boolean, SetExceptionCauseNode)] */) && arg0Value instanceof PBaseException && (!(PGuards.isNoValue(arg1Value)))) {
return false;
}
if (arg0Value instanceof PythonAbstractNativeObject) {
PythonAbstractNativeObject arg0Value_ = (PythonAbstractNativeObject) arg0Value;
Node inliningTarget__1 = (this);
PyExceptionInstanceCheckNode check_1 = INLINED_CHECK;
if ((((state_0 & 0b1000000)) == 0 /* is-not GuardActive[specialization=RaiseNode.doRaiseNative(VirtualFrame, PythonAbstractNativeObject, Object, boolean, Node, PyExceptionInstanceCheckNode, SetExceptionCauseNode), guardIndex=0] */ || inliningTarget__1 == null || check_1 == null || (check_1.execute(inliningTarget__1, arg0Value_)))) {
if ((((state_0 & 0b1000000)) == 0 /* is-not GuardActive[specialization=RaiseNode.doRaiseNative(VirtualFrame, PythonAbstractNativeObject, Object, boolean, Node, PyExceptionInstanceCheckNode, SetExceptionCauseNode), guardIndex=0] */ || (!(PGuards.isNoValue(arg1Value))))) {
return false;
}
}
}
if (arg1Value instanceof PNone) {
Raise2Data s5_ = this.raise2_cache;
if ((s5_ == null || ((s5_.raise2_state_0_ & 0b1)) == 0 /* is-not GuardActive[specialization=RaiseNode.doRaise(VirtualFrame, Object, PNone, boolean, Node, IsTypeNode, ValidExceptionNode, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, Lazy), guardIndex=0] */ || (INLINED_RAISE2_IS_TYPE_NODE_.execute(s5_, arg0Value)))) {
PNone arg1Value_ = (PNone) arg1Value;
if ((s5_ == null || ((s5_.raise2_state_0_ & 0b1)) == 0 /* is-not GuardActive[specialization=RaiseNode.doRaise(VirtualFrame, Object, PNone, boolean, Node, IsTypeNode, ValidExceptionNode, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, Lazy), guardIndex=0] */ || (PGuards.isNoValue(arg1Value_)))) {
return false;
}
}
}
{
Raise3Data s6_ = this.raise3_cache;
if ((s6_ == null || ((s6_.raise3_state_0_ & 0b1)) == 0 /* is-not GuardActive[specialization=RaiseNode.doRaise(VirtualFrame, Object, Object, boolean, Node, IsTypeNode, ValidExceptionNode, Lazy, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, SetExceptionCauseNode), guardIndex=0] */ || (INLINED_RAISE3_IS_TYPE_NODE_.execute(s6_, arg0Value))) && (s6_ == null || ((s6_.raise3_state_0_ & 0b1)) == 0 /* is-not GuardActive[specialization=RaiseNode.doRaise(VirtualFrame, Object, Object, boolean, Node, IsTypeNode, ValidExceptionNode, Lazy, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, SetExceptionCauseNode), guardIndex=0] */ || (!(PGuards.isNoValue(arg1Value))))) {
return false;
}
}
return true;
}
@Override
public void execute(VirtualFrame frameValue, Object arg0Value, Object arg1Value, boolean arg2Value) {
int state_0 = this.state_0_;
if ((state_0 & 0b1110110111) != 0 /* is SpecializationActive[RaiseNode.reraise(VirtualFrame, PNone, Object, boolean, Node, Lazy, GetCaughtExceptionNode, InlinedConditionProfile)] || SpecializationActive[RaiseNode.doRaise(VirtualFrame, PBaseException, PNone, boolean)] || SpecializationActive[RaiseNode.doRaiseNative(VirtualFrame, PythonAbstractNativeObject, PNone, boolean, Node, PyExceptionInstanceCheckNode)] || SpecializationActive[RaiseNode.doRaise(VirtualFrame, PBaseException, Object, boolean, SetExceptionCauseNode)] || SpecializationActive[RaiseNode.doRaiseNative(VirtualFrame, PythonAbstractNativeObject, Object, boolean, Node, PyExceptionInstanceCheckNode, SetExceptionCauseNode)] || SpecializationActive[RaiseNode.doRaise(VirtualFrame, Object, PNone, boolean, Node, IsTypeNode, ValidExceptionNode, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, Lazy)] || SpecializationActive[RaiseNode.doRaise(VirtualFrame, Object, Object, boolean, Node, IsTypeNode, ValidExceptionNode, Lazy, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, SetExceptionCauseNode)] || SpecializationActive[RaiseNode.doRaise(VirtualFrame, Object, Object, boolean, Node, InteropLibrary, Lazy)] */) {
if ((state_0 & 0b1) != 0 /* is SpecializationActive[RaiseNode.reraise(VirtualFrame, PNone, Object, boolean, Node, Lazy, GetCaughtExceptionNode, InlinedConditionProfile)] */ && arg0Value instanceof PNone) {
PNone arg0Value_ = (PNone) arg0Value;
{
GetCaughtExceptionNode getCaughtExceptionNode__ = this.reraise_getCaughtExceptionNode_;
if (getCaughtExceptionNode__ != null) {
if ((PGuards.isNoValue(arg0Value_))) {
Node inliningTarget__2 = (this);
RaiseNode.reraise(frameValue, arg0Value_, arg1Value, arg2Value, inliningTarget__2, INLINED_RERAISE_RAISE_, getCaughtExceptionNode__, INLINED_RERAISE_HAS_CURRENT_EXCEPTION_);
return;
}
}
}
}
if ((state_0 & 0b110) != 0 /* is SpecializationActive[RaiseNode.doRaise(VirtualFrame, PBaseException, PNone, boolean)] || SpecializationActive[RaiseNode.doRaiseNative(VirtualFrame, PythonAbstractNativeObject, PNone, boolean, Node, PyExceptionInstanceCheckNode)] */ && arg1Value instanceof PNone) {
PNone arg1Value_ = (PNone) arg1Value;
if ((state_0 & 0b10) != 0 /* is SpecializationActive[RaiseNode.doRaise(VirtualFrame, PBaseException, PNone, boolean)] */ && arg0Value instanceof PBaseException) {
PBaseException arg0Value_ = (PBaseException) arg0Value;
if ((PGuards.isNoValue(arg1Value_))) {
doRaise(frameValue, arg0Value_, arg1Value_, arg2Value);
return;
}
}
if ((state_0 & 0b100) != 0 /* is SpecializationActive[RaiseNode.doRaiseNative(VirtualFrame, PythonAbstractNativeObject, PNone, boolean, Node, PyExceptionInstanceCheckNode)] */ && arg0Value instanceof PythonAbstractNativeObject) {
PythonAbstractNativeObject arg0Value_ = (PythonAbstractNativeObject) arg0Value;
{
Node inliningTarget__ = (this);
if ((INLINED_CHECK.execute(inliningTarget__, arg0Value_)) && (PGuards.isNoValue(arg1Value_))) {
doRaiseNative(frameValue, arg0Value_, arg1Value_, arg2Value, inliningTarget__, INLINED_CHECK);
return;
}
}
}
}
if ((state_0 & 0b110000) != 0 /* is SpecializationActive[RaiseNode.doRaise(VirtualFrame, PBaseException, Object, boolean, SetExceptionCauseNode)] || SpecializationActive[RaiseNode.doRaiseNative(VirtualFrame, PythonAbstractNativeObject, Object, boolean, Node, PyExceptionInstanceCheckNode, SetExceptionCauseNode)] */) {
if ((state_0 & 0b10000) != 0 /* is SpecializationActive[RaiseNode.doRaise(VirtualFrame, PBaseException, Object, boolean, SetExceptionCauseNode)] */ && arg0Value instanceof PBaseException) {
PBaseException arg0Value_ = (PBaseException) arg0Value;
{
SetExceptionCauseNode setExceptionCauseNode_ = this.setExceptionCauseNode;
if (setExceptionCauseNode_ != null) {
if ((!(PGuards.isNoValue(arg1Value)))) {
doRaise(frameValue, arg0Value_, arg1Value, arg2Value, setExceptionCauseNode_);
return;
}
}
}
}
if ((state_0 & 0b100000) != 0 /* is SpecializationActive[RaiseNode.doRaiseNative(VirtualFrame, PythonAbstractNativeObject, Object, boolean, Node, PyExceptionInstanceCheckNode, SetExceptionCauseNode)] */ && arg0Value instanceof PythonAbstractNativeObject) {
PythonAbstractNativeObject arg0Value_ = (PythonAbstractNativeObject) arg0Value;
{
SetExceptionCauseNode setExceptionCauseNode_1 = this.setExceptionCauseNode;
if (setExceptionCauseNode_1 != null) {
Node inliningTarget__1 = (this);
if ((INLINED_CHECK.execute(inliningTarget__1, arg0Value_)) && (!(PGuards.isNoValue(arg1Value)))) {
doRaiseNative(frameValue, arg0Value_, arg1Value, arg2Value, inliningTarget__1, INLINED_CHECK, setExceptionCauseNode_1);
return;
}
}
}
}
}
if ((state_0 & 0b1110000000) != 0 /* is SpecializationActive[RaiseNode.doRaise(VirtualFrame, Object, PNone, boolean, Node, IsTypeNode, ValidExceptionNode, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, Lazy)] || SpecializationActive[RaiseNode.doRaise(VirtualFrame, Object, Object, boolean, Node, IsTypeNode, ValidExceptionNode, Lazy, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, SetExceptionCauseNode)] || SpecializationActive[RaiseNode.doRaise(VirtualFrame, Object, Object, boolean, Node, InteropLibrary, Lazy)] */) {
if ((state_0 & 0b10000000) != 0 /* is SpecializationActive[RaiseNode.doRaise(VirtualFrame, Object, PNone, boolean, Node, IsTypeNode, ValidExceptionNode, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, Lazy)] */ && arg1Value instanceof PNone) {
PNone arg1Value_ = (PNone) arg1Value;
Raise2Data s5_ = this.raise2_cache;
if (s5_ != null) {
if ((s5_.raise2_state_0_ & 0b10) != 0 /* is SpecializationCachesInitialized */ && (INLINED_RAISE2_IS_TYPE_NODE_.execute(s5_, arg0Value)) && (PGuards.isNoValue(arg1Value_))) {
Node inliningTarget__3 = (s5_);
doRaise(frameValue, arg0Value, arg1Value_, arg2Value, inliningTarget__3, INLINED_RAISE2_IS_TYPE_NODE_, s5_.validException_, s5_.callConstructor_, INLINED_RAISE2_CHECK_, INLINED_RAISE2_BASE_CHECK_FAILED_PROFILE_, INLINED_RAISE2_RAISE_);
return;
}
}
}
if ((state_0 & 0b1100000000) != 0 /* is SpecializationActive[RaiseNode.doRaise(VirtualFrame, Object, Object, boolean, Node, IsTypeNode, ValidExceptionNode, Lazy, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, SetExceptionCauseNode)] || SpecializationActive[RaiseNode.doRaise(VirtualFrame, Object, Object, boolean, Node, InteropLibrary, Lazy)] */) {
if ((state_0 & 0b100000000) != 0 /* is SpecializationActive[RaiseNode.doRaise(VirtualFrame, Object, Object, boolean, Node, IsTypeNode, ValidExceptionNode, Lazy, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, SetExceptionCauseNode)] */) {
Raise3Data s6_ = this.raise3_cache;
if (s6_ != null) {
if ((s6_.raise3_state_0_ & 0b10) != 0 /* is SpecializationCachesInitialized */ && (INLINED_RAISE3_IS_TYPE_NODE_.execute(s6_, arg0Value)) && (!(PGuards.isNoValue(arg1Value)))) {
Node inliningTarget__4 = (s6_);
doRaise(frameValue, arg0Value, arg1Value, arg2Value, inliningTarget__4, INLINED_RAISE3_IS_TYPE_NODE_, s6_.validException_, INLINED_RAISE3_RAISE_, s6_.callConstructor_, INLINED_RAISE3_CHECK_, INLINED_RAISE3_BASE_CHECK_FAILED_PROFILE_, s6_.setExceptionCauseNode_);
return;
}
}
}
if ((state_0 & 0b1000000000) != 0 /* is SpecializationActive[RaiseNode.doRaise(VirtualFrame, Object, Object, boolean, Node, InteropLibrary, Lazy)] */) {
FallbackData s7_ = this.fallback_cache;
if (s7_ != null) {
{
Node inliningTarget__5 = (s7_);
if (fallbackGuard_(state_0, arg0Value, arg1Value, arg2Value)) {
RaiseNode.doRaise(frameValue, arg0Value, arg1Value, arg2Value, inliningTarget__5, s7_.lib_, INLINED_FALLBACK_RAISE_);
return;
}
}
}
}
}
}
}
CompilerDirectives.transferToInterpreterAndInvalidate();
executeAndSpecialize(frameValue, arg0Value, arg1Value, arg2Value);
return;
}
private void executeAndSpecialize(VirtualFrame frameValue, Object arg0Value, Object arg1Value, boolean arg2Value) {
int state_0 = this.state_0_;
{
Node inliningTarget__2 = null;
if (arg0Value instanceof PNone) {
PNone arg0Value_ = (PNone) arg0Value;
if ((PGuards.isNoValue(arg0Value_))) {
inliningTarget__2 = (this);
GetCaughtExceptionNode getCaughtExceptionNode__ = this.insert((GetCaughtExceptionNode.create()));
Objects.requireNonNull(getCaughtExceptionNode__, "Specialization 'reraise(VirtualFrame, PNone, Object, boolean, Node, Lazy, GetCaughtExceptionNode, InlinedConditionProfile)' cache 'getCaughtExceptionNode' 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.reraise_getCaughtExceptionNode_ = getCaughtExceptionNode__;
state_0 = state_0 | 0b1 /* add SpecializationActive[RaiseNode.reraise(VirtualFrame, PNone, Object, boolean, Node, Lazy, GetCaughtExceptionNode, InlinedConditionProfile)] */;
this.state_0_ = state_0;
RaiseNode.reraise(frameValue, arg0Value_, arg1Value, arg2Value, inliningTarget__2, INLINED_RERAISE_RAISE_, getCaughtExceptionNode__, INLINED_RERAISE_HAS_CURRENT_EXCEPTION_);
return;
}
}
}
if (arg1Value instanceof PNone) {
PNone arg1Value_ = (PNone) arg1Value;
if (arg0Value instanceof PBaseException) {
PBaseException arg0Value_ = (PBaseException) arg0Value;
if ((PGuards.isNoValue(arg1Value_))) {
state_0 = state_0 | 0b10 /* add SpecializationActive[RaiseNode.doRaise(VirtualFrame, PBaseException, PNone, boolean)] */;
this.state_0_ = state_0;
doRaise(frameValue, arg0Value_, arg1Value_, arg2Value);
return;
}
}
{
Node inliningTarget__ = null;
if (arg0Value instanceof PythonAbstractNativeObject) {
PythonAbstractNativeObject arg0Value_ = (PythonAbstractNativeObject) arg0Value;
{
inliningTarget__ = (this);
if (((state_0 & 0b1000)) == 0 /* is-not GuardActive[specialization=RaiseNode.doRaiseNative(VirtualFrame, PythonAbstractNativeObject, PNone, boolean, Node, PyExceptionInstanceCheckNode), guardIndex=0] */) {
state_0 = state_0 | 0b1000 /* add GuardActive[specialization=RaiseNode.doRaiseNative(VirtualFrame, PythonAbstractNativeObject, PNone, boolean, Node, PyExceptionInstanceCheckNode), guardIndex=0] */;
}
if ((INLINED_CHECK.execute(inliningTarget__, arg0Value_)) && (PGuards.isNoValue(arg1Value_))) {
state_0 = state_0 | 0b100 /* add SpecializationActive[RaiseNode.doRaiseNative(VirtualFrame, PythonAbstractNativeObject, PNone, boolean, Node, PyExceptionInstanceCheckNode)] */;
this.state_0_ = state_0;
doRaiseNative(frameValue, arg0Value_, arg1Value_, arg2Value, inliningTarget__, INLINED_CHECK);
return;
}
}
}
}
}
if (arg0Value instanceof PBaseException) {
PBaseException arg0Value_ = (PBaseException) arg0Value;
if ((!(PGuards.isNoValue(arg1Value)))) {
SetExceptionCauseNode setExceptionCauseNode_;
SetExceptionCauseNode setExceptionCauseNode__shared = this.setExceptionCauseNode;
if (setExceptionCauseNode__shared != null) {
setExceptionCauseNode_ = setExceptionCauseNode__shared;
} else {
setExceptionCauseNode_ = this.insert((SetExceptionCauseNodeGen.create()));
if (setExceptionCauseNode_ == null) {
throw new IllegalStateException("Specialization 'doRaise(VirtualFrame, PBaseException, Object, boolean, SetExceptionCauseNode)' contains a shared cache with name 'setExceptionCauseNode' that returned a default value for the cached initializer. Default values are not supported for shared cached initializers because the default value is reserved for the uninitialized state.");
}
}
if (this.setExceptionCauseNode == null) {
VarHandle.storeStoreFence();
this.setExceptionCauseNode = setExceptionCauseNode_;
}
state_0 = state_0 | 0b10000 /* add SpecializationActive[RaiseNode.doRaise(VirtualFrame, PBaseException, Object, boolean, SetExceptionCauseNode)] */;
this.state_0_ = state_0;
doRaise(frameValue, arg0Value_, arg1Value, arg2Value, setExceptionCauseNode_);
return;
}
}
{
Node inliningTarget__1 = null;
if (arg0Value instanceof PythonAbstractNativeObject) {
PythonAbstractNativeObject arg0Value_ = (PythonAbstractNativeObject) arg0Value;
{
inliningTarget__1 = (this);
if (((state_0 & 0b1000000)) == 0 /* is-not GuardActive[specialization=RaiseNode.doRaiseNative(VirtualFrame, PythonAbstractNativeObject, Object, boolean, Node, PyExceptionInstanceCheckNode, SetExceptionCauseNode), guardIndex=0] */) {
state_0 = state_0 | 0b1000000 /* add GuardActive[specialization=RaiseNode.doRaiseNative(VirtualFrame, PythonAbstractNativeObject, Object, boolean, Node, PyExceptionInstanceCheckNode, SetExceptionCauseNode), guardIndex=0] */;
}
if ((INLINED_CHECK.execute(inliningTarget__1, arg0Value_)) && (!(PGuards.isNoValue(arg1Value)))) {
SetExceptionCauseNode setExceptionCauseNode_1;
SetExceptionCauseNode setExceptionCauseNode_1_shared = this.setExceptionCauseNode;
if (setExceptionCauseNode_1_shared != null) {
setExceptionCauseNode_1 = setExceptionCauseNode_1_shared;
} else {
setExceptionCauseNode_1 = this.insert((SetExceptionCauseNodeGen.create()));
if (setExceptionCauseNode_1 == null) {
throw new IllegalStateException("Specialization 'doRaiseNative(VirtualFrame, PythonAbstractNativeObject, Object, boolean, Node, PyExceptionInstanceCheckNode, SetExceptionCauseNode)' contains a shared cache with name 'setExceptionCauseNode' that returned a default value for the cached initializer. Default values are not supported for shared cached initializers because the default value is reserved for the uninitialized state.");
}
}
if (this.setExceptionCauseNode == null) {
VarHandle.storeStoreFence();
this.setExceptionCauseNode = setExceptionCauseNode_1;
}
state_0 = state_0 | 0b100000 /* add SpecializationActive[RaiseNode.doRaiseNative(VirtualFrame, PythonAbstractNativeObject, Object, boolean, Node, PyExceptionInstanceCheckNode, SetExceptionCauseNode)] */;
this.state_0_ = state_0;
doRaiseNative(frameValue, arg0Value_, arg1Value, arg2Value, inliningTarget__1, INLINED_CHECK, setExceptionCauseNode_1);
return;
}
}
}
}
{
Node inliningTarget__3 = null;
if (arg1Value instanceof PNone) {
PNone arg1Value_ = (PNone) arg1Value;
while (true) {
int count5_ = 0;
Raise2Data s5_ = RAISE2_CACHE_UPDATER.getVolatile(this);
Raise2Data s5_original = s5_;
while (s5_ != null) {
if ((s5_.raise2_state_0_ & 0b10) != 0 /* is SpecializationCachesInitialized */ && (INLINED_RAISE2_IS_TYPE_NODE_.execute(s5_, arg0Value)) && (PGuards.isNoValue(arg1Value_))) {
inliningTarget__3 = (s5_);
break;
}
if ((s5_.raise2_state_0_ & 0b10) != 0 /* is SpecializationCachesInitialized */) {
count5_++;
}
s5_ = null;
break;
}
if (s5_ == null && count5_ < 1) {
{
s5_ = this.insert(new Raise2Data());
if (((s5_.raise2_state_0_ & 0b1)) == 0 /* is-not GuardActive[specialization=RaiseNode.doRaise(VirtualFrame, Object, PNone, boolean, Node, IsTypeNode, ValidExceptionNode, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, Lazy), guardIndex=0] */) {
s5_.raise2_state_0_ = s5_.raise2_state_0_ | 0b1 /* add GuardActive[specialization=RaiseNode.doRaise(VirtualFrame, Object, PNone, boolean, Node, IsTypeNode, ValidExceptionNode, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, Lazy), guardIndex=0] */;
if (!RAISE2_CACHE_UPDATER.compareAndSet(this, s5_original, s5_)) {
continue;
}
s5_original = s5_;
s5_ = this.insert(new Raise2Data(s5_));
}
if ((INLINED_RAISE2_IS_TYPE_NODE_.execute(s5_, arg0Value)) && (PGuards.isNoValue(arg1Value_))) {
inliningTarget__3 = (s5_);
ValidExceptionNode validException__ = s5_.insert((ValidExceptionNodeGen.create()));
Objects.requireNonNull(validException__, "Specialization 'doRaise(VirtualFrame, Object, PNone, boolean, Node, IsTypeNode, ValidExceptionNode, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, Lazy)' cache 'validException' 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'.");
s5_.validException_ = validException__;
CallNode callConstructor__ = s5_.insert((CallNode.create()));
Objects.requireNonNull(callConstructor__, "Specialization 'doRaise(VirtualFrame, Object, PNone, boolean, Node, IsTypeNode, ValidExceptionNode, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, Lazy)' cache 'callConstructor' 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'.");
s5_.callConstructor_ = callConstructor__;
s5_.raise2_state_0_ = s5_.raise2_state_0_ | 0b10 /* add SpecializationCachesInitialized */;
if (!RAISE2_CACHE_UPDATER.compareAndSet(this, s5_original, s5_)) {
continue;
}
state_0 = state_0 | 0b10000000 /* add SpecializationActive[RaiseNode.doRaise(VirtualFrame, Object, PNone, boolean, Node, IsTypeNode, ValidExceptionNode, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, Lazy)] */;
this.state_0_ = state_0;
} else {
s5_ = null;
}
}
}
if (s5_ != null) {
doRaise(frameValue, arg0Value, arg1Value_, arg2Value, inliningTarget__3, INLINED_RAISE2_IS_TYPE_NODE_, s5_.validException_, s5_.callConstructor_, INLINED_RAISE2_CHECK_, INLINED_RAISE2_BASE_CHECK_FAILED_PROFILE_, INLINED_RAISE2_RAISE_);
return;
}
break;
}
}
}
{
Node inliningTarget__4 = null;
while (true) {
int count6_ = 0;
Raise3Data s6_ = RAISE3_CACHE_UPDATER.getVolatile(this);
Raise3Data s6_original = s6_;
while (s6_ != null) {
if ((s6_.raise3_state_0_ & 0b10) != 0 /* is SpecializationCachesInitialized */ && (INLINED_RAISE3_IS_TYPE_NODE_.execute(s6_, arg0Value)) && (!(PGuards.isNoValue(arg1Value)))) {
inliningTarget__4 = (s6_);
break;
}
if ((s6_.raise3_state_0_ & 0b10) != 0 /* is SpecializationCachesInitialized */) {
count6_++;
}
s6_ = null;
break;
}
if (s6_ == null && count6_ < 1) {
{
s6_ = this.insert(new Raise3Data());
if (((s6_.raise3_state_0_ & 0b1)) == 0 /* is-not GuardActive[specialization=RaiseNode.doRaise(VirtualFrame, Object, Object, boolean, Node, IsTypeNode, ValidExceptionNode, Lazy, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, SetExceptionCauseNode), guardIndex=0] */) {
s6_.raise3_state_0_ = s6_.raise3_state_0_ | 0b1 /* add GuardActive[specialization=RaiseNode.doRaise(VirtualFrame, Object, Object, boolean, Node, IsTypeNode, ValidExceptionNode, Lazy, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, SetExceptionCauseNode), guardIndex=0] */;
if (!RAISE3_CACHE_UPDATER.compareAndSet(this, s6_original, s6_)) {
continue;
}
s6_original = s6_;
s6_ = this.insert(new Raise3Data(s6_));
}
if ((INLINED_RAISE3_IS_TYPE_NODE_.execute(s6_, arg0Value)) && (!(PGuards.isNoValue(arg1Value)))) {
inliningTarget__4 = (s6_);
ValidExceptionNode validException__1 = s6_.insert((ValidExceptionNodeGen.create()));
Objects.requireNonNull(validException__1, "Specialization 'doRaise(VirtualFrame, Object, Object, boolean, Node, IsTypeNode, ValidExceptionNode, Lazy, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, SetExceptionCauseNode)' cache 'validException' 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'.");
s6_.validException_ = validException__1;
CallNode callConstructor__1 = s6_.insert((CallNode.create()));
Objects.requireNonNull(callConstructor__1, "Specialization 'doRaise(VirtualFrame, Object, Object, boolean, Node, IsTypeNode, ValidExceptionNode, Lazy, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, SetExceptionCauseNode)' cache 'callConstructor' 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'.");
s6_.callConstructor_ = callConstructor__1;
SetExceptionCauseNode setExceptionCauseNode__ = s6_.insert((SetExceptionCauseNodeGen.create()));
Objects.requireNonNull(setExceptionCauseNode__, "Specialization 'doRaise(VirtualFrame, Object, Object, boolean, Node, IsTypeNode, ValidExceptionNode, Lazy, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, SetExceptionCauseNode)' cache 'setExceptionCauseNode' 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'.");
s6_.setExceptionCauseNode_ = setExceptionCauseNode__;
s6_.raise3_state_0_ = s6_.raise3_state_0_ | 0b10 /* add SpecializationCachesInitialized */;
if (!RAISE3_CACHE_UPDATER.compareAndSet(this, s6_original, s6_)) {
continue;
}
state_0 = state_0 | 0b100000000 /* add SpecializationActive[RaiseNode.doRaise(VirtualFrame, Object, Object, boolean, Node, IsTypeNode, ValidExceptionNode, Lazy, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, SetExceptionCauseNode)] */;
this.state_0_ = state_0;
} else {
s6_ = null;
}
}
}
if (s6_ != null) {
doRaise(frameValue, arg0Value, arg1Value, arg2Value, inliningTarget__4, INLINED_RAISE3_IS_TYPE_NODE_, s6_.validException_, INLINED_RAISE3_RAISE_, s6_.callConstructor_, INLINED_RAISE3_CHECK_, INLINED_RAISE3_BASE_CHECK_FAILED_PROFILE_, s6_.setExceptionCauseNode_);
return;
}
break;
}
}
{
Node inliningTarget__5 = null;
FallbackData s7_ = this.insert(new FallbackData());
inliningTarget__5 = (s7_);
InteropLibrary lib__ = s7_.insert((INTEROP_LIBRARY_.createDispatched(1)));
Objects.requireNonNull(lib__, "Specialization 'doRaise(VirtualFrame, Object, Object, boolean, Node, InteropLibrary, Lazy)' cache 'lib' 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'.");
s7_.lib_ = lib__;
VarHandle.storeStoreFence();
this.fallback_cache = s7_;
state_0 = state_0 | 0b1000000000 /* add SpecializationActive[RaiseNode.doRaise(VirtualFrame, Object, Object, boolean, Node, InteropLibrary, Lazy)] */;
this.state_0_ = state_0;
RaiseNode.doRaise(frameValue, arg0Value, arg1Value, arg2Value, inliningTarget__5, lib__, INLINED_FALLBACK_RAISE_);
return;
}
}
@Override
public NodeCost getCost() {
int state_0 = this.state_0_;
if ((state_0 & 0b1110110111) == 0) {
return NodeCost.UNINITIALIZED;
} else {
int counter = 0;
counter += Integer.bitCount((state_0 & 0b1110110111));
if (counter == 1) {
return NodeCost.MONOMORPHIC;
}
}
return NodeCost.POLYMORPHIC;
}
@NeverDefault
public static RaiseNode create() {
return new RaiseNodeGen();
}
@GeneratedBy(RaiseNode.class)
@DenyReplace
private static final class Raise2Data extends Node implements SpecializationDataNode {
/**
* State Info:
* 0: GuardActive[guardIndex=0] {@link RaiseNode#doRaise(VirtualFrame, Object, PNone, boolean, Node, IsTypeNode, ValidExceptionNode, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, Lazy)}
* 1: SpecializationCachesInitialized {@link RaiseNode#doRaise(VirtualFrame, Object, PNone, boolean, Node, IsTypeNode, ValidExceptionNode, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, Lazy)}
* 2-6: InlinedCache
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, Object, PNone, boolean, Node, IsTypeNode, ValidExceptionNode, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, Lazy)}
* Parameter: {@link IsTypeNode} isTypeNode
* Inline method: {@link IsTypeNodeGen#inline}
* 7-25: InlinedCache
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, Object, PNone, boolean, Node, IsTypeNode, ValidExceptionNode, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, Lazy)}
* Parameter: {@link PyExceptionInstanceCheckNode} check
* Inline method: {@link PyExceptionInstanceCheckNodeGen#inline}
* 26: InlinedCache
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, Object, PNone, boolean, Node, IsTypeNode, ValidExceptionNode, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, Lazy)}
* Parameter: {@link InlinedBranchProfile} baseCheckFailedProfile
* Inline method: {@link InlinedBranchProfile#inline}
* 27: InlinedCache
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, Object, PNone, boolean, Node, IsTypeNode, ValidExceptionNode, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, Lazy)}
* Parameter: {@link Lazy} raise
* Inline method: {@link LazyNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int raise2_state_0_;
/**
* Source Info:
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, Object, PNone, boolean, Node, IsTypeNode, ValidExceptionNode, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, Lazy)}
* Parameter: {@link IsTypeNode} isTypeNode
* Inline method: {@link IsTypeNodeGen#inline}
* Inline field: {@link Node} field1
*/
@Child @UnsafeAccessedField @SuppressWarnings("unused") private Node raise2_isTypeNode__field1_;
/**
* Source Info:
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, Object, PNone, boolean, Node, IsTypeNode, ValidExceptionNode, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, Lazy)}
* Parameter: {@link ValidExceptionNode} validException
*/
@Child ValidExceptionNode validException_;
/**
* Source Info:
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, Object, PNone, boolean, Node, IsTypeNode, ValidExceptionNode, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, Lazy)}
* Parameter: {@link CallNode} callConstructor
*/
@Child CallNode callConstructor_;
/**
* Source Info:
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, Object, PNone, boolean, Node, IsTypeNode, ValidExceptionNode, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, Lazy)}
* Parameter: {@link PyExceptionInstanceCheckNode} check
* Inline method: {@link PyExceptionInstanceCheckNodeGen#inline}
* Inline field: {@link Node} field1
*/
@Child @UnsafeAccessedField @SuppressWarnings("unused") private Node raise2_check__field1_;
/**
* Source Info:
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, Object, PNone, boolean, Node, IsTypeNode, ValidExceptionNode, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, Lazy)}
* Parameter: {@link PyExceptionInstanceCheckNode} check
* Inline method: {@link PyExceptionInstanceCheckNodeGen#inline}
* Inline field: {@link Node} field2
*/
@Child @UnsafeAccessedField @SuppressWarnings("unused") private Node raise2_check__field2_;
/**
* Source Info:
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, Object, PNone, boolean, Node, IsTypeNode, ValidExceptionNode, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, Lazy)}
* Parameter: {@link Lazy} raise
* Inline method: {@link LazyNodeGen#inline}
* Inline field: {@link Node} field1
*/
@Child @UnsafeAccessedField @SuppressWarnings("unused") private Node raise2_raise__field1_;
Raise2Data() {
}
Raise2Data(Raise2Data delegate) {
this.raise2_state_0_ = delegate.raise2_state_0_;
this.raise2_isTypeNode__field1_ = delegate.raise2_isTypeNode__field1_;
this.validException_ = delegate.validException_;
this.callConstructor_ = delegate.callConstructor_;
this.raise2_check__field1_ = delegate.raise2_check__field1_;
this.raise2_check__field2_ = delegate.raise2_check__field2_;
this.raise2_raise__field1_ = delegate.raise2_raise__field1_;
}
@Override
public NodeCost getCost() {
return NodeCost.NONE;
}
private static Lookup lookup_() {
return MethodHandles.lookup();
}
}
@GeneratedBy(RaiseNode.class)
@DenyReplace
private static final class Raise3Data extends Node implements SpecializationDataNode {
/**
* State Info:
* 0: GuardActive[guardIndex=0] {@link RaiseNode#doRaise(VirtualFrame, Object, Object, boolean, Node, IsTypeNode, ValidExceptionNode, Lazy, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, SetExceptionCauseNode)}
* 1: SpecializationCachesInitialized {@link RaiseNode#doRaise(VirtualFrame, Object, Object, boolean, Node, IsTypeNode, ValidExceptionNode, Lazy, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, SetExceptionCauseNode)}
* 2-6: InlinedCache
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, Object, Object, boolean, Node, IsTypeNode, ValidExceptionNode, Lazy, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, SetExceptionCauseNode)}
* Parameter: {@link IsTypeNode} isTypeNode
* Inline method: {@link IsTypeNodeGen#inline}
* 7: InlinedCache
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, Object, Object, boolean, Node, IsTypeNode, ValidExceptionNode, Lazy, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, SetExceptionCauseNode)}
* Parameter: {@link Lazy} raise
* Inline method: {@link LazyNodeGen#inline}
* 8-26: InlinedCache
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, Object, Object, boolean, Node, IsTypeNode, ValidExceptionNode, Lazy, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, SetExceptionCauseNode)}
* Parameter: {@link PyExceptionInstanceCheckNode} check
* Inline method: {@link PyExceptionInstanceCheckNodeGen#inline}
* 27: InlinedCache
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, Object, Object, boolean, Node, IsTypeNode, ValidExceptionNode, Lazy, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, SetExceptionCauseNode)}
* Parameter: {@link InlinedBranchProfile} baseCheckFailedProfile
* Inline method: {@link InlinedBranchProfile#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int raise3_state_0_;
/**
* Source Info:
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, Object, Object, boolean, Node, IsTypeNode, ValidExceptionNode, Lazy, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, SetExceptionCauseNode)}
* Parameter: {@link IsTypeNode} isTypeNode
* Inline method: {@link IsTypeNodeGen#inline}
* Inline field: {@link Node} field1
*/
@Child @UnsafeAccessedField @SuppressWarnings("unused") private Node raise3_isTypeNode__field1_;
/**
* Source Info:
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, Object, Object, boolean, Node, IsTypeNode, ValidExceptionNode, Lazy, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, SetExceptionCauseNode)}
* Parameter: {@link ValidExceptionNode} validException
*/
@Child ValidExceptionNode validException_;
/**
* Source Info:
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, Object, Object, boolean, Node, IsTypeNode, ValidExceptionNode, Lazy, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, SetExceptionCauseNode)}
* Parameter: {@link Lazy} raise
* Inline method: {@link LazyNodeGen#inline}
* Inline field: {@link Node} field1
*/
@Child @UnsafeAccessedField @SuppressWarnings("unused") private Node raise3_raise__field1_;
/**
* Source Info:
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, Object, Object, boolean, Node, IsTypeNode, ValidExceptionNode, Lazy, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, SetExceptionCauseNode)}
* Parameter: {@link CallNode} callConstructor
*/
@Child CallNode callConstructor_;
/**
* Source Info:
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, Object, Object, boolean, Node, IsTypeNode, ValidExceptionNode, Lazy, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, SetExceptionCauseNode)}
* Parameter: {@link PyExceptionInstanceCheckNode} check
* Inline method: {@link PyExceptionInstanceCheckNodeGen#inline}
* Inline field: {@link Node} field1
*/
@Child @UnsafeAccessedField @SuppressWarnings("unused") private Node raise3_check__field1_;
/**
* Source Info:
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, Object, Object, boolean, Node, IsTypeNode, ValidExceptionNode, Lazy, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, SetExceptionCauseNode)}
* Parameter: {@link PyExceptionInstanceCheckNode} check
* Inline method: {@link PyExceptionInstanceCheckNodeGen#inline}
* Inline field: {@link Node} field2
*/
@Child @UnsafeAccessedField @SuppressWarnings("unused") private Node raise3_check__field2_;
/**
* Source Info:
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, Object, Object, boolean, Node, IsTypeNode, ValidExceptionNode, Lazy, CallNode, PyExceptionInstanceCheckNode, InlinedBranchProfile, SetExceptionCauseNode)}
* Parameter: {@link SetExceptionCauseNode} setExceptionCauseNode
*/
@Child SetExceptionCauseNode setExceptionCauseNode_;
Raise3Data() {
}
Raise3Data(Raise3Data delegate) {
this.raise3_state_0_ = delegate.raise3_state_0_;
this.raise3_isTypeNode__field1_ = delegate.raise3_isTypeNode__field1_;
this.validException_ = delegate.validException_;
this.raise3_raise__field1_ = delegate.raise3_raise__field1_;
this.callConstructor_ = delegate.callConstructor_;
this.raise3_check__field1_ = delegate.raise3_check__field1_;
this.raise3_check__field2_ = delegate.raise3_check__field2_;
this.setExceptionCauseNode_ = delegate.setExceptionCauseNode_;
}
@Override
public NodeCost getCost() {
return NodeCost.NONE;
}
private static Lookup lookup_() {
return MethodHandles.lookup();
}
}
@GeneratedBy(RaiseNode.class)
@DenyReplace
private static final class FallbackData extends Node implements SpecializationDataNode {
/**
* State Info:
* 0: InlinedCache
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, Object, Object, boolean, Node, InteropLibrary, Lazy)}
* Parameter: {@link Lazy} raise
* Inline method: {@link LazyNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int fallback_state_0_;
/**
* Source Info:
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, Object, Object, boolean, Node, InteropLibrary, Lazy)}
* Parameter: {@link InteropLibrary} lib
*/
@Child InteropLibrary lib_;
/**
* Source Info:
* Specialization: {@link RaiseNode#doRaise(VirtualFrame, Object, Object, boolean, Node, InteropLibrary, Lazy)}
* Parameter: {@link Lazy} raise
* Inline method: {@link LazyNodeGen#inline}
* Inline field: {@link Node} field1
*/
@Child @UnsafeAccessedField @SuppressWarnings("unused") private Node fallback_raise__field1_;
FallbackData() {
}
@Override
public NodeCost getCost() {
return NodeCost.NONE;
}
private static Lookup lookup_() {
return MethodHandles.lookup();
}
}
/**
* Debug Info:
* Specialization {@link SetExceptionCauseNode#setNone}
* Activation probability: 0.38500
* With/without class size: 13/5 bytes
* Specialization {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, PyExceptionInstanceCheckNode, SetCauseNode)}
* Activation probability: 0.29500
* With/without class size: 13/15 bytes
* Specialization {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, IsTypeNode, InlinedBranchProfile, ValidExceptionNode, CallNode, Lazy, PyExceptionInstanceCheckNode, SetCauseNode)}
* Activation probability: 0.20500
* With/without class size: 13/32 bytes
* Specialization {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, IsTypeNode, PyExceptionInstanceCheckNode, PRaiseNode)}
* Activation probability: 0.11500
* With/without class size: 8/19 bytes
*
*/
@GeneratedBy(SetExceptionCauseNode.class)
@SuppressWarnings("javadoc")
public static final class SetExceptionCauseNodeGen extends SetExceptionCauseNode {
private static final StateField STATE_0_SetExceptionCauseNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
private static final StateField SET_CAUSE0__SET_EXCEPTION_CAUSE_NODE_SET_CAUSE0_STATE_0_UPDATER = StateField.create(SetCause0Data.lookup_(), "setCause0_state_0_");
private static final StateField SET_CAUSE1__SET_EXCEPTION_CAUSE_NODE_SET_CAUSE1_STATE_0_UPDATER = StateField.create(SetCause1Data.lookup_(), "setCause1_state_0_");
private static final StateField SET_CAUSE2__SET_EXCEPTION_CAUSE_NODE_SET_CAUSE2_STATE_0_UPDATER = StateField.create(SetCause2Data.lookup_(), "setCause2_state_0_");
static final ReferenceField SET_CAUSE0_CACHE_UPDATER = ReferenceField.create(MethodHandles.lookup(), "setCause0_cache", SetCause0Data.class);
static final ReferenceField SET_CAUSE1_CACHE_UPDATER = ReferenceField.create(MethodHandles.lookup(), "setCause1_cache", SetCause1Data.class);
static final ReferenceField SET_CAUSE2_CACHE_UPDATER = ReferenceField.create(MethodHandles.lookup(), "setCause2_cache", SetCause2Data.class);
/**
* Source Info:
* Specialization: {@link SetExceptionCauseNode#setNone}
* Parameter: {@link SetCauseNode} setCauseNode
* Inline method: {@link SetCauseNodeGen#inline}
*/
private static final SetCauseNode INLINED_SET_NONE_SET_CAUSE_NODE_ = SetCauseNodeGen.inline(InlineTarget.create(SetCauseNode.class, STATE_0_SetExceptionCauseNode_UPDATER.subUpdater(4, 4), ReferenceField.create(MethodHandles.lookup(), "setNone_setCauseNode__field1_", Node.class)));
/**
* Source Info:
* Specialization: {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, PyExceptionInstanceCheckNode, SetCauseNode)}
* Parameter: {@link PyExceptionInstanceCheckNode} check
* Inline method: {@link PyExceptionInstanceCheckNodeGen#inline}
*/
private static final PyExceptionInstanceCheckNode INLINED_SET_CAUSE0_CHECK_ = PyExceptionInstanceCheckNodeGen.inline(InlineTarget.create(PyExceptionInstanceCheckNode.class, SET_CAUSE0__SET_EXCEPTION_CAUSE_NODE_SET_CAUSE0_STATE_0_UPDATER.subUpdater(0, 19), ReferenceField.create(SetCause0Data.lookup_(), "setCause0_check__field1_", Node.class), ReferenceField.create(SetCause0Data.lookup_(), "setCause0_check__field2_", Node.class)));
/**
* Source Info:
* Specialization: {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, PyExceptionInstanceCheckNode, SetCauseNode)}
* Parameter: {@link SetCauseNode} setCauseNode
* Inline method: {@link SetCauseNodeGen#inline}
*/
private static final SetCauseNode INLINED_SET_CAUSE0_SET_CAUSE_NODE_ = SetCauseNodeGen.inline(InlineTarget.create(SetCauseNode.class, SET_CAUSE0__SET_EXCEPTION_CAUSE_NODE_SET_CAUSE0_STATE_0_UPDATER.subUpdater(19, 4), ReferenceField.create(SetCause0Data.lookup_(), "setCause0_setCauseNode__field1_", Node.class)));
/**
* Source Info:
* Specialization: {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, IsTypeNode, InlinedBranchProfile, ValidExceptionNode, CallNode, Lazy, PyExceptionInstanceCheckNode, SetCauseNode)}
* Parameter: {@link IsTypeNode} isTypeNode
* Inline method: {@link IsTypeNodeGen#inline}
*/
private static final IsTypeNode INLINED_SET_CAUSE1_IS_TYPE_NODE_ = IsTypeNodeGen.inline(InlineTarget.create(IsTypeNode.class, SET_CAUSE1__SET_EXCEPTION_CAUSE_NODE_SET_CAUSE1_STATE_0_UPDATER.subUpdater(0, 5), ReferenceField.create(SetCause1Data.lookup_(), "setCause1_isTypeNode__field1_", Node.class)));
/**
* Source Info:
* Specialization: {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, IsTypeNode, InlinedBranchProfile, ValidExceptionNode, CallNode, Lazy, PyExceptionInstanceCheckNode, SetCauseNode)}
* Parameter: {@link InlinedBranchProfile} baseCheckFailedProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private static final InlinedBranchProfile INLINED_SET_CAUSE1_BASE_CHECK_FAILED_PROFILE_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, SET_CAUSE1__SET_EXCEPTION_CAUSE_NODE_SET_CAUSE1_STATE_0_UPDATER.subUpdater(5, 1)));
/**
* Source Info:
* Specialization: {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, IsTypeNode, InlinedBranchProfile, ValidExceptionNode, CallNode, Lazy, PyExceptionInstanceCheckNode, SetCauseNode)}
* Parameter: {@link Lazy} raise
* Inline method: {@link LazyNodeGen#inline}
*/
private static final Lazy INLINED_SET_CAUSE1_RAISE_ = LazyNodeGen.inline(InlineTarget.create(Lazy.class, SET_CAUSE1__SET_EXCEPTION_CAUSE_NODE_SET_CAUSE1_STATE_0_UPDATER.subUpdater(6, 1), ReferenceField.create(SetCause1Data.lookup_(), "setCause1_raise__field1_", Node.class)));
/**
* Source Info:
* Specialization: {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, IsTypeNode, InlinedBranchProfile, ValidExceptionNode, CallNode, Lazy, PyExceptionInstanceCheckNode, SetCauseNode)}
* Parameter: {@link PyExceptionInstanceCheckNode} check
* Inline method: {@link PyExceptionInstanceCheckNodeGen#inline}
*/
private static final PyExceptionInstanceCheckNode INLINED_SET_CAUSE1_CHECK_ = PyExceptionInstanceCheckNodeGen.inline(InlineTarget.create(PyExceptionInstanceCheckNode.class, SET_CAUSE1__SET_EXCEPTION_CAUSE_NODE_SET_CAUSE1_STATE_0_UPDATER.subUpdater(7, 19), ReferenceField.create(SetCause1Data.lookup_(), "setCause1_check__field1_", Node.class), ReferenceField.create(SetCause1Data.lookup_(), "setCause1_check__field2_", Node.class)));
/**
* Source Info:
* Specialization: {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, IsTypeNode, InlinedBranchProfile, ValidExceptionNode, CallNode, Lazy, PyExceptionInstanceCheckNode, SetCauseNode)}
* Parameter: {@link SetCauseNode} setCauseNode
* Inline method: {@link SetCauseNodeGen#inline}
*/
private static final SetCauseNode INLINED_SET_CAUSE1_SET_CAUSE_NODE_ = SetCauseNodeGen.inline(InlineTarget.create(SetCauseNode.class, SET_CAUSE1__SET_EXCEPTION_CAUSE_NODE_SET_CAUSE1_STATE_0_UPDATER.subUpdater(26, 4), ReferenceField.create(SetCause1Data.lookup_(), "setCause1_setCauseNode__field1_", Node.class)));
/**
* Source Info:
* Specialization: {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, IsTypeNode, PyExceptionInstanceCheckNode, PRaiseNode)}
* Parameter: {@link IsTypeNode} isTypeNode
* Inline method: {@link IsTypeNodeGen#inline}
*/
private static final IsTypeNode INLINED_SET_CAUSE2_IS_TYPE_NODE_ = IsTypeNodeGen.inline(InlineTarget.create(IsTypeNode.class, SET_CAUSE2__SET_EXCEPTION_CAUSE_NODE_SET_CAUSE2_STATE_0_UPDATER.subUpdater(0, 5), ReferenceField.create(SetCause2Data.lookup_(), "setCause2_isTypeNode__field1_", Node.class)));
/**
* Source Info:
* Specialization: {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, IsTypeNode, PyExceptionInstanceCheckNode, PRaiseNode)}
* Parameter: {@link PyExceptionInstanceCheckNode} check
* Inline method: {@link PyExceptionInstanceCheckNodeGen#inline}
*/
private static final PyExceptionInstanceCheckNode INLINED_SET_CAUSE2_CHECK_ = PyExceptionInstanceCheckNodeGen.inline(InlineTarget.create(PyExceptionInstanceCheckNode.class, SET_CAUSE2__SET_EXCEPTION_CAUSE_NODE_SET_CAUSE2_STATE_0_UPDATER.subUpdater(5, 19), ReferenceField.create(SetCause2Data.lookup_(), "setCause2_check__field1_", Node.class), ReferenceField.create(SetCause2Data.lookup_(), "setCause2_check__field2_", Node.class)));
/**
* State Info:
* 0: SpecializationActive {@link SetExceptionCauseNode#setNone}
* 1: SpecializationActive {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, PyExceptionInstanceCheckNode, SetCauseNode)}
* 2: SpecializationActive {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, IsTypeNode, InlinedBranchProfile, ValidExceptionNode, CallNode, Lazy, PyExceptionInstanceCheckNode, SetCauseNode)}
* 3: SpecializationActive {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, IsTypeNode, PyExceptionInstanceCheckNode, PRaiseNode)}
* 4-7: InlinedCache
* Specialization: {@link SetExceptionCauseNode#setNone}
* Parameter: {@link SetCauseNode} setCauseNode
* Inline method: {@link SetCauseNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
/**
* Source Info:
* Specialization: {@link SetExceptionCauseNode#setNone}
* Parameter: {@link SetCauseNode} setCauseNode
* Inline method: {@link SetCauseNodeGen#inline}
* Inline field: {@link Node} field1
*/
@Child @UnsafeAccessedField @SuppressWarnings("unused") private Node setNone_setCauseNode__field1_;
@UnsafeAccessedField @Child private SetCause0Data setCause0_cache;
@UnsafeAccessedField @Child private SetCause1Data setCause1_cache;
@UnsafeAccessedField @Child private SetCause2Data setCause2_cache;
private SetExceptionCauseNodeGen() {
}
@Override
public void execute(VirtualFrame frameValue, Object arg0Value, Object arg1Value) {
int state_0 = this.state_0_;
if ((state_0 & 0b1111) != 0 /* is SpecializationActive[RaiseNode.SetExceptionCauseNode.setNone(VirtualFrame, Object, PNone, Node, SetCauseNode)] || SpecializationActive[RaiseNode.SetExceptionCauseNode.setCause(VirtualFrame, Object, Object, Node, PyExceptionInstanceCheckNode, SetCauseNode)] || SpecializationActive[RaiseNode.SetExceptionCauseNode.setCause(VirtualFrame, Object, Object, Node, IsTypeNode, InlinedBranchProfile, ValidExceptionNode, CallNode, Lazy, PyExceptionInstanceCheckNode, SetCauseNode)] || SpecializationActive[RaiseNode.SetExceptionCauseNode.setCause(VirtualFrame, Object, Object, Node, IsTypeNode, PyExceptionInstanceCheckNode, PRaiseNode)] */) {
if ((state_0 & 0b1) != 0 /* is SpecializationActive[RaiseNode.SetExceptionCauseNode.setNone(VirtualFrame, Object, PNone, Node, SetCauseNode)] */ && arg1Value instanceof PNone) {
PNone arg1Value_ = (PNone) arg1Value;
if ((PGuards.isNone(arg1Value_))) {
Node inliningTarget__ = (this);
SetExceptionCauseNode.setNone(frameValue, arg0Value, arg1Value_, inliningTarget__, INLINED_SET_NONE_SET_CAUSE_NODE_);
return;
}
}
if ((state_0 & 0b1110) != 0 /* is SpecializationActive[RaiseNode.SetExceptionCauseNode.setCause(VirtualFrame, Object, Object, Node, PyExceptionInstanceCheckNode, SetCauseNode)] || SpecializationActive[RaiseNode.SetExceptionCauseNode.setCause(VirtualFrame, Object, Object, Node, IsTypeNode, InlinedBranchProfile, ValidExceptionNode, CallNode, Lazy, PyExceptionInstanceCheckNode, SetCauseNode)] || SpecializationActive[RaiseNode.SetExceptionCauseNode.setCause(VirtualFrame, Object, Object, Node, IsTypeNode, PyExceptionInstanceCheckNode, PRaiseNode)] */) {
if ((state_0 & 0b10) != 0 /* is SpecializationActive[RaiseNode.SetExceptionCauseNode.setCause(VirtualFrame, Object, Object, Node, PyExceptionInstanceCheckNode, SetCauseNode)] */) {
SetCause0Data s1_ = this.setCause0_cache;
if (s1_ != null) {
{
Node inliningTarget__1 = (s1_);
if ((INLINED_SET_CAUSE0_CHECK_.execute(inliningTarget__1, arg1Value))) {
SetExceptionCauseNode.setCause(frameValue, arg0Value, arg1Value, inliningTarget__1, INLINED_SET_CAUSE0_CHECK_, INLINED_SET_CAUSE0_SET_CAUSE_NODE_);
return;
}
}
}
}
if ((state_0 & 0b100) != 0 /* is SpecializationActive[RaiseNode.SetExceptionCauseNode.setCause(VirtualFrame, Object, Object, Node, IsTypeNode, InlinedBranchProfile, ValidExceptionNode, CallNode, Lazy, PyExceptionInstanceCheckNode, SetCauseNode)] */) {
SetCause1Data s2_ = this.setCause1_cache;
if (s2_ != null) {
{
Node inliningTarget__2 = (s2_);
if ((INLINED_SET_CAUSE1_IS_TYPE_NODE_.execute(inliningTarget__2, arg1Value))) {
SetExceptionCauseNode.setCause(frameValue, arg0Value, arg1Value, inliningTarget__2, INLINED_SET_CAUSE1_IS_TYPE_NODE_, INLINED_SET_CAUSE1_BASE_CHECK_FAILED_PROFILE_, s2_.validException_, s2_.callConstructor_, INLINED_SET_CAUSE1_RAISE_, INLINED_SET_CAUSE1_CHECK_, INLINED_SET_CAUSE1_SET_CAUSE_NODE_);
return;
}
}
}
}
if ((state_0 & 0b1000) != 0 /* is SpecializationActive[RaiseNode.SetExceptionCauseNode.setCause(VirtualFrame, Object, Object, Node, IsTypeNode, PyExceptionInstanceCheckNode, PRaiseNode)] */) {
SetCause2Data s3_ = this.setCause2_cache;
if (s3_ != null) {
{
Node inliningTarget__3 = (s3_);
if ((!(INLINED_SET_CAUSE2_CHECK_.execute(inliningTarget__3, arg1Value))) && (!(INLINED_SET_CAUSE2_IS_TYPE_NODE_.execute(inliningTarget__3, arg1Value)))) {
SetExceptionCauseNode.setCause(frameValue, arg0Value, arg1Value, inliningTarget__3, INLINED_SET_CAUSE2_IS_TYPE_NODE_, INLINED_SET_CAUSE2_CHECK_, s3_.raise_);
return;
}
}
}
}
}
}
CompilerDirectives.transferToInterpreterAndInvalidate();
executeAndSpecialize(frameValue, arg0Value, arg1Value);
return;
}
private void executeAndSpecialize(VirtualFrame frameValue, Object arg0Value, Object arg1Value) {
int state_0 = this.state_0_;
{
Node inliningTarget__ = null;
if (arg1Value instanceof PNone) {
PNone arg1Value_ = (PNone) arg1Value;
if ((PGuards.isNone(arg1Value_))) {
inliningTarget__ = (this);
state_0 = state_0 | 0b1 /* add SpecializationActive[RaiseNode.SetExceptionCauseNode.setNone(VirtualFrame, Object, PNone, Node, SetCauseNode)] */;
this.state_0_ = state_0;
SetExceptionCauseNode.setNone(frameValue, arg0Value, arg1Value_, inliningTarget__, INLINED_SET_NONE_SET_CAUSE_NODE_);
return;
}
}
}
{
Node inliningTarget__1 = null;
while (true) {
int count1_ = 0;
SetCause0Data s1_ = SET_CAUSE0_CACHE_UPDATER.getVolatile(this);
SetCause0Data s1_original = s1_;
while (s1_ != null) {
{
inliningTarget__1 = (s1_);
if ((INLINED_SET_CAUSE0_CHECK_.execute(inliningTarget__1, arg1Value))) {
break;
}
}
count1_++;
s1_ = null;
break;
}
if (s1_ == null && count1_ < 1) {
{
s1_ = this.insert(new SetCause0Data());
inliningTarget__1 = (s1_);
if ((INLINED_SET_CAUSE0_CHECK_.execute(inliningTarget__1, arg1Value))) {
if (!SET_CAUSE0_CACHE_UPDATER.compareAndSet(this, s1_original, s1_)) {
continue;
}
state_0 = state_0 | 0b10 /* add SpecializationActive[RaiseNode.SetExceptionCauseNode.setCause(VirtualFrame, Object, Object, Node, PyExceptionInstanceCheckNode, SetCauseNode)] */;
this.state_0_ = state_0;
} else {
s1_ = null;
}
}
}
if (s1_ != null) {
SetExceptionCauseNode.setCause(frameValue, arg0Value, arg1Value, inliningTarget__1, INLINED_SET_CAUSE0_CHECK_, INLINED_SET_CAUSE0_SET_CAUSE_NODE_);
return;
}
break;
}
}
{
Node inliningTarget__2 = null;
while (true) {
int count2_ = 0;
SetCause1Data s2_ = SET_CAUSE1_CACHE_UPDATER.getVolatile(this);
SetCause1Data s2_original = s2_;
while (s2_ != null) {
{
inliningTarget__2 = (s2_);
if ((INLINED_SET_CAUSE1_IS_TYPE_NODE_.execute(inliningTarget__2, arg1Value))) {
break;
}
}
count2_++;
s2_ = null;
break;
}
if (s2_ == null && count2_ < 1) {
{
s2_ = this.insert(new SetCause1Data());
inliningTarget__2 = (s2_);
if ((INLINED_SET_CAUSE1_IS_TYPE_NODE_.execute(inliningTarget__2, arg1Value))) {
ValidExceptionNode validException__ = s2_.insert((ValidExceptionNodeGen.create()));
Objects.requireNonNull(validException__, "Specialization 'setCause(VirtualFrame, Object, Object, Node, IsTypeNode, InlinedBranchProfile, ValidExceptionNode, CallNode, Lazy, PyExceptionInstanceCheckNode, SetCauseNode)' cache 'validException' 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'.");
s2_.validException_ = validException__;
CallNode callConstructor__ = s2_.insert((CallNode.create()));
Objects.requireNonNull(callConstructor__, "Specialization 'setCause(VirtualFrame, Object, Object, Node, IsTypeNode, InlinedBranchProfile, ValidExceptionNode, CallNode, Lazy, PyExceptionInstanceCheckNode, SetCauseNode)' cache 'callConstructor' 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'.");
s2_.callConstructor_ = callConstructor__;
if (!SET_CAUSE1_CACHE_UPDATER.compareAndSet(this, s2_original, s2_)) {
continue;
}
state_0 = state_0 | 0b100 /* add SpecializationActive[RaiseNode.SetExceptionCauseNode.setCause(VirtualFrame, Object, Object, Node, IsTypeNode, InlinedBranchProfile, ValidExceptionNode, CallNode, Lazy, PyExceptionInstanceCheckNode, SetCauseNode)] */;
this.state_0_ = state_0;
} else {
s2_ = null;
}
}
}
if (s2_ != null) {
SetExceptionCauseNode.setCause(frameValue, arg0Value, arg1Value, inliningTarget__2, INLINED_SET_CAUSE1_IS_TYPE_NODE_, INLINED_SET_CAUSE1_BASE_CHECK_FAILED_PROFILE_, s2_.validException_, s2_.callConstructor_, INLINED_SET_CAUSE1_RAISE_, INLINED_SET_CAUSE1_CHECK_, INLINED_SET_CAUSE1_SET_CAUSE_NODE_);
return;
}
break;
}
}
{
Node inliningTarget__3 = null;
while (true) {
int count3_ = 0;
SetCause2Data s3_ = SET_CAUSE2_CACHE_UPDATER.getVolatile(this);
SetCause2Data s3_original = s3_;
while (s3_ != null) {
{
inliningTarget__3 = (s3_);
if ((!(INLINED_SET_CAUSE2_CHECK_.execute(inliningTarget__3, arg1Value))) && (!(INLINED_SET_CAUSE2_IS_TYPE_NODE_.execute(inliningTarget__3, arg1Value)))) {
break;
}
}
count3_++;
s3_ = null;
break;
}
if (s3_ == null && count3_ < 1) {
{
s3_ = this.insert(new SetCause2Data());
inliningTarget__3 = (s3_);
if ((!(INLINED_SET_CAUSE2_CHECK_.execute(inliningTarget__3, arg1Value))) && (!(INLINED_SET_CAUSE2_IS_TYPE_NODE_.execute(inliningTarget__3, arg1Value)))) {
PRaiseNode raise__ = s3_.insert((PRaiseNode.create()));
Objects.requireNonNull(raise__, "Specialization 'setCause(VirtualFrame, Object, Object, Node, IsTypeNode, PyExceptionInstanceCheckNode, PRaiseNode)' cache 'raise' 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'.");
s3_.raise_ = raise__;
if (!SET_CAUSE2_CACHE_UPDATER.compareAndSet(this, s3_original, s3_)) {
continue;
}
state_0 = state_0 | 0b1000 /* add SpecializationActive[RaiseNode.SetExceptionCauseNode.setCause(VirtualFrame, Object, Object, Node, IsTypeNode, PyExceptionInstanceCheckNode, PRaiseNode)] */;
this.state_0_ = state_0;
} else {
s3_ = null;
}
}
}
if (s3_ != null) {
SetExceptionCauseNode.setCause(frameValue, arg0Value, arg1Value, inliningTarget__3, INLINED_SET_CAUSE2_IS_TYPE_NODE_, INLINED_SET_CAUSE2_CHECK_, s3_.raise_);
return;
}
break;
}
}
throw new UnsupportedSpecializationException(this, new Node[] {null, null}, arg0Value, arg1Value);
}
@Override
public NodeCost getCost() {
int state_0 = this.state_0_;
if ((state_0 & 0b1111) == 0) {
return NodeCost.UNINITIALIZED;
} else {
if (((state_0 & 0b1111) & ((state_0 & 0b1111) - 1)) == 0 /* is-single */) {
return NodeCost.MONOMORPHIC;
}
}
return NodeCost.POLYMORPHIC;
}
@NeverDefault
public static SetExceptionCauseNode create() {
return new SetExceptionCauseNodeGen();
}
@GeneratedBy(SetExceptionCauseNode.class)
@DenyReplace
private static final class SetCause0Data extends Node implements SpecializationDataNode {
/**
* State Info:
* 0-18: InlinedCache
* Specialization: {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, PyExceptionInstanceCheckNode, SetCauseNode)}
* Parameter: {@link PyExceptionInstanceCheckNode} check
* Inline method: {@link PyExceptionInstanceCheckNodeGen#inline}
* 19-22: InlinedCache
* Specialization: {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, PyExceptionInstanceCheckNode, SetCauseNode)}
* Parameter: {@link SetCauseNode} setCauseNode
* Inline method: {@link SetCauseNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int setCause0_state_0_;
/**
* Source Info:
* Specialization: {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, PyExceptionInstanceCheckNode, SetCauseNode)}
* Parameter: {@link PyExceptionInstanceCheckNode} check
* Inline method: {@link PyExceptionInstanceCheckNodeGen#inline}
* Inline field: {@link Node} field1
*/
@Child @UnsafeAccessedField @SuppressWarnings("unused") private Node setCause0_check__field1_;
/**
* Source Info:
* Specialization: {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, PyExceptionInstanceCheckNode, SetCauseNode)}
* Parameter: {@link PyExceptionInstanceCheckNode} check
* Inline method: {@link PyExceptionInstanceCheckNodeGen#inline}
* Inline field: {@link Node} field2
*/
@Child @UnsafeAccessedField @SuppressWarnings("unused") private Node setCause0_check__field2_;
/**
* Source Info:
* Specialization: {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, PyExceptionInstanceCheckNode, SetCauseNode)}
* Parameter: {@link SetCauseNode} setCauseNode
* Inline method: {@link SetCauseNodeGen#inline}
* Inline field: {@link Node} field1
*/
@Child @UnsafeAccessedField @SuppressWarnings("unused") private Node setCause0_setCauseNode__field1_;
SetCause0Data() {
}
@Override
public NodeCost getCost() {
return NodeCost.NONE;
}
private static Lookup lookup_() {
return MethodHandles.lookup();
}
}
@GeneratedBy(SetExceptionCauseNode.class)
@DenyReplace
private static final class SetCause1Data extends Node implements SpecializationDataNode {
/**
* State Info:
* 0-4: InlinedCache
* Specialization: {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, IsTypeNode, InlinedBranchProfile, ValidExceptionNode, CallNode, Lazy, PyExceptionInstanceCheckNode, SetCauseNode)}
* Parameter: {@link IsTypeNode} isTypeNode
* Inline method: {@link IsTypeNodeGen#inline}
* 5: InlinedCache
* Specialization: {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, IsTypeNode, InlinedBranchProfile, ValidExceptionNode, CallNode, Lazy, PyExceptionInstanceCheckNode, SetCauseNode)}
* Parameter: {@link InlinedBranchProfile} baseCheckFailedProfile
* Inline method: {@link InlinedBranchProfile#inline}
* 6: InlinedCache
* Specialization: {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, IsTypeNode, InlinedBranchProfile, ValidExceptionNode, CallNode, Lazy, PyExceptionInstanceCheckNode, SetCauseNode)}
* Parameter: {@link Lazy} raise
* Inline method: {@link LazyNodeGen#inline}
* 7-25: InlinedCache
* Specialization: {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, IsTypeNode, InlinedBranchProfile, ValidExceptionNode, CallNode, Lazy, PyExceptionInstanceCheckNode, SetCauseNode)}
* Parameter: {@link PyExceptionInstanceCheckNode} check
* Inline method: {@link PyExceptionInstanceCheckNodeGen#inline}
* 26-29: InlinedCache
* Specialization: {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, IsTypeNode, InlinedBranchProfile, ValidExceptionNode, CallNode, Lazy, PyExceptionInstanceCheckNode, SetCauseNode)}
* Parameter: {@link SetCauseNode} setCauseNode
* Inline method: {@link SetCauseNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int setCause1_state_0_;
/**
* Source Info:
* Specialization: {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, IsTypeNode, InlinedBranchProfile, ValidExceptionNode, CallNode, Lazy, PyExceptionInstanceCheckNode, SetCauseNode)}
* Parameter: {@link IsTypeNode} isTypeNode
* Inline method: {@link IsTypeNodeGen#inline}
* Inline field: {@link Node} field1
*/
@Child @UnsafeAccessedField @SuppressWarnings("unused") private Node setCause1_isTypeNode__field1_;
/**
* Source Info:
* Specialization: {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, IsTypeNode, InlinedBranchProfile, ValidExceptionNode, CallNode, Lazy, PyExceptionInstanceCheckNode, SetCauseNode)}
* Parameter: {@link ValidExceptionNode} validException
*/
@Child ValidExceptionNode validException_;
/**
* Source Info:
* Specialization: {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, IsTypeNode, InlinedBranchProfile, ValidExceptionNode, CallNode, Lazy, PyExceptionInstanceCheckNode, SetCauseNode)}
* Parameter: {@link CallNode} callConstructor
*/
@Child CallNode callConstructor_;
/**
* Source Info:
* Specialization: {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, IsTypeNode, InlinedBranchProfile, ValidExceptionNode, CallNode, Lazy, PyExceptionInstanceCheckNode, SetCauseNode)}
* Parameter: {@link Lazy} raise
* Inline method: {@link LazyNodeGen#inline}
* Inline field: {@link Node} field1
*/
@Child @UnsafeAccessedField @SuppressWarnings("unused") private Node setCause1_raise__field1_;
/**
* Source Info:
* Specialization: {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, IsTypeNode, InlinedBranchProfile, ValidExceptionNode, CallNode, Lazy, PyExceptionInstanceCheckNode, SetCauseNode)}
* Parameter: {@link PyExceptionInstanceCheckNode} check
* Inline method: {@link PyExceptionInstanceCheckNodeGen#inline}
* Inline field: {@link Node} field1
*/
@Child @UnsafeAccessedField @SuppressWarnings("unused") private Node setCause1_check__field1_;
/**
* Source Info:
* Specialization: {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, IsTypeNode, InlinedBranchProfile, ValidExceptionNode, CallNode, Lazy, PyExceptionInstanceCheckNode, SetCauseNode)}
* Parameter: {@link PyExceptionInstanceCheckNode} check
* Inline method: {@link PyExceptionInstanceCheckNodeGen#inline}
* Inline field: {@link Node} field2
*/
@Child @UnsafeAccessedField @SuppressWarnings("unused") private Node setCause1_check__field2_;
/**
* Source Info:
* Specialization: {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, IsTypeNode, InlinedBranchProfile, ValidExceptionNode, CallNode, Lazy, PyExceptionInstanceCheckNode, SetCauseNode)}
* Parameter: {@link SetCauseNode} setCauseNode
* Inline method: {@link SetCauseNodeGen#inline}
* Inline field: {@link Node} field1
*/
@Child @UnsafeAccessedField @SuppressWarnings("unused") private Node setCause1_setCauseNode__field1_;
SetCause1Data() {
}
@Override
public NodeCost getCost() {
return NodeCost.NONE;
}
private static Lookup lookup_() {
return MethodHandles.lookup();
}
}
@GeneratedBy(SetExceptionCauseNode.class)
@DenyReplace
private static final class SetCause2Data extends Node implements SpecializationDataNode {
/**
* State Info:
* 0-4: InlinedCache
* Specialization: {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, IsTypeNode, PyExceptionInstanceCheckNode, PRaiseNode)}
* Parameter: {@link IsTypeNode} isTypeNode
* Inline method: {@link IsTypeNodeGen#inline}
* 5-23: InlinedCache
* Specialization: {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, IsTypeNode, PyExceptionInstanceCheckNode, PRaiseNode)}
* Parameter: {@link PyExceptionInstanceCheckNode} check
* Inline method: {@link PyExceptionInstanceCheckNodeGen#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int setCause2_state_0_;
/**
* Source Info:
* Specialization: {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, IsTypeNode, PyExceptionInstanceCheckNode, PRaiseNode)}
* Parameter: {@link IsTypeNode} isTypeNode
* Inline method: {@link IsTypeNodeGen#inline}
* Inline field: {@link Node} field1
*/
@Child @UnsafeAccessedField @SuppressWarnings("unused") private Node setCause2_isTypeNode__field1_;
/**
* Source Info:
* Specialization: {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, IsTypeNode, PyExceptionInstanceCheckNode, PRaiseNode)}
* Parameter: {@link PyExceptionInstanceCheckNode} check
* Inline method: {@link PyExceptionInstanceCheckNodeGen#inline}
* Inline field: {@link Node} field1
*/
@Child @UnsafeAccessedField @SuppressWarnings("unused") private Node setCause2_check__field1_;
/**
* Source Info:
* Specialization: {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, IsTypeNode, PyExceptionInstanceCheckNode, PRaiseNode)}
* Parameter: {@link PyExceptionInstanceCheckNode} check
* Inline method: {@link PyExceptionInstanceCheckNodeGen#inline}
* Inline field: {@link Node} field2
*/
@Child @UnsafeAccessedField @SuppressWarnings("unused") private Node setCause2_check__field2_;
/**
* Source Info:
* Specialization: {@link SetExceptionCauseNode#setCause(VirtualFrame, Object, Object, Node, IsTypeNode, PyExceptionInstanceCheckNode, PRaiseNode)}
* Parameter: {@link PRaiseNode} raise
*/
@Child PRaiseNode raise_;
SetCause2Data() {
}
@Override
public NodeCost getCost() {
return NodeCost.NONE;
}
private static Lookup lookup_() {
return MethodHandles.lookup();
}
}
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy