)]}'
{
  "commit": "a5ac650d2031ef1ccdd4d35aa8fb57d1b55dbee9",
  "tree": "da916e6ba20f16f6583656929a63c505d9abbd76",
  "parents": [
    "170766a36bd7efac2f95d89eb0ff74e2e3d0dcd9"
  ],
  "author": {
    "name": "Alexis Hetu",
    "email": "sugoi@google.com",
    "time": "Wed Jun 13 16:21:34 2018 -0400"
  },
  "committer": {
    "name": "Alexis Hétu",
    "email": "sugoi@google.com",
    "time": "Thu Jun 14 17:24:58 2018 +0000"
  },
  "message": "Optimizer optimization\n\nOptimizer::optimizeStoresInSingleBasicBlock() was taking an extremely long time due to\nlooping through all the instructions of a single basic block at every iteration. By\ncreating a much smaller list of only load/store operations the first time a single basic\nblock is encountered and reusing that list when the same block is encountered again,\nthis function now runs ~10X faster.\n\nIn my test case:\nout/Default/cc_unittests --gtest_filter\u003dImageBackgroundFilter.BackgroundFilterRotated_GL\nThe sw::optimize function went from taking almost 16s to roughly 1.5s.\n\nBug b/67872293\n\nChange-Id: I7e2e2aa8dc1bf2663988fb59b58d72d9ee986e36\nReviewed-on: https://swiftshader-review.googlesource.com/19408\nTested-by: Alexis Hétu \u003csugoi@google.com\u003e\nReviewed-by: Nicolas Capens \u003cnicolascapens@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2d4ac827e09c6ad402e5b736d6c4ac50b690bd8a",
      "old_mode": 33188,
      "old_path": "src/Reactor/Optimizer.cpp",
      "new_id": "83ea5f22f187f75fcb3ff4dd20bd51ee909c5aa2",
      "new_mode": 33188,
      "new_path": "src/Reactor/Optimizer.cpp"
    }
  ]
}
