<div dir="ltr">Hi Morten,<div><br></div><div>> <span style="font-size:13px">Here are the results (for a small but representational run):</span></div><div><span style="font-size:13px"><br></span></div><div>That suggests an optimization quality issue, rather than compile-time overhead. That's good news - I'd take it as a good sign that the MC and linking overhead aren't a big deal either, and if we can configure the CodeGen pipeline properly we can get the performance back to the same level as the legacy JIT.</div><div><br></div><div>Cheers,</div><div>Lang.</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Feb 4, 2016 at 6:41 PM, Morten Brodersen via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div text="#000000" bgcolor="#FFFFFF">
    Hi Keno,<br>
    <br>
    Thanks for the fast ISel suggestion.<br>
    <br>
    Here are the results (for a small but representational run):<br>
    <br>
    LLVM 3.5.2 (old JIT): 4m44s<br>
    <br>
    LLVM 3.7.1 (MCJit) no fast ISel: 7m31s<br>
    <br>
    LLVM 3.7.1 (MCJit) fast ISel: 7m39s<br>
    <br>
    So not much of a difference unfortunately.<div><div class="h5"><br>
    <br>
    <div>On 05/02/16 11:05, Keno Fischer wrote:<br>
    </div>
    <blockquote type="cite">
      <div dir="ltr">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.</div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Thu, Feb 4, 2016 at 7:00 PM, Morten
          Brodersen via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank"></a><a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi All,<br>
            <br>
            We recently upgraded a number of applications from LLVM
            3.5.2 (old JIT) to LLVM 3.7.1 (MCJit).<br>
            <br>
            We made the minimum changes needed for the switch (no
            changes to the IR generated or the IR optimizations
            applied).<br>
            <br>
            The resulting code pass all tests (8000+).<br>
            <br>
            However the runtime performance dropped significantly: 30%
            to 40% for all applications.<br>
            <br>
            The applications I am talking about optimize airline rosters
            and pairings. LLVM is used for compiling high level business
            rules to efficient machine code.<br>
            <br>
            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).<br>
            <br>
            We have triple checked and reviewed the changes we made from
            old JIT to MCJIt. We also tried different ways to optimize
            the IR.<br>
            <br>
            However all results indicate that the performance drop
            happens in the (black box) IR to machine code stage.<br>
            <br>
            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?<br>
            <br>
            If you need more information, in order to understand the
            issue, please tell us so that we can provide you with more
            details.<br>
            <br>
            Thanks<br>
            Morten<br>
            <br>
            _______________________________________________<br>
            LLVM Developers mailing list<br>
            <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
            <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <br>
  </div></div></div>

<br>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
<br></blockquote></div><br></div>