Mercurial > hg > graal-compiler
changeset 5449:56f4afcf71f7
Merge
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Fri, 25 May 2012 13:22:45 +0200 |
parents | 0368c19fc175 (current diff) f67b71c0e9e5 (diff) |
children | e1f45fcddb49 a899a40a7ddf |
files | graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/FloatingReadPhase.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ValueAnchorNode.java |
diffstat | 6 files changed, 23 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java Fri May 25 11:44:44 2012 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java Fri May 25 13:22:45 2012 +0200 @@ -175,14 +175,12 @@ if (GraalOptions.CullFrameStates) { new CullFrameStatesPhase().apply(graph); } - if (GraalOptions.Lower) { - new FloatingReadPhase().apply(graph); - if (GraalOptions.OptGVN) { - new GlobalValueNumberingPhase().apply(graph); - } - if (GraalOptions.OptReadElimination) { - new ReadEliminationPhase().apply(graph); - } + new FloatingReadPhase().apply(graph); + if (GraalOptions.OptGVN) { + new GlobalValueNumberingPhase().apply(graph); + } + if (GraalOptions.OptReadElimination) { + new ReadEliminationPhase().apply(graph); } if (GraalOptions.PropagateTypes) {
--- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalOptions.java Fri May 25 11:44:44 2012 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalOptions.java Fri May 25 13:22:45 2012 +0200 @@ -37,7 +37,6 @@ // Checkstyle: resume public static int Threads = 4; - public static boolean Lower = true; // inlining settings public static boolean Inline = true;
--- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/FloatingReadPhase.java Fri May 25 11:44:44 2012 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/FloatingReadPhase.java Fri May 25 13:22:45 2012 +0200 @@ -152,6 +152,7 @@ } else { floatingRead = graph.unique(new FloatingReadNode(readNode.object(), readNode.location(), getLocationForRead(readNode), readNode.stamp(), readNode.dependencies())); } + floatingRead.setNullCheck(readNode.getNullCheck()); ValueAnchorNode anchor = null; for (GuardNode guard : readNode.dependencies().filter(GuardNode.class)) { if (anchor == null) {
--- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Graph.java Fri May 25 11:44:44 2012 +0200 +++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Graph.java Fri May 25 13:22:45 2012 +0200 @@ -209,11 +209,22 @@ return usage; } } - break; + return null; } } } - return null; + CacheEntry key = new CacheEntry(node); + Node cachedNode = cachedNodes.get(key); + if (cachedNode != null) { + if (!cachedNode.isAlive()) { + cachedNodes.remove(key); + return null; + } + return cachedNode != node ? cachedNode : null; + } else { + cachedNodes.put(key, node); + return null; + } } private static boolean checkValueNumberable(Node node) {
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java Fri May 25 11:44:44 2012 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java Fri May 25 13:22:45 2012 +0200 @@ -270,9 +270,6 @@ @Override public void lower(Node n, CiLoweringTool tool) { - if (!GraalOptions.Lower) { - return; - } StructuredGraph graph = (StructuredGraph) n.graph(); if (n instanceof ArrayLengthNode) {
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ValueAnchorNode.java Fri May 25 11:44:44 2012 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ValueAnchorNode.java Fri May 25 13:22:45 2012 +0200 @@ -22,6 +22,8 @@ */ package com.oracle.graal.nodes.extended; +import static com.oracle.graal.graph.iterators.NodePredicates.*; + import com.oracle.graal.graph.*; import com.oracle.graal.nodes.*; import com.oracle.graal.nodes.calc.*; @@ -60,7 +62,7 @@ } return null; } - for (Node node : dependencies().nonNull()) { + for (Node node : dependencies().nonNull().and(isNotA(BeginNode.class))) { if (node instanceof ConstantNode) { continue; }