src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/AbstractMergeNode.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
hotspot Cdiff src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/AbstractMergeNode.java
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/AbstractMergeNode.java
Print this page
*** 35,44 ****
--- 35,45 ----
import org.graalvm.compiler.graph.NodeInputList;
import org.graalvm.compiler.graph.iterators.NodeIterable;
import org.graalvm.compiler.graph.spi.Simplifiable;
import org.graalvm.compiler.graph.spi.SimplifierTool;
import org.graalvm.compiler.nodeinfo.NodeInfo;
+ import org.graalvm.compiler.nodes.memory.MemoryPhiNode;
import org.graalvm.compiler.nodes.spi.LIRLowerable;
import org.graalvm.compiler.nodes.spi.NodeLIRBuilderTool;
import org.graalvm.compiler.nodes.util.GraphUtil;
/**
*** 104,115 ****
if (phi.isDeleted()) {
continue;
}
ValueNode removedValue = phi.valueAt(predIndex);
phi.removeInput(predIndex);
! if (removedValue != null && removedValue.isAlive() && removedValue.hasNoUsages() && GraphUtil.isFloatingNode(removedValue)) {
! GraphUtil.killWithUnusedFloatingInputs(removedValue);
}
}
}
protected void deleteEnd(AbstractEndNode end) {
--- 105,116 ----
if (phi.isDeleted()) {
continue;
}
ValueNode removedValue = phi.valueAt(predIndex);
phi.removeInput(predIndex);
! if (removedValue != null) {
! GraphUtil.tryKillUnused(removedValue);
}
}
}
protected void deleteEnd(AbstractEndNode end) {
*** 139,149 ****
public NodeIterable<PhiNode> phis() {
return this.usages().filter(PhiNode.class).filter(this::isPhiAtMerge);
}
public NodeIterable<ValuePhiNode> valuePhis() {
! return this.usages().filter(ValuePhiNode.class).filter(this::isPhiAtMerge);
}
@Override
public NodeIterable<Node> anchored() {
return super.anchored().filter(n -> !isPhiAtMerge(n));
--- 140,154 ----
public NodeIterable<PhiNode> phis() {
return this.usages().filter(PhiNode.class).filter(this::isPhiAtMerge);
}
public NodeIterable<ValuePhiNode> valuePhis() {
! return this.usages().filter(ValuePhiNode.class);
! }
!
! public NodeIterable<MemoryPhiNode> memoryPhis() {
! return this.usages().filter(MemoryPhiNode.class);
}
@Override
public NodeIterable<Node> anchored() {
return super.anchored().filter(n -> !isPhiAtMerge(n));
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/AbstractMergeNode.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File