[pypy-svn] pypy numpy-exp: Write a jit test, easy so far
fijal
commits-noreply at bitbucket.org
Fri Feb 11 09:34:49 CET 2011
Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: numpy-exp
Changeset: r41810:88a25221eb86
Date: 2011-02-11 10:32 +0200
http://bitbucket.org/pypy/pypy/changeset/88a25221eb86/
Log: Write a jit test, easy so far
diff --git a/pypy/module/micronumpy/numarray.py b/pypy/module/micronumpy/numarray.py
--- a/pypy/module/micronumpy/numarray.py
+++ b/pypy/module/micronumpy/numarray.py
@@ -8,10 +8,10 @@
TP = lltype.GcArray(lltype.Float)
-numpy_driver = jit.JitDriver(greens = ['bytecode'],
- reds = ['result', 'result_size', 'i',
- 'valuestack', 'valuestackdepth',
- 'input', 'input_pos'])
+numpy_driver = jit.JitDriver(greens = ['bytecode_pos', 'bytecode'],
+ reds = ['result_size', 'i', 'input_pos',
+ 'valuestackdepth', 'valuestack',
+ 'input', 'result'])
def compute(bytecode, input):
result_size = input[0].size
@@ -26,7 +26,8 @@
result_size=result_size,
valuestackdepth=valuestackdepth,
valuestack=valuestack,
- input=input, input_pos=input_pos, i=i)
+ input=input, input_pos=input_pos, i=i,
+ bytecode_pos=bytecode_pos)
if bytecode_pos == -1:
bytecode_pos = len(bytecode) - 1
input_pos = len(input) - 1
@@ -38,7 +39,8 @@
result_size=result_size,
valuestackdepth=valuestackdepth,
valuestack=valuestack,
- input=input, input_pos=input_pos, i=i)
+ input=input, input_pos=input_pos, i=i,
+ bytecode_pos=bytecode_pos)
else:
opcode = bytecode[bytecode_pos]
if opcode == 'l':
diff --git a/pypy/module/micronumpy/test/test_jit.py b/pypy/module/micronumpy/test/test_jit.py
new file mode 100644
--- /dev/null
+++ b/pypy/module/micronumpy/test/test_jit.py
@@ -0,0 +1,24 @@
+
+from pypy.module.micronumpy.numarray import SingleDimArray, Add
+from pypy.conftest import gettestobjspace
+from pypy.jit.metainterp.test.test_basic import LLJitMixin
+
+class FakeSpace(object):
+ pass
+
+class TestNumpyJIt(LLJitMixin):
+ def setup_class(cls):
+ cls.space = FakeSpace()
+
+ def test_add(self):
+ space = self.space
+
+ def f(i):
+ ar = SingleDimArray(i)
+ if i:
+ v = Add(ar, ar)
+ else:
+ v = ar
+ return v.force().storage[3]
+
+ self.meta_interp(f, [5])
More information about the Pypy-commit
mailing list