Author: Stephan <[email protected]>
Branch:
Changeset: r348:83da05a4775d
Date: 2013-02-03 17:37 +0100
http://bitbucket.org/pypy/lang-js/changeset/83da05a4775d/
Log: jit tuning
diff --git a/js/jscode.py b/js/jscode.py
--- a/js/jscode.py
+++ b/js/jscode.py
@@ -1,6 +1,5 @@
#from pypy.rlib.jit import hint
#from pypy.rlib.objectmodel import we_are_translated
-from pypy.rlib.jit import JitDriver
from pypy.rlib import jit
from js.exception import JsThrowException
@@ -16,7 +15,7 @@
else:
return '%d: %s' % (pc, 'end of opcodes')
-jitdriver = JitDriver(greens=['pc', 'debug', 'self'], reds=['result', 'ctx'],
get_printable_location=get_printable_location, virtualizables=['ctx'])
+jitdriver = jit.JitDriver(greens=['pc', 'debug', 'self'], reds=['result',
'ctx'], get_printable_location=get_printable_location, virtualizables=['ctx'])
def ast_to_bytecode(ast, symbol_map):
@@ -66,9 +65,8 @@
def params(self):
return [p for p in self.parameters]
- #@jit.elidable
+ @jit.elidable
def estimated_stack_size(self):
- # TODO: compute only once
if self._estimated_stack_size == -1:
max_size = 0
moving_size = 0
@@ -78,7 +76,7 @@
assert max_size >= 0
self._estimated_stack_size = max_size
- return self._estimated_stack_size
+ return jit.promote(self._estimated_stack_size)
def symbol_size(self):
return self._symbols.len()
@@ -171,6 +169,7 @@
def compile(self):
self.unlabel()
self.compiled_opcodes = [o for o in self.opcodes]
+ self.estimated_stack_size()
def remove_labels(self):
""" Basic optimization to remove all labels and change
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit