Author: Hakan Ardo <[email protected]>
Branch: jit-label-counters
Changeset: r50848:52c88d381e03
Date: 2011-12-25 10:44 +0100
http://bitbucket.org/pypy/pypy/changeset/52c88d381e03/

Log:    save a bit of memory

diff --git a/pypy/jit/backend/x86/assembler.py 
b/pypy/jit/backend/x86/assembler.py
--- a/pypy/jit/backend/x86/assembler.py
+++ b/pypy/jit/backend/x86/assembler.py
@@ -39,6 +39,7 @@
 from pypy.jit.codewriter.effectinfo import EffectInfo
 from pypy.jit.codewriter import longlong
 from pypy.rlib.rarithmetic import intmask
+from pypy.rlib.objectmodel import compute_unique_id
 
 # darwin requires the stack to be 16 bytes aligned on calls. Same for gcc 
4.5.0,
 # better safe than sorry
@@ -76,7 +77,6 @@
                                              failargs_limit)
         self.fail_ebp = 0
         self.loop_run_counters = []
-        self.loop_run_counter_tokens = []
         self.float_const_neg_addr = 0
         self.float_const_abs_addr = 0
         self.malloc_slowpath1 = 0
@@ -150,14 +150,10 @@
             debug_start('jit-backend-counts')
             for i in range(len(self.loop_run_counters)):
                 struct = self.loop_run_counters[i]
-                token = self.loop_run_counter_tokens[i]
-                if token:
-                    prefix = token
+                if not struct.bridge:
+                    prefix = 'TargetToken(%d)' % struct.number
                 else:
-                    if struct.bridge:
-                        prefix = 'bridge ' + str(struct.number)
-                    else:
-                        prefix = 'loop ' + str(struct.number)
+                    prefix = 'bridge ' + str(struct.number)
                 debug_print(prefix + ':' + str(struct.i))
             debug_stop('jit-backend-counts')
 
@@ -611,12 +607,12 @@
                                track_allocation=False)
         struct.i = 0
         struct.bridge = int(bridge)
-        struct.number = number
-        self.loop_run_counters.append(struct)
-        if token is not None:
-            self.loop_run_counter_tokens.append(token.repr_of_descr())
+        if bridge:
+            struct.number = number
         else:
-            self.loop_run_counter_tokens.append(None)
+            assert token
+            struct.number = compute_unique_id(token)
+        self.loop_run_counters.append(struct)            
         return struct
 
     def _find_failure_recovery_bytecode(self, faildescr):
diff --git a/pypy/jit/backend/x86/test/test_runner.py 
b/pypy/jit/backend/x86/test/test_runner.py
--- a/pypy/jit/backend/x86/test/test_runner.py
+++ b/pypy/jit/backend/x86/test/test_runner.py
@@ -545,12 +545,8 @@
             # check debugging info
             struct = self.cpu.assembler.loop_run_counters[0]
             assert struct.i == 1
-            token = self.cpu.assembler.loop_run_counter_tokens[0]
-            assert token == preambletoken.repr_of_descr()
             struct = self.cpu.assembler.loop_run_counters[1]
             assert struct.i == 9
-            token = self.cpu.assembler.loop_run_counter_tokens[1]
-            assert token == targettoken.repr_of_descr()
             self.cpu.finish_once()
         finally:
             debug._log = None
diff --git a/pypy/tool/jitlogparser/parser.py b/pypy/tool/jitlogparser/parser.py
--- a/pypy/tool/jitlogparser/parser.py
+++ b/pypy/tool/jitlogparser/parser.py
@@ -402,7 +402,6 @@
     parts = []
     for i in range(len(labels) - 1):
         start, stop = labels[i], labels[i+1]
-        
         parts.append(Part(trace, trace.operations[start : stop + 1]))
     
     return parts
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to