changeset 3133:5aeb62416609

Fixed an issue in the C++ code of the escape analysis (wrongly commented out code).
author Thomas Wuerthinger <thomas@wuerthinger.net>
date Fri, 01 Jul 2011 21:07:29 +0200
parents 20058d88555b
children 4b63eb1197ca
files graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/alloc/LinearScan.java graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/graph/IR.java src/share/vm/graal/graalCodeInstaller.cpp
diffstat 3 files changed, 14 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/alloc/LinearScan.java	Fri Jul 01 20:11:51 2011 +0200
+++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/alloc/LinearScan.java	Fri Jul 01 21:07:29 2011 +0200
@@ -1914,8 +1914,13 @@
             assert values[i] != null : type + "." + escapeFields[i];
         }
 
-        CiVirtualObject vobj = CiVirtualObject.get(type, values, obj.id());
-        return vobj;
+        if (GraalOptions.PrintEscapeAnalysis) {
+            for (int i = 0; i < values.length; i++) {
+                TTY.println("field " + escapeFields[i].name() + " offset=" + values[i]);
+            }
+        }
+
+        return CiVirtualObject.get(type, values, obj.id());
     }
 
     CiFrame computeFrameForState(FrameState state, int opId, BitMap frameRefMap) {
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/graph/IR.java	Fri Jul 01 20:11:51 2011 +0200
+++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/graph/IR.java	Fri Jul 01 21:07:29 2011 +0200
@@ -100,7 +100,7 @@
             new DeadCodeEliminationPhase().apply(graph);
         }
 
-        if (GraalOptions.EscapeAnalysis) {
+        if (GraalOptions.EscapeAnalysis/* && compilation.method.toString().contains("commonDominator")*/) {
             new EscapeAnalysisPhase(compilation, this).apply(graph);
             new DeadCodeEliminationPhase().apply(graph);
             new CanonicalizerPhase().apply(graph);
--- a/src/share/vm/graal/graalCodeInstaller.cpp	Fri Jul 01 20:11:51 2011 +0200
+++ b/src/share/vm/graal/graalCodeInstaller.cpp	Fri Jul 01 21:07:29 2011 +0200
@@ -203,12 +203,12 @@
     }
 
     for (jint i = 0; i < values->length(); i++) {
-      ScopeValue* second = NULL;
-      ScopeValue* value = get_hotspot_value(((oop*) values->base(T_OBJECT))[i], frame_size, objects, second);
-
-//      if (second != NULL) {
-//        sv->field_values()->append(second);
-//      }
+      ScopeValue* cur_second = NULL;
+      ScopeValue* value = get_hotspot_value(((oop*) values->base(T_OBJECT))[i], frame_size, objects, cur_second);
+      
+      if (cur_second != NULL) {
+        sv->field_values()->append(cur_second);
+      }
       sv->field_values()->append(value);
     }