[llvm-dev] MCJit Runtine Performance

Morten Brodersen via llvm-dev llvm-dev at lists.llvm.org
Thu Feb 4 16:00:27 PST 2016

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.


More information about the llvm-dev mailing list