Files
archived-llvm/test/CodeGen/ARM
Ahmed Bougacha 16a661561f [ARM] Emit clrex in the expanded cmpxchg fail block.
ARM counterpart to r248291:

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@248294 91177308-0d34-0410-b5e6-96231b3b80d8
2015-09-22 17:22:58 +00:00
..
2014-04-03 17:35:22 +00:00
2014-09-02 22:45:13 +00:00
2012-06-11 08:07:26 +00:00
2014-02-16 07:31:05 +00:00
2014-08-26 12:47:26 +00:00
2014-01-29 11:50:56 +00:00
2014-01-29 11:50:56 +00:00
2015-08-19 01:44:51 +00:00
2014-04-25 17:51:25 +00:00
2014-11-17 14:08:57 +00:00
2014-04-03 17:35:22 +00:00
2014-04-03 17:35:22 +00:00
2012-09-29 21:43:49 +00:00
2014-12-04 19:34:50 +00:00
2014-08-20 10:40:20 +00:00
2014-04-03 17:35:22 +00:00
2014-04-03 17:35:22 +00:00
2015-01-19 15:16:06 +00:00
2014-04-03 17:35:22 +00:00
2014-04-23 01:09:29 +00:00
2014-01-24 17:20:08 +00:00
2015-08-13 17:28:16 +00:00
2015-09-21 20:28:04 +00:00