freebsd-dev/contrib/llvm-project
Dimitry Andric 71daeec70a Reapply r230021, r276851 and a few other commits to compiler-rt
Reapply r230021 (by ed):

Add a workaround to prevent endless recursion in compiler-rt.

SPARC and MIPS CPUs don't have special instructions to count
leading/trailing zeroes. The compiler-rt library provides fallback
rountines for these. The 64-bit routines, __clzdi2 and __ctzdi2, are
implemented as simple wrappers around the compiler built-in
__builtin_clz(), assuming these will expand to either 32-bit
CPU instructions or calls to __clzsi2 and __ctzsi2.

Unfortunately, our GCC 4.2 probably thinks that because the operand is
stored in a 64-bit register, it might just be a better idea to invoke
its 64-bit equivalent, simply resulting into endless recursion. Fix this
by defining __builtin_clz and __builtin_ctz to __clzsi2 and __ctzsi2
explicitly.

Reapply r276851:

Update compiler-rt to trunk r224034.  This brings a number of new
builtins, and also the various sanitizers.  Support for these will be
added in a later commit.
2020-08-02 18:07:16 +00:00
..
clang Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 2020-07-31 22:23:32 +00:00
compiler-rt Reapply r230021, r276851 and a few other commits to compiler-rt 2020-08-02 18:07:16 +00:00
libcxx Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 2020-07-31 21:22:58 +00:00
libunwind Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 2020-07-31 21:22:58 +00:00
lld Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 2020-07-31 22:23:32 +00:00
lldb Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 2020-07-31 21:43:56 +00:00
llvm Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 2020-07-31 22:23:32 +00:00
openmp Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 2020-07-31 22:23:32 +00:00
FREEBSD-Xlist Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp 2020-07-31 21:22:58 +00:00