[llvm] r308891 - [CodeGenPrepare] Cut off FindAllMemoryUses if there are too many uses.

Hans Wennborg via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 26 09:21:02 PDT 2017


Merged to 5.0 in r309131.

On Mon, Jul 24, 2017 at 9:18 AM, Benjamin Kramer via llvm-commits
<llvm-commits at lists.llvm.org> wrote:
> Author: d0k
> Date: Mon Jul 24 09:18:09 2017
> New Revision: 308891
>
> URL: http://llvm.org/viewvc/llvm-project?rev=308891&view=rev
> Log:
> [CodeGenPrepare] Cut off FindAllMemoryUses if there are too many uses.
>
> This avoids excessive compile time. The case I'm looking at is
> Function.cpp from an old version of LLVM that still had the giant memcmp
> string matcher in it. Before r308322 this compiled in about 2 minutes,
> after it, clang takes infinite* time to compile it. With this patch
> we're at 5 min, which is still bad but this is a pathological case.
>
> The cut off at 20 uses was chosen by looking at other cut-offs in LLVM
> for user scanning. It's probably too high, but does the job and is very
> unlikely to regress anything.
>
> Fixes PR33900.
>
> * I'm impatient and aborted after 15 minutes, on the bug report it was
>   killed after 2h.
>
> Modified:
>     llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp


More information about the llvm-commits mailing list