Class SpecializationData

All Implemented Interfaces:
Comparable<TemplateMethod>, Iterable<MessageContainer>

public final class SpecializationData extends TemplateMethod
  • Constructor Details

  • Method Details

    • copy

      public SpecializationData copy()
    • isNodeReceiverVariable

      public boolean isNodeReceiverVariable(VariableElement var)
    • isNodeReceiverBound

      public boolean isNodeReceiverBound(DSLExpression expression)
    • isUncachedSpecialization

      public boolean isUncachedSpecialization()
    • setUnrollIndex

      public void setUnrollIndex(int unrollIndex)
    • getUnrollIndex

      public int getUnrollIndex()
    • setUnroll

      public void setUnroll(int unroll)
    • hasUnroll

      public boolean hasUnroll()
    • isUnrolled

      public boolean isUnrolled()
    • getUnroll

      public int getUnroll()
    • isCompilationFinalExpression

      public boolean isCompilationFinalExpression(DSLExpression expression)
      Returns true if an expression can always be folded to a constant during PE. Method calls are natural boundaries as we cannot look into them at annotation processing time. The passed expression must be resolved.
    • isPrepareForAOT

      public boolean isPrepareForAOT()
    • setPrepareForAOT

      public void setPrepareForAOT(boolean prepareForAOT)
    • setUncachedSpecialization

      public void setUncachedSpecialization(SpecializationData removeCompanion)
    • getUncachedSpecialization

      public SpecializationData getUncachedSpecialization()
    • needsVirtualFrame

      public boolean needsVirtualFrame()
    • needsTruffleBoundary

      public boolean needsTruffleBoundary()
    • needsPushEncapsulatingNode

      public boolean needsPushEncapsulatingNode()
    • isAnyLibraryBoundInGuard

      public boolean isAnyLibraryBoundInGuard()
    • isLibraryBoundInGuard

      public boolean isLibraryBoundInGuard(CacheExpression cachedLibrary)
    • isTrivialExpression

      public boolean isTrivialExpression(DSLExpression expression)
    • setReachesFallback

      public void setReachesFallback(boolean reachesFallback)
    • isReportPolymorphism

      public boolean isReportPolymorphism()
    • isReportMegamorphism

      public boolean isReportMegamorphism()
    • isReachesFallback

      public boolean isReachesFallback()
    • isGuardBoundWithCache

      public boolean isGuardBoundWithCache(GuardExpression guardExpression)
    • getBoundCaches

      public Set<CacheExpression> getBoundCaches(DSLExpression guardExpression, boolean transitiveCached)
    • setKind

      public void setKind(SpecializationData.SpecializationKind kind)
    • getIdempotence

      public SpecializationData.Idempotence getIdempotence(DSLExpression expression)
    • getBoundMethods

      public Set<ExecutableElement> getBoundMethods(DSLExpression expression)
    • isDynamicParameterBound

      public boolean isDynamicParameterBound(DSLExpression expression, boolean transitive)
    • findByVariable

      public Parameter findByVariable(VariableElement variable)
    • getLimitExpression

      public DSLExpression getLimitExpression()
    • setLimitExpression

      public void setLimitExpression(DSLExpression limitExpression)
    • setInsertBefore

      public void setInsertBefore(SpecializationData insertBefore)
    • setInsertBeforeName

      public void setInsertBeforeName(String insertBeforeName)
    • getInsertBefore

      public SpecializationData getInsertBefore()
    • getInsertBeforeName

      public String getInsertBeforeName()
    • getReplacesNames

      public Set<String> getReplacesNames()
    • setReplacesNames

      public void setReplacesNames(Set<String> replacesNames)
    • getReplaces

      public Set<SpecializationData> getReplaces()
    • setReplaces

      public void setReplaces(Set<SpecializationData> replaces)
    • getReplacedBy

      public Set<SpecializationData> getReplacedBy()
    • setReplacedBy

      public void setReplacedBy(Set<SpecializationData> replacedBy)
    • setReachable

      public void setReachable(boolean reachable)
    • setReplaced

      public void setReplaced(boolean replaced)
    • isReachable

      public boolean isReachable()
    • isReplaced

      public boolean isReplaced()
    • findChildContainers

      protected List<MessageContainer> findChildContainers()
      Overrides:
      findChildContainers in class TemplateMethod
    • needsState

      public boolean needsState(ProcessorContext context)
    • needsRewrite

      public boolean needsRewrite(ProcessorContext context)
    • compareTo

      public int compareTo(TemplateMethod other)
      Specified by:
      compareTo in interface Comparable<TemplateMethod>
      Overrides:
      compareTo in class TemplateMethod
    • setIndex

      public void setIndex(int order)
    • getIndex

      public int getIndex()
    • getIntrospectionIndex

      public int getIntrospectionIndex()
    • getNode

      public NodeData getNode()
    • isSpecialized

      public boolean isSpecialized()
    • isFallback

      public boolean isFallback()
    • getExceptions

      public List<SpecializationThrowsData> getExceptions()
    • hasUnexpectedResultRewrite

      public boolean hasUnexpectedResultRewrite()
    • getGuards

      public List<GuardExpression> getGuards()
    • setLocalActivationProbability

      public void setLocalActivationProbability(double activationProbability)
    • getLocalActivationProbability

      public double getLocalActivationProbability()
    • getActivationProbability

      public double getActivationProbability()
    • toString

      public String toString()
      Overrides:
      toString in class TemplateMethod
    • isFrameUsedByGuard

      public boolean isFrameUsedByGuard()
    • getCaches

      public List<CacheExpression> getCaches()
    • setCaches

      public void setCaches(List<CacheExpression> caches)
    • setAssumptionExpressions

      public void setAssumptionExpressions(List<AssumptionExpression> assumptionExpressions)
    • getAssumptionExpressions

      public List<AssumptionExpression> getAssumptionExpressions()
    • hasMultipleInstances

      public boolean hasMultipleInstances()
    • isGuardBindsExclusiveCache

      public boolean isGuardBindsExclusiveCache()
    • isConstantLimit

      public boolean isConstantLimit()
    • getMaximumNumberOfInstances

      public int getMaximumNumberOfInstances()
    • isReachableAfter

      public boolean isReachableAfter(SpecializationData prev)
    • findCache

      public CacheExpression findCache(Parameter resolvedParameter)