Author: David Malcolm <[email protected]>
Branch: libgccjit-backend
Changeset: r75088:70555a2aeb22
Date: 2014-12-23 12:37 -0500
http://bitbucket.org/pypy/pypy/changeset/70555a2aeb22/

Log:    Fix a MemoryError issue seen running test_int_operations

        test_int_operations was failing after compiling about 200 loops with
        a MemoryError, unable to fulfil an allocation of 129GB of RAM.

        Fix it by cleaning up the datablockwrapper after each compile.

diff --git a/rpython/jit/backend/libgccjit/assembler.py 
b/rpython/jit/backend/libgccjit/assembler.py
--- a/rpython/jit/backend/libgccjit/assembler.py
+++ b/rpython/jit/backend/libgccjit/assembler.py
@@ -261,6 +261,9 @@
         clt.frame_info.update_frame_depth(baseofs,
                                           max_args)
 
+        self.datablockwrapper.done()      # finish using cpu.asmmemmgr
+        self.datablockwrapper = None
+
         self.ctxt.dump_to_file("/tmp/%s.c" % loopname, r_int(1))
 
         #raise foo
@@ -296,6 +299,10 @@
         self.num_bridges += 1
 
         self.make_function(name, inputargs, operations)
+
+        self.datablockwrapper.done()      # finish using cpu.asmmemmgr
+        self.datablockwrapper = None
+
         self.ctxt.dump_to_file("/tmp/%s.c" % name, r_int(1))
         jit_result = self.ctxt.compile()
         self.ctxt.release()
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to