From c4457e03c665a48f1d953fbbe4499b65e7b1149b Mon Sep 17 00:00:00 2001 From: ko1 Date: Sun, 14 Oct 2012 20:59:21 +0000 Subject: * vm_insnhelper.h CI_SET_FASTPATH: introduce new macro `CI_SET_FASTPATH(ci, func)'. This macro set `ci->call' as `func'. `func' (ci->call) is called at the last of `send' (and `invokesuper') instruction. `CI_SET_FASTPATH' does not set `ci->call' when the method (stored in `ci->me') is `protected'. * vm_insnhelper.c (vm_call_method): use `CI_SET_FASTPATH'. After several checking (visibility, argc checking), the result of checking can be reused until re-definition of this method with inline method cache. Note that this optimization is now experimental. If you find any problem about it, please tell us. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37186 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'ChangeLog') diff --git a/ChangeLog b/ChangeLog index 308246748e..afe79b1f34 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +Mon Oct 15 05:20:13 2012 Koichi Sasada + + * vm_insnhelper.h CI_SET_FASTPATH: introduce new macro + `CI_SET_FASTPATH(ci, func)'. This macro set `ci->call' as `func'. + `func' (ci->call) is called at the last of `send' + (and `invokesuper') instruction. + `CI_SET_FASTPATH' does not set `ci->call' when the method + (stored in `ci->me') is `protected'. + + * vm_insnhelper.c (vm_call_method): use `CI_SET_FASTPATH'. + After several checking (visibility, argc checking), the result of + checking can be reused until re-definition of this method + with inline method cache. + + Note that this optimization is now experimental. + If you find any problem about it, please tell us. + Mon Oct 15 04:51:55 2012 Koichi Sasada * vm_insnhelper.c: refactoring. -- cgit v1.2.3