changeset 9530:2777aafe689b

TypeProfileProxy: remove profile proxies after inlining logic before, profiles were lost after the first iteration of IterativeInliningPhase (if enabled)
author Bernhard Urban <bernhard.urban@jku.at>
date Thu, 02 May 2013 21:28:13 +0200
parents afbb1b5a0eaa
children 63b4cea1ed3f 238431ec62a2 58a2ff06f4b4
files graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/TypeProfileProxyNode.java graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/InliningPhase.java
diffstat 3 files changed, 3 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java	Thu May 02 20:53:27 2013 +0200
+++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java	Thu May 02 21:28:13 2013 +0200
@@ -133,9 +133,8 @@
                     new IterativeConditionalEliminationPhase().apply(graph, highTierContext);
                 }
             }
-        } else {
-            TypeProfileProxyNode.cleanFromGraph(graph);
         }
+        TypeProfileProxyNode.cleanFromGraph(graph);
 
         plan.runPhases(PhasePosition.HIGH_LEVEL, graph);
 
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/TypeProfileProxyNode.java	Thu May 02 20:53:27 2013 +0200
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/TypeProfileProxyNode.java	Thu May 02 21:28:13 2013 +0200
@@ -126,7 +126,8 @@
 
     public static void cleanFromGraph(StructuredGraph graph) {
         for (TypeProfileProxyNode proxy : graph.getNodes(TypeProfileProxyNode.class)) {
-            proxy.replaceAtUsages(proxy.getObject());
+            graph.replaceFloating(proxy, proxy.getObject());
         }
+        assert graph.getNodes(TypeProfileProxyNode.class).count() == 0;
     }
 }
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/InliningPhase.java	Thu May 02 20:53:27 2013 +0200
+++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/InliningPhase.java	Thu May 02 21:28:13 2013 +0200
@@ -144,9 +144,6 @@
                 }
             }
         }
-
-        // Clean up type profiles.
-        TypeProfileProxyNode.cleanFromGraph(graph);
     }
 
     @Override