[pypy-commit] pypy default: A failing test.
arigo
noreply at buildbot.pypy.org
Sun Oct 30 18:31:35 CET 2011
Author: Armin Rigo <arigo at tunes.org>
Branch:
Changeset: r48611:fd20e5312348
Date: 2011-10-30 18:25 +0100
http://bitbucket.org/pypy/pypy/changeset/fd20e5312348/
Log: A failing test.
diff --git a/pypy/jit/backend/llgraph/llimpl.py b/pypy/jit/backend/llgraph/llimpl.py
--- a/pypy/jit/backend/llgraph/llimpl.py
+++ b/pypy/jit/backend/llgraph/llimpl.py
@@ -1114,7 +1114,9 @@
if isinstance(TYPE, lltype.Ptr):
if isinstance(x, (int, long, llmemory.AddressAsInt)):
x = llmemory.cast_int_to_adr(x)
- if TYPE is rffi.VOIDP or TYPE.TO._hints.get("uncast_on_llgraph"):
+ if TYPE is rffi.VOIDP or (
+ hasattr(TYPE.TO, '_hints') and
+ TYPE.TO._hints.get("uncast_on_llgraph")):
# assume that we want a "C-style" cast, without typechecking the value
return rffi.cast(TYPE, x)
return llmemory.cast_adr_to_ptr(x, TYPE)
diff --git a/pypy/jit/backend/llgraph/runner.py b/pypy/jit/backend/llgraph/runner.py
--- a/pypy/jit/backend/llgraph/runner.py
+++ b/pypy/jit/backend/llgraph/runner.py
@@ -365,6 +365,7 @@
def arraydescrof(self, A):
assert A.OF != lltype.Void
+ assert isinstance(A, lltype.GcArray) or A._hints.get('nolength', False)
size = symbolic.get_size(A)
if isinstance(A.OF, lltype.Ptr) or isinstance(A.OF, lltype.Primitive):
token = history.getkind(A.OF)[0]
diff --git a/pypy/jit/codewriter/support.py b/pypy/jit/codewriter/support.py
--- a/pypy/jit/codewriter/support.py
+++ b/pypy/jit/codewriter/support.py
@@ -40,6 +40,7 @@
type_system="lltype"):
# build the normal ll graphs for ll_function
t = TranslationContext()
+ t.config.translation.withsmallfuncsets = 3
annpolicy = AnnotatorPolicy()
annpolicy.allow_someobjects = False
a = t.buildannotator(policy=annpolicy)
diff --git a/pypy/jit/metainterp/test/test_ajit.py b/pypy/jit/metainterp/test/test_ajit.py
--- a/pypy/jit/metainterp/test/test_ajit.py
+++ b/pypy/jit/metainterp/test/test_ajit.py
@@ -3559,6 +3559,33 @@
assert res == 0
self.check_loops({"int_sub": 1, "int_gt": 1, "guard_true": 1, "jump": 1})
+ def test_convert_from_SmallFunctionSetPBCRepr_to_FunctionsPBCRepr(self):
+ f1 = lambda n: n+1
+ f2 = lambda n: n+2
+ f3 = lambda n: n+3
+ f4 = lambda n: n+4
+ f5 = lambda n: n+5
+ f6 = lambda n: n+6
+ f7 = lambda n: n+7
+ f8 = lambda n: n+8
+ def h(n, x):
+ return x(n)
+ h._dont_inline = True
+ def g(n, x):
+ return h(n, x)
+ g._dont_inline = True
+ def f(n):
+ n = g(n, f1)
+ n = g(n, f2)
+ n = h(n, f3)
+ n = h(n, f4)
+ n = h(n, f5)
+ n = h(n, f6)
+ n = h(n, f7)
+ n = h(n, f8)
+ return n
+ assert f(5) == 41
+ self.interp_operations(f, [5])
class TestLLtype(BaseLLtypeTests, LLJitMixin):
More information about the pypy-commit
mailing list