Package com.oracle.truffle.api.profiles
Class InlinedConditionProfile
java.lang.Object
com.oracle.truffle.api.profiles.InlinedProfile
com.oracle.truffle.api.profiles.InlinedConditionProfile
ConditionProfiles are useful to profile the outcome of conditions. A regular condition profile
keeps track of a binary state, for each branch whether a branch was hit or not and communicates
this to the compiler. If frequency information for each branch should be collected use
InlinedCountingConditionProfile
instead.
Usage example:
abstract class AbsoluteNode extends Node { abstract void execute(int value); @Specialization int doDefault(int value, @Cached InlinedConditionProfile p) { if (p.profile(this, value >= 0)) { return value; } else { return -value; } } }
- Since:
- 23.0
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Disables this profile by setting it to its generic state.static InlinedConditionProfile
Returns the uncached version of the profile.static InlinedConditionProfile
inline
(InlineSupport.InlineTarget target) Returns an inlined version of the profile.boolean
void
Resets this profile to its uninitialized state.Prints a string representation of this inlined profile given a target node.boolean
boolean
Methods inherited from class com.oracle.truffle.api.profiles.InlinedProfile
toString
-
Method Details
-
profile
- Since:
- 23.0
-
wasTrue
Returnstrue
if theprofile(Node, boolean)
method ever received atrue
value, otherwisefalse
. For profiles with profiling disabled oruncached
profiles this method always returnstrue
.- Since:
- 23.0
-
wasFalse
Returnstrue
if theprofile(Node, boolean)
method ever received afalse
value, otherwisefalse
. For profiles with profiling disabled oruncached
profiles this method always returnstrue
.- Since:
- 23.0
-
disable
Disables this profile by setting it to its generic state. After disabling it is guaranteed to neverdeoptimize
on any invocation of a profile method.This method must not be called on compiled code paths. Note that disabling the profile will not invalidate existing compiled code that uses this profile.
- Specified by:
disable
in classInlinedProfile
- Since:
- 23.0
-
reset
Resets this profile to its uninitialized state. Has no effect if this profile is already in its uninitialized state or a disabled version of this profile is used.This method must not be called on compiled code paths. Note that disabling the profile will not invalidate existing compiled code that uses this profile.
- Specified by:
reset
in classInlinedProfile
- Since:
- 23.0
-
toString
Prints a string representation of this inlined profile given a target node.- Specified by:
toString
in classInlinedProfile
- Since:
- 23.0
-
inline
Returns an inlined version of the profile. This version is automatically used by Truffle DSL node inlining.- Since:
- 23.0
-
getUncached
Returns the uncached version of the profile. The uncached version of a profile does not perform any profiling.- Since:
- 23.0
-