)]}'
{
  "log": [
    {
      "commit": "d1c22768e77d2c9c06d7dfa36bde24bf5b6ac8a0",
      "tree": "d5f7c10205caa55ba75da223f6f7d012a8787130",
      "parents": [
        "8e0a5dee37e848ae9bc7ff11c8a0eb66048a5e9e",
        "764d454d1d51448deb81f6e8d2d7d317c7f4d1b4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 17 09:16:30 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 17 09:16:31 2017 +0000"
      },
      "message": "Merge \"Remove LoadString/Class kind kBootImageLinkTimeAddress.\""
    },
    {
      "commit": "8e0a5dee37e848ae9bc7ff11c8a0eb66048a5e9e",
      "tree": "b92aae8793ba9fbb4fcceb8c318c1832b20c4f39",
      "parents": [
        "536e54a6af85127d7f17037360deb08e0a7dc4eb",
        "da1da8a78c9df45890f48b4f0197ed18fa1de3c5"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed May 17 08:12:47 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 17 08:12:49 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"RegisterNativeAllocation: Avoid case of double blocking gc.\"\"\""
    },
    {
      "commit": "536e54a6af85127d7f17037360deb08e0a7dc4eb",
      "tree": "c37974edd150a71f849297dfd66fc493348803eb",
      "parents": [
        "0c26f2fbb3cb5273de90a0856852afe00209c16d",
        "daacc5ed75cfa1de26c22d48efc82acb8245afef"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue May 16 21:48:46 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 16 21:48:48 2017 +0000"
      },
      "message": "Merge \"Quiet run for nightly fuzzing (and some minor edits)\""
    },
    {
      "commit": "0c26f2fbb3cb5273de90a0856852afe00209c16d",
      "tree": "91cecb27242f27643c46ffc1730aeae0fc514534",
      "parents": [
        "e9196b63320e256815a63ebae18a30c2598fe2e9",
        "178dce79220c16e6f0061bcd12e9e9683ec045ee"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 16 20:17:25 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 16 20:17:27 2017 +0000"
      },
      "message": "Merge \"Stop interpreter from accessing code items of compiled code.\""
    },
    {
      "commit": "daacc5ed75cfa1de26c22d48efc82acb8245afef",
      "tree": "e07aed148283483af0fe752c574bbb77a1961a1f",
      "parents": [
        "6579b099786c8cac8fdb0c86d98ad4b232a52ea0"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue May 16 12:53:49 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue May 16 12:54:42 2017 -0700"
      },
      "message": "Quiet run for nightly fuzzing (and some minor edits)\n\nRationale:\nMaking the output of nightly fuzzing test runs easier to read.\n\nChange-Id: I2219468574c9f5ece8c50965a1cda5e75000e6ed\nTest: nightly fuzzer\n"
    },
    {
      "commit": "e9196b63320e256815a63ebae18a30c2598fe2e9",
      "tree": "b50c718bcebb6c5ed004d66c57c30434a7925d79",
      "parents": [
        "2f2824474e3aec9e9167c48fb5da628777358bff",
        "74979b1a78a6d66fbdcf0545f17004cced69f196"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 16 19:04:02 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 16 19:04:03 2017 +0000"
      },
      "message": "Merge \"ART: Add UNLIKELY in verifier\""
    },
    {
      "commit": "2f2824474e3aec9e9167c48fb5da628777358bff",
      "tree": "5292f09a7f084431a150238da42707ab2bb798bb",
      "parents": [
        "6579b099786c8cac8fdb0c86d98ad4b232a52ea0",
        "b3937e31102538baf27a6e9088638c5e3ff1ca34"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 16 19:03:45 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 16 19:03:48 2017 +0000"
      },
      "message": "Merge \"ART: Collect instruction flags in a struct\""
    },
    {
      "commit": "178dce79220c16e6f0061bcd12e9e9683ec045ee",
      "tree": "1cff48009b99bd67d8859f2aa13075612a1d7fee",
      "parents": [
        "6579b099786c8cac8fdb0c86d98ad4b232a52ea0"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri May 05 16:59:29 2017 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue May 16 11:28:26 2017 -0700"
      },
      "message": "Stop interpreter from accessing code items of compiled code.\n\nThe ArtInterpreterToCompiledCodeBridge accesses the code item in a\nnumber of places to handle argument marshalling. However, the code item\nof a compiled method should have no need to be accessed by the runtime\nat all, since the code has been compiled. By removing these accesses,\nthere is a drop in the memory footprint of the dex file, since these\ncode items remain untouched by the runtime.\n\nMaps Vdex Memory Usage: 19.4/33.4MB -\u003e 18.8/33.4MB\n\nBug: 35800981\nTest: mm test-art-host\nChange-Id: I147a9267ec022547b384374e1449d20bcab1ead2\n"
    },
    {
      "commit": "74979b1a78a6d66fbdcf0545f17004cced69f196",
      "tree": "59d2f91930470998f20021378da903587570217b",
      "parents": [
        "b3937e31102538baf27a6e9088638c5e3ff1ca34"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue May 16 09:28:06 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue May 16 09:54:22 2017 -0700"
      },
      "message": "ART: Add UNLIKELY in verifier\n\nINVOKE_POLYMORPHIC is unlikely, at this point. Perf shows compiler\noptimizations assuming the branch is taken.\n\nBug: 10921004\nTest: m test-art-host\nChange-Id: I161327d5c0399de75ff3fc79fa4d762cadbffe20\n"
    },
    {
      "commit": "b3937e31102538baf27a6e9088638c5e3ff1ca34",
      "tree": "599d6fe4f65f5837993d6936a8aae7537c4cabbb",
      "parents": [
        "a1633a7077781d9c64a77b27deb1707d1a56906d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon May 15 15:11:56 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue May 16 09:54:18 2017 -0700"
      },
      "message": "ART: Collect instruction flags in a struct\n\nUse small backing types for the enums, where possible. Then collect\nthe flags in a InstructionDescriptor struct. This improves locality\nfor combined lookups, e.g., in the verifier.\n\nBug: 10921004\nTest: m test-art-host\nChange-Id: I2925bce59d2f6fa5fcd8da5007e9567562b1b070\n"
    },
    {
      "commit": "6579b099786c8cac8fdb0c86d98ad4b232a52ea0",
      "tree": "305ca05714b8c3c9458d52a02861ece688f81ce2",
      "parents": [
        "a1633a7077781d9c64a77b27deb1707d1a56906d",
        "39e673811d73ac09a822d9ee0082bba5d8e8cbad"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 16 16:27:43 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 16 16:27:45 2017 +0000"
      },
      "message": "Merge \"ART: Fix iterator invalidation\""
    },
    {
      "commit": "a1633a7077781d9c64a77b27deb1707d1a56906d",
      "tree": "505f2560cfd247b2e1aab86d3ab96e5c399cb05d",
      "parents": [
        "a774575ae3af3d46955f941ddd08a79caf2aaa94",
        "c8e93c736c149ce41be073dd24324fb08afb9ae4"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue May 16 15:56:01 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 16 15:56:04 2017 +0000"
      },
      "message": "Merge \"Min/max SIMDization support.\""
    },
    {
      "commit": "764d454d1d51448deb81f6e8d2d7d317c7f4d1b4",
      "tree": "029f9e65cfe7e953df55b7af45e099924ffdbbac",
      "parents": [
        "7974468d32b817be1d49dfcf513605f646c481bc"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 16 10:31:41 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 16 15:08:55 2017 +0100"
      },
      "message": "Remove LoadString/Class kind kBootImageLinkTimeAddress.\n\nWe no longer support non-PIC boot image compilation.\n\nAlso clean up some obsolete code for method patches\nand make JIT correctly report itself as non-PIC.\n\nTest: testrunner.py --host\nTest: testrunner.py --target\nBug: 33192586\nChange-Id: I593289c5c1b0e88b82b86a933038be97bbb15ad2\n"
    },
    {
      "commit": "da1da8a78c9df45890f48b4f0197ed18fa1de3c5",
      "tree": "e3c87d38577f4a6aab069b83816371c102ddf64a",
      "parents": [
        "602b1c1421028310fdb1662fcec0aa8ac5e77604"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue May 16 13:37:32 2017 +0000"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue May 16 14:39:59 2017 +0100"
      },
      "message": "Revert \"Revert \"RegisterNativeAllocation: Avoid case of double blocking gc.\"\"\n\nThis reverts commit 602b1c1421028310fdb1662fcec0aa8ac5e77604.\n\nChange-Id: I02b698074845977cc799a0d0234627f7c8ef4eeb\nTest: ART_DEFAULT_GC_TYPE\u003dGSS ART_USE_READ_BARRIER\u003dfalse ./test/testrunner/testrunner.py -b -j32 --target -t 004-NativeAllocations\nBug: 36851903\n"
    },
    {
      "commit": "a774575ae3af3d46955f941ddd08a79caf2aaa94",
      "tree": "dcb086614373e95b60aace9ccd47788ac171b60d",
      "parents": [
        "a65f767b74fba8ec0792fa5736619be619ba49ef",
        "602b1c1421028310fdb1662fcec0aa8ac5e77604"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue May 16 12:48:07 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 16 12:48:09 2017 +0000"
      },
      "message": "Merge \"Revert \"RegisterNativeAllocation: Avoid case of double blocking gc.\"\""
    },
    {
      "commit": "602b1c1421028310fdb1662fcec0aa8ac5e77604",
      "tree": "f1f5e3f57298a3f05d41e1a7f6847d73bac8e851",
      "parents": [
        "8df0f36b4fd5db6da67066da62eccc1e0b81e028"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue May 16 12:44:10 2017 +0000"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue May 16 12:46:16 2017 +0000"
      },
      "message": "Revert \"RegisterNativeAllocation: Avoid case of double blocking gc.\"\n\nThis reverts commit 8df0f36b4fd5db6da67066da62eccc1e0b81e028.\n\n004-NativeAllocations test fails on art-gss-gc-tlab configuration.\n\nChange-Id: I0fb0969c8e4af0bcd5f8481ce828ac4cf258c089\nBug: 36851903\n"
    },
    {
      "commit": "a65f767b74fba8ec0792fa5736619be619ba49ef",
      "tree": "131adae9101c19e8ea39f6ae1fe4811408e1c679",
      "parents": [
        "7974468d32b817be1d49dfcf513605f646c481bc",
        "8df0f36b4fd5db6da67066da62eccc1e0b81e028"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 16 11:20:24 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 16 11:20:26 2017 +0000"
      },
      "message": "Merge \"RegisterNativeAllocation: Avoid case of double blocking gc.\""
    },
    {
      "commit": "8df0f36b4fd5db6da67066da62eccc1e0b81e028",
      "tree": "9446ca90ac8f17bd8eae4cf68493883e5f574898",
      "parents": [
        "c8a5b6c38a4e934a7953b07cc12046b01c32ae5d"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri May 12 11:21:08 2017 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue May 16 10:24:50 2017 +0100"
      },
      "message": "RegisterNativeAllocation: Avoid case of double blocking gc.\n\nIf multiple threads call RegisterNativeAllocation causing the blocking\nwatermark to be exceeded while a background GC is in progress, then\ntwo back-to-back blocking GCs would be performed when a single\nblocking GC is sufficient. For example:\n\n1. Thread A RegisterNativeAllocation triggers background GC1\n2. Thread A RegisterNativeAllocation triggers blocking GC2\n3. Thread A\u0027s GC2 waits for GC1 to complete.\n4. Thread B RegisterNativeAllocation sees GC2 in progress and waits for\nit to complete before triggering a second blocking GC3.\n5. GC1 completes.\n\nBecause thread B\u0027s RegisterNativeAllocation was called before GC1\ncompleted and GC2 had not begun for real, thread B can simply wait for\nGC2 to start and finish before returning, rather than waiting for GC2 to\nstart and finish and then doing a second blocking GC.\n\nThis change fixes the behavior so that only a single blocking GC is\nperformed in this case.\n\nBug: 36851903\nTest: 004-NativeAllocations run test.\nChange-Id: I1e178b9ee7bb68703bdc9a09b1041a982de8b2ce\n"
    },
    {
      "commit": "7974468d32b817be1d49dfcf513605f646c481bc",
      "tree": "dcb086614373e95b60aace9ccd47788ac171b60d",
      "parents": [
        "c4209f024a74f1aaf7a7c2d16482b5458ae0c687",
        "6b2018f4b847a60f39c86d67e1cae8a00ce977bc"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 16 02:36:13 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 16 02:36:15 2017 +0000"
      },
      "message": "Merge \"sigchain: limit use of SetHandlingSignal.\""
    },
    {
      "commit": "39e673811d73ac09a822d9ee0082bba5d8e8cbad",
      "tree": "2c298cbabbd476b103da0269e5cbb68de18faf61",
      "parents": [
        "ed00ddb614d68559931d831cb74d3ba8f01599c9"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon May 15 19:26:38 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon May 15 19:26:38 2017 -0700"
      },
      "message": "ART: Fix iterator invalidation\n\nErasing an item of a map invalidates the iterator.\n\nBug: 38324641\nTest: m test-art-host\nChange-Id: I9f7499eb4a4b49e4fcd6c99d170d9b681adfd9b0\n"
    },
    {
      "commit": "c4209f024a74f1aaf7a7c2d16482b5458ae0c687",
      "tree": "b7481d545e883c285b02f2167770d9001776ed88",
      "parents": [
        "ca26c4b05cc21e42176a9e25f5be53e2006a62fc",
        "3738e98cb8833b24e998ec3b6906bf58850741c3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon May 15 23:07:12 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 15 23:07:15 2017 +0000"
      },
      "message": "Merge \"Fix determinism for app images\""
    },
    {
      "commit": "3738e98cb8833b24e998ec3b6906bf58850741c3",
      "tree": "fa449a53f9e22c676d633a6615da9195c5e2cb2a",
      "parents": [
        "f6730e338384c8878b5c0ca2e6efaa45ba9e5da8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 12 16:07:28 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon May 15 14:27:45 2017 -0700"
      },
      "message": "Fix determinism for app images\n\nClear the dalvik.system.DexFile cookie to make the long array\nunreachable before the GC.\n\nTest: test-art-host\nTest: Ran 10x: mma -j40 \u0026\u0026 shasum $OUT/system/framework/oat/arm64/services.* \u0026\u0026 rm $OUT/system/framework/oat/arm64/services.* \u0026\u0026 rm $OUT/obj/JAVA_LIBRARIES/services_intermediates/oat/arm64/*\n\nBug: 34090128\n\nChange-Id: I5a872de3e907461803a77254902d78ff6e657b43\n"
    },
    {
      "commit": "ca26c4b05cc21e42176a9e25f5be53e2006a62fc",
      "tree": "d819e8e8565aff6702c749d9a80861f96f6d5d35",
      "parents": [
        "f6730e338384c8878b5c0ca2e6efaa45ba9e5da8",
        "1189516011d310c3d1aed469dd592ad2535f4921"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon May 15 21:23:18 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 15 21:23:20 2017 +0000"
      },
      "message": "Merge \"ART: Cache AoT state in verifier\""
    },
    {
      "commit": "f6730e338384c8878b5c0ca2e6efaa45ba9e5da8",
      "tree": "9089a4bcb44a76bc636308ccc6a7085010d7871a",
      "parents": [
        "aca1ee2e407b86a17ca1ef1e4ad65d25602e4e90",
        "ae08cc2c29f40d5028303390325d991b28a50d8a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon May 15 21:07:08 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 15 21:07:10 2017 +0000"
      },
      "message": "Merge \"ART: Split out old instruction flags\""
    },
    {
      "commit": "aca1ee2e407b86a17ca1ef1e4ad65d25602e4e90",
      "tree": "fa094ed3b9e8340fc1bf48538b49be343e5c66c7",
      "parents": [
        "23d75aa98de3cea87e1c088a70309ee0fdb4a0c7",
        "e05cc662505e13f0c29e777bd99b7f49db9c670b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon May 15 20:59:52 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 15 20:59:54 2017 +0000"
      },
      "message": "Merge \"ART: Add experimental constexpr\""
    },
    {
      "commit": "6b2018f4b847a60f39c86d67e1cae8a00ce977bc",
      "tree": "01782290b819d8978df4b90882d2c22d46d57bd5",
      "parents": [
        "23d75aa98de3cea87e1c088a70309ee0fdb4a0c7"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu May 04 13:55:28 2017 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Mon May 15 13:42:02 2017 -0700"
      },
      "message": "sigchain: limit use of SetHandlingSignal.\n\nThe native bridge and user signal handlers are able to not return to\nour signal handler, leaving the HandlingSignal flag set to true for the\nrest of the lifetime of the thread. Fix this by only using\nSetHandlingSignal for handlers that we know will return (i.e. the ART\nfault handler).\n\nThis effectively reverts commit 90444558, which means sigprocmask\u0027s\nbehavior is back to filtering out claimed signals when inside a user\nsignal handler.\n\nInclude an update to test/115-native-bridge from Zhenhua Wang, to make\nsure we keep handling signals when a signal handler longjmps away\ninstead of returning.\n\nBug: http://b/37988407\nTest: m test-art-host\nTest: m test-art-target\nChange-Id: Ia7159ddfa38f1f055e5cd6089c849a208d335752\n"
    },
    {
      "commit": "23d75aa98de3cea87e1c088a70309ee0fdb4a0c7",
      "tree": "59487355e5e81ae552c0f00ab36f8eb16bac25a6",
      "parents": [
        "ed00ddb614d68559931d831cb74d3ba8f01599c9",
        "6fb693a39b263af3e62b97f8d9f2c2289cab3c1a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon May 15 19:50:55 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 15 19:51:02 2017 +0000"
      },
      "message": "Merge \"ART: Delete dex_instruction_visitor\""
    },
    {
      "commit": "c8e93c736c149ce41be073dd24324fb08afb9ae4",
      "tree": "8e7154cf1bbcee8f5837ee9cb930174e2516ac03",
      "parents": [
        "92f4672f811a4eccdc596f7c2235804abd196fde"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@ajcbik2.mtv.corp.google.com",
        "time": "Wed May 10 10:49:22 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon May 15 11:44:58 2017 -0700"
      },
      "message": "Min/max SIMDization support.\n\nRationale:\nThe more vectorized, the better!\n\nTest: test-art-target, test-art-host\n\nChange-Id: I758becca5beaa5b97fab2ab70f2e00cb53458703\n"
    },
    {
      "commit": "1189516011d310c3d1aed469dd592ad2535f4921",
      "tree": "d819e8e8565aff6702c749d9a80861f96f6d5d35",
      "parents": [
        "ae08cc2c29f40d5028303390325d991b28a50d8a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon May 15 10:25:02 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon May 15 10:58:01 2017 -0700"
      },
      "message": "ART: Cache AoT state in verifier\n\nCache the runtime-only-instruction flag instead of computing it for\nevery single instruction.\n\nBug: 10921004\nTest: m test-art-host\nChange-Id: I417260ddf73ac714083609b292f036c28227a0b2\n"
    },
    {
      "commit": "ae08cc2c29f40d5028303390325d991b28a50d8a",
      "tree": "9089a4bcb44a76bc636308ccc6a7085010d7871a",
      "parents": [
        "e05cc662505e13f0c29e777bd99b7f49db9c670b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon May 15 10:23:02 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon May 15 10:57:40 2017 -0700"
      },
      "message": "ART: Split out old instruction flags\n\nMove old metadata flags into their own category. In preparation for\nflag packing.\n\nTest: m test-art-host\nChange-Id: Ifcb366b0f8674c9760334ddcc6507ec4035cadda\n"
    },
    {
      "commit": "e05cc662505e13f0c29e777bd99b7f49db9c670b",
      "tree": "fa094ed3b9e8340fc1bf48538b49be343e5c66c7",
      "parents": [
        "6fb693a39b263af3e62b97f8d9f2c2289cab3c1a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon May 15 10:17:30 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon May 15 10:57:33 2017 -0700"
      },
      "message": "ART: Add experimental constexpr\n\nAdd a constexpr flag to bypass a branch in the verifier when there\nare no experimental dex instructions. Guarantee the value with\nstatic_asserts.\n\nBug: 10921004\nTest: m test-art-host\nChange-Id: Ib77b6142c4d2debe4b4d4fec60c02d92b1e7349f\n"
    },
    {
      "commit": "6fb693a39b263af3e62b97f8d9f2c2289cab3c1a",
      "tree": "59487355e5e81ae552c0f00ab36f8eb16bac25a6",
      "parents": [
        "ed00ddb614d68559931d831cb74d3ba8f01599c9"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon May 15 08:49:45 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon May 15 10:25:32 2017 -0700"
      },
      "message": "ART: Delete dex_instruction_visitor\n\nUnused visitor and test.\n\nTest: m test-art-host\nChange-Id: Idb9403a1d41b6b2142b1e10cd9172a1771d6c5be\n"
    },
    {
      "commit": "ed00ddb614d68559931d831cb74d3ba8f01599c9",
      "tree": "73d2fcf7879b46ccd62d94c64635134378f39a06",
      "parents": [
        "5362c423af5f99afad03f874c6f489e255762607",
        "13056a1720aca64945541812a3c7602acfe4a937"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon May 15 14:05:55 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 15 14:05:56 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Use IsMarked instead of Mark for profiling info.\"\"\""
    },
    {
      "commit": "5362c423af5f99afad03f874c6f489e255762607",
      "tree": "0b8dbf522dad7be6181bbc3470d825dd43ab7164",
      "parents": [
        "a152c4b160f5f296e55c545d37c29d17b4db2212",
        "fd4d0d3eb9b5c7fe2fa1df97d9c0763900b2be52"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Sat May 13 01:25:16 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat May 13 01:25:17 2017 +0000"
      },
      "message": "Merge \"sigchain: always call InitializeSignalChain on startup.\""
    },
    {
      "commit": "a152c4b160f5f296e55c545d37c29d17b4db2212",
      "tree": "5496a518583c525f04b5e490f0d7b82630ddb4ff",
      "parents": [
        "54db2e2ff3a5520e75480f5ce2cf25b8dd37588c",
        "3837011236058617292bee831708449e5100c08c"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri May 12 23:46:13 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 12 23:46:15 2017 +0000"
      },
      "message": "Merge \"MIPS64: Add ilvr.df MSA instructions\""
    },
    {
      "commit": "54db2e2ff3a5520e75480f5ce2cf25b8dd37588c",
      "tree": "edf6158c580470805ec44810da174eb34ffdc446",
      "parents": [
        "bc9a87c33a3f1553934872387a0bb3178b5140e8",
        "4b8a96be815a921926f2712287ac7bea26131754"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Fri May 12 20:33:54 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 12 20:33:55 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Profile compression: Replace method index with difference with the last method_index\"\"\""
    },
    {
      "commit": "fd4d0d3eb9b5c7fe2fa1df97d9c0763900b2be52",
      "tree": "25c774814eb3b6e595ea9c267fcb93fee03bf3eb",
      "parents": [
        "bc9a87c33a3f1553934872387a0bb3178b5140e8"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Apr 26 19:09:47 2017 -0700"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Fri May 12 12:37:40 2017 -0700"
      },
      "message": "sigchain: always call InitializeSignalChain on startup.\n\nProcesses that link against libsigchain because they might want to\ndynamically load libart.so (e.g. surfaceflinger) might never explicitly\ncall InitializeSignalChain. In this scenario, the lazy initialization\nthat occurs when sigprocmask is called can happen at unexpected times,\nsuch as from pthread_exit, leading to deadlocks or crashes.\n\nAdd __attribute__((constructor)) to InitializeSignalChain to have it be\nautomatically called upon process start. Keep the existing calls to it\nin the wrapper functions in order to sidestep problems around static\ninitialization order.\n\nBug: https://issuetracker.google.com/37119593\nTest: run-test 004-SignalTest\nTest: m test-art-host\nTest: m test-art-target\nChange-Id: I7906c1f625ccca0350ea9310140a3f43a657be4c\n"
    },
    {
      "commit": "bc9a87c33a3f1553934872387a0bb3178b5140e8",
      "tree": "ea678f1a8cb6b3a3ea2c9248fea114054ac8c3a3",
      "parents": [
        "bcd27692d787c510285308daffad1d6d9f44b0bc",
        "4d198e08d2f67c1f63489e3bb1c6c9f71d398917"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 12 19:36:47 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 12 19:36:49 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Compress profile files\"\"\""
    },
    {
      "commit": "bcd27692d787c510285308daffad1d6d9f44b0bc",
      "tree": "d1c458ac4f6089ba08a786521e861af972f1f22d",
      "parents": [
        "13b392640f95c1153524096435f939b2908cfb2f",
        "26699c6b66546dad072ee3c5b1401fdf6a7503aa"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 12 18:17:30 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 12 18:17:32 2017 +0000"
      },
      "message": "Merge \"ART: Refactor VerifiedMethod\""
    },
    {
      "commit": "4b8a96be815a921926f2712287ac7bea26131754",
      "tree": "d98e0c6f45c47b7a8c2bc9312b32834e1173b5c7",
      "parents": [
        "4d198e08d2f67c1f63489e3bb1c6c9f71d398917"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Fri May 12 18:00:14 2017 +0000"
      },
      "committer": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Fri May 12 18:00:42 2017 +0000"
      },
      "message": "Revert \"Revert \"Profile compression: Replace method index with difference with the last method_index\"\"\n\nThis reverts commit 509d4240279c09aa755ebbd399fd333380ba40f2.\n\nChange-Id: I9bc1b461b7a34c2016b5a3027011434e1025f7b6\n"
    },
    {
      "commit": "4d198e08d2f67c1f63489e3bb1c6c9f71d398917",
      "tree": "05655c2cccfa668105725afab42715d46a9d7b68",
      "parents": [
        "13b392640f95c1153524096435f939b2908cfb2f"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Fri May 12 17:45:29 2017 +0000"
      },
      "committer": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Fri May 12 10:56:58 2017 -0700"
      },
      "message": "Revert \"Revert \"Compress profile files\"\"\n\nThis reverts commit 1cf1fe29533e63858f094e4b6595b0d8a03aa7cd.\n\nReason for revert: Fixed the test\n\nTest: ART_HEAP_POISONING\u003dtrue \\\n     make -j64 valgrind-test-art-host-gtest-profile_compilation_info_test64\nBug: 36281963\nChange-Id: I5ae8003436d4d2140cd3512aedfc2bf5982ba277\n"
    },
    {
      "commit": "13b392640f95c1153524096435f939b2908cfb2f",
      "tree": "26fa41c649d1d328bda3ae3c49a734c46860c52a",
      "parents": [
        "30148eefec1bb45f152172833afde82af0866b9f",
        "bb84610d2de3c12b0e0cdc724df29479b9501461"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 12 16:19:00 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 12 16:19:02 2017 +0000"
      },
      "message": "Merge \"ART: Remove CompiledClass\""
    },
    {
      "commit": "26699c6b66546dad072ee3c5b1401fdf6a7503aa",
      "tree": "a1e37d2de86d623bc7cb4d4ab828b254eb17c5d8",
      "parents": [
        "30148eefec1bb45f152172833afde82af0866b9f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri May 12 08:19:28 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri May 12 09:15:44 2017 -0700"
      },
      "message": "ART: Refactor VerifiedMethod\n\nOnly a small percentage of methods have a non-empty safe-cast set.\nChange VerifiedMethod to use a pointer to a set.\n\nReduces native allocations at compile time. For a large well-known\napplication, VerifiedMethod memory drops from 12.7MB to 6.3MB.\n\nBug: 38250868\nTest: m test-art-host\nChange-Id: I6f0128a2cf09a8afb29027b24975aec12054ce2f\n"
    },
    {
      "commit": "30148eefec1bb45f152172833afde82af0866b9f",
      "tree": "d25d31f7c1c53f4baf746baafa76b891596c5d49",
      "parents": [
        "d6705a0586377f1b0d7d14d3abe2b270bb0adb18",
        "f4e23a8a671e27065bf1cbef7e41403de166f321"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 12 14:58:45 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 12 14:58:46 2017 +0000"
      },
      "message": "Merge \"MIPS: Drop unnecessary code for R6 (NAN2008)\""
    },
    {
      "commit": "13056a1720aca64945541812a3c7602acfe4a937",
      "tree": "290248e07990fa39527d4d48df60ae81506437bb",
      "parents": [
        "99a77162e9dc351da14bb7819a2718395d7277ed"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu May 11 11:48:28 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri May 12 14:27:11 2017 +0100"
      },
      "message": "Revert \"Revert \"Use IsMarked instead of Mark for profiling info.\"\"\n\nBug in the original change was that we were infitely looping on the\nsame inline cache entry, expecting null when it was actually an old\npointer to a GC\u0027ed class object.\n\nbug: 37693252\n\nThis reverts commit 3afefba4b5558f5f726338485c1f6ddc7f107719.\n\nChange-Id: I12a86afe6163809b19f43927543eb9dd898454f0\n"
    },
    {
      "commit": "f4e23a8a671e27065bf1cbef7e41403de166f321",
      "tree": "d25d31f7c1c53f4baf746baafa76b891596c5d49",
      "parents": [
        "d6705a0586377f1b0d7d14d3abe2b270bb0adb18"
      ],
      "author": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@imgtec.com",
        "time": "Tue May 09 15:43:45 2017 +0200"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Fri May 12 15:08:27 2017 +0200"
      },
      "message": "MIPS: Drop unnecessary code for R6 (NAN2008)\n\nThe latest MIPS64R6 emulator supports NAN2008 standard (it correctly\nsets FCSR.NAN2008 to 1 as it is required from R6). Because of that,\nmany workarounds can be removed.\n\nThis simplifies code generator and intrinsics.\n\nTest: ./testrunner.py --target --optimizing in QEMU for MIPS64R6\nTest: ./testrunner.py --target --optimizing in QEMU for MIPS32R6\nTest: ./testrunner.py --target --optimizing in QEMU for MIPS32R2\n\nChange-Id: Ib5335835b61f55690ff574bca580ea8f809657bb\n"
    },
    {
      "commit": "bb84610d2de3c12b0e0cdc724df29479b9501461",
      "tree": "c653ec839e370b2cf200a3303abd81b2c36bedd9",
      "parents": [
        "0af0ec2b59e624861dc3461ba9ce192fd350fd12"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu May 11 21:03:35 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu May 11 21:03:35 2017 -0700"
      },
      "message": "ART: Remove CompiledClass\n\nReplace by direct storage of the class status, and modify accessor\nto return boolean value of whether the item exits. Reduces RAM\nrequirements and allocations for dex2oat.\n\nTest: m test-art-host\nChange-Id: I6a80ac3d644c7fd0da167996ab991b6d2796a458\n"
    },
    {
      "commit": "d6705a0586377f1b0d7d14d3abe2b270bb0adb18",
      "tree": "2fcd1e87f58a794130b51d20aa9396d400d20aa4",
      "parents": [
        "0af0ec2b59e624861dc3461ba9ce192fd350fd12",
        "1cf1fe29533e63858f094e4b6595b0d8a03aa7cd"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Fri May 12 02:48:04 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 12 02:48:06 2017 +0000"
      },
      "message": "Merge changes I73637476,I5a94be6c\n\n* changes:\n  Revert \"Compress profile files\"\n  Revert \"Profile compression: Replace method index with difference with the last method_index\"\n"
    },
    {
      "commit": "1cf1fe29533e63858f094e4b6595b0d8a03aa7cd",
      "tree": "70520486d9746dbae04345b600bf95858a7c0ff7",
      "parents": [
        "509d4240279c09aa755ebbd399fd333380ba40f2"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Fri May 12 02:43:23 2017 +0000"
      },
      "committer": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Fri May 12 02:46:20 2017 +0000"
      },
      "message": "Revert \"Compress profile files\"\n\nThis reverts commit 4f0a15a85eaa0a7665f703d435a9b61059eed536.\n\nReason for revert: art-test gtest-heap-poisoning is broken with this change.\n\nChange-Id: I736374766b216122cae4e7e97451951cda1551f9\n"
    },
    {
      "commit": "509d4240279c09aa755ebbd399fd333380ba40f2",
      "tree": "830bea8dd99157a92bdefdee061781fcb23282de",
      "parents": [
        "d59f564f9bb9301855a3613912e287c4eba49655"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Fri May 12 02:42:45 2017 +0000"
      },
      "committer": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Fri May 12 02:44:31 2017 +0000"
      },
      "message": "Revert \"Profile compression: Replace method index with difference with the last method_index\"\n\nThis reverts commit d59f564f9bb9301855a3613912e287c4eba49655.\n\nReason for revert: git_master-art-host - art-gtest-heap-poisoning is broken with this change.\n\nChange-Id: I5a94be6c4609defcee1c0d374009b16e70310a0d\n"
    },
    {
      "commit": "0af0ec2b59e624861dc3461ba9ce192fd350fd12",
      "tree": "115859d212b18aa392cf0409b96f5e2014a3ccc3",
      "parents": [
        "cad518333be281786548437f6be459d8efc791d2",
        "24bd3f9d63c81f448b7fe1854742fda0343a2297"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 11 21:51:22 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 11 21:51:24 2017 +0000"
      },
      "message": "Merge \"Clear odex/vdex/art file before running run-test\""
    },
    {
      "commit": "cad518333be281786548437f6be459d8efc791d2",
      "tree": "a7f7fb3af7cda514a8d1a0218f7729ab0b011055",
      "parents": [
        "05850204bdd25621a1264a400f7f68eba24f30a5",
        "d59f564f9bb9301855a3613912e287c4eba49655"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Thu May 11 21:42:31 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 11 21:42:34 2017 +0000"
      },
      "message": "Merge \"Profile compression: Replace method index with difference with the last method_index\""
    },
    {
      "commit": "24bd3f9d63c81f448b7fe1854742fda0343a2297",
      "tree": "7a1f53beca51b24703c615a08ddad609cf56e7df",
      "parents": [
        "b75e66e7636b3100432c7459130f55e12c12e0ab"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu May 11 00:36:53 2017 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu May 11 13:22:14 2017 -0700"
      },
      "message": "Clear odex/vdex/art file before running run-test\n\nThis allows individual tests to call the RUN script\nmultiple times.\n\nTest: ./test/testrunner/testrunner.py [--host|--target] [--no-prebuild]\nBug: 38213479\nChange-Id: Ibbac7404b44ea175a5aba0459dd7c7868c530954\n"
    },
    {
      "commit": "05850204bdd25621a1264a400f7f68eba24f30a5",
      "tree": "3c36cac50eb6fd22a0a860d725b0dcd6acae26b5",
      "parents": [
        "f1373968236e720d88ebe64c101e417053bf2f7b",
        "4f0a15a85eaa0a7665f703d435a9b61059eed536"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Thu May 11 19:54:30 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 11 19:54:32 2017 +0000"
      },
      "message": "Merge \"Compress profile files\""
    },
    {
      "commit": "d59f564f9bb9301855a3613912e287c4eba49655",
      "tree": "19c46a2191b1a363ea95cc90cbfb8129e1df5093",
      "parents": [
        "4f0a15a85eaa0a7665f703d435a9b61059eed536"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Mon May 08 17:01:48 2017 -0700"
      },
      "committer": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Thu May 11 12:53:45 2017 -0700"
      },
      "message": "Profile compression: Replace method index with difference with the last method_index\n\nStore the difference with the last method index in the profile rather than\nputting the actual method index. Leveraging the common difference values,\ncompressing the profile will reduce the size further.\n\nResults:\n\nApp1\n    Without - 74K\n    With - 58K\nApp2\n    Without - 54K\n    With - 30K\nApp3\n    Without 40K,\n    With - 24K\n\nBug: 36281963\n\nTest: dexlayout_test, profile_assistant_test, \\\n     profman_test, profile_compilation_info_test\n\nChange-Id: I96bcadac250c08aaf23ade7465c5ac6ba9ea75dc\n"
    },
    {
      "commit": "f1373968236e720d88ebe64c101e417053bf2f7b",
      "tree": "fd4d3b99ea09fad75769c8814fa5c515fe0bb872",
      "parents": [
        "63529dd46f4a38f9c35c549399480c725beee884",
        "cdae15f6738e89a283e959325cf40710ed47632a"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu May 11 17:51:48 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 11 17:51:49 2017 +0000"
      },
      "message": "Merge \"Remove 597-deopt-new-string from blacklist.\""
    },
    {
      "commit": "4f0a15a85eaa0a7665f703d435a9b61059eed536",
      "tree": "830bea8dd99157a92bdefdee061781fcb23282de",
      "parents": [
        "b75e66e7636b3100432c7459130f55e12c12e0ab"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Wed Apr 26 19:26:46 2017 -0700"
      },
      "committer": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Thu May 11 10:31:40 2017 -0700"
      },
      "message": "Compress profile files\n\nThe change brings in new serialization format:\nmagic,version,number_of_dex_files,uncompressed_size_of_zipped_data,\n    compressed_data_size\nzipped[dex_location1,number_of_classes1,methods_region_size,dex_location_checksum1, \\\n        method_encoding_11,method_encoding_12...,class_id1,class_id2...\n    dex_location2,number_of_classes2,methods_region_size,dex_location_checksum2, \\\n        method_encoding_21,method_encoding_22...,,class_id1,class_id2...\n .....]\n\nThe data is compressed using zlib level 1 compression.\n\nSample app profile statistics on host with and without the change:\n\nApp1\n    Without - 10ms, 160K\n    With - 15ms, 74K\nApp2\n    Without - 4ms, 106K\n    With - 7ms, 54K\nApp3\n    Without 3ms, 74K,\n    With - 7ms, 54K\n\nBug: 36281963\nTest: dexlayout_test, profile_assistant_test, \\\n     profman_test, profile_compilation_info_test\nChange-Id: Iefa51a5a76adb33eef22aa76cdf85c3fe0a59a2a\n"
    },
    {
      "commit": "63529dd46f4a38f9c35c549399480c725beee884",
      "tree": "6d67e0788607f788910a503b10000d990463ce47",
      "parents": [
        "f4afd9f34035a67f4f845fc8c273589da7a09adc",
        "d8b6a53074be7d6b98c651ed8d2127f089da39a6"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu May 11 16:15:45 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 11 16:15:47 2017 +0000"
      },
      "message": "Merge \"MIPS64: Saves 128-bit vector registers along SuspendCheckSlowPath\""
    },
    {
      "commit": "f4afd9f34035a67f4f845fc8c273589da7a09adc",
      "tree": "eae23d40e4094f77dd6ffbd05997c75d11dca342",
      "parents": [
        "6c28d1129b65a907aafd763d18a2f77aca4cc5d4",
        "b59d5fbcd44f837e3f14cd7fe58268ad55afe788"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 11 16:02:35 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 11 16:02:37 2017 +0000"
      },
      "message": "Merge \"ARM/ARM64: Clean up relative patchers.\""
    },
    {
      "commit": "6c28d1129b65a907aafd763d18a2f77aca4cc5d4",
      "tree": "36e702fc270cb3e4b81cb43bf59641c8acf02c19",
      "parents": [
        "de6fc4a429b69f074dc6d28b52197b425aacd78c",
        "6ca115b5fa185a2cc162a453f425efd87d8f38bd"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu May 11 14:47:26 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 11 14:47:28 2017 +0000"
      },
      "message": "Merge \"Use a sentinel when clearing JIT table entries.\""
    },
    {
      "commit": "6ca115b5fa185a2cc162a453f425efd87d8f38bd",
      "tree": "6c6ccb5ec5094a54a8c558707f4b2a305c90b87c",
      "parents": [
        "ddc38fe3e5618e3922ecc445193dacb2f39ef736"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 10 15:09:35 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu May 11 15:46:10 2017 +0100"
      },
      "message": "Use a sentinel when clearing JIT table entries.\n\nThis can help diagnosing crashes we see.\n\nbug: 38128052\nbug: 37949368\nTest: test.py --jit\nChange-Id: I7bf70785e8bd93fb0575ac64b1fb5bcb7d462b10\n"
    },
    {
      "commit": "de6fc4a429b69f074dc6d28b52197b425aacd78c",
      "tree": "879e5eacda2af3bad1aa9dc81ea08922c6c26cc8",
      "parents": [
        "99a77162e9dc351da14bb7819a2718395d7277ed",
        "e1811ed6b57a54dc8ebd327e4bd2c4422092a3a0"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 11 11:59:40 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 11 11:59:42 2017 +0000"
      },
      "message": "Merge \"ARM64: Share address computation across SIMD LDRs/STRs.\""
    },
    {
      "commit": "99a77162e9dc351da14bb7819a2718395d7277ed",
      "tree": "1c02905cb5f2573bd3bf8c8f1effc50c91086593",
      "parents": [
        "32a680a5799fffede606b817fae1643250bb1d76",
        "7d157fcaaae137cc98dbfb872aa1bdc0105a898f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 11 11:42:28 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 11 11:42:30 2017 +0000"
      },
      "message": "Merge \"Clean up some uses of \"auto\".\""
    },
    {
      "commit": "32a680a5799fffede606b817fae1643250bb1d76",
      "tree": "5b87a4207a0dbaa74cd4b457db21e9e6dd1d20f3",
      "parents": [
        "58d7ddc678e5bcd2364c24c4bdc8a3cfbcfc5358",
        "3afefba4b5558f5f726338485c1f6ddc7f107719"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu May 11 10:52:56 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 11 10:52:56 2017 +0000"
      },
      "message": "Merge \"Revert \"Use IsMarked instead of Mark for profiling info.\"\""
    },
    {
      "commit": "3afefba4b5558f5f726338485c1f6ddc7f107719",
      "tree": "24fed2cf58a56a11ec4883367938b1d5bf2ff4a5",
      "parents": [
        "a30183dfe048cac0d53a0f07608c5f6fc516119a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu May 11 10:52:41 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu May 11 10:52:41 2017 +0000"
      },
      "message": "Revert \"Use IsMarked instead of Mark for profiling info.\"\n\nCrashes in some configs.\n\nbug: 37693252\n\nThis reverts commit a30183dfe048cac0d53a0f07608c5f6fc516119a.\n\nChange-Id: I356d397a3f3e29fbef510f48c1c7633677ca5e78\n"
    },
    {
      "commit": "7d157fcaaae137cc98dbfb872aa1bdc0105a898f",
      "tree": "2b7d8affda23908e5bfbfaad446079db2ef1ee09",
      "parents": [
        "58d7ddc678e5bcd2364c24c4bdc8a3cfbcfc5358"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 10 16:29:23 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu May 11 11:14:54 2017 +0100"
      },
      "message": "Clean up some uses of \"auto\".\n\nMake actual types more explicit, either by replacing \"auto\"\nwith actual type or by assigning std::pair\u003c\u003e elements of\nan \"auto\" variable to typed variables. Avoid binding const\nreferences to temporaries. Avoid copying a container.\n\nTest: m test-art-host-gtest\nChange-Id: I1a59f9ba1ee15950cacfc5853bd010c1726de603\n"
    },
    {
      "commit": "58d7ddc678e5bcd2364c24c4bdc8a3cfbcfc5358",
      "tree": "60dfbcf84b234f25514007bb80beed946b4fbe8a",
      "parents": [
        "a76e0caa541b4e5bd849c42bb8009330c0a49c4f",
        "f7caf682c6b4769b2a3dd2f2241532b98709c1a3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu May 11 09:56:44 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 11 09:56:45 2017 +0000"
      },
      "message": "Merge \"Instruction scheduling for ARM.\""
    },
    {
      "commit": "a76e0caa541b4e5bd849c42bb8009330c0a49c4f",
      "tree": "53276e278d1532051e8c3f081829bcc4c07e9b74",
      "parents": [
        "7e4f71f9014c5dc573b4dbbf7faefc4c72d5f55d",
        "a30183dfe048cac0d53a0f07608c5f6fc516119a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu May 11 09:35:33 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 11 09:35:34 2017 +0000"
      },
      "message": "Merge \"Use IsMarked instead of Mark for profiling info.\""
    },
    {
      "commit": "e1811ed6b57a54dc8ebd327e4bd2c4422092a3a0",
      "tree": "e3ce48e66190c11a8b5342f4ec0d1046ba28d788",
      "parents": [
        "7113885fcd983b33ee1e350865d21517d6297843"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Thu Apr 27 16:50:47 2017 +0100"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Thu May 11 10:06:04 2017 +0100"
      },
      "message": "ARM64: Share address computation across SIMD LDRs/STRs.\n\nFor array accesses the element address has the following structure:\nAddress \u003d CONST_OFFSET + base_addr + index \u003c\u003c ELEM_SHIFT\n\nTaking into account ARM64 LDR/STR addressing modes address part\n(CONST_OFFSET + index \u003c\u003c ELEM_SHIFT) can be shared across array\naccess with the same data type and index.\n\nFor example, for the following loop 5 accesses can share address\ncomputation:\n\nvoid foo(int[] a, int[] b, int[] c) {\n  for (i...) {\n    a[i] \u003d a[i] + 5;\n    b[i] \u003d b[i] + c[i];\n  }\n}\n\nTest: test-art-host, test-art-target\n\nChange-Id: I46af3b4e4a55004336672cdba3296b7622d815ca\n"
    },
    {
      "commit": "3837011236058617292bee831708449e5100c08c",
      "tree": "1f9d72542f9309017433f3a1fe13a5a2dac4e000",
      "parents": [
        "7e4f71f9014c5dc573b4dbbf7faefc4c72d5f55d"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Wed May 10 14:30:28 2017 +0200"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Thu May 11 10:35:34 2017 +0200"
      },
      "message": "MIPS64: Add ilvr.df MSA instructions\n\nThese instructions are needed for compressed string support\nin ART Vectorizer.\n\nTest: mma test-art-host-gtest\nChange-Id: I269473bb8bcce5aba72201380bb71860e5498d73\n"
    },
    {
      "commit": "7e4f71f9014c5dc573b4dbbf7faefc4c72d5f55d",
      "tree": "9d0282eef466e288c44357bfe112947c21dd6050",
      "parents": [
        "0e08ab440b3f8fae780ca899c693e02f0f9ddf2c",
        "2abb686ddbf7c8fe54f2c1cb41ab90d7c8b04c7a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 11 00:19:54 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 11 00:19:58 2017 +0000"
      },
      "message": "Merge \"Add test for getError() of NativeBridge.\""
    },
    {
      "commit": "0e08ab440b3f8fae780ca899c693e02f0f9ddf2c",
      "tree": "1c47e4b29ca7766203f3e2c3d70306843050b387",
      "parents": [
        "99cdddaf8e5bc6b31d0eb375755ec4071a9fb527",
        "093a6fbcaa1f9fd2924e97906109482a8f31a247"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed May 10 23:58:23 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 10 23:58:25 2017 +0000"
      },
      "message": "Merge \"Fix page accounting for multidex\""
    },
    {
      "commit": "99cdddaf8e5bc6b31d0eb375755ec4071a9fb527",
      "tree": "7854fc769e7ed34e4d8c30f6128ed58728cadd41",
      "parents": [
        "b75e66e7636b3100432c7459130f55e12c12e0ab",
        "2665bc8159698429f20a08f814e63c434910d608"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Wed May 10 23:29:40 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 10 23:29:42 2017 +0000"
      },
      "message": "Merge \"Add explicit default copy constructor\""
    },
    {
      "commit": "2abb686ddbf7c8fe54f2c1cb41ab90d7c8b04c7a",
      "tree": "383e04ffa288f5104e266d441a83243dc638a065",
      "parents": [
        "b75e66e7636b3100432c7459130f55e12c12e0ab"
      ],
      "author": {
        "name": "Yanbing Jiang",
        "email": "yanbing.jiang@intel.com",
        "time": "Tue Jan 17 13:23:43 2017 +0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed May 10 15:28:20 2017 -0700"
      },
      "message": "Add test for getError() of NativeBridge.\n\nNativeBridge v3 introduced getError() of which the functionality\nis same as dlerror(). This patch forces the routine of ART to\nNativeBridge to execute getError() on ART host test by loading\ninvalid library from Java.\n\nTest: make test-art-host-run-test-115-native-bridge\nChange-Id: Iba389c22b6587176cbfe57d42af49041560c5b00\nSigned-off-by: Zhenhua WANG \u003czhenhua.wang@intel.com\u003e\n"
    },
    {
      "commit": "b75e66e7636b3100432c7459130f55e12c12e0ab",
      "tree": "70520486d9746dbae04345b600bf95858a7c0ff7",
      "parents": [
        "0ac500f2d5d8e9948e5041e601c9dec805c7b74b",
        "8fd2694aa1103911baf32eb05813cc11ab00ef4b"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Wed May 10 20:58:04 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 10 20:58:05 2017 +0000"
      },
      "message": "Merge \"Testrunner: Fix concurrecy for --target\""
    },
    {
      "commit": "a30183dfe048cac0d53a0f07608c5f6fc516119a",
      "tree": "2171d837a43fabfc3004cc3a681b3ef1957a2b5c",
      "parents": [
        "e6cf6204eff91e50d600d5c3c83e424ecab526b7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 10 15:13:28 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 10 21:50:39 2017 +0100"
      },
      "message": "Use IsMarked instead of Mark for profiling info.\n\nThe profiling info contains weak roots to classes, so don\u0027t Mark\nthem in case a class gets unloaded.\n\nbug: 37693252\nTest: test.py --jit\nChange-Id: Ida785ed49054f02f43474aebc780ec5b85371860\n"
    },
    {
      "commit": "cdae15f6738e89a283e959325cf40710ed47632a",
      "tree": "0036bf914ecac8be8f88d6c29f34df52cf6bd938",
      "parents": [
        "0ac500f2d5d8e9948e5041e601c9dec805c7b74b"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed May 10 13:46:45 2017 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed May 10 13:46:45 2017 -0700"
      },
      "message": "Remove 597-deopt-new-string from blacklist.\n\nBug: 36467228\nTest: run 597-deopt-new-string under no-image and jit.\nChange-Id: I6ad465bb3e82b4f86344d9a7f4bdffe06cf6ce1b\n"
    },
    {
      "commit": "093a6fbcaa1f9fd2924e97906109482a8f31a247",
      "tree": "cd19863d64d8526de6d3adc1bf1f3b6bfcd041e7",
      "parents": [
        "0ac500f2d5d8e9948e5041e601c9dec805c7b74b"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue May 09 15:41:09 2017 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed May 10 12:50:43 2017 -0700"
      },
      "message": "Fix page accounting for multidex\n\nDexdiag was using the offset into the mapping rather than into the dex\nfile for determining the types of pages.  This resulted in multidex\nfiles having incorrect accounting.\n\nBug: 38181622\nTest: make test-art-target-gtest-dexdiag_test\nChange-Id: I00a4e21db5f57f75642a17e8edaa9c73b8b529b6\n(cherry picked from commit dda59691e059101b00c70c49e7e2718d3b7c5d99)\n"
    },
    {
      "commit": "0ac500f2d5d8e9948e5041e601c9dec805c7b74b",
      "tree": "8e732c89820d840bc620ce6dc31cbe2964c356b6",
      "parents": [
        "92f4672f811a4eccdc596f7c2235804abd196fde",
        "6e6444508de1afaeaf612970fad608b58b89b009"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 10 19:00:59 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 10 19:01:00 2017 +0000"
      },
      "message": "Merge \"ART: Make GC Pause Listener more precise\""
    },
    {
      "commit": "2665bc8159698429f20a08f814e63c434910d608",
      "tree": "789342315c3cc1cd8d8dba9ac5a7f348e3ff4aab",
      "parents": [
        "d5580a920370920f107914869361e92f8da8e91d"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Tue May 09 15:55:57 2017 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Wed May 10 11:10:23 2017 -0700"
      },
      "message": "Add explicit default copy constructor\n\nDefinition of implicit copy constructor is deprecated if it has a\nuser-declared destructor. This triggers -Wdeprecated compiler warning\nand breaks the build in latest Clang update.\n\nTest: Build\nBug: 37752547\nChange-Id: I9827e09d0ef846369917192c50db2bb80a0bd0bb\n"
    },
    {
      "commit": "92f4672f811a4eccdc596f7c2235804abd196fde",
      "tree": "03449148ef022c9c3afc50bc960f2851e0098f97",
      "parents": [
        "5528d1c7cf686d2edea51ff12881e495c2124f09",
        "952b23505e2512c9327e6d20c8304493bf8fcf7c"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed May 10 17:24:56 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 10 17:24:58 2017 +0000"
      },
      "message": "Merge \"Improve the documentation of an ARM64 parallel move resolver corner case.\""
    },
    {
      "commit": "5528d1c7cf686d2edea51ff12881e495c2124f09",
      "tree": "a40a13b14d3b43bde8b1525d301ba108f48bbc74",
      "parents": [
        "270970e660d3c99e62a88b18144d159dd8699c55",
        "2eb25e4513778c568919f99a053a79df3a5bbe17"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 10 17:11:48 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 10 17:11:49 2017 +0000"
      },
      "message": "Merge changes I93c26ff3,I0dc1a141\n\n* changes:\n  ART: Add IterateThroughHeapExt\n  ART: Refactor IterateThroughHeap\n"
    },
    {
      "commit": "6e6444508de1afaeaf612970fad608b58b89b009",
      "tree": "ea42cbed1450be598869ef406bb1a6c31a7e4f77",
      "parents": [
        "270970e660d3c99e62a88b18144d159dd8699c55"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue May 09 16:30:27 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 10 10:07:32 2017 -0700"
      },
      "message": "ART: Make GC Pause Listener more precise\n\nRefactor code to call the listener in FlipThreadRoots, after all\nthreads have been suspended.\n\nBug: 37283268\nTest: m test-art-host\nChange-Id: I313db07e014e65a997d0b58c8a70e4505425def0\n"
    },
    {
      "commit": "b59d5fbcd44f837e3f14cd7fe58268ad55afe788",
      "tree": "85770c18c51dac1fcdfdb5729fc4406056015fd7",
      "parents": [
        "270970e660d3c99e62a88b18144d159dd8699c55"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 09 14:19:21 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 10 17:50:08 2017 +0100"
      },
      "message": "ARM/ARM64: Clean up relative patchers.\n\nTest: Rely on TreeHugger.\nBug: 29516974\nBug: 30126666\nBug: 36141117\nChange-Id: I5c452bfae79e63de09211f396abc5413ac7a3e4d\n"
    },
    {
      "commit": "270970e660d3c99e62a88b18144d159dd8699c55",
      "tree": "910248487abab475a9109925a9089fedd08b45c1",
      "parents": [
        "201c81947f23b3f43c2ff78d9c1078dd53157fe5",
        "88abba2b0cb0151d89e16da3e64025878dc2f142"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 10 14:04:18 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 10 14:04:19 2017 +0000"
      },
      "message": "Merge \"ARM/AOT: Allow 16-bit LDR for Baker read barrier loads.\""
    },
    {
      "commit": "201c81947f23b3f43c2ff78d9c1078dd53157fe5",
      "tree": "f4bbe15fca8e33ce89b3ffd19760bf0b7c59c50a",
      "parents": [
        "e6cf6204eff91e50d600d5c3c83e424ecab526b7",
        "81cc43e7d3c4dcd197b3d3a0fa9d1a3be9413367"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 10 13:03:06 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 10 13:03:07 2017 +0000"
      },
      "message": "Merge \"Fix braino in enum use.\""
    },
    {
      "commit": "e6cf6204eff91e50d600d5c3c83e424ecab526b7",
      "tree": "24fed2cf58a56a11ec4883367938b1d5bf2ff4a5",
      "parents": [
        "c8a5b6c38a4e934a7953b07cc12046b01c32ae5d",
        "cf7127b4a368ed26eaf257286173d5337f67a0a7"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed May 10 12:37:36 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 10 12:37:38 2017 +0000"
      },
      "message": "Merge \"ART: Fix null dereference for JSR45\""
    },
    {
      "commit": "c8a5b6c38a4e934a7953b07cc12046b01c32ae5d",
      "tree": "f1f5e3f57298a3f05d41e1a7f6847d73bac8e851",
      "parents": [
        "ddc38fe3e5618e3922ecc445193dacb2f39ef736",
        "3082661d260449e1d773f077e914160c7ad58de5"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 10 11:59:42 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 10 11:59:45 2017 +0000"
      },
      "message": "Merge \"Revert \"ARM: Improve the code generated for HCondition with a constant input\"\""
    },
    {
      "commit": "3082661d260449e1d773f077e914160c7ad58de5",
      "tree": "4407aec4c23d0fa52b9a3334529042797da2d24f",
      "parents": [
        "b404f349d69f940ef2974915fe97c16070364efd"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 10 11:59:26 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 10 11:59:26 2017 +0000"
      },
      "message": "Revert \"ARM: Improve the code generated for HCondition with a constant input\"\n\nReverting to see if that change is responsible for a crash. Will share with ARM if it is.\n\nThis reverts commit b404f349d69f940ef2974915fe97c16070364efd.\n\nChange-Id: Idd04f9109447319445ff49f3fd7dc5b069b4883f\n"
    },
    {
      "commit": "81cc43e7d3c4dcd197b3d3a0fa9d1a3be9413367",
      "tree": "25deb318d103f24b87b890eeaf460640a5815513",
      "parents": [
        "ddc38fe3e5618e3922ecc445193dacb2f39ef736"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 10 12:04:49 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 10 12:05:52 2017 +0100"
      },
      "message": "Fix braino in enum use.\n\nbug:37655083\nTest: jdwp\nChange-Id: I9611a43553aa753d2b8e9cb0dcd99484560f3e62\n"
    },
    {
      "commit": "ddc38fe3e5618e3922ecc445193dacb2f39ef736",
      "tree": "090cf77abda6a5755371673966ceea83f858048c",
      "parents": [
        "45f9865cc974d344c9a859508c8ec8ce101f4c52",
        "4e92c3ce7ef354620a785553bbada554fca83a67"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 10 10:55:45 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 10 10:55:47 2017 +0000"
      },
      "message": "Merge \"Add runtime reasons for deopt.\""
    },
    {
      "commit": "cf7127b4a368ed26eaf257286173d5337f67a0a7",
      "tree": "081bae0092d7e4e33176341d1aa2345abb0629b4",
      "parents": [
        "cbf27b379c4632f4b17a07db128ada2db555d591"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue May 09 09:51:35 2017 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed May 10 11:10:06 2017 +0100"
      },
      "message": "ART: Fix null dereference for JSR45\n\nAvoid dereferencing DEX cache pointer if it is null. Arrays and\nprimitive types do not have DEX cache\u0027s installed.\n\nTest: art/tools/run-jdwp-tests.sh --mode\u003dhost\nBug: 38126955\nChange-Id: I151c18f428d040a4cd9f2fb497c731440bb9fda3\n"
    },
    {
      "commit": "45f9865cc974d344c9a859508c8ec8ce101f4c52",
      "tree": "c600c10efa46c53fe8fd2560925d866ef6fdc788",
      "parents": [
        "8dc0329f933e9dba996f13cb044642608b26becf",
        "3923703e7587c652dd65dc25b851df4343de331d"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed May 10 08:59:57 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 10 08:59:57 2017 +0000"
      },
      "message": "Merge \"SignalCatcher: Minor tweaks to log message.\""
    },
    {
      "commit": "8dc0329f933e9dba996f13cb044642608b26becf",
      "tree": "73d6bfb4cd437a6ccfb483533bb32d1638094247",
      "parents": [
        "1a9a9e363b37dd9ff008a0664e7f54431b670e0b",
        "36930eca8cd6ed2bb78da0c1d013db6a92d80670"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 10 08:48:00 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 10 08:48:02 2017 +0000"
      },
      "message": "Merge \"Be defensive in dex2oat when updating the vdex in-place.\""
    },
    {
      "commit": "4e92c3ce7ef354620a785553bbada554fca83a67",
      "tree": "42029deff4d3ba7f89b5fdbf79ff410da575f431",
      "parents": [
        "549844e9ccf432d1396b19af890eedb602b8ba04"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon May 08 09:34:26 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 10 09:27:33 2017 +0100"
      },
      "message": "Add runtime reasons for deopt.\n\nCurrently to help investigate. Also:\n1) Log when deoptimization happens (which method and what reason)\n2) Trace when deoptimization happens (to make it visible in systrace)\n\nbug:37655083\nTest: test-art-host test-art-target\nChange-Id: I0c2d87b40db09e8e475cf97a7c784a034c585e97\n"
    },
    {
      "commit": "2eb25e4513778c568919f99a053a79df3a5bbe17",
      "tree": "f99e41dfa6b480b7b44cf309559e5c19c56ab1e6",
      "parents": [
        "f787fd3bc5476f73edb1722b4f6a09d52f69cd12"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue May 09 17:14:58 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue May 09 17:14:58 2017 -0700"
      },
      "message": "ART: Add IterateThroughHeapExt\n\nAdd another heap extension. This is the same as IterateThroughHeap,\nbut delivers an additional parameter to the callback that is the\nheap id.\n\nBug: 37283268\nTest: m test-art-host\nChange-Id: I93c26ff3afe4205f00f2e4ed871384f862886746\n"
    },
    {
      "commit": "f787fd3bc5476f73edb1722b4f6a09d52f69cd12",
      "tree": "af2c1150d7fb7a457d5c14671f1bb8741a4b2f1a",
      "parents": [
        "1a9a9e363b37dd9ff008a0664e7f54431b670e0b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue May 09 16:04:20 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue May 09 16:04:20 2017 -0700"
      },
      "message": "ART: Refactor IterateThroughHeap\n\nFactor out callback. In preparation for extension API.\n\nBug: 37283268\nTest: m test-art-host\nChange-Id: I0dc1a141afe43a415be9326bed24bd835dbbdc8c\n"
    },
    {
      "commit": "8fd2694aa1103911baf32eb05813cc11ab00ef4b",
      "tree": "dc4676ee04c436286b3f8dc1046b8c0ec7062e14",
      "parents": [
        "1a9a9e363b37dd9ff008a0664e7f54431b670e0b"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Tue May 09 11:30:47 2017 -0700"
      },
      "committer": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Tue May 09 21:59:46 2017 +0000"
      },
      "message": "Testrunner: Fix concurrecy for --target\n\nPopen was returning bytes instead of string which was causing the\nlogic of extracting out concurrency for the target device to break.\nNow, the output of the Popen will be converted to string and regex\nmatching is used instead of string split to better handle the case\nwhen the input string doesn\u0027t follow the pattern.\n\nTest: ./art/test/testrunner/testrunner.py --target\nBug: 38130322\n\nChange-Id: I6c2f3070e88e0cbd80a61380f6c4f714e8886b3c\n"
    },
    {
      "commit": "1a9a9e363b37dd9ff008a0664e7f54431b670e0b",
      "tree": "e417ca37120858ddffaa83c7cb8a140ef4b96933",
      "parents": [
        "d5580a920370920f107914869361e92f8da8e91d",
        "50e20d54670aecf1a4fdcf37ef1606d5ca990559"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue May 09 20:38:01 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 09 20:38:03 2017 +0000"
      },
      "message": "Merge \"Moved knowledge on masking shift operands to simplifier.\""
    },
    {
      "commit": "50e20d54670aecf1a4fdcf37ef1606d5ca990559",
      "tree": "cb61312693cd392c3f9a569153a55c3eef936714",
      "parents": [
        "e22445fba0e5747ea787429ac64577a9a62aded3"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri May 05 14:07:29 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue May 09 10:41:39 2017 -0700"
      },
      "message": "Moved knowledge on masking shift operands to simplifier.\n\nRationale:\nIt is better to have a single place that simplifies shift\nfactors outside the 32-bit or 64-bit distance range, so\nthat other phases (induction variable analysis, loop optimizations,\netc.) do not have to know about that.\n\nTest: test-art-target, test-art-host\nChange-Id: Idfd90259cca085426cc3055eccb90f3c0976036b\n"
    }
  ],
  "next": "d5580a920370920f107914869361e92f8da8e91d"
}
