[pypy-commit] pypy new-jit-log: fixed translation issues
plan_rich
pypy.commits at gmail.com
Tue Apr 26 02:13:59 EDT 2016
Author: Richard Plangger <planrichi at gmail.com>
Branch: new-jit-log
Changeset: r83890:13151099cbf6
Date: 2016-04-26 08:13 +0200
http://bitbucket.org/pypy/pypy/changeset/13151099cbf6/
Log: fixed translation issues
diff --git a/pypy/module/pypyjit/interp_jit.py b/pypy/module/pypyjit/interp_jit.py
--- a/pypy/module/pypyjit/interp_jit.py
+++ b/pypy/module/pypyjit/interp_jit.py
@@ -5,7 +5,7 @@
from rpython.rlib.rarithmetic import r_uint, intmask
from rpython.rlib.jit import JitDriver, hint, we_are_jitted, dont_look_inside
-from rpython.rlib import jit, jit_hooks
+from rpython.rlib import jit, jit_hooks, jitlog as jl
from rpython.rlib.jit import current_trace_length, unroll_parameters,\
JitHookInterface
from rpython.rtyper.annlowlevel import cast_instance_to_gcref
@@ -45,9 +45,10 @@
jl.MP_SCOPE, jl.MP_INDEX, jl.MP_OPCODE)
def get_location(next_instr, is_being_profiled, bytecode):
from pypy.tool.stdlib_opcode import opcode_method_names
- opname = opcode_method_names[ord(bytecode.co_code[next_instr])]
- if not opname:
- opname = ""
+ bcindex = ord(bytecode.co_code[next_instr])
+ opname = ""
+ if 0 <= bcindex < len(opcode_method_names):
+ opname = opcode_method_names[bcindex]
name = bytecode.co_name
if not name:
name = ""
diff --git a/rpython/jit/metainterp/optimizeopt/dependency.py b/rpython/jit/metainterp/optimizeopt/dependency.py
--- a/rpython/jit/metainterp/optimizeopt/dependency.py
+++ b/rpython/jit/metainterp/optimizeopt/dependency.py
@@ -22,6 +22,8 @@
, (rop.UNICODESETITEM, 0, -1)
]
+UNROLLED_MODIFY_COMPLEX_OBJ = unrolling_iterable(MODIFY_COMPLEX_OBJ)
+
LOAD_COMPLEX_OBJ = [ (rop.GETARRAYITEM_GC_I, 0, 1)
, (rop.GETARRAYITEM_GC_F, 0, 1)
, (rop.GETARRAYITEM_GC_R, 0, 1)
@@ -40,6 +42,8 @@
, (rop.GETFIELD_RAW_R, 0, -1)
]
+UNROLLED_LOAD_COMPLEX_OBJ = unrolling_iterable(LOAD_COMPLEX_OBJ)
+
class Path(object):
def __init__(self,path):
self.path = path
@@ -202,7 +206,7 @@
args = []
op = self.op
if self.modifies_complex_object():
- for opnum, i, j in unrolling_iterable(MODIFY_COMPLEX_OBJ):
+ for opnum, i, j in UNROLLED_MODIFY_COMPLEX_OBJ: #unrolling_iterable(MODIFY_COMPLEX_OBJ):
if op.getopnum() == opnum:
op_args = op.getarglist()
if j == -1:
@@ -723,7 +727,7 @@
if node.loads_from_complex_object():
# If this complex object load operation loads an index that has been
# modified, the last modification should be used to put a def-use edge.
- for opnum, i, j in unrolling_iterable(LOAD_COMPLEX_OBJ):
+ for opnum, i, j in UNROLLED_LOAD_COMPLEX_OBJ:
if opnum == op.getopnum():
cobj = op.getarg(i)
if j != -1:
diff --git a/rpython/jit/metainterp/warmspot.py b/rpython/jit/metainterp/warmspot.py
--- a/rpython/jit/metainterp/warmspot.py
+++ b/rpython/jit/metainterp/warmspot.py
@@ -581,8 +581,6 @@
annhelper, jd.jitdriver.should_unroll_one_iteration,
annmodel.s_Bool)
#
- s_Str = annmodel.SomeString(no_nul=True)
- s_Int = annmodel.SomeInteger()
items = []
types = ()
pos = ()
@@ -601,9 +599,9 @@
#
for _,type in types:
if type == 's':
- items.append(s_Str)
+ items.append(annmodel.SomeString())
elif type == 'i':
- items.append(s_Int)
+ items.append(annmodel.SomeInteger())
else:
raise NotImplementedError
s_Tuple = annmodel.SomeTuple(items)
diff --git a/rpython/rlib/jitlog.py b/rpython/rlib/jitlog.py
--- a/rpython/rlib/jitlog.py
+++ b/rpython/rlib/jitlog.py
@@ -176,17 +176,20 @@
('COMMON_PREFIX',),
]
-start = 0x10
+start = 0x11
for mark, in marks:
globals()['MARK_' + mark] = start
start += 1
if __name__ == "__main__":
print("# generated constants from rpython/rlib/jitlog.py")
- for mark in marks:
- print '%s = %d' % ('MARK_' + mark, globals()['MARK_' + mark])
+ print 'MARK_JITLOG_START = chr(%s)' % hex(0x10)
+ for mark, in marks:
+ print '%s = chr(%s)' % ('MARK_' + mark, hex(globals()['MARK_' + mark]))
+ print 'MARK_JITLOG_END = chr(%s)' % hex(start)
del marks
+del start
IS_32_BIT = sys.maxint == 2**31-1
@@ -331,7 +334,7 @@
def write(self, args, ops, ops_offset={}):
log = self.logger
- log._write_marked(self.tag, encode_le_addr(self.logger.trace_id))
+ log._write_marked(self.tag, encode_le_64bit(self.logger.trace_id))
# input args
str_args = [self.var_to_str(arg) for arg in args]
More information about the pypy-commit
mailing list