src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.graph/src/org/graalvm/compiler/graph/Node.java
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.graph/src/org/graalvm/compiler/graph/Node.java Wed Sep 20 15:12:11 2017 +0200
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.graph/src/org/graalvm/compiler/graph/Node.java Wed Oct 11 17:11:28 2017 -0700
@@ -38,6 +38,7 @@
import java.util.Map;
import java.util.Objects;
import java.util.function.Predicate;
+import java.util.function.Supplier;
import org.graalvm.compiler.core.common.Fields;
import org.graalvm.compiler.core.common.type.AbstractPointerStamp;
@@ -598,6 +599,15 @@
}
}
+ /**
+ * Update the source position only if it is null.
+ */
+ public void updateNodeSourcePosition(Supplier<NodeSourcePosition> sourcePositionSupp) {
+ if (this.sourcePosition == null) {
+ setNodeSourcePosition(sourcePositionSupp.get());
+ }
+ }
+
public DebugCloseable withNodeSourcePosition() {
return graph.withNodeSourcePosition(this);
}