diff options
| author | Ahmed Bougacha <ahmed.bougacha@gmail.com> | 2015-09-22 17:21:44 +0000 |
|---|---|---|
| committer | Ahmed Bougacha <ahmed.bougacha@gmail.com> | 2015-09-22 17:21:44 +0000 |
| commit | 07a844d758f09e1dd07ca17eb38a22d69d63fae3 (patch) | |
| tree | 4b7b38a24d18b1e32cd081cc7880fd62b6fc7cef /llvm/test/Integer/constpointer_bt.ll | |
| parent | d13c4fb7f202dc19e8c127428ddfe941f944b729 (diff) | |
| download | bcm5719-llvm-07a844d758f09e1dd07ca17eb38a22d69d63fae3.tar.gz bcm5719-llvm-07a844d758f09e1dd07ca17eb38a22d69d63fae3.zip | |
[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
Diffstat (limited to 'llvm/test/Integer/constpointer_bt.ll')
0 files changed, 0 insertions, 0 deletions

