changeset 7574:3a8b3b03ffa0

cleanup and assertion for PEA fix in 17b6a63fe7c2
author Lukas Stadler <lukas.stadler@jku.at>
date Thu, 31 Jan 2013 15:23:31 +0100
parents 17b6a63fe7c2
children e3e8090cb46a
files graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/DebugInfoBuilder.java graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/nodes/MaterializeObjectNode.java
diffstat 2 files changed, 14 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/DebugInfoBuilder.java	Thu Jan 31 11:32:14 2013 +0100
+++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/DebugInfoBuilder.java	Thu Jan 31 15:23:31 2013 +0100
@@ -148,6 +148,7 @@
                 throw new GraalInternalError("no mapping found for virtual object %s", obj);
             }
             if (state instanceof MaterializedObjectState) {
+                assert !(((MaterializedObjectState) state).materializedValue() instanceof VirtualObjectNode);
                 return toValue(((MaterializedObjectState) state).materializedValue());
             } else {
                 assert obj.entryCount() == 0 || state instanceof VirtualObjectState || obj instanceof BoxedVirtualObjectNode;
--- a/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/nodes/MaterializeObjectNode.java	Thu Jan 31 11:32:14 2013 +0100
+++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/nodes/MaterializeObjectNode.java	Thu Jan 31 15:23:31 2013 +0100
@@ -54,10 +54,11 @@
         return ConstantNode.forInt(values.size(), graph());
     }
 
-    @Override
-    public void lower(LoweringTool tool) {
-        StructuredGraph graph = (StructuredGraph) graph();
-
+    /**
+     * @return true if the object that will be created is without locks and has only entries that
+     *         are {@link Constant#defaultForKind(Kind)}, false otherwise.
+     */
+    public boolean isDefault() {
         boolean defaultEntries = true;
         if (lockCount > 0) {
             defaultEntries = false;
@@ -69,6 +70,14 @@
                 }
             }
         }
+        return defaultEntries;
+    }
+
+    @Override
+    public void lower(LoweringTool tool) {
+        StructuredGraph graph = (StructuredGraph) graph();
+
+        boolean defaultEntries = isDefault();
 
         if (virtualObject instanceof VirtualInstanceNode) {
             VirtualInstanceNode virtual = (VirtualInstanceNode) virtualObject;