)]}'
{
  "commit": "6633bb2aa7c8ab53dc6cc8a4ef8c4fef7a439cee",
  "tree": "6eca9e0103b8a0257eeb34d339fd5166f61ca3a9",
  "parents": [
    "a3d8326993f25869ffb01f27a085abcfabbb42ef"
  ],
  "author": {
    "name": "Carlos Eduardo Seo",
    "email": "cseo@linux.vnet.ibm.com",
    "time": "Thu Jan 04 18:23:27 2018 -0200"
  },
  "committer": {
    "name": "Lynn Boger",
    "email": "laboger@linux.vnet.ibm.com",
    "time": "Thu Mar 22 14:13:01 2018 +0000"
  },
  "message": "cmd/compile/internal/ppc64, runtime internal/atomic, sync/atomic: implement faster atomics for ppc64x\n\nThis change implements faster atomics for ppc64x based on the ISA 2.07B,\nAppendix B.2 recommendations, replacing SYNC/ISYNC by LWSYNC in some\ncases.\n\nUpdates #21348\n\nname                                           old time/op new time/op    delta\nCond1-16                                           955ns     856ns      -10.33%\nCond2-16                                          2.38µs    2.03µs      -14.59%\nCond4-16                                          5.90µs    5.44µs       -7.88%\nCond8-16                                          12.1µs    11.1µs       -8.42%\nCond16-16                                         27.0µs    25.1µs       -7.04%\nCond32-16                                         59.1µs    55.5µs       -6.14%\nLoadMostlyHits/*sync_test.DeepCopyMap-16          22.1ns    24.1ns       +9.02%\nLoadMostlyHits/*sync_test.RWMutexMap-16            252ns     249ns       -1.20%\nLoadMostlyHits/*sync.Map-16                       16.2ns    16.3ns         ~\nLoadMostlyMisses/*sync_test.DeepCopyMap-16        22.3ns    22.6ns         ~\nLoadMostlyMisses/*sync_test.RWMutexMap-16          249ns     247ns       -0.51%\nLoadMostlyMisses/*sync.Map-16                     12.7ns    12.7ns         ~\nLoadOrStoreBalanced/*sync_test.RWMutexMap-16      1.27µs    1.17µs       -7.54%\nLoadOrStoreBalanced/*sync.Map-16                  1.12µs    1.10µs       -2.35%\nLoadOrStoreUnique/*sync_test.RWMutexMap-16        1.75µs    1.68µs       -3.84%\nLoadOrStoreUnique/*sync.Map-16                    2.07µs    1.97µs       -5.13%\nLoadOrStoreCollision/*sync_test.DeepCopyMap-16    15.8ns    15.9ns         ~\nLoadOrStoreCollision/*sync_test.RWMutexMap-16      496ns     424ns      -14.48%\nLoadOrStoreCollision/*sync.Map-16                 6.07ns    6.07ns         ~\nRange/*sync_test.DeepCopyMap-16                   1.65µs    1.64µs         ~\nRange/*sync_test.RWMutexMap-16                     278µs     288µs       +3.75%\nRange/*sync.Map-16                                2.00µs    2.01µs         ~\nAdversarialAlloc/*sync_test.DeepCopyMap-16        3.45µs    3.44µs         ~\nAdversarialAlloc/*sync_test.RWMutexMap-16          226ns     227ns         ~\nAdversarialAlloc/*sync.Map-16                     1.09µs    1.07µs       -2.36%\nAdversarialDelete/*sync_test.DeepCopyMap-16        553ns     550ns       -0.57%\nAdversarialDelete/*sync_test.RWMutexMap-16         273ns     274ns         ~\nAdversarialDelete/*sync.Map-16                     247ns     249ns         ~\nUncontendedSemaphore-16                           79.0ns    65.5ns      -17.11%\nContendedSemaphore-16                              112ns      97ns      -13.77%\nMutexUncontended-16                               3.34ns    2.51ns      -24.69%\nMutex-16                                           266ns     191ns      -28.26%\nMutexSlack-16                                      226ns     159ns      -29.55%\nMutexWork-16                                       377ns     338ns      -10.14%\nMutexWorkSlack-16                                  335ns     308ns       -8.20%\nMutexNoSpin-16                                     196ns     184ns       -5.91%\nMutexSpin-16                                       710ns     666ns       -6.21%\nOnce-16                                           1.29ns    1.29ns         ~\nPool-16                                           8.64ns    8.71ns         ~\nPoolOverflow-16                                   1.60µs    1.44µs      -10.25%\nSemaUncontended-16                                5.39ns    4.42ns      -17.96%\nSemaSyntNonblock-16                                539ns     483ns      -10.42%\nSemaSyntBlock-16                                   413ns     354ns      -14.20%\nSemaWorkNonblock-16                                305ns     258ns      -15.36%\nSemaWorkBlock-16                                   266ns     229ns      -14.06%\nRWMutexUncontended-16                             12.9ns     9.7ns      -24.80%\nRWMutexWrite100-16                                 203ns     147ns      -27.47%\nRWMutexWrite10-16                                  177ns     119ns      -32.74%\nRWMutexWorkWrite100-16                             435ns     403ns       -7.39%\nRWMutexWorkWrite10-16                              642ns     611ns       -4.79%\nWaitGroupUncontended-16                           4.67ns    3.70ns      -20.92%\nWaitGroupAddDone-16                                402ns     355ns      -11.54%\nWaitGroupAddDoneWork-16                            208ns     250ns      +20.09%\nWaitGroupWait-16                                  1.21ns    1.21ns         ~\nWaitGroupWaitWork-16                              5.91ns    5.87ns       -0.81%\nWaitGroupActuallyWait-16                          92.2ns    85.8ns       -6.91%\n\nUpdates #21348\n\nChange-Id: Ibb9b271d11b308264103829e176c6d9fe8f867d3\nReviewed-on: https://go-review.googlesource.com/95175\nRun-TryBot: Lynn Boger \u003claboger@linux.vnet.ibm.com\u003e\nTryBot-Result: Gobot Gobot \u003cgobot@golang.org\u003e\nReviewed-by: Lynn Boger \u003claboger@linux.vnet.ibm.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7a2e2c187832658d89c756a1e33a53530f407ca8",
      "old_mode": 33188,
      "old_path": "src/cmd/compile/internal/ppc64/ssa.go",
      "new_id": "8d843f07567d7ea8d69c2af3c7d81742b52116d1",
      "new_mode": 33188,
      "new_path": "src/cmd/compile/internal/ppc64/ssa.go"
    },
    {
      "type": "modify",
      "old_id": "7117aef1580790322ef41062209bf3f0ae842ef5",
      "old_mode": 33188,
      "old_path": "src/runtime/internal/atomic/asm_ppc64x.s",
      "new_id": "a2ed4adc91a0332bf95ed0ee349e61d9a90394e4",
      "new_mode": 33188,
      "new_path": "src/runtime/internal/atomic/asm_ppc64x.s"
    },
    {
      "type": "modify",
      "old_id": "44e26698b47fb271c370f7b0d661ee55f9f26a6f",
      "old_mode": 33188,
      "old_path": "src/sync/atomic/asm_ppc64x.s",
      "new_id": "dc93ed8e1d69278f8325500112403088a4d6d8e9",
      "new_mode": 33188,
      "new_path": "src/sync/atomic/asm_ppc64x.s"
    }
  ]
}
