)]}'
{
  "commit": "de7b15ebb90dfc9b49cc04ebbbdf4c19328aa59e",
  "tree": "dee76532f9e4def89f64f84b1cbbf388321e11e6",
  "parents": [
    "57b3b1d1172f41c66525d272a31d2eb347fc126d"
  ],
  "author": {
    "name": "David Neto",
    "email": "dneto@google.com",
    "time": "Tue Jun 30 13:59:43 2020 +0000"
  },
  "committer": {
    "name": "dan sinclair",
    "email": "dsinclair@google.com",
    "time": "Tue Jun 30 13:59:43 2020 +0000"
  },
  "message": "[spirv-reader] Don\u0027t move combinatorial values across control flow\n\nAvoid sinking expensive operations into control flow such as loops.\nThe heuristic way to achieve that is to avoid moving combinatorial\nvalues across *any* structured construct boundaries.\n\nBug: tint:3\nChange-Id: I91502b01166a0db64c0e652331591850df75f9d4\nReviewed-on: https://dawn-review.googlesource.com/c/tint/+/24140\nReviewed-by: dan sinclair \u003cdsinclair@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "840836bbb60a7b75322fadad7122b6339f11fd4b",
      "old_mode": 33188,
      "old_path": "src/reader/spirv/function.cc",
      "new_id": "ad68e73c0f3f3dae26c50bcab24c56e2e3c06e4d",
      "new_mode": 33188,
      "new_path": "src/reader/spirv/function.cc"
    },
    {
      "type": "modify",
      "old_id": "fbab63bad5138b4c865fd0035f04dda778d2bf91",
      "old_mode": 33188,
      "old_path": "src/reader/spirv/function.h",
      "new_id": "9a8ebada2bc5d7c624044012c1e2600dd5e36949",
      "new_mode": 33188,
      "new_path": "src/reader/spirv/function.h"
    },
    {
      "type": "modify",
      "old_id": "dd9f283ae7e8e6ada81786c7d796456391e06c59",
      "old_mode": 33188,
      "old_path": "src/reader/spirv/function_var_test.cc",
      "new_id": "ca8e217e3466494f419bfb26e646fdcba7e055f8",
      "new_mode": 33188,
      "new_path": "src/reader/spirv/function_var_test.cc"
    }
  ]
}
