)]}'
{
  "log": [
    {
      "commit": "2c31b5ac1d45f2f96932c8ff0d299abb2dbde862",
      "tree": "65cc0394a15ea82df9ccb680b1ec6b3be72a1a87",
      "parents": [
        "711d84008f5b3cda849611102118316c29a75b16",
        "e34a42cd37b2b3b6b21280df14fa6f40917b5d6e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sun Apr 26 00:41:53 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Apr 26 00:41:54 2015 +0000"
      },
      "message": "Merge \"ART: Fix Trace types, check minimum buf size\""
    },
    {
      "commit": "711d84008f5b3cda849611102118316c29a75b16",
      "tree": "39818190d99cc7fdae7c3c2c3dbbb5b50ee33f68",
      "parents": [
        "3f4fa70a251443b7e35ee0464120e53daf4ae9c1",
        "c4013ea00d9e63533f3badeed0131bb2eb859c90"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sun Apr 26 00:39:03 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Apr 26 00:39:03 2015 +0000"
      },
      "message": "Merge \"ART: Fix addpd opcode, add Quick x86 assembler test\""
    },
    {
      "commit": "e34a42cd37b2b3b6b21280df14fa6f40917b5d6e",
      "tree": "b9a9362bdd3db787caffbe9ab72b3b3ad810bff9",
      "parents": [
        "3f4fa70a251443b7e35ee0464120e53daf4ae9c1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Apr 25 14:44:29 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Apr 25 17:07:07 2015 -0700"
      },
      "message": "ART: Fix Trace types, check minimum buf size\n\nAlso make streaming mode adhere to the given buffer (and fix the\ncase where the buffer is too small for a packet). This is important\nto not lose too much tracing information when the runtime is destroyed\nwith an unflushed buffer.\n\nChange-Id: I6525fe4326ac5c3d7c9cda41c54a2a911ca889b7\n"
    },
    {
      "commit": "c4013ea00d9e63533f3badeed0131bb2eb859c90",
      "tree": "e4f9044f86fbd56c3c848ce56f28bc2f70f985dd",
      "parents": [
        "3d58dea2a9d82aed045908fd9ea68c41f3d1f63d"
      ],
      "author": {
        "name": "Chao-ying Fu",
        "email": "chao-ying.fu@intel.com",
        "time": "Wed Apr 22 10:51:21 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Apr 25 16:45:56 2015 -0700"
      },
      "message": "ART: Fix addpd opcode, add Quick x86 assembler test\n\nThis patch fixes the addpd opcode that may be used by vectorizations,\nand adds an assembler test for the Quick x86 assembler, currently\nlightly testing addpd, subpd and mulpd.\n\nChange-Id: I29455a86212829c75fd75737679280f167da7b5b\nSigned-off-by: Chao-ying Fu \u003cchao-ying.fu@intel.com\u003e\n"
    },
    {
      "commit": "3f4fa70a251443b7e35ee0464120e53daf4ae9c1",
      "tree": "e5a8e600e5f3498f249fdafa39506bb9baee6fb5",
      "parents": [
        "0cd91f05f11ccf7d55bf744053b0aae5e0e7aa36",
        "b15be57e51e63df5406d5c7c1c32784cc0ec4078"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Apr 25 22:59:23 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 25 22:59:23 2015 +0000"
      },
      "message": "Merge \"ART: Test for GVN skipping\""
    },
    {
      "commit": "b15be57e51e63df5406d5c7c1c32784cc0ec4078",
      "tree": "cf08f02ddf398b7486ecf5172de64562846fb10f",
      "parents": [
        "18772f087eb0eb14ba816ed088107c43958eb8c3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Apr 25 15:27:38 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Apr 25 15:58:31 2015 -0700"
      },
      "message": "ART: Test for GVN skipping\n\nAdd a deeply nested loop to test 090 that will make the GVN skip.\n\nChange-Id: I7c160293e76fd858c550f792b357eaaccdde77a9\n"
    },
    {
      "commit": "0cd91f05f11ccf7d55bf744053b0aae5e0e7aa36",
      "tree": "85246170653a221dc3ca535d1bbab89019985b40",
      "parents": [
        "18772f087eb0eb14ba816ed088107c43958eb8c3",
        "f36cb5f65cb150151aa40b23937e2b0ad75cc546"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Apr 25 22:36:26 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 25 22:36:27 2015 +0000"
      },
      "message": "Merge \"Move Class.newInstance to native\""
    },
    {
      "commit": "18772f087eb0eb14ba816ed088107c43958eb8c3",
      "tree": "2ec7af2f9315a283ba665696eaff47c1fcadb6a7",
      "parents": [
        "3d58dea2a9d82aed045908fd9ea68c41f3d1f63d",
        "24d65cce84165c2c3b0e02e09cdb92479ee4e479"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Apr 25 22:18:23 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 25 22:18:23 2015 +0000"
      },
      "message": "Merge \"ART: Fix missing dependency between GVN and other passes\""
    },
    {
      "commit": "24d65cce84165c2c3b0e02e09cdb92479ee4e479",
      "tree": "2ec7af2f9315a283ba665696eaff47c1fcadb6a7",
      "parents": [
        "3d58dea2a9d82aed045908fd9ea68c41f3d1f63d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Apr 25 14:47:31 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Apr 25 15:16:10 2015 -0700"
      },
      "message": "ART: Fix missing dependency between GVN and other passes\n\nThe GVN may be turned off completely, or skip running when the\nmethod is too complex. Turn off DCE in that case.\n\nThe dependent cleanup pass is not an optimization pass, so can\u0027t be\nturned off that way. Check whether the GVN skipped in the gate function.\n\nA possible follow-up is proper dependencies between passes.\n\nChange-Id: I5b7951ecd6c74ebbfa5b23726a3d2f3ea1a23a47\n"
    },
    {
      "commit": "f36cb5f65cb150151aa40b23937e2b0ad75cc546",
      "tree": "25365c69a089bc491a4b070ee3403be964cfc606",
      "parents": [
        "33984b4d6b79b2d65258e69506e5669be704db82"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 24 16:55:16 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Apr 25 22:08:16 2015 +0000"
      },
      "message": "Move Class.newInstance to native\n\nAvoids 1 allocation and several JNI transitions.\n\nBefore:\nClass_classNewInstance: 4462.39 ns; σ\u003d39.42 ns @ 3 trials\n\nAfter:\nClass_classNewInstance: 1073.39 ns; σ\u003d24.14 ns @ 10 trials\n\nBug: 20269715\nBug: 20566996\nChange-Id: Icd52155ce79a978a4d869855bfdfd7735abd8187\n"
    },
    {
      "commit": "3d58dea2a9d82aed045908fd9ea68c41f3d1f63d",
      "tree": "f165c646704be8b99e15d7075187baea5b967328",
      "parents": [
        "4a35e768dcb12ffecfed07e0417610afcb9472eb",
        "03b9ee44362965efec4a4f3d23e978e390fa842f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Apr 25 19:38:39 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 25 19:38:40 2015 +0000"
      },
      "message": "Merge \"ART: Refactor utils/assembler test\""
    },
    {
      "commit": "4a35e768dcb12ffecfed07e0417610afcb9472eb",
      "tree": "f2591827b910a3c9a3cfa791f62cd71d313ece34",
      "parents": [
        "948dfff2ee9c3411088a89e1a8664652f46fbf35",
        "3c1c05a1e8eeff783f2854ee31bff8117ee274dd"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Sat Apr 25 14:20:53 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 25 14:20:53 2015 +0000"
      },
      "message": "Merge \"Disable Quick\u0027s GVN-based dead code elimination.\""
    },
    {
      "commit": "3c1c05a1e8eeff783f2854ee31bff8117ee274dd",
      "tree": "b923fd82446e30f4e868ed1094f7966f2d24d99f",
      "parents": [
        "1e3ab9ad421d471ca8eadac03084ce19fd06d4eb"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Sat Apr 25 12:17:24 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Sat Apr 25 14:09:38 2015 +0000"
      },
      "message": "Disable Quick\u0027s GVN-based dead code elimination.\n\nQuick\u0027s GVN/DCE seems to trouble the builds.\n\nBug: 20572509\nChange-Id: I1e315b4eee4443f04c7cb2cef953d8e4eff619ce\n"
    },
    {
      "commit": "948dfff2ee9c3411088a89e1a8664652f46fbf35",
      "tree": "307886cd8f7c67e5c95a67a13183004a5c82a3e1",
      "parents": [
        "1e3ab9ad421d471ca8eadac03084ce19fd06d4eb",
        "399ff772f6a44af7fed3944a8d35d830c3b60172"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Apr 25 13:41:55 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 25 13:41:56 2015 +0000"
      },
      "message": "Merge \"Mark the test as failing while investigating.\""
    },
    {
      "commit": "399ff772f6a44af7fed3944a8d35d830c3b60172",
      "tree": "dfa2ae5dcb982a814ba53d3f763d3fc35b94605b",
      "parents": [
        "76f1413492c228bfa710e1eaa4c60370eaffbb8a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Apr 25 14:39:59 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Apr 25 14:39:59 2015 +0100"
      },
      "message": "Mark the test as failing while investigating.\n\nRecent linker changes required to increase the scope\nof our chroot-like environment on devices. There is however just this\ntest failing.\n\nChange-Id: I496be04693b6cebefe68a0ac04947ed238b53e0d\n"
    },
    {
      "commit": "03b9ee44362965efec4a4f3d23e978e390fa842f",
      "tree": "66dd5afc11663eda01c09612f18912148f1c089b",
      "parents": [
        "1e3ab9ad421d471ca8eadac03084ce19fd06d4eb"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 24 21:41:45 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 24 22:53:40 2015 -0700"
      },
      "message": "ART: Refactor utils/assembler test\n\nSplit out the part that compares a buffer with the product of a\nhost assembler. That will allow to reuse this for the Quick\nassemblers.\n\nChange-Id: Ie15777cb0a22f7532d8a8ea35403db0f229cd26f\n"
    },
    {
      "commit": "1e3ab9ad421d471ca8eadac03084ce19fd06d4eb",
      "tree": "5657ce4afd75cff76c472b23b684a89ef1e141b5",
      "parents": [
        "940c65d6757130d2e9f864d4c2220838f0312bea",
        "dd3208d3b2f4b78678a341f38a5cc7761c7fca91"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Apr 25 03:51:07 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 25 03:51:07 2015 +0000"
      },
      "message": "Merge \"ART: Fix DBG_START_LOCAL verification.\""
    },
    {
      "commit": "dd3208d3b2f4b78678a341f38a5cc7761c7fca91",
      "tree": "5657ce4afd75cff76c472b23b684a89ef1e141b5",
      "parents": [
        "940c65d6757130d2e9f864d4c2220838f0312bea"
      ],
      "author": {
        "name": "Logan Chien",
        "email": "tzuhsiang.chien@gmail.com",
        "time": "Sun Apr 19 23:27:52 2015 +0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 24 20:42:52 2015 -0700"
      },
      "message": "ART: Fix DBG_START_LOCAL verification.\n\nThe third ULEB128 of DBG_START_LOCAL and DBG_START_LOCAL_EXTENDED\nentries should be interpreted as type_idx instead.\n\nsee also. dalvik/dx/src/com/android/dx/dex/file/DebugInfoEncoder.java\n\nChange-Id: Ic0d52ed20cc2614acb9fa54b61095d1bd64f73fe\n"
    },
    {
      "commit": "940c65d6757130d2e9f864d4c2220838f0312bea",
      "tree": "c62ba17fb96bdd15dd61b0193c5047c91015e0b6",
      "parents": [
        "808db5276827c909818d5595a5600e64b97f66e0",
        "1152c926076a760490085c4497c3f117fa8da891"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Apr 25 03:38:14 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 25 03:38:15 2015 +0000"
      },
      "message": "Merge \"[optimizing] Rename HasArrayAccesses and check it\""
    },
    {
      "commit": "808db5276827c909818d5595a5600e64b97f66e0",
      "tree": "7098009ac994bb77a40d07390610f63d767a0dec",
      "parents": [
        "c435e014f7c0c93b0459a0d04e3f7e893d6ce9c6",
        "99dbd6883f5dab7743d5fb5d0ad2e82c75a7011e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Apr 25 03:25:43 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 25 03:25:43 2015 +0000"
      },
      "message": "Merge \"[optimizing] Handle x86 const length BoundsCheck\""
    },
    {
      "commit": "c435e014f7c0c93b0459a0d04e3f7e893d6ce9c6",
      "tree": "661df73fd35c4281438667abd488fb282175a8b1",
      "parents": [
        "6e655afb37a528cfd90aa702b1600e1eb5d10a58",
        "94329d31d2a99c9aff889b88ba4b675135409b82"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Apr 25 03:23:30 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 25 03:23:30 2015 +0000"
      },
      "message": "Merge \"ART: Duplicate-classes cleanup\""
    },
    {
      "commit": "94329d31d2a99c9aff889b88ba4b675135409b82",
      "tree": "661df73fd35c4281438667abd488fb282175a8b1",
      "parents": [
        "6e655afb37a528cfd90aa702b1600e1eb5d10a58"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 24 20:22:06 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 24 20:22:06 2015 -0700"
      },
      "message": "ART: Duplicate-classes cleanup\n\nDisable old test. Improve collision warning message. Add a comment\nabout the algorithm.\n\nChange-Id: Ibd29d79565732162150aebd7fe08d0895ccf3d79\n"
    },
    {
      "commit": "6e655afb37a528cfd90aa702b1600e1eb5d10a58",
      "tree": "347bd14890a81298fedf0ba97769077b9ef3d57f",
      "parents": [
        "b5aad4c54e0bf1aff6a0c49cb682defaafb81e1e",
        "b9aec2ccd8b9f39a4ddadde5ca8304cea6b1b188"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Apr 25 01:35:00 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 25 01:35:01 2015 +0000"
      },
      "message": "Merge \"ART: Check for duplicate classes when loading oat files\""
    },
    {
      "commit": "b5aad4c54e0bf1aff6a0c49cb682defaafb81e1e",
      "tree": "101c9be3f3d23f927ef34488ff2188fd6d376b84",
      "parents": [
        "33984b4d6b79b2d65258e69506e5669be704db82",
        "00bb87898502fae7d46e196f5170bad9993877f6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Apr 25 00:48:45 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Apr 25 00:48:46 2015 +0000"
      },
      "message": "Merge \"ART: Add GENERATE_CFI to the ZygoteHooks debug flags\""
    },
    {
      "commit": "99dbd6883f5dab7743d5fb5d0ad2e82c75a7011e",
      "tree": "21b307f551ec645aeefb848c7fb2d8b7f41c6e67",
      "parents": [
        "76f1413492c228bfa710e1eaa4c60370eaffbb8a"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Wed Apr 22 16:18:52 2015 -0400"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Fri Apr 24 19:53:16 2015 -0400"
      },
      "message": "[optimizing] Handle x86 const length BoundsCheck\n\nAllow a constant length for BoundsCheck.\n\nChange-Id: I2c7adc6e733cf8ce6997aba76aa763d0835bd2d6\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "00bb87898502fae7d46e196f5170bad9993877f6",
      "tree": "101c9be3f3d23f927ef34488ff2188fd6d376b84",
      "parents": [
        "33984b4d6b79b2d65258e69506e5669be704db82"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 24 16:33:43 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 24 16:34:30 2015 -0700"
      },
      "message": "ART: Add GENERATE_CFI to the ZygoteHooks debug flags\n\nAdd code to understand the implications of the debug.gencfi system\nproperty that forces generation of CFI data.\n\nChange-Id: Ida66f8c1567634d05cfdbba1a982be3684e94369\n"
    },
    {
      "commit": "33984b4d6b79b2d65258e69506e5669be704db82",
      "tree": "f1f4fc60661f2bc282d1b1ed0331024cb7f3035b",
      "parents": [
        "16b5d29f1755e50ab92a3bee0b85b26460e69cf8",
        "f99bcd2fba4c5a485ced108d63c4a49835d66e5c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 24 23:30:18 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 24 23:30:18 2015 +0000"
      },
      "message": "Merge \"ART: Do not log non-swap usage\""
    },
    {
      "commit": "1152c926076a760490085c4497c3f117fa8da891",
      "tree": "215d3f45a946f51ae680ec50239ebc48f929aed7",
      "parents": [
        "76f1413492c228bfa710e1eaa4c60370eaffbb8a"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Fri Apr 24 17:06:35 2015 -0400"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Fri Apr 24 19:25:51 2015 -0400"
      },
      "message": "[optimizing] Rename HasArrayAccesses and check it\n\nSince the flag is only used to see if there is a HBoundsCheck, rename\nHasArrayAccesses() to HasBoundsChecks().\n\nAdd a check in graph_checker to see that the flag is set if we see a\nHBoundsCheck instruction.\n\nChange-Id: I10fe92897374fb247082152dd75c3611cc40ff30\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "f99bcd2fba4c5a485ced108d63c4a49835d66e5c",
      "tree": "0eb0cb70eaec7eae4c63da10ca49e6d19944f7e9",
      "parents": [
        "76f1413492c228bfa710e1eaa4c60370eaffbb8a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 24 16:22:18 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 24 16:22:18 2015 -0700"
      },
      "message": "ART: Do not log non-swap usage\n\nReduce logcat noise.\n\nBug: 20501758\nChange-Id: I5cbc28614d4be9e7fd120b7ccb97ca489e341f54\n"
    },
    {
      "commit": "16b5d29f1755e50ab92a3bee0b85b26460e69cf8",
      "tree": "352419c2905d1267accad095bc8a0c91815dac31",
      "parents": [
        "93cf23f9966cdbe88650b822ad8471284a21bacb",
        "b28412e3fcc97fbcd0a11d25703a4ad64c3d9552"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 24 23:02:39 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 24 23:02:39 2015 +0000"
      },
      "message": "Merge \"Guard against name \u003d\u003d null in ShortDump\""
    },
    {
      "commit": "93cf23f9966cdbe88650b822ad8471284a21bacb",
      "tree": "f4350840bf7515a26ef8101db8de4be2ad950b7a",
      "parents": [
        "76f1413492c228bfa710e1eaa4c60370eaffbb8a",
        "0379f82393237798616d485ad99952e73e480e12"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Apr 24 22:35:49 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 24 22:35:50 2015 +0000"
      },
      "message": "Merge \"Fix DCHECKs about clinit checks in Optimizing\u0027s code generators.\""
    },
    {
      "commit": "0379f82393237798616d485ad99952e73e480e12",
      "tree": "87f5ccd1fd0f4fa8156c31191040b7433c9ec907",
      "parents": [
        "3507b795c034617e1c94fc9544a208d6c6f75735"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Apr 24 23:01:24 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Apr 24 23:29:06 2015 +0100"
      },
      "message": "Fix DCHECKs about clinit checks in Optimizing\u0027s code generators.\n\nThese assertions are not true for the baseline compiler.  As\na temporary workaround, remove a clinit check as last input\nof a static invoke if it is still present at the stage of\ncode generation.\n\nChange-Id: I5655f4a0873e2e7ee7790b6a341c18b4b7b52af1\n"
    },
    {
      "commit": "b28412e3fcc97fbcd0a11d25703a4ad64c3d9552",
      "tree": "9e4df825a6ef666ee714c782421dfb826e2703df",
      "parents": [
        "76f1413492c228bfa710e1eaa4c60370eaffbb8a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 24 15:28:36 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 24 15:28:36 2015 -0700"
      },
      "message": "Guard against name \u003d\u003d null in ShortDump\n\nBug: 20561804\nChange-Id: If1e4adb74d5b936cf171f2402bf4525bf8c2d209\n"
    },
    {
      "commit": "76f1413492c228bfa710e1eaa4c60370eaffbb8a",
      "tree": "24fc73f101c9c9ad7a76984a770f0a8f1a8e75fe",
      "parents": [
        "3507b795c034617e1c94fc9544a208d6c6f75735",
        "20e8d43ab82b28f16b1630d5081d75a922d3f67a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 24 20:18:20 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 24 20:18:53 2015 +0000"
      },
      "message": "Merge \"[optimizing] Ensure FillNewArray sets array access\""
    },
    {
      "commit": "20e8d43ab82b28f16b1630d5081d75a922d3f67a",
      "tree": "aa5aa67ab9161cba08eb0eebf5dae5b5fa1cfb07",
      "parents": [
        "83134ec5f26979cbb9131dccaf849a72cdd752f6"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Fri Apr 24 14:39:42 2015 -0400"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Fri Apr 24 14:39:42 2015 -0400"
      },
      "message": "[optimizing] Ensure FillNewArray sets array access\n\nA method that only used filled new like \u0027int[]{0,0}\u0027 didn\u0027t have the\narray access flag set, so BCE didn\u0027t remove the checks.\n\nChange-Id: Iedec50daf0d25b1cc3872eb1a4cfc7b8bb31e6bf\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "3507b795c034617e1c94fc9544a208d6c6f75735",
      "tree": "e0675b7691662a452a2bb48ebbf5410ceac51c85",
      "parents": [
        "eb5459ca861b58ee8a9907789f11400dcdddb87b",
        "5f02c6caf9f38be49e655f8bdeeeb99b6faf9383"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Apr 24 18:20:53 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 24 18:20:54 2015 +0000"
      },
      "message": "Merge \"Reduce the number of explicit clinit checks for static invokes.\""
    },
    {
      "commit": "5f02c6caf9f38be49e655f8bdeeeb99b6faf9383",
      "tree": "e0675b7691662a452a2bb48ebbf5410ceac51c85",
      "parents": [
        "eb5459ca861b58ee8a9907789f11400dcdddb87b"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Apr 24 19:14:22 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Apr 24 19:18:27 2015 +0100"
      },
      "message": "Reduce the number of explicit clinit checks for static invokes.\n\nDo not generate explicit clinit checks for static invokes\nwhen the class of the called method is a super class of the\ncaller method\u0027s class (referrer class).\n\nChange-Id: I86ba18facef261fbb71f7ed20867756630ed3c53\n"
    },
    {
      "commit": "eb5459ca861b58ee8a9907789f11400dcdddb87b",
      "tree": "36c1f328c48f0ec111ee31702cc4a82ddb2ad784",
      "parents": [
        "ae803f6efbe8378b5423c51ee3c5564cae0e6e59",
        "4c0eb42259d790fddcd9978b66328dbb3ab65615"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Apr 24 18:17:40 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 24 18:17:41 2015 +0000"
      },
      "message": "Merge \"Ensure inlined static calls perform clinit checks in Optimizing.\""
    },
    {
      "commit": "b9aec2ccd8b9f39a4ddadde5ca8304cea6b1b188",
      "tree": "86154f70ec4a971540363673236bf6b3ff81593c",
      "parents": [
        "9d4d13f38398e880e610323242fe73d609bac40d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 23 22:23:47 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 24 11:17:20 2015 -0700"
      },
      "message": "ART: Check for duplicate classes when loading oat files\n\nOat files are usually produced standalone, and the compilers take\nadvantage of any information they get. It is thus possible that\nwhen compile-time and runtime class-path are not the same, classes\nare resolved differently and optimized code is incorrect.\n\nThis is a very conservative check, scanning the complete class tables\nof dex files. In case any duplicate class is found, the new oat file\nwill be rejected and the original dex files will be used in interpreted\nmode.\n\nA possible refinement to this is actual tracking of the compile-time\nclass-path instead. That is however significantly complicated by the\nDexFile API and the non-standard uses it allows.\n\nAn alternative for both optimized code and correct resolution is\nnative multidex. Apps should switch to multidex and benefit from\nthe optimization as well as the shift of all compile time to install\ntime. Split APKs are currently compiled separately, but it is a goal\nto change that install flow to simulated multidex.\n\nChange-Id: Ib9e0db5091e060e3bb2c0e5e6c007430becbfc21\n"
    },
    {
      "commit": "ae803f6efbe8378b5423c51ee3c5564cae0e6e59",
      "tree": "49e0314cb8a6a9e8bbbc303656af9bad1d89f993",
      "parents": [
        "83134ec5f26979cbb9131dccaf849a72cdd752f6",
        "ad67727a492df635aa54dbe58d6c0de54431f600"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Apr 24 18:11:10 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 24 18:11:11 2015 +0000"
      },
      "message": "Merge \"Quick: Fix and enable DCE and improve GVN/DCE cleanup.\""
    },
    {
      "commit": "83134ec5f26979cbb9131dccaf849a72cdd752f6",
      "tree": "c5b523a0e7939a2eff809d5f619802b1c1eb0ac1",
      "parents": [
        "52b63e20eaef3abfda928833101f67ff581140ad",
        "5ea536aa4a6414db01beaf6f8bd8cb9adc5cfc92"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Apr 24 16:21:36 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 24 16:21:36 2015 +0000"
      },
      "message": "Merge \"Remove ArtMethod* parameter from dex cache entry points.\""
    },
    {
      "commit": "52b63e20eaef3abfda928833101f67ff581140ad",
      "tree": "fdbfa15ad7720c819ae9074984a93d6391b341ac",
      "parents": [
        "7bf9bc7854f5c8ccc2cb2ef4be4f728c5fbd3236",
        "1c533c17baff841e383a539fdd3c0a65135181b0"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Apr 24 16:09:15 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 24 16:09:15 2015 +0000"
      },
      "message": "Merge \"ART: Fix gtests broken by dead block elimination\""
    },
    {
      "commit": "1c533c17baff841e383a539fdd3c0a65135181b0",
      "tree": "8205b23a4914b58d4cdac6d33e08d85a6c2585aa",
      "parents": [
        "2d7352ba5311b8f57427b91b7a891e61497373c1"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Apr 24 17:04:38 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Apr 24 17:08:39 2015 +0100"
      },
      "message": "ART: Fix gtests broken by dead block elimination\n\nChange-Id: If5de97f928f9e214d64871eabfbfb3f2d15451b7\n"
    },
    {
      "commit": "7bf9bc7854f5c8ccc2cb2ef4be4f728c5fbd3236",
      "tree": "f4a4caeb5c0682b15e68b4f47020ea0239987cb9",
      "parents": [
        "f16d7b3824b2777b95fb509c1d2a95bef89f65a4",
        "b2a58477e14e1b15cb9848d16015a49a854ee32c"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Apr 24 15:53:25 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 24 15:53:25 2015 +0000"
      },
      "message": "Merge \"Minor improvements to 458-checker-instruction-simplification.\""
    },
    {
      "commit": "4c0eb42259d790fddcd9978b66328dbb3ab65615",
      "tree": "9d1ac505dfd4d0225f479d860b72a58747c8f6ce",
      "parents": [
        "223f2f5b2a20ca8246da1523494900a2424d5956"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Apr 24 16:43:49 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Apr 24 16:43:49 2015 +0100"
      },
      "message": "Ensure inlined static calls perform clinit checks in Optimizing.\n\nCalls to static methods have implicit class initialization\n(clinit) checks of the method\u0027s declaring class in\nOptimizing.  However, when such a static call is inlined,\nthe implicit clinit check vanishes, possibly leading to an\nincorrect behavior.\n\nTo ensure that inlining static methods does not change the\nbehavior of a program, add explicit class initialization\nchecks (art::HClinitCheck) as well as load class\ninstructions (art::HLoadClass) as last input of static\ncalls (art::HInvokeStaticOrDirect) in Optimizing\u0027 control\nflow graphs, when the declaring class is reachable and not\nknown to be already initialized.  Then when considering the\ninlining of a static method call, proceed only if the method\nhas no implicit clinit check requirement.\n\nThe added explicit clinit checks are already removed by the\nart::PrepareForRegisterAllocation visitor.  This CL also\nextends this visitor to turn explicit clinit checks from\nstatic invokes into implicit ones after the inlining step,\nby removing the added art::HLoadClass nodes mentioned\nhereinbefore.\n\nChange-Id: I9ba452b8bd09ae1fdd9a3797ef556e3e7e19c651\n"
    },
    {
      "commit": "f16d7b3824b2777b95fb509c1d2a95bef89f65a4",
      "tree": "c9a0aaf0fa17cabdb5bea88bc80a11b3d8bf499b",
      "parents": [
        "9f3565a632d12c9cadd7d966da308fd26dbc899c",
        "2d7352ba5311b8f57427b91b7a891e61497373c1"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Apr 24 15:20:27 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 24 15:20:28 2015 +0000"
      },
      "message": "Merge \"ART: Dead block removal\""
    },
    {
      "commit": "2d7352ba5311b8f57427b91b7a891e61497373c1",
      "tree": "3f3426f4f30663ee252ebc1f02ecd0eb114bad85",
      "parents": [
        "c5cb691ca6a746a193bfbe3525aafa7cbb281d40"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Apr 20 14:52:42 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Apr 24 16:19:31 2015 +0100"
      },
      "message": "ART: Dead block removal\n\nAdds a new pass which finds all unreachable blocks, typically due to\nsimplifying an if-condition to a constant, and removes them from the\ngraph. The patch also slightly generalizes the graph-transforming\noperations.\n\nChange-Id: Iff7c97f1d10b52886f3cd7401689ebe1bfdbf456\n"
    },
    {
      "commit": "9f3565a632d12c9cadd7d966da308fd26dbc899c",
      "tree": "7f266ab11458c771d44b19ba960fdce04e5bc664",
      "parents": [
        "af248646f2de879a25114e9f0fb42ac903fe9db7",
        "7cc56a1fe81475d5126785c45606dd491dec2d8c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 24 14:18:19 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 24 14:18:20 2015 +0000"
      },
      "message": "Merge \"Debugger: Remove support for setting values in optimizing.\""
    },
    {
      "commit": "7cc56a1fe81475d5126785c45606dd491dec2d8c",
      "tree": "13ad863b2a693f68da23b36c24703ca990da5475",
      "parents": [
        "9e85d55c085504b88a9ac68c3f9605629dc06853"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 24 14:58:19 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 24 14:58:19 2015 +0100"
      },
      "message": "Debugger: Remove support for setting values in optimizing.\n\nbug:19944235\nChange-Id: I3bcd56c7844847a7f0367f8ce6a72bddcd09d441\n"
    },
    {
      "commit": "af248646f2de879a25114e9f0fb42ac903fe9db7",
      "tree": "e3ac9ed7e2f50fe5d45edf15cfe35bbb51ffd410",
      "parents": [
        "9e85d55c085504b88a9ac68c3f9605629dc06853",
        "33e1f8fbd4e1269add02b3288a903092d0fb8258"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 24 13:38:19 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 24 13:38:19 2015 +0000"
      },
      "message": "Merge \"Don\u0027t use \u0027sh\u0027 on the host.\""
    },
    {
      "commit": "33e1f8fbd4e1269add02b3288a903092d0fb8258",
      "tree": "e3ac9ed7e2f50fe5d45edf15cfe35bbb51ffd410",
      "parents": [
        "9e85d55c085504b88a9ac68c3f9605629dc06853"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 24 14:37:29 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 24 14:37:29 2015 +0100"
      },
      "message": "Don\u0027t use \u0027sh\u0027 on the host.\n\nChange-Id: I319c08367d143443425bc01f4dda28ad46417c7e\n"
    },
    {
      "commit": "9e85d55c085504b88a9ac68c3f9605629dc06853",
      "tree": "1f43ed0b6e64425ed254138a50b75dc5b6795ff3",
      "parents": [
        "11307fd2943663bd7daa85428a104374e6d3e784",
        "06801ffe75b02ed8e79c28f604cfe4694465a8bc"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 24 12:45:28 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 24 12:45:28 2015 +0000"
      },
      "message": "Merge \"Use \u0027sh\u0027 explicitly when invoking the art script.\""
    },
    {
      "commit": "06801ffe75b02ed8e79c28f604cfe4694465a8bc",
      "tree": "0a49dcea38bdcaa3c0575d2d84b0b59f5e379382",
      "parents": [
        "c5cb691ca6a746a193bfbe3525aafa7cbb281d40"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 24 13:44:19 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 24 13:44:19 2015 +0100"
      },
      "message": "Use \u0027sh\u0027 explicitly when invoking the art script.\n\nChange-Id: I5e11483dd75f9ab4dd67f3bbbc45485726d01e34\n"
    },
    {
      "commit": "11307fd2943663bd7daa85428a104374e6d3e784",
      "tree": "a2472f415d7544a7599905cfa0cdaba0fb77c918",
      "parents": [
        "c5cb691ca6a746a193bfbe3525aafa7cbb281d40",
        "4f7fdd297881ee7b794fd3dda11ab29d9ec2c2fe"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 24 12:43:34 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 24 12:43:35 2015 +0000"
      },
      "message": "Merge \"Make tests assume ANDROID_ROOT is not /system.\""
    },
    {
      "commit": "4f7fdd297881ee7b794fd3dda11ab29d9ec2c2fe",
      "tree": "a2472f415d7544a7599905cfa0cdaba0fb77c918",
      "parents": [
        "c5cb691ca6a746a193bfbe3525aafa7cbb281d40"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 24 11:57:37 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 24 12:51:23 2015 +0100"
      },
      "message": "Make tests assume ANDROID_ROOT is not /system.\n\nThis is to enable better chroot-like testing.\n\nChange-Id: I943c68b0ebcdab2f107f808b466ac694085255aa\n"
    },
    {
      "commit": "5ea536aa4a6414db01beaf6f8bd8cb9adc5cfc92",
      "tree": "27b3f1c148744452b26bd4841f0dabe0549c3d86",
      "parents": [
        "c5cb691ca6a746a193bfbe3525aafa7cbb281d40"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 20 20:11:30 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Apr 24 11:08:46 2015 +0100"
      },
      "message": "Remove ArtMethod* parameter from dex cache entry points.\n\nLoad the ArtMethod* using an optimized stack walk instead.\nThis reduces the size of the generated code.\n\nThree of the entry points are called only from a slow-path\nand the fourth (InitializeTypeAndVerifyAccess) is rare and\nalready slow enough that the one or two extra loads\n(depending on whether we already have the ArtMethod* in a\nregister) are insignificant. And as we\u0027re starting to use\nPC-relative addressing of the dex cache arrays (already\ndone by Quick for the boot image), having the ArtMethod* in\na register becomes less likely anyway.\n\nChange-Id: Ib19b9d204e355e13bf386662a8b158178bf8ad28\n"
    },
    {
      "commit": "c5cb691ca6a746a193bfbe3525aafa7cbb281d40",
      "tree": "61ac0c8c0f3842539c27558dacbcf70a0013f4a7",
      "parents": [
        "021190bf584662e75b269ef47cd48e2044e34fe4",
        "4f46ac5179967dda5966f2dcecf2cf08977951ef"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 24 07:52:34 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 24 07:52:34 2015 +0000"
      },
      "message": "Merge \"Cleanup and improve stack map stream\""
    },
    {
      "commit": "021190bf584662e75b269ef47cd48e2044e34fe4",
      "tree": "88476dbad1d1047f4f5a0cdda305a0ea40df4faf",
      "parents": [
        "633a37ece49c5afcf3fa9a89692f07d19c56229b",
        "a61894d88fabe45677f491c9f6bde30059a49026"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 24 00:22:41 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 24 00:22:41 2015 +0000"
      },
      "message": "Merge \"Fix reflection handling and test flakiness\""
    },
    {
      "commit": "a61894d88fabe45677f491c9f6bde30059a49026",
      "tree": "b9d8b09e5f90792867b6720a1fb4ab5c76cdfa5f",
      "parents": [
        "4ceed922d44b68c3fa7cbe670014c9e2e003b92b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 23 16:32:54 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 23 17:21:26 2015 -0700"
      },
      "message": "Fix reflection handling and test flakiness\n\nFixed reflection invoke to handle exceptions which occur from\nFindClass or NewObject by throwing these instead of\nthe expected InvocationTargetException.\n\nAdded test case to 080 for this reflection invoke.\n\nFixed println throwing OOM in 104-growth-limit.\n\nChange-Id: I65766e7c3478e299da06fdc3a521fe3f3e8fdba9\n"
    },
    {
      "commit": "4f46ac5179967dda5966f2dcecf2cf08977951ef",
      "tree": "4c9ea50d9a135767c6e9a4abcf9b9c401a033414",
      "parents": [
        "4ceed922d44b68c3fa7cbe670014c9e2e003b92b"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Apr 23 18:47:21 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Apr 23 19:58:22 2015 +0100"
      },
      "message": "Cleanup and improve stack map stream\n\n- transform AddStackMapEntry into BeginStackMapEntry/EndStackMapEntry.\nThis allows for nicer code and less assumptions when searching for equal\ndex register maps.\n- store the components sizes and their start positions as fields to\navoid re-computation.\n- store the current stack map entry as a field to avoid the copy\nsemantic when updating its value in the stack maps array.\n- remove redundant methods and fix visibility for the remaining ones.\n\nChange-Id: Ica2d2969d7e15993bdbf8bc41d9df083cddafd24\n"
    },
    {
      "commit": "633a37ece49c5afcf3fa9a89692f07d19c56229b",
      "tree": "f90545c44e4533b55136ccd90fe197bc9f92bb18",
      "parents": [
        "360475aba293267398a17184b5330fd857f9b296",
        "084f7d43f4dc38bfc71446b1a3b07af085d778bf"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 23 18:11:04 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 23 18:11:04 2015 +0000"
      },
      "message": "Merge \"Quick: Fix out of temp regs in ArmMir2Lir::GenMulLong().\""
    },
    {
      "commit": "ad67727a492df635aa54dbe58d6c0de54431f600",
      "tree": "17aed602d16377ed058f9a82dd0dbcdb1d8fa4f1",
      "parents": [
        "4ceed922d44b68c3fa7cbe670014c9e2e003b92b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 20 10:48:13 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 23 18:47:53 2015 +0100"
      },
      "message": "Quick: Fix and enable DCE and improve GVN/DCE cleanup.\n\nWhen eliminating a move by renaming its source register,\ncheck that it doesn\u0027t conflict with vreg usage by insns\nbetween the defining insn and the move.\n\nImprove the GVN/DCE cleanup so that it can handle cases\nwhere GVN or DCE is individually disabled in the pass driver\nbut not in the disable_opt flags.\n\nBug: 19419671\nChange-Id: I49bb67b81509f51fbaf90c6016c509962be43736\n"
    },
    {
      "commit": "360475aba293267398a17184b5330fd857f9b296",
      "tree": "4e7d206323f519e877fdf3a08443c1e9a604c8e1",
      "parents": [
        "322b389a74177c9d938f1f73d53110623dfc61b6",
        "8cbab3c4de3328b576454ce702d7748f56c44346"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Apr 23 17:28:35 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 23 17:28:36 2015 +0000"
      },
      "message": "Merge \"Linear scan: split at better  positions.\""
    },
    {
      "commit": "8cbab3c4de3328b576454ce702d7748f56c44346",
      "tree": "8d95b5f6d451983350839a2b294b4bc869bd852a",
      "parents": [
        "b4186df6c48a88ad8028fcf9e1dac5ce6c391de2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Apr 23 15:14:36 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Apr 23 18:27:05 2015 +0100"
      },
      "message": "Linear scan: split at better  positions.\n\n- Split at block entry to piggy back on control flow resolution.\n- Split at the loop header, if the split position is within a loop.\n\nChange-Id: I718299a58c02ee02a1b22bda589607c69a35f0e8\n"
    },
    {
      "commit": "322b389a74177c9d938f1f73d53110623dfc61b6",
      "tree": "b2437d4cdce399ce462d587d9c9c47a8fceb8953",
      "parents": [
        "272bf7e60add5f741fb9a2589eaa71945257afcc",
        "af88835231c2508509eb19aa2d21b92879351962"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Apr 23 17:19:34 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 23 17:19:34 2015 +0000"
      },
      "message": "Merge \"Remove unnecessary null checks in CheckCast and InstanceOf\""
    },
    {
      "commit": "272bf7e60add5f741fb9a2589eaa71945257afcc",
      "tree": "63f9ba9a84c1a94251346e4602626da9433daebb",
      "parents": [
        "4ceed922d44b68c3fa7cbe670014c9e2e003b92b",
        "917f9ab1eaaafdab25b4fd24ca1f49a76182a794"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 23 16:55:10 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 23 16:55:10 2015 +0000"
      },
      "message": "Merge \"ART: Run BooleanSimplifier after inlining\""
    },
    {
      "commit": "af88835231c2508509eb19aa2d21b92879351962",
      "tree": "4ef1c8fb3c5b78175767999a888b0c2cb1ea6485",
      "parents": [
        "da93333d568f3c5bd8eeb58341d10a332e1d42bf"
      ],
      "author": {
        "name": "Guillaume \"Vermeille\" Sanchez",
        "email": "guillaumesa@google.com",
        "time": "Mon Apr 20 14:41:30 2015 +0100"
      },
      "committer": {
        "name": "Guillaume \"Vermeille\" Sanchez",
        "email": "guillaumesa@google.com",
        "time": "Thu Apr 23 17:53:17 2015 +0100"
      },
      "message": "Remove unnecessary null checks in CheckCast and InstanceOf\n\nChange-Id: I6fd81cabd8673be360f369e6318df0de8b18b634\n"
    },
    {
      "commit": "917f9ab1eaaafdab25b4fd24ca1f49a76182a794",
      "tree": "63f9ba9a84c1a94251346e4602626da9433daebb",
      "parents": [
        "4ceed922d44b68c3fa7cbe670014c9e2e003b92b"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Apr 21 15:13:31 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 23 17:46:36 2015 +0100"
      },
      "message": "ART: Run BooleanSimplifier after inlining\n\nInlined methods are currently not simplified.\n\nChange-Id: I075130c9df55e2f55032a2c81b08d42cb2cc01f6\n"
    },
    {
      "commit": "084f7d43f4dc38bfc71446b1a3b07af085d778bf",
      "tree": "025c24678e8014c0184dd15bd93f8758422db85e",
      "parents": [
        "4ceed922d44b68c3fa7cbe670014c9e2e003b92b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 23 17:00:40 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 23 17:00:40 2015 +0100"
      },
      "message": "Quick: Fix out of temp regs in ArmMir2Lir::GenMulLong().\n\nThis fixes running out of temp registers for mul-long that\nneeds a temporary to store the result, i.e. when it\u0027s stored\nto stack location [sp, #offset] with offset \u003e\u003d 1024. The bug\nis currently not reproducible because ARM_R4_SUSPEND_FLAG is\noff and thus we have the extra register available. However,\nthe code generation could be cleaned up and make use of that\nextra register, so pre-emptively fix it anyway.\n\nBug: 20110806\nChange-Id: I8362c349961dbe28fc3ec8a9299b66fd72f26779\n"
    },
    {
      "commit": "4ceed922d44b68c3fa7cbe670014c9e2e003b92b",
      "tree": "9297ed3e808eaa74a956099d1036c6f527179285",
      "parents": [
        "b19c1e666e44a455c955275a967cbf04f397e9d9",
        "c416d3359179b0ec6152104db8240f4d11c54bc7"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Apr 23 15:32:13 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 23 15:32:13 2015 +0000"
      },
      "message": "Merge \"Move stack map stream implementation to its own cc file.\""
    },
    {
      "commit": "b19c1e666e44a455c955275a967cbf04f397e9d9",
      "tree": "1b13ae2783d4833d9ed7fb0ec4e082d96983391c",
      "parents": [
        "b4186df6c48a88ad8028fcf9e1dac5ce6c391de2",
        "c91df2d6339dd4adf2da582372451df19ce2ff44"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 23 15:26:20 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 23 15:26:22 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Quick: Rewrite type inference pass.\"\"\""
    },
    {
      "commit": "c416d3359179b0ec6152104db8240f4d11c54bc7",
      "tree": "82bdb3eb5bb3ebeba82647f8c8a3e3786bebe1b0",
      "parents": [
        "edad8add1f1216850cb3f179ba6f57b0d885b016"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Apr 23 16:01:43 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Apr 23 16:03:05 2015 +0100"
      },
      "message": "Move stack map stream implementation to its own cc file.\n\nIt\u0027s big enough now to separate the implementation from the header.\n\nIt also enables faster compilation time for experiments.\n\nChange-Id: Ica0c72994d5e461c62c32628010f46f9e5c46b57\n"
    },
    {
      "commit": "b4186df6c48a88ad8028fcf9e1dac5ce6c391de2",
      "tree": "6e1123550b1efeb79de5d10c4165213bf946df21",
      "parents": [
        "c1b829b8d52affb1b6789550d2ffcc6689389209",
        "0a025d276b0be004f68ff8cd68555bc2d9c53805"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Apr 23 14:14:10 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 23 14:14:10 2015 +0000"
      },
      "message": "Merge \"Skip known broken tests for ARM back ends on ARM as second arch.\""
    },
    {
      "commit": "0a025d276b0be004f68ff8cd68555bc2d9c53805",
      "tree": "6e1123550b1efeb79de5d10c4165213bf946df21",
      "parents": [
        "c1b829b8d52affb1b6789550d2ffcc6689389209"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Apr 23 15:02:51 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Apr 23 15:05:23 2015 +0100"
      },
      "message": "Skip known broken tests for ARM back ends on ARM as second arch.\n\nChange-Id: Idbe4c26d8ffcd91882fe61f62c959cc27d1f28b1\n"
    },
    {
      "commit": "c1b829b8d52affb1b6789550d2ffcc6689389209",
      "tree": "95de716149b02afa0011c4e3c200917b3874ba97",
      "parents": [
        "84c5f9986dfaab881d4c66b2f3cb214e6152e9f7",
        "edad8add1f1216850cb3f179ba6f57b0d885b016"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Apr 23 13:39:17 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 23 13:39:19 2015 +0000"
      },
      "message": "Merge \"Remove ActAsNullConstant\""
    },
    {
      "commit": "edad8add1f1216850cb3f179ba6f57b0d885b016",
      "tree": "0467b99624818ead8a86a192d05c7a28dad18311",
      "parents": [
        "be52c68dca2f146a571ffa65624acf2e6c7adeb2"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Apr 23 14:34:33 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Apr 23 14:38:07 2015 +0100"
      },
      "message": "Remove ActAsNullConstant\n\nWe now properly type null constants during ssa builder so this is not\nneeded anymore.\n\nBug: 20322006\nChange-Id: Ic060a52d4fa2d4f00755dd6427f822d368392d7b\n"
    },
    {
      "commit": "84c5f9986dfaab881d4c66b2f3cb214e6152e9f7",
      "tree": "f07290c03789f7b1d7851bc94ebe77b8060eb9a0",
      "parents": [
        "9d4d13f38398e880e610323242fe73d609bac40d",
        "538491967d1514a263e99d78379d743fcc896eef"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Apr 23 11:58:06 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 23 11:58:07 2015 +0000"
      },
      "message": "Merge \"Mul simplification should expect zero operand\""
    },
    {
      "commit": "538491967d1514a263e99d78379d743fcc896eef",
      "tree": "f07290c03789f7b1d7851bc94ebe77b8060eb9a0",
      "parents": [
        "9d4d13f38398e880e610323242fe73d609bac40d"
      ],
      "author": {
        "name": "Serguei Katkov",
        "email": "serguei.i.katkov@intel.com",
        "time": "Mon Apr 20 14:22:27 2015 +0600"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Apr 23 12:53:47 2015 +0100"
      },
      "message": "Mul simplification should expect zero operand\n\nIt is possible that zero constant can appear due to\nsimplification of other instructions, so we cannot expect\nzero handling from constant optimizations.\n\nChange-Id: I084126fd0c106ac2683c4f10a451960d9807f4f6\nSigned-off-by: Serguei Katkov \u003cserguei.i.katkov@intel.com\u003e\n"
    },
    {
      "commit": "c91df2d6339dd4adf2da582372451df19ce2ff44",
      "tree": "1aed25cec12d9bf8dc2d07945ed45b8b230010df",
      "parents": [
        "9d4d13f38398e880e610323242fe73d609bac40d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 23 09:29:21 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 23 11:11:33 2015 +0100"
      },
      "message": "Revert \"Revert \"Quick: Rewrite type inference pass.\"\"\n\nFix the type of the ArtMethod* SSA register.\n\nBug: 19419671\nThis reverts commit 1b717f63847de8762e7f7bdd6708fdfae9d24a67.\n\nChange-Id: Ie4da3c03a0e0334a39a24718f6dc31f9255cfb53\n"
    },
    {
      "commit": "9d4d13f38398e880e610323242fe73d609bac40d",
      "tree": "02e96b57b3f90d08617923f7f21f9b19aff04af2",
      "parents": [
        "baba16a405df121542b66eba1a025e58850092b4",
        "1b717f63847de8762e7f7bdd6708fdfae9d24a67"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 23 01:56:11 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 23 01:56:12 2015 +0000"
      },
      "message": "Merge \"Revert \"Quick: Rewrite type inference pass.\"\""
    },
    {
      "commit": "1b717f63847de8762e7f7bdd6708fdfae9d24a67",
      "tree": "e87208bc72796fb310750677650b2e8344f9f81c",
      "parents": [
        "8e58d76eb30a50e38c46bd6277186116937ba396"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 22 18:45:06 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 22 18:45:06 2015 -0700"
      },
      "message": "Revert \"Quick: Rewrite type inference pass.\"\n\nBreaks arm64, as the method register is not correctly flagged\nas ref and thus 32bit.\n\nBug: 19419671\nThis reverts commit e490b01c12d33f3bd5c247b55b47e507cc9c8fab.\n"
    },
    {
      "commit": "baba16a405df121542b66eba1a025e58850092b4",
      "tree": "17143f52b438284477fa6e3ac8fe74b0d82a5744",
      "parents": [
        "8e58d76eb30a50e38c46bd6277186116937ba396",
        "bfdcdc1e2c0af34aeaf7b5b4d499975e0c3157be"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 23 01:24:51 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 23 01:24:52 2015 +0000"
      },
      "message": "Merge \"ART: Fix re-throwing failures of non-convention errors\""
    },
    {
      "commit": "bfdcdc1e2c0af34aeaf7b5b4d499975e0c3157be",
      "tree": "17143f52b438284477fa6e3ac8fe74b0d82a5744",
      "parents": [
        "8e58d76eb30a50e38c46bd6277186116937ba396"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 22 18:10:36 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 22 18:10:36 2015 -0700"
      },
      "message": "ART: Fix re-throwing failures of non-convention errors\n\nWhile it is convention that Throwable subclasses should have a\nconstructor with a String argument, that is not rigorously enforced.\nSo if a static initializer throws an error that omits that\nconstructor, we must not provide a message when trying to throw\nagain.\n\nBug: 20495321\nBug: 20497840\nChange-Id: Ia4334fa24223750f90a8f2732f1eb1e738575e8d\n"
    },
    {
      "commit": "8e58d76eb30a50e38c46bd6277186116937ba396",
      "tree": "4ea04c2731b751f8919c90f240660e65b09645f5",
      "parents": [
        "0ad14266a71c8579cd6bebcaf42f56fae37c988f",
        "8a813f72d21dea87b9e94b686fb35868ad4a88c4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 22 21:19:51 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 22 21:19:51 2015 +0000"
      },
      "message": "Merge \"Do not mention x86 floating point numbers in CFI.\""
    },
    {
      "commit": "8a813f72d21dea87b9e94b686fb35868ad4a88c4",
      "tree": "b442306bde33fe6fb6afd7c8ee65a8ec95aeaf4a",
      "parents": [
        "be52c68dca2f146a571ffa65624acf2e6c7adeb2"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Apr 20 16:43:52 2015 +0100"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 22 14:19:16 2015 -0700"
      },
      "message": "Do not mention x86 floating point numbers in CFI.\n\nWe have explicitly declared them as undefined, but libunwind does\nnot seem to support them at all.  Omit the initialization to make\nlibunwind happy.  Reasonable debugger should still default to\nundefined since they are not callee save registers.\n\nBug: 20491296\nChange-Id: Ibaa9595b977508e518bfe3f88b240e8959b1198f\n"
    },
    {
      "commit": "0ad14266a71c8579cd6bebcaf42f56fae37c988f",
      "tree": "d04d27d21b3c7733d784e303f01f873bb99e7770",
      "parents": [
        "1f02f1a7b3073b8fef07770a67fbf94afad317f0",
        "2cebb24bfc3247d3e9be138a3350106737455918"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 22 19:59:01 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 22 19:59:02 2015 +0000"
      },
      "message": "Merge \"Replace NULL with nullptr\""
    },
    {
      "commit": "2cebb24bfc3247d3e9be138a3350106737455918",
      "tree": "d04d27d21b3c7733d784e303f01f873bb99e7770",
      "parents": [
        "1f02f1a7b3073b8fef07770a67fbf94afad317f0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 21 16:50:40 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 22 12:44:27 2015 -0700"
      },
      "message": "Replace NULL with nullptr\n\nAlso fixed some lines that were too long, and a few other minor\ndetails.\n\nChange-Id: I6efba5fb6e03eb5d0a300fddb2a75bf8e2f175cb\n"
    },
    {
      "commit": "1f02f1a7b3073b8fef07770a67fbf94afad317f0",
      "tree": "b808657b55f9e6ef8ade93a364898da98816e296",
      "parents": [
        "692c03bfbd3a86f7ce329844d32f7e047997a2f0",
        "e490b01c12d33f3bd5c247b55b47e507cc9c8fab"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 22 19:41:40 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 22 19:41:40 2015 +0000"
      },
      "message": "Merge \"Quick: Rewrite type inference pass.\""
    },
    {
      "commit": "e490b01c12d33f3bd5c247b55b47e507cc9c8fab",
      "tree": "9b04b5390f0f29986d9951bdce4a2cb083113809",
      "parents": [
        "fac10700fd99516e8a14f751fe35553021ce6982"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 24 11:32:46 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 22 20:40:00 2015 +0100"
      },
      "message": "Quick: Rewrite type inference pass.\n\nUse method signatures, field types and types embedded in dex\ninsns for type inference. Perform the type inference in two\nphases, first a simple pass that records all types implied\nby individual insns, and then an iterative pass to propagate\nthose types further via phi, move, if-cc and aget/aput insns.\n\nBug: 19419671\nChange-Id: Id38579d48a44fc5eadd13780afb6d370093056f9\n"
    },
    {
      "commit": "692c03bfbd3a86f7ce329844d32f7e047997a2f0",
      "tree": "1988396ae88d62a0ba1474b35e7fee6a523fb473",
      "parents": [
        "be52c68dca2f146a571ffa65624acf2e6c7adeb2",
        "fac10700fd99516e8a14f751fe35553021ce6982"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 22 19:32:36 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 22 19:32:38 2015 +0000"
      },
      "message": "Merge \"Quick: Remove broken Mir2Lir::LocToRegClass().\""
    },
    {
      "commit": "be52c68dca2f146a571ffa65624acf2e6c7adeb2",
      "tree": "e2d341140cb5dae808d81f5dda7a6050d79588d1",
      "parents": [
        "54862b361d94f21c5aa0c7bcec012f3541a1044a",
        "533c207f9d2da6d913c4b10f6f757fe9d6367b10"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Apr 22 17:25:06 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 22 17:25:08 2015 +0000"
      },
      "message": "Merge \"Simplify template parameters of Elf classes.\""
    },
    {
      "commit": "54862b361d94f21c5aa0c7bcec012f3541a1044a",
      "tree": "80b8d9f3b56159e75100dcf570b19246d8d548a7",
      "parents": [
        "f456ce1d602044e96deef30297b16bfb44f6663a",
        "7fd8b59ab9fcd896a95883ce7be781d74e849d60"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 22 16:13:23 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 22 16:13:23 2015 +0000"
      },
      "message": "Merge \"Fix X86_64 assembler REX instructions\""
    },
    {
      "commit": "533c207f9d2da6d913c4b10f6f757fe9d6367b10",
      "tree": "1e2c1bf5c91898e785398a3d66e7e7570e8b29db",
      "parents": [
        "8d1ba74fe48703fc2b5a5920dd5eea0c65db5b15"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Apr 22 12:20:22 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Apr 22 16:56:23 2015 +0100"
      },
      "message": "Simplify template parameters of Elf classes.\n\nThe ELF specification defines several types which differ between\n32-bit ELF and 64-bit ELF.  We used to template all ELF-related\nmethods on all of those types which was very verbose.\n\nThis CL wraps all the types as typedefs in ElfTypes32 and ElfTypes64.\nOne of those wrappers is then used as the template parameter.\n\nChange-Id: I65247c2c79d92a7c4799e988cf3e4a1b10eb4788\n"
    },
    {
      "commit": "7fd8b59ab9fcd896a95883ce7be781d74e849d60",
      "tree": "80b8d9f3b56159e75100dcf570b19246d8d548a7",
      "parents": [
        "f456ce1d602044e96deef30297b16bfb44f6663a"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Wed Apr 22 10:46:07 2015 -0400"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Wed Apr 22 11:16:51 2015 -0400"
      },
      "message": "Fix X86_64 assembler REX instructions\n\nA couple of instructions don\u0027t pass the \u0027Address\u0027 to EmitRex64.  This\nwill cause the incorrect register number to be assembled if the register\nis \u003e\u003d 8.\n\nThis may cause bad code to be generated in some cases.\n\nChange-Id: I2907ae8b7629ee95d542e3fab429318994a78938\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "f456ce1d602044e96deef30297b16bfb44f6663a",
      "tree": "415fbd05d95758765fd46ba313effc3f81e835f4",
      "parents": [
        "0edd36bc24e7086277f3f1fbadcdcce288a7ebe5",
        "943136fd031f4fe18f6e8a956c72171d7cf78da0"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Apr 22 14:24:56 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 22 14:24:57 2015 +0000"
      },
      "message": "Merge \"Remove warning when we do too many simplifications\""
    },
    {
      "commit": "943136fd031f4fe18f6e8a956c72171d7cf78da0",
      "tree": "4f437e4fb89642e14bcad0e2fbdd4da39db4b3c2",
      "parents": [
        "862aaefdd63d8058b54a7d956a0229eec9dcbde6"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Apr 22 15:19:51 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Apr 22 15:24:38 2015 +0100"
      },
      "message": "Remove warning when we do too many simplifications\n\nThis happens pretty often and pollutes the logs.\n\nChange-Id: I074783d3cf3519a5186d2dd81c821d97071302e7\n"
    },
    {
      "commit": "0edd36bc24e7086277f3f1fbadcdcce288a7ebe5",
      "tree": "e9395f53ceef482bd70bebb892c10056dd77c1d1",
      "parents": [
        "83fca401adc11ae50a05db7172f6d48d136b240a",
        "c3d743fa2a26effcb35627d8a1338029c86e582a"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Apr 22 13:54:21 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 22 13:54:22 2015 +0000"
      },
      "message": "Merge \"ART: Update last_instruction when adding Phis\""
    },
    {
      "commit": "c3d743fa2a26effcb35627d8a1338029c86e582a",
      "tree": "cf883e9b7f707ac2e6c2a6627e462b20e634c17c",
      "parents": [
        "8d1ba74fe48703fc2b5a5920dd5eea0c65db5b15"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Apr 22 13:40:50 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Apr 22 14:43:19 2015 +0100"
      },
      "message": "ART: Update last_instruction when adding Phis\n\nHBasicBlock::InsertPhiAfter would not update the last_instruction\npointer when adding at the end of the list. This could cause problems\nwhen iterating over phis backwards. Fortunately, we don\u0027t do that\nanywhere in the existing code.\n\nChange-Id: I4487265bf2cf3d3819623fafd7ce7c359bac190e\n"
    },
    {
      "commit": "83fca401adc11ae50a05db7172f6d48d136b240a",
      "tree": "bdb5616c4fa165864534192f0a30d438dd84c005",
      "parents": [
        "eb0c401408e414dae8ff1b2da47fd3f712925a6d",
        "40741f394b2737e503f2c08be0ae9dd490fb106b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 22 13:28:09 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 22 13:28:09 2015 +0000"
      },
      "message": "Merge \"[optimizing] Use more X86_64 addressing modes\""
    },
    {
      "commit": "eb0c401408e414dae8ff1b2da47fd3f712925a6d",
      "tree": "44ec250825996f264b43db5443f0f50eb2f3ad64",
      "parents": [
        "8d1ba74fe48703fc2b5a5920dd5eea0c65db5b15",
        "862aaefdd63d8058b54a7d956a0229eec9dcbde6"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Apr 22 12:42:14 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 22 12:42:15 2015 +0000"
      },
      "message": "Merge \"[optimizing] Name the last DCE pass.\""
    }
  ],
  "next": "862aaefdd63d8058b54a7d956a0229eec9dcbde6"
}
