public class MethodTypeFlowBuilder extends Object
| Modifier and Type | Class and Description |
|---|---|
protected class |
MethodTypeFlowBuilder.TypeFlowsOfNodes
Fixed point analysis state.
|
| Modifier and Type | Field and Description |
|---|---|
protected PointsToAnalysis |
bb |
protected MethodFlowsGraph |
flowsGraph |
protected org.graalvm.compiler.nodes.StructuredGraph |
graph |
protected PointsToAnalysisMethod |
method |
protected TypeFlowGraphBuilder |
typeFlowGraphBuilder |
| Constructor and Description |
|---|
MethodTypeFlowBuilder(PointsToAnalysis bb,
PointsToAnalysisMethod method) |
MethodTypeFlowBuilder(PointsToAnalysis bb,
org.graalvm.compiler.nodes.StructuredGraph graph) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
apply() |
protected void |
checkUnsafeOffset(org.graalvm.compiler.nodes.ValueNode base,
org.graalvm.compiler.nodes.ValueNode offset)
Hook for unsafe offset value checks.
|
protected boolean |
delegateNodeProcessing(org.graalvm.compiler.nodes.FixedNode n,
MethodTypeFlowBuilder.TypeFlowsOfNodes state) |
protected void |
processCommitAllocation(org.graalvm.compiler.nodes.virtual.CommitAllocationNode commitAllocationNode,
MethodTypeFlowBuilder.TypeFlowsOfNodes state) |
protected void |
processMacroInvokable(MethodTypeFlowBuilder.TypeFlowsOfNodes state,
org.graalvm.compiler.replacements.nodes.MacroInvokable macro,
boolean installResult) |
protected void |
processMethodInvocation(MethodTypeFlowBuilder.TypeFlowsOfNodes state,
org.graalvm.compiler.nodes.ValueNode invoke,
org.graalvm.compiler.nodes.CallTargetNode.InvokeKind invokeKind,
PointsToAnalysisMethod targetMethod,
org.graalvm.compiler.graph.NodeInputList<org.graalvm.compiler.nodes.ValueNode> arguments) |
protected void |
processMethodInvocation(MethodTypeFlowBuilder.TypeFlowsOfNodes state,
org.graalvm.compiler.nodes.ValueNode invoke,
org.graalvm.compiler.nodes.CallTargetNode.InvokeKind invokeKind,
PointsToAnalysisMethod targetMethod,
org.graalvm.compiler.graph.NodeInputList<org.graalvm.compiler.nodes.ValueNode> arguments,
boolean installResult) |
protected void |
processNewArray(org.graalvm.compiler.nodes.java.NewArrayNode node,
MethodTypeFlowBuilder.TypeFlowsOfNodes state) |
protected void |
processNewInstance(org.graalvm.compiler.nodes.java.NewInstanceNode node,
MethodTypeFlowBuilder.TypeFlowsOfNodes state) |
protected void |
processNewInstance(org.graalvm.compiler.nodes.ValueNode node,
AnalysisType type,
MethodTypeFlowBuilder.TypeFlowsOfNodes state) |
protected void |
processStoreField(org.graalvm.compiler.nodes.java.StoreFieldNode node,
MethodTypeFlowBuilder.TypeFlowsOfNodes state) |
protected void |
processStoreField(org.graalvm.compiler.nodes.ValueNode node,
AnalysisField field,
org.graalvm.compiler.nodes.ValueNode object,
org.graalvm.compiler.nodes.ValueNode value,
MethodTypeFlowBuilder.TypeFlowsOfNodes state) |
void |
registerUsedElements(boolean registerEmbeddedRoots) |
protected BytecodePosition |
sourcePosition(org.graalvm.compiler.nodes.ValueNode node)
Provide a non-null position.
|
protected final PointsToAnalysis bb
protected final MethodFlowsGraph flowsGraph
protected final PointsToAnalysisMethod method
protected org.graalvm.compiler.nodes.StructuredGraph graph
protected final TypeFlowGraphBuilder typeFlowGraphBuilder
public MethodTypeFlowBuilder(PointsToAnalysis bb, PointsToAnalysisMethod method)
public MethodTypeFlowBuilder(PointsToAnalysis bb, org.graalvm.compiler.nodes.StructuredGraph graph)
public void registerUsedElements(boolean registerEmbeddedRoots)
protected void apply()
protected boolean delegateNodeProcessing(org.graalvm.compiler.nodes.FixedNode n,
MethodTypeFlowBuilder.TypeFlowsOfNodes state)
protected void processMacroInvokable(MethodTypeFlowBuilder.TypeFlowsOfNodes state, org.graalvm.compiler.replacements.nodes.MacroInvokable macro, boolean installResult)
protected void processMethodInvocation(MethodTypeFlowBuilder.TypeFlowsOfNodes state, org.graalvm.compiler.nodes.ValueNode invoke, org.graalvm.compiler.nodes.CallTargetNode.InvokeKind invokeKind, PointsToAnalysisMethod targetMethod, org.graalvm.compiler.graph.NodeInputList<org.graalvm.compiler.nodes.ValueNode> arguments)
protected void processMethodInvocation(MethodTypeFlowBuilder.TypeFlowsOfNodes state, org.graalvm.compiler.nodes.ValueNode invoke, org.graalvm.compiler.nodes.CallTargetNode.InvokeKind invokeKind, PointsToAnalysisMethod targetMethod, org.graalvm.compiler.graph.NodeInputList<org.graalvm.compiler.nodes.ValueNode> arguments, boolean installResult)
protected void processCommitAllocation(org.graalvm.compiler.nodes.virtual.CommitAllocationNode commitAllocationNode,
MethodTypeFlowBuilder.TypeFlowsOfNodes state)
protected void processNewInstance(org.graalvm.compiler.nodes.java.NewInstanceNode node,
MethodTypeFlowBuilder.TypeFlowsOfNodes state)
protected void processNewArray(org.graalvm.compiler.nodes.java.NewArrayNode node,
MethodTypeFlowBuilder.TypeFlowsOfNodes state)
protected void processNewInstance(org.graalvm.compiler.nodes.ValueNode node,
AnalysisType type,
MethodTypeFlowBuilder.TypeFlowsOfNodes state)
protected void processStoreField(org.graalvm.compiler.nodes.java.StoreFieldNode node,
MethodTypeFlowBuilder.TypeFlowsOfNodes state)
protected void processStoreField(org.graalvm.compiler.nodes.ValueNode node,
AnalysisField field,
org.graalvm.compiler.nodes.ValueNode object,
org.graalvm.compiler.nodes.ValueNode value,
MethodTypeFlowBuilder.TypeFlowsOfNodes state)
protected void checkUnsafeOffset(org.graalvm.compiler.nodes.ValueNode base,
org.graalvm.compiler.nodes.ValueNode offset)
protected BytecodePosition sourcePosition(org.graalvm.compiler.nodes.ValueNode node)
Node.getNodeSourcePosition() doesn't always provide a
position, like for example for generated factory methods in FactoryThrowMethodHolder.