public class DefaultAnalysisPolicy extends AnalysisPolicy
options| 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(BigBang bb,
int bci,
AnalysisMethod method)
Create an allocation site given the BCI and method.
|
ArrayElementsTypeStore |
createArrayElementsTypeStore(AnalysisObject object,
AnalysisUniverse universe) |
AnalysisObject |
createConstantObject(BigBang bb,
jdk.vm.ci.meta.JavaConstant constant,
AnalysisType exactType)
Create a constant object abstraction.
|
FieldTypeStore |
createFieldTypeStore(AnalysisObject object,
AnalysisField field,
AnalysisUniverse universe) |
AnalysisObject |
createHeapObject(BigBang bb,
AnalysisType type,
BytecodeLocation allocationSite,
AnalysisContext allocationContext)
Create a heap allocated object abstraction.
|
AbstractVirtualInvokeTypeFlow |
createVirtualInvokeTypeFlow(org.graalvm.compiler.nodes.Invoke invoke,
org.graalvm.compiler.nodes.java.MethodCallTargetNode target,
TypeFlow<?>[] actualParameters,
ActualReturnTypeFlow actualReturn,
BytecodeLocation location)
Provides implementation for the virtual invoke type flow.
|
boolean |
isContextSensitiveAllocation(BigBang 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(BigBang bb,
AnalysisObject... a)
Note analysis object state merge.
|
void |
noteMerge(BigBang bb,
AnalysisObject a)
Note analysis object state merge.
|
void |
noteMerge(BigBang bb,
TypeState t)
Note type state merge.
|
createAllocationSite, getContextPolicy, makePoperties, makePopertiesForUnionpublic 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(BigBang bb, TypeState t)
AnalysisPolicynoteMerge in class AnalysisPolicypublic void noteMerge(BigBang bb, AnalysisObject... a)
AnalysisPolicynoteMerge in class AnalysisPolicypublic void noteMerge(BigBang bb, AnalysisObject a)
AnalysisPolicynoteMerge in class AnalysisPolicypublic boolean isContextSensitiveAllocation(BigBang bb, AnalysisType type, AnalysisContext allocationContext)
AnalysisPolicyisContextSensitiveAllocation in class AnalysisPolicypublic AnalysisObject createHeapObject(BigBang bb, AnalysisType type, BytecodeLocation allocationSite, AnalysisContext allocationContext)
AnalysisPolicycreateHeapObject in class AnalysisPolicypublic AnalysisObject createConstantObject(BigBang bb, jdk.vm.ci.meta.JavaConstant constant, AnalysisType exactType)
AnalysisPolicycreateConstantObject in class AnalysisPolicypublic BytecodeLocation createAllocationSite(BigBang 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(org.graalvm.compiler.nodes.Invoke invoke, org.graalvm.compiler.nodes.java.MethodCallTargetNode target, TypeFlow<?>[] actualParameters, ActualReturnTypeFlow actualReturn, BytecodeLocation location)
AnalysisPolicycreateVirtualInvokeTypeFlow in class AnalysisPolicy