IL optimization for JIT compilers

I am developing a compiler that emits IL code. It is important that the resulting IL is JIT’ted to the fastest possible machine codes by Mono and Microsoft .NET JIT compilers.

My questions are:

  1. Does it make sense to optimize patterns like:
  `stloc.0; ldloc.0; ret` => `ret` 
  `ldc.i4.0; conv.r8` => 'ldc.r8.0'

and such, or are the JIT’s smart enough to take care of these?

  1. Is there a specification with the list of optimizations performed by Microsoft/Mono JIT compilers?

  2. Is there any good read with practical recommendations / best practices to optimize IL so that JIT compilers can in turn generate the most optimal machine code (performance-wise)?

Source: .net

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.