[pypy-commit] pypy exp-with-blackhole: try to dump info

fijal noreply at buildbot.pypy.org
Sat May 23 11:34:45 CEST 2015


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: exp-with-blackhole
Changeset: r77500:65e2372df15d
Date: 2015-05-18 13:37 +0200
http://bitbucket.org/pypy/pypy/changeset/65e2372df15d/

Log:	try to dump info

diff --git a/rpython/jit/metainterp/resume.py b/rpython/jit/metainterp/resume.py
--- a/rpython/jit/metainterp/resume.py
+++ b/rpython/jit/metainterp/resume.py
@@ -387,8 +387,25 @@
         self._add_pending_fields(pending_setfields)
 
         storage.rd_consts = self.memo.consts
+        self.dump(storage)
         return liveboxes[:]
 
+    def dump(self, storage):
+        debug_start("jit-resume")
+        f = storage.rd_frame_info_list
+        while f:
+            debug_print("frame:", f.jitcode.name, f.pc)
+            f = f.prev
+        debug_print("no of consts:", len(storage.rd_consts))
+        n = storage.rd_numb
+        while n:
+            debug_print("nums:", " ".join([str(i) for i in n.nums]))
+            n = n.prev
+        if storage.rd_virtuals:
+            for v in storage.rd_virtuals:
+                v.dump()
+        debug_stop('jit-resume')
+
     def _number_virtuals(self, liveboxes, optimizer, num_env_virtuals):
         # !! 'liveboxes' is a list that is extend()ed in-place !!
         memo = self.memo
@@ -496,6 +513,9 @@
     def debug_prints(self):
         raise NotImplementedError
 
+    def dump(self):
+        pass
+
 
 class AbstractVirtualStructInfo(AbstractVirtualInfo):
     def __init__(self, fielddescrs):
@@ -516,6 +536,12 @@
                         str(self.fielddescrs[i]),
                         str(untag(self.fieldnums[i])))
 
+    def dump(self):
+        for i in range(len(self.fielddescrs)):
+            debug_print("\t\t",
+                        self.fielddescrs[i].repr_of_descr(),
+                        self.fieldnums[i])
+
 class VirtualInfo(AbstractVirtualStructInfo):
     def __init__(self, known_class, fielddescrs):
         AbstractVirtualStructInfo.__init__(self, fielddescrs)
@@ -531,6 +557,10 @@
         debug_print("\tvirtualinfo", self.known_class.repr_rpython(), " at ",  compute_unique_id(self))
         AbstractVirtualStructInfo.debug_prints(self)
 
+    def dump(self):
+        debug_print("\tvirtualinfo")
+        AbstractVirtualStructInfo.dump(self)
+
 
 class VStructInfo(AbstractVirtualStructInfo):
     def __init__(self, typedescr, fielddescrs):
@@ -547,6 +577,10 @@
         debug_print("\tvstructinfo", self.typedescr.repr_rpython(), " at ",  compute_unique_id(self))
         AbstractVirtualStructInfo.debug_prints(self)
 
+    def dump(self):
+        debug_print("\tvstructinfo")
+        AbstractVirtualStructInfo.dump(self)
+
 class AbstractVArrayInfo(AbstractVirtualInfo):
     def __init__(self, arraydescr):
         self.arraydescr = arraydescr
@@ -582,6 +616,12 @@
         for i in self.fieldnums:
             debug_print("\t\t", str(untag(i)))
 
+    def dump(self):
+        debug_print("\tvarrayinfo", self.arraydescr.repr_of_descr(),
+                    " clear=", self.clear)
+        for i in self.fieldnums:
+            debug_print("\t\t", i)
+
 
 class VArrayInfoClear(AbstractVArrayInfo):
     clear = True
@@ -618,6 +658,11 @@
         for i in self.fieldnums:
             debug_print("\t\t", str(untag(i)))
 
+    def dump(self):
+        debug_print("\tvrawbufferinfo")
+        for i in self.fieldnums:
+            debug_print("\t\t", i)
+
 
 class VRawSliceInfo(VAbstractRawInfo):
 
@@ -637,6 +682,11 @@
         for i in self.fieldnums:
             debug_print("\t\t", str(untag(i)))
 
+    def dump(self):
+        debug_print("\tvrawsliceinfo", self.offset)
+        for i in self.fieldnums:
+            debug_print("\t\t", i)
+
 
 class VArrayStructInfo(AbstractVirtualInfo):
     def __init__(self, arraydescr, fielddescrs):
@@ -648,6 +698,11 @@
         for i in self.fieldnums:
             debug_print("\t\t", str(untag(i)))
 
+    def dump(self):
+        debug_print("\tvarraystructinfo", self.arraydescr.repr_of_descr())
+        for i in self.fieldnums:
+            debug_print("\t\t", i)
+
     @specialize.argtype(1)
     def allocate(self, decoder, index):
         array = decoder.allocate_array(len(self.fielddescrs), self.arraydescr,
@@ -679,6 +734,9 @@
     def debug_prints(self):
         debug_print("\tvstrplaininfo length", len(self.fieldnums), " at ",  compute_unique_id(self))
 
+    def dump(self):
+        debug_print("\tvstrplaininfo length", len(self.fieldnums))
+
 
 class VStrConcatInfo(AbstractVirtualInfo):
     """Stands for the string made out of the concatenation of two
@@ -699,6 +757,9 @@
         for i in self.fieldnums:
             debug_print("\t\t", str(untag(i)))
 
+    def dump(self):
+        debug_print("\tvstrconcatinfo")        
+
 
 class VStrSliceInfo(AbstractVirtualInfo):
     """Stands for the string made out of slicing another string."""
@@ -715,6 +776,9 @@
         for i in self.fieldnums:
             debug_print("\t\t", str(untag(i)))
 
+    def dump(self):
+        debug_print("\tvstrsliceinfo")
+
 
 class VUniPlainInfo(AbstractVirtualInfo):
     """Stands for the unicode string made out of the characters of all
@@ -734,6 +798,9 @@
     def debug_prints(self):
         debug_print("\tvuniplaininfo length", len(self.fieldnums), " at ",  compute_unique_id(self))
 
+    def dump(self):
+        debug_print("\tvuniplaininfo length", len(self.fieldnums))
+
 
 class VUniConcatInfo(AbstractVirtualInfo):
     """Stands for the unicode string made out of the concatenation of two
@@ -754,6 +821,9 @@
         for i in self.fieldnums:
             debug_print("\t\t", str(untag(i)))
 
+    def dump(self):
+        debug_print("\tvuniconcatinfo")
+
 
 class VUniSliceInfo(AbstractVirtualInfo):
     """Stands for the unicode string made out of slicing another
@@ -771,6 +841,9 @@
         for i in self.fieldnums:
             debug_print("\t\t", str(untag(i)))
 
+    def dump(self):
+        debug_print("\tvunisliceinfo")
+
 # ____________________________________________________________
 
 class AbstractVirtualCache(object):


More information about the pypy-commit mailing list