tsan: remove meta from internal allocator
I am puzzled why it is even there.



git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@214026 91177308-0d34-0410-b5e6-96231b3b80d8
tsan: reduce internal allocator region from 16M to 1M
16M regions can waste almost 1G for nothing.
Since region size is used only during initial heap growth,
it's unclear why we even need such huge regions.



git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@214027 91177308-0d34-0410-b5e6-96231b3b80d8
tsan: improve shadow flush benchmark
allow to specify access stride



git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@214029 91177308-0d34-0410-b5e6-96231b3b80d8
tsan: advise shadow for 0x7f region to not use huge pages
see the comment for justification



git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@214030 91177308-0d34-0410-b5e6-96231b3b80d8
builtins: correct constant alignments

MMX/SSE instructions expect 128-bit alignment (16-byte) for constants that they
reference.  Correct the alignment on the constant values.  Although it is quite
possible for the data to end up aligned, there is no guarantee that this will
occur unless it is explicitly aligned to the desired location.  If the data ends
up being unaligned, the resultant binary would fault at runtime due to the
unaligned access.

As an example, the follow would fault previously:
  cc -c lib/builtins/x86_64/floatundidf.S -o floatundidf.o
  cc -c test/builtins/Unit/floatundidf_test.c -o floatundidf_test.c
  ld -m elf_x86_64 floatundidf.o floatundidf_test.o -lc -o floatundidf

However, if the object files were reversed, the data would end up aligned and
the problem would go unnoticed.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@214033 91177308-0d34-0410-b5e6-96231b3b80d8
builtins: move the readonly constants into rodata

Place the floating point constants into the read-only data section.  This was
already being done for x86_64, this simply mirrors the behaviour for i686.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@214034 91177308-0d34-0410-b5e6-96231b3b80d8
builtins: add missed files from previous commits

This adds missed files in SVN r214033 for alignment and corrects a change from
SVN r214034 for fixing compilation with GCC.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@214039 91177308-0d34-0410-b5e6-96231b3b80d8
builtins: avoid multiple definitions of symbols

The architecture specific implementation of routines would be built and included
along with the generic implementation.  This would result in multiple
definitions of those symbols.

The linker is free to select either of the two.  Most of the time, this
shouldn't be too terrible as the forward iteration should catch the architecture
version due to the ordering.  Rather than relying on the linker and build
infrastructure ordering things in a specific manner, only provide the
architecture version when available.

This reduces the size of compiler-rt, simplifies inspection of the library
implementations, and guarantees that the desired version is selected at a
slightly complex build system.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@214040 91177308-0d34-0410-b5e6-96231b3b80d8
builtins: whitespace

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@214044 91177308-0d34-0410-b5e6-96231b3b80d8
builtins: move macro definitions into assembly.h

The macro definitions are shared across multiple files.  Define them once in the
assembly.h header rather than redefining it in each file.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@214045 91177308-0d34-0410-b5e6-96231b3b80d8
builtins: make ARM compilation with GAS work again

The LLVM IAS seems to accept wide instructions for add and sub in ARM mode even
though it is not permitted.  This uses a macro to ensure that the wide modifier
is only applied when building in THUMB mode.

This repairs building with GCC/GAS in ARM mode.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@214046 91177308-0d34-0410-b5e6-96231b3b80d8