Search in sources :

Example 1 with Virtualizable

use of org.graalvm.compiler.nodes.spi.Virtualizable in project graal by oracle.

the class PartialEscapeClosure method processNodeInternal.

private boolean processNodeInternal(Node node, BlockT state, GraphEffectList effects, FixedWithNextNode lastFixedNode) {
    FixedNode nextFixedNode = lastFixedNode == null ? null : lastFixedNode.next();
    VirtualUtil.trace(node.getOptions(), debug, "%s", node);
    if (requiresProcessing(node)) {
        if (processVirtualizable((ValueNode) node, nextFixedNode, state, effects) == false) {
            return false;
        }
        if (tool.isDeleted()) {
            VirtualUtil.trace(node.getOptions(), debug, "deleted virtualizable allocation %s", node);
            return true;
        }
    }
    if (hasVirtualInputs.isMarked(node) && node instanceof ValueNode) {
        if (node instanceof Virtualizable) {
            if (processVirtualizable((ValueNode) node, nextFixedNode, state, effects) == false) {
                return false;
            }
            if (tool.isDeleted()) {
                VirtualUtil.trace(node.getOptions(), debug, "deleted virtualizable node %s", node);
                return true;
            }
        }
        processNodeInputs((ValueNode) node, nextFixedNode, state, effects);
    }
    if (hasScalarReplacedInputs(node) && node instanceof ValueNode) {
        if (processNodeWithScalarReplacedInputs((ValueNode) node, nextFixedNode, state, effects)) {
            return true;
        }
    }
    return false;
}
Also used : ValueNode(org.graalvm.compiler.nodes.ValueNode) FixedNode(org.graalvm.compiler.nodes.FixedNode) Virtualizable(org.graalvm.compiler.nodes.spi.Virtualizable)

Aggregations

FixedNode (org.graalvm.compiler.nodes.FixedNode)1 ValueNode (org.graalvm.compiler.nodes.ValueNode)1 Virtualizable (org.graalvm.compiler.nodes.spi.Virtualizable)1