changeset 22248:d1ef84d3776d

Include live base pointers in backend dump.
author Roland Schatz <roland.schatz@oracle.com>
date Mon, 20 Jul 2015 15:25:38 +0200
parents 653e85bc19a0
children 60d75935edf2
files graal/com.oracle.graal.lir/src/com/oracle/graal/lir/dfa/ValueSet.java graal/com.oracle.graal.printer/src/com/oracle/graal/printer/CFGPrinter.java graal/com.oracle.graal.printer/src/com/oracle/graal/printer/CompilationPrinter.java
diffstat 3 files changed, 33 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/dfa/ValueSet.java	Mon Jul 20 14:06:46 2015 +0200
+++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/dfa/ValueSet.java	Mon Jul 20 15:25:38 2015 +0200
@@ -150,4 +150,26 @@
     public int hashCode() {
         throw new UnsupportedOperationException();
     }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder("[");
+        boolean comma = false;
+
+        for (int i = 0; i < values.length; i++) {
+            if (values[i] != null) {
+                if (comma) {
+                    sb.append(", ");
+                } else {
+                    comma = true;
+                }
+
+                sb.append(i);
+                sb.append(": ");
+                sb.append(values[i]);
+            }
+        }
+        sb.append(']');
+        return sb.toString();
+    }
 }
--- a/graal/com.oracle.graal.printer/src/com/oracle/graal/printer/CFGPrinter.java	Mon Jul 20 14:06:46 2015 +0200
+++ b/graal/com.oracle.graal.printer/src/com/oracle/graal/printer/CFGPrinter.java	Mon Jul 20 15:25:38 2015 +0200
@@ -455,9 +455,9 @@
                 inst.forEachState(state -> {
                     if (state.hasDebugInfo()) {
                         DebugInfo di = state.debugInfo();
-                        stateString.append(debugInfoToString(di.getBytecodePosition(), di.getReferenceMap(), di.getCalleeSaveInfo()));
+                        stateString.append(debugInfoToString(di.getBytecodePosition(), di.getReferenceMap(), state.getLiveBasePointers(), di.getCalleeSaveInfo()));
                     } else {
-                        stateString.append(debugInfoToString(state.topFrame, null, null));
+                        stateString.append(debugInfoToString(state.topFrame, null, state.getLiveBasePointers(), null));
                     }
                 });
                 if (stateString.length() > 0) {
--- a/graal/com.oracle.graal.printer/src/com/oracle/graal/printer/CompilationPrinter.java	Mon Jul 20 14:06:46 2015 +0200
+++ b/graal/com.oracle.graal.printer/src/com/oracle/graal/printer/CompilationPrinter.java	Mon Jul 20 15:25:38 2015 +0200
@@ -29,6 +29,8 @@
 import jdk.internal.jvmci.debug.*;
 import jdk.internal.jvmci.meta.*;
 
+import com.oracle.graal.lir.dfa.*;
+
 /**
  * Utility for printing compilation related data structures at various compilation phases. The
  * output format is such that it can then be fed to the <a
@@ -112,12 +114,18 @@
     /**
      * Formats given debug info as a multi line string.
      */
-    protected String debugInfoToString(BytecodePosition codePos, ReferenceMap refMap, RegisterSaveLayout calleeSaveInfo) {
+    protected String debugInfoToString(BytecodePosition codePos, ReferenceMap refMap, ValueSet liveBasePointers, RegisterSaveLayout calleeSaveInfo) {
         StringBuilder sb = new StringBuilder();
         if (refMap != null) {
+            sb.append("reference-map: ");
             sb.append(refMap.toString());
             sb.append("\n");
         }
+        if (liveBasePointers != null) {
+            sb.append("live-base-pointers: ");
+            sb.append(liveBasePointers);
+            sb.append("\n");
+        }
 
         if (calleeSaveInfo != null) {
             sb.append("callee-save-info:");