[pypy-commit] pypy default: merge heads
antocuni
noreply at buildbot.pypy.org
Mon Aug 8 17:39:19 CEST 2011
Author: Antonio Cuni <anto.cuni at gmail.com>
Branch:
Changeset: r46378:51e4a69e3584
Date: 2011-08-08 17:41 +0200
http://bitbucket.org/pypy/pypy/changeset/51e4a69e3584/
Log: merge heads
diff --git a/pypy/jit/metainterp/test/test_loop.py b/pypy/jit/metainterp/test/test_loop.py
--- a/pypy/jit/metainterp/test/test_loop.py
+++ b/pypy/jit/metainterp/test/test_loop.py
@@ -800,6 +800,38 @@
res = self.meta_interp(f, [200])
+ def test_regular_pointers_in_short_preamble(self):
+ # XXX do we really care about this case? If not, we should
+ # at least detect it and complain during codewriter/jtransform
+ from pypy.rpython.lltypesystem import lltype
+ BASE = lltype.GcStruct('BASE')
+ A = lltype.GcStruct('A', ('parent', BASE), ('val', lltype.Signed))
+ B = lltype.GcStruct('B', ('parent', BASE), ('charval', lltype.Char))
+ myjitdriver = JitDriver(greens = [], reds = ['n', 'm', 'i', 'j', 'sa', 'p'])
+ def f(n, m, j):
+ i = sa = 0
+ pa = lltype.malloc(A)
+ pa.val = 7
+ p = pa.parent
+ while i < n:
+ myjitdriver.jit_merge_point(n=n, m=m, i=i, j=j, sa=sa, p=p)
+ if i < m:
+ pa = lltype.cast_pointer(lltype.Ptr(A), p)
+ sa += pa.val
+ elif i == m:
+ pb = lltype.malloc(B)
+ pb.charval = 'y'
+ p = pb.parent
+ else:
+ pb = lltype.cast_pointer(lltype.Ptr(B), p)
+ sa += ord(pb.charval)
+ sa += 100
+ assert n>0 and m>0
+ i += j
+ return sa
+ expected = f(20, 10, 1)
+ res = self.meta_interp(f, [20, 10, 1])
+ assert res == expected
def test_unerased_pointers_in_short_preamble(self):
from pypy.rlib.rerased import new_erasing_pair
diff --git a/pypy/rlib/jit.py b/pypy/rlib/jit.py
--- a/pypy/rlib/jit.py
+++ b/pypy/rlib/jit.py
@@ -115,7 +115,7 @@
s_x = annmodel.not_const(s_x)
access_directly = 's_access_directly' in kwds_s
fresh_virtualizable = 's_fresh_virtualizable' in kwds_s
- if access_directly or fresh_virtualizable:
+ if access_directly or fresh_virtualizable:
assert access_directly, "lone fresh_virtualizable hint"
if isinstance(s_x, annmodel.SomeInstance):
from pypy.objspace.flow.model import Constant
@@ -280,7 +280,7 @@
def specialize_call(self, hop):
pass
-
+
vref_None = non_virtual_ref(None)
# ____________________________________________________________
@@ -290,7 +290,7 @@
"""Inconsistency in the JIT hints."""
PARAMETERS = {'threshold': 1032, # just above 1024
- 'function_threshold': 1617, # slightly more than one above
+ 'function_threshold': 1617, # slightly more than one above
'trace_eagerness': 200,
'trace_limit': 12000,
'inlining': 1,
@@ -400,7 +400,7 @@
raise
set_user_param._annspecialcase_ = 'specialize:arg(0)'
-
+
def on_compile(self, logger, looptoken, operations, type, *greenargs):
""" A hook called when loop is compiled. Overwrite
for your own jitdriver if you want to do something special, like
@@ -571,7 +571,7 @@
c_llname = hop.inputconst(lltype.Void, mangled_name)
getfield_op = self.get_getfield_op(hop.rtyper)
v_green = hop.genop(getfield_op, [v_red, c_llname],
- resulttype = r_field)
+ resulttype=r_field)
s_green = s_red.classdef.about_attribute(fieldname)
assert s_green is not None
hop.rtyper.annotator.setbinding(v_green, s_green)
diff --git a/pypy/translator/translator.py b/pypy/translator/translator.py
--- a/pypy/translator/translator.py
+++ b/pypy/translator/translator.py
@@ -16,7 +16,7 @@
import py
log = py.log.Producer("flowgraph")
py.log.setconsumer("flowgraph", ansi_log)
-
+
class TranslationContext(object):
FLOWING_FLAGS = {
'verbose': False,
@@ -105,7 +105,7 @@
raise ValueError("we already have an rtyper")
from pypy.rpython.rtyper import RPythonTyper
self.rtyper = RPythonTyper(self.annotator,
- type_system = type_system)
+ type_system=type_system)
return self.rtyper
def getexceptiontransformer(self):
More information about the pypy-commit
mailing list