summaryrefslogtreecommitdiffstats
path: root/clang/lib/Tooling/JSONCompilationDatabase.cpp
diff options
context:
space:
mode:
authorAhmed Bougacha <ahmed.bougacha@gmail.com>2015-09-22 17:21:44 +0000
committerAhmed Bougacha <ahmed.bougacha@gmail.com>2015-09-22 17:21:44 +0000
commit07a844d758f09e1dd07ca17eb38a22d69d63fae3 (patch)
tree4b7b38a24d18b1e32cd081cc7880fd62b6fc7cef /clang/lib/Tooling/JSONCompilationDatabase.cpp
parentd13c4fb7f202dc19e8c127428ddfe941f944b729 (diff)
downloadbcm5719-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 'clang/lib/Tooling/JSONCompilationDatabase.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud