Author: Armin Rigo <[email protected]>
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')
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to