)]}'
{
  "commit": "e4c7d8e748a278242bb8f73fc753ef7a3283cfa4",
  "tree": "96d5a8e4719d9d00bd6f466d04af92906e585abf",
  "parents": [
    "7be791aaaaa6459da4977d10b9034e687fcf4113"
  ],
  "author": {
    "name": "Steven Perron",
    "email": "stevenperron@google.com",
    "time": "Fri Sep 08 12:08:03 2017 -0400"
  },
  "committer": {
    "name": "David Neto",
    "email": "dneto@google.com",
    "time": "Mon Sep 18 17:01:36 2017 -0400"
  },
  "message": "Add strength reduction; for now replace multiply by power of 2\n\nCreate a new optimization pass, strength reduction, which will replace\ninteger multiplication by a constant power of 2 with an equivalent bit\nshift.  More changes could be added later.\n\n- Does not duplicate constants\n\n- Adds vector |Concat| utility function to a common test header.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5cfcdb9e128ed035591d0e0a708ea8c75913b272",
      "old_mode": 33188,
      "old_path": "include/spirv-tools/optimizer.hpp",
      "new_id": "d438eebac0fb7fa4c9ea145223ad7f3bfb05749e",
      "new_mode": 33188,
      "new_path": "include/spirv-tools/optimizer.hpp"
    },
    {
      "type": "modify",
      "old_id": "09b04691c387ff3ea982e7b9aaa7da9ffe7ac80c",
      "old_mode": 33188,
      "old_path": "source/opt/CMakeLists.txt",
      "new_id": "f91e5a215d9b567ce621ba64d9d832abecb3d062",
      "new_mode": 33188,
      "new_path": "source/opt/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "2e3133dd8dccece36ea901b62403885e403712b7",
      "old_mode": 33188,
      "old_path": "source/opt/optimizer.cpp",
      "new_id": "16600ba223cced157494f100b395225df49fe733",
      "new_mode": 33188,
      "new_path": "source/opt/optimizer.cpp"
    },
    {
      "type": "modify",
      "old_id": "c1fdd6a0d7a5400c829cfc9f3dd535d08a083438",
      "old_mode": 33188,
      "old_path": "source/opt/passes.h",
      "new_id": "572387fde7101b42afac401c67a7e25c85064400",
      "new_mode": 33188,
      "new_path": "source/opt/passes.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "58928c1795467c85237ebc2ea5eb03ebb4c98040",
      "new_mode": 33188,
      "new_path": "source/opt/strength_reduction_pass.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3d39d458c85a5ae7c5f12718f0e433df8099295e",
      "new_mode": 33188,
      "new_path": "source/opt/strength_reduction_pass.h"
    },
    {
      "type": "modify",
      "old_id": "8bb13c342441b40f00f62aa48d84bf2fb13be7b7",
      "old_mode": 33188,
      "old_path": "test/opt/CMakeLists.txt",
      "new_id": "64e46b8af429252c2240f0b192862e9b4e457b98",
      "new_mode": 33188,
      "new_path": "test/opt/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "c568c2bad0e74caf973ebe55a3c746b4b44eff44",
      "old_mode": 33188,
      "old_path": "test/opt/inline_test.cpp",
      "new_id": "8f3504465e818f1a9f7dd75202e5c71c0feec2f0",
      "new_mode": 33188,
      "new_path": "test/opt/inline_test.cpp"
    },
    {
      "type": "modify",
      "old_id": "cc55d5d0aeb6235c08ec27f98744667fbbd77d18",
      "old_mode": 33188,
      "old_path": "test/opt/local_single_block_elim.cpp",
      "new_id": "7d7559a70e42cc2cf29d51d6ad88f8ac2b2c5924",
      "new_mode": 33188,
      "new_path": "test/opt/local_single_block_elim.cpp"
    },
    {
      "type": "modify",
      "old_id": "a2a3b3c34ac912bdffd4ac2b048c009a5a967923",
      "old_mode": 33188,
      "old_path": "test/opt/pass_utils.h",
      "new_id": "dbf87c9efdf093a60cf3c2510cfbccd23dc97d96",
      "new_mode": 33188,
      "new_path": "test/opt/pass_utils.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "541be603b71dc8b24a6f660624b5cc96755d42c0",
      "new_mode": 33188,
      "new_path": "test/opt/strength_reduction_test.cpp"
    },
    {
      "type": "modify",
      "old_id": "f8bd520aa247df519c8626d087fdc98e1bd15d19",
      "old_mode": 33188,
      "old_path": "tools/opt/opt.cpp",
      "new_id": "1a5334758c7254da133ade2150f218942cf92ef3",
      "new_mode": 33188,
      "new_path": "tools/opt/opt.cpp"
    }
  ]
}
