[pypy-commit] pypy x86-dump-labels: rename labels to ops_offset, which is clearer

antocuni noreply at buildbot.pypy.org
Thu May 12 13:53:30 CEST 2011


Author: Antonio Cuni <anto.cuni at gmail.com>
Branch: x86-dump-labels
Changeset: r44098:e720a9242b6b
Date: 2011-05-12 14:01 +0200
http://bitbucket.org/pypy/pypy/changeset/e720a9242b6b/

Log:	rename labels to ops_offset, which is clearer

diff --git a/pypy/jit/backend/model.py b/pypy/jit/backend/model.py
--- a/pypy/jit/backend/model.py
+++ b/pypy/jit/backend/model.py
@@ -59,11 +59,11 @@
         looptoken.compiled_loop_token and stick extra attributes
         on it to point to the compiled loop in assembler.
 
-        Optionally, return a ``labels`` dictionary, which maps each operation
-        to its offset in the compiled code.  The ``labels`` dictionary is then
+        Optionally, return a ``ops_offset`` dictionary, which maps each operation
+        to its offset in the compiled code.  The ``ops_offset`` dictionary is then
         used by the operation logger to print the offsets in the log.  The
         offset representing the end of the last operation is stored in
-        ``labels[None]``: note that this might not coincide with the end of
+        ``ops_offset[None]``: note that this might not coincide with the end of
         the loop, because usually in the loop footer there is code which does
         not belong to any particular operation.
         """
@@ -74,7 +74,7 @@
         """Assemble the bridge.
         The FailDescr is the descr of the original guard that failed.
 
-        Optionally, return a ``labels`` dictionary.  See the docstring of
+        Optionally, return a ``ops_offset`` dictionary.  See the docstring of
         ``compiled_loop`` for more informations about it.
         """
         raise NotImplementedError    
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
@@ -361,12 +361,12 @@
                                 frame_depth + param_depth)
         self.patch_pending_failure_recoveries(rawstart)
         #
-        labels = self.mc.labels
+        ops_offset = self.mc.ops_offset
         if not we_are_translated():
             # used only by looptoken.dump() -- useful in tests
             looptoken._x86_rawstart = rawstart
             looptoken._x86_fullsize = fullsize
-            looptoken._x86_labels = labels
+            looptoken._x86_ops_offset = ops_offset
 
         looptoken._x86_bootstrap_code = rawstart + bootstrappos
         looptoken._x86_loop_code = rawstart + self.looppos
@@ -377,7 +377,7 @@
             name = "Loop # %s: %s" % (looptoken.number, funcname)
             self.cpu.profile_agent.native_code_written(name,
                                                        rawstart, fullsize)
-        return labels
+        return ops_offset
 
     def assemble_bridge(self, faildescr, inputargs, operations,
                         original_loop_token, log):
@@ -427,14 +427,14 @@
             faildescr._x86_bridge_param_depth = param_depth
         # patch the jump from original guard
         self.patch_jump_for_descr(faildescr, rawstart)
-        labels = self.mc.labels
+        ops_offset = self.mc.ops_offset
         self.teardown()
         # oprofile support
         if self.cpu.profile_agent is not None:
             name = "Bridge # %s: %s" % (descr_number, funcname)
             self.cpu.profile_agent.native_code_written(name,
                                                        rawstart, fullsize)
-        return labels
+        return ops_offset
 
     def write_pending_failure_recoveries(self):
         # for each pending guard, generate the code of the recovery stub
diff --git a/pypy/jit/backend/x86/codebuf.py b/pypy/jit/backend/x86/codebuf.py
--- a/pypy/jit/backend/x86/codebuf.py
+++ b/pypy/jit/backend/x86/codebuf.py
@@ -27,17 +27,18 @@
         # at [p-4:p] encode an absolute address that will need to be
         # made relative.
         self.relocations = []
+        #
         # ResOperation --> offset in the assembly.
-        # labels[None] represents the beginning of the code after the last op
-        # (i.e., the tail of the loop
-        self.labels = {}
+        # ops_offset[None] represents the beginning of the code after the last op
+        # (i.e., the tail of the loop)
+        self.ops_offset = {}
 
     def add_pending_relocation(self):
         self.relocations.append(self.get_relative_pos())
 
     def mark_op(self, op):
         pos = self.get_relative_pos()
-        self.labels[op] = pos
+        self.ops_offset[op] = pos
 
     def copy_to_raw_memory(self, addr):
         self._copy_to_raw_memory(addr)
diff --git a/pypy/jit/backend/x86/runner.py b/pypy/jit/backend/x86/runner.py
--- a/pypy/jit/backend/x86/runner.py
+++ b/pypy/jit/backend/x86/runner.py
@@ -66,7 +66,8 @@
         """
         from pypy.jit.backend.x86.tool.viewcode import machine_code_dump
         data = []
-        label_list = [(offset, name) for name, offset in looptoken._x86_labels.iteritems()]
+        label_list = [(offset, name) for name, offset in
+                      looptoken._x86_ops_offset.iteritems()]
         label_list.sort()
         addr = looptoken._x86_rawstart
         src = rffi.cast(rffi.CCHARP, addr)
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
@@ -390,7 +390,7 @@
         res = self.cpu.get_latest_value_int(0)
         assert res == 20
 
-    def test_labels(self):
+    def test_ops_offset(self):
         from pypy.rlib import debug
         i0 = BoxInt()
         i1 = BoxInt()
@@ -403,17 +403,16 @@
             ]
         inputargs = [i0]
         debug._log = dlog = debug.DebugLog()
-        labels = self.cpu.compile_loop(inputargs, operations, looptoken)
+        ops_offset = self.cpu.compile_loop(inputargs, operations, looptoken)
         debug._log = None
         #
-        # check the labels saved on the looptoken
-        assert labels is looptoken._x86_labels
+        assert ops_offset is looptoken._x86_ops_offset
         # getfield_raw/int_add/setfield_raw + ops + None
-        assert len(labels) == 3 + len(operations) + 1
-        assert (labels[operations[0]] <=
-                labels[operations[1]] <=
-                labels[operations[2]] <=
-                labels[None])
+        assert len(ops_offset) == 3 + len(operations) + 1
+        assert (ops_offset[operations[0]] <=
+                ops_offset[operations[1]] <=
+                ops_offset[operations[2]] <=
+                ops_offset[None])
 
 class TestDebuggingAssembler(object):
     def setup_method(self, meth):
diff --git a/pypy/jit/metainterp/compile.py b/pypy/jit/metainterp/compile.py
--- a/pypy/jit/metainterp/compile.py
+++ b/pypy/jit/metainterp/compile.py
@@ -162,8 +162,8 @@
     metainterp_sd.profiler.start_backend()
     debug_start("jit-backend")
     try:
-        labels = metainterp_sd.cpu.compile_loop(loop.inputargs, loop.operations,
-                                                loop.token)
+        ops_offset = metainterp_sd.cpu.compile_loop(loop.inputargs, loop.operations,
+                                                    loop.token)
     finally:
         debug_stop("jit-backend")
     metainterp_sd.profiler.end_backend()
@@ -175,7 +175,7 @@
             loop._ignore_during_counting = True
     metainterp_sd.log("compiled new " + type)
     #
-    metainterp_sd.logger_ops.log_loop(loop.inputargs, loop.operations, n, type, labels)
+    metainterp_sd.logger_ops.log_loop(loop.inputargs, loop.operations, n, type, ops_offset)
     short = loop.token.short_preamble
     if short:
         metainterp_sd.logger_ops.log_short_preamble(short[-1].inputargs,
@@ -192,8 +192,8 @@
     metainterp_sd.profiler.start_backend()
     debug_start("jit-backend")
     try:
-        labels = metainterp_sd.cpu.compile_bridge(faildescr, inputargs, operations,
-                                                  original_loop_token)
+        ops_offset = metainterp_sd.cpu.compile_bridge(faildescr, inputargs, operations,
+                                                      original_loop_token)
     finally:
         debug_stop("jit-backend")
     metainterp_sd.profiler.end_backend()
@@ -202,7 +202,7 @@
     metainterp_sd.log("compiled new bridge")
     #
     n = metainterp_sd.cpu.get_fail_descr_number(faildescr)
-    metainterp_sd.logger_ops.log_bridge(inputargs, operations, n, labels)
+    metainterp_sd.logger_ops.log_bridge(inputargs, operations, n, ops_offset)
     #
     if metainterp_sd.warmrunnerdesc is not None:    # for tests
         metainterp_sd.warmrunnerdesc.memory_manager.keep_loop_alive(
diff --git a/pypy/jit/metainterp/logger.py b/pypy/jit/metainterp/logger.py
--- a/pypy/jit/metainterp/logger.py
+++ b/pypy/jit/metainterp/logger.py
@@ -14,33 +14,33 @@
         self.ts = metainterp_sd.cpu.ts
         self.guard_number = guard_number
 
-    def log_loop(self, inputargs, operations, number=0, type=None, labels=None):
+    def log_loop(self, inputargs, operations, number=0, type=None, ops_offset=None):
         if type is None:
             debug_start("jit-log-noopt-loop")
-            self._log_operations(inputargs, operations, labels)
+            self._log_operations(inputargs, operations, ops_offset)
             debug_stop("jit-log-noopt-loop")
         else:
             debug_start("jit-log-opt-loop")
             debug_print("# Loop", number, ":", type,
                         "with", len(operations), "ops")
-            self._log_operations(inputargs, operations, labels)
+            self._log_operations(inputargs, operations, ops_offset)
             debug_stop("jit-log-opt-loop")
 
-    def log_bridge(self, inputargs, operations, number=-1, labels=None):
+    def log_bridge(self, inputargs, operations, number=-1, ops_offset=None):
         if number == -1:
             debug_start("jit-log-noopt-bridge")
-            self._log_operations(inputargs, operations, labels)
+            self._log_operations(inputargs, operations, ops_offset)
             debug_stop("jit-log-noopt-bridge")
         else:
             debug_start("jit-log-opt-bridge")
             debug_print("# bridge out of Guard", number,
                         "with", len(operations), "ops")
-            self._log_operations(inputargs, operations, labels)
+            self._log_operations(inputargs, operations, ops_offset)
             debug_stop("jit-log-opt-bridge")
 
     def log_short_preamble(self, inputargs, operations):
         debug_start("jit-log-short-preamble")
-        self._log_operations(inputargs, operations, labels=None)
+        self._log_operations(inputargs, operations, ops_offset=None)
         debug_stop("jit-log-short-preamble")            
 
     def repr_of_descr(self, descr):
@@ -75,11 +75,11 @@
         else:
             return '?'
 
-    def _log_operations(self, inputargs, operations, labels):
+    def _log_operations(self, inputargs, operations, ops_offset):
         if not have_debug_prints():
             return
-        if labels is None:
-            labels = {}
+        if ops_offset is None:
+            ops_offset = {}
         memo = {}
         if inputargs is not None:
             args = ", ".join([self.repr_of_arg(memo, arg) for arg in inputargs])
@@ -91,7 +91,7 @@
                 reclev = op.getarg(1).getint()
                 debug_print("debug_merge_point('%s', %s)" % (loc, reclev))
                 continue
-            offset = labels.get(op, -1)
+            offset = ops_offset.get(op, -1)
             if offset == -1:
                 s_offset = ""
             else:
@@ -117,8 +117,8 @@
                 fail_args = ''
             debug_print(s_offset + res + op.getopname() +
                         '(' + args + ')' + fail_args)
-        if labels and None in labels:
-            offset = labels[None]
+        if ops_offset and None in ops_offset:
+            offset = ops_offset[None]
             debug_print("+%d: # --end of the loop--" % offset)
 
 
diff --git a/pypy/jit/metainterp/test/test_compile.py b/pypy/jit/metainterp/test/test_compile.py
--- a/pypy/jit/metainterp/test/test_compile.py
+++ b/pypy/jit/metainterp/test/test_compile.py
@@ -34,7 +34,7 @@
         self.seen.append((inputargs, operations, token))
 
 class FakeLogger(object):
-    def log_loop(self, inputargs, operations, number=0, type=None, labels=None):
+    def log_loop(self, inputargs, operations, number=0, type=None, ops_offset=None):
         pass
 
 class FakeState(object):
diff --git a/pypy/jit/metainterp/test/test_logger.py b/pypy/jit/metainterp/test/test_logger.py
--- a/pypy/jit/metainterp/test/test_logger.py
+++ b/pypy/jit/metainterp/test/test_logger.py
@@ -31,10 +31,10 @@
     return log_stream.getvalue()
 
 class Logger(logger.Logger):
-    def log_loop(self, loop, namespace={}, labels=None):
+    def log_loop(self, loop, namespace={}, ops_offset=None):
         self.namespace = namespace
         return capturing(logger.Logger.log_loop, self,
-                         loop.inputargs, loop.operations, labels=labels)
+                         loop.inputargs, loop.operations, ops_offset=ops_offset)
 
     def repr_of_descr(self, descr):
         for k, v in self.namespace.items():
@@ -179,7 +179,7 @@
         assert output.splitlines()[0] == "# bridge out of Guard 3 with 0 ops"
         pure_parse(output)
 
-    def test_labels(self):
+    def test_ops_offset(self):
         inp = '''
         [i0]
         i1 = int_add(i0, 1)
@@ -188,13 +188,13 @@
         '''
         loop = pure_parse(inp)
         ops = loop.operations
-        labels = {
+        ops_offset = {
             ops[0]: 10,
             ops[2]: 30,
             None: 40
             }
         logger = Logger(self.make_metainterp_sd())
-        output = logger.log_loop(loop, labels=labels)
+        output = logger.log_loop(loop, ops_offset=ops_offset)
         assert output.strip() == """
 [i0]
 +10: i2 = int_add(i0, 1)


More information about the pypy-commit mailing list