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

com.oracle.graal.python.lib.PyNumberFloatNodeGen 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.modules.WarningsModuleBuiltins.WarnNode;
import com.oracle.graal.python.builtins.objects.type.SpecialMethodSlot;
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.CallUnaryMethodNode;
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.BuiltinClassProfiles.InlineIsBuiltinClassProfile;
import com.oracle.graal.python.nodes.object.BuiltinClassProfilesFactory.InlineIsBuiltinClassProfileNodeGen;
import com.oracle.graal.python.nodes.util.CastToJavaDoubleNode;
import com.oracle.graal.python.nodes.util.CastToJavaDoubleNodeGen;
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.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 java.lang.invoke.MethodHandles;
import java.lang.invoke.VarHandle;
import java.lang.invoke.MethodHandles.Lookup;
import java.util.Objects;

/**
 * Debug Info: 
 *   Specialization {@link PyNumberFloatNode#doDouble}
 *     Activation probability: 0.32000
 *     With/without class size: 7/0 bytes
 *   Specialization {@link PyNumberFloatNode#doInt}
 *     Activation probability: 0.26000
 *     With/without class size: 7/0 bytes
 *   Specialization {@link PyNumberFloatNode#doLong}
 *     Activation probability: 0.20000
 *     With/without class size: 6/0 bytes
 *   Specialization {@link PyNumberFloatNode#doBoolean}
 *     Activation probability: 0.14000
 *     With/without class size: 5/0 bytes
 *   Specialization {@link PyNumberFloatNode#doObject}
 *     Activation probability: 0.08000
 *     With/without class size: 15/125 bytes
 * 
*/ @GeneratedBy(PyNumberFloatNode.class) @SuppressWarnings("javadoc") public final class PyNumberFloatNodeGen { private static final StateField OBJECT__PY_NUMBER_FLOAT_NODE_OBJECT_STATE_0_UPDATER = StateField.create(ObjectData.lookup_(), "object_state_0_"); private static final StateField OBJECT__PY_NUMBER_FLOAT_NODE_OBJECT_STATE_1_UPDATER = StateField.create(ObjectData.lookup_(), "object_state_1_"); private static final StateField OBJECT__PY_NUMBER_FLOAT_NODE_OBJECT_STATE_2_UPDATER = StateField.create(ObjectData.lookup_(), "object_state_2_"); private static final StateField OBJECT__PY_NUMBER_FLOAT_NODE_OBJECT_STATE_3_UPDATER = StateField.create(ObjectData.lookup_(), "object_state_3_"); private static final Uncached UNCACHED = new Uncached(); @NeverDefault public static PyNumberFloatNode getUncached() { return PyNumberFloatNodeGen.UNCACHED; } /** * Required Fields:
    *
  • {@link Inlined#state_0_} *
  • {@link Inlined#object_cache} *
*/ @NeverDefault public static PyNumberFloatNode inline(@RequiredField(bits = 5, value = StateField.class)@RequiredField(type = Node.class, value = ReferenceField.class) InlineTarget target) { return new PyNumberFloatNodeGen.Inlined(target); } @GeneratedBy(PyNumberFloatNode.class) @DenyReplace private static final class Inlined extends PyNumberFloatNode { /** * State Info:
         *   0: SpecializationActive {@link PyNumberFloatNode#doDouble}
         *   1: SpecializationActive {@link PyNumberFloatNode#doInt}
         *   2: SpecializationActive {@link PyNumberFloatNode#doLong}
         *   3: SpecializationActive {@link PyNumberFloatNode#doBoolean}
         *   4: SpecializationActive {@link PyNumberFloatNode#doObject}
         * 
*/ private final StateField state_0_; private final ReferenceField object_cache; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link GetClassNode} getClassNode
         *   Inline method: {@link GetClassNodeGen#inline}
*/ private final GetClassNode object_getClassNode_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link GetClassNode} resultClassNode
         *   Inline method: {@link GetClassNodeGen#inline}
*/ private final GetClassNode object_resultClassNode_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link InlineIsBuiltinClassProfile} resultProfile
         *   Inline method: {@link InlineIsBuiltinClassProfileNodeGen#inline}
*/ private final InlineIsBuiltinClassProfile object_resultProfile_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link PyIndexCheckNode} indexCheckNode
         *   Inline method: {@link PyIndexCheckNodeGen#inline}
*/ private final PyIndexCheckNode object_indexCheckNode_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link PyNumberIndexNode} indexNode
         *   Inline method: {@link PyNumberIndexNodeGen#inline}
*/ private final PyNumberIndexNode object_indexNode_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link CastToJavaDoubleNode} cast
         *   Inline method: {@link CastToJavaDoubleNodeGen#inline}
*/ private final CastToJavaDoubleNode object_cast_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link Lazy} raiseNode
         *   Inline method: {@link LazyNodeGen#inline}
*/ private final Lazy object_raiseNode_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link PyFloatFromString} fromString
         *   Inline method: {@link PyFloatFromStringNodeGen#inline}
*/ private final PyFloatFromString object_fromString_; @SuppressWarnings("unchecked") private Inlined(InlineTarget target) { assert target.getTargetClass().isAssignableFrom(PyNumberFloatNode.class); this.state_0_ = target.getState(0, 5); this.object_cache = target.getReference(1, ObjectData.class); this.object_getClassNode_ = GetClassNodeGen.inline(InlineTarget.create(GetClassNode.class, OBJECT__PY_NUMBER_FLOAT_NODE_OBJECT_STATE_0_UPDATER.subUpdater(0, 17), ReferenceField.create(ObjectData.lookup_(), "object_getClassNode__field1_", Node.class))); this.object_resultClassNode_ = GetClassNodeGen.inline(InlineTarget.create(GetClassNode.class, OBJECT__PY_NUMBER_FLOAT_NODE_OBJECT_STATE_1_UPDATER.subUpdater(0, 17), ReferenceField.create(ObjectData.lookup_(), "object_resultClassNode__field1_", Node.class))); this.object_resultProfile_ = InlineIsBuiltinClassProfileNodeGen.inline(InlineTarget.create(InlineIsBuiltinClassProfile.class, OBJECT__PY_NUMBER_FLOAT_NODE_OBJECT_STATE_0_UPDATER.subUpdater(23, 3))); this.object_indexCheckNode_ = PyIndexCheckNodeGen.inline(InlineTarget.create(PyIndexCheckNode.class, OBJECT__PY_NUMBER_FLOAT_NODE_OBJECT_STATE_1_UPDATER.subUpdater(17, 7), ReferenceField.create(ObjectData.lookup_(), "object_indexCheckNode__field1_", Node.class))); this.object_indexNode_ = PyNumberIndexNodeGen.inline(InlineTarget.create(PyNumberIndexNode.class, OBJECT__PY_NUMBER_FLOAT_NODE_OBJECT_STATE_0_UPDATER.subUpdater(17, 6), ReferenceField.create(ObjectData.lookup_(), "object_indexNode__field1_", Node.class), ReferenceField.create(ObjectData.lookup_(), "object_indexNode__field2_", Node.class), ReferenceField.create(ObjectData.lookup_(), "object_indexNode__field3_", Node.class), ReferenceField.create(ObjectData.lookup_(), "object_indexNode__field4_", Node.class), ReferenceField.create(ObjectData.lookup_(), "object_indexNode__field5_", Node.class))); this.object_cast_ = CastToJavaDoubleNodeGen.inline(InlineTarget.create(CastToJavaDoubleNode.class, OBJECT__PY_NUMBER_FLOAT_NODE_OBJECT_STATE_2_UPDATER.subUpdater(0, 17), ReferenceField.create(ObjectData.lookup_(), "object_cast__field1_", Node.class), ReferenceField.create(ObjectData.lookup_(), "object_cast__field2_", Node.class), ReferenceField.create(ObjectData.lookup_(), "object_cast__field3_", Node.class))); this.object_raiseNode_ = LazyNodeGen.inline(InlineTarget.create(Lazy.class, OBJECT__PY_NUMBER_FLOAT_NODE_OBJECT_STATE_0_UPDATER.subUpdater(26, 1), ReferenceField.create(ObjectData.lookup_(), "object_raiseNode__field1_", Node.class))); this.object_fromString_ = PyFloatFromStringNodeGen.inline(InlineTarget.create(PyFloatFromString.class, OBJECT__PY_NUMBER_FLOAT_NODE_OBJECT_STATE_0_UPDATER.subUpdater(27, 3), OBJECT__PY_NUMBER_FLOAT_NODE_OBJECT_STATE_3_UPDATER.subUpdater(0, 31), ReferenceField.create(ObjectData.lookup_(), "object_fromString__field2_", Node.class), ReferenceField.create(ObjectData.lookup_(), "object_fromString__field3_", Node.class), ReferenceField.create(ObjectData.lookup_(), "object_fromString__field4_", Node.class), ReferenceField.create(ObjectData.lookup_(), "object_fromString__field5_", Node.class), ReferenceField.create(ObjectData.lookup_(), "object_fromString__field6_", Node.class), ReferenceField.create(ObjectData.lookup_(), "object_fromString__field7_", Node.class), ReferenceField.create(ObjectData.lookup_(), "object_fromString__field8_", Node.class), ReferenceField.create(ObjectData.lookup_(), "object_fromString__field9_", Node.class), ReferenceField.create(ObjectData.lookup_(), "object_fromString__field10_", Node.class), ReferenceField.create(ObjectData.lookup_(), "object_fromString__field11_", Node.class), ReferenceField.create(ObjectData.lookup_(), "object_fromString__field12_", Node.class), ReferenceField.create(ObjectData.lookup_(), "object_fromString__field13_", Node.class))); } @Override public double execute(Frame frameValue, Node arg0Value, Object arg1Value) { int state_0 = this.state_0_.get(arg0Value); if (state_0 != 0 /* is SpecializationActive[PyNumberFloatNode.doDouble(double)] || SpecializationActive[PyNumberFloatNode.doInt(int)] || SpecializationActive[PyNumberFloatNode.doLong(long)] || SpecializationActive[PyNumberFloatNode.doBoolean(boolean)] || SpecializationActive[PyNumberFloatNode.doObject(VirtualFrame, Node, Object, GetClassNode, LookupSpecialMethodSlotNode, CallUnaryMethodNode, GetClassNode, InlineIsBuiltinClassProfile, IsSubtypeNode, PyIndexCheckNode, PyNumberIndexNode, CastToJavaDoubleNode, WarnNode, Lazy, PyFloatFromString)] */) { if ((state_0 & 0b1) != 0 /* is SpecializationActive[PyNumberFloatNode.doDouble(double)] */ && arg1Value instanceof Double) { double arg1Value_ = (double) arg1Value; return PyNumberFloatNode.doDouble(arg1Value_); } if ((state_0 & 0b10) != 0 /* is SpecializationActive[PyNumberFloatNode.doInt(int)] */ && arg1Value instanceof Integer) { int arg1Value_ = (int) arg1Value; return PyNumberFloatNode.doInt(arg1Value_); } if ((state_0 & 0b100) != 0 /* is SpecializationActive[PyNumberFloatNode.doLong(long)] */ && arg1Value instanceof Long) { long arg1Value_ = (long) arg1Value; return PyNumberFloatNode.doLong(arg1Value_); } if ((state_0 & 0b1000) != 0 /* is SpecializationActive[PyNumberFloatNode.doBoolean(boolean)] */ && arg1Value instanceof Boolean) { boolean arg1Value_ = (boolean) arg1Value; return PyNumberFloatNode.doBoolean(arg1Value_); } if ((state_0 & 0b10000) != 0 /* is SpecializationActive[PyNumberFloatNode.doObject(VirtualFrame, Node, Object, GetClassNode, LookupSpecialMethodSlotNode, CallUnaryMethodNode, GetClassNode, InlineIsBuiltinClassProfile, IsSubtypeNode, PyIndexCheckNode, PyNumberIndexNode, CastToJavaDoubleNode, WarnNode, Lazy, PyFloatFromString)] */) { ObjectData s4_ = this.object_cache.get(arg0Value); if (s4_ != null) { if ((!(PGuards.isDouble(arg1Value))) && (!(PGuards.isInteger(arg1Value))) && (!(PGuards.isBoolean(arg1Value)))) { return PyNumberFloatNode.doObject((VirtualFrame) frameValue, s4_, arg1Value, this.object_getClassNode_, s4_.lookup_, s4_.call_, this.object_resultClassNode_, this.object_resultProfile_, s4_.resultSubtypeNode_, this.object_indexCheckNode_, this.object_indexNode_, this.object_cast_, s4_.warnNode_, this.object_raiseNode_, this.object_fromString_); } } } } CompilerDirectives.transferToInterpreterAndInvalidate(); return executeAndSpecialize(frameValue, arg0Value, arg1Value); } private double executeAndSpecialize(Frame frameValue, Node arg0Value, Object arg1Value) { int state_0 = this.state_0_.get(arg0Value); if (arg1Value instanceof Double) { double arg1Value_ = (double) arg1Value; state_0 = state_0 | 0b1 /* add SpecializationActive[PyNumberFloatNode.doDouble(double)] */; this.state_0_.set(arg0Value, state_0); return PyNumberFloatNode.doDouble(arg1Value_); } if (arg1Value instanceof Integer) { int arg1Value_ = (int) arg1Value; state_0 = state_0 | 0b10 /* add SpecializationActive[PyNumberFloatNode.doInt(int)] */; this.state_0_.set(arg0Value, state_0); return PyNumberFloatNode.doInt(arg1Value_); } if (arg1Value instanceof Long) { long arg1Value_ = (long) arg1Value; state_0 = state_0 | 0b100 /* add SpecializationActive[PyNumberFloatNode.doLong(long)] */; this.state_0_.set(arg0Value, state_0); return PyNumberFloatNode.doLong(arg1Value_); } if (arg1Value instanceof Boolean) { boolean arg1Value_ = (boolean) arg1Value; state_0 = state_0 | 0b1000 /* add SpecializationActive[PyNumberFloatNode.doBoolean(boolean)] */; this.state_0_.set(arg0Value, state_0); return PyNumberFloatNode.doBoolean(arg1Value_); } if ((!(PGuards.isDouble(arg1Value))) && (!(PGuards.isInteger(arg1Value))) && (!(PGuards.isBoolean(arg1Value)))) { ObjectData s4_ = arg0Value.insert(new ObjectData()); LookupSpecialMethodSlotNode lookup__ = s4_.insert((LookupSpecialMethodSlotNode.create(SpecialMethodSlot.Float))); Objects.requireNonNull(lookup__, "Specialization 'doObject(VirtualFrame, Node, Object, GetClassNode, LookupSpecialMethodSlotNode, CallUnaryMethodNode, GetClassNode, InlineIsBuiltinClassProfile, IsSubtypeNode, PyIndexCheckNode, PyNumberIndexNode, CastToJavaDoubleNode, WarnNode, Lazy, PyFloatFromString)' cache 'lookup' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s4_.lookup_ = lookup__; CallUnaryMethodNode call__ = s4_.insert((CallUnaryMethodNode.create())); Objects.requireNonNull(call__, "Specialization 'doObject(VirtualFrame, Node, Object, GetClassNode, LookupSpecialMethodSlotNode, CallUnaryMethodNode, GetClassNode, InlineIsBuiltinClassProfile, IsSubtypeNode, PyIndexCheckNode, PyNumberIndexNode, CastToJavaDoubleNode, WarnNode, Lazy, PyFloatFromString)' cache 'call' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s4_.call_ = call__; IsSubtypeNode resultSubtypeNode__ = s4_.insert((IsSubtypeNode.create())); Objects.requireNonNull(resultSubtypeNode__, "Specialization 'doObject(VirtualFrame, Node, Object, GetClassNode, LookupSpecialMethodSlotNode, CallUnaryMethodNode, GetClassNode, InlineIsBuiltinClassProfile, IsSubtypeNode, PyIndexCheckNode, PyNumberIndexNode, CastToJavaDoubleNode, WarnNode, Lazy, PyFloatFromString)' cache 'resultSubtypeNode' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s4_.resultSubtypeNode_ = resultSubtypeNode__; WarnNode warnNode__ = s4_.insert((WarnNode.create())); Objects.requireNonNull(warnNode__, "Specialization 'doObject(VirtualFrame, Node, Object, GetClassNode, LookupSpecialMethodSlotNode, CallUnaryMethodNode, GetClassNode, InlineIsBuiltinClassProfile, IsSubtypeNode, PyIndexCheckNode, PyNumberIndexNode, CastToJavaDoubleNode, WarnNode, Lazy, PyFloatFromString)' cache 'warnNode' returned a 'null' default value. The cache initializer must never return a default value for this cache. Use @Cached(neverDefault=false) to allow default values for this cached value or make sure the cache initializer never returns 'null'."); s4_.warnNode_ = warnNode__; VarHandle.storeStoreFence(); this.object_cache.set(arg0Value, s4_); state_0 = state_0 | 0b10000 /* add SpecializationActive[PyNumberFloatNode.doObject(VirtualFrame, Node, Object, GetClassNode, LookupSpecialMethodSlotNode, CallUnaryMethodNode, GetClassNode, InlineIsBuiltinClassProfile, IsSubtypeNode, PyIndexCheckNode, PyNumberIndexNode, CastToJavaDoubleNode, WarnNode, Lazy, PyFloatFromString)] */; this.state_0_.set(arg0Value, state_0); return PyNumberFloatNode.doObject((VirtualFrame) frameValue, s4_, arg1Value, this.object_getClassNode_, lookup__, call__, this.object_resultClassNode_, this.object_resultProfile_, resultSubtypeNode__, this.object_indexCheckNode_, this.object_indexNode_, this.object_cast_, warnNode__, this.object_raiseNode_, this.object_fromString_); } throw new UnsupportedSpecializationException(this, new Node[] {null, null}, arg0Value, arg1Value); } @Override public boolean isAdoptable() { return false; } } @GeneratedBy(PyNumberFloatNode.class) @DenyReplace private static final class ObjectData extends Node implements SpecializationDataNode { /** * State Info:
         *   0-16: InlinedCache
         *        Specialization: {@link PyNumberFloatNode#doObject}
         *        Parameter: {@link GetClassNode} getClassNode
         *        Inline method: {@link GetClassNodeGen#inline}
         *   17-22: InlinedCache
         *        Specialization: {@link PyNumberFloatNode#doObject}
         *        Parameter: {@link PyNumberIndexNode} indexNode
         *        Inline method: {@link PyNumberIndexNodeGen#inline}
         *   23-25: InlinedCache
         *        Specialization: {@link PyNumberFloatNode#doObject}
         *        Parameter: {@link InlineIsBuiltinClassProfile} resultProfile
         *        Inline method: {@link InlineIsBuiltinClassProfileNodeGen#inline}
         *   26: InlinedCache
         *        Specialization: {@link PyNumberFloatNode#doObject}
         *        Parameter: {@link Lazy} raiseNode
         *        Inline method: {@link LazyNodeGen#inline}
         *   27-29: InlinedCache
         *        Specialization: {@link PyNumberFloatNode#doObject}
         *        Parameter: {@link PyFloatFromString} fromString
         *        Inline method: {@link PyFloatFromStringNodeGen#inline}
         * 
*/ @CompilationFinal @UnsafeAccessedField private int object_state_0_; /** * State Info:
         *   0-16: InlinedCache
         *        Specialization: {@link PyNumberFloatNode#doObject}
         *        Parameter: {@link GetClassNode} resultClassNode
         *        Inline method: {@link GetClassNodeGen#inline}
         *   17-23: InlinedCache
         *        Specialization: {@link PyNumberFloatNode#doObject}
         *        Parameter: {@link PyIndexCheckNode} indexCheckNode
         *        Inline method: {@link PyIndexCheckNodeGen#inline}
         * 
*/ @CompilationFinal @UnsafeAccessedField private int object_state_1_; /** * State Info:
         *   0-16: InlinedCache
         *        Specialization: {@link PyNumberFloatNode#doObject}
         *        Parameter: {@link CastToJavaDoubleNode} cast
         *        Inline method: {@link CastToJavaDoubleNodeGen#inline}
         * 
*/ @CompilationFinal @UnsafeAccessedField private int object_state_2_; /** * State Info:
         *   0-30: InlinedCache
         *        Specialization: {@link PyNumberFloatNode#doObject}
         *        Parameter: {@link PyFloatFromString} fromString
         *        Inline method: {@link PyFloatFromStringNodeGen#inline}
         * 
*/ @CompilationFinal @UnsafeAccessedField private int object_state_3_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link GetClassNode} getClassNode
         *   Inline method: {@link GetClassNodeGen#inline}
         *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node object_getClassNode__field1_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link LookupSpecialMethodSlotNode} lookup
*/ @Child LookupSpecialMethodSlotNode lookup_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link CallUnaryMethodNode} call
*/ @Child CallUnaryMethodNode call_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link GetClassNode} resultClassNode
         *   Inline method: {@link GetClassNodeGen#inline}
         *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node object_resultClassNode__field1_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link IsSubtypeNode} resultSubtypeNode
*/ @Child IsSubtypeNode resultSubtypeNode_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link PyIndexCheckNode} indexCheckNode
         *   Inline method: {@link PyIndexCheckNodeGen#inline}
         *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node object_indexCheckNode__field1_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link PyNumberIndexNode} indexNode
         *   Inline method: {@link PyNumberIndexNodeGen#inline}
         *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node object_indexNode__field1_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link PyNumberIndexNode} indexNode
         *   Inline method: {@link PyNumberIndexNodeGen#inline}
         *   Inline field: {@link Node} field2
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node object_indexNode__field2_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link PyNumberIndexNode} indexNode
         *   Inline method: {@link PyNumberIndexNodeGen#inline}
         *   Inline field: {@link Node} field3
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node object_indexNode__field3_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link PyNumberIndexNode} indexNode
         *   Inline method: {@link PyNumberIndexNodeGen#inline}
         *   Inline field: {@link Node} field4
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node object_indexNode__field4_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link PyNumberIndexNode} indexNode
         *   Inline method: {@link PyNumberIndexNodeGen#inline}
         *   Inline field: {@link Node} field5
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node object_indexNode__field5_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link CastToJavaDoubleNode} cast
         *   Inline method: {@link CastToJavaDoubleNodeGen#inline}
         *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node object_cast__field1_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link CastToJavaDoubleNode} cast
         *   Inline method: {@link CastToJavaDoubleNodeGen#inline}
         *   Inline field: {@link Node} field2
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node object_cast__field2_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link CastToJavaDoubleNode} cast
         *   Inline method: {@link CastToJavaDoubleNodeGen#inline}
         *   Inline field: {@link Node} field3
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node object_cast__field3_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link WarnNode} warnNode
*/ @Child WarnNode warnNode_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link Lazy} raiseNode
         *   Inline method: {@link LazyNodeGen#inline}
         *   Inline field: {@link Node} field1
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node object_raiseNode__field1_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link PyFloatFromString} fromString
         *   Inline method: {@link PyFloatFromStringNodeGen#inline}
         *   Inline field: {@link Node} field2
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node object_fromString__field2_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link PyFloatFromString} fromString
         *   Inline method: {@link PyFloatFromStringNodeGen#inline}
         *   Inline field: {@link Node} field3
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node object_fromString__field3_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link PyFloatFromString} fromString
         *   Inline method: {@link PyFloatFromStringNodeGen#inline}
         *   Inline field: {@link Node} field4
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node object_fromString__field4_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link PyFloatFromString} fromString
         *   Inline method: {@link PyFloatFromStringNodeGen#inline}
         *   Inline field: {@link Node} field5
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node object_fromString__field5_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link PyFloatFromString} fromString
         *   Inline method: {@link PyFloatFromStringNodeGen#inline}
         *   Inline field: {@link Node} field6
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node object_fromString__field6_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link PyFloatFromString} fromString
         *   Inline method: {@link PyFloatFromStringNodeGen#inline}
         *   Inline field: {@link Node} field7
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node object_fromString__field7_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link PyFloatFromString} fromString
         *   Inline method: {@link PyFloatFromStringNodeGen#inline}
         *   Inline field: {@link Node} field8
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node object_fromString__field8_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link PyFloatFromString} fromString
         *   Inline method: {@link PyFloatFromStringNodeGen#inline}
         *   Inline field: {@link Node} field9
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node object_fromString__field9_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link PyFloatFromString} fromString
         *   Inline method: {@link PyFloatFromStringNodeGen#inline}
         *   Inline field: {@link Node} field10
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node object_fromString__field10_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link PyFloatFromString} fromString
         *   Inline method: {@link PyFloatFromStringNodeGen#inline}
         *   Inline field: {@link Node} field11
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node object_fromString__field11_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link PyFloatFromString} fromString
         *   Inline method: {@link PyFloatFromStringNodeGen#inline}
         *   Inline field: {@link Node} field12
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node object_fromString__field12_; /** * Source Info:
         *   Specialization: {@link PyNumberFloatNode#doObject}
         *   Parameter: {@link PyFloatFromString} fromString
         *   Inline method: {@link PyFloatFromStringNodeGen#inline}
         *   Inline field: {@link Node} field13
*/ @Child @UnsafeAccessedField @SuppressWarnings("unused") private Node object_fromString__field13_; ObjectData() { } @Override public NodeCost getCost() { return NodeCost.NONE; } private static Lookup lookup_() { return MethodHandles.lookup(); } } @GeneratedBy(PyNumberFloatNode.class) @DenyReplace private static final class Uncached extends PyNumberFloatNode { @Override public double execute(Frame frameValue, Node arg0Value, Object arg1Value) { CompilerDirectives.transferToInterpreterAndInvalidate(); if (arg1Value instanceof Double) { double arg1Value_ = (double) arg1Value; return PyNumberFloatNode.doDouble(arg1Value_); } if (arg1Value instanceof Integer) { int arg1Value_ = (int) arg1Value; return PyNumberFloatNode.doInt(arg1Value_); } if (arg1Value instanceof Long) { long arg1Value_ = (long) arg1Value; return PyNumberFloatNode.doLong(arg1Value_); } if (arg1Value instanceof Boolean) { boolean arg1Value_ = (boolean) arg1Value; return PyNumberFloatNode.doBoolean(arg1Value_); } if ((!(PGuards.isDouble(arg1Value))) && (!(PGuards.isInteger(arg1Value))) && (!(PGuards.isBoolean(arg1Value)))) { return PyNumberFloatNode.doObject((VirtualFrame) frameValue, arg0Value, arg1Value, (GetClassNode.getUncached()), (LookupSpecialMethodSlotNode.getUncached(SpecialMethodSlot.Float)), (CallUnaryMethodNode.getUncached()), (GetClassNode.getUncached()), (InlineIsBuiltinClassProfile.getUncached()), (IsSubtypeNode.getUncached()), (PyIndexCheckNodeGen.getUncached()), (PyNumberIndexNodeGen.getUncached()), (CastToJavaDoubleNodeGen.getUncached()), (WarnNode.getUncached()), (Lazy.getUncached()), (PyFloatFromStringNodeGen.getUncached())); } throw new UnsupportedSpecializationException(this, new Node[] {null, null}, arg0Value, arg1Value); } @Override public NodeCost getCost() { return NodeCost.MEGAMORPHIC; } @Override public boolean isAdoptable() { return false; } } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy