Go to file
Tim Northover b4ddc0845a ARM & AArch64: make use of common cmpxchg idioms after expansion
The C and C++ semantics for compare_exchange require it to return a bool
indicating success. This gets mapped to LLVM IR which follows each cmpxchg with
an icmp of the value loaded against the desired value.

When lowered to ldxr/stxr loops, this extra comparison is redundant: its
results are implicit in the control-flow of the function.

This commit makes two changes: it replaces that icmp with appropriate PHI
nodes, and then makes sure earlyCSE is called after expansion to actually make
use of the opportunities revealed.

I've also added -{arm,aarch64}-enable-atomic-tidy options, so that
existing fragile tests aren't perturbed too much by the change. Many
of them either rely on undef/unreachable too pervasively to be
restored to something well-defined (particularly while making sure
they test the same obscure assert from many years ago), or depend on a
particular CFG shape, which is disrupted by SimplifyCFG.

rdar://problem/16227836

llvm-svn: 209883
2014-05-30 10:09:59 +00:00
clang clang/test/Frontend/Weverything-and-remarks.cpp: Add explicit -target. 2014-05-30 07:03:16 +00:00
clang-tools-extra Remove redundant check discovered in post-commit review of r209505. 2014-05-30 09:21:17 +00:00
compiler-rt [ASan Win] DLL thunk: make each INTERFACE_FUNCTION unique to prevent ICF linker optimizations 2014-05-30 09:01:17 +00:00
debuginfo-tests relax testcase for LLDB output format compatibility. 2014-03-19 23:06:18 +00:00
libclc Add more log related float constants 2014-05-29 21:30:28 +00:00
libcxx fix typo 2014-05-29 14:58:38 +00:00
libcxxabi Fix typo in comment. 2014-05-14 17:16:57 +00:00
lld [ELF] Fix incorrect sorting of .init_array / .fini_array sections. 2014-05-30 05:29:46 +00:00
lldb iOS simulator cleanup to make sure we use "*-apple-ios" for iOS simulator apps and binaries. 2014-05-29 21:33:45 +00:00
llvm ARM & AArch64: make use of common cmpxchg idioms after expansion 2014-05-30 10:09:59 +00:00
openmp Add testsuite from OpenUH 2014-05-10 17:02:09 +00:00
polly Added option for n-dimensional rectangular tiling 2014-05-28 17:21:02 +00:00