Author: Maciej Fijalkowski <[email protected]>
Branch: result-in-resops
Changeset: r56436:1ca3fb9431b3
Date: 2012-07-24 19:25 +0200
http://bitbucket.org/pypy/pypy/changeset/1ca3fb9431b3/
Log: start passing some tests (Finally!!!)
diff --git a/pypy/jit/metainterp/compile.py b/pypy/jit/metainterp/compile.py
--- a/pypy/jit/metainterp/compile.py
+++ b/pypy/jit/metainterp/compile.py
@@ -9,7 +9,7 @@
from pypy.conftest import option
from pypy.tool.sourcetools import func_with_new_name
-from pypy.jit.metainterp.resoperation import rop, get_deep_immutable_oplist
+from pypy.jit.metainterp.resoperation import rop
from pypy.jit.metainterp.history import TreeLoop, Box, History, JitCellToken,
TargetToken
from pypy.jit.metainterp.history import AbstractFailDescr, BoxInt
from pypy.jit.metainterp.history import BoxPtr, BoxObj, BoxFloat, Const,
ConstInt
@@ -329,7 +329,7 @@
else:
debug_info = None
hooks = None
- operations = get_deep_immutable_oplist(loop.operations)
+ operations = loop.operations
metainterp_sd.profiler.start_backend()
debug_start("jit-backend")
try:
@@ -374,7 +374,6 @@
else:
hooks = None
debug_info = None
- operations = get_deep_immutable_oplist(operations)
metainterp_sd.profiler.start_backend()
debug_start("jit-backend")
try:
@@ -816,9 +815,8 @@
# it does not work -- i.e. none of the existing old_loop_tokens match.
new_trace = create_empty_loop(metainterp)
new_trace.inputargs = inputargs = metainterp.history.inputargs[:]
- # clone ops, as optimize_bridge can mutate the ops
- new_trace.operations = [op.clone() for op in metainterp.history.operations]
+ new_trace.operations = metainterp.history.operations
new_trace.resume_at_jump_descr = resume_at_jump_descr
metainterp_sd = metainterp.staticdata
state = metainterp.jitdriver_sd.warmstate
@@ -900,7 +898,6 @@
ResOperation(rop.FINISH, finishargs, None, descr=jd.portal_finishtoken)
]
operations[1].setfailargs([])
- operations = get_deep_immutable_oplist(operations)
cpu.compile_loop(inputargs, operations, jitcell_token, log=False)
if memory_manager is not None: # for tests
memory_manager.keep_loop_alive(jitcell_token)
diff --git a/pypy/jit/metainterp/resoperation.py
b/pypy/jit/metainterp/resoperation.py
--- a/pypy/jit/metainterp/resoperation.py
+++ b/pypy/jit/metainterp/resoperation.py
@@ -981,25 +981,3 @@
rop.PTR_EQ: rop.PTR_EQ,
rop.PTR_NE: rop.PTR_NE,
}
-
-
-def get_deep_immutable_oplist(operations):
- """
- When not we_are_translated(), turns ``operations`` into a frozenlist and
- monkey-patch its items to make sure they are not mutated.
-
- When we_are_translated(), do nothing and just return the old list.
- """
- from pypy.tool.frozenlist import frozenlist
- if we_are_translated():
- return operations
- #
- def setarg(*args):
- assert False, "operations cannot change at this point"
- def setdescr(*args):
- assert False, "operations cannot change at this point"
- newops = frozenlist(operations)
- for op in newops:
- op.setarg = setarg
- op.setdescr = setdescr
- return newops
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit