HomePhabricator

Disable use of _ExtInt with '__atomic' builtins

Authored by jtmott-intel on Jul 17 2020, 9:50 AM.

Description

Disable use of _ExtInt with '__atomic' builtins

We're (temporarily) disabling ExtInt for the '__atomic' builtins so we can better design their behavior later. The idea is until we do an audit/design for the way atomic builtins are supposed to work with _ExtInt, we should leave them restricted so they don't limit our future options, such as by binding us to a sub-optimal implementation via ABI.

Example after this change:

$ cat test.c

    void f(_ExtInt(64) *ptr) {
      __atomic_fetch_add(ptr, 1, 0);
    }

$ clang -c test.c

    test.c:2:22: error: argument to atomic builtin of type '_ExtInt' is not supported
      __atomic_fetch_add(ptr, 1, 0);
                         ^
    1 error generated.

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

Details

Committed
jtmott-intelAug 18 2020, 9:17 AM
Differential Revision
D84049: Disable use of _ExtInt with '__atomic' builtins
Parents
rG3471520b1f6b: [ARM] Allow tail predication of VLDn
Branches
Unknown
Tags
Unknown