org.truffleruby.language.exceptions.EnsureNodeGen Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ruby-language Show documentation
Show all versions of ruby-language Show documentation
Core module of Ruby on Truffle
The newest version!
// CheckStyle: start generated
package org.truffleruby.language.exceptions;
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.InlineSupport.InlineTarget;
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.profiles.InlinedBranchProfile;
import com.oracle.truffle.api.profiles.InlinedConditionProfile;
import java.lang.invoke.MethodHandles;
import org.truffleruby.language.RubyNode;
/**
* Debug Info:
* Specialization {@link EnsureNode#ensure}
* Activation probability: 1.00000
* With/without class size: 24/1 bytes
*
*/
@GeneratedBy(EnsureNode.class)
@SuppressWarnings("javadoc")
public final class EnsureNodeGen extends EnsureNode {
private static final StateField STATE_0_EnsureNode_UPDATER = StateField.create(MethodHandles.lookup(), "state_0_");
/**
* Source Info:
* Specialization: {@link EnsureNode#ensure}
* Parameter: {@link InlinedBranchProfile} killExceptionProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private static final InlinedBranchProfile INLINED_KILL_EXCEPTION_PROFILE_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, STATE_0_EnsureNode_UPDATER.subUpdater(0, 1)));
/**
* Source Info:
* Specialization: {@link EnsureNode#ensure}
* Parameter: {@link InlinedBranchProfile} guestExceptionProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private static final InlinedBranchProfile INLINED_GUEST_EXCEPTION_PROFILE_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, STATE_0_EnsureNode_UPDATER.subUpdater(1, 1)));
/**
* Source Info:
* Specialization: {@link EnsureNode#ensure}
* Parameter: {@link InlinedBranchProfile} controlFlowExceptionProfile
* Inline method: {@link InlinedBranchProfile#inline}
*/
private static final InlinedBranchProfile INLINED_CONTROL_FLOW_EXCEPTION_PROFILE_ = InlinedBranchProfile.inline(InlineTarget.create(InlinedBranchProfile.class, STATE_0_EnsureNode_UPDATER.subUpdater(2, 1)));
/**
* Source Info:
* Specialization: {@link EnsureNode#ensure}
* Parameter: {@link InlinedConditionProfile} raiseExceptionProfile
* Inline method: {@link InlinedConditionProfile#inline}
*/
private static final InlinedConditionProfile INLINED_RAISE_EXCEPTION_PROFILE_ = InlinedConditionProfile.inline(InlineTarget.create(InlinedConditionProfile.class, STATE_0_EnsureNode_UPDATER.subUpdater(3, 2)));
/**
* State Info:
* 0: InlinedCache
* Specialization: {@link EnsureNode#ensure}
* Parameter: {@link InlinedBranchProfile} killExceptionProfile
* Inline method: {@link InlinedBranchProfile#inline}
* 1: InlinedCache
* Specialization: {@link EnsureNode#ensure}
* Parameter: {@link InlinedBranchProfile} guestExceptionProfile
* Inline method: {@link InlinedBranchProfile#inline}
* 2: InlinedCache
* Specialization: {@link EnsureNode#ensure}
* Parameter: {@link InlinedBranchProfile} controlFlowExceptionProfile
* Inline method: {@link InlinedBranchProfile#inline}
* 3-4: InlinedCache
* Specialization: {@link EnsureNode#ensure}
* Parameter: {@link InlinedConditionProfile} raiseExceptionProfile
* Inline method: {@link InlinedConditionProfile#inline}
*
*/
@CompilationFinal @UnsafeAccessedField private int state_0_;
private EnsureNodeGen(RubyNode tryPart, RubyNode ensurePart) {
super(tryPart, ensurePart);
}
@Override
protected Object executeCommon(VirtualFrame frameValue, boolean arg0Value) {
return ensure(frameValue, arg0Value, INLINED_KILL_EXCEPTION_PROFILE_, INLINED_GUEST_EXCEPTION_PROFILE_, INLINED_CONTROL_FLOW_EXCEPTION_PROFILE_, INLINED_RAISE_EXCEPTION_PROFILE_);
}
@NeverDefault
public static EnsureNode create(RubyNode tryPart, RubyNode ensurePart) {
return new EnsureNodeGen(tryPart, ensurePart);
}
}