Class SpecializationData
java.lang.Object
com.oracle.truffle.dsl.processor.model.MessageContainer
com.oracle.truffle.dsl.processor.model.TemplateMethod
com.oracle.truffle.dsl.processor.model.SpecializationData
- All Implemented Interfaces:
Comparable<TemplateMethod>,Iterable<MessageContainer>
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumstatic enumNested classes/interfaces inherited from class com.oracle.truffle.dsl.processor.model.TemplateMethod
TemplateMethod.TypeSignatureNested classes/interfaces inherited from class com.oracle.truffle.dsl.processor.model.MessageContainer
MessageContainer.Message -
Field Summary
Fields inherited from class com.oracle.truffle.dsl.processor.model.TemplateMethod
FRAME_NAME, NO_NATURAL_ORDERFields inherited from class com.oracle.truffle.dsl.processor.model.MessageContainer
types -
Constructor Summary
ConstructorsConstructorDescriptionSpecializationData(NodeData node, TemplateMethod template, SpecializationData.SpecializationKind kind) SpecializationData(NodeData node, TemplateMethod template, SpecializationData.SpecializationKind kind, List<SpecializationThrowsData> exceptions, boolean hasUnexpectedResultRewrite, boolean reportPolymorphism, boolean reportMegamorphism) -
Method Summary
Modifier and TypeMethodDescriptionintcompareTo(TemplateMethod other) copy()findByVariable(VariableElement variable) protected List<MessageContainer> doublegetBoundCaches(DSLExpression guardExpression, boolean transitiveCached) getBoundMethods(DSLExpression expression) getIdempotence(DSLExpression expression) intgetIndex()intdoubleintgetNode()intintbooleanbooleanbooleanbooleanbooleanisCompilationFinalExpression(DSLExpression expression) Returns true if an expression can always be folded to a constant during PE.booleanbooleanisDynamicParameterBound(DSLExpression expression, boolean transitive) booleanbooleanbooleanbooleanisGuardBoundWithCache(GuardExpression guardExpression) booleanisLibraryBoundInGuard(CacheExpression cachedLibrary) booleanisNodeReceiverBound(DSLExpression expression) booleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanisTrivialExpression(DSLExpression expression) booleanbooleanbooleanbooleanneedsRewrite(ProcessorContext context) booleanneedsState(ProcessorContext context) booleanbooleanvoidsetAssumptionExpressions(List<AssumptionExpression> assumptionExpressions) voidsetCaches(List<CacheExpression> caches) voidsetIndex(int order) voidsetInsertBefore(SpecializationData insertBefore) voidsetInsertBeforeName(String insertBeforeName) voidvoidsetLimitExpression(DSLExpression limitExpression) voidsetLocalActivationProbability(double activationProbability) voidsetPrepareForAOT(boolean prepareForAOT) voidsetReachable(boolean reachable) voidsetReachesFallback(boolean reachesFallback) voidsetReplaced(boolean replaced) voidsetReplacedBy(Set<SpecializationData> replacedBy) voidsetReplaces(Set<SpecializationData> replaces) voidsetReplacesNames(Set<String> replacesNames) voidsetUncachedSpecialization(SpecializationData removeCompanion) voidsetUnroll(int unroll) voidsetUnrollIndex(int unrollIndex) toString()Methods inherited from class com.oracle.truffle.dsl.processor.model.TemplateMethod
addParameter, compareBySignature, createReferenceName, findParameter, findParameter, findParameterOrDie, getDynamicParameters, getDynamicTypes, getFrame, getId, getMarkerAnnotation, getMessageAnnotation, getMessageElement, getMethod, getMethodName, getNaturalOrder, getParameters, getReturnType, getReturnTypeAndParameters, getSignatureParameters, getSignatureSize, getSpecification, getTemplate, getTypeSignature, setIdMethods inherited from class com.oracle.truffle.dsl.processor.model.MessageContainer
addError, addError, addError, addError, addSuppressableWarning, addSuppressableWarning, addWarning, addWarning, collectMessages, emitMessages, getMessageAnnotationValue, getMessages, getMessagesForModification, hasErrors, hasErrorsOrWarnings, iterator, redirectMessages, redirectMessagesOnGeneratedElementsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
SpecializationData
public SpecializationData(NodeData node, TemplateMethod template, SpecializationData.SpecializationKind kind, List<SpecializationThrowsData> exceptions, boolean hasUnexpectedResultRewrite, boolean reportPolymorphism, boolean reportMegamorphism) -
SpecializationData
public SpecializationData(NodeData node, TemplateMethod template, SpecializationData.SpecializationKind kind)
-
-
Method Details
-
copy
-
isNodeReceiverVariable
-
isNodeReceiverBound
-
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
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
-
getUncachedSpecialization
-
needsVirtualFrame
public boolean needsVirtualFrame() -
needsTruffleBoundary
public boolean needsTruffleBoundary() -
needsPushEncapsulatingNode
public boolean needsPushEncapsulatingNode() -
isAnyLibraryBoundInGuard
public boolean isAnyLibraryBoundInGuard() -
isLibraryBoundInGuard
-
isTrivialExpression
-
setReachesFallback
public void setReachesFallback(boolean reachesFallback) -
isReportPolymorphism
public boolean isReportPolymorphism() -
isReportMegamorphism
public boolean isReportMegamorphism() -
isReachesFallback
public boolean isReachesFallback() -
isGuardBoundWithCache
-
getBoundCaches
-
setKind
-
getIdempotence
-
getBoundMethods
-
isDynamicParameterBound
-
findByVariable
-
getLimitExpression
-
setLimitExpression
-
setInsertBefore
-
setInsertBeforeName
-
getInsertBefore
-
getInsertBeforeName
-
getReplacesNames
-
setReplacesNames
-
getReplaces
-
setReplaces
-
getReplacedBy
-
setReplacedBy
-
setReachable
public void setReachable(boolean reachable) -
setReplaced
public void setReplaced(boolean replaced) -
isReachable
public boolean isReachable() -
isReplaced
public boolean isReplaced() -
findChildContainers
- Overrides:
findChildContainersin classTemplateMethod
-
needsState
-
needsRewrite
-
compareTo
- Specified by:
compareToin interfaceComparable<TemplateMethod>- Overrides:
compareToin classTemplateMethod
-
setIndex
public void setIndex(int order) -
getIndex
public int getIndex() -
getIntrospectionIndex
public int getIntrospectionIndex() -
getNode
-
isSpecialized
public boolean isSpecialized() -
isFallback
public boolean isFallback() -
getExceptions
-
hasUnexpectedResultRewrite
public boolean hasUnexpectedResultRewrite() -
getGuards
-
setLocalActivationProbability
public void setLocalActivationProbability(double activationProbability) -
getLocalActivationProbability
public double getLocalActivationProbability() -
getActivationProbability
public double getActivationProbability() -
toString
- Overrides:
toStringin classTemplateMethod
-
isFrameUsedByGuard
public boolean isFrameUsedByGuard() -
getCaches
-
setCaches
-
setAssumptionExpressions
-
getAssumptionExpressions
-
hasMultipleInstances
public boolean hasMultipleInstances() -
isGuardBindsExclusiveCache
public boolean isGuardBindsExclusiveCache() -
isConstantLimit
public boolean isConstantLimit() -
getMaximumNumberOfInstances
public int getMaximumNumberOfInstances() -
isReachableAfter
-
findCache
-