[llvm-bugs] [Bug 38047] New: Regression in compile time during Jump Threading passes between LLVM 6 and 7

via llvm-bugs llvm-bugs at lists.llvm.org
Tue Jul 3 20:09:55 PDT 2018


            Bug ID: 38047
           Summary: Regression in compile time during Jump Threading
                    passes between LLVM 6 and 7
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Scalar Optimizations
          Assignee: unassignedbugs at nondot.org
          Reporter: alex at crichton.co
                CC: llvm-bugs at lists.llvm.org

We're currently attempting [1] to upgrade to the tip of LLVM in Rust and it
looks like all our tests are green but it looks like we've got a compile-time
performance regression that may prevent us from upgrading. We've tested LLVM 7
against what we're currently running against, LLVM 6, and it looks like across
the board we're seeing a bit of a performance regression [2].

Taking a look at the biggest regression on that list it looks like LLVM's Jump
Threading pass may be the culprit here. I've extracted some IR from the Rust
compiler and verified that this command:

   $ opt -O2 lib.ll -o /dev/null

takes ~18s locally on LLVM 6 and ~40s on LLVM's master branch right now (or at
least pretty close to it as of this writing). Passing `-time-passes` shows that
on LLVM 6 the Jump Threading pass takes 13.7s and on LLVM 7 it takes 34.9s 
where other passes remain roughly the same.

Next up I'll try to bisect this to see if I can hunt down a particular commit,
but in the meantime someone else may have an idea as well!

[1]: https://github.com/rust-lang/rust/pull/51966

You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20180704/cb18086c/attachment.html>

More information about the llvm-bugs mailing list