[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