public class DefaultAnalysisPolicy extends AnalysisPolicy
aliasArrayTypeFlows, options, relaxTypeFlowConstraints, removeSaturatedTypeFlows, typeFlowSaturationCutoff| Constructor and Description |
|---|
DefaultAnalysisPolicy(org.graalvm.compiler.options.OptionValues options) |
| Modifier and Type | Method and Description |
|---|---|
DefaultAnalysisContextPolicy |
contextPolicy()
Provide an analysis context policy.
|
BytecodeLocation |
createAllocationSite(PointsToAnalysis bb,
int bci,
AnalysisMethod method)
Create an allocation site given the BCI and method.
|
ArrayElementsTypeStore |
createArrayElementsTypeStore(AnalysisObject object,
AnalysisUniverse universe) |
AnalysisObject |
createConstantObject(PointsToAnalysis bb,
jdk.vm.ci.meta.JavaConstant constant,
AnalysisType exactType)
Create a constant object abstraction.
|
FieldTypeStore |
createFieldTypeStore(AnalysisObject object,
AnalysisField field,
AnalysisUniverse universe) |
AnalysisObject |
createHeapObject(PointsToAnalysis bb,
AnalysisType type,
BytecodeLocation allocationSite,
AnalysisContext allocationContext)
Create a heap allocated object abstraction.
|
AbstractSpecialInvokeTypeFlow |
createSpecialInvokeTypeFlow(jdk.vm.ci.code.BytecodePosition invokeLocation,
AnalysisType receiverType,
PointsToAnalysisMethod targetMethod,
TypeFlow<?>[] actualParameters,
ActualReturnTypeFlow actualReturn,
BytecodeLocation location)
Provides implementation for the virtual invoke type flow.
|
AbstractVirtualInvokeTypeFlow |
createVirtualInvokeTypeFlow(jdk.vm.ci.code.BytecodePosition invokeLocation,
AnalysisType receiverType,
PointsToAnalysisMethod targetMethod,
TypeFlow<?>[] actualParameters,
ActualReturnTypeFlow actualReturn,
BytecodeLocation location)
Provides implementation for the virtual invoke type flow.
|
boolean |
isContextSensitiveAllocation(PointsToAnalysis bb,
AnalysisType type,
AnalysisContext allocationContext)
Specifies if an allocation site should be modeled context sensitively.
|
boolean |
isMergingEnabled()
Check if merging is enabled.
|
boolean |
isSummaryObject(AnalysisObject object)
In some analysis policies some objects can summarize others.
|
boolean |
needsConstantCache()
Specifies if this policy models constants objects context sensitively, i.e., by creating a
different abstraction for each JavaConstant of the same type, and thus needs a constants
cache.
|
void |
noteMerge(PointsToAnalysis bb,
AnalysisObject... a)
Note analysis object state merge.
|
void |
noteMerge(PointsToAnalysis bb,
AnalysisObject a)
Note analysis object state merge.
|
void |
noteMerge(PointsToAnalysis bb,
TypeState t)
Note type state merge.
|
aliasArrayTypeFlows, createAllocationSite, getContextPolicy, makeProperties, makePropertiesForUnion, relaxTypeFlowConstraints, removeSaturatedTypeFlows, typeFlowSaturationCutoffpublic DefaultAnalysisPolicy(org.graalvm.compiler.options.OptionValues options)
public DefaultAnalysisContextPolicy contextPolicy()
AnalysisPolicycontextPolicy in class AnalysisPolicypublic boolean needsConstantCache()
AnalysisPolicyneedsConstantCache in class AnalysisPolicypublic boolean isSummaryObject(AnalysisObject object)
AnalysisPolicyisSummaryObject in class AnalysisPolicypublic boolean isMergingEnabled()
AnalysisPolicyisMergingEnabled in class AnalysisPolicypublic void noteMerge(PointsToAnalysis bb, TypeState t)
AnalysisPolicynoteMerge in class AnalysisPolicypublic void noteMerge(PointsToAnalysis bb, AnalysisObject... a)
AnalysisPolicynoteMerge in class AnalysisPolicypublic void noteMerge(PointsToAnalysis bb, AnalysisObject a)
AnalysisPolicynoteMerge in class AnalysisPolicypublic boolean isContextSensitiveAllocation(PointsToAnalysis bb, AnalysisType type, AnalysisContext allocationContext)
AnalysisPolicyisContextSensitiveAllocation in class AnalysisPolicypublic AnalysisObject createHeapObject(PointsToAnalysis bb, AnalysisType type, BytecodeLocation allocationSite, AnalysisContext allocationContext)
AnalysisPolicycreateHeapObject in class AnalysisPolicypublic AnalysisObject createConstantObject(PointsToAnalysis bb, jdk.vm.ci.meta.JavaConstant constant, AnalysisType exactType)
AnalysisPolicycreateConstantObject in class AnalysisPolicypublic BytecodeLocation createAllocationSite(PointsToAnalysis bb, int bci, AnalysisMethod method)
AnalysisPolicycreateAllocationSite in class AnalysisPolicypublic FieldTypeStore createFieldTypeStore(AnalysisObject object, AnalysisField field, AnalysisUniverse universe)
createFieldTypeStore in class AnalysisPolicypublic ArrayElementsTypeStore createArrayElementsTypeStore(AnalysisObject object, AnalysisUniverse universe)
createArrayElementsTypeStore in class AnalysisPolicypublic AbstractVirtualInvokeTypeFlow createVirtualInvokeTypeFlow(jdk.vm.ci.code.BytecodePosition invokeLocation, AnalysisType receiverType, PointsToAnalysisMethod targetMethod, TypeFlow<?>[] actualParameters, ActualReturnTypeFlow actualReturn, BytecodeLocation location)
AnalysisPolicycreateVirtualInvokeTypeFlow in class AnalysisPolicypublic AbstractSpecialInvokeTypeFlow createSpecialInvokeTypeFlow(jdk.vm.ci.code.BytecodePosition invokeLocation, AnalysisType receiverType, PointsToAnalysisMethod targetMethod, TypeFlow<?>[] actualParameters, ActualReturnTypeFlow actualReturn, BytecodeLocation location)
AnalysisPolicycreateSpecialInvokeTypeFlow in class AnalysisPolicy