Class LongValueProfile

All Implemented Interfaces:
Cloneable

public final class LongValueProfile extends Profile

Specialized value profile to capture certain properties of long runtime values. Value profiles require a runtime check in their initialized state to verify their profiled assumption. Value profiles are limited to capture monomorphic profiles only. This means that if two or more values are profiled within a single profile then the profile has no effect. If the value assumption is invalidated in compiled code then it is invalidated.

Usage example:

 class SampleNode extends Node {

     final LongValueProfile profile = LongValueProfile.createIdentityProfile();

     long execute(long input) {
         long profiledValue = profile.profile(input);
         // compiler may know now more about profiledValue
         return profiledValue;
     }
 }
 
Since:
0.10
See Also:
  • Method Details

    • profile

      public long profile(long value)
      Since:
      0.10
    • disable

      public void disable()
      Disables this profile by setting it to its generic state. After disabling it is guaranteed to never deoptimize 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.

      Overrides:
      disable in class Profile
      Since:
      22.1
    • reset

      public void 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.

      Overrides:
      reset in class Profile
      Since:
      22.1
    • toString

      public String toString()
      Overrides:
      toString in class Object
      Since:
      22.1
    • createIdentityProfile

      public static LongValueProfile createIdentityProfile()
      Returns a value profile that profiles the exact value of an long.
      Since:
      0.10
      See Also:
    • create

      public static LongValueProfile create()
      Returns a value profile that profiles the exact value of an long.
      Since:
      22.1
      See Also:
    • getUncached

      public static LongValueProfile getUncached()
      Returns the uncached version of the profile. The uncached version of a profile does nothing.
      Since:
      19.0
    • inline

      public static InlinedLongValueProfile inline(InlineSupport.InlineTarget target)
      Returns an inlined version of the profile. This version is automatically used by Truffle DSL node inlining.
      Since:
      23.0