)]}'
{
  "log": [
    {
      "commit": "8f08f9e84b0b784fff8a636989bdb24bfaf93bbf",
      "tree": "333a3ebeaef249cb7b9daa20552848763f1b835f",
      "parents": [
        "c5bee2a133f6505b8004075288b19efb99e24b4f"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Jul 22 11:27:39 2015 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Jul 22 11:27:39 2015 -0700"
      },
      "message": "Replaced CHECK with EXPECT in tests.\n\nDoh!\n\nChange-Id: Ibef45031146215034647c7eaab4065c766d6fb86\n"
    },
    {
      "commit": "c5bee2a133f6505b8004075288b19efb99e24b4f",
      "tree": "5d02e757bb0de3ceceec5979f8ae80712679799c",
      "parents": [
        "32d7806b34efda2af0f5a0eaaa384c781565d364",
        "9b0096ba77e7e61bc2dcbbf954831dcae54a6c27"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jul 22 17:20:08 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 22 17:20:08 2015 +0000"
      },
      "message": "Merge \"Revert \"Fixes and improvements in ReferenceTypePropagation\"\""
    },
    {
      "commit": "32d7806b34efda2af0f5a0eaaa384c781565d364",
      "tree": "365d25bc21b5af5ec6dfab828de2d28acbdb8b26",
      "parents": [
        "d77aa00c583cc72f96bc4522d02d2070dcd72f1c",
        "7733bd644ac71f86d4b30a319624b23343882e53"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jul 22 17:19:20 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 22 17:19:20 2015 +0000"
      },
      "message": "Merge \"Revert \"Use the object class as top in reference type propagation\"\""
    },
    {
      "commit": "7733bd644ac71f86d4b30a319624b23343882e53",
      "tree": "7f897d8b0545e43da6b6059718685a8e396b3b70",
      "parents": [
        "3fabec7a25d151b26ba7de13615bbead0dd615a6"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jul 22 17:14:50 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jul 22 17:14:50 2015 +0000"
      },
      "message": "Revert \"Use the object class as top in reference type propagation\"\n\nThis reverts commit 3fabec7a25d151b26ba7de13615bbead0dd615a6.\n\nChange-Id: Id8614f6b6e3e0e4c9caeb9f771e4c145d9fec64f\n"
    },
    {
      "commit": "9b0096ba77e7e61bc2dcbbf954831dcae54a6c27",
      "tree": "1d46845e8c5734683077357bf18743d5eec466e2",
      "parents": [
        "b0d5fc0ac139da4aaa1440263416b9bde05630b0"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jul 22 17:14:32 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jul 22 17:14:32 2015 +0000"
      },
      "message": "Revert \"Fixes and improvements in ReferenceTypePropagation\"\n\nThis reverts commit b0d5fc0ac139da4aaa1440263416b9bde05630b0.\n\nChange-Id: Iea8adfc0bd4cb7ee2b292278b8bac80a259acbd1\n"
    },
    {
      "commit": "ff6e79c97f25692fdaae503e59f4f9e19bbdb4c0",
      "tree": "7b0bbece8063133742da60729f7b5191842cc0cf",
      "parents": [
        "0e126bb7c6c001c63f104797912a38cbe619073c",
        "3f307f3e88140b792c20b9c3366afe059c77909f"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Jul 22 16:13:43 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 22 16:13:43 2015 +0000"
      },
      "message": "Merge \"Added unit tests to LICM.\""
    },
    {
      "commit": "60f4804fc2dd9abb008a08fc2209a943bedef135",
      "tree": "9e8ec820e7f9cf9b370aea44dcf814ecc4f813bf",
      "parents": [
        "e6e38ce021ef5e0d326d76172307c000e0e6fab3",
        "1c4ccea094965fb5ba491ace846d154f00d30055"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jul 22 14:42:54 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 22 14:42:54 2015 +0000"
      },
      "message": "Merge \"Delete extraneous prefix `SideEffects::` in `nodes.h`.\""
    },
    {
      "commit": "1c4ccea094965fb5ba491ace846d154f00d30055",
      "tree": "9de1b2a13bcb6a50b6a54f976509691f090bc965",
      "parents": [
        "236d0a3c35a369da99bb1f0c617a29f23b2f4df8"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Wed Jul 22 11:32:58 2015 +0100"
      },
      "committer": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Wed Jul 22 14:13:54 2015 +0000"
      },
      "message": "Delete extraneous prefix `SideEffects::` in `nodes.h`.\n\nChange-Id: Ic0a8442d20323df0d9db9e6a1d26c07bd903a13d\n"
    },
    {
      "commit": "e6e38ce021ef5e0d326d76172307c000e0e6fab3",
      "tree": "c7478d676ab6f0c229f154ab06fbce56f7ae507b",
      "parents": [
        "a3073e24e00274d2957771518be5ecfa74591744",
        "3fabec7a25d151b26ba7de13615bbead0dd615a6"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jul 22 11:20:14 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 22 11:20:14 2015 +0000"
      },
      "message": "Merge \"Use the object class as top in reference type propagation\""
    },
    {
      "commit": "a3073e24e00274d2957771518be5ecfa74591744",
      "tree": "0b07b7c0b70bb9e3c89b9b7c1ea58b59079be9c3",
      "parents": [
        "236d0a3c35a369da99bb1f0c617a29f23b2f4df8",
        "b0d5fc0ac139da4aaa1440263416b9bde05630b0"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jul 22 11:20:01 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 22 11:20:01 2015 +0000"
      },
      "message": "Merge \"Fixes and improvements in ReferenceTypePropagation\""
    },
    {
      "commit": "3f307f3e88140b792c20b9c3366afe059c77909f",
      "tree": "16a33a7b7883bb3cd3ec38e218315b3f69dfa66e",
      "parents": [
        "236d0a3c35a369da99bb1f0c617a29f23b2f4df8"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Jul 21 18:30:18 2015 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Jul 21 18:30:18 2015 -0700"
      },
      "message": "Added unit tests to LICM.\n\nRationale:\nLICM did not have its own unit test yet, and it was a good\ntime to ensure that the improved side effect analysis does\nwhat it is supposed to. Also, a nice way for me to get\nfamiliar with the testing infrastructure.\n\nChange-Id: I16471e5fd99615c04a59b09c4a69126d7a94684f\n"
    },
    {
      "commit": "3fabec7a25d151b26ba7de13615bbead0dd615a6",
      "tree": "a73af9489665d5b033e961d1aafe7e0935c8af85",
      "parents": [
        "b0d5fc0ac139da4aaa1440263416b9bde05630b0"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Jul 16 16:51:30 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jul 21 14:33:42 2015 +0100"
      },
      "message": "Use the object class as top in reference type propagation\n\nThis properly types all instructions, making it safe to query the type\nat any time.\n\nThis also moves a few functions from class.h to class-inl.h to please\ngcc linker when compiling for target.\n\nChange-Id: I6b7ce965c10834c994b95529ab65a548515b4406\n"
    },
    {
      "commit": "b0d5fc0ac139da4aaa1440263416b9bde05630b0",
      "tree": "7f897d8b0545e43da6b6059718685a8e396b3b70",
      "parents": [
        "d1665b7a689086ec5b33a69a05313c46ea1a95e4"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jul 15 14:41:29 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jul 21 14:33:33 2015 +0100"
      },
      "message": "Fixes and improvements in ReferenceTypePropagation\n\n- Bound object types after a CheckCast. This increases the precision of\n(inlining) generic operations.\n- Make sure that the BoundType is exact when the class is final.\n- Make sure that we don\u0027t duplicate BoundTypes when we run the analysis\nmore than once.\n\nChange-Id: Ic22b610766fae101f942c0d753ddcac32ac1844a\n"
    },
    {
      "commit": "34c3ba93e74d14ab832297ff590cb76c3f0f519d",
      "tree": "c78f14c5971546b7f216b42b0d26f2a536867ddb",
      "parents": [
        "e07300b712f44397ecbfed1ef7f880686e46274a"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Jul 20 14:08:59 2015 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Jul 20 17:09:24 2015 -0700"
      },
      "message": "Fix broken tests.\n\nRationale:\n  (1) volatile field write/read need to apply to all\n      to comply with Java memory model\n  (2) clinit only needs only the write\n  (3) added conservative assumptions to memory barrier\n      (nothing broke, but this seems better)\n\nChange-Id: I37787ec8f3f2c8d6166a94c57193fa4544ad3372\n"
    },
    {
      "commit": "e07300b712f44397ecbfed1ef7f880686e46274a",
      "tree": "4b8cd1ecad98b4a797de4ec73205cea52b5360cf",
      "parents": [
        "16a150b8a4c5c8c9e7159aff3b2ffbd918494abd",
        "854a02b1b488327f80c544ca1119b386b8715c26"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Jul 20 17:56:35 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 20 17:56:36 2015 +0000"
      },
      "message": "Merge \"Improved side effect analysis (field/array write/read).\""
    },
    {
      "commit": "854a02b1b488327f80c544ca1119b386b8715c26",
      "tree": "7f48f01a7624d07b0c24bf589308673dcb05683c",
      "parents": [
        "8ae3588989ea99d8c60f885e3d830e6e0c87ff5f"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Jul 14 16:07:00 2015 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Jul 20 10:25:26 2015 -0700"
      },
      "message": "Improved side effect analysis (field/array write/read).\n\nRationale:\nTypes (int, float etc.) and access type (field vs. array)\ncan be used to disambiguate write/read side-effects analysis.\nThis directly improves e.g. dead code elimination and licm.\n\nChange-Id: I371f6909a3f42bda13190a03f04c4a867bde1d06\n"
    },
    {
      "commit": "6db13772db22489e61e7934dee43144ee5362d8e",
      "tree": "1f6353239230db945467975e4a25797054872916",
      "parents": [
        "b2295afd038c921ac4219c3d09774579bd577c87",
        "1c1da4398cca9a828dea885ca1be12adf961d3a3"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jul 20 08:57:36 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 20 08:57:37 2015 +0000"
      },
      "message": "Merge \"Improve documentation of memory layouts in stack_map.h.\""
    },
    {
      "commit": "9523a3ed0ae6fa31cd978a3999fd88233218f98b",
      "tree": "f74eae1f98064e15ea6b239eb2548133423976fe",
      "parents": [
        "33e50d85a3e43072fad4f58369b71da73b8f966c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 17 11:51:28 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 17 12:58:00 2015 +0100"
      },
      "message": "Revert \"Revert \"Use the quickened metadata to compile -QUICK opcodes.\"\"\n\nThis reverts commit 8ab9a9010f3929acbb6c671008b8885b762b01e1.\n\nChange-Id: I1e654d5010ea2112982c3055fcb8c8f9c10e9ac8\n"
    },
    {
      "commit": "33e50d85a3e43072fad4f58369b71da73b8f966c",
      "tree": "2f6807c6b9b6024baf076464e4ab24e9878a60e4",
      "parents": [
        "32f59e585a1f8932f2a4ab3f934a0a83e29b3d19",
        "432bf3d525dd0736c91238d69e29b4db6a2f7b80"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 17 10:57:42 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 17 10:57:42 2015 +0000"
      },
      "message": "Merge \"Reduce space filter threshold to 128.\""
    },
    {
      "commit": "432bf3d525dd0736c91238d69e29b4db6a2f7b80",
      "tree": "ddb0d9e4fd9ccc3798ee2eaf511555f647e54bdf",
      "parents": [
        "c87c8939ea1bcfbddb954478d527cf1138f4f343"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 17 11:11:09 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 17 11:11:09 2015 +0100"
      },
      "message": "Reduce space filter threshold to 128.\n\nIn order to get closer to our code increase limit.\n\nBug:21868508\n\nChange-Id: I05f76bfd97f03bda3741eca4e6a678c536ad0702\n"
    },
    {
      "commit": "8ab9a9010f3929acbb6c671008b8885b762b01e1",
      "tree": "ed38799e9dcddb859158e013d1c5d840903789f6",
      "parents": [
        "4515a67434c9e3e1627586629a1f2aba1a99aa6a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 17 10:02:30 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 17 10:02:30 2015 +0000"
      },
      "message": "Revert \"Use the quickened metadata to compile -QUICK opcodes.\"\n\nBroke sdk build. Investigating.\n\nThis reverts commit 4515a67434c9e3e1627586629a1f2aba1a99aa6a.\n\nChange-Id: I6c1107ab626758570a59dc6bf3e4228c70a57196\n"
    },
    {
      "commit": "4515a67434c9e3e1627586629a1f2aba1a99aa6a",
      "tree": "94a31425ceac8234cce150588e5667fbedff6449",
      "parents": [
        "cced6ad152cf8ec13f38f2210c1b8445919232d3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 16 14:58:58 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 16 18:36:05 2015 +0100"
      },
      "message": "Use the quickened metadata to compile -QUICK opcodes.\n\nChange-Id: I28a8d68921698bea81f54c95cc6e4c6d2c03f2b4\n"
    },
    {
      "commit": "1c1da4398cca9a828dea885ca1be12adf961d3a3",
      "tree": "130af3bb745bc74a9398c2ac482968bf734f9993",
      "parents": [
        "d780c00e554c5b00fc1acf359e4b9c7e761ea0eb"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jul 16 11:54:44 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jul 16 11:54:44 2015 +0100"
      },
      "message": "Improve documentation of memory layouts in stack_map.h.\n\nAlso shorten NumberOfDexRegisterLocationCatalogEntries to\nNumberOfLocationCatalogEntries.\n\nChange-Id: I55f8ec2960ea67e2eb6871a417bd442d0e2810fb\n"
    },
    {
      "commit": "108ceb48edea654c544b483c302212e43d79a472",
      "tree": "32c325eab3ed79939ae3c0d572e3e81ed65ebfa1",
      "parents": [
        "fec9d09bf7d2d54048b1df8e3c24a210e58dbc84"
      ],
      "author": {
        "name": "Serguei Katkov",
        "email": "serguei.i.katkov@intel.com",
        "time": "Wed Jul 15 15:32:09 2015 +0600"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 16 11:04:19 2015 +0100"
      },
      "message": "ART: Boolean simplifier fix\n\nBoolean simplifier should not remove condition instruction\nif it has side effects.\n\nChange-Id: I108b69ec05a49e5543ee956ad9c691b52179cf6c\nSigned-off-by: Serguei Katkov \u003cserguei.i.katkov@intel.com\u003e\n"
    },
    {
      "commit": "ffee3d33f3ea39aa6031c3d2ff29c4806c8dcc51",
      "tree": "9b990552fbf7e0ba91954758b07e2a51d95da9cd",
      "parents": [
        "045da88bd0230ddf48aaf037b3d6c16fbb97ba65"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Jul 06 11:48:53 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jul 15 17:20:30 2015 +0200"
      },
      "message": "ART: Build SSA form when try/catch is present\n\nThis patch implements support for try/catch in the SsaBuilder.\nValues of locals are propagated from throwing sites inside try\nblocks to their respective catch blocks and phis (\"catch phis\")\nare created when necessary.\n\nChange-Id: I0736565c2c4ff3f9f0924b6e3a785a50023f875a\n"
    },
    {
      "commit": "d1665b7a689086ec5b33a69a05313c46ea1a95e4",
      "tree": "1d46845e8c5734683077357bf18743d5eec466e2",
      "parents": [
        "c6f3439b67962584cfb764133e192c3317f0e1fc",
        "7f63c52c8e94ed1340b7a1d04b046ff12819d2bc"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jul 14 09:25:42 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 14 09:25:43 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Fuse long and FP compare \u0026 condition on ARM64 in Optimizing.\"\"\""
    },
    {
      "commit": "7f63c52c8e94ed1340b7a1d04b046ff12819d2bc",
      "tree": "c3a68ff7d6b3fc9b38c6554f689efcf8eaba8fdf",
      "parents": [
        "bed50d2430e02a3d6b94972e8ab4873d7b3b8be0"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jul 13 15:54:55 2015 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jul 13 16:57:09 2015 +0100"
      },
      "message": "Revert \"Revert \"Fuse long and FP compare \u0026 condition on ARM64 in Optimizing.\"\"\n\nThis reverts commit bed50d2430e02a3d6b94972e8ab4873d7b3b8be0.\n\nBug: 21120453\nChange-Id: I5e4aab2703966d9324ebde25bd8b83056fdb10ed\n"
    },
    {
      "commit": "9b1eba39322781d361a19f51c9f46520bf078558",
      "tree": "77521571d6879d4a5445ef13049902d65954cb32",
      "parents": [
        "77d5e6bf4ea357d332762cde3aa3321a402eac75"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 13 15:55:26 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 13 16:43:02 2015 +0100"
      },
      "message": "Fix baseline for arm64.\n\nA HFakeString acts like a null constant. Other backends have\ndifferent code paths for handling it, so it was only arm64 failing.\n\nChange-Id: Iba44d87c8d114b916404db0302574c7059143010\n"
    },
    {
      "commit": "f185fb365e9faf58428762bace96d7729ea5bdbc",
      "tree": "79a2bbbab8cb36523056539d374d5d79e7e5ee4a",
      "parents": [
        "5e094de24827292d8a13be2adbdcca54ae7d5ff0",
        "2e7cd752452d02499a2f5fbd604c5427aa372f00"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 13 11:55:19 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 13 11:55:20 2015 +0000"
      },
      "message": "Merge \"[optimizing] Don\u0027t rely on the verifier for String.\u003cinit\u003e.\""
    },
    {
      "commit": "2e7cd752452d02499a2f5fbd604c5427aa372f00",
      "tree": "505527250317827f56378f4b786534793ccfbb61",
      "parents": [
        "f16b820fc18ff86e765a14176f05417305d689a0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 10 11:38:52 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 10 18:21:13 2015 +0100"
      },
      "message": "[optimizing] Don\u0027t rely on the verifier for String.\u003cinit\u003e.\n\nContinue work on cutting the dependency on the verifier.\n\nChange-Id: I0f95b1eb2e10fd8f6bf54817f1202bdf6dfdb0fe\n"
    },
    {
      "commit": "e46d0b50fe63c3d7b7a690d8d367bae2c17a3dfe",
      "tree": "bf5d9e96f624bf1f7d06731b94c7e4d308c026e9",
      "parents": [
        "404ea410c5c1566909ae741582046b7cae2bd681",
        "bed50d2430e02a3d6b94972e8ab4873d7b3b8be0"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jul 10 17:19:29 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 10 17:19:30 2015 +0000"
      },
      "message": "Merge \"Revert \"Fuse long and FP compare \u0026 condition on ARM64 in Optimizing.\"\""
    },
    {
      "commit": "bed50d2430e02a3d6b94972e8ab4873d7b3b8be0",
      "tree": "09939739f6ae87e05e91d370007e978b5e72ca8e",
      "parents": [
        "5cfe61f27ed9203498169355bb95db756486d292"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jul 10 17:18:11 2015 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jul 10 17:18:11 2015 +0000"
      },
      "message": "Revert \"Fuse long and FP compare \u0026 condition on ARM64 in Optimizing.\"\n\nThis reverts commit 5cfe61f27ed9203498169355bb95db756486d292.\n\nChange-Id: I9879e76e7f8315cace05700e3b571a6a4749bf1a\n"
    },
    {
      "commit": "404ea410c5c1566909ae741582046b7cae2bd681",
      "tree": "405593768843f3ed32d5fd7a7c08b5ce0f972d8b",
      "parents": [
        "f40002163fed58215df569e89f0a0b9661e16273",
        "5cfe61f27ed9203498169355bb95db756486d292"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jul 10 15:10:46 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 10 15:10:47 2015 +0000"
      },
      "message": "Merge \"Fuse long and FP compare \u0026 condition on ARM64 in Optimizing.\""
    },
    {
      "commit": "f40002163fed58215df569e89f0a0b9661e16273",
      "tree": "bf5d9e96f624bf1f7d06731b94c7e4d308c026e9",
      "parents": [
        "f16b820fc18ff86e765a14176f05417305d689a0",
        "4fa13f65ece3b68fe3d8722d679ebab8656bbf99"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jul 10 10:51:14 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 10 10:51:15 2015 +0000"
      },
      "message": "Merge \"Fuse long and FP compare \u0026 condition on ARM in Optimizing.\""
    },
    {
      "commit": "5cfe61f27ed9203498169355bb95db756486d292",
      "tree": "3229adf7de7c7b834bbac837ff74973f0437b4ad",
      "parents": [
        "4fa13f65ece3b68fe3d8722d679ebab8656bbf99"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jul 10 10:38:11 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jul 10 10:38:11 2015 +0100"
      },
      "message": "Fuse long and FP compare \u0026 condition on ARM64 in Optimizing.\n\nBug: 21120453\nChange-Id: I701e808600fb5ba9ff4d0f5e19e4ce22b1d34b29\n"
    },
    {
      "commit": "72783ff32da5d3f025bbe1636cee84328f1135c6",
      "tree": "577db39a020c61360fa69080160c15115bdc91e8",
      "parents": [
        "7b3d3bc1a4ea7546e4743e90e695f4fc7ecadf3a"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jul 09 14:36:05 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jul 09 15:31:40 2015 +0100"
      },
      "message": "ART: Fix bug in GraphBuilder\n\nThis fixes a bug where the GraphBuilder would split a throwing catch\nblock but would not update info about which blocks throw.\n\nChange-Id: If5415f0c320aa488e06eb042e8fea6f03e30246a\n"
    },
    {
      "commit": "6cd788f2b00e6a8149f46a17aab9162314960c00",
      "tree": "f40acd7129e406a5774b2cbd39233bb48277bf5b",
      "parents": [
        "4880fd5695ea1726dde27bb448dae1338d0a0973"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jul 08 16:44:00 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jul 08 19:02:18 2015 +0100"
      },
      "message": "Address small comments in HGraphBuilder\n\nChange-Id: Ife0a19f6e07146c8e03922f1330527d092f5e236\n"
    },
    {
      "commit": "bff7503625400b610a43678c6930354146ce5f92",
      "tree": "9b1c98a1a1d041fa464cddb074fca677708b5151",
      "parents": [
        "98bea9fdab2c5f964a95f9e76620b0b35c050a8a"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jul 08 17:26:51 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jul 08 18:33:31 2015 +0100"
      },
      "message": "Revert \"Revert \"ART: Ignore try blocks with no throwing instructions\"\"\n\nThe original CL broke libcore tests because monitor-exit instructions\ndid not have any side-effects and got removed by DCE once not labelled\nthrowing any more.\n\nThis reverts commit efe374d7c25c1d48945a9198d96469de99e0c1bd.\n\nChange-Id: I624c0f91676d9baaada6f33be9d7091f68d57535\n"
    },
    {
      "commit": "efe374d7c25c1d48945a9198d96469de99e0c1bd",
      "tree": "5bcba0fdbdb056c1d33c5a33c581192bdf26d315",
      "parents": [
        "8f8ee680bec71a28d9d7b7538e8c7ca100a18184"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jul 08 16:58:07 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jul 08 16:58:07 2015 +0000"
      },
      "message": "Revert \"ART: Ignore try blocks with no throwing instructions\"\n\nTurns out monitor-exit *can* throw... Need to investigate\n\nThis reverts commit 8f8ee680bec71a28d9d7b7538e8c7ca100a18184.\n\nChange-Id: I8b42690918833c917b6a7fc3ceea932b7c1a6f15\n"
    },
    {
      "commit": "8f8ee680bec71a28d9d7b7538e8c7ca100a18184",
      "tree": "ac955c2a57563dfbeb09ec2fee5cc33ae2a926a4",
      "parents": [
        "3e18a8958d2caa4980c4cee4e537313a61adf3d8"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jul 08 12:11:42 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jul 08 16:22:05 2015 +0100"
      },
      "message": "ART: Ignore try blocks with no throwing instructions\n\nIn order to avoid complex removal of redundant exceptional edges in\nthe SSA builder, this patch modified the graph builder to consider\nblocks without throwing instructions as not in a try block, even if\ncovered by a TryItem.\n\nIn some corner cases, this may generate more TryBoundaries than\nnecessary, but those can be removed once the SSA form is built.\n\nChange-Id: I158c4542b2c1964a8dd532f82e921b9cb1997e1e\n"
    },
    {
      "commit": "4fa13f65ece3b68fe3d8722d679ebab8656bbf99",
      "tree": "09939739f6ae87e05e91d370007e978b5e72ca8e",
      "parents": [
        "c470193cfc522fc818eb2eaab896aef9caf0c75a"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jul 06 18:11:54 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jul 08 15:45:22 2015 +0100"
      },
      "message": "Fuse long and FP compare \u0026 condition on ARM in Optimizing.\n\nAlso:\n- Stylistic changes in corresponding parts on the x86 and\n  x86-64 code generators.\n- Update and improve the documentation of\n  art::arm::Condition.\n\nBug: 21120453\nChange-Id: If144772046e7d21362c3c2086246cb7d011d49ce\n"
    },
    {
      "commit": "3e18a8958d2caa4980c4cee4e537313a61adf3d8",
      "tree": "5bcba0fdbdb056c1d33c5a33c581192bdf26d315",
      "parents": [
        "569e81e500725f52116b7d0342ec80a6d1e0089b",
        "c470193cfc522fc818eb2eaab896aef9caf0c75a"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jul 08 10:36:47 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 08 10:36:48 2015 +0000"
      },
      "message": "Merge \"Fuse long and FP compare \u0026 condition on x86/x86-64 in Optimizing.\""
    },
    {
      "commit": "c470193cfc522fc818eb2eaab896aef9caf0c75a",
      "tree": "9887d434f8d9e33c41b98ca406e7c060c68c9016",
      "parents": [
        "c87c8939ea1bcfbddb954478d527cf1138f4f343"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Fri Apr 10 13:18:51 2015 -0400"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jul 07 16:49:53 2015 +0100"
      },
      "message": "Fuse long and FP compare \u0026 condition on x86/x86-64 in Optimizing.\n\nThis is a preliminary implementation of fusing long/float/double\ncompares with conditions to avoid materializing the result from the\ncompare and condition.\n\nThe information from a HCompare is transferred to the HCondition if it\nis legal.  There must be only a single use of the HCompare, the HCompare\nand HCondition must be in the same block, the HCondition must not need\nmaterialization.\n\nAdded GetOppositeCondition() to HCondition to return the flipped\ncondition.\n\nBug: 21120453\nChange-Id: I1f1db206e6dc336270cd71070ed3232dedc754d6\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "ee35ff809616324cbada38cbc0610eb09da09b35",
      "tree": "5271ee1feba1a86905fede5b9d9c1cba444ba01c",
      "parents": [
        "00dec6a9506364806227f21f6a053176a6723fe9",
        "82000b0cf9bb32fc55cdb125bf37c884d44a8671"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jul 07 10:48:12 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 07 10:48:13 2015 +0000"
      },
      "message": "Merge \"Improve code generation for ARM64 VisitArrayGet/Set.\""
    },
    {
      "commit": "82000b0cf9bb32fc55cdb125bf37c884d44a8671",
      "tree": "e94afb4ff819998a15c411fff967e666adecadf0",
      "parents": [
        "4a305daf77a9b80d6abb7817a836aa59d2db521d"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Tue Jul 07 11:34:16 2015 +0100"
      },
      "committer": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Tue Jul 07 11:34:16 2015 +0100"
      },
      "message": "Improve code generation for ARM64 VisitArrayGet/Set.\n\nWe prefer the code sequence\n   add temp, obj, #offset\n   ldr out, [temp, index LSL #shift_amount]\nto\n   add temp, obj, index LSL #shift_amount\n   ldr out, [temp, #offset]\n\nChange-Id: I98f51a1b5a5ecd84c677d6dbd4c4bfc0f157f5e2\n"
    },
    {
      "commit": "45b83aff85a8a8dfcae0da90d010fa2d7eb299a7",
      "tree": "ab9859f385b166831204d002878677d3cd30a031",
      "parents": [
        "f7aa6c05a1c7d70182d43abaf3ff43b6d463eec0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 06 15:12:53 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 06 16:20:59 2015 +0100"
      },
      "message": "Revert \"Revert \"Fix LSRA bug with explicit register temporaries\"\"\n\nThis reverts commit a5fc140ff315dda9bc0a8e59963ed547676cd941.\n\nChange-Id: Ic322484176e55d0c7cd7250d629b9e5046006a4f\n"
    },
    {
      "commit": "a5fc140ff315dda9bc0a8e59963ed547676cd941",
      "tree": "fd82c469e06a21bd1274dccc2d98f0613e45c51f",
      "parents": [
        "283b8541546e7673d33d104241623d07c91cf500"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Jul 06 15:09:54 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Jul 06 15:09:54 2015 +0000"
      },
      "message": "Revert \"Fix LSRA bug with explicit register temporaries\"\n\nregister_allocator_test32 fails.\n\nThis reverts commit 283b8541546e7673d33d104241623d07c91cf500.\n\nChange-Id: I2a46f3c68de3e8273e402102065c13797045c481\n"
    },
    {
      "commit": "283b8541546e7673d33d104241623d07c91cf500",
      "tree": "ef57722d3b0ea62c079b014c6ca3636fb4e5d54d",
      "parents": [
        "51f38e3adf58ba4e35b5374fb8c4b87cb3112abd"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Fri Jul 03 08:26:41 2015 -0400"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 06 14:50:50 2015 +0100"
      },
      "message": "Fix LSRA bug with explicit register temporaries\n\nA temporary with an explicit RegisterLocation, such as ESI on x86 didn\u0027t\nhave the register marked as allocated.  This caused it to not be\nsaved/restored in the prologue/epilogue, causing problems in the caller\nroutine, which expected it to be saved.  Found while implementing\nhttps://android-review.googlesource.com/#/c/157522/.\n\nChange-Id: I22ca2b24c2d21b1c6ab6cfb7dec26cb38034a891\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "281a6320242fd4c229607a663874a8a3b19804f0",
      "tree": "c83a06e68fcb2fd3e6c115ae7d1eba3a4deb3991",
      "parents": [
        "4a305daf77a9b80d6abb7817a836aa59d2db521d"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Jul 03 10:34:57 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Jul 06 10:28:46 2015 +0100"
      },
      "message": "ART: Fix graph for switch leaving a try block\n\nBlocks that GraphBuilder creates for switch-case logic are given\na dex_pc of the branch targets they serve, while in fact they should\nbe considered part of the switch instruction itself and get its pc.\nThis caused the try/catch algorithm to either miss try boundaries or\ncreate bogus edges.\n\nThis patch fixed the dex_pc of the switch-case blocks and modifies\nthe try/catch logic to iterate over all blocks as opposed to just\nbranch targets since multiple blocks can now cover the same dex_pc.\n\nChange-Id: I30fe4f8db0647b869979197a3bc847cf212a7315\n"
    },
    {
      "commit": "7d5ea03b2a7d886325b3ad97942038c2336aa855",
      "tree": "10f1978a121247388d016e374bf819f8619b37bb",
      "parents": [
        "06b6da5ccbf9246c697b8cf1be0ba58ce616521d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 02 15:48:27 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 02 17:42:06 2015 +0100"
      },
      "message": "Do not create a HBoundType when the instruction is non-null.\n\nWe don\u0027t need to refine the type after a null check, if the\ninstruction is known non null or null. As a side effect, this\navoids replacing HLoadClass instructions with HBoundType instructions.\n\nbug:22116987\n\n(cherry picked from commit 3abd437507f8ba30a238a52c273c9944dcb9d5a1)\n\nChange-Id: I5e56de293554534195ade9770b7d1e4b078d685b\n"
    },
    {
      "commit": "c87c8939ea1bcfbddb954478d527cf1138f4f343",
      "tree": "e32dca6b4342ce7b42952e0d9150a85fba361562",
      "parents": [
        "01b2129de3e182b79aa820e71fc7fa1ef42f2d35",
        "4d02711ea578dbb789abb30cbaf12f9926e13d81"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jul 02 08:44:21 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 02 08:44:22 2015 +0000"
      },
      "message": "Merge \"Implement heap poisoning in ART\u0027s Optimizing compiler.\""
    },
    {
      "commit": "4d02711ea578dbb789abb30cbaf12f9926e13d81",
      "tree": "29c802afff6e73c06021c44e6b2ec9d8340c75e9",
      "parents": [
        "312f1bfcfd8f655e635c941dda147377d8bff814"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jul 01 15:41:14 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jul 01 16:31:41 2015 +0100"
      },
      "message": "Implement heap poisoning in ART\u0027s Optimizing compiler.\n\n- Instrument ARM, ARM64, x86 and x86-64 code generators.\n- Note: To turn heap poisoning on in Optimizing, set the\n  environment variable `ART_HEAP_POISONING\u0027 to \"true\"\n  before compiling ART.\n\nBug: 12687968\nChange-Id: Ib3120b38cf805a8a50207a314b9ccc90c8d93740\n"
    },
    {
      "commit": "ea725ec1b5b9a594842dde02b247f4707ee0c93a",
      "tree": "2d4a84d54b1299565242b602064973c6f3da9e49",
      "parents": [
        "8941d5e0755e8cd3f1e35e3efcbe8eeaf3b616fa",
        "242febb3a4de1565cf33110e287819e6ba34e140"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 01 15:20:35 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 01 15:20:36 2015 +0000"
      },
      "message": "Merge \"Don\u0027t print signatures to avoid spaces.\""
    },
    {
      "commit": "242febb3a4de1565cf33110e287819e6ba34e140",
      "tree": "1cb78b15c856312a951d5581ec316aa95f5ad09f",
      "parents": [
        "8922e0b575742aaabbb4168b8703f7c1a4cb346c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 01 16:10:44 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 01 16:11:07 2015 +0100"
      },
      "message": "Don\u0027t print signatures to avoid spaces.\n\nChange-Id: I64340fbd08282acb0eb4142d17d37e69bba507cf\n"
    },
    {
      "commit": "49bace1ccbec6f12b5b475ccc2ce76e0b666b500",
      "tree": "5a318a6fc2009bfe49d7073af6d660ed1d4fed67",
      "parents": [
        "8922e0b575742aaabbb4168b8703f7c1a4cb346c"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jul 01 15:28:26 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jul 01 15:28:26 2015 +0100"
      },
      "message": "Address additional comments on try-catch CL\n\nExtra documentation of try-catch building.\n\nChange-Id: I5048c5fcb354c76fa4a60c3d8d21dd216bc9f6cd\n"
    },
    {
      "commit": "8922e0b575742aaabbb4168b8703f7c1a4cb346c",
      "tree": "90273cf0c055f58b8734603fc9d13193f9c030d2",
      "parents": [
        "312f1bfcfd8f655e635c941dda147377d8bff814",
        "56e1accf3966ae92e151567abf4561ef3f6466f4"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jul 01 13:54:32 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 01 13:54:33 2015 +0000"
      },
      "message": "Merge \"ART: Changes to try-catch in GraphBuilder\""
    },
    {
      "commit": "56e1accf3966ae92e151567abf4561ef3f6466f4",
      "tree": "7dc23852fe89290f1e01626342dc2a2d5a7de492",
      "parents": [
        "3b0667c1d68ba88c71b031757b757dca659afd69"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Jun 30 15:41:36 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jul 01 14:51:21 2015 +0100"
      },
      "message": "ART: Changes to try-catch in GraphBuilder\n\nThis patch adds an additional case into the insertion algorithm for\nHTryBoundary inside HGraphBuilder in order to better handle catch\nblocks covered by a TryItem.\n\nBuilding SSA form also required to stop combining HTryBoundaries for\nneighbouring TryItems because it was not clear which exception\nhandlers belong to which try block.\n\nChange-Id: Ic68bd6ef98fee784609fa593cb08dca1f00a15e0\n"
    },
    {
      "commit": "312f1bfcfd8f655e635c941dda147377d8bff814",
      "tree": "f980c9e87d73eeedb3e7e517bc4718754cc2eafa",
      "parents": [
        "39dc3759fa9a32da145e8823430d16a6a5acaba6",
        "9fdb31e12023d94c710a766a54d8a57c91a196f9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 01 13:00:46 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 01 13:00:48 2015 +0000"
      },
      "message": "Merge \"Do not do a type check when setting null to an array.\""
    },
    {
      "commit": "9fdb31e12023d94c710a766a54d8a57c91a196f9",
      "tree": "22be0afa06ceca65cb4d1ed457c0ea720845e9a4",
      "parents": [
        "3b0667c1d68ba88c71b031757b757dca659afd69"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 01 12:56:46 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 01 13:54:32 2015 +0100"
      },
      "message": "Do not do a type check when setting null to an array.\n\nChange-Id: I7387d45aea697d4a3de273335647220a815a992b\n"
    },
    {
      "commit": "39dc3759fa9a32da145e8823430d16a6a5acaba6",
      "tree": "916c207b8940fdb6257a25a4ae7262234d9ca41f",
      "parents": [
        "8406b3131e186ce75644f589b3b53eca375cd611",
        "842acd492f8916eb56dedd17bf812107b3ffc9db"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 01 12:50:28 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 01 12:50:28 2015 +0000"
      },
      "message": "Merge \"Emit method name at invokes in the graph visualizer.\""
    },
    {
      "commit": "842acd492f8916eb56dedd17bf812107b3ffc9db",
      "tree": "6d8b998c95e868695bb6c9ec87c9acf84a194838",
      "parents": [
        "3b0667c1d68ba88c71b031757b757dca659afd69"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 01 13:00:15 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 01 13:00:15 2015 +0100"
      },
      "message": "Emit method name at invokes in the graph visualizer.\n\nChange-Id: I832f823463569724fca9c38cd70d9dd552f15b3a\n"
    },
    {
      "commit": "436cbc5e4c360962275713f3d2649ff7be88aaa4",
      "tree": "0d10b3bb120e0f5e49a0326e2007f15799e29cbb",
      "parents": [
        "c7657e93b6b045eaff18190b8133361652bf8c1c",
        "06b66d05a6251d91b5e2516f579bfff5fa49191c"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jul 01 11:58:21 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 01 11:58:22 2015 +0000"
      },
      "message": "Merge \"Fix a MOV instruction in Optimizing\u0027s x86-64 code generator.\""
    },
    {
      "commit": "06b66d05a6251d91b5e2516f579bfff5fa49191c",
      "tree": "82edce66106b31acad30562463a78eef1abb68bc",
      "parents": [
        "bbcc01a5a38d28c221c05788e56473a287f57589"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jul 01 12:47:25 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jul 01 12:48:31 2015 +0100"
      },
      "message": "Fix a MOV instruction in Optimizing\u0027s x86-64 code generator.\n\nUse `movl\u0027 instead of `movw\u0027 to store a 32-bit immediate\n(integer or reference) into a field.\n\nAlso fix art::Location::RegisterOrInt32LongConstant to\nproperly handle non-long constants.\n\nChange-Id: I34c6ec8eaa1632822a31969f87c9c2d6c5b96326\n"
    },
    {
      "commit": "2bcb43111edf7bf99fe409ff3e9c76a285e54c25",
      "tree": "3ee8cbf5ef612756f2d433f3c14bd475323dec8d",
      "parents": [
        "806af26f1a8f107cb4f4430ceec8dc9f360f3795"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 01 12:22:56 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 01 12:46:09 2015 +0100"
      },
      "message": "Use CompareAndBranchIf(Non)Zero when applicable.\n\nNow that we relocate branches, we can try make more use of cbz/cbnz.\n\nChange-Id: I93ca64107f34eb3c43f2e7102ea90453113dad7a\n"
    },
    {
      "commit": "806af26f1a8f107cb4f4430ceec8dc9f360f3795",
      "tree": "c28ecfbb589223e667e1aebc0b4911b9768909bb",
      "parents": [
        "f91d27c907589c2b678315793992f09f9acc2e8b",
        "4230e1895b915a22363452823b0e51eabe92cb60"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 29 14:03:00 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 29 14:03:00 2015 +0000"
      },
      "message": "Merge \"Do not replace a live phi with a dead phi.\""
    },
    {
      "commit": "4230e1895b915a22363452823b0e51eabe92cb60",
      "tree": "64bce7a4e8e4fcb73d15c1644f54311bd5a04483",
      "parents": [
        "b485915afd8a6396df7863b651dfe832038fd680"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 29 14:34:46 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 29 14:02:30 2015 +0000"
      },
      "message": "Do not replace a live phi with a dead phi.\n\nA dead phi is not properly typed. Therefore, always use the live phi\nequivalent instead.\n\nbug:21865466\nChange-Id: Id5e26ae4062cc18f5532d5b95cc024480652d5b2\n"
    },
    {
      "commit": "f9a199571417b5a5a62d94d05a064077e14dd2c4",
      "tree": "f2fb9f91e1d29f15c168e7966a1d23bfa92a9dec",
      "parents": [
        "2e232ce8c7e7accc1b9654f111266d28fe45b08d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 29 13:43:54 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 29 13:45:31 2015 +0100"
      },
      "message": "Revert \"Revert \"Do not update the type of something we already know.\"\"\n\nThis reverts commit 63107a804ce17db9789051e1fe310d99d1dae1cb.\n\nbug:22116987\nChange-Id: I49a376a5bd2073a69babe122ec0d26e5d2f82461\n"
    },
    {
      "commit": "63107a804ce17db9789051e1fe310d99d1dae1cb",
      "tree": "6c63aac8871de4143ee37f2a513023f1247b2117",
      "parents": [
        "30eb58c548bee08468f68eb140a74a51dd7d9b43"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Jun 29 11:43:16 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Jun 29 11:43:16 2015 +0000"
      },
      "message": "Revert \"Do not update the type of something we already know.\"\n\nThis reverts commit 30eb58c548bee08468f68eb140a74a51dd7d9b43.\n\nChange-Id: Icd959e868160fc3ee7031dd2927554ac5b21d40f\n"
    },
    {
      "commit": "30eb58c548bee08468f68eb140a74a51dd7d9b43",
      "tree": "28412484547b9bfb4a4773df103cef5f485c3a67",
      "parents": [
        "8d1a8c00b89775a251ac5e26a557f81ac1491a44"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 29 10:56:34 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 29 10:59:19 2015 +0100"
      },
      "message": "Do not update the type of something we already know.\n\nThis is both an optimization to avoid unneeded nodes,\nand correctness to avoid replacing the second input\nof `HInstanceOf` and `HCheckCast` to something that is\nnot `HLoadClass`.\n\nbug:22116987\n\nChange-Id: I4907197a9002883d7cae8265a9642512b6201396\n"
    },
    {
      "commit": "b485915afd8a6396df7863b651dfe832038fd680",
      "tree": "4d12daee263e31d9603e962c1606cae3356faafe",
      "parents": [
        "4a08e17a9db0f68b9623849bc288c31a47868fbc",
        "fc6a86ab2b70781e72b807c1798b83829ca7f931"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Jun 26 14:52:36 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 26 14:52:36 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"ART: Implement try/catch blocks in Builder\"\"\""
    },
    {
      "commit": "fc6a86ab2b70781e72b807c1798b83829ca7f931",
      "tree": "90201491e811cf7be0e0469d7a06a828f4384cad",
      "parents": [
        "d3eaade87ac079accca30473ef0a3b38ab600828"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Jun 26 10:33:45 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Jun 26 13:49:50 2015 +0100"
      },
      "message": "Revert \"Revert \"ART: Implement try/catch blocks in Builder\"\"\n\nThis patch enables the GraphBuilder to generate blocks and edges which\nrepresent the exceptional control flow when try/catch blocks are\npresent in the code. Actual compilation is still delegated to Quick\nand Baseline ignores the additional code.\n\nTo represent the relationship between try and catch blocks, Builder\nsplits the edges which enter/exit a try block and links the newly\ncreated blocks to the corresponding exception handlers. This layout\nwill later enable the SsaBuilder to correctly infer the dominators of\nthe catch blocks and to produce the appropriate reverse post ordering.\nIt will not, however, allow for building the complete SSA form of the\ncatch blocks and consequently optimizing such blocks.\n\nTo this end, a new TryBoundary control-flow instruction is introduced.\nCodegen treats it the same as a Goto but it allows for additional\nsuccessors (the handlers).\n\nThis reverts commit 3e18738bd338e9f8363b26bc895f38c0ec682824.\n\nChange-Id: I4f5ea961848a0b83d8db3673763861633e9bfcfb\n"
    },
    {
      "commit": "4a08e17a9db0f68b9623849bc288c31a47868fbc",
      "tree": "6c3d20213dc2882e8af65b1ec95194b9b59412fe",
      "parents": [
        "d3eaade87ac079accca30473ef0a3b38ab600828",
        "f39e0641a6d1a6561b20f6a130d1e763788cd70b"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jun 26 11:33:01 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 26 11:33:02 2015 +0000"
      },
      "message": "Merge \"Minor fixes to mips64 for the arch-specific optimisation framework.\""
    },
    {
      "commit": "d3eaade87ac079accca30473ef0a3b38ab600828",
      "tree": "12dd483fa488b349312e49ffde8cb538845a2b57",
      "parents": [
        "610a04994ea5988bd6e2e056b658182ec9c445e3",
        "3e18738bd338e9f8363b26bc895f38c0ec682824"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Jun 26 10:00:03 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 26 10:00:04 2015 +0000"
      },
      "message": "Merge \"Revert \"ART: Implement try/catch blocks in Builder\"\""
    },
    {
      "commit": "3e18738bd338e9f8363b26bc895f38c0ec682824",
      "tree": "708013ef06cfb524f040b2b5c494f7f3cb84ac2c",
      "parents": [
        "0b5c7d1994b76090afcc825e737f2b8c546da2f8"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Jun 26 09:59:52 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Jun 26 09:59:52 2015 +0000"
      },
      "message": "Revert \"ART: Implement try/catch blocks in Builder\"\n\nCauses OutOfMemory issues, need to investigate.\n\nThis reverts commit 0b5c7d1994b76090afcc825e737f2b8c546da2f8.\n\nChange-Id: I263e6cc4df5f9a56ad2ce44e18932ca51d7e349f\n"
    },
    {
      "commit": "cf950c2587932c94f9b04a1dc47a7b8462c9e2b6",
      "tree": "9f7124df650984b848e00625c4185641b5f1650c",
      "parents": [
        "a65930de077a4d7c1110e66ccd950061a85353d0"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Jun 26 09:59:06 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Jun 26 09:59:06 2015 +0000"
      },
      "message": "Revert \"ART: Fix gtests after try/catch change\"\n\nNeed to revert the whole try/catch CL until issues are fixed.\n\nThis reverts commit a65930de077a4d7c1110e66ccd950061a85353d0.\n\nChange-Id: Idd69215c87230a8616923665a55fe81891c78bec\n"
    },
    {
      "commit": "a65930de077a4d7c1110e66ccd950061a85353d0",
      "tree": "9514b1d990ed517f9ba94495a3635c18bca86cad",
      "parents": [
        "2f81cd8f4ff21caf133024795bd5ae028c9f68cd"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Jun 26 10:26:47 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Jun 26 10:26:47 2015 +0100"
      },
      "message": "ART: Fix gtests after try/catch change\n\nThe try/catch CL changed the order in which instructions were added\ninto entry/exit blocks which broke the sensitive gtests. This patch\nswaps the order back.\n\nChange-Id: Ib337491e5571a2cd38d6784275642f008886cc2a\n"
    },
    {
      "commit": "2f81cd8f4ff21caf133024795bd5ae028c9f68cd",
      "tree": "9f7124df650984b848e00625c4185641b5f1650c",
      "parents": [
        "e4a15549608b1c5b1e1cb32f840a8467602dcc14",
        "0b5c7d1994b76090afcc825e737f2b8c546da2f8"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Jun 26 08:56:45 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 26 08:56:46 2015 +0000"
      },
      "message": "Merge \"ART: Implement try/catch blocks in Builder\""
    },
    {
      "commit": "0b5c7d1994b76090afcc825e737f2b8c546da2f8",
      "tree": "057eddf8830b1991f02af3c3ce1b63dee90dd2ad",
      "parents": [
        "1dd3136d9f6b1c7d551897a2d96c8314e40f7324"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jun 11 11:17:49 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jun 25 16:58:08 2015 +0100"
      },
      "message": "ART: Implement try/catch blocks in Builder\n\nThis patch enables the GraphBuilder to generate blocks and edges which\nrepresent the exceptional control flow when try/catch blocks are\npresent in the code. Actual compilation is still delegated to Quick\nand Baseline ignores the additional code.\n\nTo represent the relationship between try and catch blocks, Builder\nsplits the edges which enter/exit a try block and links the newly\ncreated blocks to the corresponding exception handlers. This layout\nwill later enable the SsaBuilder to correctly infer the dominators of\nthe catch blocks and to produce the appropriate reverse post ordering.\nIt will not, however, allow for building the complete SSA form of the\ncatch blocks and consequently optimizing such blocks.\n\nTo this end, a new TryBoundary control-flow instruction is introduced.\nCodegen treats it the same as a Goto but it allows for additional\nsuccessors (the handlers).\n\nChange-Id: I415b985596d5bebb7b1bb358a46e08b7b04bb53a\n"
    },
    {
      "commit": "335005e2b3a179f26b7a8ae64ca60a1406b669bd",
      "tree": "7295902b386a8431cbf6c47596858a63add0281e",
      "parents": [
        "fdc9af0ed76aa1a6efa05b122c9bcfdbb7e1e991"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 25 10:01:47 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 25 10:21:35 2015 +0100"
      },
      "message": "Only do some checks when compiling against the core image.\n\nThis will avoid false negatives when running dex2oatd on apks.\n\nbug:21865473\n\nChange-Id: Id8eacaefae0bcf07a2ada8aedd7951854cdb5c4f\n"
    },
    {
      "commit": "fdc9af0ed76aa1a6efa05b122c9bcfdbb7e1e991",
      "tree": "8542c3d8c5dc0d643578b2e04fead5da5c5c63af",
      "parents": [
        "0c955b174bf64707ee0ee03195ed56f9cec26fa2",
        "4824c27988c8eeb302791624bb3ce1d557b0db6c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 24 16:14:30 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 24 16:14:31 2015 +0000"
      },
      "message": "Merge \"Use a flag from the verifier to know if we should compile.\""
    },
    {
      "commit": "4824c27988c8eeb302791624bb3ce1d557b0db6c",
      "tree": "c14f74d9cc4c93cab04bee5c723e420a87db9cb3",
      "parents": [
        "22c4edd865bfdea29e80a789cef70e8e51d2a3a5"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 24 15:53:03 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 24 17:01:08 2015 +0100"
      },
      "message": "Use a flag from the verifier to know if we should compile.\n\nOnly used for the lack of bottom type in the aget-object case\nfor now. Could be used for more.\n\nbug:21865466\n\nChange-Id: I64c2c84dfa1c0d259631e65e5f44b94e4139e6a7\n"
    },
    {
      "commit": "0c955b174bf64707ee0ee03195ed56f9cec26fa2",
      "tree": "6c3ee67028e5f47a86bc20ee9323228a71033e57",
      "parents": [
        "22c4edd865bfdea29e80a789cef70e8e51d2a3a5",
        "8df886b9214802ad689316a1dedb00a6d102555c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 24 15:51:38 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 24 15:51:38 2015 +0000"
      },
      "message": "Merge \"BCE: don\u0027t assume a bounds check always gets a HArrayLength.\""
    },
    {
      "commit": "22c4edd865bfdea29e80a789cef70e8e51d2a3a5",
      "tree": "310873c7bf2eee705d46bcdcb0022015969c4ae3",
      "parents": [
        "2b1bc487d3fa84e4bac16e85112e5e45682ac0ba",
        "69ba7b7112c2277ac225615b37e6df74c055740d"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jun 24 14:11:45 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 24 14:11:46 2015 +0000"
      },
      "message": "Merge \"ART: Run GraphChecker after Builder and SsaBuilder\""
    },
    {
      "commit": "2b1bc487d3fa84e4bac16e85112e5e45682ac0ba",
      "tree": "3b9ebc758d870b126b76bf681ed913b773d67667",
      "parents": [
        "b809daaffdd42dc01457ae06ae83f2d7ebdb5e65",
        "a09ff9c11f07863ac57e6120a824f0d20dfaa284"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 24 14:10:57 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 24 14:10:58 2015 +0000"
      },
      "message": "Merge \"BCE: Narrow instead of unconditionnaly overwrite the range.\""
    },
    {
      "commit": "a09ff9c11f07863ac57e6120a824f0d20dfaa284",
      "tree": "d2ddb2da513544e2f64fba6c0e20dbdefe8cc8b2",
      "parents": [
        "582195dfcee32586b71b0ed00a973cfc7d7b8b57"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 24 10:38:27 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 24 15:07:50 2015 +0100"
      },
      "message": "BCE: Narrow instead of unconditionnaly overwrite the range.\n\nbug:21862741\nChange-Id: Ic1c2d6fa64255623f87af33a297c459cc9080d3c\n"
    },
    {
      "commit": "8df886b9214802ad689316a1dedb00a6d102555c",
      "tree": "19023e2d50ae464ecac105583384fbb4425d6c8e",
      "parents": [
        "1c7f2f10230baf7a549af5bfd16fd3f0fb73ba21"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 24 14:57:44 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 24 15:02:23 2015 +0100"
      },
      "message": "BCE: don\u0027t assume a bounds check always gets a HArrayLength.\n\nDeoptimizations may change it to a HPhi.\n\nbug:22056703\nChange-Id: I8995209438764dac496ed856782b147ba21f93e5\n"
    },
    {
      "commit": "69ba7b7112c2277ac225615b37e6df74c055740d",
      "tree": "3177340740abfabd80f055b17ab92fb6e740bd87",
      "parents": [
        "b809daaffdd42dc01457ae06ae83f2d7ebdb5e65"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Jun 23 18:27:30 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jun 24 15:02:15 2015 +0100"
      },
      "message": "ART: Run GraphChecker after Builder and SsaBuilder\n\nThis patch refactors the way GraphChecker is invoked, utilizing the\nsame scoping mechanism as pass timing and graph visualizer. Therefore,\nGraphChecker will now run not just after instances of HOptimization\nbut after the builders and reg alloc, too.\n\nChange-Id: I8173b98b79afa95e1fcbf3ac9630a873d7f6c1d4\n"
    },
    {
      "commit": "b809daaffdd42dc01457ae06ae83f2d7ebdb5e65",
      "tree": "16c3d455297fbf79a1d084392aada209ac2e8704",
      "parents": [
        "1c7f2f10230baf7a549af5bfd16fd3f0fb73ba21",
        "fe659462e7d58bb2585b1bd029f9e08fd9dd32ae"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jun 24 13:56:48 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 24 13:56:49 2015 +0000"
      },
      "message": "Merge \"ART: Stop creating a fallthrough block for Goto\""
    },
    {
      "commit": "ea80942c39cb5e9bc3e38a388583d1646c1e2a3f",
      "tree": "259ebaaeb298e8ca866591402e91f2d0d326e279",
      "parents": [
        "9dda8f231bf6aaac3f0397f1fa0cd9d42eb393ed"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 24 14:25:09 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 24 14:26:01 2015 +0100"
      },
      "message": "Fix codegen_test after DCE fix.\n\nChange-Id: I16c64abc26c64815da4cb4034276d60e9bfb6996\n"
    },
    {
      "commit": "fe659462e7d58bb2585b1bd029f9e08fd9dd32ae",
      "tree": "987b9dd7f8278766d2b6a4a65397f2852f1d7ef4",
      "parents": [
        "582195dfcee32586b71b0ed00a973cfc7d7b8b57"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jun 24 14:23:56 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jun 24 14:25:48 2015 +0100"
      },
      "message": "ART: Stop creating a fallthrough block for Goto\n\nOptimizing\u0027s Builder used to create a basic block after a Goto under\nthe assumption that control flow can fall through.\n\nBug: 19084197\nChange-Id: Id85f31df98a4177466750d3cd0bc8bb74782ca2d\n"
    },
    {
      "commit": "9dda8f231bf6aaac3f0397f1fa0cd9d42eb393ed",
      "tree": "22b27b0e9926aaa6d9229bc831680ddc8d20fc92",
      "parents": [
        "d61d77d67a90f2e12ef89997e181f91f8858d7a8",
        "1efcc22cd1895c48adccbe49270d8e8583c2b12d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 24 13:01:55 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 24 13:01:56 2015 +0000"
      },
      "message": "Merge \"Fix another case of un-verified dead code.\""
    },
    {
      "commit": "1efcc22cd1895c48adccbe49270d8e8583c2b12d",
      "tree": "9ea6171a7670f8930e219f8a74875c4af19e5c9f",
      "parents": [
        "264e63bb899320a779264964aee6b868de25515e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 24 12:41:20 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 24 13:58:20 2015 +0100"
      },
      "message": "Fix another case of un-verified dead code.\n\nbug:22042796\nhttps://code.google.com/p/android/issues/detail?id\u003d178008\n\nChange-Id: Ie77ccf17ce2a69c86b2278f7920aa4ad39bf142b\n"
    },
    {
      "commit": "f39e0641a6d1a6561b20f6a130d1e763788cd70b",
      "tree": "1679d6e1c2e77593d67fc519fe8cb8f94ddd6d5e",
      "parents": [
        "a256ee9ccbd01407541958476f388ae7c687a9c2"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Tue Jun 23 11:33:45 2015 +0100"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Wed Jun 24 08:17:25 2015 -0400"
      },
      "message": "Minor fixes to mips64 for the arch-specific optimisation framework.\n\nChange-Id: I9d49ea61c732e4fc6b3393aa8778951e29ce4efe\n"
    },
    {
      "commit": "1f82ecc6a0c9f88d03d6d1a6d95eeb8707bd06c1",
      "tree": "50d71ef83f27827f0acfe6708acdb46e159f7506",
      "parents": [
        "a12f729e7165780e73857e6248af0df00ad6ce2b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 24 12:20:24 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 24 12:37:52 2015 +0100"
      },
      "message": "Recompute dominator tree after DCE.\n\nbug:22031382\nChange-Id: Ifebe169897b76872015e3ce0ed7d0a9662f80cef\n"
    },
    {
      "commit": "d4a02cfc59a449d216faa687cfdaa4252b4a433f",
      "tree": "dc0f23e71354403028b30f1592637e2d66db6210",
      "parents": [
        "0022bdf71533a300deebe6b9cf287eaceeb0620c",
        "33d6903e570daf8f3cf7c1f6ebd9a6dd22c7c23c"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jun 23 13:53:54 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 23 13:53:55 2015 +0000"
      },
      "message": "Merge \"Replace some run-time assertions with compile-time ones in ART.\""
    },
    {
      "commit": "b5061a821d96cb1af7ba24d21a4d2d59f7f16c7c",
      "tree": "c5fb196378d58110cffc32724845aea3f36e467b",
      "parents": [
        "1f22dbc10d9fdc96a6814e737718098e36a0ea3c",
        "a4f3581da73b83484a30ab499c4f8ad43b378dab"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jun 23 10:15:45 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 23 10:15:46 2015 +0000"
      },
      "message": "Merge \"Do not overwrite an input register in shift operations.\""
    },
    {
      "commit": "a4f3581da73b83484a30ab499c4f8ad43b378dab",
      "tree": "a4f11578fc3df63ed9d63e248f01d09d4ff18438",
      "parents": [
        "2d655f1ce89a714094a4f55ac75edcf9a34c7e24"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 22 23:12:45 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jun 23 11:02:44 2015 +0100"
      },
      "message": "Do not overwrite an input register in shift operations.\n\n\u0027second_reg\u0027 is an input register that can survive the instruction.\nInstead use the output register as a temporary result.\n\nbug:21667432\nChange-Id: I1a4577b0333c3fb184645023d5eae30555bbf65c\n"
    },
    {
      "commit": "3a690be14f70cf1040d5492530b73c97317897e6",
      "tree": "9cfa99a92e0326d7fd0aa63381be5f010482e9f4",
      "parents": [
        "da0e224d79262b11fbac9e7b1fdc11c4df31b77f"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Jun 23 10:22:38 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Jun 23 10:24:05 2015 +0100"
      },
      "message": "ART: Fix GraphVisualizer dlopen crash\n\nThe HGraphVisualizer used to crash if it failed to dlopen the\nlibart(d)-disassembler.so. This patch fixes that.\n\nBug: 22001285\nChange-Id: Ibe9b9af17a77e22e3571c886f77918e9491b7827\n"
    },
    {
      "commit": "59cb52189d350fa9fb38b767fa9b25d971375833",
      "tree": "972c0033cb95ad40819069ad895e03a31dacf01c",
      "parents": [
        "c30e721b5ddcb4ba6835c5b721e1c5095f4a3d7f",
        "183617ac004d57dfd82b4d047b10c89e3ed072c1"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Jun 22 16:57:04 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 22 16:57:05 2015 +0000"
      },
      "message": "Merge \"Fix in ReferenceTypePropagation\""
    },
    {
      "commit": "b783b408112d1797da646f576a40f94bcb5162f3",
      "tree": "c6046874de725b77a8744637f470ade1861fa7c7",
      "parents": [
        "a63d8f44740a8406adda6aaff7ed75ef923c085f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 22 11:06:43 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 22 14:39:02 2015 +0100"
      },
      "message": "Revert \"Revert \"Use IsAssignableFrom instead of IsSubclass for robustness.\"\"\n\nDon\u0027t use IsAssignableFrom, but check beforehand if the referrer is an\ninterface. Otherwise, we are being too aggressive on removing clinit\nchecks on interfaces (being a subclass doesn\u0027t imply the interface\nhas been initialized).\n\nbug:21870666\n\nThis reverts commit 463580ca5a1e75e27ad0207537ffc6252091326a.\n\nChange-Id: I2a13974d28477ee3e5224142cc260cbf46d19aa9\n"
    }
  ],
  "next": "ae370391057b88607b0e451fdea020b257684b91"
}
