changeset 5753:f9c9c01969c0

Fixed an issue with the objectStamp(), integerStamp(), and floatStamp() methods.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Tue, 03 Jul 2012 11:16:38 +0200
parents 6e9c7af8ce5d
children d5ce56698bb3
files graal/com.oracle.graal.boot.test/src/com/oracle/graal/boot/BigBangTest.java graal/com.oracle.graal.boot/src/com/oracle/graal/boot/meta/ArrayTypeElement.java graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ValueNode.java
diffstat 3 files changed, 12 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.boot.test/src/com/oracle/graal/boot/BigBangTest.java	Mon Jul 02 19:46:54 2012 +0200
+++ b/graal/com.oracle.graal.boot.test/src/com/oracle/graal/boot/BigBangTest.java	Tue Jul 03 11:16:38 2012 +0200
@@ -37,7 +37,7 @@
     public void formattedOutputTest() {
         BootImageGenerator generator = new BootImageGenerator();
         generator.addEntryMethod(TestPrograms.class, "formattedOutputTest");
-        Assert.assertArrayEquals(generator.getBigBang().printState(), new int[]{15, 979, 346, 98});
+        Assert.assertArrayEquals(generator.getBigBang().printState(), new int[]{19, 1668, 611, 179});
     }
 
 
@@ -60,7 +60,7 @@
     public void arrayListTest() {
         BootImageGenerator generator = new BootImageGenerator();
         generator.addEntryMethod(TestPrograms.class, "arrayListTest");
-        Assert.assertArrayEquals(generator.getBigBang().printState(), new int[]{2, 20, 3, 2});
+        Assert.assertArrayEquals(generator.getBigBang().printState(), new int[]{2, 28, 5, 3});
     }
 
     @Test
--- a/graal/com.oracle.graal.boot/src/com/oracle/graal/boot/meta/ArrayTypeElement.java	Mon Jul 02 19:46:54 2012 +0200
+++ b/graal/com.oracle.graal.boot/src/com/oracle/graal/boot/meta/ArrayTypeElement.java	Tue Jul 03 11:16:38 2012 +0200
@@ -52,6 +52,13 @@
         if (type == null) {
             System.out.println("FATAL error: Array access without type!");
             System.out.println(load.array());
+            if (load.array() instanceof ValueProxyNode) {
+                ValueProxyNode valueProxyNode = (ValueProxyNode) load.array();
+                System.out.println("value proxy node stamp " + valueProxyNode.stamp());
+                System.out.println("value proxy node stamp type " + valueProxyNode.objectStamp().type());
+                System.out.println("value proxy source: " + valueProxyNode.value());
+                System.out.println("value proxy source stamp: " + valueProxyNode.value().stamp());
+            }
             System.out.println(((StructuredGraph) load.graph()).method());
             System.exit(-1);
         }
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ValueNode.java	Mon Jul 02 19:46:54 2012 +0200
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ValueNode.java	Tue Jul 03 11:16:38 2012 +0200
@@ -157,17 +157,17 @@
 
     public final ObjectStamp objectStamp() {
         assert verifyStamp(ObjectStamp.class);
-        return (ObjectStamp) stamp;
+        return (ObjectStamp) stamp();
     }
 
     public final IntegerStamp integerStamp() {
         assert verifyStamp(IntegerStamp.class);
-        return (IntegerStamp) stamp;
+        return (IntegerStamp) stamp();
     }
 
     public final FloatStamp floatStamp() {
         assert verifyStamp(FloatStamp.class);
-        return (FloatStamp) stamp;
+        return (FloatStamp) stamp();
     }
 
     @Override