[llvm-dev] MCJit Runtine Performance

Morten Brodersen via llvm-dev llvm-dev at lists.llvm.org
Thu Feb 4 18:41:43 PST 2016

Hi Keno,

Thanks for the fast ISel suggestion.

Here are the results (for a small but representational run):

LLVM 3.5.2 (old JIT): 4m44s

LLVM 3.7.1 (MCJit) no fast ISel: 7m31s

LLVM 3.7.1 (MCJit) fast ISel: 7m39s

So not much of a difference unfortunately.

On 05/02/16 11:05, Keno Fischer wrote:
> Yes, unfortunately, this is very much known. Over in the julia 
> project, we've recently gone through this and taken the hit (after 
> doing some work to fix the very extreme corner cases that we were 
> hitting). We're not entirely sure why the slowdown is this noticable, 
> but at least in our case, profiling didn't reveal any remaining low 
> hanging fruits that are responsible. One thing you can potentially try 
> if you haven't yet is to enable fast ISel and see if that brings you 
> closer to the old runtimes.
> On Thu, Feb 4, 2016 at 7:00 PM, Morten Brodersen via llvm-dev 
> <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
>     Hi All,
>     We recently upgraded a number of applications from LLVM 3.5.2 (old
>     JIT) to LLVM 3.7.1 (MCJit).
>     We made the minimum changes needed for the switch (no changes to
>     the IR generated or the IR optimizations applied).
>     The resulting code pass all tests (8000+).
>     However the runtime performance dropped significantly: 30% to 40%
>     for all applications.
>     The applications I am talking about optimize airline rosters and
>     pairings. LLVM is used for compiling high level business rules to
>     efficient machine code.
>     A typical optimization run takes 6 to 8 hours. So a 30% to 40%
>     reduction in speed has real impact (=> we can't upgrade from 3.5.2).
>     We have triple checked and reviewed the changes we made from old
>     JIT to MCJIt. We also tried different ways to optimize the IR.
>     However all results indicate that the performance drop happens in
>     the (black box) IR to machine code stage.
>     So my question is if the runtime performance reduction is
>     known/expected for MCJit vs. old JIT? Or if we might be doing
>     something wrong?
>     If you need more information, in order to understand the issue,
>     please tell us so that we can provide you with more details.
>     Thanks
>     Morten
>     _______________________________________________
>     LLVM Developers mailing list
>     llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
>     http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160205/a8a4ab13/attachment.html>

More information about the llvm-dev mailing list