)]}'
{
  "commit": "d997c83b103ed1f3af09ed65e1cbf89fbc6d9451",
  "tree": "1e83b344815f84e65f9b95bba0beeb36df8d6913",
  "parents": [
    "d78c1c4cd3cee1f794dd6bd61b3485f8cd28ec42"
  ],
  "author": {
    "name": "Jaebaek Seo",
    "email": "jaebaek@google.com",
    "time": "Tue Oct 26 17:20:58 2021 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Oct 26 17:20:58 2021 -0400"
  },
  "message": "Add spirv-opt pass to replace descriptor accesses based on variable indices (#4574)\n\nThis commit adds a spirv-opt pass to replace accesses to\r\ndescriptor array based on variable indices with constant\r\nelements.\r\n\r\nBefore:\r\n```\r\n%descriptor \u003d OpVariable %_ptr_array_Image Uniform\r\n...\r\n%ac \u003d OpAccessChain %_ptr_Image %descriptor %variable_index\r\n(some image instructions using %ac)\r\n```\r\nAfter:\r\n```\r\n%descriptor \u003d OpVariable %_ptr_array_Image Uniform\r\n...\r\nOpSwitch %variable_index 0 %case0 1 %case1 ...\r\n...\r\n%case0 \u003d OpLabel\r\n%ac \u003d OpAccessChain %_ptr_Image %descriptor %uint_0\r\n...\r\n%case1 \u003d OpLabel\r\n%ac \u003d OpAccessChain %_ptr_Image %descriptor %uint_1\r\n...\r\n(use OpPhi for value with concrete type)\r\n```",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b616654e358d94da4255639609fb08043c137ef4",
      "old_mode": 33188,
      "old_path": "Android.mk",
      "new_id": "bc748e535b26bf72edbb75201993395e16c8af20",
      "new_mode": 33188,
      "new_path": "Android.mk"
    },
    {
      "type": "modify",
      "old_id": "4bf3f79e0c94a2f6b6ed435b1aa3a14816d1dc50",
      "old_mode": 33188,
      "old_path": "BUILD.gn",
      "new_id": "309d51373ba9e61c02d0bdc10d091e933313b2a0",
      "new_mode": 33188,
      "new_path": "BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "42eb6442ec16428e59ae5d5b9f1d42203d7cd293",
      "old_mode": 33188,
      "old_path": "include/spirv-tools/optimizer.hpp",
      "new_id": "21059cbe356148514d22a112b1caa5e6650a02d0",
      "new_mode": 33188,
      "new_path": "include/spirv-tools/optimizer.hpp"
    },
    {
      "type": "modify",
      "old_id": "63af5c1dadd4ff67c9c809b9f32724ca5e6c3e84",
      "old_mode": 33188,
      "old_path": "source/opt/CMakeLists.txt",
      "new_id": "7d522fb5e6a32cb1b302e5868c3c0235b4c47b60",
      "new_mode": 33188,
      "new_path": "source/opt/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "4bf026efd8e2448e3d6aca1a83a58898c2515626",
      "old_mode": 33188,
      "old_path": "source/opt/decoration_manager.cpp",
      "new_id": "2146c359d6935b85956cb090b59ac3e770d22a9c",
      "new_mode": 33188,
      "new_path": "source/opt/decoration_manager.cpp"
    },
    {
      "type": "modify",
      "old_id": "b753e6be1d6010366b26644916b3af8500d7e17c",
      "old_mode": 33188,
      "old_path": "source/opt/decoration_manager.h",
      "new_id": "fe78f2ce688f4586e29c26ad2aa999a30d85504c",
      "new_mode": 33188,
      "new_path": "source/opt/decoration_manager.h"
    },
    {
      "type": "modify",
      "old_id": "5e950069dadd34ccee20fc312fe26372dbce962e",
      "old_mode": 33188,
      "old_path": "source/opt/desc_sroa.cpp",
      "new_id": "0b83937054ab490a6a60938228ad587c4456f693",
      "new_mode": 33188,
      "new_path": "source/opt/desc_sroa.cpp"
    },
    {
      "type": "modify",
      "old_id": "cd72fd30197ebb827e5748507ac3536370c98457",
      "old_mode": 33188,
      "old_path": "source/opt/desc_sroa.h",
      "new_id": "70fd381af305f7f7b8db3c5f4a7ab4e15455d0b6",
      "new_mode": 33188,
      "new_path": "source/opt/desc_sroa.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1954e2cc36bf5849bef1e5222d7ae98577886de8",
      "new_mode": 33188,
      "new_path": "source/opt/desc_sroa_util.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2f45c0c2f4f9f774b339937824e43aa2a84f1bf5",
      "new_mode": 33188,
      "new_path": "source/opt/desc_sroa_util.h"
    },
    {
      "type": "modify",
      "old_id": "990be2e4360a6f12815333bdeed673338d33db31",
      "old_mode": 33188,
      "old_path": "source/opt/optimizer.cpp",
      "new_id": "e74db26f0c7d6c6ffc960ec7138ca6c30b12aaaf",
      "new_mode": 33188,
      "new_path": "source/opt/optimizer.cpp"
    },
    {
      "type": "modify",
      "old_id": "da837f2ab849deb330079ef2a3dc8cae61441a3c",
      "old_mode": 33188,
      "old_path": "source/opt/passes.h",
      "new_id": "f3c30d578bf5cea9fe5679c4a0e8eb31214c1523",
      "new_mode": 33188,
      "new_path": "source/opt/passes.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1082e679b6e1538c798fd342132b47b6066b71b5",
      "new_mode": 33188,
      "new_path": "source/opt/replace_desc_array_access_using_var_index.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e18222c858f36f423078eced372f538440016364",
      "new_mode": 33188,
      "new_path": "source/opt/replace_desc_array_access_using_var_index.h"
    },
    {
      "type": "modify",
      "old_id": "11299755cf11c1515464ac72d39c994ae383219f",
      "old_mode": 33188,
      "old_path": "test/opt/CMakeLists.txt",
      "new_id": "bc44e8d6e6afb7d32f993b9445aaaeaa52ce8507",
      "new_mode": 33188,
      "new_path": "test/opt/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ca6258126587e994e034416ebeb0c060446fd6b6",
      "new_mode": 33188,
      "new_path": "test/opt/replace_desc_array_access_using_var_index_test.cpp"
    },
    {
      "type": "modify",
      "old_id": "d5036fc30277f71b86139594dfcc05775c092508",
      "old_mode": 33188,
      "old_path": "tools/opt/opt.cpp",
      "new_id": "04f81b8c1a6426513e13de6e1bba2bd30de2197f",
      "new_mode": 33188,
      "new_path": "tools/opt/opt.cpp"
    }
  ]
}
