freebsd-skq/contrib/llvm/lib
Dimitry Andric 4dfab2eb72 Pull in r308891 from upstream llvm trunk (by Benjamin Kramer):
[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.

Pull in r308986 from upstream llvm trunk (by Simon Pilgrim):

  [X86][CGP] Reduce memcmp() expansion to 2 load pairs (PR33914)

  D35067/rL308322 attempted to support up to 4 load pairs for memcmp
  inlining which resulted in regressions for some optimized libc memcmp
  implementations (PR33914).

  Until we can match these more optimal cases, this patch reduces the
  memcmp expansion to a maximum of 2 load pairs (which matches what we
  do for -Os).

  This patch should be considered for the 5.0.0 release branch as well

  Differential Revision: https://reviews.llvm.org/D35830

These fix a hang (or extremely long compile time) when building older
LLVM ports.

Reported by:    antoine
PR:             219139
2017-07-28 20:13:25 +00:00
..
Analysis Merge llvm, clang, lld, lldb, compiler-rt and libc++ r308421, and update 2017-07-19 19:41:41 +00:00
AsmParser Merge llvm, clang, lld, lldb, compiler-rt and libc++ r308421, and update 2017-07-19 19:41:41 +00:00
BinaryFormat Merge llvm, clang, lld, lldb, compiler-rt and libc++ r306956, and update 2017-07-02 11:41:15 +00:00
Bitcode Merge llvm, clang, lld, lldb, compiler-rt and libc++ r308421, and update 2017-07-19 19:41:41 +00:00
CodeGen Pull in r308891 from upstream llvm trunk (by Benjamin Kramer): 2017-07-28 20:13:25 +00:00
DebugInfo Merge llvm, clang, lld, lldb, compiler-rt and libc++ r308421, and update 2017-07-19 19:41:41 +00:00
Demangle Merge llvm, clang, lld, lldb, compiler-rt and libc++ r304149, and update 2017-05-29 22:09:23 +00:00
ExecutionEngine Merge llvm, clang, lld, lldb, compiler-rt and libc++ r308421, and update 2017-07-19 19:41:41 +00:00
IR Merge llvm, clang, lld, lldb, compiler-rt and libc++ r308421, and update 2017-07-19 19:41:41 +00:00
IRReader Update llvm to trunk r290819 and resolve conflicts. 2017-01-02 21:25:48 +00:00
LineEditor Update llvm to release_39 branch r276489, and resolve conflicts. 2016-08-16 21:02:59 +00:00
Linker Merge llvm, clang, lld, lldb, compiler-rt and libc++ r307894, and update 2017-07-13 21:58:45 +00:00
LTO Merge llvm, clang, lld, lldb, compiler-rt and libc++ r307894, and update 2017-07-13 21:58:45 +00:00
MC Merge llvm, clang, lld, lldb, compiler-rt and libc++ r307894, and update 2017-07-13 21:58:45 +00:00
Object Merge llvm, clang, lld, lldb, compiler-rt and libc++ r308421, and update 2017-07-19 19:41:41 +00:00
ObjectYAML Merge llvm, clang, lld, lldb, compiler-rt and libc++ r308421, and update 2017-07-19 19:41:41 +00:00
Option Merge llvm, clang, lld, lldb, compiler-rt and libc++ r308421, and update 2017-07-19 19:41:41 +00:00
Passes Merge llvm, clang, lld, lldb, compiler-rt and libc++ r307894, and update 2017-07-13 21:58:45 +00:00
ProfileData Merge llvm, clang, lld, lldb, compiler-rt and libc++ r307894, and update 2017-07-13 21:58:45 +00:00
Support Merge llvm, clang, lld, lldb, compiler-rt and libc++ r308421, and update 2017-07-19 19:41:41 +00:00
TableGen Merge llvm, clang, lld, lldb, compiler-rt and libc++ r305575, and update 2017-06-17 00:09:34 +00:00
Target Pull in r308891 from upstream llvm trunk (by Benjamin Kramer): 2017-07-28 20:13:25 +00:00
Testing/Support Merge llvm, clang, lld, lldb, compiler-rt and libc++ r305575, and update 2017-06-17 00:09:34 +00:00
ToolDrivers Merge llvm, clang, lld, lldb, compiler-rt and libc++ r308421, and update 2017-07-19 19:41:41 +00:00
Transforms Merge llvm, clang, lld, lldb, compiler-rt and libc++ r308421, and update 2017-07-19 19:41:41 +00:00
XRay Merge llvm, clang, lld, lldb, compiler-rt and libc++ r305145, and update 2017-06-10 19:17:14 +00:00