[pypy-commit] pypy default: Add support for track_allocation=False (the default is True).

arigo noreply at buildbot.pypy.org
Wed Nov 30 19:37:31 CET 2011


Author: Armin Rigo <arigo at tunes.org>
Branch: 
Changeset: r50025:153c1281e1cb
Date: 2011-11-30 19:38 +0100
http://bitbucket.org/pypy/pypy/changeset/153c1281e1cb/

Log:	Add support for track_allocation=False (the default is True). We
	can't add many more flags while keeping the same style...

diff --git a/pypy/jit/codewriter/jtransform.py b/pypy/jit/codewriter/jtransform.py
--- a/pypy/jit/codewriter/jtransform.py
+++ b/pypy/jit/codewriter/jtransform.py
@@ -487,6 +487,7 @@
             d.pop('flavor')
             add_memory_pressure = d.pop('add_memory_pressure', False)
             zero = d.pop('zero', False)
+            track_allocation = d.pop('track_allocation', True)
             if d:
                 raise UnsupportedMallocFlags(d)
             ARRAY = op.args[0].value
@@ -495,6 +496,8 @@
                 name += '_zero'
             if add_memory_pressure:
                 name += '_add_memory_pressure'
+            if not track_allocation:
+                name += '_no_track_allocation'
             return self._do_builtin_call(op, name,
                                          [op.args[2]],
                                          extra = (ARRAY,),
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
@@ -621,6 +621,32 @@
                                  add_memory_pressure=True)
         return _ll_1_raw_malloc
 
+    def build_ll_1_raw_malloc_no_track_allocation(ARRAY):
+        def _ll_1_raw_malloc(n):
+            return lltype.malloc(ARRAY, n, flavor='raw',
+                                 track_allocation=False)
+        return _ll_1_raw_malloc
+
+    def build_ll_1_raw_malloc_zero_no_track_allocation(ARRAY):
+        def _ll_1_raw_malloc(n):
+            return lltype.malloc(ARRAY, n, flavor='raw', zero=True,
+                                 track_allocation=False)
+        return _ll_1_raw_malloc
+
+    def build_ll_1_raw_malloc_zero_add_memory_pressure_no_track_allocation(ARRAY):
+        def _ll_1_raw_malloc(n):
+            return lltype.malloc(ARRAY, n, flavor='raw', zero=True,
+                                 add_memory_pressure=True,
+                                 track_allocation=False)
+        return _ll_1_raw_malloc
+
+    def build_ll_1_raw_malloc_add_memory_pressure_no_track_allocation(ARRAY):
+        def _ll_1_raw_malloc(n):
+            return lltype.malloc(ARRAY, n, flavor='raw',
+                                 add_memory_pressure=True,
+                                 track_allocation=False)
+        return _ll_1_raw_malloc
+
     def build_ll_1_raw_free(ARRAY):
         def _ll_1_raw_free(p):
             lltype.free(p, flavor='raw')


More information about the pypy-commit mailing list