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

Zoltan Varga vargaz at gmail.com
Thu May 1 07:47:04 EDT 2008


Hi,

 On my amd64 machine, that method does get inlined. You can check the
output of mono -v -v -v -v for INLINE lines to see what gets inlined.

                        Zoltan

2008/4/30 Alan McGovern <alan.mcgovern at gmail.com>:
> 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
> > >
> > >
> >
> >
>
>
> _______________________________________________
>  Mono-devel-list mailing list
>  Mono-devel-list at lists.ximian.com
>  http://lists.ximian.com/mailman/listinfo/mono-devel-list
>
>


More information about the Mono-devel-list mailing list