Author: Alex Gaynor <[email protected]>
Branch: numpy-dtype-refactor
Changeset: r49451:b594ceafe738
Date: 2011-11-15 18:07 -0500
http://bitbucket.org/pypy/pypy/changeset/b594ceafe738/
Log: Added a decorator for specialize:call_location
diff --git a/pypy/rlib/objectmodel.py b/pypy/rlib/objectmodel.py
--- a/pypy/rlib/objectmodel.py
+++ b/pypy/rlib/objectmodel.py
@@ -91,9 +91,18 @@
return decorated_func
+ def call_location(self):
+ """ Specializes the function for each call site.
+ """
+ def decorated_func(func):
+ func._annspecialcase_ = "specialize:call_location"
+ return func
+
+ return decorated_func
+
def _wrap(self, args):
return "("+','.join([repr(arg) for arg in args]) +")"
-
+
specialize = _Specialize()
def enforceargs(*args):
@@ -125,7 +134,7 @@
def __hash__(self):
raise TypeError("Symbolics are not hashable!")
-
+
def __nonzero__(self):
raise TypeError("Symbolics are not comparable")
@@ -155,7 +164,7 @@
def lltype(self):
from pypy.rpython.lltypesystem import lltype
return lltype.Signed
-
+
malloc_zero_filled = CDefinedIntSymbolic('MALLOC_ZERO_FILLED', default=0)
running_on_llinterp = CDefinedIntSymbolic('RUNNING_ON_LLINTERP', default=1)
# running_on_llinterp is meant to have the value 0 in all backends
@@ -221,7 +230,7 @@
def compute_result_annotation(self, s_sizehint):
from pypy.annotation.model import SomeInteger
-
+
assert isinstance(s_sizehint, SomeInteger)
return self.bookkeeper.newlist()
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit