)]}'
{
  "commit": "fe10239f92f4539e9050da375dab095328fec196",
  "tree": "93eb29f5bbadde4ac575ff6ef7c86bc6bdc84d56",
  "parents": [
    "1f03ac10270a7ba5cd1b5b1969cab298503598c8"
  ],
  "author": {
    "name": "Alastair Donaldson",
    "email": "afdx@google.com",
    "time": "Thu Feb 06 16:54:34 2020 +0000"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Feb 06 16:54:34 2020 +0000"
  },
  "message": "spirv-fuzz: Add fuzzer passes to add loads/stores (#3176)\n\nThis change adds fuzzer passes that sprinkle loads and stores into a\r\nmodule at random, with stores restricted to occur in either dead\r\nblocks, or to use pointers for which it is known that the pointee\r\nvalue does not influence the module\u0027s overall behaviour.\r\n\r\nThe change also generalises the VariableValueIsArbitrary fact to\r\nPointeeValueIsIrrelevant, to allow stores through access chains or\r\nobject copies of variables whose values are known to be irrelevant.\r\n\r\nThe change includes some other minor refactorings.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b3c197034adc02f7cba5f29ed141bc7005f2721f",
      "old_mode": 33188,
      "old_path": "source/fuzz/CMakeLists.txt",
      "new_id": "7166d5c441bf2e7a2bd5052fd9d2e01a3ed1b63d",
      "new_mode": 33188,
      "new_path": "source/fuzz/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "a7b431120a2220d812ee066ffe5e2797e7496ee0",
      "old_mode": 33188,
      "old_path": "source/fuzz/fact_manager.cpp",
      "new_id": "486e8f546ff57c05d0fc646b466eb988e50a34b1",
      "new_mode": 33188,
      "new_path": "source/fuzz/fact_manager.cpp"
    },
    {
      "type": "modify",
      "old_id": "117ed1c6171f71c4f232c9d9c8e236fda2384214",
      "old_mode": 33188,
      "old_path": "source/fuzz/fact_manager.h",
      "new_id": "55cbfa04eff9984c24f8253e50e506289354fce4",
      "new_mode": 33188,
      "new_path": "source/fuzz/fact_manager.h"
    },
    {
      "type": "modify",
      "old_id": "8caa85303764030d69eb1549ac67908919f184d2",
      "old_mode": 33188,
      "old_path": "source/fuzz/fuzzer.cpp",
      "new_id": "c66d8e56950849d0cbca6217c1b62b52db071c73",
      "new_mode": 33188,
      "new_path": "source/fuzz/fuzzer.cpp"
    },
    {
      "type": "modify",
      "old_id": "0fb275851e4bac540232d8f61a5561b22e14b442",
      "old_mode": 33188,
      "old_path": "source/fuzz/fuzzer_context.cpp",
      "new_id": "b84227e94fe5184e06cf44849c69ea8dc2b6095c",
      "new_mode": 33188,
      "new_path": "source/fuzz/fuzzer_context.cpp"
    },
    {
      "type": "modify",
      "old_id": "2c48ac5a157799c0b79c7f62103069d28a709836",
      "old_mode": 33188,
      "old_path": "source/fuzz/fuzzer_context.h",
      "new_id": "21f8a6279a76b091b7c7bf6fc2a5b390276f71c0",
      "new_mode": 33188,
      "new_path": "source/fuzz/fuzzer_context.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7509bce4bf1e9637c4f27ebd310ebed29e43a2fd",
      "new_mode": 33188,
      "new_path": "source/fuzz/fuzzer_pass_add_loads.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "125bc5dbfd01adb5d3d99f0d3b8804dd373027ae",
      "new_mode": 33188,
      "new_path": "source/fuzz/fuzzer_pass_add_loads.h"
    },
    {
      "type": "modify",
      "old_id": "ef002fb00b38ea96dc94d470af55dcf077f871ae",
      "old_mode": 33188,
      "old_path": "source/fuzz/fuzzer_pass_add_local_variables.h",
      "new_id": "eed36657ffdc81f06668367873bcc27f7b93859d",
      "new_mode": 33188,
      "new_path": "source/fuzz/fuzzer_pass_add_local_variables.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "120c47322693d41698408aed1a002dd1eb8ca921",
      "new_mode": 33188,
      "new_path": "source/fuzz/fuzzer_pass_add_stores.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9daa9e0f2e32cf85e747f5a0dc52974960e190d3",
      "new_mode": 33188,
      "new_path": "source/fuzz/fuzzer_pass_add_stores.h"
    },
    {
      "type": "modify",
      "old_id": "6ff42ca79b73902095a26ba2d63115bedf9b2df3",
      "old_mode": 33188,
      "old_path": "source/fuzz/fuzzer_pass_apply_id_synonyms.cpp",
      "new_id": "e932017df11226c81db63ac007fe5ac2ed9fbf42",
      "new_mode": 33188,
      "new_path": "source/fuzz/fuzzer_pass_apply_id_synonyms.cpp"
    },
    {
      "type": "modify",
      "old_id": "35b15a38a321cdfc4e6bf1525c174e5ab3cdd2a7",
      "old_mode": 33188,
      "old_path": "source/fuzz/fuzzer_pass_copy_objects.cpp",
      "new_id": "48ed58854f8b8f579ebc552ae9ec9e667dc4ed0d",
      "new_mode": 33188,
      "new_path": "source/fuzz/fuzzer_pass_copy_objects.cpp"
    },
    {
      "type": "modify",
      "old_id": "75530b10e3e31e0544b6dca17d43cc8441cc6c7b",
      "old_mode": 33188,
      "old_path": "source/fuzz/fuzzer_pass_donate_modules.cpp",
      "new_id": "83cb18cffef6c8a04fe40e1e273305c009535347",
      "new_mode": 33188,
      "new_path": "source/fuzz/fuzzer_pass_donate_modules.cpp"
    },
    {
      "type": "modify",
      "old_id": "b81b17dabae3d0b892953fafb19fe0d145acb517",
      "old_mode": 33188,
      "old_path": "source/fuzz/fuzzer_util.cpp",
      "new_id": "1af3fc8badf373405a958736b9da91c5ac00ca08",
      "new_mode": 33188,
      "new_path": "source/fuzz/fuzzer_util.cpp"
    },
    {
      "type": "modify",
      "old_id": "1cbc59fcdb5ce7eb72946c12136ed357e5d17f9c",
      "old_mode": 33188,
      "old_path": "source/fuzz/fuzzer_util.h",
      "new_id": "3e9c6911a1a538aa4651acda96f4e936db1aca01",
      "new_mode": 33188,
      "new_path": "source/fuzz/fuzzer_util.h"
    },
    {
      "type": "modify",
      "old_id": "67b362a81724b7384131a22ade118763964aff48",
      "old_mode": 33188,
      "old_path": "source/fuzz/protobufs/spvtoolsfuzz.proto",
      "new_id": "08af3e046b0bc75ea42fa34154ab246db5bdf693",
      "new_mode": 33188,
      "new_path": "source/fuzz/protobufs/spvtoolsfuzz.proto"
    },
    {
      "type": "modify",
      "old_id": "1ed43183903cc5c1779ab25575b9ce8caa771238",
      "old_mode": 33188,
      "old_path": "source/fuzz/transformation.cpp",
      "new_id": "7d32dc06409675bda02efa6938b70441583dbafa",
      "new_mode": 33188,
      "new_path": "source/fuzz/transformation.cpp"
    },
    {
      "type": "modify",
      "old_id": "b013d9441c373d7993bd06460fcbdb6300272f89",
      "old_mode": 33188,
      "old_path": "source/fuzz/transformation_add_function.cpp",
      "new_id": "120b3df9f3887f911bfff95ea43e8f0f42f5d48c",
      "new_mode": 33188,
      "new_path": "source/fuzz/transformation_add_function.cpp"
    },
    {
      "type": "modify",
      "old_id": "c08517f9a5b7353b30093385ab795e103cdec413",
      "old_mode": 33188,
      "old_path": "source/fuzz/transformation_add_global_variable.cpp",
      "new_id": "7af5888608c813554aa02930c55229fd33ab0ac6",
      "new_mode": 33188,
      "new_path": "source/fuzz/transformation_add_global_variable.cpp"
    },
    {
      "type": "modify",
      "old_id": "406c915715dba58d6ae21283c65555d5225721a3",
      "old_mode": 33188,
      "old_path": "source/fuzz/transformation_add_global_variable.h",
      "new_id": "920ac45dc4a56c3f6ec57c5ed069f419495e6cd2",
      "new_mode": 33188,
      "new_path": "source/fuzz/transformation_add_global_variable.h"
    },
    {
      "type": "modify",
      "old_id": "cdaea53bbf1d445fe353f8b0fd2f2474505f7ed1",
      "old_mode": 33188,
      "old_path": "source/fuzz/transformation_add_local_variable.cpp",
      "new_id": "69e536df16d2cd82dfb9223be760639b1a7fb75d",
      "new_mode": 33188,
      "new_path": "source/fuzz/transformation_add_local_variable.cpp"
    },
    {
      "type": "modify",
      "old_id": "6a97b7152e6e2009b000df63f6d53945ed903b82",
      "old_mode": 33188,
      "old_path": "source/fuzz/transformation_add_local_variable.h",
      "new_id": "b8e00ddfb435648ddfa99c967a14052b1b14432a",
      "new_mode": 33188,
      "new_path": "source/fuzz/transformation_add_local_variable.h"
    },
    {
      "type": "modify",
      "old_id": "7a3aff145858f7669dfd9afc69041b63cf048b46",
      "old_mode": 33188,
      "old_path": "source/fuzz/transformation_composite_construct.cpp",
      "new_id": "9c63c1d98aec4967b53bcf54e5539a6afd8c1ab7",
      "new_mode": 33188,
      "new_path": "source/fuzz/transformation_composite_construct.cpp"
    },
    {
      "type": "modify",
      "old_id": "af1e81c37e96e429d13aee692e40c619873a8238",
      "old_mode": 33188,
      "old_path": "source/fuzz/transformation_copy_object.cpp",
      "new_id": "bfdced37fecd90ab21a84b01911e0c9200677adc",
      "new_mode": 33188,
      "new_path": "source/fuzz/transformation_copy_object.cpp"
    },
    {
      "type": "modify",
      "old_id": "ac5e978df692d87a25c175a2b0c56576c044e310",
      "old_mode": 33188,
      "old_path": "source/fuzz/transformation_copy_object.h",
      "new_id": "9e9c26a34168a2692c95c5f11ddfec8f1c16021e",
      "new_mode": 33188,
      "new_path": "source/fuzz/transformation_copy_object.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ab6b8acce8b031fc822c93db78f54f26086bc0d2",
      "new_mode": 33188,
      "new_path": "source/fuzz/transformation_load.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ff99016734f317af535e949eb7be83dbc921e948",
      "new_mode": 33188,
      "new_path": "source/fuzz/transformation_load.h"
    },
    {
      "type": "modify",
      "old_id": "7bbac548395c0735833bc395fd77f2328d9629d4",
      "old_mode": 33188,
      "old_path": "source/fuzz/transformation_outline_function.cpp",
      "new_id": "01d1c45834c0bd347fa26854e950b332e5341301",
      "new_mode": 33188,
      "new_path": "source/fuzz/transformation_outline_function.cpp"
    },
    {
      "type": "modify",
      "old_id": "79ba012829f035a71b2db8ce35ec16399415c93f",
      "old_mode": 33188,
      "old_path": "source/fuzz/transformation_replace_id_with_synonym.cpp",
      "new_id": "88c977a24002879e04face76c91ed96562a08555",
      "new_mode": 33188,
      "new_path": "source/fuzz/transformation_replace_id_with_synonym.cpp"
    },
    {
      "type": "modify",
      "old_id": "c21673dcdd035c6c648a7b2388f3fbc12f6f0690",
      "old_mode": 33188,
      "old_path": "source/fuzz/transformation_replace_id_with_synonym.h",
      "new_id": "48132c1e0fb900b6f2683cffb3e7d56a57f628b4",
      "new_mode": 33188,
      "new_path": "source/fuzz/transformation_replace_id_with_synonym.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7cb761126fcaba0509a630a4932b3ea2efa1e13c",
      "new_mode": 33188,
      "new_path": "source/fuzz/transformation_store.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "699afdda0360b7f1c469d8ba8ce436200fcf60f8",
      "new_mode": 33188,
      "new_path": "source/fuzz/transformation_store.h"
    },
    {
      "type": "modify",
      "old_id": "d371326c11ad18375b7c91dba915a73e23e9fdbe",
      "old_mode": 33188,
      "old_path": "test/fuzz/CMakeLists.txt",
      "new_id": "29d33ec60c9f7bcb67ba01e11340aa02b40de8b8",
      "new_mode": 33188,
      "new_path": "test/fuzz/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "040d27ca5ef1b748592ae78b27188363fed437e2",
      "old_mode": 33188,
      "old_path": "test/fuzz/transformation_add_function_test.cpp",
      "new_id": "aed12dc06a1a25731f66d63f8339dd20b6a7057c",
      "new_mode": 33188,
      "new_path": "test/fuzz/transformation_add_function_test.cpp"
    },
    {
      "type": "modify",
      "old_id": "7fb4fa086047c9ce43756f927a462f16ac331155",
      "old_mode": 33188,
      "old_path": "test/fuzz/transformation_add_global_variable_test.cpp",
      "new_id": "d43a2ae362f6c3dca208e2bfadc86363b022c69f",
      "new_mode": 33188,
      "new_path": "test/fuzz/transformation_add_global_variable_test.cpp"
    },
    {
      "type": "modify",
      "old_id": "465af41f1eb4ca03700faa37e5f24016d4730f51",
      "old_mode": 33188,
      "old_path": "test/fuzz/transformation_add_local_variable_test.cpp",
      "new_id": "fd7047f871a1113bc88cb236af4d285c0df13b1e",
      "new_mode": 33188,
      "new_path": "test/fuzz/transformation_add_local_variable_test.cpp"
    },
    {
      "type": "modify",
      "old_id": "a33f58de3e8cf980f7fa76e4c05ef174df151962",
      "old_mode": 33188,
      "old_path": "test/fuzz/transformation_copy_object_test.cpp",
      "new_id": "b85f75b4585161297c09812f7b3c5a2c60947dff",
      "new_mode": 33188,
      "new_path": "test/fuzz/transformation_copy_object_test.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1f728ffcfab57e1379e06729205a1cd8c58b88ae",
      "new_mode": 33188,
      "new_path": "test/fuzz/transformation_load_test.cpp"
    },
    {
      "type": "modify",
      "old_id": "7313538b09668b2f08dc7fa8161b866159df0403",
      "old_mode": 33188,
      "old_path": "test/fuzz/transformation_outline_function_test.cpp",
      "new_id": "40aaebc9a7709eaf38cd167c8698c80347d98a61",
      "new_mode": 33188,
      "new_path": "test/fuzz/transformation_outline_function_test.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3fb9b6154d43ea41ff2084fcc0d115cf6ed01570",
      "new_mode": 33188,
      "new_path": "test/fuzz/transformation_store_test.cpp"
    }
  ]
}
