llvm/test
Tim Northover d0dbe02fd2 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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209883 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-30 10:09:59 +00:00
..
Analysis remove constant terms 2014-05-27 22:41:45 +00:00
Assembler No need for those tests to go thru llvm-as and/or llvm-dis. 2014-05-27 22:03:28 +00:00
Bindings Fix the ocaml test to not create a alias to a declaration. 2014-03-12 21:20:42 +00:00
Bitcode [X86] Move test from r209863 to CodeGen/X86 2014-05-29 23:52:53 +00:00
BugPoint Revert r206989, "Mark llvm/test/BugPoint/compile-custom.ll as XFAIL:vg_leak." It has been fixed since r207265. 2014-04-27 11:59:33 +00:00
CodeGen ARM & AArch64: make use of common cmpxchg idioms after expansion 2014-05-30 10:09:59 +00:00
DebugInfo No need for those tests to go thru llvm-as and/or llvm-dis. 2014-05-27 22:03:28 +00:00
ExecutionEngine Fix testers by removing dubious testcase for r209154. 2014-05-19 19:38:48 +00:00
Feature Rename alias variables to make it easier to add new tests to the file. 2014-05-29 16:16:12 +00:00
FileCheck
Instrumentation [ASan] Use llvm.global_ctors to insert init-order checking calls into ASan runtime. 2014-05-29 00:51:15 +00:00
Integer
JitListener Debug Info: update testing cases to specify the debug info version number. 2013-11-22 21:49:45 +00:00
Linker DebugInfo: Lazily construct subprogram definition DIEs. 2014-05-27 18:37:48 +00:00
LTO IR: Don't allow non-default visibility on local linkage 2014-05-07 22:57:20 +00:00
MC Restore getInvertedCondCode() from the phased-out backend, fixing disassembly for NV 2014-05-29 11:34:50 +00:00
Object [elf2yaml][ELF] Move Info field to the RelocationSection structure. This 2014-05-29 11:05:31 +00:00
Other Fix most of PR10367. 2014-05-16 19:35:39 +00:00
TableGen test/TableGen: Remove XFAIL:vg_leak out of 3 tests corresponding to r208293. 2014-05-09 08:18:33 +00:00
tools ProfileData: Allow multiple profiles in RawInstrProfReader 2014-05-16 00:38:00 +00:00
Transforms ARM & AArch64: make use of common cmpxchg idioms after expansion 2014-05-30 10:09:59 +00:00
Unit With rpaths being set correctly, SHLIBPATH_VAR is not needed anymore. 2014-02-28 16:16:51 +00:00
Verifier Add comdat key field to llvm.global_ctors and llvm.global_dtors 2014-05-16 20:39:27 +00:00
YAMLParser
.clang-format
CMakeLists.txt OK, NAKAMURA Takumi beat me to this change. So backing out my addition of 2014-05-19 23:26:51 +00:00
lit.cfg [Test] Remove c-index-test from the list of substitutions 2014-05-07 18:16:02 +00:00
lit.site.cfg.in Eliminate inappropriate use of FindProgramByName() from lli 2014-01-22 21:52:35 +00:00
Makefile With rpaths being set correctly, SHLIBPATH_VAR is not needed anymore. 2014-02-28 16:16:51 +00:00
Makefile.tests
TestRunner.sh