public class BytecodeSensitiveAnalysisPolicy extends AnalysisPolicy
aliasArrayTypeFlows, options, relaxTypeFlowConstraints, removeSaturatedTypeFlows, typeFlowSaturationCutoff
Constructor and Description |
---|
BytecodeSensitiveAnalysisPolicy(org.graalvm.compiler.options.OptionValues options) |
Modifier and Type | Method and Description |
---|---|
BytecodeAnalysisContextPolicy |
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.
|
AbstractSpecialInvokeTypeFlow |
createSpecialInvokeTypeFlow(jdk.vm.ci.code.BytecodePosition invokeLocation,
AnalysisType receiverType,
AnalysisMethod 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,
AnalysisMethod targetMethod,
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 o)
Note analysis object state merge.
|
void |
noteMerge(BigBang bb,
TypeState t)
Note type state merge.
|
aliasArrayTypeFlows, createAllocationSite, getContextPolicy, makePoperties, makePopertiesForUnion, relaxTypeFlowConstraints, removeSaturatedTypeFlows, typeFlowSaturationCutoff
public BytecodeSensitiveAnalysisPolicy(org.graalvm.compiler.options.OptionValues options)
public BytecodeAnalysisContextPolicy contextPolicy()
AnalysisPolicy
contextPolicy
in class AnalysisPolicy
public boolean needsConstantCache()
AnalysisPolicy
needsConstantCache
in class AnalysisPolicy
public boolean isSummaryObject(AnalysisObject object)
AnalysisPolicy
isSummaryObject
in class AnalysisPolicy
public boolean isMergingEnabled()
AnalysisPolicy
isMergingEnabled
in class AnalysisPolicy
public void noteMerge(BigBang bb, TypeState t)
AnalysisPolicy
noteMerge
in class AnalysisPolicy
public void noteMerge(BigBang bb, AnalysisObject... a)
AnalysisPolicy
noteMerge
in class AnalysisPolicy
public void noteMerge(BigBang bb, AnalysisObject o)
AnalysisPolicy
noteMerge
in class AnalysisPolicy
public boolean isContextSensitiveAllocation(BigBang bb, AnalysisType type, AnalysisContext allocationContext)
AnalysisPolicy
isContextSensitiveAllocation
in class AnalysisPolicy
public AnalysisObject createHeapObject(BigBang bb, AnalysisType type, BytecodeLocation allocationSite, AnalysisContext allocationContext)
AnalysisPolicy
createHeapObject
in class AnalysisPolicy
public AnalysisObject createConstantObject(BigBang bb, jdk.vm.ci.meta.JavaConstant constant, AnalysisType exactType)
AnalysisPolicy
createConstantObject
in class AnalysisPolicy
public BytecodeLocation createAllocationSite(BigBang bb, int bci, AnalysisMethod method)
AnalysisPolicy
createAllocationSite
in class AnalysisPolicy
public FieldTypeStore createFieldTypeStore(AnalysisObject object, AnalysisField field, AnalysisUniverse universe)
createFieldTypeStore
in class AnalysisPolicy
public ArrayElementsTypeStore createArrayElementsTypeStore(AnalysisObject object, AnalysisUniverse universe)
createArrayElementsTypeStore
in class AnalysisPolicy
public AbstractVirtualInvokeTypeFlow createVirtualInvokeTypeFlow(jdk.vm.ci.code.BytecodePosition invokeLocation, AnalysisType receiverType, AnalysisMethod targetMethod, TypeFlow<?>[] actualParameters, ActualReturnTypeFlow actualReturn, BytecodeLocation location)
AnalysisPolicy
createVirtualInvokeTypeFlow
in class AnalysisPolicy
public AbstractSpecialInvokeTypeFlow createSpecialInvokeTypeFlow(jdk.vm.ci.code.BytecodePosition invokeLocation, AnalysisType receiverType, AnalysisMethod targetMethod, TypeFlow<?>[] actualParameters, ActualReturnTypeFlow actualReturn, BytecodeLocation location)
AnalysisPolicy
createSpecialInvokeTypeFlow
in class AnalysisPolicy