)]}'
{
  "commit": "5f5984923015d226e61ff97790afe13351917fa7",
  "tree": "0dbad483e0b3bb2dfa5e6f1639b7249d97a99916",
  "parents": [
    "80128f92cd70ee0a272009cfaf2dcc701e7eb441"
  ],
  "author": {
    "name": "dneto",
    "email": "dneto@google.com",
    "time": "Mon Nov 24 16:41:43 2025 -0800"
  },
  "committer": {
    "name": "Dawn LUCI CQ",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Nov 24 16:41:43 2025 -0800"
  },
  "message": "[uniformity] relax uniformity when loop bodies have returns\n\nSee https://github.com/gpuweb/gpuweb/issues/5364\n\nWhen a loop body has a return then it can cut off control flow\nentirely. Function calls that might have required uniformity\nmay no longer be reached, and should not cause a uniformity error.\n\nAlso, the return may be taken non-uniformly, and hence the other\nremaining invocations may complete the loop nonuniformily. In these\ncases code after the loop may now be exposed to nonuniform execution,\nwhich should trigger a uniformity error.\n\nThe tests add a small domain-specific language to test various\ncombinations of statement behaviours (break, return, next, continue)\nand various placements of uniformity \"attackers\" and \"detectors\".\n\nThis patch is part 1: loop without continuing.\n\nThis includes 4 cases that fail due to the conservatism.\n\n// \"\", \"_#b!\", \"\", \"\"\n// \"\", \"_#r!\", \"\", \"\"\n// \"\", \"_#b\u003dr!\", \"\", \"\"\n// \"\", \"_#bxr!\", \"\", \"\"\n\nBug: 452692768\nChange-Id: I6a6a696457f17dfa3be4e0c2fecd895bd058c254\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/272156\nReviewed-by: Alan Baker \u003calanbaker@google.com\u003e\nCommit-Queue: David Neto \u003cdneto@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3bc53561fb5b8811e297f14e104a6e29d48198f7",
      "old_mode": 33188,
      "old_path": "src/tint/lang/wgsl/resolver/uniformity.cc",
      "new_id": "022cdad310aed4d7c5a8dbfb768eb915d0478df8",
      "new_mode": 33188,
      "new_path": "src/tint/lang/wgsl/resolver/uniformity.cc"
    },
    {
      "type": "modify",
      "old_id": "0563b622f8218cbe596851726d649b9d4f1c52a6",
      "old_mode": 33188,
      "old_path": "src/tint/lang/wgsl/resolver/uniformity_test.cc",
      "new_id": "b726a58972af6a825c25bed6b30115085efb543d",
      "new_mode": 33188,
      "new_path": "src/tint/lang/wgsl/resolver/uniformity_test.cc"
    }
  ]
}
