[Mono-dev] JIT and Inlining - why doesn't it happen?

Rodrigo Kumpera kumpera at gmail.com
Wed Apr 30 19:24:17 EDT 2008


Well, the inliner basically eliminates the penalty from using properties and
empty constructors.

Increasing the inline threshold is tricky and might now be worthy as there
are too many situations that abort inlining. So it would significantly
increase JIT time for diminishing gains.


On Wed, Apr 30, 2008 at 6:38 PM, Alan McGovern <alan.mcgovern at gmail.com>
wrote:

> This method does not get inlined:
>
> private uint Ch (uint u, uint v, uint w)
> {
>     return (u&v) ^ (~u&w);
> }
>
> If that isn't inlined then don't ask me what kind of method *could* be
> inlined by the JIT.
>
> Alan.
>
>
> On Wed, Apr 30, 2008 at 11:32 PM, Rodrigo Kumpera <kumpera at gmail.com>
> wrote:
>
> > Mono only inline very short methods. Right now methods must have a body
> > at most 20 bytes long.
> >
> >
> >
> > 2008/4/30 Alan McGovern <alan.mcgovern at gmail.com>:
> >
> > > I recently started doing a bit of optimisation work on the
> > > hashing/cryptography classes in mono. When working on the managed SHA256
> > > class[1], i noticed that mono isn't inlining what i'd consider some *very*
> > > simple methods.
> > >
> > > The helper methods which do the bitshifting (Ro0, Ro1, Ch, Maj etc)
> > > aren't inlined! Each of these methods is only called once in the code. By
> > > manually inlining those method calls, performance increased significantly -
> > > about 70%. Why isn't mono inlining these methods? Can mono be made inline
> > > these?
> > >
> > > Alan.
> > >
> > > [1]
> > > http://anonsvn.mono-project.com/viewcvs/trunk/mcs/class/corlib/System.Security.Cryptography/SHA256Managed.cs?rev=46462&view=markup
> > >
> > > _______________________________________________
> > > Mono-devel-list mailing list
> > > Mono-devel-list at lists.ximian.com
> > > http://lists.ximian.com/mailman/listinfo/mono-devel-list
> > >
> > >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20080430/3cbf7117/attachment.html 


More information about the Mono-devel-list mailing list