Author: Hakan Ardo <ha...@debian.org>
Branch: jit-targets
Changeset: r48831:b262b6ae31dd
Date: 2011-11-06 16:39 +0100
http://bitbucket.org/pypy/pypy/changeset/b262b6ae31dd/

Log:    test_loop_1 passing

diff --git a/pypy/jit/backend/llgraph/llimpl.py 
b/pypy/jit/backend/llgraph/llimpl.py
--- a/pypy/jit/backend/llgraph/llimpl.py
+++ b/pypy/jit/backend/llgraph/llimpl.py
@@ -391,7 +391,7 @@
 
 def compile_add_jump_target(loop, targettoken):
     loop = _from_opaque(loop)
-    if isinstance(targettoken, history.ProcedureToken):
+    if isinstance(targettoken, history.JitCellToken):
         assert False
         loop_target = 
_from_opaque(targettoken.compiled_loop_token.compiled_version)
         target_opindex = 0
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
@@ -107,18 +107,19 @@
 
     if partial_trace:
         part = partial_trace
-        procedure_token = metainterp.get_procedure_token(greenkey)
+        assert False
+        procedur_token = metainterp.get_procedure_token(greenkey)
         assert procedure_token
         all_target_tokens = []
     else:
-        procedure_token = make_procedure_token(jitdriver_sd)
+        jitcell_token = make_jitcell_token(jitdriver_sd)
         part = create_empty_loop(metainterp)
         part.inputargs = inputargs[:]
         h_ops = history.operations
         part.start_resumedescr = start_resumedescr
-        part.operations = [ResOperation(rop.LABEL, inputargs, None, 
descr=TargetToken(procedure_token))] + \
+        part.operations = [ResOperation(rop.LABEL, inputargs, None, 
descr=TargetToken(jitcell_token))] + \
                           [h_ops[i].clone() for i in range(start, len(h_ops))] 
+ \
-                          [ResOperation(rop.LABEL, jumpargs, None, 
descr=TargetToken(procedure_token))]
+                          [ResOperation(rop.JUMP, jumpargs, None, 
descr=jitcell_token)]
         try:
             optimize_trace(metainterp_sd, part, 
jitdriver_sd.warmstate.enable_opts)
         except InvalidLoop:
@@ -132,8 +133,8 @@
         inliner = Inliner(inputargs, jumpargs)
         part.operations = [part.operations[-1]] + \
                           [inliner.inline_op(h_ops[i]) for i in range(start, 
len(h_ops))] + \
-                          [ResOperation(rop.LABEL, [inliner.inline_arg(a) for 
a in jumpargs],
-                                        None, 
descr=TargetToken(procedure_token))]
+                          [ResOperation(rop.JUMP, [inliner.inline_arg(a) for a 
in jumpargs],
+                                        None, descr=jitcell_token)]
         all_target_tokens.append(part.operations[0].getdescr())
         inputargs = jumpargs
         jumpargs = part.operations[-1].getarglist()
@@ -148,11 +149,13 @@
     for box in loop.inputargs:
         assert isinstance(box, Box)
 
-    loop.token = procedure_token
-    procedure_token.target_tokens = all_target_tokens
+    loop.original_jitcell_token = jitcell_token
+    for label in all_target_tokens:
+        label.original_jitcell_token = jitcell_token
+    jitcell_token.target_tokens = all_target_tokens
     send_loop_to_backend(greenkey, jitdriver_sd, metainterp_sd, loop, "loop")
     record_loop_or_bridge(metainterp_sd, loop)
-    return procedure_token
+    return jitcell_token
 
 
     if False: # FIXME: full_preamble_needed??
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to