llvm-project/llvm/test
Ahmed Bougacha 07a844d758 [AArch64] Emit clrex in the expanded cmpxchg fail block.
In the comparison failure block of a cmpxchg expansion, the initial
ldrex/ldxr will not be followed by a matching strex/stxr.
On ARM/AArch64, this unnecessarily ties up the execution monitor,
which might have a negative performance impact on some uarchs.

Instead, release the monitor in the failure block.
The clrex instruction was designed for this: use it.

Also see ARMARM v8-A B2.10.2:
"Exclusive access instructions and Shareable memory locations".

Differential Revision: http://reviews.llvm.org/D13033

llvm-svn: 248291
2015-09-22 17:21:44 +00:00
..
Analysis Fix for pr24866 2015-09-21 22:04:10 +00:00
Assembler [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
Bindings Add a way to skip the Go bindings tests even when Go is configured in 2015-09-10 05:47:43 +00:00
Bitcode Restore "Function bitcode index in Value Symbol Table and lazy reading support" 2015-09-17 20:12:00 +00:00
BugPoint Make the default triple optional by allowing an empty string 2015-09-16 05:34:32 +00:00
CodeGen [AArch64] Emit clrex in the expanded cmpxchg fail block. 2015-09-22 17:21:44 +00:00
DebugInfo SelectionDAGDumper: Hide [ID=X], [ORD=X] and source locations by default. 2015-09-18 17:57:28 +00:00
Examples Disable llvm/test/Examples/ for now while investigating. 2015-08-28 03:32:43 +00:00
ExecutionEngine [RuntimeDyld] Support non-zero addends for the MachO X86_64 SUBTRACTOR reloc. 2015-09-10 21:05:58 +00:00
Feature Make the default triple optional by allowing an empty string 2015-09-16 05:34:32 +00:00
FileCheck
Instrumentation [ASan] Don't instrument globals in .preinit_array/.init_array/.fini_array 2015-09-15 23:05:48 +00:00
Integer
JitListener DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
LTO Make the default triple optional by allowing an empty string 2015-09-16 05:34:32 +00:00
LibDriver Add support for producing thin archives in llvm-lib. 2015-07-17 16:01:11 +00:00
Linker Make the default triple optional by allowing an empty string 2015-09-16 05:34:32 +00:00
MC [mips][ias] Implement .cpreturn directive. 2015-09-22 10:50:09 +00:00
Object Avoid SEGFAULT if a requested symbol section is absent. 2015-09-21 19:17:18 +00:00
Other Make the default triple optional by allowing an empty string 2015-09-16 05:34:32 +00:00
SymbolRewriter [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
TableGen [TableGen] Allow TokenTy in intrinsic signatures 2015-09-02 13:36:25 +00:00
Transforms [LICM] Hoist calls to readonly argmemonly functions even with stores in the loop 2015-09-21 22:27:59 +00:00
Unit
Verifier [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
YAMLParser
tools [llvm-readobj] Fix another "time of check to time of use bug". 2015-09-17 22:29:58 +00:00
.clang-format
CMakeLists.txt [CMake] Update LLVM_TEST_DEPENDS not to use macho-dump. It has been unused since r247235. 2015-09-19 07:19:30 +00:00
Makefile Add a way to skip the Go bindings tests even when Go is configured in 2015-09-10 05:47:43 +00:00
Makefile.tests
TestRunner.sh
lit.cfg Make the default triple optional by allowing an empty string 2015-09-16 05:34:32 +00:00
lit.site.cfg.in Add a way to skip the Go bindings tests even when Go is configured in 2015-09-10 05:47:43 +00:00