# HG changeset patch # User Gilles Duboscq # Date 1337944918 -7200 # Node ID f67b71c0e9e593491ac9b5565c24f8d5d582ff8f # Parent 78a6f682326fe5c28f58337ed71821de4ce3bc12# Parent ecba62805b64acc323788b3eb1687fa2e59b2076 Merge diff -r ecba62805b64 -r f67b71c0e9e5 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 Thu May 24 15:18:41 2012 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java Fri May 25 13:21:58 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 ecba62805b64 -r f67b71c0e9e5 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 Thu May 24 15:18:41 2012 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalOptions.java Fri May 25 13:21:58 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 ecba62805b64 -r f67b71c0e9e5 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 Thu May 24 15:18:41 2012 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/FloatingReadPhase.java Fri May 25 13:21:58 2012 +0200 @@ -153,6 +153,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 ecba62805b64 -r f67b71c0e9e5 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 Thu May 24 15:18:41 2012 +0200 +++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Graph.java Fri May 25 13:21:58 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 ecba62805b64 -r f67b71c0e9e5 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 Thu May 24 15:18:41 2012 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java Fri May 25 13:21:58 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 ecba62805b64 -r f67b71c0e9e5 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 Thu May 24 15:18:41 2012 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ValueAnchorNode.java Fri May 25 13:21:58 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; }