Author: Hakan Ardo <[email protected]>
Branch: jit-opaque-licm
Changeset: r56433:c76a3dfcc1db
Date: 2012-07-24 19:03 +0200
http://bitbucket.org/pypy/pypy/changeset/c76a3dfcc1db/
Log: merge default
diff --git a/pypy/jit/metainterp/resume.py b/pypy/jit/metainterp/resume.py
--- a/pypy/jit/metainterp/resume.py
+++ b/pypy/jit/metainterp/resume.py
@@ -1313,4 +1313,13 @@
debug_print('\t\t', 'None')
else:
virtual.debug_prints()
+ if storage.rd_pendingfields:
+ debug_print('\tpending setfields')
+ for i in range(len(storage.rd_pendingfields)):
+ lldescr = storage.rd_pendingfields[i].lldescr
+ num = storage.rd_pendingfields[i].num
+ fieldnum = storage.rd_pendingfields[i].fieldnum
+ itemindex= storage.rd_pendingfields[i].itemindex
+ debug_print("\t\t", str(lldescr), str(untag(num)),
str(untag(fieldnum)), itemindex)
+
debug_stop("jit-resume")
diff --git a/pypy/module/_sre/interp_sre.py b/pypy/module/_sre/interp_sre.py
--- a/pypy/module/_sre/interp_sre.py
+++ b/pypy/module/_sre/interp_sre.py
@@ -7,7 +7,7 @@
from pypy.interpreter.error import OperationError
from pypy.rlib.rarithmetic import intmask
from pypy.tool.pairtype import extendabletype
-
+from pypy.rlib import jit
# ____________________________________________________________
#
@@ -344,6 +344,7 @@
raise OperationError(space.w_TypeError,
space.wrap("cannot copy this match object"))
+ @jit.look_inside_iff(lambda self, args_w: jit.isconstant(len(args_w)))
def group_w(self, args_w):
space = self.space
ctx = self.ctx
diff --git a/pypy/rlib/jit.py b/pypy/rlib/jit.py
--- a/pypy/rlib/jit.py
+++ b/pypy/rlib/jit.py
@@ -103,7 +103,6 @@
import inspect
args, varargs, varkw, defaults = inspect.getargspec(func)
- args = ["v%s" % (i, ) for i in range(len(args))]
assert varargs is None and varkw is None
assert not defaults
return args
@@ -118,11 +117,11 @@
argstring = ", ".join(args)
code = ["def f(%s):\n" % (argstring, )]
if promote_args != 'all':
- args = [('v%d' % int(i)) for i in promote_args.split(",")]
+ args = [args[int(i)] for i in promote_args.split(",")]
for arg in args:
code.append(" %s = hint(%s, promote=True)\n" % (arg, arg))
- code.append(" return func(%s)\n" % (argstring, ))
- d = {"func": func, "hint": hint}
+ code.append(" return _orig_func_unlikely_name(%s)\n" % (argstring,
))
+ d = {"_orig_func_unlikely_name": func, "hint": hint}
exec py.code.Source("\n".join(code)).compile() in d
result = d["f"]
result.func_name = func.func_name + "_promote"
diff --git a/pypy/translator/c/funcgen.py b/pypy/translator/c/funcgen.py
--- a/pypy/translator/c/funcgen.py
+++ b/pypy/translator/c/funcgen.py
@@ -11,6 +11,7 @@
from pypy.rpython.lltypesystem.lltype import pyobjectptr, ContainerType
from pypy.rpython.lltypesystem.lltype import Struct, Array, FixedSizeArray
from pypy.rpython.lltypesystem.lltype import ForwardReference, FuncType
+from pypy.rpython.lltypesystem.rffi import INT
from pypy.rpython.lltypesystem.llmemory import Address
from pypy.translator.backendopt.ssa import SSI_to_SSA
from pypy.translator.backendopt.innerloop import find_inner_loops
@@ -750,6 +751,8 @@
continue
elif T == Signed:
format.append('%ld')
+ elif T == INT:
+ format.append('%d')
elif T == Unsigned:
format.append('%lu')
elif T == Float:
diff --git a/pypy/translator/c/test/test_standalone.py
b/pypy/translator/c/test/test_standalone.py
--- a/pypy/translator/c/test/test_standalone.py
+++ b/pypy/translator/c/test/test_standalone.py
@@ -277,6 +277,8 @@
assert " ll_strtod.o" in makefile
def test_debug_print_start_stop(self):
+ from pypy.rpython.lltypesystem import rffi
+
def entry_point(argv):
x = "got:"
debug_start ("mycat")
@@ -291,6 +293,7 @@
debug_stop ("mycat")
if have_debug_prints(): x += "a"
debug_print("toplevel")
+ debug_print("some int", rffi.cast(rffi.INT, 3))
debug_flush()
os.write(1, x + "." + str(debug_offset()) + '.\n')
return 0
@@ -324,6 +327,7 @@
assert 'cat2}' in err
assert 'baz' in err
assert 'bok' in err
+ assert 'some int 3' in err
# check with PYPYLOG=:somefilename
path = udir.join('test_debug_xxx.log')
out, err = cbuilder.cmdexec("", err=True,
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit