From: Heesob Park <phasis@...> Date: 2012-12-14T18:28:58+09:00 Subject: [ruby-core:50896] Re: [ruby-trunk - Bug #7556] test error on refinement 2012/12/14 shugo (Shugo Maeda) <redmine@ruby-lang.org> > > > Issue #7556 has been updated by shugo (Shugo Maeda). > > > phasis68 (Heesob Park) wrote: > > It seems that inline or __inline is not respected by the compiler > > (ignored by compiler cost/benefit analyzer) > > > > Refer to http://en.wikipedia.org/wiki/Inline_function > > I know it, but I don't know why __forceinline prevent user functions (in > this case, vm_call_general and vm_call_super_method) to be optimized into a > single function. > The __forceinline keyword overrides the cost/benefit analysis and relies on the judgment of the programmer instead. Using __forceinline insures that all functions which call vm_call_method function have the inline expanded code instead of vm_call_method function call. Thus, vm_call_general and vm_call_super_method are separated function.