[pypy-commit] pypy resume-refactor: kill some dead code and fix first frontend test

fijal noreply at buildbot.pypy.org
Wed Jan 22 18:23:23 CET 2014


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: resume-refactor
Changeset: r68851:3407ed54bd43
Date: 2014-01-18 14:01 +0100
http://bitbucket.org/pypy/pypy/changeset/3407ed54bd43/

Log:	kill some dead code and fix first frontend test

diff --git a/rpython/jit/metainterp/optimizeopt/__init__.py b/rpython/jit/metainterp/optimizeopt/__init__.py
--- a/rpython/jit/metainterp/optimizeopt/__init__.py
+++ b/rpython/jit/metainterp/optimizeopt/__init__.py
@@ -50,7 +50,7 @@
 def optimize_trace(metainterp_sd, loop, enable_opts, inline_short_preamble=True):
     """Optimize loop.operations to remove internal overheadish operations.
     """
-    from rpython.jit.backend.resumebuilder import flatten
+    from rpython.jit.resume.backend import flatten
 
     debug_start("jit-optimize")
     try:
diff --git a/rpython/jit/resume/backend.py b/rpython/jit/resume/backend.py
--- a/rpython/jit/resume/backend.py
+++ b/rpython/jit/resume/backend.py
@@ -155,6 +155,8 @@
             fieldpos = self.get_box_pos(op.getarg(1))
             descr = op.getdescr()
             self.builder.resume_setfield_gc(structpos, fieldpos, descr)
+        elif op.getopnum() == rop.RESUME_SET_PC:
+            self.builder.resume_set_pc(op.getarg(0).getint())
         else:
             raise Exception("strange operation")
 
diff --git a/rpython/jit/resume/reader.py b/rpython/jit/resume/reader.py
--- a/rpython/jit/resume/reader.py
+++ b/rpython/jit/resume/reader.py
@@ -41,28 +41,12 @@
             self.framestack[-1].pc = pc
         self.framestack.append(ResumeFrame(jitcode))
 
-    def encode_box(self, pos):
-        return rescode.TAGBOX | (pos << rescode.TAGOFFSET)
-
-    def encode_virtual(self, box):
-        return rescode.TAGVIRTUAL | (self.virtuals[box].pos << rescode.TAGOFFSET)
-
-    def encode_const(self, const):
-        XXX
-        if isinstance(const, ConstInt) and const.getint() < (sys.maxint >> 3):
-            return rescode.TAGSMALLINT | (const.getint() << rescode.TAGOFFSET)
-        self.consts.append(const)
-        return rescode.TAGCONST | ((len(self.consts) - 1) << TAGOFFSET)
-
     def decode(self, pos):
         return pos & 0x3, pos >> rescode.TAGOFFSET
 
     def resume_put(self, encoded_pos, frame_no, frontend_position):
         self.framestack[frame_no].registers[frontend_position] = encoded_pos
 
-    def encode(self, box):
-        xxx
-
     def resume_new(self, v_pos, descr):
         v = Virtual(v_pos, descr)
         if v_pos >= len(self.virtuals):
diff --git a/rpython/jit/resume/rescode.py b/rpython/jit/resume/rescode.py
--- a/rpython/jit/resume/rescode.py
+++ b/rpython/jit/resume/rescode.py
@@ -2,7 +2,7 @@
 from rpython.jit.metainterp.history import ConstInt
 
 (UNUSED, ENTER_FRAME, LEAVE_FRAME, RESUME_PUT,
- RESUME_NEW, RESUME_SETFIELD_GC) = range(6)
+ RESUME_NEW, RESUME_SETFIELD_GC, RESUME_SET_PC) = range(7)
 
 TAGCONST = 0x0
 TAGVIRTUAL = 0x2
@@ -63,6 +63,10 @@
             return TAGSMALLINT | (const.getint() << 2)
         xxx
 
+    def resume_set_pc(self, pc):
+        self.write(RESUME_SET_PC)
+        self.write_short(pc)
+
     def resume_put(self, pos, frame_pos, pos_in_frame):
         self.write(RESUME_PUT)
         self.write_short(pos)
diff --git a/rpython/jit/resume/test/test_frontend.py b/rpython/jit/resume/test/test_frontend.py
--- a/rpython/jit/resume/test/test_frontend.py
+++ b/rpython/jit/resume/test/test_frontend.py
@@ -264,6 +264,7 @@
     codewriter = CodeWriter()
     ssarepr = unformat_assembler(assembler, name='one')
     jitcode = codewriter.assembler.assemble(ssarepr)
+    jitcode.global_index = 0
     jitcode.is_portal = True
     reds = ['v' + str(i) for i in range(no_reds)]
     jitdriver_sd = JitDriverStaticData(JitDriver(greens = [],
@@ -278,6 +279,7 @@
     cpu = LLGraphCPU(None, stats)
     metainterp_sd = MetaInterpStaticData(cpu, None)
     metainterp_sd.finish_setup(codewriter)
+    metainterp_sd.alljitcodes = [jitcode]
     return MetaInterp(metainterp_sd, jitdriver_sd), stats, jitdriver_sd
     
 class TestResumeRecorder(object):
@@ -314,6 +316,7 @@
         resume_put(i1, 0, 1)
         resume_put(i2, 0, 0)
         resume_set_pc(24)
+        leave_frame()
         """, namespace={'jitcode': jitcode})
         equaloplists(resume_ops, expected.operations, cache=True)
 


More information about the pypy-commit mailing list