HomeFreeBSD

For now, revert upstream clang r323281 (by Wei Mi):

Description

For now, revert upstream clang r323281 (by Wei Mi):

Adjust MaxAtomicInlineWidth for i386/i486 targets.

This is to fix the bug reported in
https://bugs.llvm.org/show_bug.cgi?id=34347#c6.  Currently, all
MaxAtomicInlineWidth of x86-32 targets are set to 64.  However, i386
doesn't support any cmpxchg related instructions. i486 only supports
cmpxchg.  So in this patch MaxAtomicInlineWidth is reset as follows:
For i386, the MaxAtomicInlineWidth should be 0 because no cmpxchg is
supported.  For i486, the MaxAtomicInlineWidth should be 32 because
it supports cmpxchg.  For others 32 bits x86 cpu, the
MaxAtomicInlineWidth should be 64 because of cmpxchg8b.

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

This should fix buildworld on i386, because of our system libraries
missing __atomic_load_8, and possibly other 64 bit atomic functions, for
that architecture.

We should really fix that at some point, but since we have been actually
using cmpxchg8b for years now, it does not seem to matter much...

Details

Provenance
dimAuthored on
Parents
rS337978: Rework rtld's TLS Variant I implementation to match r326794
Branches
Unknown
Tags
Unknown