)]}'
{
  "log": [
    {
      "commit": "192edbe3ea52cb7f47cca33ced6f448904e11a59",
      "tree": "9f7c120481534049e6a18126483c6101ba538511",
      "parents": [
        "a7eb971a170a353e757ad6ea7514d98666114c5e",
        "4ba388a39333b13f0f3bcde826444c77fd7166ed"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 30 22:02:04 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 30 22:02:04 2017 +0000"
      },
      "message": "Merge \"Remove Deoptimization code from class transformation.\""
    },
    {
      "commit": "a7eb971a170a353e757ad6ea7514d98666114c5e",
      "tree": "8a4aac3eb8967f4ed235b7ecf75231f442283878",
      "parents": [
        "500d4918e5fb6eafb76b36c4ec736f974835b94c",
        "e9429c8c5f8c5541dcbe97e03c55cba175bce182"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jan 30 21:42:32 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 30 21:42:33 2017 +0000"
      },
      "message": "Merge \"Add to time to suspend in FlipThreadRoots to histogram\""
    },
    {
      "commit": "500d4918e5fb6eafb76b36c4ec736f974835b94c",
      "tree": "5c6be88b473e60296ae9df22bfc55cfca85a3d28",
      "parents": [
        "fdd869faca8dff54a456ccb5f1a68ecb44143721",
        "433b79a9130df5f2375b9d3d7518c1f3fb84a467"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 30 20:56:11 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 30 20:56:11 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Make --debuggable rely on JIT code.\"\"\""
    },
    {
      "commit": "433b79a9130df5f2375b9d3d7518c1f3fb84a467",
      "tree": "dddc053886464b99be29b9ca69039d74d49605ca",
      "parents": [
        "81356645157af44152c7b7db383596b5cf3479b5"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 30 20:54:45 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 30 20:54:45 2017 +0000"
      },
      "message": "Revert \"Revert \"Make --debuggable rely on JIT code.\"\"\n\nFixed by https://android-review.googlesource.com/#/c/330165/\n\nThis reverts commit 81356645157af44152c7b7db383596b5cf3479b5.\n\nChange-Id: Ifb74e1cc90ab6dea621f7f54a00b540d6ccd0cf6\n"
    },
    {
      "commit": "d7c4ad030c2c316f5e1b2049ff8fa925b56bee2b",
      "tree": "fee68e3431cd62d6f5d6da89c1e105993bfb5528",
      "parents": [
        "f22bf9f809def57c96a19d932467a175bbd9c08c",
        "81356645157af44152c7b7db383596b5cf3479b5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jan 30 20:20:19 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 30 20:20:20 2017 +0000"
      },
      "message": "Merge \"Revert \"Make --debuggable rely on JIT code.\"\""
    },
    {
      "commit": "81356645157af44152c7b7db383596b5cf3479b5",
      "tree": "59aca3792abfa47c7424e4dac13248651e4662b2",
      "parents": [
        "a0619e25aacf8b8074132f4951f75fdbcfd42925"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jan 30 20:18:02 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jan 30 20:19:28 2017 +0000"
      },
      "message": "Revert \"Make --debuggable rely on JIT code.\"\n\nBreaks 137-cfi with ART_TEST_RUN_TEST_DEBUGGABLE\u003dtrue\n\nThis reverts commit a0619e25aacf8b8074132f4951f75fdbcfd42925.\n\nbug: 28769520\nChange-Id: Ifd7b8fc7c9b72c0a523fd57c4b1b80edd3547caa\n"
    },
    {
      "commit": "4ba388a39333b13f0f3bcde826444c77fd7166ed",
      "tree": "bbb2b337ee5798f50c5720d2e8467c53477d7826",
      "parents": [
        "8f28bd479af445293474867191a0bf1cf0f08a4f"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jan 27 10:26:49 2017 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jan 30 12:13:30 2017 -0800"
      },
      "message": "Remove Deoptimization code from class transformation.\n\nSince we removed the current_method from the compiled code we don\u0027t\nneed to deoptimize all frames anymore.\n\nThis is a partial revert of commit dba614810.\n\nBug: 32369913\nBug: 33630159\n\nTest: ART_TEST_TRACE\u003dtrue \\\n      ART_TEST_JIT\u003dtrue   \\\n      ART_TEST_INTERPRETER\u003dtrue mma -j40 test-art-host\n\nChange-Id: I44a6dd89e1d96bd8c82c2c24a2f42fef023a80be\n"
    },
    {
      "commit": "f22bf9f809def57c96a19d932467a175bbd9c08c",
      "tree": "213a40043875c611a572180b07b880c8f8f52eeb",
      "parents": [
        "8f28bd479af445293474867191a0bf1cf0f08a4f",
        "c155b05481e5995a0aa1d8edaa5047bbdb631c6e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 30 19:04:14 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 30 19:04:14 2017 +0000"
      },
      "message": "Merge \"Merge layout-speed compiler filter into speed-profile.\""
    },
    {
      "commit": "8f28bd479af445293474867191a0bf1cf0f08a4f",
      "tree": "2bf92d368a6ad5b766bef70a3ee9c35d7af6db71",
      "parents": [
        "ab5afeedfcb496026d8fe0774de99ee895888119",
        "a0619e25aacf8b8074132f4951f75fdbcfd42925"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 30 15:09:44 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 30 15:09:45 2017 +0000"
      },
      "message": "Merge \"Make --debuggable rely on JIT code.\""
    },
    {
      "commit": "6abbd9ef363783054fe99230090ab9e881cc4c17",
      "tree": "3e8b3ffbb05f559fb7254ab898f8bb436e12ecf7",
      "parents": [
        "68158f2bf23c261ec3e5d51089c0233870f69e6a",
        "0cb124219e986a27c40001a1b22ea7ebd833a2d8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 30 13:11:02 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 30 13:11:03 2017 +0000"
      },
      "message": "Merge \"MIPS: Refactor code for unresolved field entrypoint.\""
    },
    {
      "commit": "a0619e25aacf8b8074132f4951f75fdbcfd42925",
      "tree": "dddc053886464b99be29b9ca69039d74d49605ca",
      "parents": [
        "ca21dc47adeed92a15a9d3fd090bdd0e6654679c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 20 13:57:43 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 30 12:41:52 2017 +0000"
      },
      "message": "Make --debuggable rely on JIT code.\n\nRemoves -Xfully-deoptable in the process, which was added as a\ntemporary workaround until this CL.\nPartial revert of https://android-review.googlesource.com/#/c/302232/\n\nMakes things consistent with existing infrastructure:\n\n- Parse the --debuggable from the compiler options, just like\n  --compiler-filter.\n\n- Add DEBUG_JAVA_DEBUGGABLE, passed by the zygote, for debuggable apps.\n\n- Java debuggable now solely relies on JIT for simplicity.\n\n- Debugging under userdebug for non-java-debuggable apps is still\n  best effort.\n\nTest: test-art-host, jdwp\n\nbug: 28769520\nChange-Id: Id0593aacd85b9780da97f20914a50943957c858f\n"
    },
    {
      "commit": "ec7862283dd49f5a58d0ac45960ce27c2f7671b8",
      "tree": "26d6dcc1d5ed4f0ba5ac15f17ef7377215684bf6",
      "parents": [
        "c01d49091f4588777db5bf45345f388058caa99f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Dec 20 16:24:13 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jan 30 10:21:16 2017 +0000"
      },
      "message": "Hash-based dex cache type array.\n\nTest: m test-art-host (Interpreter, Optimizing, JIT)\nTest: m test-art-target on Nexus 6P (Interpreter, Optimizing, JIT)\nTest: Nexus 6P boots\nTest: m valgrind-test-art-host\nBug: 30627598\nBug: 34659969\nBug: 30419309\nChange-Id: Ic00eda89e58088a3573fc9ec0ad04c0e69e161d1\n"
    },
    {
      "commit": "91aa238401ff8b7b6b6268d76a50be0699b022dd",
      "tree": "6d7ba198ee537ec9d82ab5f94b71cd5da9f60bf7",
      "parents": [
        "27d829a10c9fabcf7241f21029a5709fd15fc04f",
        "9dfb707ba2f8c2ff67d42c26e3214f5d7142b6d3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jan 28 04:41:10 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jan 28 04:41:11 2017 +0000"
      },
      "message": "Merge \"Revert \"ART: Give JIT thread pool workers a peer\"\""
    },
    {
      "commit": "9dfb707ba2f8c2ff67d42c26e3214f5d7142b6d3",
      "tree": "961791f6d7534fc875a4a22c8cabe2a1d4cfaf7e",
      "parents": [
        "1ee6dd71e1b9e51e15aae4d3bc95d799f11dbd04"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Jan 28 02:35:31 2017 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Jan 28 02:35:31 2017 +0000"
      },
      "message": "Revert \"ART: Give JIT thread pool workers a peer\"\n\nThis reverts commit 1ee6dd71e1b9e51e15aae4d3bc95d799f11dbd04.\n\nHas unintended consequences that need to be discussed.\n\nBug: 31684920\nChange-Id: If0ff1b5d7473f98cb3a0efc3b4bb2c0f96ad684d\n"
    },
    {
      "commit": "27d829a10c9fabcf7241f21029a5709fd15fc04f",
      "tree": "8880ce99166b4fccf1ef7321ab5d0c5d24a57d6e",
      "parents": [
        "dbdd53535231009242c50217a0e01512e8981c04",
        "1ee6dd71e1b9e51e15aae4d3bc95d799f11dbd04"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jan 28 00:51:55 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jan 28 00:51:56 2017 +0000"
      },
      "message": "Merge \"ART: Give JIT thread pool workers a peer\""
    },
    {
      "commit": "dbdd53535231009242c50217a0e01512e8981c04",
      "tree": "6d7ba198ee537ec9d82ab5f94b71cd5da9f60bf7",
      "parents": [
        "c46a99c4969017c619bc59b61a7416994de52880",
        "b15de0c0580633701c19c32bb60bcd64f30da867"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jan 28 00:16:59 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jan 28 00:17:00 2017 +0000"
      },
      "message": "Merge \"ART: Add ThreadPool mode that creates peers\""
    },
    {
      "commit": "e9429c8c5f8c5541dcbe97e03c55cba175bce182",
      "tree": "9f030b57193e34f87088249d8f1ad4151a197233",
      "parents": [
        "a0305a27fc2da2bff16415e2edf733db2adf202f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jan 27 15:22:56 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jan 27 15:32:09 2017 -0800"
      },
      "message": "Add to time to suspend in FlipThreadRoots to histogram\n\nAdd the time to suspend to the suspend_all_historam_ to determine if\nGC pauses are caused by GC or bad mutator activity.\n\nAlso exclude ThreadFlipBegin time being counted as paused since it\nhappens before threads are suspended.\n\nTest: test-art-host\n\nChange-Id: Ia55db0ebbdc7ba6f23d7212c0e42c7806b297c2b\n"
    },
    {
      "commit": "a0305a27fc2da2bff16415e2edf733db2adf202f",
      "tree": "1e928db8f1853838753a18c40327dd5574ecdcb2",
      "parents": [
        "de09f06e243f9548e58feec79b0cd249065a5f28",
        "12f1b99775bbf7dd82d0a897587ab6ed0e75ee22"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jan 27 23:31:59 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 27 23:32:00 2017 +0000"
      },
      "message": "Merge \"Remove alignment bits in between stack maps\""
    },
    {
      "commit": "1ee6dd71e1b9e51e15aae4d3bc95d799f11dbd04",
      "tree": "8aa0400bcac644fdb75bb1d60bf0a1083936df57",
      "parents": [
        "b15de0c0580633701c19c32bb60bcd64f30da867"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 24 13:33:57 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 27 14:45:40 2017 -0800"
      },
      "message": "ART: Give JIT thread pool workers a peer\n\nTo allow reporting those threads, give JIT pool threads a peer.\nThis is necessary as the compiler may load classes.\n\nBug: Bug: 29547798\nBug: 31684920\nTest: m ART_TEST_JIT\u003dtrue test-art-host\nChange-Id: I7c8e44132475f38995542da76285ca3dd63c559a\n"
    },
    {
      "commit": "0cb124219e986a27c40001a1b22ea7ebd833a2d8",
      "tree": "87c335705a0386710553ce5bc6cca4119c017ebd",
      "parents": [
        "e38436063fb4baf88152344b465eeeb1b7f6dce5"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Wed Jan 25 19:30:18 2017 -0800"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Fri Jan 27 13:37:56 2017 -0800"
      },
      "message": "MIPS: Refactor code for unresolved field entrypoint.\n\nThis is a follow-up to\nhttps://android-review.googlesource.com/#/c/325423/.\n\nTest: booted MIPS32R2 in QEMU\nTest: test-art-target-run-test-optimizing in QEMU\nTest: booted MIPS64 (with 2nd arch MIPS32R6) in QEMU\nTest: test-art-target-run-test-optimizing\n      (MIPS64R6 and MIPS32R6) in QEMU\n\nChange-Id: Ie663ecf0489e7b182434708bef71686df5f37273\n"
    },
    {
      "commit": "b15de0c0580633701c19c32bb60bcd64f30da867",
      "tree": "961791f6d7534fc875a4a22c8cabe2a1d4cfaf7e",
      "parents": [
        "67c60656639acc92dca2ae8713add7d22683c7b9"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 24 13:12:19 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 27 13:14:34 2017 -0800"
      },
      "message": "ART: Add ThreadPool mode that creates peers\n\nAdd a mode where worker threads in a thread pool will get a Java\npeer. Add a test.\n\nBug: 29547798\nBug: 31684920\nTest: m test-art-host-gtest-thread_pool_test\nChange-Id: I3654cc2be1294a79881b6ac9f84445a1e7f24b70\n"
    },
    {
      "commit": "de09f06e243f9548e58feec79b0cd249065a5f28",
      "tree": "027c5bfdea98ec8726436e695b5eb4d9572bbaf5",
      "parents": [
        "66866e2b5710cf8135674d11c6912a6f023de186",
        "eb98b08b22b83aaaf72afac8e22f0108fe62310d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 27 20:48:12 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 27 20:48:13 2017 +0000"
      },
      "message": "Merge \"Ensure ClassPreDefine returned dex file is on the Classpath\""
    },
    {
      "commit": "66866e2b5710cf8135674d11c6912a6f023de186",
      "tree": "cfbfd895ac3c71aa3eae50e649866369b95ed987",
      "parents": [
        "dee81ab18f6be61add94256fbec90a913d09cc1a",
        "137cdfa1e8a3810fb86d3298ec10036c0491d13f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jan 27 19:11:31 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 27 19:11:32 2017 +0000"
      },
      "message": "Merge \"Avoid read barriers for ArtMethod::GetDexFile\""
    },
    {
      "commit": "eb98b08b22b83aaaf72afac8e22f0108fe62310d",
      "tree": "7a25a61b8db3337652579a6d52e45bf9f79d6554",
      "parents": [
        "e38436063fb4baf88152344b465eeeb1b7f6dce5"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jan 25 13:02:32 2017 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jan 27 10:47:56 2017 -0800"
      },
      "message": "Ensure ClassPreDefine returned dex file is on the Classpath\n\nTest: mma -j40 test-art-host\nChange-Id: Icf70a78f3a1149d0e5bf9aa64f74f2ca8d025802\n"
    },
    {
      "commit": "dee81ab18f6be61add94256fbec90a913d09cc1a",
      "tree": "c9a8e36c95f836217e50e8b95dc8d54bdb5ca669",
      "parents": [
        "d8f6e6430b26bf199f4a52f0624becb7c29f3c19",
        "cefaa14b9343b0169f800a6fe64e60c0500907be"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 27 18:34:27 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 27 18:34:28 2017 +0000"
      },
      "message": "Merge \"ART: Add OnLoad system classloader search support\""
    },
    {
      "commit": "12f1b99775bbf7dd82d0a897587ab6ed0e75ee22",
      "tree": "f8cb3a7334652e59577b7ff97a1805d1bf4ddd94",
      "parents": [
        "d8f6e6430b26bf199f4a52f0624becb7c29f3c19"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 19 18:00:45 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jan 27 10:04:05 2017 -0800"
      },
      "message": "Remove alignment bits in between stack maps\n\nSaves 0.65% of boot.oat size, probably similar on apps. Added\nBitMemoryRegion to avoid requiring adding state to StackMap. Added\ntest to memory_region_test.\n\nTest: clean-oat-host \u0026\u0026 test-art-host\n\nBug: 34621054\n\nChange-Id: I40279c59e262bd5e3c6a9135f83e22b5b6900d68\n"
    },
    {
      "commit": "cefaa14b9343b0169f800a6fe64e60c0500907be",
      "tree": "06d577d35fe5c17fdf7a743388612f23eb88b5be",
      "parents": [
        "67c60656639acc92dca2ae8713add7d22683c7b9"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jan 23 15:04:59 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 27 08:35:30 2017 -0800"
      },
      "message": "ART: Add OnLoad system classloader search support\n\nAdd support for extension of the system classloader search path\nduring the OnLoad phase. Add test.\n\nBug: 34359699\nTest: m test-art-host-run-test-936-search-onload\nChange-Id: Ie0a5b4bb77999dfae87f955dde40b73ffe053b8e\n"
    },
    {
      "commit": "bd2fed5a813b68fa42fe941b07325ba4ff3190b0",
      "tree": "2e8ce7221f842133a1b7b8e6fc4793acbf4ed8f6",
      "parents": [
        "ca21dc47adeed92a15a9d3fd090bdd0e6654679c"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Jan 25 10:46:54 2017 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Jan 27 13:47:50 2017 +0000"
      },
      "message": "MethodHandles: Support and tests for revealDirect / reflectAs.\n\nWe need runtime support to materialize a Constructor, Field or\nMethod object from a MethodHandle and its associated ArtField\nor ArtMethod pointer.\n\nAn alternate approach might be to have all handles hold a reference\nto their associated Field or Method object (in addition to the\nraw ArtField or ArtMethod) but that seems unnecessary given that\nthese APIs are not expected to be called often.\n\nTest: test-art-host\n\nChange-Id: I9450706b9c30359edebf2e8a7afbc8d89bd68b26\n"
    },
    {
      "commit": "ca21dc47adeed92a15a9d3fd090bdd0e6654679c",
      "tree": "59aca3792abfa47c7424e4dac13248651e4662b2",
      "parents": [
        "67c60656639acc92dca2ae8713add7d22683c7b9",
        "e8fcd013493b800227bd7ea5f38f6cc27e9b90d1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 27 10:37:34 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 27 10:37:36 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"CHA for abstract methods.\"\"\""
    },
    {
      "commit": "295ad3c9cccd4125080acd7609891b7c8714c744",
      "tree": "a9d7175b00acf9a51b8db23628ab0e07ab795005",
      "parents": [
        "055e7beb8a652d2600a19135d4d1ad0fa3e8d10d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 27 09:56:30 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 27 09:58:13 2017 +0000"
      },
      "message": "Shoot in the dark to try and fix mac build.\n\nUse MACRO_LITERAL in assembly macros instead of LITERAL.\n\nChange-Id: I9fd921e4ae59550cfcc1f573be1798ea9823a0cb\n"
    },
    {
      "commit": "055e7beb8a652d2600a19135d4d1ad0fa3e8d10d",
      "tree": "8ab012bf97857ca0b0aa952493abc1087c00e80f",
      "parents": [
        "cb7b5dfa0522cb234b6f2e4893ce21fd9c1a6cda",
        "b048cb74b742b03eb6dd5f1d6dd49e559f730b36"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 27 09:31:36 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 27 09:31:37 2017 +0000"
      },
      "message": "Merge \"Add per array size allocation entrypoints.\""
    },
    {
      "commit": "e8fcd013493b800227bd7ea5f38f6cc27e9b90d1",
      "tree": "16bf195a81dac7f66d513be7437a0a5c98dc2365",
      "parents": [
        "cb7b5dfa0522cb234b6f2e4893ce21fd9c1a6cda"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Jan 20 10:43:30 2017 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Jan 26 22:31:03 2017 -0800"
      },
      "message": "Revert \"Revert \"CHA for abstract methods.\"\"\n\nThis reverts commit 8ebc8bf055e8bd8f6f167e65a69cf4dae136db55.\n\nWhen we set the single-implementation method for an abstract method, it\nneed to be protected by the cha-lock.\n\nTest: new testcase and ART_TEST_JIT\u003dtrue m -j20 test-art-host-run-test\nChange-Id: I66acb20ffa7e49dd9c391f001e3bb52f961872e4\n"
    },
    {
      "commit": "28027128200efc7cdfb44a6248fd48c1f57e5416",
      "tree": "92a39b6c6e6e4f4cb9e58ad9d755511803902f1b",
      "parents": [
        "13970e4af1005bf466410c4deab7b0450f348674"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jan 26 17:21:51 2017 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jan 26 17:53:02 2017 -0800"
      },
      "message": "Pass the correct name to ClassFileLoadHook\n\nWe were passing the dotted name instead of the slashed one.\n\nTest: ./test/run-test --host 937\nChange-Id: I4f5f4128cd87ed3d592b7af5724554160f15bdae\n"
    },
    {
      "commit": "137cdfa1e8a3810fb86d3298ec10036c0491d13f",
      "tree": "db568fce8feec0ae6910ff1150cf46f08fe7e3e5",
      "parents": [
        "fbf47ea64a9f797a82030e919fa4f085c9eb5b28"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 26 14:03:11 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 26 17:04:55 2017 -0800"
      },
      "message": "Avoid read barriers for ArtMethod::GetDexFile\n\nShows up in pmd benchmark from Class::FindDeclaredDirectMethod and\nClass::FindDeclaredVirtualMethod. There are still calls to\nIsProxyMethod that could probably be eliminated.\n\nReadBarrier::Mark goes from 12.39% to 3.45% according to perf.\n\nTest: test-art-host\n\nChange-Id: I6a4f2fa2d68bf5f393f83b9b70e8d6fcc9dbdaa2\n"
    },
    {
      "commit": "6f04628765d738b648c1f9bccdebd4b2704314cd",
      "tree": "aec2e7d7e8b9da02afcf627ebe2c08157851a2a0",
      "parents": [
        "e38436063fb4baf88152344b465eeeb1b7f6dce5",
        "a72859d58e9d18db4a9e33ecca6902d8594266b0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 26 23:25:10 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 26 23:25:13 2017 +0000"
      },
      "message": "Merge \"You shall know your arm32 calling conventions.\""
    },
    {
      "commit": "a72859d58e9d18db4a9e33ecca6902d8594266b0",
      "tree": "27e7a225387cd51efd95cb89ffc7b13b347815bb",
      "parents": [
        "5b3c6c0fcca76d82a4c9acb03f7714457ae53dd9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 26 22:47:27 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 26 22:50:25 2017 +0000"
      },
      "message": "You shall know your arm32 calling conventions.\n\n64bit values are passed starting an even register.\n\ntest: ./art/test/run-test --no-relocate 529-checker-unresolved\n\nChange-Id: Ic3012f34898702b48fdab4d7a77dfdd4c2a1d916\n"
    },
    {
      "commit": "e38436063fb4baf88152344b465eeeb1b7f6dce5",
      "tree": "c34ea1bf588d4ccc46d7ab9ababcc8bfa982fdc2",
      "parents": [
        "fbf47ea64a9f797a82030e919fa4f085c9eb5b28",
        "3eba863e41d531340392d9ec64e17963ac898d81"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 26 19:57:44 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 26 19:57:45 2017 +0000"
      },
      "message": "Merge \"Make verify-profile not look at the profile.\""
    },
    {
      "commit": "fbf47ea64a9f797a82030e919fa4f085c9eb5b28",
      "tree": "2dd9d352d143526273dc3872cf56bd4555628cd5",
      "parents": [
        "47fdba86e018c8d1dcef1498bfd66666a3216e8f",
        "71cd68d36f024d6c8ccfc8bc9d196a8f86e6cf7d"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Jan 26 18:50:14 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 26 18:50:15 2017 +0000"
      },
      "message": "Merge \"Avoid accessing the heap without mutator lock in Monitor::Lock.\""
    },
    {
      "commit": "3eba863e41d531340392d9ec64e17963ac898d81",
      "tree": "e7cb5bf939216ca14e5025acb96b4ae38e5dcebd",
      "parents": [
        "727e9110243392bd8599ae8ae73b1a169668ded7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 25 22:06:53 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 26 17:44:50 2017 +0000"
      },
      "message": "Make verify-profile not look at the profile.\n\nIt doesn\u0027t work well with vdex. In follow-up CLs,\nI\u0027ll just remove/rename  the filter.\n\nFor the record, compiling sheets on an angler:\nverify-profile: dex2oat took 5.383s (6.672s cpu)\nvdex: dex2oat took 1.686s (1.562s cpu)\n\nbug: 34715556\nbug: 34691602\nbug: 34691854\n\nTest: test-art-host\nChange-Id: I286637a3d7ebe1b18985e96845b0b8c4f67a1a39\n"
    },
    {
      "commit": "79da138c1c2d6b9b0aba55f93399b4205e52ff66",
      "tree": "5109b8406c969104dbe10b290b99924ce66b746b",
      "parents": [
        "f6fe51ddf1e37597482928017856ae139595667e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 26 16:24:32 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 26 16:24:32 2017 +0000"
      },
      "message": "Forgot stack alignment on x86.\n\ntest: ART_TEST_RUN_TEST_NO_RELOCATE\u003dtrue m test-art-host test-art-target\nChange-Id: I1996c0d85228e5cad7bee4387260821d9d209b11\n"
    },
    {
      "commit": "6ebb7cc1b79eb4a133ada5e4f7a775c25bc8ca06",
      "tree": "1a60e5724314b0ea9dd778d2b184d45ae5dd9fc5",
      "parents": [
        "2dc330b52a405c56bc334c615116d7e76d46fe7f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 26 15:18:52 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 26 15:19:38 2017 +0000"
      },
      "message": "Forgot this change from last commit.\n\nTest: 529-checker-unresolved\nChange-Id: I14b6a8d81a7a885cff36d3361f83d891e3ff9956\n"
    },
    {
      "commit": "2dc330b52a405c56bc334c615116d7e76d46fe7f",
      "tree": "2506d845d501e5a57e5010ae73e10b9f2ec3a06f",
      "parents": [
        "8e0e7f78431d7c6fcdaa8e0f8de9ea130a265d53",
        "d747c13e19763b295cde7dc29a2cc3ed8585e93d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 26 13:38:14 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 26 13:38:15 2017 +0000"
      },
      "message": "Merge \"ARM: Update `ArmInstructionSetFeatures` to track ARMv8-A.\""
    },
    {
      "commit": "8e0e7f78431d7c6fcdaa8e0f8de9ea130a265d53",
      "tree": "c156e098fd7a92e2c81d487b6e31a7b24e69eecd",
      "parents": [
        "334b51132a2fd1a396822a3aa80129224c94e721",
        "5b3c6c0fcca76d82a4c9acb03f7714457ae53dd9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 26 12:35:06 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 26 12:35:07 2017 +0000"
      },
      "message": "Merge \"Refactor code for unresolved field entrypoint.\""
    },
    {
      "commit": "5b3c6c0fcca76d82a4c9acb03f7714457ae53dd9",
      "tree": "e1678dcd577abb63391a0cfcbb27a69a0ac4e769",
      "parents": [
        "c9569731061e560cb56116255b00a49d6a5daeb8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 19 14:22:26 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 26 10:37:58 2017 +0000"
      },
      "message": "Refactor code for unresolved field entrypoint.\n\n- Do macro magic to avoid source code duplication.\n- Do not fetch the referrer from the assembly, but\n  from the C entrypoint instead.\n\nTest: test-art-host test-art-target\n\nChange-Id: Ib139c94bc8f74686640cad538ba75dc56fa00e1d\n"
    },
    {
      "commit": "b048cb74b742b03eb6dd5f1d6dd49e559f730b36",
      "tree": "b1f663cbb343488a548cce4db352dbc4af720a89",
      "parents": [
        "f34077c96af3389e8eae65252d4c5d51cf630039"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 23 22:50:24 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 26 09:56:36 2017 +0000"
      },
      "message": "Add per array size allocation entrypoints.\n\n- Update architectures that have fast paths for\n  array allocation to use it.\n- Will add more fast paths in follow-up CLs.\n\nTest: test-art-target test-art-host.\nChange-Id: I138cccd16464a85de22a8ed31c915f876e78fb04\n"
    },
    {
      "commit": "1ddaa2573e8ea7c69dd2015d6cfbd2021989c816",
      "tree": "250b13eaaac2178f552a03d5b4fd502108f4f1e6",
      "parents": [
        "d5125b65a706e919d02fea2a586e6bd469263fbd",
        "67da888a588a0a50d0a54a31d767cb4bd137bba2"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jan 26 08:05:34 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 26 08:05:36 2017 +0000"
      },
      "message": "Merge \"Revert \"Disable optimization of Atomic::LoadJavaData for x86 targets.\"\""
    },
    {
      "commit": "d5125b65a706e919d02fea2a586e6bd469263fbd",
      "tree": "29e8020ae06b12ed10803419c11933355c84bde9",
      "parents": [
        "699ba6ad82a66212398262c18cc9b93fc4d10ce8",
        "ee7a1c5d327e132c923cd45b5b2de091204f07dd"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jan 26 08:05:34 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 26 08:05:36 2017 +0000"
      },
      "message": "Merge \"Revert \"Ignore warning for instantiation after specialization.\"\""
    },
    {
      "commit": "67da888a588a0a50d0a54a31d767cb4bd137bba2",
      "tree": "0262c8b2a9d31f5c1ff3cca3582ee5e05e203e7f",
      "parents": [
        "fbd5118c1c36900910cabe89e3a73d598160e629"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Thu Jan 26 07:59:47 2017 +0000"
      },
      "committer": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Thu Jan 26 07:59:47 2017 +0000"
      },
      "message": "Revert \"Disable optimization of Atomic::LoadJavaData for x86 targets.\"\n\nThis reverts commit fbd5118c1c36900910cabe89e3a73d598160e629.\n\nReason for revert: \u003cINSERT REASONING HERE\u003e\n\nChange-Id: If7aac5e7f4e5376167e896c40f8bf30287f81dd1\n"
    },
    {
      "commit": "ee7a1c5d327e132c923cd45b5b2de091204f07dd",
      "tree": "d7dc428c8a0d451d57460ba813a1560dafe77cac",
      "parents": [
        "445584d3d1f8e3a9a7d12eded3b2dce5f8691d8c"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Thu Jan 26 07:59:40 2017 +0000"
      },
      "committer": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Thu Jan 26 07:59:40 2017 +0000"
      },
      "message": "Revert \"Ignore warning for instantiation after specialization.\"\n\nThis reverts commit 445584d3d1f8e3a9a7d12eded3b2dce5f8691d8c.\n\nReason for revert: \u003cINSERT REASONING HERE\u003e\n\nChange-Id: I911049f64c4e963cfa47fd8bc7f16ed14e25b057\n"
    },
    {
      "commit": "699ba6ad82a66212398262c18cc9b93fc4d10ce8",
      "tree": "ada1293453660be9a59a6a9f85113865e313e642",
      "parents": [
        "e3081680875848505cd8812ed74331a29f4f9173",
        "fbd5118c1c36900910cabe89e3a73d598160e629"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 26 07:13:16 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 26 07:13:21 2017 +0000"
      },
      "message": "Merge changes from topic \u0027clang-3625443\u0027\n\n* changes:\n  Disable optimization of Atomic::LoadJavaData for x86 targets.\n  Ignore warning for instantiation after specialization.\n"
    },
    {
      "commit": "4ff96f6335ff3c3162ad1f44653c1812509352d3",
      "tree": "8de2458679254d2f5537dd404ffb06ba38522d52",
      "parents": [
        "b6ced0a1c2f292b120c83b95a97fb0ac846b2ff1",
        "9db679df5c69dfe8b2cd98473e2fbd0a9bc73af5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 26 02:59:32 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 26 02:59:33 2017 +0000"
      },
      "message": "Merge \"Add capability checks to all functions.\""
    },
    {
      "commit": "71cd68d36f024d6c8ccfc8bc9d196a8f86e6cf7d",
      "tree": "d59739ac2520f6d400c81631d8198c071723b7fa",
      "parents": [
        "7510dcb0435e6c3f1da1d329bde3cf0274bc7da8"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Jan 25 18:28:12 2017 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Jan 25 18:53:51 2017 -0800"
      },
      "message": "Avoid accessing the heap without mutator lock in Monitor::Lock.\n\nScopedThreadStateTransition doesn\u0027t do annotations and we are\naccidentally accessing the heap without holding the mutator lock in\nMonitor::PrettyContentionInfo. Use ScopedThreadSuspension instead.\n\nBug: 34674595\nTest: test-art-host\n\nChange-Id: If3ec86429ff99405ab14b3588f192ab1c0472cc8\n"
    },
    {
      "commit": "b6ced0a1c2f292b120c83b95a97fb0ac846b2ff1",
      "tree": "d775c0bd68f78c1dab9a2cc7271b5d5e3be432b1",
      "parents": [
        "7510dcb0435e6c3f1da1d329bde3cf0274bc7da8",
        "888a59ed953e631e9d72e3a19eabfe114c229123"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 26 02:09:26 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 26 02:09:28 2017 +0000"
      },
      "message": "Merge \"Make jvmti tests runnable on the RI again.\""
    },
    {
      "commit": "9db679df5c69dfe8b2cd98473e2fbd0a9bc73af5",
      "tree": "25e85ba484ddf75ae464fbc0c0fe6998360d4603",
      "parents": [
        "92e393a5ef08b63ae68621c51764d69abce2c9a2"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jan 25 15:28:04 2017 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jan 25 16:09:32 2017 -0800"
      },
      "message": "Add capability checks to all functions.\n\nAlso ensure that we declare all capabilities we support.\n\nBug: 31684920\nBug: 31455788\nTest: mma -j40 test-art-host\nChange-Id: Ic3f251f451cf6dad9934109594652f23d228d0f4\n"
    },
    {
      "commit": "92e393a5ef08b63ae68621c51764d69abce2c9a2",
      "tree": "ad3128469639995f98ba8d2c7c01e2aaa9cb8270",
      "parents": [
        "727e9110243392bd8599ae8ae73b1a169668ded7",
        "ca6e14ebd19ab972e4962f18d99a882969d7bee1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 25 22:35:49 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 25 22:35:50 2017 +0000"
      },
      "message": "Merge \"[ART] Prepare profile streaming for framework to use.\""
    },
    {
      "commit": "727e9110243392bd8599ae8ae73b1a169668ded7",
      "tree": "498433e30b9bc775ac44be8e392b33cd64587108",
      "parents": [
        "ddf26ba65a1071ae58f3a70dcff2ad0dc4a05770",
        "3ceedc0c3e89e5a1bb44ac9bb0eb1ea2e8f4675a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 25 21:27:29 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 25 21:27:30 2017 +0000"
      },
      "message": "Merge \"Refactor and optimize memory region bit functions\""
    },
    {
      "commit": "888a59ed953e631e9d72e3a19eabfe114c229123",
      "tree": "f699384fc0ea23d239b5dd4caceb895c045914b6",
      "parents": [
        "f34077c96af3389e8eae65252d4c5d51cf630039"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jan 25 11:41:41 2017 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jan 25 11:58:35 2017 -0800"
      },
      "message": "Make jvmti tests runnable on the RI again.\n\nTest: ./test/run-test --host --jvm 932\nChange-Id: Ia35c9e2b4f93884956993dc9c5e4d041344c9680\n"
    },
    {
      "commit": "01fd70b531a8bd8ebb2238f20c3e651f6b065285",
      "tree": "7f4f6a9514638aafbd8fa94791676567f1bb0c3c",
      "parents": [
        "5ea54a33a81ce48156fbb2685e9a61d0748644dc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 25 10:03:08 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 25 11:38:25 2017 -0800"
      },
      "message": "ART: Remove experimental flags for plugins and agents\n\nRemove experimental flags guarding plugins and agents.\n\nPartial revert of commit 7233c7e752c0d26387d143ee74420e9cd1f09390.\nPartial revert of commit 185d134a3b43ab7529053e965917e0fa74bceba4.\n\nBug: 31455788\nTest: m test-art-host\nChange-Id: I11a19f24b88ced8da7a28e2cb7a2f602aab884a8\n"
    },
    {
      "commit": "3ceedc0c3e89e5a1bb44ac9bb0eb1ea2e8f4675a",
      "tree": "80cdb6ff5c1fe8370d4b6ca5bca4035350f3803b",
      "parents": [
        "f34077c96af3389e8eae65252d4c5d51cf630039"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 25 11:11:02 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 25 11:37:27 2017 -0800"
      },
      "message": "Refactor and optimize memory region bit functions\n\nMove optimized bit reading from FieldEncoding to MemoryRegion,\nadded optimized StoreBits to MemoryRegion.\n\nCompilation of a large app on host:\nBefore:\nTime -j1: 31.897s\n2.00% art::MemoryRegion::StoreBits(unsigned long, unsigned int, unsigned long)\n\nAfter:\nTime -j1: 29.620s\n0.39% art::MemoryRegion::StoreBits(unsigned long, unsigned int, unsigned long)\n\nBug: 34621054\n\nTest: test-art-host\n\nChange-Id: I0509613da83cc5741d5cfada3f8a8af503784e9e\n"
    },
    {
      "commit": "ca6e14ebd19ab972e4962f18d99a882969d7bee1",
      "tree": "9bd4bc18fcc56294e01db0ad4e551b13ae533fea",
      "parents": [
        "67edcfdb2151af66cdacf61e44c618c41601d0c8"
      ],
      "author": {
        "name": "Shukang Zhou",
        "email": "shukang@google.com",
        "time": "Wed Jan 25 00:35:21 2017 -0800"
      },
      "committer": {
        "name": "Shukang Zhou",
        "email": "shukang@google.com",
        "time": "Wed Jan 25 10:40:46 2017 -0800"
      },
      "message": "[ART] Prepare profile streaming for framework to use.\n\nMake it possible for framework\u0027s Java code to optionally\nenable streaming output of profile.\n\nTest: m -j48 ART_TEST_TRACE\u003dtrue ART_TEST_TRACE_STREAM\u003dtrue test-art-host\nChange-Id: I70f6cf3b72c6cec2ac1f1f1e9c2b2c4727d72e8a\n"
    },
    {
      "commit": "440b5d9bffafa46366f58599414e0cff35ea3a6a",
      "tree": "033967c68fff98790ba2ef6f84e31bcea36acbf0",
      "parents": [
        "f34077c96af3389e8eae65252d4c5d51cf630039"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jan 24 15:32:25 2017 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jan 25 09:58:30 2017 -0800"
      },
      "message": "Implement class-pre-define time redefinition.\n\nThis allows one to redefine classes as they are being loaded without\nrestriction as to the types of transformations that may be included.\nFor example one is allowed to add additional methods or fields to the\nclass being defined.\n\nBug: 31684920\nTest: mma -j40 test-art-host\nChange-Id: I671ee13444c05f28424e727fd80d9d46c78ca287\n"
    },
    {
      "commit": "8116003cc9dd1e74fac1682eec547b8bb0afb061",
      "tree": "08958e46edf93d7e13578d5b0362b8839b28d6dd",
      "parents": [
        "931cf54cce1212ee314741d14f9b9008ab593872",
        "c5889ce65ef7d31d4f0fe7be8f7f7f45948c5b5b"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Jan 25 10:45:30 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 25 10:45:31 2017 +0000"
      },
      "message": "Merge \"MethodHandles: Support and tests for invokeWithArguments.\""
    },
    {
      "commit": "931cf54cce1212ee314741d14f9b9008ab593872",
      "tree": "29e3c32c40b7fd1ba6178a388f859336349d8870",
      "parents": [
        "4b0e5f7da9c5662d7e4f0f4e872b9272b26a979b",
        "21300536fec3e9fcf8b436fdb09767b03c8cf945"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 25 10:42:02 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 25 10:42:04 2017 +0000"
      },
      "message": "Merge \"Rewrite retrieval of resolved classes.\""
    },
    {
      "commit": "4b0e5f7da9c5662d7e4f0f4e872b9272b26a979b",
      "tree": "3e74f4fe41b9da86c76ca587c1c6383ee907086b",
      "parents": [
        "8529b71ae9a9c3666d737f50969117fb3e05edb8",
        "ba037b121edc7259b3fa5607e6730402ce2ca61e"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Jan 25 08:47:45 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 25 08:47:47 2017 +0000"
      },
      "message": "Merge \"Revert \"OatFileAssistant: look at vdex file for IsDexOptNeeded\"\""
    },
    {
      "commit": "6639369cd3ad589a4a29c01a6f2cf97e32d89f3c",
      "tree": "630e491bf39bbc2725b86c06845ccb4fa9db54b3",
      "parents": [
        "56f06cb0fa5dfc289fa85307418fc54ab97a2f34",
        "983c175aa134c7f6794a4b3407d7e99536b1f7f1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 25 00:58:31 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 25 00:58:31 2017 +0000"
      },
      "message": "Merge \"ART: Refactor TI events\""
    },
    {
      "commit": "ba037b121edc7259b3fa5607e6730402ce2ca61e",
      "tree": "4cc89efe98ddc6ef0421405affafce95c5aabae2",
      "parents": [
        "402089a27b25a9d1112c49189eb83a567719188f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 25 00:16:27 2017 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 25 00:16:27 2017 +0000"
      },
      "message": "Revert \"OatFileAssistant: look at vdex file for IsDexOptNeeded\"\n\nThis reverts commit 402089a27b25a9d1112c49189eb83a567719188f.\n\nLeads to crashes when vdex doesn\u0027t seem to contain dex files.\n\nBug: 34339100\nBug: 34685231\nChange-Id: I57c3134892a190f792e196e6d7162285e74a64e4\nTest: m test-art-host\n"
    },
    {
      "commit": "983c175aa134c7f6794a4b3407d7e99536b1f7f1",
      "tree": "d3f8f79f85398138af49b1bb1e43a8d9ae94972d",
      "parents": [
        "461bbbf6f2e8dddb33a124c598e806b75929c9bb"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jan 23 19:46:56 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 24 15:21:18 2017 -0800"
      },
      "message": "ART: Refactor TI events\n\nRefactor for type safety of event dispatch. Use template specialization\nto ensure that only correct calls will work.\n\nBug: 31684920\nTest: m test-art-host\nChange-Id: Ifbb47447fb46dd6e799bc824a60df51b15b73618\n"
    },
    {
      "commit": "21300536fec3e9fcf8b436fdb09767b03c8cf945",
      "tree": "e319512f74c0e43bec9046a55865174270e06a68",
      "parents": [
        "cc92b213c1931a68b1317471b0e8fd12a98e96b0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jan 24 18:06:55 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jan 24 22:39:55 2017 +0000"
      },
      "message": "Rewrite retrieval of resolved classes.\n\nUse ClassLinker::VisitClasses() instead of walking over dex\ncache type arrays. The old technique relies on the dex cache\nholding references to all resolved classes, an assumption\nthat we\u0027re going to break soon.\n\nTest: m test-art-host-run-test-595-profile-saving\nBug: 30627598\nChange-Id: Icae71f53b5a33ff931d83aa8d44cc182889f26da\n"
    },
    {
      "commit": "63fcc81127262d9d185fe789e3ccde7c6ec35141",
      "tree": "41672aa86ee4eba1905ff0b8da01a11ba632df88",
      "parents": [
        "2d2cc41059ff4fbc3b56399217ca073ae9396a7d",
        "36eb313c805713c1367e5b9d73897ade1c24174b"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jan 24 22:14:10 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 24 22:14:11 2017 +0000"
      },
      "message": "Merge \"Add dexoptanalyzer tool\""
    },
    {
      "commit": "2d2cc41059ff4fbc3b56399217ca073ae9396a7d",
      "tree": "ec9b786d75270ef48a9e7e5d97a577d491ade3a0",
      "parents": [
        "d4ce37d34365e24ed334f1066e204d9f5be7d7d3",
        "72a328949cb6a882762ef140ae306f1fafd24c7e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 24 21:44:15 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 24 21:44:16 2017 +0000"
      },
      "message": "Merge \"Temporarily increase heap min and max free\""
    },
    {
      "commit": "72a328949cb6a882762ef140ae306f1fafd24c7e",
      "tree": "acf6080e394a8c3a660e1fc92d19feefb66e48a1",
      "parents": [
        "461bbbf6f2e8dddb33a124c598e806b75929c9bb"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 24 09:40:56 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 24 11:47:43 2017 -0800"
      },
      "message": "Temporarily increase heap min and max free\n\nMake sure that GC doesn\u0027t run too often for TLAB ergonomics. Added a\nregression test.\n\nBug: 34576638\n\nTest: test-art-host\n\nChange-Id: Ie07c7c470aaca044fea20b21cbe6bfe8667d082f\n"
    },
    {
      "commit": "36eb313c805713c1367e5b9d73897ade1c24174b",
      "tree": "a2485977f12299a493217ead13a0cb5510c4251d",
      "parents": [
        "d713d29507fb98bea3eee9277f05422a9b641ca1"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Jan 13 16:32:38 2017 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jan 24 11:29:34 2017 -0800"
      },
      "message": "Add dexoptanalyzer tool\n\ndexoptanalyzer is a command line tool which analyzes whether or not a\ngiven dex file needs to be dexopted. It is a wrapper around\nOatFileAssistant::GetDexOptNeeded and its results have a mapping to\nOatFileAssistant::DexOptNeeded.\n\nThis is needed for the management of secondary dex file. We need a way\nto retrieve the DexOptNeeded status from installd outside system server.\nWe can\u0027t simply use the system server path (as we do for the main apks)\nbecause system server can\u0027t access content writable by the apps.\n\nBug: 32871170\nTest: m test-art-(host|target)\nChange-Id: Ife1534560ca2658079d4a38a30bc8d94f35fe9c8\n"
    },
    {
      "commit": "4b0cedf04e8d136256f3afd35730da3d22bbee43",
      "tree": "9216f71cfa3b3ac136e624fa2299e1e2e2c5990b",
      "parents": [
        "cc92b213c1931a68b1317471b0e8fd12a98e96b0"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jan 24 11:15:20 2017 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jan 24 11:16:17 2017 -0800"
      },
      "message": "Fix typo in argument name.\n\nTest: mma -j40 test-art-host\nChange-Id: Ifff0e7b7ae64ce322562244a705fbe4e8f879689\n"
    },
    {
      "commit": "c5889ce65ef7d31d4f0fe7be8f7f7f45948c5b5b",
      "tree": "5ae5f194ed3f8aa8eb6cec23f3262d5c2b3807fa",
      "parents": [
        "d8981ee26340c46b608fdff2cdf294b2f7d4afce"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Jan 19 20:42:23 2017 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Jan 24 17:15:01 2017 +0000"
      },
      "message": "MethodHandles: Support and tests for invokeWithArguments.\n\nTracks libcore change a8cf0bffdb9e9cf031efd0d3c8b5645d45963562.\n\nTest: make test-art-host\nChange-Id: I65fbf3a82b629585324c477bdce6dabd63ae408e\n"
    },
    {
      "commit": "461bbbf6f2e8dddb33a124c598e806b75929c9bb",
      "tree": "f10d9c9457fefe3d6cd343472e859015f1de436f",
      "parents": [
        "d8981ee26340c46b608fdff2cdf294b2f7d4afce",
        "36bdbd2bf2ee36662f700b63474b546a7abecfa3"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Jan 24 14:19:57 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 24 14:19:58 2017 +0000"
      },
      "message": "Merge \"Revert \"Redesign implementation of RegisterNativeAllocation.\"\""
    },
    {
      "commit": "36bdbd2bf2ee36662f700b63474b546a7abecfa3",
      "tree": "4cc89efe98ddc6ef0421405affafce95c5aabae2",
      "parents": [
        "6bfc37d875b2556b3f1d95b00a785a09dc94ccb0"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Jan 24 14:17:05 2017 +0000"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Jan 24 14:18:27 2017 +0000"
      },
      "message": "Revert \"Redesign implementation of RegisterNativeAllocation.\"\n\nThis reverts commit 6bfc37d875b2556b3f1d95b00a785a09dc94ccb0.\n\nTest failures in 004-NativeAllocations.\n\nBug: 29156652\nBug: 32576211\n\nChange-Id: Ic54c67caf913024485a5c0621857d68a6fb710fa\n"
    },
    {
      "commit": "72ab684871f870aead76b23cb67deb046107b380",
      "tree": "d4bb40cab65df449246b35ae582234238676b7bb",
      "parents": [
        "e36c51aee58e61e9fc89851b767379c587f050e3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 20 19:32:50 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jan 24 12:05:02 2017 +0000"
      },
      "message": "Add class status for resolved erroneous classes.\n\nSplit the old ambiguous status mirror::Class::kStatusError\ninto kStatusErrorUnresolved and kStatusErrorResolved. Once\na class has been resolved, IsResolved() shall return true\neven if the class later becomes erroneous. Allow returning\nerroneous class from ClassLinker::EnsureResolved() if it has\nbeen previously resolved. This allows consistent behavior\nfor retrieving classes, immune to multi-threaded races and\nmulti-dex weirdness. It also allows JVMTI to properly report\n\"prepared\" (i.e. resolved) classes that are also erroneous.\n\nThe new behavior is consistent with the RI.\n\nAdd regression tests to 008-exceptions for inconsistent\nbehavior for multi-dex retrieval of erroneous resolved class\n(wrapping or not wrapping the old exception based on which\ndex file is used for lookup) and for a CHECK(IsResolved())\ncrash in ClassLinker::LoadSuperAndInterfaces() (without any\ntests for similar checks that could have previously failed\nonly due to extremely unlikely race conditions; these should\nnow also be fixed).\n\nInconsistency still remains for class verification as shown\nby the new exceptionsForSuperClassInitFailure() test in\n008-exceptions, where interpreter and Optimizing still\ncause different exceptions to be thrown.\n\nNote: This is partially changing behavior implemented for\nbug 28787733. Since we allow the class loader to retrieve an\nerroneous resolved class, the ExceptionInInitializerError is\nnot thrown at all from VMClassLoader_findLoadedClass(), so\nthere is nothing to wrap in ClassNotFoundException.\n\nTest: m test-art-host\nBug: 30627598\nBug: 28787733\nChange-Id: I86cdca00f35a0d6221d2559e3026ac0428a3613c\n"
    },
    {
      "commit": "07ba9c5de01ded5b07e15f948fefa1534cf513ec",
      "tree": "005a5e50f3d784c7bdaa061db2616da6aaf75053",
      "parents": [
        "e36c51aee58e61e9fc89851b767379c587f050e3",
        "6bfc37d875b2556b3f1d95b00a785a09dc94ccb0"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 24 11:49:30 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 24 11:49:31 2017 +0000"
      },
      "message": "Merge \"Redesign implementation of RegisterNativeAllocation.\""
    },
    {
      "commit": "e9fef45736e1a2c90e6caa17a1c3bd910245b972",
      "tree": "c025496d131aa948255a823cd4c11c71b1883144",
      "parents": [
        "b02ff84b89eac187cb6450e9e1991c9c8ab359a1",
        "402089a27b25a9d1112c49189eb83a567719188f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 24 08:29:09 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 24 08:29:11 2017 +0000"
      },
      "message": "Merge \"OatFileAssistant: look at vdex file for IsDexOptNeeded\""
    },
    {
      "commit": "d57093821188f5c34cb7e98a798f4073acd72085",
      "tree": "6f2db008942fe8d128b67f693fd54fd4916cd267",
      "parents": [
        "bc5153409bd17453ccb0a9da15512177e2ff12bb",
        "b0f1192bfac159008e1f2367751083740ba05698"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 24 01:29:31 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 24 01:29:32 2017 +0000"
      },
      "message": "Merge \"Add ClassPreDefine hook.\""
    },
    {
      "commit": "bc5153409bd17453ccb0a9da15512177e2ff12bb",
      "tree": "bc570c39090028577738f81a596b929cec7c76dd",
      "parents": [
        "67edcfdb2151af66cdacf61e44c618c41601d0c8",
        "5e7c6a9223ddd11f800ea9b26fa72bece5c7d26c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 24 01:02:48 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 24 01:02:49 2017 +0000"
      },
      "message": "Merge \"Add more code info size dumping to oatdump\""
    },
    {
      "commit": "fbd5118c1c36900910cabe89e3a73d598160e629",
      "tree": "58928f52c964d91b2751ef1cfefec2772d8cfddc",
      "parents": [
        "445584d3d1f8e3a9a7d12eded3b2dce5f8691d8c"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Mon Jan 23 16:27:49 2017 -0800"
      },
      "committer": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Mon Jan 23 16:27:49 2017 -0800"
      },
      "message": "Disable optimization of Atomic::LoadJavaData for x86 targets.\n\nBug: http://b/34287931\n\nThe latest compiler exposes an issue on the fugu target where optimizing\nLoadJavaData triggers a boot loop. This change suppresses that issue by\ndisabling optimization of this routine only on x86 targets.\n\nTest: Fugu and ARM validation of new compiler.\nChange-Id: Id369968cdf9fc95a306fb785c68e95b0ffa0027d\n"
    },
    {
      "commit": "5e7c6a9223ddd11f800ea9b26fa72bece5c7d26c",
      "tree": "3f34f313b7b7a97eddda4ebab1e2f8c38864c3ff",
      "parents": [
        "c51842b8dd2ad57a1b05f31ab20ad01123443c50"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 17 16:38:30 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jan 23 15:13:10 2017 -0800"
      },
      "message": "Add more code info size dumping to oatdump\n\nHelps break down where oat bytes are being used, example output on\na large app:\n\nOAT FILE STATS:\nDumping cumulative use of 95784720 accounted bytes\nCode                            \u003d 68894196 (72% of total)\nQuickMethodHeader               \u003d  3071080 ( 3% of total)\nCodeInfoEncoding                \u003d  1226080 ( 1% of total)\nCodeInfoLocationCatalog         \u003d  1005716 ( 1% of total)\nCodeInfoDexRegisterMap          \u003d  5813389 ( 6% of total)\nCodeInfoInlineInfo              \u003d  2391251 ( 2% of total)\nCodeInfoStackMap                \u003d 13383008 (14% of total)\n  StackMapNativePc              \u003d  1607888 (12% of stack map)\n  StackMapDexPcEncoding         \u003d  1116724 ( 8% of stack map)\n  StackMapDexRegisterMap        \u003d  1277680 (10% of stack map)\n  StackMapInlineInfo            \u003d  1082720 ( 8% of stack map)\n  StackMapRegisterMaskEncoding  \u003d  5104960 (38% of stack map)\n  StackMapMask                  \u003d  3193034 (24% of stack map)\n  StackMapOther                 \u003d        0 ( 0% of stack map)\n\nTest: test-art-host, oatdump\n\nBug: 34621054\n\nChange-Id: I5daf0f1308d126b6a30928f523c6051585f1491f\n"
    },
    {
      "commit": "b0f1192bfac159008e1f2367751083740ba05698",
      "tree": "4b5d4385c27b600f5488962d0f7f6f00d9836843",
      "parents": [
        "a7e38d8aaacfca85b40b5df654f85c0979968672"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jan 23 14:25:17 2017 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jan 23 14:44:23 2017 -0800"
      },
      "message": "Add ClassPreDefine hook.\n\nThis hook is called prior to defining a class for the first time. It\nallows callbacks to modify the dex-file used to load the class if they\nwish. The event handler is responsible for ensuring that the returned\ndex-file is set-up correctly.\n\nBug: 31684920\nTest: mma -j40 test-art-host\nChange-Id: Iaed79c1597913148ead795e033a0a10a4ebe6b2b\n"
    },
    {
      "commit": "67edcfdb2151af66cdacf61e44c618c41601d0c8",
      "tree": "216474627bab10461c0c8be61f521a39418fc7db",
      "parents": [
        "ce97b0ca4457dfb7ce78532601b19a18c9b5b13e",
        "eb0cea162c71b0b3ae5cb116510aebca02e9ab3d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 23 22:15:08 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 23 22:15:10 2017 +0000"
      },
      "message": "Merge \"ART: Add DataDumpRequest\""
    },
    {
      "commit": "ce97b0ca4457dfb7ce78532601b19a18c9b5b13e",
      "tree": "0826c0cf84b20eb3213e69e03034080bcb4a407c",
      "parents": [
        "839320b9918e3543186dc367c382a4908fe0b85e",
        "6fe97e0bcc82ae9b9a0ada5cac7eaebf74d130c3"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Mon Jan 23 22:12:58 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 23 22:12:58 2017 +0000"
      },
      "message": "Merge \"Add explicit monitor inflation run test.\""
    },
    {
      "commit": "839320b9918e3543186dc367c382a4908fe0b85e",
      "tree": "843a9f5626e0cf336e7849110f6b1eba5a9a2f05",
      "parents": [
        "84b93b2d9ff806679f98b13ed4a96ac1a310b5a5",
        "e6377461540c1159e94cb45c9ade347e8e6bb52b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 23 20:59:07 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 23 20:59:08 2017 +0000"
      },
      "message": "Merge \"ART: Add class events\""
    },
    {
      "commit": "6fe97e0bcc82ae9b9a0ada5cac7eaebf74d130c3",
      "tree": "17ea0b64cf7e3f95252af1e95e4788d339f2c4e2",
      "parents": [
        "152b9567d0c2382464c844c91c2108608a1bc06f"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed May 04 18:35:57 2016 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Mon Jan 23 12:40:03 2017 -0800"
      },
      "message": "Add explicit monitor inflation run test.\n\nThis tests some of the same code as the monitor_pool_test\ngtest. But it tests a larger pool size with the code needed to\ninvoke it from the Java level.  Larger pool sizes have gotten\nmore interesting with the new monitor pool layout.\n\nAdd a function to return the size of the current MonitorList.\nCurrently this is only used by this test, but it is likely to\nhave debugging or performance analysis uses as well.\n\nTest: Passed on host and on angler.\n\nChange-Id: I4f3f150044a0d8c800eb60635e074119598cfdd1\n"
    },
    {
      "commit": "eb0cea162c71b0b3ae5cb116510aebca02e9ab3d",
      "tree": "cd2bac64f3af0edfb3cf0810bcf433a18030957c",
      "parents": [
        "e6377461540c1159e94cb45c9ade347e8e6bb52b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jan 23 08:50:04 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jan 23 11:05:55 2017 -0800"
      },
      "message": "ART: Add DataDumpRequest\n\nAdd support for DataDumpRequest. Add test.\n\nBug: 31684920\nTest: m test-art-host-run-test-933-misc-events\nChange-Id: Ic54b644a87cd046bc646d9f7fe24c0192f562677\n"
    },
    {
      "commit": "e6377461540c1159e94cb45c9ade347e8e6bb52b",
      "tree": "77d8951b959c35904f249490f877f7ab2e10fa1b",
      "parents": [
        "95cf7e42526d4da84086f197dd7d670e407938e0"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 20 17:37:50 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jan 23 11:05:16 2017 -0800"
      },
      "message": "ART: Add class events\n\nAdd initial support for ClassLoad and ClassPrepare events. Add tests.\n\nThe initial implementation does not deal with the difference between\nClassLoad and ClassPrepare classes (the former may be temporary\nclasses).\n\nBug: 31684920\nTest: m test-art-host-run-test-912-classes\nChange-Id: I83535b9c871971f60b6b61f26651958fb32d502f\n"
    },
    {
      "commit": "84b93b2d9ff806679f98b13ed4a96ac1a310b5a5",
      "tree": "c20e1a6f210edbaaf3642d6ddd28bd1d9e799e20",
      "parents": [
        "dc5912772707f5b91c3475bbb620c57afb24bb97",
        "8a5ab9102fe705b63eda6e6bcfe98ee1c03e5a6c"
      ],
      "author": {
        "name": "Shukang Zhou",
        "email": "shukang@google.com",
        "time": "Mon Jan 23 18:35:16 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 23 18:35:19 2017 +0000"
      },
      "message": "Merge \"[ART] Prepare streaming output of method tracing for developer use.\""
    },
    {
      "commit": "dc5912772707f5b91c3475bbb620c57afb24bb97",
      "tree": "3e04212c1a46e197c9e512e249fdccaae51876da",
      "parents": [
        "95cf7e42526d4da84086f197dd7d670e407938e0",
        "5e8d5f01b0fe87a6c649bd3a9f1534228b93423d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 23 18:18:44 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 23 18:18:45 2017 +0000"
      },
      "message": "Merge \"Fix some typos in ART.\""
    },
    {
      "commit": "95cf7e42526d4da84086f197dd7d670e407938e0",
      "tree": "07d6a9b93a7adedf5c87670bd93182d2f80598cd",
      "parents": [
        "c51842b8dd2ad57a1b05f31ab20ad01123443c50",
        "eafaf57557939bcabeb7a7388fb4951e74661a53"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 23 18:08:00 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 23 18:08:02 2017 +0000"
      },
      "message": "Merge \"ART: Add ThreadStart \u0026 ThreadEnd\""
    },
    {
      "commit": "5e8d5f01b0fe87a6c649bd3a9f1534228b93423d",
      "tree": "a1441acc0021d170f412542ae2a1ae62794e7846",
      "parents": [
        "b0dde4397fa5b0756312b46bd18477a2c1f6a7da"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Oct 18 18:03:43 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jan 23 15:50:01 2017 +0000"
      },
      "message": "Fix some typos in ART.\n\nTest: m build-art-host\nTest: m cpplint-art\nChange-Id: Ifc6ce3d0d645c4a8dca72dd483fc03fc05077130\n"
    },
    {
      "commit": "b0dde4397fa5b0756312b46bd18477a2c1f6a7da",
      "tree": "6a76cc50a8b2746aefaaefe5c8e1c6eee3d3d7a8",
      "parents": [
        "17aba3529161ddd6f351608da383fdedb985ba44",
        "6ad2f6d0e17b8cd1fd20aeb1958196e856475e80"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jan 23 15:08:01 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 23 15:08:02 2017 +0000"
      },
      "message": "Merge \"Fix inserting classes to initiating loader\u0027s class table.\""
    },
    {
      "commit": "402089a27b25a9d1112c49189eb83a567719188f",
      "tree": "8034d49882e6facaeace386478369d0aa9d4e243",
      "parents": [
        "a8b4390a3b817a455b0abdf575922fea6182170d"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Jan 18 08:39:23 2017 +0000"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Jan 23 13:17:44 2017 +0000"
      },
      "message": "OatFileAssistant: look at vdex file for IsDexOptNeeded\n\nEven if the oat file cannot be opened, there may be a vdex file that\ncontains valid dex code. The oat file assistant should take this into\naccount when determining the dexopt status.\n\nBug: 34339100\nTest: oat_file_assistant_test, with new tests added.\nTest: install an app, dumpsys package to show app status,\n      delete app\u0027s oat file, dumpsys package to show status as vdex only,\n      cmd package compile -r install app, verify in log that input vdex fd is\n      provided to dex2oat.\n\nChange-Id: Iab43e617a899773b318d61adeb117ed2cec085da\n"
    },
    {
      "commit": "6055122c639ff32c98b9f9b3d2e17b20db213d90",
      "tree": "dd67779dc6b3e486c35662c013ba5981bdcc7249",
      "parents": [
        "148243823ebd1e55a0e342b7104045743b1c9d6d",
        "9623ca6e05e14054d85ce73dfd7d6ed43555b84e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 23 13:13:35 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 23 13:13:36 2017 +0000"
      },
      "message": "Merge \"ART: Re-enable TI tests for target\""
    },
    {
      "commit": "6bfc37d875b2556b3f1d95b00a785a09dc94ccb0",
      "tree": "7bbade00dda5c4fa0d53e2b1fb5e681406ecd48d",
      "parents": [
        "a8b4390a3b817a455b0abdf575922fea6182170d"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Nov 24 11:21:41 2016 +0000"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Jan 23 09:18:36 2017 +0000"
      },
      "message": "Redesign implementation of RegisterNativeAllocation.\n\nImprove the performance and remove the issue with GCing apps to death when\nthey reach the growth_limit_.\n\nThis implements the REDESIGN approach described in detail in the\ndocument at go/understanding-register-native-allocation.\n\nBug: 29156652\nBug: 32576211\nTest: m test-art-host\nTest: vogar libcore/luni/src/test/java/libcore/util/NativeAllocationRegistryTest.java\nTest: Device boots.\nTest: adb bugreport and look for \"Registered native bytes allocated\"\n\nChange-Id: I09176b2b0e4f0c401fe1947830fa5271060f4e61\n"
    },
    {
      "commit": "3fceaf500d570722122f2d092f302d27769e3a51",
      "tree": "1c38d3a72559cb2f9454e445e3d5ddc7168170df",
      "parents": [
        "388df9e0943fd4c858b99f268d9655336df17062"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Jan 22 13:33:40 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Jan 22 13:45:44 2017 -0800"
      },
      "message": "Use higher default thread suspend timeout for run tests\n\nIncrease the default for tests from 10s-50s to 500s. This is done\nby adding a run-test option \"--suspend-timeout\" that defaults to\n500000.\n\nExample when passing a low value of 100:\ntest/run-test --host --suspend-timeout 100 --dev 004-ThreadStress\n\nResults in:\ndalvikvm32 F 01-22 13:33:31 12067 12118 thread_list.cc:669] Timed\nout waiting for threads to suspend, waited for 100.114ms\n\nThis should fix some of the recent test flakiness.\n\nTest: test-art-host\n\nChange-Id: I303c4f198e560e9f38ec375e9d7a80a5e61f776e\n"
    },
    {
      "commit": "eafaf57557939bcabeb7a7388fb4951e74661a53",
      "tree": "c540c5d06e483b2903d767db40064fdd6ae30786",
      "parents": [
        "a90b3dd3f22ce0674970365a5903571276a8fc01"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 20 12:34:15 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 20 21:10:38 2017 -0800"
      },
      "message": "ART: Add ThreadStart \u0026 ThreadEnd\n\nAdd support for ThreadStart and ThreadEnd events. Add tests.\n\nBug: 31684920\nTest: m test-art-host-run-test-924-threads\nChange-Id: I516993402747ffdc9a7d66985b21b95c059be107\n"
    }
  ],
  "next": "9623ca6e05e14054d85ce73dfd7d6ed43555b84e"
}
