)]}'
{
  "commit": "c8e1588cfa3ff9e3b5d600ef04f4261c4e68af90",
  "tree": "05fd13d996634c2c11280b092a88b812dab3fdb9",
  "parents": [
    "a52de681dd17f8b545ecd9ea2138f72b39bf449a"
  ],
  "author": {
    "name": "Greg Fischer",
    "email": "greg@lunarg.com",
    "time": "Wed Nov 02 11:23:25 2022 -0600"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Nov 02 11:23:25 2022 -0600"
  },
  "message": "Add passes to eliminate dead output stores (#4970)\n\nThis adds two passes to accomplish this: one pass to analyze a shader\r\nto determine the input slots that are live. The second pass is run on\r\nthe preceding shader to eliminate any stores to output slots that are\r\nnot consumed by the following shader.\r\n\r\nThese passes support vert, tesc, tese, geom, and frag shaders.\r\n\r\nThese passes are currently only available through the API.\r\n\r\nThese passes together with dead code elimination, and elimination of\r\ndead input and output components and variables (WIP), will allow users\r\nto do dead code elimination across shader boundaries.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "80c61b08010c0c9012429a49a976635d001d5748",
      "old_mode": 33188,
      "old_path": "Android.mk",
      "new_id": "3a28b6630e2ed6f38220056fc86ac30afc2a0491",
      "new_mode": 33188,
      "new_path": "Android.mk"
    },
    {
      "type": "modify",
      "old_id": "b7e20b343e9cbe6d32fd0c3022c4a93bc8367f71",
      "old_mode": 33188,
      "old_path": "BUILD.gn",
      "new_id": "e4c14f2a77d59660a9a70becb7084c1b93f03142",
      "new_mode": 33188,
      "new_path": "BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "949735608dbe616e91ab8eeeab4463bd0a1b9387",
      "old_mode": 33188,
      "old_path": "include/spirv-tools/optimizer.hpp",
      "new_id": "bca12520fefa410d086c6d51472d0c0e53fe481e",
      "new_mode": 33188,
      "new_path": "include/spirv-tools/optimizer.hpp"
    },
    {
      "type": "modify",
      "old_id": "75fe4c0fdc3d0452b9a8d653a83462038eedc591",
      "old_mode": 33188,
      "old_path": "source/opt/CMakeLists.txt",
      "new_id": "085c4302af3db17af17aea6f48875b20b75a3295",
      "new_mode": 33188,
      "new_path": "source/opt/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f54206f086c58a6a57c9a124511fb6e96b4c0fec",
      "new_mode": 33188,
      "new_path": "source/opt/analyze_live_input_pass.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ab292effe15160435b59b1644055e9af8ea8a4d3",
      "new_mode": 33188,
      "new_path": "source/opt/analyze_live_input_pass.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9378898fdcab3b95844202f8e43fac2eec203d03",
      "new_mode": 33188,
      "new_path": "source/opt/eliminate_dead_output_stores_pass.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "13785f34935ba3d1c2e50195153db3fd8af492fe",
      "new_mode": 33188,
      "new_path": "source/opt/eliminate_dead_output_stores_pass.h"
    },
    {
      "type": "modify",
      "old_id": "c9c3f1b5dc2d35cc5d990f18b1403105e8c5bf1a",
      "old_mode": 33188,
      "old_path": "source/opt/ir_context.cpp",
      "new_id": "9116d4b26a3ca8461843487a1f6ebc14a49a4f3a",
      "new_mode": 33188,
      "new_path": "source/opt/ir_context.cpp"
    },
    {
      "type": "modify",
      "old_id": "2f27942b4cf27220bcb3263496e4f5c6aa79fe57",
      "old_mode": 33188,
      "old_path": "source/opt/ir_context.h",
      "new_id": "9dee84e9b87a2a38037cadf288a6157ac5f84894",
      "new_mode": 33188,
      "new_path": "source/opt/ir_context.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "08b1c6ebcf4b3ffb571bd72c99ba4c75772c1875",
      "new_mode": 33188,
      "new_path": "source/opt/liveness.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7d8a9fb408d6695240a4400ea235e1788c1d2dec",
      "new_mode": 33188,
      "new_path": "source/opt/liveness.h"
    },
    {
      "type": "modify",
      "old_id": "c98af8f51d7557b2eb2eaa5bcf12d826738a31f8",
      "old_mode": 33188,
      "old_path": "source/opt/module.cpp",
      "new_id": "2f788ffda3471035f465022400490729a15dbea5",
      "new_mode": 33188,
      "new_path": "source/opt/module.cpp"
    },
    {
      "type": "modify",
      "old_id": "381589b53d021946459ac4e1a1d5f01ed43ba92a",
      "old_mode": 33188,
      "old_path": "source/opt/optimizer.cpp",
      "new_id": "75a47784c273981f113357c4ed6effbb39cf43ab",
      "new_mode": 33188,
      "new_path": "source/opt/optimizer.cpp"
    },
    {
      "type": "modify",
      "old_id": "21354c77b1fc5f89677377677fb3cca9026c922f",
      "old_mode": 33188,
      "old_path": "source/opt/passes.h",
      "new_id": "5344dcf95747fe3f3d85bdc44ad7c2ab637a1b32",
      "new_mode": 33188,
      "new_path": "source/opt/passes.h"
    },
    {
      "type": "modify",
      "old_id": "15966c18409bf024675981d029641051a5f31f0e",
      "old_mode": 33188,
      "old_path": "test/opt/CMakeLists.txt",
      "new_id": "36bf04c3264ef689f3ac8e1fbc2fbc65c616b117",
      "new_mode": 33188,
      "new_path": "test/opt/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d61dbdb85a3248088cc24d330b811a136546ed35",
      "new_mode": 33188,
      "new_path": "test/opt/analyze_live_input_test.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6e382c24333a472ffcc9c1fa6650ef0ef70ec84a",
      "new_mode": 33188,
      "new_path": "test/opt/eliminate_dead_output_stores_test.cpp"
    }
  ]
}
