src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/StructuredGraph.java
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/StructuredGraph.java Tue Apr 24 08:13:30 2018 -0700
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/StructuredGraph.java Tue Apr 24 09:04:57 2018 -0700
@@ -30,10 +30,10 @@
import java.util.concurrent.atomic.AtomicLong;
import java.util.function.Consumer;
-import org.graalvm.collections.EconomicMap;
-import org.graalvm.collections.EconomicSet;
-import org.graalvm.collections.Equivalence;
-import org.graalvm.collections.UnmodifiableEconomicMap;
+import jdk.internal.vm.compiler.collections.EconomicMap;
+import jdk.internal.vm.compiler.collections.EconomicSet;
+import jdk.internal.vm.compiler.collections.Equivalence;
+import jdk.internal.vm.compiler.collections.UnmodifiableEconomicMap;
import org.graalvm.compiler.core.common.CancellationBailoutException;
import org.graalvm.compiler.core.common.CompilationIdentifier;
import org.graalvm.compiler.core.common.GraalOptions;
@@ -359,12 +359,16 @@
this.compilationId = compilationId;
this.entryBCI = entryBCI;
this.assumptions = assumptions;
- this.speculationLog = speculationLog;
+ if (speculationLog != null && !(speculationLog instanceof GraphSpeculationLog)) {
+ this.speculationLog = new GraphSpeculationLog(speculationLog);
+ } else {
+ this.speculationLog = speculationLog;
+ }
this.useProfilingInfo = useProfilingInfo;
this.trackNodeSourcePosition = trackNodeSourcePosition;
assert trackNodeSourcePosition != null;
this.cancellable = cancellable;
- this.inliningLog = new InliningLog(rootMethod, options);
+ this.inliningLog = new InliningLog(rootMethod, GraalOptions.TraceInlining.getValue(options));
this.callerContext = context;
}
@@ -480,7 +484,10 @@
public void logInliningTree() {
if (GraalOptions.TraceInlining.getValue(getOptions())) {
- TTY.println(getInliningLog().formatAsTree());
+ String formattedTree = getInliningLog().formatAsTree(true);
+ if (formattedTree != null) {
+ TTY.println(formattedTree);
+ }
}
}
@@ -518,6 +525,7 @@
copy.isAfterFloatingReadPhase = isAfterFloatingReadPhase;
copy.hasValueProxies = hasValueProxies;
copy.isAfterExpandLogic = isAfterExpandLogic;
+ copy.trackNodeSourcePosition = trackNodeSourcePosition;
EconomicMap<Node, Node> replacements = EconomicMap.create(Equivalence.IDENTITY);
replacements.put(start, copy.start);
UnmodifiableEconomicMap<Node, Node> duplicates;