)]}'
{
  "commit": "372f10e5b0b34e2bb6e2b79aeba6c441e14afd1f",
  "tree": "1f29c2467c8909ef0e0147f37f176caa1bcd2ccc",
  "parents": [
    "1b66fdf3f33c72dfdda4d31f6f17b6a0d8607402"
  ],
  "author": {
    "name": "Vladimir Marko",
    "email": "vmarko@google.com",
    "time": "Tue May 17 16:30:10 2016 +0100"
  },
  "committer": {
    "name": "Vladimir Marko",
    "email": "vmarko@google.com",
    "time": "Thu Jun 02 19:04:20 2016 +0100"
  },
  "message": "Refactor handling of input records.\n\nIntroduce HInstruction::GetInputRecords(), a new virtual\nfunction that returns an ArrayRef\u003c\u003e to all input records.\nImplement all other functions dealing with input records as\nwrappers around GetInputRecords(). Rewrite functions that\npreviously used multiple virtual calls to deal with input\nrecords, especially in loops, to prefetch the ArrayRef\u003c\u003e\nonly once for each instruction.  Besides avoiding all the\nextra calls, this also allows the compiler (clang++) to\nperform additional optimizations.\n\nThis speeds up the Nexus 5 boot image compilation by ~0.5s\n(4% of \"Compile Dex File\", 2% of dex2oat time) on AOSP ToT.\n\nChange-Id: Id8ebe0fb9405e38d918972a11bd724146e4ca578\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3b459c3ad145b6e4b7ff4d54cd30b271f1e05698",
      "old_mode": 33188,
      "old_path": "build/Android.gtest.mk",
      "new_id": "f73657cb0d3fdcc724f5da72b99c9e56033f5599",
      "new_mode": 33188,
      "new_path": "build/Android.gtest.mk"
    },
    {
      "type": "modify",
      "old_id": "6c6e5af0b2f38395b6d34f7685786c97d818e1fe",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/bounds_check_elimination.cc",
      "new_id": "703b132c3a834716f604a47ff42b3ac16c3020c7",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/bounds_check_elimination.cc"
    },
    {
      "type": "modify",
      "old_id": "08670a0d8295c31324369c86cbbbb5e34c8f1fa8",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/code_generator.cc",
      "new_id": "6e851bf1baf74625f7e758f08818e807a33e8113",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/code_generator.cc"
    },
    {
      "type": "modify",
      "old_id": "7ddd677fd09e90d5427ae5bf66080fe301e55422",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/code_generator_arm.cc",
      "new_id": "6e74d082e055407fc638a05453fd37c2d4125ca0",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/code_generator_arm.cc"
    },
    {
      "type": "modify",
      "old_id": "362957bb319b5b4004cf943c8aaa4018212f849f",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/code_generator_arm64.cc",
      "new_id": "5560ae2c74ec868e7a5ae33c771aaa467f00a0d6",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/code_generator_arm64.cc"
    },
    {
      "type": "modify",
      "old_id": "c3f425ac0d7d3d9771cf576bf70371786fe26fa9",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/code_generator_mips.cc",
      "new_id": "928d685fbea54fcbfac80602fee782b16ab7546a",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/code_generator_mips.cc"
    },
    {
      "type": "modify",
      "old_id": "bb6df500cdaffba2edd999f086da4c5da294d14b",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/code_generator_mips64.cc",
      "new_id": "8c73e350f65cef0aebdb45db11bc0a90ac309dd7",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/code_generator_mips64.cc"
    },
    {
      "type": "modify",
      "old_id": "b95c806acf45226dfd46611b21426ed565d2ba57",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/code_generator_x86.cc",
      "new_id": "8c643a05c850d4ad85b13dfdb0108dfc92db34f6",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/code_generator_x86.cc"
    },
    {
      "type": "modify",
      "old_id": "054891ba48c3e8543dc474bea5d42f9052b033b3",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/code_generator_x86_64.cc",
      "new_id": "72de3e6e35d7f991ff2cbecb66f89a1bfa1c6ecc",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/code_generator_x86_64.cc"
    },
    {
      "type": "modify",
      "old_id": "968e26724d5012ca242416772c414519fac10a62",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/graph_checker.cc",
      "new_id": "2bd2403dd673a2ec18a088aea104c7688aa6467d",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/graph_checker.cc"
    },
    {
      "type": "modify",
      "old_id": "6aec463549df77af72d30f8d62397da975bf67aa",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/graph_visualizer.cc",
      "new_id": "3084a4ff2bccc5351a917a02ae25701e08279e7f",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/graph_visualizer.cc"
    },
    {
      "type": "modify",
      "old_id": "c06d19dce05c89dcd5907c6f940c0ce2c3d9e7ea",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/induction_var_analysis.cc",
      "new_id": "0a5cf80e9d7bd753acac3b7e39b0bcd689f9a6cd",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/induction_var_analysis.cc"
    },
    {
      "type": "modify",
      "old_id": "fd79901ffc2fc9d6b8fd87409fdc702322fc0341",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/instruction_simplifier.cc",
      "new_id": "011983fb70633bcf9a97aa7ccf85a7d5b43fce2f",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/instruction_simplifier.cc"
    },
    {
      "type": "modify",
      "old_id": "7543cd6c54fb2783bb52241bb4816acd5ade4c96",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/licm.cc",
      "new_id": "a0ded74d6d90029d62e24dbb2c74c72544197e53",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/licm.cc"
    },
    {
      "type": "modify",
      "old_id": "60329ccff20258087d6c73a3936bfec4f30db7e7",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/nodes.cc",
      "new_id": "a1d243ec5683b43205092f8ea4037b35bcec3680",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/nodes.cc"
    },
    {
      "type": "modify",
      "old_id": "c08323a0c6358b182c5bc470ea437bb9d7e491e6",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/nodes.h",
      "new_id": "dc0fab55928da3048968ebb7b29813b9fb413f68",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/nodes.h"
    },
    {
      "type": "modify",
      "old_id": "737aece9c817d5a5928ffbc2a8c7375d39fe0c2b",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/nodes_arm64.h",
      "new_id": "06b073c3e2abdb946b5531ef20a4e6d7398389a7",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/nodes_arm64.h"
    },
    {
      "type": "modify",
      "old_id": "bdcf54a6fb73d78af8a92c7fa42ed6b6cfbf5b6f",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/nodes_shared.h",
      "new_id": "f2d5cf325376051609c86d343c3f9a915acb9af6",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/nodes_shared.h"
    },
    {
      "type": "modify",
      "old_id": "dafbd3d7d1c1952a4fb3ba2593baad8759d7b75e",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/pc_relative_fixups_x86.cc",
      "new_id": "cb2fc0a19a869c515e29464faf2abc7c6bff0884",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/pc_relative_fixups_x86.cc"
    },
    {
      "type": "modify",
      "old_id": "dcc89e8d8f7a1e70c1af44e3973dbd01ee8c723a",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/prepare_for_register_allocation.cc",
      "new_id": "c941c0c086c1b485b051df41736ef9177bb7e1be",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/prepare_for_register_allocation.cc"
    },
    {
      "type": "modify",
      "old_id": "ee32518c01b204a5b5eb15d9e478d5627a28fed3",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/pretty_printer.h",
      "new_id": "f9bef6809f349c52d73c8740ecd54dd3839eb372",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/pretty_printer.h"
    },
    {
      "type": "modify",
      "old_id": "f2394f605a7555b72628627fed6061265de08d40",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/reference_type_propagation.cc",
      "new_id": "9c3a719a0189faf555f0ad093233ed5a088738ea",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/reference_type_propagation.cc"
    },
    {
      "type": "modify",
      "old_id": "4405b803e071ab1d0143bac55b62a52189bb2ff3",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/register_allocator.cc",
      "new_id": "4a6b835e80d02725134e344b8d2a5c9c441eb3fd",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/register_allocator.cc"
    },
    {
      "type": "modify",
      "old_id": "f96ca321c99d0b3d24b3e877d3afd11e3dda21ed",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/ssa_builder.cc",
      "new_id": "ed50c69b5d8a7be48484b08545a3c343c3e8bb70",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/ssa_builder.cc"
    },
    {
      "type": "modify",
      "old_id": "36e0d993d1ab81a98e896cb84f63429fc9876556",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/ssa_liveness_analysis.cc",
      "new_id": "212d93532c8cb4eb6ecaa7d31488607363fe05eb",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/ssa_liveness_analysis.cc"
    },
    {
      "type": "modify",
      "old_id": "1fcba8bc776eabac35ab660723c01df5198517b6",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/ssa_liveness_analysis.h",
      "new_id": "dc98864d9b82b9aab4957655a0e7d862fb7f1636",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/ssa_liveness_analysis.h"
    },
    {
      "type": "modify",
      "old_id": "c67612e651f1a35a2935632037357186e4b82d86",
      "old_mode": 33188,
      "old_path": "compiler/optimizing/ssa_phi_elimination.cc",
      "new_id": "b1ec99ab8e14ec4f0a28e168f5e3f7147ac4f56b",
      "new_mode": 33188,
      "new_path": "compiler/optimizing/ssa_phi_elimination.cc"
    },
    {
      "type": "modify",
      "old_id": "5c33639a6a0f5cc217d3782260fa6588b3656998",
      "old_mode": 33188,
      "old_path": "compiler/utils/array_ref.h",
      "new_id": "8dc9ab4a5eda114d6e85de3e749b1c77bd59ad13",
      "new_mode": 33188,
      "new_path": "compiler/utils/array_ref.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6297b88e69d97b1123f0e3c4097261285333ac77",
      "new_mode": 33188,
      "new_path": "compiler/utils/transform_array_ref.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2593fade2f5f5defce74472909f9a54fcc7dd13c",
      "new_mode": 33188,
      "new_path": "compiler/utils/transform_array_ref_test.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f0769d480080263564bcc1985770bb03e83849bb",
      "new_mode": 33188,
      "new_path": "compiler/utils/transform_iterator.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "dbb4779330aea354f76dd7fad48c2c7221ee4588",
      "new_mode": 33188,
      "new_path": "compiler/utils/transform_iterator_test.cc"
    }
  ]
}
