[pypy-commit] pypy stmgc-c4: add rgc.no_release_gil to places that may access the prebuilt assembler object
Raemi
noreply at buildbot.pypy.org
Wed Aug 28 16:34:12 CEST 2013
Author: Remi Meier <remi.meier at gmail.com>
Branch: stmgc-c4
Changeset: r66398:c7cebe44256d
Date: 2013-08-28 16:33 +0200
http://bitbucket.org/pypy/pypy/changeset/c7cebe44256d/
Log: add rgc.no_release_gil to places that may access the prebuilt
assembler object
diff --git a/rpython/jit/backend/arm/assembler.py b/rpython/jit/backend/arm/assembler.py
--- a/rpython/jit/backend/arm/assembler.py
+++ b/rpython/jit/backend/arm/assembler.py
@@ -29,6 +29,7 @@
from rpython.rtyper.annlowlevel import llhelper, cast_instance_to_gcref
from rpython.rtyper.lltypesystem import lltype, rffi
from rpython.jit.backend.arm import callbuilder
+from rpython.rtyper.lltypesystem.lloperation import llop
class AssemblerARM(ResOpAssembler):
@@ -1463,7 +1464,9 @@
def not_implemented(msg):
- os.write(2, '[ARM/asm] %s\n' % msg)
+ msg = '[ARM/asm] %s\n' % msg
+ if we_are_translated():
+ llop.debug_print(lltype.Void, msg)
raise NotImplementedError(msg)
diff --git a/rpython/jit/backend/llsupport/regalloc.py b/rpython/jit/backend/llsupport/regalloc.py
--- a/rpython/jit/backend/llsupport/regalloc.py
+++ b/rpython/jit/backend/llsupport/regalloc.py
@@ -2,6 +2,8 @@
from rpython.jit.metainterp.history import Const, Box, REF, JitCellToken
from rpython.rlib.objectmodel import we_are_translated, specialize
from rpython.jit.metainterp.resoperation import rop
+from rpython.rtyper.lltypesystem import lltype
+from rpython.rtyper.lltypesystem.lloperation import llop
try:
from collections import OrderedDict
@@ -759,5 +761,7 @@
def not_implemented(msg):
- os.write(2, '[llsupport/regalloc] %s\n' % msg)
+ msg = '[llsupport/regalloc] %s\n' % msg
+ if we_are_translated():
+ llop.debug_print(lltype.Void, msg)
raise NotImplementedError(msg)
diff --git a/rpython/jit/backend/x86/assembler.py b/rpython/jit/backend/x86/assembler.py
--- a/rpython/jit/backend/x86/assembler.py
+++ b/rpython/jit/backend/x86/assembler.py
@@ -512,6 +512,7 @@
else:
descr.set_b_slowpath(withcards + 2 * withfloats, rawstart)
+ @rgc.no_release_gil
def assemble_loop(self, loopname, inputargs, operations, looptoken, log,
logger=None):
'''adds the following attributes to looptoken:
@@ -591,6 +592,7 @@
return AsmInfo(ops_offset, rawstart + looppos,
size_excluding_failure_stuff - looppos), operations
+ @rgc.no_release_gil
def assemble_bridge(self, faildescr, inputargs, operations,
original_loop_token, log, logger=None):
if not we_are_translated():
@@ -2818,7 +2820,9 @@
return AddressLoc(ImmedLoc(addr), imm0, 0, 0)
def not_implemented(msg):
- os.write(2, '[x86/asm] %s\n' % msg)
+ msg = '[x86/asm] %s\n' % msg
+ if we_are_translated():
+ llop.debug_print(lltype.Void, msg)
raise NotImplementedError(msg)
class BridgeAlreadyCompiled(Exception):
diff --git a/rpython/jit/backend/x86/regalloc.py b/rpython/jit/backend/x86/regalloc.py
--- a/rpython/jit/backend/x86/regalloc.py
+++ b/rpython/jit/backend/x86/regalloc.py
@@ -29,6 +29,7 @@
from rpython.jit.backend.x86.arch import IS_X86_32, IS_X86_64
from rpython.jit.backend.x86 import rx86
from rpython.rlib.rarithmetic import r_longlong, r_uint
+from rpython.rtyper.lltypesystem.lloperation import llop
class X86RegisterManager(RegisterManager):
@@ -1390,7 +1391,9 @@
return base_ofs + WORD * (position + JITFRAME_FIXED_SIZE)
def not_implemented(msg):
- os.write(2, '[x86/regalloc] %s\n' % msg)
+ msg = '[x86/regalloc] %s\n' % msg
+ if we_are_translated():
+ llop.debug_print(lltype.Void, msg)
raise NotImplementedError(msg)
# xxx hack: set a default value for TargetToken._ll_loop_code.
diff --git a/rpython/jit/backend/x86/runner.py b/rpython/jit/backend/x86/runner.py
--- a/rpython/jit/backend/x86/runner.py
+++ b/rpython/jit/backend/x86/runner.py
@@ -1,6 +1,7 @@
import py
from rpython.rtyper.lltypesystem import lltype, llmemory, rffi
from rpython.rlib.jit_hooks import LOOP_RUN_CONTAINER
+from rpython.rlib import rgc
from rpython.jit.backend.x86.assembler import Assembler386
from rpython.jit.backend.x86.regalloc import gpr_reg_mgr_cls, xmm_reg_mgr_cls
from rpython.jit.backend.x86.profagent import ProfileAgent
@@ -65,10 +66,12 @@
assert self.assembler is not None
return RegAlloc(self.assembler, False)
+ @rgc.no_release_gil
def setup_once(self):
self.profile_agent.startup()
self.assembler.setup_once()
+ @rgc.no_release_gil
def finish_once(self):
self.assembler.finish_once()
self.profile_agent.shutdown()
More information about the pypy-commit
mailing list