)]}'
{
  "commit": "a8b8e9b12a9740d71cff2fa65d47825b74f72c37",
  "tree": "301275759cf145711175992a503fcc7d710c2d2f",
  "parents": [
    "6d4c343ee5db18f039aeb3e07ff8d3c1fd37c3a0"
  ],
  "author": {
    "name": "Aart Bik",
    "email": "ajcbik@google.com",
    "time": "Tue Jan 09 11:01:02 2018 -0800"
  },
  "committer": {
    "name": "Aart Bik",
    "email": "ajcbik@google.com",
    "time": "Tue Jan 16 09:44:28 2018 -0800"
  },
  "message": "Improve code sinking near \"always throwing\" method calls\n\nRationale:\nWith simple dex bytecode analysis, the inliner marks methods\nthat always throw to help subsequent code sinking. This reduces\noverhead of non-nullable enforcing calls found in e.g the Kotlin\nruntime library (1%-2% improvement on tree microbenchmark, about\n5% on Denis\u0027 benchmark).\n\nTest: test-art-host test-art-target\n\nChange-Id: I45348f049721476828eb5443738021720d2857c0\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "28f481670cd9df48077c0b65face6f24d8b434c6",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/code_generator_arm64.cc",
      "new_id": "13bbffa1e3e8a828259d950ecf49240acac1395b",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/code_generator_arm64.cc"
    },
    {
      "type": "modify",
      "old_id": "f1ad4e187e29d57f96aa2c870669e8b783e91721",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/code_generator_arm_vixl.cc",
      "new_id": "577fe00dcd10900280077d7c435cde439e365114",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/code_generator_arm_vixl.cc"
    },
    {
      "type": "modify",
      "old_id": "c8bd5d4fc899a0cf2557572b500fba5ecb66f48e",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/code_generator_mips.cc",
      "new_id": "5c8e46ed1933c39039effbfa49ce79cca768dace",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/code_generator_mips.cc"
    },
    {
      "type": "modify",
      "old_id": "bbdc3be5c1f1340ba33e3622118aa6ddce9070dc",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/code_generator_mips64.cc",
      "new_id": "bcfe051c9085d9b1fd6974d66861a01444c7b14b",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/code_generator_mips64.cc"
    },
    {
      "type": "modify",
      "old_id": "537e97aacf7f78bfbbcd3ef8fc1c6fada2fa9384",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/code_generator_x86.cc",
      "new_id": "cbe9e0a35c246bd55a36e1fdd2f497914daa7613",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/code_generator_x86.cc"
    },
    {
      "type": "modify",
      "old_id": "4a6428592ed6997c31acf11aa85d222e1293d2b5",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/code_generator_x86_64.cc",
      "new_id": "510eec4f30dd721f465bae8c6bb1c360a633113a",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/code_generator_x86_64.cc"
    },
    {
      "type": "modify",
      "old_id": "d8ebac95a8b2eef21b74d487d5739c804c029e8a",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/code_sinking.cc",
      "new_id": "f4760d661f91d6480aa624b94f76795a550ad584",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/code_sinking.cc"
    },
    {
      "type": "modify",
      "old_id": "3cc7b0e78d7b2328c275e63369069b07a053349f",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/dead_code_elimination.cc",
      "new_id": "cca1055ac8e828f94c5ff0ef6eac5bdb1edc419f",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/dead_code_elimination.cc"
    },
    {
      "type": "modify",
      "old_id": "84fd890eee08ee827d090a1e4440b700f37d7286",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/dead_code_elimination.h",
      "new_id": "92a7f562e12b497975467f7aa204559d468c1f0c",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/dead_code_elimination.h"
    },
    {
      "type": "modify",
      "old_id": "b1ac027a6898233144632beb605f817ea39728f8",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/graph_checker.cc",
      "new_id": "c88baa8610f5caf5b8e1626a8fab61cc0ac4df3f",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/graph_checker.cc"
    },
    {
      "type": "modify",
      "old_id": "81a75584a40bd0a5d97616dbbc679373ad78df87",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/inliner.cc",
      "new_id": "41e4bbe4ff6a5b43abf00502292f48c1f794b8e5",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/inliner.cc"
    },
    {
      "type": "modify",
      "old_id": "d4382c6b4c9c395623d2a6228dd2625722c74419",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/nodes.h",
      "new_id": "20479542078d458f5dc04ca7e9e740f527f97ef5",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/nodes.h"
    },
    {
      "type": "modify",
      "old_id": "32a94ab5e4b7c431f07aacedeeea106cc3dd1bf4",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/optimizing_compiler_stats.h",
      "new_id": "0023265e50de334cb2610ff7eaf51e1e3dafd9ba",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/optimizing_compiler_stats.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b0aad4deb5bb3fb6b422e222ec14bf5e4b99babe",
      "new_mode": 33188,
      "new_path": "test/672-checker-throw-method/expected.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "250810be1511b069ae115b83a373220f96b536f7",
      "new_mode": 33188,
      "new_path": "test/672-checker-throw-method/info.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ceb5eb784c95fa5c7061f7d314baaad64ad8face",
      "new_mode": 33188,
      "new_path": "test/672-checker-throw-method/src/Main.java"
    }
  ]
}
