changeset 9124:5f66acd13e41

CompilationResult: record more metrics for DataPatches
author Bernhard Urban <bernhard.urban@jku.at>
date Fri, 12 Apr 2013 11:06:30 +0200
parents 221ef4b022c5
children 5b25562f8bd7
files graal/com.oracle.graal.lir/src/com/oracle/graal/lir/asm/TargetMethodAssembler.java
diffstat 1 files changed, 12 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/asm/TargetMethodAssembler.java	Mon Apr 15 19:54:23 2013 +0200
+++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/asm/TargetMethodAssembler.java	Fri Apr 12 11:06:30 2013 +0200
@@ -27,6 +27,7 @@
 import java.util.*;
 
 import com.oracle.graal.api.code.*;
+import com.oracle.graal.api.code.CompilationResult.*;
 import com.oracle.graal.api.meta.*;
 import com.oracle.graal.asm.*;
 import com.oracle.graal.debug.*;
@@ -99,10 +100,20 @@
             }
         }
 
+        List<DataPatch> ldp = compilationResult.getDataReferences();
+        DebugMetric[] dms = new DebugMetric[Kind.values().length];
+        for (int i = 0; i < dms.length; i++) {
+            dms[i] = Debug.metric("DataPatches-" + Kind.values()[i].toString());
+        }
+
+        for (DataPatch dp : ldp) {
+            dms[dp.constant.getKind().ordinal()].add(1);
+        }
+
         Debug.metric("TargetMethods").increment();
         Debug.metric("CodeBytesEmitted").add(compilationResult.getTargetCodeSize());
         Debug.metric("SafepointsEmitted").add(compilationResult.getInfopoints().size());
-        Debug.metric("DataPatches").add(compilationResult.getDataReferences().size());
+        Debug.metric("DataPatches").add(ldp.size());
         Debug.metric("ExceptionHandlersEmitted").add(compilationResult.getExceptionHandlers().size());
         Debug.log("Finished target method %s, isStub %b", name, isStub);
         return compilationResult;