)]}'
{
  "log": [
    {
      "commit": "c5c7187bfa1eb214ac2cff480ff158bb32473a2f",
      "tree": "53255873217441ce286224f79fbd47bd42848afd",
      "parents": [
        "124f8813856f13033dc2efd50c65562cd2f95816"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 15 21:07:29 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 15 21:53:32 2016 -0700"
      },
      "message": "Fix 32-bit device tests\n\n32-bit tests are installed to /data/nativetest, not /data/nativetest32.\n\nTest: m -j test-art-target-gtest32\nChange-Id: I2736d6783dd34550dbfbbe54ffa724cd2b886d8b\n"
    },
    {
      "commit": "6e95dd56e43b3a29fb8360bd94e31cd2eaab1d3d",
      "tree": "c536c5588f8a96f4559ca00921c7852a82558ea5",
      "parents": [
        "6b22aa5106e60545119b9eeaceaa9f87ee597305"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Sep 12 15:37:10 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 15 12:27:06 2016 -0700"
      },
      "message": "Convert art gtests to Android.bp\n\nThis splits the compilation and running of the art gtests into two\nseparate locations.  The tests are now compiled in multiple Android.bp\nmodules in each directory.  art.go collects the installed locations of\neach test and exports it as make variables.  art/build/Android.gtest.mk\nconverts the list into the rules to run the tests.\n\nThis has a few changes in behavior:\n  - The rules to build tests are now always defined, and will build as\n    part of mmma art or make checkbuild.\n  - Host tests are no longer installed into out/host/linux-x86/bin, they\n    are in out/host/linux-x86/nativetest[64]/\u003cmodule name\u003e/\u003ctest name\u003e\n  - Target tests are now in\n    /data/nativetest[64]/art/\u003carch\u003e/\u003cmodule name\u003e/\u003ctest name\u003e\n\nTest: mmma -j art\nTest: m -j test-art-host\nTest: m -j test-art-target\nChange-Id: Iabcd99d43890e6b693688422b07a283c3226a496\n"
    },
    {
      "commit": "6b22aa5106e60545119b9eeaceaa9f87ee597305",
      "tree": "ab26f42ac9fb9fff52c6f0683561c0bcdebd9569",
      "parents": [
        "6b4d988feb18559204f7175914851baf28febd8c"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Sep 12 14:35:39 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 15 12:24:25 2016 -0700"
      },
      "message": "Convert libart-gtest to Android.bp\n\nChange-Id: Ibea17e3e002e6ad3f82158cd3c69d087fa9b15c9\n"
    },
    {
      "commit": "b76bc78ed20629966f4358b2031e75897d616d53",
      "tree": "7d78d94551dfb83f2d5c0aaca5f451392892c7a4",
      "parents": [
        "e305eaf2c08a203e3e046c3a8608b90b9dc5a080"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 14 12:33:34 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 15 10:55:08 2016 +0100"
      },
      "message": "Revert \"Revert \"Re-apply \"Cleanup run-test and Makefile around boot image and PIC.\"\"\"\n\nThis reverts commit 8522758c5ef6050e355613630ff81c2b49373b44.\n\nChange-Id: Ie18417bd3d528673e3da39d92f43f20b853facda\n"
    },
    {
      "commit": "3b7537bfc5a6b7ccb18b3970d8edf14b72464af7",
      "tree": "49996e22e36a64ea862e7b173e9626d862a4d595",
      "parents": [
        "c11d1b42828475ea1e7319fc3eb9402edc5b1c13"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 13 11:56:01 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 14 10:42:08 2016 +0100"
      },
      "message": "Revert \"Revert \"Use implicit null checks inside try blocks.\"\"\n\nFix implicit checks in try blocks to emit stack maps.\nFix arm64 null expection from signal entrypoint to call\nthe runtime handler instead or simply jumping there.\n\nOn Nexus 9, AOSP ToT, the boot.oat size reduction is\n  prebuilt multi-part boot image:\n    - 32-bit boot.oat: -448KiB (-1.3%)\n    - 64-bit boot.oat: -528KiB (-1.2%)\n  on-device built single boot image:\n    - 32-bit boot.oat: -448KiB (-1.4%)\n    - 64-bit boot.oat: -528KiB (-1.3%)\nNote that the oat files no longer contain dex files which\nhave been moved to vdex, so the percentages are not directly\ncomparable with the those reported in the original commit.\n\nTest: Run ART test suite including gc-stress on host and Nexus 9.\nBug: 30212852\nBug: 31468464\n\nThis reverts commit 0719b5b9b458cb3eb9f0823f0dacdfe1a71214dd.\n\nChange-Id: If8a9da8c11adf2aad203e93b6684ce16ed776285\n"
    },
    {
      "commit": "e204051d3cc3b1be2e91f26621966c79c82fa74c",
      "tree": "63270cd53f278140c7aef246925b39c858ccc55e",
      "parents": [
        "f0c41505e1d241cf2191d3db377a26ce0bb43b51",
        "0719b5b9b458cb3eb9f0823f0dacdfe1a71214dd"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 12 22:07:09 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 12 22:07:10 2016 +0000"
      },
      "message": "Merge \"Revert \"Use implicit null checks inside try blocks.\"\""
    },
    {
      "commit": "0719b5b9b458cb3eb9f0823f0dacdfe1a71214dd",
      "tree": "cf0844758239b6ec41fa070e4fb4b4fbcbb9e506",
      "parents": [
        "7aa7560683626c7893011271c241b3265ded1dc3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 12 22:05:33 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 12 22:05:33 2016 +0000"
      },
      "message": "Revert \"Use implicit null checks inside try blocks.\"\n\nFails gcstress tests.\n\nThis reverts commit 7aa7560683626c7893011271c241b3265ded1dc3.\n\nChange-Id: I4f5c89048b9ffddbafa02f3001e329ff87058ca2\n"
    },
    {
      "commit": "6ee9a333553b7e7268b5bdab14974475ff385106",
      "tree": "ed38b36182bfb48bf8f5aed5c7f3fd78aaea2c48",
      "parents": [
        "a5d718a9f8ef51e41a1485a0f6ab201aec4c0c82",
        "7aa7560683626c7893011271c241b3265ded1dc3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Sep 12 15:48:22 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 12 15:48:23 2016 +0000"
      },
      "message": "Merge \"Use implicit null checks inside try blocks.\""
    },
    {
      "commit": "7aa7560683626c7893011271c241b3265ded1dc3",
      "tree": "8c9839456149d2320995764ebab5d227a6dea8e7",
      "parents": [
        "ae6ba1fd36ef6cd6520354fa874cf9cc2fc5877b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 07 15:09:21 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 12 14:52:17 2016 +0100"
      },
      "message": "Use implicit null checks inside try blocks.\n\nMake implicit null check entrypoint save all registers, use\nplatform-specific approach to still pass the fault address.\nAllow implicit null checks in try blocks.\n\nOn Nexus 9, AOSP ToT, the boot.oat size reduction is\n  prebuilt multi-part boot image:\n    - 32-bit boot.oat: -452KiB (-0.7%)\n    - 64-bit boot.oat: -482KiB (-0.7%)\n  on-device built single boot image:\n    - 32-bit boot.oat: -444KiB (-0.7%)\n    - 64-bit boot.oat: -488KiB (-0.7%)\n\nTest: Run ART test suite on host and Nexus 9.\nTest: Build aosp_mips64-eng.\nChange-Id: I279f3ab57e2e2f338131c5cac45c51b673bdca19\n"
    },
    {
      "commit": "f029fb6dbcff10384e32c1bcd5c9e70691c22f34",
      "tree": "a172ffb897d996006381a40b8e01d4251eacd22c",
      "parents": [
        "50082ba4acf52b9d9b891576de34979f63ce3131",
        "1ba223b2e6dab206b02613bc8b523553477fc4a0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 12 13:28:51 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 12 13:28:51 2016 +0000"
      },
      "message": "Merge \"Squashed commit of the following:\""
    },
    {
      "commit": "1ba223b2e6dab206b02613bc8b523553477fc4a0",
      "tree": "1816c620ba73357ecdbad8175a3de6b9f751232f",
      "parents": [
        "87068b4782c184d1d2e5b99a640a0328ca1198f2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 12 14:24:36 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 12 14:24:36 2016 +0100"
      },
      "message": "Squashed commit of the following:\n\ncommit 487bc26b726a839b2e46424ee3779ac3bb2033f6\nAuthor: Nicolas Geoffray \u003cngeoffray@google.com\u003e\nDate:   Mon Sep 12 14:24:12 2016 +0100\n\n    Revert \"Cleanup run-test and Makefile around boot image and PIC.\"\n\n    This reverts commit 8c9ccac080e98fc5f33ba940a1216e9c2cc079db.\n\ncommit cefadb4b835390b508ae1d2b899f39f3769a593a\nAuthor: Nicolas Geoffray \u003cngeoffray@google.com\u003e\nDate:   Mon Sep 12 14:23:47 2016 +0100\n\n    Revert \"Update test and dependencies after boot image changes.\"\n\n    This reverts commit 2a1a8d7fa450a8196a63afb3bf647b2bec723497.\n\nChange-Id: I58731d845c1166406039a9b74c833d72a82c88fb\n"
    },
    {
      "commit": "50082ba4acf52b9d9b891576de34979f63ce3131",
      "tree": "cc922f1a9222b1837552f56a87cf8451428d497a",
      "parents": [
        "580f3c4ba69fbc909f8c727b8e84597efa57c9a3",
        "fd0740a7dc1d93fc1fd37da23a9f346ebb03f95b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Sep 12 11:37:04 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 12 11:37:04 2016 +0000"
      },
      "message": "Merge \"MIPS64: Sign-extend results in art_quick_get32_static/instance\""
    },
    {
      "commit": "7cb4fb03a21b1806c8f370081c59f5e979f9baa7",
      "tree": "bceb8f03c34cc1ff5cb206efb1fbed34ddf3d17b",
      "parents": [
        "87068b4782c184d1d2e5b99a640a0328ca1198f2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 12 10:21:08 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 12 10:21:08 2016 +0100"
      },
      "message": "Blacklist failing test after critical JNI changes.\n\nChange-Id: Ia525d12ba0a223ee3dfc4b095e0fe045271649cb\n"
    },
    {
      "commit": "8536f24ed62b0a2d76111ad6780430395bd67508",
      "tree": "cb2f32a1486226e43982f83eab16b1d514aa5967",
      "parents": [
        "4bd3d6b9b98be600a1f5906d6d09ed6867d1376b",
        "986660c7175b3a99268a7bc38f283a2b1161781b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 12 08:19:21 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 12 08:19:22 2016 +0000"
      },
      "message": "Merge \"MIPS32: Properly handle doubles in GetRegisterIfAccessible\""
    },
    {
      "commit": "4bd3d6b9b98be600a1f5906d6d09ed6867d1376b",
      "tree": "b78af169928d103026a9e20596164fd49f0ffdbe",
      "parents": [
        "bd2b49b0e1501b47c1acb3a7eef762cb0b032b32",
        "8c9ccac080e98fc5f33ba940a1216e9c2cc079db"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 12 08:18:52 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 12 08:18:53 2016 +0000"
      },
      "message": "Merge \"Cleanup run-test and Makefile around boot image and PIC.\""
    },
    {
      "commit": "03008e464f521ad80255dae27959e0bbb31275e4",
      "tree": "c75ef31fc328e2ee5ec89963c6cfbe7e30fd836f",
      "parents": [
        "dab798e8dc4ff96538ebe7a0bee142e8196e7d01",
        "0bc4335469d2dcba515a153804098b12ec2360fe"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Sep 10 00:16:33 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Sep 10 00:16:34 2016 +0000"
      },
      "message": "Merge \"test: Disable 004-JniTest for nodex2oat and JIT config\""
    },
    {
      "commit": "0bc4335469d2dcba515a153804098b12ec2360fe",
      "tree": "b21606a18646cdc0d22eb2346cc71c1582953ac5",
      "parents": [
        "367f3dd32454858b8b25d87feb8f6599d3b4c9dd"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Sep 09 15:04:27 2016 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Sep 09 15:13:33 2016 -0700"
      },
      "message": "test: Disable 004-JniTest for nodex2oat and JIT config\n\nThese configs use generic jni, which is unsupported for @CriticalNative\n\nBug: 31400248\nChange-Id: I77a2959e5657d6e0ed33e46e5179ad65342f30d5\n"
    },
    {
      "commit": "279ac5c060a1a642c786730e3f2b05d556c00839",
      "tree": "2c7a4faea98f43828f465f46d77e9b12d6f2f09a",
      "parents": [
        "30a6a8830f6bec346de3e9ad046c8576283e36d8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 08 17:34:25 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 09 14:16:13 2016 -0700"
      },
      "message": "Don\u0027t assume resolved classes are filled in for ResolvedFieldAccessTest\n\nThe assumption that the dex cache type for class of the field is\nresolved is not correct since FindClass does not fill in the\nresolved type array. This resulted in crashes if dex_access_to \u003d\u003d\nnullptr.\n\nAlso implemented for ResolvedMethodAccessTest\n\nBug: 31277064\n\nTest: test-art-host CC baker, launch ZeroTouch with PGO.\n\n(cherry picked from commit c90450a201707111e33d6b6f37d431b201849a8b)\n\nChange-Id: Id5e71ea0eced1b631a3bd7d297229a66cb190954\n"
    },
    {
      "commit": "4a7ad326d9188707c029f14871bafc41431e9d10",
      "tree": "bfe06e7e244359b52357548ba4391326e0053713",
      "parents": [
        "4d2cf03eebd49384ea025653cc7bfa31233dd9cb",
        "1f3925d4f067438d3689ef2736fd2af063c98668"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Sep 09 19:41:11 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 09 19:41:12 2016 +0000"
      },
      "message": "Merge \"Fix vtable corruption issue\""
    },
    {
      "commit": "367f3dd32454858b8b25d87feb8f6599d3b4c9dd",
      "tree": "9fe45c9f6785c31918f70ed2d12683f9c8d702af",
      "parents": [
        "fa7b5c97db681e3d64d145807927cfafae78729b"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Sep 01 17:00:24 2016 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Sep 09 10:48:56 2016 -0700"
      },
      "message": "jni: Add @CriticalNative optimization to speed up JNI transitions\n\nChange-Id: I963059ac3a72dd8e6a867596c356d7062deb6da7\n"
    },
    {
      "commit": "1f3925d4f067438d3689ef2736fd2af063c98668",
      "tree": "4e1ad2f24b73dbf6c2ea99881e6c4cd99193be76",
      "parents": [
        "038cb84f792501ae01561fe5ea4e8144f1918b7e"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Sep 07 12:04:20 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Sep 09 10:26:42 2016 -0700"
      },
      "message": "Fix vtable corruption issue\n\nWe were adding duplicate methods to the vtable in some cases where\ndefault methods (and conflict methods) were used. This caused issues\nwhere they were not correctly overridden in subclasses that implement\nthese methods directly. When overridden only one of the vtable entries\nwas updated meaning it was still possible to reach the overridden code\nusing a virtual call.\n\nThis change prevents the duplicate methods from being added to the\nvtable in this circumstance. It also adds a debug check that ensures\nthat the vtable has no duplicates to prevent regressions.\n\nBug: 31280371\n\nTest: mma test-art-host\nTest: mma test-art-host-run-test-960-default-smali\n\nChange-Id: I17d88fb8949c8d5d75b4de3c734fd98660b81e61\n"
    },
    {
      "commit": "fd0740a7dc1d93fc1fd37da23a9f346ebb03f95b",
      "tree": "c1dacdf16bbcd6cec04eb1b7a8bcaaafbade6c95",
      "parents": [
        "4b3acdb2e432d267b7c091ed4c15b0f46ec48bc0"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Fri Sep 09 17:53:01 2016 +0200"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Fri Sep 09 17:53:48 2016 +0200"
      },
      "message": "MIPS64: Sign-extend results in art_quick_get32_static/instance\n\nReturn types of artGet32StaticFromCode and artGet32InstanceFromCode\nare unsigned (size_t). On the other hand, managed code expects signed\n32-bit values. This is problematic on MIPS64 which expects that all\ninteger type variables are properly sign-extended in registers.\n\nThis fixes test 529-checker-unresolved.\n\nTest: mma -j2 test-art-target in QEMU\nChange-Id: I70f53ded9bfa1cfd53bcc639fb4841192ee71b2b\n"
    },
    {
      "commit": "8c9ccac080e98fc5f33ba940a1216e9c2cc079db",
      "tree": "1624ccde9bc6b751c01e0b0080075e0b6d0db22e",
      "parents": [
        "b0f443217306b8a307f73d35cb27c1cac2e1c360"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 07 16:02:15 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 09 14:12:37 2016 +0100"
      },
      "message": "Cleanup run-test and Makefile around boot image and PIC.\n\n- JIT boot image is interpret-only\n- Default is PIC image\n- \"Default\" compiler is gone.\n\ntest: m -j32 test-art-host-run-test (with different macro variants)\n\nChange-Id: I547f4579fa08bbcb634b256125ca45d832dc1d6b\n"
    },
    {
      "commit": "986660c7175b3a99268a7bc38f283a2b1161781b",
      "tree": "f0ac68f80d63045c47d2f4dbf227a3f548747391",
      "parents": [
        "e22a8cb3767bd59605a4ca5e9e53d4fe5081a48c"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Thu Dec 10 11:44:50 2015 +0100"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Fri Sep 09 12:54:36 2016 +0200"
      },
      "message": "MIPS32: Properly handle doubles in GetRegisterIfAccessible\n\nThere was a problem with floating point registers and exception\nhandler. In optimizing compiler fpu registers are treated as 64-bit.\nThis is problematic since logic in GetRegisterIfAccessible doesn\u0027t\nsupport 64-bit floating point registers.\n\nThis fixes tests:\n    510-checker-try-catch\n    534-checker-bce-deoptimization\n\nTest: mma test-art-target on CI20 (mips32r2) and emulator (mips32r6)\n\nChange-Id: I0f49c1c30f97077b82ad08fcc3cdb86a4877af23\n"
    },
    {
      "commit": "d7a622279b9f7aeba3a3c964ca162caff0c7931c",
      "tree": "ff521ec5322bc1d33a5500ac393d672c2341983b",
      "parents": [
        "090a5da3a7f320b9d2aa9fa461efc11a7eb39392",
        "bb816d66aabb9c2a2e095517d2013041116332db"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 08 20:07:41 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 08 20:07:42 2016 +0000"
      },
      "message": "Merge \"Add transactions for string resolve\""
    },
    {
      "commit": "bb816d66aabb9c2a2e095517d2013041116332db",
      "tree": "1d51444ec1d6febfba8c2d6e9502bf76939261fa",
      "parents": [
        "ddac139d83bfb121d1536fb40ab48c9bee6c25b1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 07 10:17:46 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 08 11:17:17 2016 -0700"
      },
      "message": "Add transactions for string resolve\n\nFixes a bug where resolved strings can be left in the dex cache after\na transaction is rolled back even though the interned string was\nremoved.\n\nAdded test in transaction_test.\n\nBug: 31239436\n\nTest: test-art-host\n\nChange-Id: I42c67bcefeae8db134cde34c480261f52db4102e\n"
    },
    {
      "commit": "9d14eb15a5d1bc98ffb669a18672c4455ce9da4a",
      "tree": "fa08fb4f6878bedf8a88188f42c50c6d583adb87",
      "parents": [
        "d14d515df39cd963179088b8721768f9645243aa"
      ],
      "author": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Wed Sep 07 14:45:23 2016 +0100"
      },
      "committer": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Thu Sep 08 15:45:57 2016 +0100"
      },
      "message": "Clean up the 538-checker-embed-constants test\n\nChange-Id: Ib7f11fc5d695c8c53fec55573e11bc87313c1065\n"
    },
    {
      "commit": "3e65825978056adf7cbad646d4ab92c161a60e09",
      "tree": "653b2b032c976fcdc9f4d60667ae52c0975d1c75",
      "parents": [
        "888c2f9361fb4b322513cb592fb12e480799ae9c",
        "78da0d7e968d96e432c449d7f471e9f59014eb76"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 06 19:43:09 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 06 19:43:10 2016 +0000"
      },
      "message": "Merge \"ART: Dump more info on 137-cfi failure\""
    },
    {
      "commit": "888c2f9361fb4b322513cb592fb12e480799ae9c",
      "tree": "61dc29fa4dafd1f23be4d0ed01068e057e4b9d36",
      "parents": [
        "22d7ae26348fc66a96fb6eb83bf1b963b33f9e49",
        "c69fba293481af4a0963ec656c3aa9b959d44e01"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 06 19:24:44 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 06 19:24:44 2016 +0000"
      },
      "message": "Merge \"Optimizing: Fix handling empty fill-array-data.\""
    },
    {
      "commit": "78da0d7e968d96e432c449d7f471e9f59014eb76",
      "tree": "92884fa058da2c9feebc52b941e8ebd04ce9e172",
      "parents": [
        "9d185da3bef8caf015d3dbf4ad79c520af7ce3b1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 05 12:30:49 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 06 10:57:51 2016 -0700"
      },
      "message": "ART: Dump more info on 137-cfi failure\n\nPrint the maps of the secondary process. Try to induce in-process\ndumping of the secondary.\n\nBug: 31208203\nChange-Id: I16a80e8510b297d61a51fdee91ab1c2f2e5a47c8\n"
    },
    {
      "commit": "c69fba293481af4a0963ec656c3aa9b959d44e01",
      "tree": "82e5792b5e4efc9b47d653c0faef7fcacd5cf1dc",
      "parents": [
        "9d185da3bef8caf015d3dbf4ad79c520af7ce3b1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 06 16:49:15 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 06 18:52:34 2016 +0100"
      },
      "message": "Optimizing: Fix handling empty fill-array-data.\n\nTest: m test-art-host-run-test-412-new-array\nBug: 31300081\nChange-Id: Id0512fc95a96c37de2ceab481666688435fa30f6\n"
    },
    {
      "commit": "239d6eaff0cbb5c4c0139f7053a012758799f186",
      "tree": "8de26b30a2dfd94f849a38c8901437facbbc53b3",
      "parents": [
        "9d185da3bef8caf015d3dbf4ad79c520af7ce3b1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 05 10:44:04 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 06 17:37:41 2016 +0100"
      },
      "message": "Change deoptimize entrypoint to save everything.\n\nAnd implement FPU register retrieval from stack on x86.\n\nOn Nexus 9, AOSP ToT, the boot.oat size reduction is\n  prebuilt multi-part boot image:\n    - 32-bit boot.oat: -20KiB (-0.03%)\n    - 64-bit boot.oat: -45KiB (-0.06%)\n  on-device built single boot image:\n    - 32-bit boot.oat: -24KiB (-0.04%)\n    - 64-bit boot.oat: -36KiB (-0.05%)\n\nTest: Run ART test suite on host and Nexus 9.\nBug: 30212852\nChange-Id: I5d98e2a24363136d73dfec6100ab02f8eb101911\n"
    },
    {
      "commit": "ebb7b22f4e227176eca40a554990a8e89e283fcf",
      "tree": "574152c57f5dc44f5f877d994d34b541afeb67b9",
      "parents": [
        "38c8fcd78dcb6707e30b489b57d61c1232ee5757",
        "3a21e386fa55a8b86dffa5250985b263fcfd2155"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Sep 05 09:18:53 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 05 09:18:54 2016 +0000"
      },
      "message": "Merge \"Clean up some includes.\""
    },
    {
      "commit": "2f2fd067ee300d0a9837b48fea434f45a58e544a",
      "tree": "f1226340a80d06dec1627ed58ef5c01113c0193a",
      "parents": [
        "bf13e80755663cecdb72cac18c90e0698eab9d30"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 02 19:43:59 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 02 19:43:59 2016 -0700"
      },
      "message": "ART: Suppress libbase failures in valgrind\n\nWhitelist globals in libbase\u0027s logging code that are triggered\nwhen loading libjavacore.\n\nNote: this suppression is very broad and applies to all leaks\nduring core native-methods binding. It is intentionally so to\nbe robust to name changes.\n\nTest: m valgrind-test-art-host\nTest: m valgrind-test-art-target-gtest-exception_test (N9)\nBug: 31275764\nChange-Id: I5acba084fe6cfc3b03e1f899ea546a57ad5cf11c\n"
    },
    {
      "commit": "3a21e386fa55a8b86dffa5250985b263fcfd2155",
      "tree": "ce6fecaae067f86e094ae7844ee5fa4ae8ee63e8",
      "parents": [
        "f94a4cf18946bda4a4f19378436d2bf131a492ca"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 02 12:38:38 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 02 15:15:28 2016 +0100"
      },
      "message": "Clean up some includes.\n\nRemove some unnecessary includes from header files, replace\nothers with forward references and add includes to source\nfiles as needed. Reduce dependency on stack.h by pulling\nStackReference\u003c\u003e out to its own file.\n\nTest: m test-art-host\nChange-Id: I0fb182145e328870cbd918b0ef6ae2950223c1b2\n"
    },
    {
      "commit": "69a0032b99002dc1318c4e0abbb17d8dddd374dc",
      "tree": "366a83aff355a25b17fcc14b2d2e804315e84350",
      "parents": [
        "370e6e412bb8361fec0f0788c396621bccfb6e2a",
        "4abf166349883f9155290595dac733c50360211d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 01 22:12:27 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 01 22:12:27 2016 +0000"
      },
      "message": "Merge \"Make 115-native-bridge idempotent\""
    },
    {
      "commit": "433b738f89df79ca1350799f3a1c475686d1ea5a",
      "tree": "a9c2a9bb13603abd95ffb6b880a345bf619d034a",
      "parents": [
        "dec50eb2da7c8559a01d69260ed8981a5a5eda30",
        "a341f352ca944d848ebf39b54d0ad353ff9ebaff"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 01 10:17:20 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 01 10:17:20 2016 +0000"
      },
      "message": "Merge \"Constant fold Equal/NotEqual between null and non-null.\""
    },
    {
      "commit": "4abf166349883f9155290595dac733c50360211d",
      "tree": "03c5abba33c477140cfb0c9f8882435dcf153a7e",
      "parents": [
        "d7eabc2cc1a88c1f7f927da61246ae65aab0626c"
      ],
      "author": {
        "name": "Wojciech Staszkiewicz",
        "email": "staszkiewicz@google.com",
        "time": "Wed Aug 31 10:12:53 2016 -0700"
      },
      "committer": {
        "name": "Wojciech Staszkiewicz",
        "email": "staszkiewicz@google.com",
        "time": "Wed Aug 31 10:27:35 2016 -0700"
      },
      "message": "Make 115-native-bridge idempotent\n\nAdds -f flag to ln calls in 115-native-bridge to stop it from failing\nwhen ran multiple times in the same environment.\n\nTest: m test-art-host-run-test-115-native-bridge\n\nChange-Id: I625c9fd3cef5900eece3b311be6592c615e80ab0\n"
    },
    {
      "commit": "a341f352ca944d848ebf39b54d0ad353ff9ebaff",
      "tree": "420808c337e434e9af678942cb29c60ecf7b0dcc",
      "parents": [
        "081e7a16c4fcbdb014441a236e12f58eb89ff99a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 31 12:18:20 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 31 16:47:12 2016 +0100"
      },
      "message": "Constant fold Equal/NotEqual between null and non-null.\n\nTest: Add new test cases to 442-checker-constant-folding.\nTest: m test-art-host\nChange-Id: I14509d5e13d30a66b3c2ac3d76d514f58501c9ab\n"
    },
    {
      "commit": "bdf7f1c3ab65ccb70f62db5ab31dba060632d458",
      "tree": "25cc77adfeb05232d0ab00aa561a693f1d71745c",
      "parents": [
        "d7eabc2cc1a88c1f7f927da61246ae65aab0626c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 30 16:38:47 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 30 17:02:53 2016 -0700"
      },
      "message": "ART: SHARED_REQUIRES to REQUIRES_SHARED\n\nThis coincides with the actual attribute name and upstream usage.\nPreparation for deferring to libbase.\n\nTest: m\nTest: m test-art-host\nChange-Id: Ia8986b5dfd926ba772bf00b0a35eaf83596d8518\n"
    },
    {
      "commit": "99fd9f39f2cd74864bdc750a3444ddd776da534c",
      "tree": "04d9b32325c1d3b63278468a4ef36ba6267d737b",
      "parents": [
        "66d4779c8381db2dd5c0fbe92b3c3a45a7a57ef3",
        "1a0de6acd03b43a03678b58f47b2f21b5215cc22"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Aug 30 16:20:55 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 30 16:20:55 2016 +0000"
      },
      "message": "Merge \"Fix clang-tidy warnings in art.\""
    },
    {
      "commit": "1e55e1d92d7a3219a2541a21032f652ea0c64996",
      "tree": "38044beabd4b35c703ee91c312ad74181b8b10d6",
      "parents": [
        "04bbe22d21480fcb4598dcf72e12d0dbe2af7a16"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Aug 29 11:18:37 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Aug 29 11:20:25 2016 -0700"
      },
      "message": "ART: Fix libnativebridgetest dependencies\n\nFix typo.\n\nTest: m test-art-host\nChange-Id: I1a272a8aa2a114c108cc306164df78f568be20d7\n"
    },
    {
      "commit": "1a0de6acd03b43a03678b58f47b2f21b5215cc22",
      "tree": "7d03f89b9d64ebc40ea382011de524d18a004f73",
      "parents": [
        "cc55a7ce2aa0f10c2da9efaa89855cf075e56e20"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Aug 26 15:06:11 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Aug 26 17:52:41 2016 -0700"
      },
      "message": "Fix clang-tidy warnings in art.\n\n* Add parentheses around macro parameters, or\n  use NOLINT to suppress warning.\nBug: 28705665\n\nTest: build with WITH_TIDY\u003d1\nChange-Id: Ifc922c2e66215772042bac372754ea70074f0053\n"
    },
    {
      "commit": "8812e8fa4bd558b2797a9ad138c3910234097fad",
      "tree": "46f7ee842f5601dcdb55c2ff5e0c4cccee3f619a",
      "parents": [
        "24cbdc42f87d3329463cdd0af294265c3d0b650e",
        "be919d90adf8a5c68e6d4d5eea004a9d5be473d2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 25 15:42:26 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 25 15:42:26 2016 +0000"
      },
      "message": "Merge \"ARM64: Use the zero register for field and array set operations.\""
    },
    {
      "commit": "be919d90adf8a5c68e6d4d5eea004a9d5be473d2",
      "tree": "f6fb545811b724bfc78f34089b866f606c5b9d8a",
      "parents": [
        "7c95b4e22897a6f14ef79ec6e547e2eed686814a"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Tue Aug 23 18:33:36 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 25 13:53:51 2016 +0000"
      },
      "message": "ARM64: Use the zero register for field and array set operations.\n\nTest: Run ART test suite on host and Nexus 9.\nChange-Id: I4e2a81570ecc57530249672df704eb0bb780acce\n"
    },
    {
      "commit": "2923db7314da613d50c9e6e44f38bb8d3e1c49f0",
      "tree": "063590a45f9f384872b8fa14f9f0bd2f014f0d66",
      "parents": [
        "897b8f5da90b38b030826273f4c9bd8fbc32759e"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Sat Aug 20 01:55:47 2016 -0700"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Wed Aug 24 17:27:35 2016 -0700"
      },
      "message": "MIPS32: Refactor implicit null checks in array/field get/set.\n\nRationale: on MIPS32 64-bit loads and stores may be performed\nas pairs of 32-bit loads/stores. Implicit null checks must be\nassociated with the first 32-bit load/store in a pair and not\nthe last. This change ensures proper association of said checks\n(a few were done after the last 32-bit load/store in a pair)\nand lays ground for further improvements in array/field get/set.\n\nTest: booted MIPS32 in QEMU\nTest: test-art-host-gtest\nTest: test-art-target-run-test-optimizing in QEMU\n\nChange-Id: I3674947c00bb17930790a7a47c9b7aadc0c030b8\n"
    },
    {
      "commit": "7c95b4e22897a6f14ef79ec6e547e2eed686814a",
      "tree": "75eb6db980329b906c143f162f9ed08093df9dfd",
      "parents": [
        "f91b5f33728bcad74f0d95bf6d81478e4ea77626",
        "953437bd51059801d92079295f728d0260efca31"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 24 13:49:04 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 24 13:49:04 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"x86/x86-64: Avoid temporary for read barrier field load.\"\"\""
    },
    {
      "commit": "ecf6b7dda627e2a26da5add2cc807b3944834ac0",
      "tree": "baf0bac7f07785f622d7c5f51881459757c3ec73",
      "parents": [
        "c31ba109d50eeb676a0d14bbb6d699e450771d8d"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Aug 24 13:57:23 2016 +0100"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Aug 24 14:09:56 2016 +0100"
      },
      "message": "Fix for package name test break in ART\n\nModifying the hard-coded string in test 031.\n\nBug: 28131225\nTest: run-test --host 031-class-attributes\nChange-Id: Ifffaebd5b8595075fcde295a6e3921af99871f9d\n"
    },
    {
      "commit": "953437bd51059801d92079295f728d0260efca31",
      "tree": "b52816b5092a143361ea3878ef0e06d311c4a56f",
      "parents": [
        "c67d22ac6db73aaa9540294c86344bf8021495b3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 24 08:30:46 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 24 13:20:32 2016 +0100"
      },
      "message": "Revert \"Revert \"x86/x86-64: Avoid temporary for read barrier field load.\"\"\n\nFixed the fault handler recognizing the TEST instruction and\nfault address within the lock word. Added tests to 439-npe.\n\nBug: 29966877\nBug: 12687968\nTest: Tested with ART_USE_READ_BARRIER\u003dtrue on host.\nTest: Tested with ART_USE_READ_BARRIER\u003dtrue ART_HEAP_POISONING\u003dtrue on host.\n\nThis reverts commit ccf15bca330f9a23337b1a4b5850f7fcc6c1bf15.\n\nChange-Id: I8990def5f719c9205bf6e5fdba32027fa82bec50\n"
    },
    {
      "commit": "3aaa37bba53d6df0265793de48b4b0b57327e57a",
      "tree": "ce795803f0f10003eb3d96d9348da620937675b3",
      "parents": [
        "792c98bb773c8c2390f9cbf774f85be9d9a75332"
      ],
      "author": {
        "name": "jessicahandojo",
        "email": "jessicahandojo@google.com",
        "time": "Fri Jul 29 14:46:37 2016 -0700"
      },
      "committer": {
        "name": "jessicahandojo",
        "email": "jessicahandojo@google.com",
        "time": "Tue Aug 23 15:12:26 2016 -0700"
      },
      "message": "creating workflow for mirror::String compression\n\nAll-ASCII String characters are stored in 8-bit blocks\ninstead of 16-bit. The compression has not taken place, but all\nworkflow are in the code already (changing kUseStringCompression in\nstring.h file to TRUE will enable the feature)\n\nNotes: Feature works on interpreter only without optimizing\n\nTest art: m ART_TEST_INTERPRETER\u003dtrue ART_TEST_OPTIMIZING\u003dfalse\n          test-art-host\n\nAlso tested with String tests from libcore/:\n1. libcore.java.lang.StringTest\n2. libcore.java.lang.StringBufferTest\n3. libcore.java.lang.StringBuilderTest\n4. libcore.java.lang.OldStringTest\n5. libcore.java.lang.OldStringBufferTest\n\nMemory improvement is 33% (from 6.03% to 4.03%, total String memory\nfrom all apps per total memory of all apps) measured on Angler\nwith Hprof tools\n\nBug: 31040547\nChange-Id: I9cc92c265ebf1305fc06b5fc33efd83797660cce\n"
    },
    {
      "commit": "48e2340c823247e261304ee3ddacac1b8ae8a4f2",
      "tree": "b8a15a27f424bf75df8b90c1f6a9fb94848305bc",
      "parents": [
        "ce999e7c8af5f76a05ab0b2267ef7b74d25c75b5"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Aug 22 13:59:21 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Aug 22 13:59:21 2016 +0100"
      },
      "message": "Do not run 537-checker-arraycopy on non-Baker read barrier configs.\n\nTest: ART_USE_READ_BARRIER\u003dtrue ART_READ_BARRIER_TYPE\u003dTABLELOOKUP make test-art-host-run-test-537-checker-arraycopy\nBug: 29516905\nBug: 12687968\nChange-Id: Ie77f3a7ce19f3ff78d2132ca70fb10b595eb54d5\n"
    },
    {
      "commit": "9c07ab332b8ebbcb1586c311bfcb75e19b8a35b4",
      "tree": "26a300b803f77e64c17e3d239a1880a4c5960666",
      "parents": [
        "6670bd2098264d4c4e19750ab4741121da7ee54b",
        "bf44e0e5281de91f2e38a9378b94ef8c50ad9b23"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 19 17:33:03 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 19 17:33:03 2016 +0000"
      },
      "message": "Merge \"ART: Implement a fixed size string dex cache\""
    },
    {
      "commit": "6670bd2098264d4c4e19750ab4741121da7ee54b",
      "tree": "96d0e872b50daad88dbb77357c8e0102b1a4b69d",
      "parents": [
        "f606c3a687e3eae94296ba74d2d820b6e37692ff",
        "0b671c0408e98824e1f92b1ee951b210c090fe7a"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Aug 19 15:07:31 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 19 15:07:31 2016 +0000"
      },
      "message": "Merge \"Add support for Baker read barriers in SystemArrayCopy intrinsics.\""
    },
    {
      "commit": "0b671c0408e98824e1f92b1ee951b210c090fe7a",
      "tree": "0bc58c031cd899aa856677fe8c9ffa376228806f",
      "parents": [
        "36bf3a2d281892e7906d3eaf9d7455b0656c9a25"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Aug 19 12:02:34 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Aug 19 16:00:09 2016 +0100"
      },
      "message": "Add support for Baker read barriers in SystemArrayCopy intrinsics.\n\nBenchmarks (ARM64) score variations on Nexus 5X with CPU\ncores clamped at 960000 Hz (aosp_bullhead-userdebug build):\n- Ritzperf - average (lower is better):       -3.03% (slightly better)\n- CaffeineMark - average (higher is better):  +1.26% (slightly better)\n- DeltaBlue (lower is better):               -10.50% (better)\n- Richards - average (lower is better):       -3.36% (slightly better)\n- SciMark2 - average (higher is better):      +0.26% (virtually unchanged)\n\nDetails about Ritzperf benchmarks with meaningful variations\n(lower is better):\n- FormulaEvaluationActions.EvaluateAndApplyChanges: -13.26% (better)\n- FormulaEvaluationActions.EvaluateCascadingSums:   -10.94% (better)\n- FormulaEvaluationActions.EvaluateComplexFormulas: -15.50% (better)\n- FormulaEvaluationActions.EvaluateFibonacci:       -10.41% (better)\n- FormulaEvaluationActions.EvaluateLargeSums:        +6.02% (worse)\n\nBoot image code size variation on Nexus 5X\n(aosp_bullhead-userdebug build):\n- total ARM64 framework Oat files size change:\n  107047632 bytes -\u003e 107154128 bytes (+0.10%)\n- total ARM framework Oat files size change:\n  90932028 bytes -\u003e 91009852 bytes (+0.09%)\n\nTest: ART host and target (ARM, ARM64) tests + Nexus 5X boot.\nBug: 29516905\nBug: 29506760\nBug: 12687968\nChange-Id: I85431368d09965687a0301ae2eb3c991f276ce5d\n"
    },
    {
      "commit": "bf44e0e5281de91f2e38a9378b94ef8c50ad9b23",
      "tree": "bb6e65a3434806dc58f286ee75ad3b78ba9d6c36",
      "parents": [
        "d99565069c64fefc069005286de04599dc2619b8"
      ],
      "author": {
        "name": "Christina Wadsworth",
        "email": "cwadsworth@google.com",
        "time": "Thu Aug 18 10:37:42 2016 -0700"
      },
      "committer": {
        "name": "Christina Wadsworth",
        "email": "cwadsworth@google.com",
        "time": "Thu Aug 18 16:18:36 2016 -0700"
      },
      "message": "ART: Implement a fixed size string dex cache\n\nPreviously, the string dex cache was dex_file-\u003eNumStringIds() size, and\n@ruhler found that only ~1% of that cache was ever getting filled. Since\nmany of these string dex caches were previously 100,000+ indices in\nlength, we\u0027re wasting a few hundred KB per app by storing null pointers.\nThe intent of this project was to reduce the space the string dex cache\nis using, while not regressing on time that much. This is the first of a\nfew CLs, which implements the new fixed size array and disables the\ncompiled code so it always goes slow path. In four other CLs, I\nimplemented a \"medium path\" that regresses from the previous \"fast path\"\nonly a bit in assembly in the entrypoints. @vmarko will introduce new\ncompiled code in the future so that we ultimately won\u0027t be regressing on\ntime at all. Overall, space savings have been confirmed as on the order\nof 100 KB per application.\n\nA 4-5% slow down in art-opt on Golem, and no noticeable slow down in the\ninterpreter. The opt slow down should be diminished once the new\ncompiled code is introduced.\n\nTest: m test-art-host\n\nBug: 20323084\n\nChange-Id: Ic654a1fb9c1ae127dde59290bf36a23edb55ca8e\n"
    },
    {
      "commit": "fec0190ab678b7e19d62c76334f4239124d3786f",
      "tree": "74b1636935686155ca02e12e097f89ef6b2f5796",
      "parents": [
        "4dcb0fa798fed4c1cbe800a845c1d8c419c536dd",
        "49948e9d4e66e68ea077031f9aa80b6c332bd673"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 17 19:15:54 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 17 19:15:54 2016 +0000"
      },
      "message": "Merge \"Add skeleton of a jvmti plugin for art.\""
    },
    {
      "commit": "49948e9d4e66e68ea077031f9aa80b6c332bd673",
      "tree": "cc50d0259b02d3021241f74ed659f74f52771268",
      "parents": [
        "3f410202b177416c785e6172138a265a91c81b0a"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Aug 11 15:35:28 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Aug 17 10:50:37 2016 -0700"
      },
      "message": "Add skeleton of a jvmti plugin for art.\n\nTest: mma test-art-host-run-test-901-hello-ti-agent\nChange-Id: If6807b6238d57471e4ba0dd75c717721246443f6\n"
    },
    {
      "commit": "3cc35c324b748c41be92a51eae68b77846b4c243",
      "tree": "615179a7897249b7e859a1875467bc9c9300f866",
      "parents": [
        "3f410202b177416c785e6172138a265a91c81b0a",
        "9d4b6da934934c322536ee3309b63ce402740f49"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 16 21:51:02 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 16 21:51:03 2016 +0000"
      },
      "message": "Merge \"jni: Fast path for @FastNative annotated java methods\""
    },
    {
      "commit": "9d4b6da934934c322536ee3309b63ce402740f49",
      "tree": "9e7ee5023d6036b98e0560411bb0527efdedca01",
      "parents": [
        "2af1aa066e3d20edd8fea5d5b6dbbbad73102d52"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Jul 29 09:51:58 2016 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Aug 16 20:19:36 2016 +0000"
      },
      "message": "jni: Fast path for @FastNative annotated java methods\n\nAdds a faster path for java methods annotated with\ndalvik.annotation.optimization.FastNative .\n\nIntended to replace usage of fast JNI (registering with \"!(FOO)BAR\" descriptors).\n\nPerformance Microbenchmark Results (Angler):\n* Regular JNI cost in nanoseconds: 115\n* Fast JNI cost in nanoseconds: 60\n* @FastNative cost in nanoseconds: 36\n\nSummary: Up to 67% faster (vs fast jni) JNI transition cost\n\nChange-Id: Ic23823ae0f232270c068ec999fd89aa993894b0e\n"
    },
    {
      "commit": "36bf3a2d281892e7906d3eaf9d7455b0656c9a25",
      "tree": "b485d3cca2d0a266e88fbcf5d09e8ca21cf1da50",
      "parents": [
        "b23e3b2156ea326c5dea2f285e5f45b86bdb004c",
        "d9eb28465b5e4bcfa6bdd89df7d1d241306c7263"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Aug 15 22:28:19 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 15 22:28:20 2016 +0000"
      },
      "message": "Merge \"Change gcstress runtest option\""
    },
    {
      "commit": "554b6fb8759d186eba1046c220c9cff9a8610525",
      "tree": "0b28f10d2235c82ba13f75829a018457d2ce9a66",
      "parents": [
        "fe74ba9ea6c2c47a02d2ba7436b3a603b459468c",
        "4a3aa578eff94eb10450fae1772deb7cb8ddc6a6"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 15 14:35:48 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 15 14:35:48 2016 +0000"
      },
      "message": "Merge \"Revert \"Enable IntermediateAddress for primitive arrays with read barriers.\"\""
    },
    {
      "commit": "4a3aa578eff94eb10450fae1772deb7cb8ddc6a6",
      "tree": "abb3aa17279c6a9edc9dd1c0691738a7f7c69a10",
      "parents": [
        "12ecf0800d465acdaa3deccd383ff8ed3428a183"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Aug 15 13:17:06 2016 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Aug 15 13:17:06 2016 +0000"
      },
      "message": "Revert \"Enable IntermediateAddress for primitive arrays with read barriers.\"\n\nThis CL breaks the angler-userdebug build with\n`ART_USE_READ_BARRIER\u003dtrue`.\n\nTest: Build angler-userdebug with `ART_USE_READ_BARRIER\u003dtrue`.\nBug: 30762467\nBug: 26601270\nBug: 12687968\n\nThis reverts commit 12ecf0800d465acdaa3deccd383ff8ed3428a183.\n\nChange-Id: Ia2069ac9436d2336311dd8d0f183c02e587586ae\n"
    },
    {
      "commit": "d9eb28465b5e4bcfa6bdd89df7d1d241306c7263",
      "tree": "5e1e5bcf852ddf3bf7d225cfefb2be0881aee202",
      "parents": [
        "85b1811f0de0cb8fb2a9ae37f53c6056a2de6867"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 12 16:11:24 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 12 17:40:09 2016 -0700"
      },
      "message": "Change gcstress runtest option\n\nNo longer passes down SS as the collector. Motivation is to allow\nrunning gcstress with concurrent copying.\n\nNew usage is for SS:\nmm test-art-host ART_TEST_GC_STRESS\u003dtrue ART_DEFAULT_GC_TYPE\u003dSS\n\nBug: 30807718\n\nTest: mm test-art-host ART_TEST_GC_STRESS\u003dtrue ART_DEFAULT_GC_TYPE\u003dSS\n\nChange-Id: I4416c1ca9ead027536acc9d24b1ec80d5a68c6a1\n"
    },
    {
      "commit": "faf90b65a8f4e9c08f2e3f5b42a1c3c22f27e7e0",
      "tree": "172a7967504dca836b04fdf7e7525f672ef158c1",
      "parents": [
        "ba1642dec60c053895c259deac429463669ddc9b"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Aug 12 14:43:48 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Aug 12 14:43:48 2016 -0700"
      },
      "message": "Make test work when running ndebug.\n\nChange-Id: Iea58ccef51fddaeae4b1fb7084a7956400a81dfe\nTest: ART_TEST_RUN_TEST_NDEBUG\u003dtrue mma -j40 test-art-host-run-test-900-hello-plugin\n"
    },
    {
      "commit": "346285b55869af2054465fccef2065f7462ac9cd",
      "tree": "0bc092fedc880f5022fcdc6ab0c3a53f5a599dd4",
      "parents": [
        "635ba0cbceb367836dae0cc4da4eb672263e7ef5",
        "185d134a3b43ab7529053e965917e0fa74bceba4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Aug 12 17:33:34 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 12 17:33:34 2016 +0000"
      },
      "message": "Merge changes I852b4daf,Id648eaed\n\n* changes:\n  Add basic runtime-plugins support.\n  Create a basic agent loading framework.\n"
    },
    {
      "commit": "185d134a3b43ab7529053e965917e0fa74bceba4",
      "tree": "5d3d0cee3aa4c64fc5f36fd5f648e53f6df984ae",
      "parents": [
        "7233c7e752c0d26387d143ee74420e9cd1f09390"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Aug 11 10:48:03 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Aug 11 13:55:03 2016 -0700"
      },
      "message": "Add basic runtime-plugins support.\n\nThis allows one to pass shared-libraries on the command line that the\nruntime will load as plugins. They have access to runtime code and can\ninstall hooks to add functionality. Currently the only hook they can\ntouch is JavaVMExt::AddEnvironmentHook to register a callback for\nGetEnv(). More hooks might be added in the future.\n\nTest: ./test/run-test 900\nChange-Id: I852b4daf5a3fa71e9888722bc07794632c0e5010\n"
    },
    {
      "commit": "7233c7e752c0d26387d143ee74420e9cd1f09390",
      "tree": "680b4c1fc3fddbe6004156e5e02770223f3f8587",
      "parents": [
        "f2b1529b0988a1722b718fee6911e0030e95c9b6"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jul 28 10:07:45 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Aug 11 13:48:13 2016 -0700"
      },
      "message": "Create a basic agent loading framework.\n\nCurrently we only allow agents to be loaded at runtime startup, though\nthis is expected to change soon.\n\nTest: ./test/run-test --host 900\nChange-Id: Id648eaed4bbbe6fdef41d64922d023a4db0bfa54\n"
    },
    {
      "commit": "da595bec0f9af0b087822e4febc282fe8ec28192",
      "tree": "54c1ae98071768fc44ca6dd25f466338599ec23c",
      "parents": [
        "38dd0e8f0a0158c12eba2a9d91a8086603156f2d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 10 13:57:39 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 10 14:14:12 2016 -0700"
      },
      "message": "Fix pending exception failure for encoded statics\n\nReadValueToField may allocate a string and cause OOME, we were\nnot checking this each loop iteration. Throwing an exception\nwith a pending exception causes an abort.\n\nBug: 30690988\n\nTest: test-art-host\n\nChange-Id: I2c9751bf0544cf115d9d8e914e58ebccc81bcbf4\n"
    },
    {
      "commit": "4997d14c8d0404269993986deff5ae1ae45ab712",
      "tree": "b125ba1053f987e13eb2890e342e37b872c524cf",
      "parents": [
        "c218427ab96e521e0c4e9a3ffeb87e6c57eea0a5",
        "59751a7375196c530fbd048e72750aa94ab90431"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 10 13:29:15 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 10 13:29:15 2016 +0000"
      },
      "message": "Merge \"ARM: Embed constants in add/sub-long.\""
    },
    {
      "commit": "c218427ab96e521e0c4e9a3ffeb87e6c57eea0a5",
      "tree": "af38070b0fad716033c005a673a4ae0f7ccd27cc",
      "parents": [
        "45b17187699a938af2cf67fe11848951f2501087",
        "14832efeb92334c562ebedef34e920d30e3cee69"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Aug 10 10:20:49 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 10 10:20:50 2016 +0000"
      },
      "message": "Merge \"Revert experimental lambda feature.\""
    },
    {
      "commit": "71572de11618275ac7a093a3bf3815c3dbdc2510",
      "tree": "d4367d5707b5c5fa918387da6ea1844e063073d2",
      "parents": [
        "3f3201a89ec19257b3bc93c25b20abdcfe61f3e4"
      ],
      "author": {
        "name": "Matthew Gharrity",
        "email": "gharrma@google.com",
        "time": "Mon Aug 08 18:03:46 2016 -0700"
      },
      "committer": {
        "name": "Matthew Gharrity",
        "email": "gharrma@google.com",
        "time": "Tue Aug 09 16:49:23 2016 -0700"
      },
      "message": "Add a graph coloring art test option\n\nTest: ART_TEST_OPTIMIZING_GRAPH_COLOR\u003dtrue m test-art-host\n\nChange-Id: I1bd7c20cdd372ed227204c990484d123c67bdfa8\n"
    },
    {
      "commit": "14832efeb92334c562ebedef34e920d30e3cee69",
      "tree": "57d10c24966a46ae1c01861ee579ac6000326c45",
      "parents": [
        "c984725d0035e1925371757c38fed339b409e525"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Aug 05 11:44:32 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Aug 09 13:47:49 2016 +0100"
      },
      "message": "Revert experimental lambda feature.\n\nThis is a revert of the following changes :\n\n30c475a2046951a81769c2db0b2dad66cd71e189.\nlambda: Minor capture-variable/liberate-variable clean-up after post-merge reviews.\n\n6918bf13eb855b3aa8ccdddda2d27ae8c60cec56.\nlambda: Experimental support for capture-variable and liberate-variable\n\nfc1ccd740b7c8e96dfac675cfc580122cd1b40a6.\nlambda: Infrastructure to support capture/liberate-variable dex opcodes\n\ne2facc5b18cd756a8b5500fb3d90da69c9ee0fb7.\nruntime: Add lambda box/unbox object equality\n\n2ee54e249ad21c74f29a161e248bebe7d22fddf1.\nruntime: Partially implement box-lambda and unbox-lambda experimental opcodes\n\n158f35c98e2ec0d40d2c032b8cdce5fb60944a7f.\ninterpreter: Add experimental lambda opcodes for invoke/create-lambda\n\na3bb72036f5454e410467f7151dc89f725ae1151.\nAdded format 25x to dexdump(2).\n\nPlus surrounding cleanups.\n\nTest: make test-art\nChange-Id: Ic6f999ad17385ef933f763641049cf721510b202\n"
    },
    {
      "commit": "42103c6daa606d4e1753ef567836ef556be51cdc",
      "tree": "e5c93a757c42b405f5c790de04184dbeeaacd6dd",
      "parents": [
        "c0362b5f93a2d5d34f8a660804920dbb236ad625"
      ],
      "author": {
        "name": "Wojciech Staszkiewicz",
        "email": "staszkiewicz@google.com",
        "time": "Mon Aug 08 14:35:30 2016 -0700"
      },
      "committer": {
        "name": "Wojciech Staszkiewicz",
        "email": "staszkiewicz@google.com",
        "time": "Mon Aug 08 14:38:06 2016 -0700"
      },
      "message": "Fix missing spaces in checker tests\n\nThis fixes missing spaces in few checker tests.\n\nChange-Id: Id2e7ee4da0077dfd6676526cbd203a98e2bfd7ee\n"
    },
    {
      "commit": "5319d3cca5a9b8e9e3f59421818272b966575172",
      "tree": "a90bd83b7e69bbff0be601088bb1c764125d8cf6",
      "parents": [
        "9cff32df754c428ef69ddb61e7600abfd4c75266"
      ],
      "author": {
        "name": "Wojciech Staszkiewicz",
        "email": "staszkiewicz@google.com",
        "time": "Mon Aug 01 17:48:59 2016 -0700"
      },
      "committer": {
        "name": "Wojciech Staszkiewicz",
        "email": "staszkiewicz@google.com",
        "time": "Mon Aug 08 11:24:26 2016 -0700"
      },
      "message": "Implement running user defined list of passes\n\nThis change introduces new dex2oat switch --run-passes\u003d. This switch\naccepts path to a text file with names of passes to run.\nCompiler will run optimization passes specified in the file rather\nthen the default ones.\n\nThere is no verification implemented on the compiler side. It is user\u0027s\nresponsibility to provide a list of passes that leads to successful\ngeneration of correct code. Care should be taken to prepare a list\nthat satisfies all dependencies between optimizations.\n\nWe only take control of the optional optimizations. Codegen (builder),\nand all passes required for register allocation will run unaffected\nby this mechanism.\n\nChange-Id: Ic3694e53515fefcc5ce6f28d9371776b5afcbb4f\n"
    },
    {
      "commit": "51616fb233df2760fd6002a02dce692f24b93fb6",
      "tree": "61766bfa4bb53bf8f57a6c2645e81d375aa902bf",
      "parents": [
        "c10ad423024432df36f6360eafca8332d07b946a",
        "12ecf0800d465acdaa3deccd383ff8ed3428a183"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Aug 08 10:16:43 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 08 10:16:43 2016 +0000"
      },
      "message": "Merge \"Enable IntermediateAddress for primitive arrays with read barriers.\""
    },
    {
      "commit": "12ecf0800d465acdaa3deccd383ff8ed3428a183",
      "tree": "229f7438b82c945f4b3221f6c1033eaf96a9a1c6",
      "parents": [
        "d16ae7fe70d74091778e5952b7920df14866287f"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Aug 08 10:18:37 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Aug 08 10:18:37 2016 +0100"
      },
      "message": "Enable IntermediateAddress for primitive arrays with read barriers.\n\nTest: ART host and target (ARM, ARM64) tests.\nBug: 26601270\nBug: 12687968\nChange-Id: I6736ba7b1809bece1bf3cd82c69e4f42a0d3c4a7\n"
    },
    {
      "commit": "59751a7375196c530fbd048e72750aa94ab90431",
      "tree": "98c1649266004d0b9c26a5f5e53613a9d1608a8b",
      "parents": [
        "9526d13c791b3c95ae3f22e0be4d695e8be5708c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 05 14:37:27 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 05 19:17:53 2016 +0100"
      },
      "message": "ARM: Embed constants in add/sub-long.\n\nTest: 538-checker-embed-constants\nTest: Run ART test suite on Nexus 5.\nChange-Id: Ib9639748c74d5c56dc354a6830987b613b922654\n"
    },
    {
      "commit": "fe5c430e6ef71e8f8932ece9631a4e9bfc8b7916",
      "tree": "b561375b3a793ae3deb3c4cc1601a50ad818b6e3",
      "parents": [
        "9526d13c791b3c95ae3f22e0be4d695e8be5708c",
        "166aaee6aa39c20c87113b3fcf0dcd81e0a934cb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Aug 05 16:27:46 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 05 16:27:47 2016 +0000"
      },
      "message": "Merge \"ART: Fix type parameter in tests\""
    },
    {
      "commit": "2c9f495e8f8c1b367662a5a7a32d216b70d3bb18",
      "tree": "69da2e9c6d337fe22273ae8bb2c417fb7177ce75",
      "parents": [
        "89bd8358c0a69e8cd6456d81d88ef366e261f732"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Aug 01 16:52:27 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Aug 04 09:53:03 2016 -0700"
      },
      "message": "Implement single-precision round intrinsic in x86\n\nRationale:\nX86 does not provide a direct instruction for the\nrequired rounding and NaN and large positive numbers\nmust be dealt with too. This CL generates code that\ncorrectly implements SP round in a reasonably\nefficient manner (I hope....)\n\nTest: 580-checker-round\n\nBUG\u003d26327751\n\nChange-Id: Ic5f4d9cff9c27c855a8ad577c51ed3ed37fb60cd\n"
    },
    {
      "commit": "89bd8358c0a69e8cd6456d81d88ef366e261f732",
      "tree": "e024d9507acadbc0ea1c142a83e9a3221baf7718",
      "parents": [
        "01b7982a45fe53218d432ed1e8172d9d032d93ab",
        "b2b753c85433d81bcf44ad35b7b053d8fc753148"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Aug 03 17:56:02 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 03 17:56:03 2016 +0000"
      },
      "message": "Merge \"ARM64: Use the zero register in the parallel-move resolver.\""
    },
    {
      "commit": "ae9408f46a6a0bc2bf82611da67fc7256de1f5f4",
      "tree": "391f5a269d8294f3296d4aa713cab9621bc34120",
      "parents": [
        "53d9a24c77b0f00fd1936d957cebb6792fa17bdf",
        "6fb925604414640682bd6f05a90dc7ccbca79d94"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 03 16:09:45 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 03 16:09:45 2016 +0000"
      },
      "message": "Merge \"ART: Extend run-test timeout logging time\""
    },
    {
      "commit": "53d9a24c77b0f00fd1936d957cebb6792fa17bdf",
      "tree": "a75e4d6b77716c6a795900299000c42869f70e30",
      "parents": [
        "d16ae7fe70d74091778e5952b7920df14866287f",
        "d55f4ab2e119395bbae92488707929b8075c126b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Aug 03 15:21:40 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 03 15:21:40 2016 +0000"
      },
      "message": "Merge \"Scope the compilation and Create the ProfilingInfo in the loop.\""
    },
    {
      "commit": "b2b753c85433d81bcf44ad35b7b053d8fc753148",
      "tree": "a10d2fd40109c5ca4a31e78a1de9cc3b83d2ca18",
      "parents": [
        "d16ae7fe70d74091778e5952b7920df14866287f"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Tue Aug 02 13:45:28 2016 +0100"
      },
      "committer": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Wed Aug 03 09:24:31 2016 +0100"
      },
      "message": "ARM64: Use the zero register in the parallel-move resolver.\n\nWhen moving zero to a stack slot, this will change\n\n    mov temp, #0\n    str temp, [...]\n\ninto\n\n    str zr, [...]\n\nChange-Id: I2211b00d70f3fa0a02e781c90198757290b2bf89\n"
    },
    {
      "commit": "d55f4ab2e119395bbae92488707929b8075c126b",
      "tree": "4d9f823fb03f07e7172e0aae05c1820d33ef8e20",
      "parents": [
        "8055598c8dd4f3cd4d8490b5fc576161467f8bcb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Aug 02 18:49:25 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Aug 02 22:21:52 2016 +0100"
      },
      "message": "Scope the compilation and Create the ProfilingInfo in the loop.\n\nWe need to release the mutator lock to avoid being in a deadlock.\n\nAlso allocating the profiling just before compiling in the unlickely\nevent that it got collected after releasing the mutator lock.\n\nbug:30351473\nChange-Id: I98dba646536d857152949b92f6c69ff9a03cf783\n"
    },
    {
      "commit": "b7e921c90540e87f73a14a232435b752ab12e906",
      "tree": "646c456b9952580c35e5bd0c5a32e24031c2afe7",
      "parents": [
        "524a76c93347d7c23ad75b58eec997219b352ead",
        "c2c52a18a210b3c3c2a2a4345019b9d961a29f49"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Aug 02 20:18:27 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 02 20:18:28 2016 +0000"
      },
      "message": "Merge \"Improve the graph visualizer\u0027s output for constant locations.\""
    },
    {
      "commit": "6fb925604414640682bd6f05a90dc7ccbca79d94",
      "tree": "77dfea3be49a345abd1ee4e58fc006ad22b9fa8a",
      "parents": [
        "c984725d0035e1925371757c38fed339b409e525"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Aug 01 21:53:57 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 02 10:45:53 2016 -0700"
      },
      "message": "ART: Extend run-test timeout logging time\n\nDouble the time a test is allowed to attempt logging after it\ntimed out to two minutes.\n\nAlso change from using nested timeouts to using \"-k\" in general,\nnot just for host dex2oat.\n\nBug: 30351473\nTest: m test-art-host\nChange-Id: I134c7b220f69eaab7ea430a5c7ce45d77b091996\n"
    },
    {
      "commit": "c2c52a18a210b3c3c2a2a4345019b9d961a29f49",
      "tree": "47b4e7923ba4fcf83367a699f90a53d5abb61ee7",
      "parents": [
        "3d6094531e3790b25c43e59fd6cd0b6b99d3447c"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Tue Aug 02 13:45:28 2016 +0100"
      },
      "committer": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Tue Aug 02 13:45:58 2016 +0100"
      },
      "message": "Improve the graph visualizer\u0027s output for constant locations.\n\nChange-Id: I423fb378ee61fb53c3b328fc74f4e95cdef0992a\n"
    },
    {
      "commit": "7fb2c2ca27be67d711055ab4a35bd4ea22e8978a",
      "tree": "d70ff9cce5c759073fa50dc97a2905aae0486427",
      "parents": [
        "ba65cc4a71273904294245cb37ce70e5bce797e3"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Aug 01 22:58:31 2016 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Aug 01 23:16:47 2016 -0700"
      },
      "message": "Split art-run-tests between building and packaging\n\nWe remove the \u0027obj/PACKAGING\u0027 directory during an installclean. Instead\nof forcing a rebuild of all of these tests after an installclean, build\nthem in a different obj directory, then copy them into the PACKAGING\ndirectory to be gathered together by LOCAL_PICKUP_FILES.\n\nThe built directory isn\u0027t used directly for LOCAL_PICKUP_FILES, since we\ndon\u0027t clean up tests that are no longer defined, so an installclean can\nfix that. This matches the behavior of modules installed into the system\nimage, etc.\n\nThis brings my build time for \"m -j55 tests\" from 3m30s to 35s after\n\"m installclean\".\n\nThe total size of these binaries are small (~10MB), so the extra copy is\ninsignificant.\n\nChange-Id: I20f1c09df25b70df8c7f86167480b3a39e99642a\n"
    },
    {
      "commit": "ba65cc4a71273904294245cb37ce70e5bce797e3",
      "tree": "d53a7a816ec4c8e5bdbf80729ac945787b27bf2c",
      "parents": [
        "1a827a05afbffd5bee241f245f9aa3c40b4dbae4",
        "542451cc546779f5c67840e105c51205a1b0a8fd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 02 03:47:35 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 02 03:47:35 2016 +0000"
      },
      "message": "Merge \"ART: Convert pointer size to enum\""
    },
    {
      "commit": "542451cc546779f5c67840e105c51205a1b0a8fd",
      "tree": "11e09bb5abaee12dddffefbe7e425291076dfa7a",
      "parents": [
        "85c4a4b8c9eabfe16e4e49f9b4aa78c1bf4be023"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 26 09:02:02 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Aug 01 18:54:48 2016 -0700"
      },
      "message": "ART: Convert pointer size to enum\n\nMove away from size_t to dedicated enum (class).\n\nBug: 30373134\nBug: 30419309\nTest: m test-art-host\nChange-Id: Id453c330f1065012e7d4f9fc24ac477cc9bb9269\n"
    },
    {
      "commit": "df638c66d1f385d4e217b2ab22c5e48a7eefdef4",
      "tree": "f7864dafe9ab48f6a165d0b4bd66018f66999041",
      "parents": [
        "4130c3360e7cce50ece7534bf06e5c165255ba8b",
        "ecf75a6a9396475759c5f8b47cdc1929614b9542"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Aug 01 18:14:07 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 01 18:14:07 2016 +0000"
      },
      "message": "Merge \"ART: remove gcc cruft from the makefiles\""
    },
    {
      "commit": "bffecdbb50c42c775219dfbf32132fe6a9067762",
      "tree": "7fa137d907144f6f114ee8f292b5376846842c07",
      "parents": [
        "0f290d764d7d6f05c4d818e2144858bb5886fc75",
        "0d638bb49054e5278855483290c7a5c7d683e153"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Aug 01 08:39:04 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 01 08:39:05 2016 +0000"
      },
      "message": "Merge \"ART: Fix RegTypeCache for instance field declaring class\""
    },
    {
      "commit": "0f290d764d7d6f05c4d818e2144858bb5886fc75",
      "tree": "abeb862835125df8919fccc162debefd6e727cfd",
      "parents": [
        "0af088d126665257ba55eca44f7644cb6b972a61",
        "db698f1add0bfe5e482b837b8dcf805ee957d694"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Sat Jul 30 02:53:25 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jul 30 02:53:26 2016 +0000"
      },
      "message": "Merge \"Fix for interpreter crash on new instance of class\""
    },
    {
      "commit": "db698f1add0bfe5e482b837b8dcf805ee957d694",
      "tree": "00071a455b8fe88cf0eeb4dd31f5e2f36a10861a",
      "parents": [
        "85c4a4b8c9eabfe16e4e49f9b4aa78c1bf4be023"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Jul 25 17:52:22 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Jul 29 15:53:18 2016 -0700"
      },
      "message": "Fix for interpreter crash on new instance of class\n\nRationale:\nFuzz testing found divergences between the compiler and interpreter\nwhich turned out to be caused by calling instance on java.lang.Class\n(this worked for compiler but crashed interpeter). Since RI does not\nallow this construct, solution is to force interpreter in this\nunlikely case and throw run time exception like RI. This fixes\ntwo cases found with fuzz testing. CL also includes\nfail-before/pass-after test.\n\nTest: 600-verifier-fails\n\nBUG\u003d29758098\n\nChange-Id: Ie80f7758def44e6655d28fec4c10c34ffa0fd60b\n"
    },
    {
      "commit": "ecf75a6a9396475759c5f8b47cdc1929614b9542",
      "tree": "c2816628ca0229ca2da6dde0699eb22f48de3f65",
      "parents": [
        "998bf2b4de04f1664a8ca0085740e266b9e7c4ff"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jul 28 16:01:42 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jul 28 17:12:54 2016 -0700"
      },
      "message": "ART: remove gcc cruft from the makefiles\n\nART only builds with clang now, delete all logic to determine gcc\nvs. clang, and move all LOCAL_CLANG_CFLAGS into LOCAL_CFLAGS.\n\nTest: mma, make test-art-host, make test-art-target\nChange-Id: I578615233ad3e71af18afb47bb11f3be8417216c\n"
    },
    {
      "commit": "f1aedb126ad1cb56dc7a38c8e07113295b123f58",
      "tree": "1ed73536af4ce231ffeb884bb9a464bb9b57ea00",
      "parents": [
        "e3051bf60783fa18e6f8c7ac6f73091f05af5665"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 28 03:49:14 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 28 17:16:39 2016 +0100"
      },
      "message": "Pass the right class loader when inlining.\n\nOtherwise, method and type resolution can resolve to the wrong\nthings and as a side effect update the dex cache with wrong data.\n\nbug:30403437\ntest:./art/test/run-test --host --jit --dev --no-prebuild 613\n\n(cherry picked from commit 0a210d9b108c87c0e7c1d430a92ce6fc89790c95)\n\nChange-Id: I8fdca96fccae079c8e99b8e86e7b6935acfce89d\n"
    },
    {
      "commit": "0d638bb49054e5278855483290c7a5c7d683e153",
      "tree": "32bf8600721245dfa498c3eb160e8fc30512c852",
      "parents": [
        "93afc5f20a23ece78d6d6e506ed75775b8ef2113"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jul 27 15:29:25 2016 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jul 28 16:40:31 2016 +0100"
      },
      "message": "ART: Fix RegTypeCache for instance field declaring class\n\nFor bytecode instruction:\n\n  iget(-*) ClassB-\u003efield:type\n\nwhere the resolved field is actually declared in ClassA (ClassB\nextends ClassA), MethodVerifier would create a RegType representing\nClassA but cache it under the descriptor \"ClassB\".\n\nThis is a bug but does not have any implications on correctness\nbecause earlier resolution of ClassB (part of IGET handling) creates\nanother cache entry with the \"ClassB\" descriptor. Because the latter,\nwrong entry is always imprecise (ClassA cannot be final because ClassB\nextends it), either the earlier entry will be discovered or neither\nof them will be a match.\n\nDescriptor was replaced with the correct one and a DCHECK added when\ncreating a RegType to make sure the descriptor matches.\n\nBug: 30458218\nChange-Id: I19e1bdd5dd79e5eac558122a06b9128d0a5c021f\nTest: m test-art-host-run-test\nTest: art/test/run-test --host 800-smali\n"
    },
    {
      "commit": "06a46c44bf1a5cba6c78c3faffc4e7ec1442b210",
      "tree": "fa82ec7a787200e475e567a51c2839349a513021",
      "parents": [
        "9755c262df1be7f5d5b98d038c8fd3734e974f9d"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Tue Jul 19 15:00:40 2016 -0700"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Wed Jul 27 20:02:48 2016 -0700"
      },
      "message": "MIPS32: Improve string and class loads\n\nTested:\n- MIPS32 Android boots in QEMU\n- test-art-host-gtest\n- test-art-target-run-test-optimizing in QEMU, on CI20\n- test-art-target-gtest on CI20\n\nChange-Id: I70fd5d5267f8594c3b29d5a4ccf66b8ca8b09df3\n"
    },
    {
      "commit": "80c669d5d8b40df567b7b5c1f8a0d869c0ee427d",
      "tree": "16e7c262fd91d223466e030fdf7e371cf56e11d1",
      "parents": [
        "659ad8fe6b657488ad7347113228cc5c431cccbb"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Jul 25 15:12:24 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Jul 25 15:12:24 2016 -0700"
      },
      "message": "Remove redundant 601 test, it\u0027s all in 600.\n\nRationale:\nNicolas, I don\u0027t understand why you duplicated this test.\nSince all (and now more) is in 600, removing this clone.\n\nChange-Id: Ibc8b47549f054972f07b53b1554e7ab4dc0cb33e\n"
    },
    {
      "commit": "659ad8fe6b657488ad7347113228cc5c431cccbb",
      "tree": "50cd932a68a02867735209adac248b6941c8d40d",
      "parents": [
        "0abe10a59b1dcb15da859790de0c39b223cb7c2f",
        "ea1e77095b74af5467295cb6563e5bd34058fd43"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 25 21:31:19 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 25 21:31:20 2016 +0000"
      },
      "message": "Merge \"Make java 8 run-tests runnable on the RI again.\""
    }
  ],
  "next": "166aaee6aa39c20c87113b3fcf0dcd81e0a934cb"
}
