[pypy-commit] pypy default: add try_inline, like always_inline and dont_inline
cfbolz
pypy.commits at gmail.com
Mon Sep 26 02:13:18 EDT 2016
Author: Carl Friedrich Bolz <cfbolz at gmx.de>
Branch:
Changeset: r87384:25baf9e0c32e
Date: 2016-09-22 09:18 +0200
http://bitbucket.org/pypy/pypy/changeset/25baf9e0c32e/
Log: add try_inline, like always_inline and dont_inline
diff --git a/rpython/rlib/objectmodel.py b/rpython/rlib/objectmodel.py
--- a/rpython/rlib/objectmodel.py
+++ b/rpython/rlib/objectmodel.py
@@ -217,6 +217,12 @@
func._dont_inline_ = True
return func
+def try_inline(func):
+ """ tell the RPython inline (not the JIT!), to try to inline this function,
+ no matter its size."""
+ func._always_inline_ = 'try'
+ return func
+
# ____________________________________________________________
diff --git a/rpython/rlib/test/test_objectmodel.py b/rpython/rlib/test/test_objectmodel.py
--- a/rpython/rlib/test/test_objectmodel.py
+++ b/rpython/rlib/test/test_objectmodel.py
@@ -7,7 +7,7 @@
resizelist_hint, is_annotation_constant, always_inline, NOT_CONSTANT,
iterkeys_with_hash, iteritems_with_hash, contains_with_hash,
setitem_with_hash, getitem_with_hash, delitem_with_hash, import_from_mixin,
- fetch_translated_config)
+ fetch_translated_config, try_inline)
from rpython.translator.translator import TranslationContext, graphof
from rpython.rtyper.test.tool import BaseRtypingTest
from rpython.rtyper.test.test_llinterp import interpret
@@ -483,6 +483,13 @@
return a, b, c
assert f._always_inline_ is True
+def test_try_inline():
+ @try_inline
+ def f(a, b, c):
+ return a, b, c
+ assert f._always_inline_ == "try"
+
+
def test_enforceargs_defaults():
@enforceargs(int, int)
def f(a, b=40):
More information about the pypy-commit
mailing list