# HG changeset patch # User Gilles Duboscq # Date 1337944965 -7200 # Node ID 56f4afcf71f7378844fd0b3d6f35c4e3c730085f # Parent 0368c19fc175b9737b354220934f714f96ed6db9# Parent f67b71c0e9e593491ac9b5565c24f8d5d582ff8f Merge diff -r 0368c19fc175 -r 56f4afcf71f7 graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java --- 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) { diff -r 0368c19fc175 -r 56f4afcf71f7 graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalOptions.java --- 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; diff -r 0368c19fc175 -r 56f4afcf71f7 graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/FloatingReadPhase.java --- 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) { diff -r 0368c19fc175 -r 56f4afcf71f7 graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Graph.java --- 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) { diff -r 0368c19fc175 -r 56f4afcf71f7 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java --- 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) { diff -r 0368c19fc175 -r 56f4afcf71f7 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ValueAnchorNode.java --- 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; }