{"push_id":801243036,"size":2,"distinct_size":2,"ref":"refs/heads/master","head":"16a661561f56335ea1b0260fb33322ac92dbcf01","before":"c8a4540af107bbab49a0861ffa07ed9e6f13bb3a","commits":[{"sha":"ee629d83953a0a66d95ae3ed1cc88f2cb0e0d163","author":{"email":"cdca4787270da064010d22babbd4b763d61bcde5@gmail.com","name":"Ahmed Bougacha"},"message":"[AArch64] Emit clrex in the expanded cmpxchg fail block.\n\nIn the comparison failure block of a cmpxchg expansion, the initial\nldrex/ldxr will not be followed by a matching strex/stxr.\nOn ARM/AArch64, this unnecessarily ties up the execution monitor,\nwhich might have a negative performance impact on some uarchs.\n\nInstead, release the monitor in the failure block.\nThe clrex instruction was designed for this: use it.\n\nAlso see ARMARM v8-A B2.10.2:\n\"Exclusive access instructions and Shareable memory locations\".\n\nDifferential Revision: http://reviews.llvm.org/D13033\n\ngit-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@248291 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/llvm-mirror/llvm/commits/ee629d83953a0a66d95ae3ed1cc88f2cb0e0d163"},{"sha":"16a661561f56335ea1b0260fb33322ac92dbcf01","author":{"email":"cdca4787270da064010d22babbd4b763d61bcde5@gmail.com","name":"Ahmed Bougacha"},"message":"[ARM] Emit clrex in the expanded cmpxchg fail block.\n\nARM counterpart to r248291:\n\nIn the comparison failure block of a cmpxchg expansion, the initial\nldrex/ldxr will not be followed by a matching strex/stxr.\nOn ARM/AArch64, this unnecessarily ties up the execution monitor,\nwhich might have a negative performance impact on some uarchs.\n\nInstead, release the monitor in the failure block.\nThe clrex instruction was designed for this: use it.\n\nAlso see ARMARM v8-A B2.10.2:\n\"Exclusive access instructions and Shareable memory locations\".\n\nDifferential Revision: http://reviews.llvm.org/D13033\n\ngit-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@248294 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/llvm-mirror/llvm/commits/16a661561f56335ea1b0260fb33322ac92dbcf01"}]}