[pypy-svn] r75769 - in pypy/branch/interplevel-array/pypy: jit/tl module/array/test module/pypyjit

hakanardo at codespeak.net hakanardo at codespeak.net
Fri Jul 2 16:27:53 CEST 2010


Author: hakanardo
Date: Fri Jul  2 16:27:51 2010
New Revision: 75769

Added:
   pypy/branch/interplevel-array/pypy/module/array/test/Makefile
   pypy/branch/interplevel-array/pypy/module/array/test/intimg.c
   pypy/branch/interplevel-array/pypy/module/array/test/inttst.py
   pypy/branch/interplevel-array/pypy/module/array/test/loop.c
   pypy/branch/interplevel-array/pypy/module/array/test/tstintimg.c
Modified:
   pypy/branch/interplevel-array/pypy/jit/tl/pypyjit.py
   pypy/branch/interplevel-array/pypy/module/pypyjit/policy.py
Log:
enabling jit, performace tests

Modified: pypy/branch/interplevel-array/pypy/jit/tl/pypyjit.py
==============================================================================
--- pypy/branch/interplevel-array/pypy/jit/tl/pypyjit.py	(original)
+++ pypy/branch/interplevel-array/pypy/jit/tl/pypyjit.py	Fri Jul  2 16:27:51 2010
@@ -37,6 +37,7 @@
 set_opt_level(config, level='jit')
 config.objspace.allworkingmodules = False
 config.objspace.usemodules.pypyjit = True
+config.objspace.usemodules.array = True
 config.objspace.usemodules._weakref = False
 config.objspace.usemodules._sre = False
 set_pypy_opt_level(config, level='jit')

Added: pypy/branch/interplevel-array/pypy/module/array/test/Makefile
==============================================================================
--- (empty file)
+++ pypy/branch/interplevel-array/pypy/module/array/test/Makefile	Fri Jul  2 16:27:51 2010
@@ -0,0 +1,6 @@
+CFLAGS=-O3 -mtune=native -march=native -std=gnu99 
+
+tst: tstintimg.o intimg.o
+	gcc -o $@ $^
+loop: loop.o
+	gcc -o $@ $^

Added: pypy/branch/interplevel-array/pypy/module/array/test/intimg.c
==============================================================================
--- (empty file)
+++ pypy/branch/interplevel-array/pypy/module/array/test/intimg.c	Fri Jul  2 16:27:51 2010
@@ -0,0 +1,18 @@
+void trans(unsigned char *img, unsigned int *intimg) {  
+  int l=0;
+  for (int i=640; i<640*480; i++) {
+    l+=img[i];
+    intimg[i]=intimg[i-640]+l;
+  }
+}
+
+
+void transf(double *img, double *intimg) {  
+  double l=0;
+  for (int i=640; i<640*480; i++) {
+    l+=img[i];
+    intimg[i]=intimg[i-640]+l;
+  }
+}
+
+

Added: pypy/branch/interplevel-array/pypy/module/array/test/inttst.py
==============================================================================
--- (empty file)
+++ pypy/branch/interplevel-array/pypy/module/array/test/inttst.py	Fri Jul  2 16:27:51 2010
@@ -0,0 +1,19 @@
+#!/usr/bin/python
+from time import time
+
+from array import array
+#img=array('B',(0,)*640*480);
+#intimg=array('I',(0,)*640*480);
+img=array(640*480);
+intimg=array(640*480);
+
+def f():
+    l=0
+    for i in xrange(640,640*480):
+        l+=img[i]
+        intimg[i]=intimg[i-640]+l
+
+
+start=time()
+for l in range(500): f()
+print time()-start

Added: pypy/branch/interplevel-array/pypy/module/array/test/loop.c
==============================================================================
--- (empty file)
+++ pypy/branch/interplevel-array/pypy/module/array/test/loop.c	Fri Jul  2 16:27:51 2010
@@ -0,0 +1,9 @@
+int main() {
+  double s =0.0;
+  double i =0.0;
+  while (i < 1000000000) {
+    s += i;
+    i += 1.0;
+  }
+  return s;
+}

Added: pypy/branch/interplevel-array/pypy/module/array/test/tstintimg.c
==============================================================================
--- (empty file)
+++ pypy/branch/interplevel-array/pypy/module/array/test/tstintimg.c	Fri Jul  2 16:27:51 2010
@@ -0,0 +1,16 @@
+void trans(unsigned char *img, unsigned int *intimg);
+
+void main2() {
+  unsigned char img[640*480];
+  unsigned int intimg[640*480];
+
+  for (int l=0; l<500; l++) trans(img,intimg);
+}
+
+void transf(double *img, double *intimg);
+void main() {
+  double img[640*480];
+  double intimg[640*480];
+
+  for (int l=0; l<500; l++) transf(img,intimg);
+}

Modified: pypy/branch/interplevel-array/pypy/module/pypyjit/policy.py
==============================================================================
--- pypy/branch/interplevel-array/pypy/module/pypyjit/policy.py	(original)
+++ pypy/branch/interplevel-array/pypy/module/pypyjit/policy.py	Fri Jul  2 16:27:51 2010
@@ -11,7 +11,7 @@
         if '.' in modname:
             modname, _ = modname.split('.', 1)
         if modname in ['pypyjit', 'signal', 'micronumpy', 'math', 'exceptions',
-                       'imp', 'sys']:
+                       'imp', 'sys', 'array']:
             return True
         return False
 



More information about the Pypy-commit mailing list