ARM: use LLVM's atomicrmw instructions when ldrex/strex are available.

Having some kind of weird kernel-assisted ABI for these when the
native instructions are available appears to be (and should be) the
exception; OSs have been gradually opting in for years and the code
was getting silly.

So let LLVM decide whether it's possible/profitable to inline them by
default.

Patch by Phoebe Buckheister.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212598 91177308-0d34-0410-b5e6-96231b3b80d8
[OPENMP] Fixed incompatibility in [Data]RecursiveASTVisitor::TraverseOMPExecutableDirective method with MSVC for range-based loops.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212599 91177308-0d34-0410-b5e6-96231b3b80d8
Revert commit 212599.


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