[pypy-commit] pypy optresult: reinstantiate cloning

fijal noreply at buildbot.pypy.org
Fri Nov 21 08:03:34 CET 2014


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: optresult
Changeset: r74625:486e9a88f4d6
Date: 2014-11-19 13:15 +0200
http://bitbucket.org/pypy/pypy/changeset/486e9a88f4d6/

Log:	reinstantiate cloning

diff --git a/rpython/jit/metainterp/compile.py b/rpython/jit/metainterp/compile.py
--- a/rpython/jit/metainterp/compile.py
+++ b/rpython/jit/metainterp/compile.py
@@ -130,7 +130,7 @@
     h_ops = history.operations
     # XXX why do we clone here?
     part.operations = [ResOperation(rop.LABEL, inputargs, descr=TargetToken(jitcell_token))] + \
-                      [h_ops[i] for i in range(start, len(h_ops))] + \
+                      [h_ops[i].clone() for i in range(start, len(h_ops))] + \
                       [ResOperation(rop.LABEL, jumpargs, descr=jitcell_token)]
 
     try:
@@ -206,10 +206,10 @@
     h_ops = history.operations
 
     part.operations = [partial_trace.operations[-1]] + \
-                      [h_ops[i] for i in range(start, len(h_ops))] + \
+                      [h_ops[i].clone() for i in range(start, len(h_ops))] + \
                       [ResOperation(rop.JUMP, jumpargs, None, descr=loop_jitcell_token)]
     label = part.operations[0]
-    orignial_label = label
+    orignial_label = label.clone()
     assert label.getopnum() == rop.LABEL
     try:
         optimize_trace(metainterp_sd, part, jitdriver_sd.warmstate.enable_opts)
@@ -784,7 +784,7 @@
     new_trace.inputargs = metainterp.history.inputargs[:]
     # clone ops, as optimize_bridge can mutate the ops
 
-    new_trace.operations = [op for op in metainterp.history.operations]
+    new_trace.operations = [op.clone() for op in metainterp.history.operations]
     metainterp_sd = metainterp.staticdata
     state = metainterp.jitdriver_sd.warmstate
     if isinstance(resumekey, ResumeAtPositionDescr):


More information about the pypy-commit mailing list