)]}'
{
  "commit": "c346653bb3c60f5a572e8a49bff073086be9c7e3",
  "tree": "84a24a4f5b10133240f90a600143282ae7173130",
  "parents": [
    "76e9e53588e089eb7a4a73d996583aea0adcd908"
  ],
  "author": {
    "name": "Ben Clayton",
    "email": "bclayton@google.com",
    "time": "Tue Mar 24 11:54:05 2020 +0000"
  },
  "committer": {
    "name": "Ben Clayton",
    "email": "bclayton@google.com",
    "time": "Sat Mar 28 20:59:52 2020 +0000"
  },
  "message": "Subzero Coroutines: Use ultra-low-level marl APIs\n\nInstead of using the `marl::Event` synchronization primitives, drop all the way down to using `marl::Scheduler::Fiber` APIs directly, and use the new `marl::Scheduler::Fiber::wait()` function that does not take a lock.\n\nProvides around another 2x performance boost:\n\n```\ngo run ./third_party/marl/tools/cmd/benchdiff/main.go pre.json post.json\nDelta                | Test name                                | (A) pre.json | (B) post.json\n-2.08x -81.186µs     | Coroutines/Fibonacci/iterations:512      | 156.202µs    | 75.016µs\n-2.10x -668.201µs    | Coroutines/Fibonacci/iterations:4096     | 1.275069ms   | 606.868µs\n-2.11x -5.359326ms   | Coroutines/Fibonacci/iterations:32768    | 10.166126ms  | 4.8068ms\n-2.12x -10.342µs     | Coroutines/Fibonacci/iterations:64       | 19.585µs     | 9.243µs\n-2.13x -2.784542745s | Coroutines/Fibonacci/iterations:16777216 | 5.251299045s | 2.4667563s\n-2.13x -347.220746ms | Coroutines/Fibonacci/iterations:2097152  | 653.812928ms | 306.592182ms\n-2.14x -43.615678ms  | Coroutines/Fibonacci/iterations:262144   | 82.017312ms  | 38.401634ms\n```\n\nBug: b/145754674\nChange-Id: I5f6b0c8c92af645cc2a825c6f1e2769b2440638e\nReviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/42850\nTested-by: Ben Clayton \u003cbclayton@google.com\u003e\nReviewed-by: Antonio Maiorano \u003camaiorano@google.com\u003e\nKokoro-Presubmit: kokoro \u003cnoreply+kokoro@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3221a7eb20c429b92da546c281a60184cc3e4b0a",
      "old_mode": 33188,
      "old_path": "src/Reactor/SubzeroReactor.cpp",
      "new_id": "522b5668772d769f0a3da352d697f4d5b426ed7a",
      "new_mode": 33188,
      "new_path": "src/Reactor/SubzeroReactor.cpp"
    }
  ]
}
