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 TypeMethodDescriptionvoidDisables this profile by setting it to its generic state.static InlinedConditionProfileReturns the uncached version of the profile.static InlinedConditionProfileinline(InlineSupport.InlineTarget target) Returns an inlined version of the profile.booleanvoidResets this profile to its uninitialized state.Prints a string representation of this inlined profile given a target node.booleanbooleanMethods inherited from class com.oracle.truffle.api.profiles.InlinedProfile
toString
-
Method Details
-
profile
- Since:
- 23.0
-
wasTrue
Returnstrueif theprofile(Node, boolean)method ever received atruevalue, otherwisefalse. For profiles with profiling disabled oruncachedprofiles this method always returnstrue.- Since:
- 23.0
-
wasFalse
Returnstrueif theprofile(Node, boolean)method ever received afalsevalue, otherwisefalse. For profiles with profiling disabled oruncachedprofiles this method always returnstrue.- Since:
- 23.0
-
disable
Disables this profile by setting it to its generic state. After disabling it is guaranteed to neverdeoptimizeon 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:
disablein 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:
resetin classInlinedProfile- Since:
- 23.0
-
toString
Prints a string representation of this inlined profile given a target node.- Specified by:
toStringin 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
-