[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