Search in sources :

Example 1 with Placeholder

use of org.graalvm.compiler.nodes.PiNode.Placeholder in project graal by oracle.

the class SnippetTemplate method updateStamps.

private void updateStamps(ValueNode replacee, UnmodifiableEconomicMap<Node, Node> duplicates) {
    for (ValueNode node : placeholderStampedNodes) {
        ValueNode dup = (ValueNode) duplicates.get(node);
        Stamp replaceeStamp = replacee.stamp(NodeView.DEFAULT);
        if (node instanceof Placeholder) {
            Placeholder placeholderDup = (Placeholder) dup;
            placeholderDup.makeReplacement(replaceeStamp);
        } else {
            dup.setStamp(replaceeStamp);
        }
    }
    for (ParameterNode paramNode : snippet.getNodes(ParameterNode.TYPE)) {
        for (Node usage : paramNode.usages()) {
            Node usageDup = duplicates.get(usage);
            propagateStamp(usageDup);
        }
    }
}
Also used : Placeholder(org.graalvm.compiler.nodes.PiNode.Placeholder) Stamp(org.graalvm.compiler.core.common.type.Stamp) PlaceholderStamp(org.graalvm.compiler.nodes.PiNode.PlaceholderStamp) LoadSnippetVarargParameterNode(org.graalvm.compiler.replacements.nodes.LoadSnippetVarargParameterNode) ParameterNode(org.graalvm.compiler.nodes.ParameterNode) MemoryNode(org.graalvm.compiler.nodes.memory.MemoryNode) MemoryAnchorNode(org.graalvm.compiler.nodes.memory.MemoryAnchorNode) LoopBeginNode(org.graalvm.compiler.nodes.LoopBeginNode) ControlSinkNode(org.graalvm.compiler.nodes.ControlSinkNode) ConstantNode(org.graalvm.compiler.nodes.ConstantNode) MergeNode(org.graalvm.compiler.nodes.MergeNode) ExplodeLoopNode(org.graalvm.compiler.replacements.nodes.ExplodeLoopNode) FixedNode(org.graalvm.compiler.nodes.FixedNode) LoadSnippetVarargParameterNode(org.graalvm.compiler.replacements.nodes.LoadSnippetVarargParameterNode) PhiNode(org.graalvm.compiler.nodes.PhiNode) AbstractMergeNode(org.graalvm.compiler.nodes.AbstractMergeNode) LoadIndexedNode(org.graalvm.compiler.nodes.java.LoadIndexedNode) ReturnNode(org.graalvm.compiler.nodes.ReturnNode) AbstractBeginNode(org.graalvm.compiler.nodes.AbstractBeginNode) DeoptimizingNode(org.graalvm.compiler.nodes.DeoptimizingNode) ValueNode(org.graalvm.compiler.nodes.ValueNode) FloatingNode(org.graalvm.compiler.nodes.calc.FloatingNode) MemoryPhiNode(org.graalvm.compiler.nodes.memory.MemoryPhiNode) StartNode(org.graalvm.compiler.nodes.StartNode) ParameterNode(org.graalvm.compiler.nodes.ParameterNode) StoreIndexedNode(org.graalvm.compiler.nodes.java.StoreIndexedNode) MemoryMapNode(org.graalvm.compiler.nodes.memory.MemoryMapNode) Node(org.graalvm.compiler.graph.Node) FixedWithNextNode(org.graalvm.compiler.nodes.FixedWithNextNode) ValueNode(org.graalvm.compiler.nodes.ValueNode)

Aggregations

Stamp (org.graalvm.compiler.core.common.type.Stamp)1 Node (org.graalvm.compiler.graph.Node)1 AbstractBeginNode (org.graalvm.compiler.nodes.AbstractBeginNode)1 AbstractMergeNode (org.graalvm.compiler.nodes.AbstractMergeNode)1 ConstantNode (org.graalvm.compiler.nodes.ConstantNode)1 ControlSinkNode (org.graalvm.compiler.nodes.ControlSinkNode)1 DeoptimizingNode (org.graalvm.compiler.nodes.DeoptimizingNode)1 FixedNode (org.graalvm.compiler.nodes.FixedNode)1 FixedWithNextNode (org.graalvm.compiler.nodes.FixedWithNextNode)1 LoopBeginNode (org.graalvm.compiler.nodes.LoopBeginNode)1 MergeNode (org.graalvm.compiler.nodes.MergeNode)1 ParameterNode (org.graalvm.compiler.nodes.ParameterNode)1 PhiNode (org.graalvm.compiler.nodes.PhiNode)1 Placeholder (org.graalvm.compiler.nodes.PiNode.Placeholder)1 PlaceholderStamp (org.graalvm.compiler.nodes.PiNode.PlaceholderStamp)1 ReturnNode (org.graalvm.compiler.nodes.ReturnNode)1 StartNode (org.graalvm.compiler.nodes.StartNode)1 ValueNode (org.graalvm.compiler.nodes.ValueNode)1 FloatingNode (org.graalvm.compiler.nodes.calc.FloatingNode)1 LoadIndexedNode (org.graalvm.compiler.nodes.java.LoadIndexedNode)1