[pypy-commit] pypy jit-leaner-frontend: enough to start passing some frontend tests

fijal pypy.commits at gmail.com
Fri Mar 4 12:03:49 EST 2016


Author: fijal
Branch: jit-leaner-frontend
Changeset: r82776:cd6efbc4d6b1
Date: 2016-03-04 19:03 +0200
http://bitbucket.org/pypy/pypy/changeset/cd6efbc4d6b1/

Log:	enough to start passing some frontend tests

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
@@ -1037,20 +1037,20 @@
     else:
         inline_short_preamble = True
     inputargs = metainterp.history.inputargs[:]
-    operations = metainterp.history.operations
+    trace = metainterp.history.trace
     label = ResOperation(rop.LABEL, inputargs)
     jitdriver_sd = metainterp.jitdriver_sd
     enable_opts = jitdriver_sd.warmstate.enable_opts
 
     call_pure_results = metainterp.call_pure_results
 
-    if operations[-1].getopnum() == rop.JUMP:
+    if metainterp.history.ends_with_jump:
         data = BridgeCompileData(label, operations[:],
                                  call_pure_results=call_pure_results,
                                  enable_opts=enable_opts,
                                  inline_short_preamble=inline_short_preamble)
     else:
-        data = SimpleCompileData(label, operations[:],
+        data = SimpleCompileData(label, trace,
                                  call_pure_results=call_pure_results,
                                  enable_opts=enable_opts)
     try:
diff --git a/rpython/jit/metainterp/history.py b/rpython/jit/metainterp/history.py
--- a/rpython/jit/metainterp/history.py
+++ b/rpython/jit/metainterp/history.py
@@ -641,8 +641,9 @@
 
 
 class History(object):
+    ends_with_jump = False
+
     def __init__(self):
-        self.inputargs = None
         self.descr_cache = {}
         self.descrs = {}
         self.consts = []
@@ -651,6 +652,7 @@
         from rpython.jit.metainterp.opencoder import Trace
 
         self.trace = Trace(inpargs)
+        self.inputargs = inpargs
 
     def any_operation(self):
         return self.trace._count > 0
diff --git a/rpython/jit/metainterp/optimizeopt/__init__.py b/rpython/jit/metainterp/optimizeopt/__init__.py
--- a/rpython/jit/metainterp/optimizeopt/__init__.py
+++ b/rpython/jit/metainterp/optimizeopt/__init__.py
@@ -53,7 +53,7 @@
     """
     debug_start("jit-optimize")
     try:
-        metainterp_sd.logger_noopt.log_loop(compile_data.trace, memo=memo)
+        #metainterp_sd.logger_noopt.log_loop(compile_data.trace, memo=memo)
         if memo is None:
             memo = {}
         compile_data.box_names_memo = memo
diff --git a/rpython/jit/metainterp/pyjitpl.py b/rpython/jit/metainterp/pyjitpl.py
--- a/rpython/jit/metainterp/pyjitpl.py
+++ b/rpython/jit/metainterp/pyjitpl.py
@@ -2608,6 +2608,7 @@
 
         self.history.record(rop.JUMP, live_arg_boxes[num_green_args:], None,
                             descr=target_jitcell_token)
+        self.history.ends_with_jump = True
         try:
             target_token = compile.compile_trace(self, self.resumekey)
         finally:


More information about the pypy-commit mailing list