Author: Carl Friedrich Bolz <cfb...@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): _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit