)]}'
{
  "commit": "6c0df4421124f43f1660a18ac7e68b87204fe79e",
  "tree": "4e9a176c1218bdc48a63fd91aee291df51a544ac",
  "parents": [
    "f9b8b6104dc53551aa8bd56afa0d49159de4433d"
  ],
  "author": {
    "name": "Ben Clayton",
    "email": "bclayton@google.com",
    "time": "Mon Jan 24 21:07:20 2022 +0000"
  },
  "committer": {
    "name": "Tint LUCI CQ",
    "email": "tint-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Jan 24 21:07:20 2022 +0000"
  },
  "message": "Castable: Optimizations using bloomfilters\n\nCalculate a hashcode for each TypeInfo, use these hashcodes to quickly\neliminate full base class walks for As() and Is(). Use the hashcodes to\noptimize IsAnyOf() calls where the result is false.\n\nBenchmarks:\n\nA: base.bench\nB: new.bench\n\nTest name                             | Δ (A → B)    | % (A → B)\n--------------------------------------+--------------+-----------\nParseWGSL/\"particles.wgsl\"            | -78.84µs     | -3.2%\nGenerateWGSL/\"particles.wgsl\"         | -11.264µs    | -5.8%\nGenerateGLSL/\"particles.wgsl\"         | -2.610127ms  | -7.2%\nGenerateMSL/\"simple_compute.wgsl\"     | -41.187µs    | -7.2%\nGenerateMSL/\"particles.wgsl\"          | -818.689µs   | -7.2%\nGenerateGLSL/\"simple_compute.wgsl\"    | -48.362µs    | -7.4%\nGenerateGLSL/\"simple_vertex.wgsl\"     | -49.992µs    | -7.7%\nGenerateSPIRV/\"simple_compute.wgsl\"   | -42.869µs    | -7.8%\nGenerateSPIRV/\"particles.wgsl\"        | -835.423µs   | -7.9%\nGenerateSPIRV/\"simple_fragment.wgsl\"  | -33.868µs    | -8.1%\nGenerateGLSL/\"simple_fragment.wgsl\"   | -51.368µs    | -8.2%\nGenerateSPIRV/\"simple_vertex.wgsl\"    | -39.096µs    | -8.3%\nGenerateHLSL/\"particles.wgsl\"         | -1.437747ms  | -8.3%\nGenerateMSL/\"simple_vertex.wgsl\"      | -57.232µs    | -8.5%\nGenerateHLSL/\"simple_compute.wgsl\"    | -85.981µs    | -8.9%\nGenerateHLSL/\"simple_fragment.wgsl\"   | -73.095µs    | -9.2%\nGenerateMSL/\"simple_fragment.wgsl\"    | -61.257µs    | -9.3%\nGenerateHLSL/\"simple_vertex.wgsl\"     | -76.661µs    | -9.4%\n\nChange-Id: Idb03bf871b08274b5b52ef55e41450ed3448a60f\nReviewed-on: https://dawn-review.googlesource.com/c/tint/+/76960\nReviewed-by: David Neto \u003cdneto@google.com\u003e\nCommit-Queue: Ben Clayton \u003cbclayton@google.com\u003e\nKokoro: Ben Clayton \u003cbclayton@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c12abebc0088776ea91a62ee7f0efafe6ebfc0fc",
      "old_mode": 33188,
      "old_path": "src/BUILD.gn",
      "new_id": "df04c7309de5992365a0e6639f4400882dc5526a",
      "new_mode": 33188,
      "new_path": "src/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "23efeb4f9d6aac3e90745e29997c811662758b5d",
      "old_mode": 33188,
      "old_path": "src/CMakeLists.txt",
      "new_id": "2b211d6f058e27af59f2d5a111bdb417841f27c8",
      "new_mode": 33188,
      "new_path": "src/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "7cab369e6c256c6b124e3e186dfd715a7dbc9a6a",
      "old_mode": 33188,
      "old_path": "src/castable.cc",
      "new_id": "e63981f6aa3bcbc7c0d34d4cbcfc1bb6bbb47413",
      "new_mode": 33188,
      "new_path": "src/castable.cc"
    },
    {
      "type": "modify",
      "old_id": "1b3095592bc1491caf2edcff6c1a67ee3fb8b8fd",
      "old_mode": 33188,
      "old_path": "src/castable.h",
      "new_id": "280cc1754a3143d7f9032277cfe4c7484042db15",
      "new_mode": 33188,
      "new_path": "src/castable.h"
    },
    {
      "type": "modify",
      "old_id": "bf021c317811abea2c2bc92efe4b3d1f2ad15320",
      "old_mode": 33188,
      "old_path": "src/clone_context.cc",
      "new_id": "31b49cd171996a947210c1496cc34a3e15df8611",
      "new_mode": 33188,
      "new_path": "src/clone_context.cc"
    },
    {
      "type": "modify",
      "old_id": "fd47a2fad724832338987235630fa419a8fdf3f5",
      "old_mode": 33188,
      "old_path": "src/clone_context.h",
      "new_id": "9b55a1f01804df3d5826f08c7af2b83deb2e4a4e",
      "new_mode": 33188,
      "new_path": "src/clone_context.h"
    },
    {
      "type": "modify",
      "old_id": "1b4cede1ba8b0e4bac7242ad054477af8ab50f35",
      "old_mode": 33188,
      "old_path": "src/inspector/inspector.cc",
      "new_id": "1767b013ec2f9d9ccb2475ffd1beaead4bc2dedb",
      "new_mode": 33188,
      "new_path": "src/inspector/inspector.cc"
    },
    {
      "type": "modify",
      "old_id": "be26eb6dfe0e73fd9c15fa15ad242a06487c492e",
      "old_mode": 33188,
      "old_path": "src/inspector/inspector.h",
      "new_id": "0e8d804039149b6cdf7c2904ea08fbe5804c3ca9",
      "new_mode": 33188,
      "new_path": "src/inspector/inspector.h"
    },
    {
      "type": "modify",
      "old_id": "4e95ff6180e9d3c6726bd9354c7e7676bbfe6a55",
      "old_mode": 33188,
      "old_path": "src/sem/function.cc",
      "new_id": "919c6387f9d88a651654925eae56165e5f3bb028",
      "new_mode": 33188,
      "new_path": "src/sem/function.cc"
    },
    {
      "type": "modify",
      "old_id": "75e3a4847ef6d01996b21f62f4df05d62c19fe3f",
      "old_mode": 33188,
      "old_path": "src/sem/function.h",
      "new_id": "460e722c7944b8beb4832ebd970f5e1455564395",
      "new_mode": 33188,
      "new_path": "src/sem/function.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9c296d0fe5ed4d906afd66549e292354531f4e97",
      "new_mode": 33188,
      "new_path": "src/utils/crc32.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b1b739f91d998d484d50332b37d8ca20543ecd61",
      "new_mode": 33188,
      "new_path": "src/utils/crc32_test.cc"
    },
    {
      "type": "modify",
      "old_id": "b14707ae59b478b940e3c2d088479c022b57fd72",
      "old_mode": 33188,
      "old_path": "test/BUILD.gn",
      "new_id": "4812293f8658e7e6a03ef80a5e95d230fd49fedc",
      "new_mode": 33188,
      "new_path": "test/BUILD.gn"
    }
  ]
}
