changeset 6469:ec2211254419

Merge.
author Doug Simon <doug.simon@oracle.com>
date Mon, 01 Oct 2012 16:12:45 +0200
parents afe7d46f1311 (diff) 6f2b35ef59b0 (current diff)
children b1010f7bc0bf
files
diffstat 4 files changed, 22 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/JavaType.java	Mon Oct 01 15:53:03 2012 +0200
+++ b/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/JavaType.java	Mon Oct 01 16:12:45 2012 +0200
@@ -51,7 +51,8 @@
 
         /**
          * The runtime representation of the "hub" of this type--that is, the closest part of the type
-         * representation which is typically stored in the object header.
+         * representation which is typically stored in the object header. For example, in the HotSpot
+         * VM the hub correlates with the C++ <code>klassOop</code> type.
          */
         ObjectHub
     }
--- a/graal/com.oracle.graal.compiler.phases/src/com/oracle/graal/compiler/phases/CanonicalizerPhase.java	Mon Oct 01 15:53:03 2012 +0200
+++ b/graal/com.oracle.graal.compiler.phases/src/com/oracle/graal/compiler/phases/CanonicalizerPhase.java	Mon Oct 01 16:12:45 2012 +0200
@@ -242,7 +242,11 @@
         } else if (node instanceof Simplifiable) {
             Debug.log("Canonicalizer: simplifying %s", node);
             METRIC_SIMPLIFICATION_CONSIDERED_NODES.increment();
-            ((Simplifiable) node).simplify(tool);
+            Debug.scope("SimplifyNode", node, new Runnable() {
+                public void run() {
+                    ((Simplifiable) node).simplify(tool);
+                }
+            });
         }
         return node.isDeleted();
     }
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/PiNode.java	Mon Oct 01 15:53:03 2012 +0200
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/PiNode.java	Mon Oct 01 16:12:45 2012 +0200
@@ -26,7 +26,11 @@
 import com.oracle.graal.nodes.spi.*;
 import com.oracle.graal.nodes.type.*;
 
-
+/**
+ * A node that changes the type of its input, usually narrowing it.
+ * For example, a PI node refines the type of a receiver during
+ * type-guarded inlining to be the type tested by the guard.
+ */
 public class PiNode extends FloatingNode implements LIRLowerable {
 
     @Input private ValueNode object;
--- a/graal/com.oracle.graal.snippets.test/src/com/oracle/graal/snippets/CheckCastTest.java	Mon Oct 01 15:53:03 2012 +0200
+++ b/graal/com.oracle.graal.snippets.test/src/com/oracle/graal/snippets/CheckCastTest.java	Mon Oct 01 16:12:45 2012 +0200
@@ -113,6 +113,11 @@
 
     @Test
     public void test8() {
+        test("arrayStore", profile(), new Object[100], "111");
+    }
+
+    @Test
+    public void test8_1() {
         test("arrayFill", profile(), new Object[100], "111");
     }
 
@@ -142,6 +147,11 @@
         return "#" + s;
     }
 
+    public static Object[] arrayStore(Object[] arr, Object value) {
+        arr[15] = value;
+        return arr;
+    }
+
     public static Object[] arrayFill(Object[] arr, Object value) {
         for (int i = 0; i < arr.length; i++) {
             arr[i] = value;