Class InlinedCountingConditionProfile
java.lang.Object
com.oracle.truffle.api.profiles.InlinedProfile
com.oracle.truffle.api.profiles.InlinedCountingConditionProfile
CountingConditionProfiles are useful to profile the outcome of conditions. A counting condition
profile holds a count for each branch whether a branch was hit or not and communicates this to
the compiler as frequency information. If binary information only is desired for each branch
should use
InlinedConditionProfile instead.
Usage example:
abstract class AbsoluteNode extends Node {
abstract void execute(int value);
@Specialization
int doDefault(int value,
@Cached InlinedCountingConditionProfile 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.Returns the uncached version of the profile.inline(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 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
-