)]}'
{
  "log": [
    {
      "commit": "a25504e7026109227691ca944f9359ca23d733ab",
      "tree": "ebf4288caea3d996e585b7521971897b21b51532",
      "parents": [
        "741a81af441cbcb7255229bf250bc009d2894e92"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 18 16:14:19 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 18 23:24:07 2017 +0000"
      },
      "message": "Call mirror::CallSite::VisitRoots\n\nNeeded to visit CallSite static class root.\n\nTest: test/run-test --no-patchoat --relocate --host --64 --interpreter --gdb 952\n\nBug: 33191717\n\nChange-Id: I1fad3df8ad810c5c7905afadfa25cdc0901ef035\n"
    },
    {
      "commit": "1d4950167b45369299fe30d7381516c3b5380a01",
      "tree": "fd07613cfb67795d927afac0d9876b4a71257803",
      "parents": [
        "ef6787bd892b55588ebb2835cc3a3bc4e9e08d04"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 11 17:50:00 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 11 19:15:32 2017 -0700"
      },
      "message": "Fix -XX:DumpGCPerformanceOnShutdown for debug builds\n\nThere was a failing DCHECK from CheckUnattachedThread. The fix is\nto dump after attaching the shutdown thread.\n\nBug: 35644369\nTest: test-art-host\n\nChange-Id: I3d927e380888418167c101b2f09d1e547fe728cf\n"
    },
    {
      "commit": "f9c917f8c149afc07e51604ea48508fbabcb4a3f",
      "tree": "2ca19e609090a81a2df5fd11e8878023b191bee8",
      "parents": [
        "1a5a1e55276eb32747a8094937cb19040b193bb8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 31 14:49:09 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Apr 03 18:02:29 2017 -0700"
      },
      "message": "Allow -Xjitsaveprofilinginfo for system server\n\nsetenforce 0 is still required to prevent selinux violations.\n\nTest: adb shell setprop dalvik.vm.extra-opts \"\u0027-Xusejit:false -Xint -Xjitsaveprofilinginfo\u0027\" \u0026\u0026 adb shell start\n\nBug: 34927277\nBug: 36457259\n\n(cherry picked from commit 449f0589c8c8572e32c57befee089123e9eea1ba)\n\nChange-Id: I644cefe8aebf9ff47dc736eda8143d2f6258c324\n"
    },
    {
      "commit": "fe4b2231ce32109a5c4f83a69cec962190db9b13",
      "tree": "c46354558157fd0ab9bfe047d2eb318789f1337a",
      "parents": [
        "10f9467522f63168336cfdb1bfc71698a356d1a1",
        "9545f6db8b2487ecb940f91c29ce814ec6b1ea25"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Mar 17 22:03:49 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 17 22:03:49 2017 +0000"
      },
      "message": "Merge \"Accept output profile path from dalvikvm command\""
    },
    {
      "commit": "9545f6db8b2487ecb940f91c29ce814ec6b1ea25",
      "tree": "96975e0fb443225542455d33cee5d481896debdc",
      "parents": [
        "a345d3144c56e510866848fd677b05adc7780189"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Mar 16 19:05:09 2017 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Mar 17 11:38:52 2017 -0700"
      },
      "message": "Accept output profile path from dalvikvm command\n\nTest: run dalvikvm with -Xps-profile-path\nBug: 36032648\n\nChange-Id: I34640afe1cf0e7b192ad082ccde2784faab1ba4c\n"
    },
    {
      "commit": "8f2b925473cfdc7650cef407102957befe0c6bb5",
      "tree": "4af3395adaf03cb4a60cd40e7b3ee4196645eb9e",
      "parents": [
        "de9b8d63ef548d56de9c9d4657a7b916050d81ad",
        "6b2dc3156a2140a5bfd9cbbf5d7dad332ab5f5bd"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Mar 17 09:05:55 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 17 09:05:56 2017 +0000"
      },
      "message": "Merge \"ART: Get rid of most of java.lang.DexCache.\""
    },
    {
      "commit": "6b2dc3156a2140a5bfd9cbbf5d7dad332ab5f5bd",
      "tree": "a335cae93c0eabae63e39b8bc13ef3e15f4f7e50",
      "parents": [
        "f83f3f6ecb1153d96cc8007e8a0d1e35af4d3f38"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Mar 14 13:26:12 2017 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Mar 16 17:56:04 2017 +0000"
      },
      "message": "ART: Get rid of most of java.lang.DexCache.\n\nAll remaining functionality is moved over to native. The DexCache\nobject itself is allocated in the Java heap, even though there\u0027s no\nlonger much of a reason to do so. It can be changed in a future change\nif needed.\n\nThis also renames mirror::Class:GetInterfaces to GetProxyInterfaces\nsince it\u0027s supposed to be called only for proxies.\n\nTest: test-art-host, cts -m CtsLibcoreTestCases\n\nChange-Id: Ie261f22a9f80c929f01d2b456f170c7a464ba21c\n"
    },
    {
      "commit": "a345d3144c56e510866848fd677b05adc7780189",
      "tree": "e17b48d6bffe0174f3307b00f1d8c70d39409eea",
      "parents": [
        "51e417b45fa13050318715d2ad3da99d90b5f334"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Mar 14 18:45:55 2017 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 15 17:19:45 2017 -0700"
      },
      "message": "Ensure the profile is written to disk at shutdown\n\nForce profile saving during shutdown. It will make benchmark automation\nmuch easier.\n\nTest: test-art-host\nBug: 26719109\nChange-Id: I529aa1a7b1192c53960fdb4ddc13b10b99e846cc\n"
    },
    {
      "commit": "77651c4bbd56d502bcf05347e641061bbebca099",
      "tree": "7965e6e8cf29f1c78fc15e3eb3d645bb681a3f7d",
      "parents": [
        "f9d80d72a686048200bcf6a7f37192f9eb75d5bd"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Mar 03 18:04:02 2017 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Mar 07 11:38:22 2017 -0800"
      },
      "message": "ART: Clean up code related to foreign dex use\n\nWe simplified the way we track whether or not a dex file is used by\nother apps. DexManager in the framework keeps track of the data and we\nno longer need file markers on disk.\n\nTest: device boots, foreign dex markers are not created anymore\n\nBug: 32871170\n\n(cherry picked from commit 868515e2606820ea96f8b9022b442f5bcc770867)\n\nChange-Id: If51b3301c845a8c3bbaf87d0e35a12c700e1d0aa\nMerged-In: I5a04d3bba29581dedf05e21b8b20d79afa9b405a\n"
    },
    {
      "commit": "e00e5590a9cfb72c89294dd7a5480e5fa69a90b9",
      "tree": "7eb9254bd6cfe10b2c4005e9cdec3a7cfbb2f442",
      "parents": [
        "06f658ab309a5f1930b8a6bc306ef79d0ef0616e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 24 14:58:29 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 27 16:31:42 2017 +0000"
      },
      "message": "Fix java.lang.Void.TYPE (void.class) initialization.\n\nDo not rely on the DexCache resolved types now that entries\ncan be evicted.\n\nTest: 157-void-class\nTest: testrunner.py --host\nBug: 35652776\nBug: 30627598\nChange-Id: Ic384174ae1849072568dd6d2ff9cc60d7f7f1880\n"
    },
    {
      "commit": "ea9465eaaa55646b0de242d2a21f9c1f0f0aa01f",
      "tree": "12590422d05d459a63a56937e77520e84cf4c288",
      "parents": [
        "4c9c57054578022d9ab8442264fbc661769f97f5"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Feb 16 15:38:35 2017 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Feb 17 08:33:06 2017 -0800"
      },
      "message": "Move InMemoryDexClassLoader to be a subtype of BaseDexClassLoader\n\nAlso write a test that class transformation works with this type of\nclass loader.\n\nTest: mma -j40 test-art-host\n\nChange-Id: Ibc2214191e04876ff7bbea010be6ec03b6f41904\n"
    },
    {
      "commit": "c069a30d42aefd902c20e8bc09dfad1683f07ded",
      "tree": "8bbf72bea7ea5d243b57f8e0ab64b687a9f60e4b",
      "parents": [
        "3f38398380b80d1ded078ebed1211b7e4f51460f"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jan 18 09:23:12 2017 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Feb 14 14:04:33 2017 +0000"
      },
      "message": "ART: invoke-custom support\n\nAdds invoke-custom instruction to the interpreter.\n\nBug: 33191717,30550796\nTest: art/test/run-test --host 952\nChange-Id: I3b754128649a8b3a00ade79ba2518d0e377f3a1e\n"
    },
    {
      "commit": "4471e4f7c5874bdaf93762b6047d4a4bebc465df",
      "tree": "b4fb94ac604334a59046db0acc5ee6c6360c311b",
      "parents": [
        "b78a8af993e877d74c5938f65f95feaf2fa01321"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jan 30 16:40:49 2017 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 03 15:10:38 2017 -0800"
      },
      "message": "Revert \"Revert \"ART: Give JIT thread pool workers a peer\"\"\n\nThis reverts commit 9dfb707ba2f8c2ff67d42c26e3214f5d7142b6d3.\n\nAccept a live Java thread for the JIT, and adjust the tests\naccordingly.\n\nBug: 31684920\nTest: m ART_TEST_JIT\u003dtrue ART_TEST_INTERPRETER\u003dtrue test-art-host\nChange-Id: I92cbae1eaae05711b9069335cf1a5f7eb58b9fd8\n"
    },
    {
      "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": "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": "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": "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": "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": "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": "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": "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": "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"
    },
    {
      "commit": "96eca7895813ec70bbbbdb2aff7a3a03dcd3b21e",
      "tree": "153890b5de0ff2278011fd2ef89b3896be78a55b",
      "parents": [
        "c93d203b5d9d6e5672ebfdc87f2b72ef99ae8c09"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 19 19:45:30 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 19 23:15:31 2017 -0800"
      },
      "message": "ART: Add GetPhase\n\nExtend RuntimePhaseCallback. Add support for GetPhase.\nAdd tests.\n\nBug: 31455788\nTest: m test-art-host-run-test-901-hello-ti-agent\nChange-Id: I33b1934a0789bc713675f21c2c9f676c9d3a1ed1\n"
    },
    {
      "commit": "4886411a81077e893a6e38c56938a252888ddd0e",
      "tree": "62f6effd04ae42206c76510ab64b5000b9c45a96",
      "parents": [
        "2c19ea93088d7cd187524f49137417279e99096d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 19 17:23:17 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 19 19:35:49 2017 -0800"
      },
      "message": "ART: Add runtime phase callback\n\nAdd callback that describes the current runtime phase, one of\nstarting, initialized and death. Add test.\n\nBug: 31684920\nTest: m test-art-host-gtest-runtime_callbacks_test\nChange-Id: I08ae7c45851572f8b3e446c07f0498f66bb032d3\n"
    },
    {
      "commit": "a5814f9de6009cc1763523109f50aae6bd1ff99e",
      "tree": "4b09ef54cd9db04dbf87ec8374d5cfc336f9c6ef",
      "parents": [
        "ac30fa2151095d2b5fe42f169a02ed09fea312b4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 18 21:43:16 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 19 16:09:02 2017 -0800"
      },
      "message": "ART: Add SigQuit Callback\n\nAdd callback being triggered when the runtime handles SigQuit.\n\nBug: 31684920\nTest: m test-art-host-gtest-runtime_callbacks_test\nChange-Id: I23e3b256c654b6078c79b3897439d893ea79d96e\n"
    },
    {
      "commit": "ac30fa2151095d2b5fe42f169a02ed09fea312b4",
      "tree": "e8ec1355dd7a307c696c1d38775aba5656ac33c6",
      "parents": [
        "0f01b583c3952d0219696480654a0db8fac4b661"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 18 21:02:36 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 19 15:14:19 2017 -0800"
      },
      "message": "ART: Make RuntimeCallbacks unique_ptr\n\nReduce the transitive closure of headers on runtime.h\n\nTest: m\nChange-Id: Ib5a3632c28b08bf07773f217a7ad711c1f12af6b\n"
    },
    {
      "commit": "0f01b583c3952d0219696480654a0db8fac4b661",
      "tree": "33184022e0c9bc0a6af4d89b21864fd460f32df4",
      "parents": [
        "04bbb5be5b9c0f0b3a72116353d23ea63c8bc5e9"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 18 15:22:37 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 19 15:12:12 2017 -0800"
      },
      "message": "ART: Add ClassLoadCallback\n\nAdd callback for class-load and class-prepare events. Move Dbg\nover. Add tests.\n\nBug: 31684920\nTest: m test-art-host-gtest-runtime_callbacks_test\nTest: art/tools/run-jdwp-tests.sh --mode\u003dhost\nChange-Id: I871f6b3c54448fd6ece8d9a7571b2042be50d525\n"
    },
    {
      "commit": "04bbb5be5b9c0f0b3a72116353d23ea63c8bc5e9",
      "tree": "51ee41e14d6bfccc88ccde91938cac901c0e39a9",
      "parents": [
        "a58bc2e74441ac89cb706b49c5a6d096df97080b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 19 17:49:03 2017 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 19 15:12:06 2017 -0800"
      },
      "message": "Revert \"Revert \"ART: Start RuntimeCallbacks\"\"\n\nThis reverts commit bf6331a45f730e1f1044af2ce43bceda660ae6fc.\n\nSwitch to using the mutator lock.\n\nBug: 31684920\nTest: m test-art-host-gtest-runtime_callbacks_test\nTest: art/tools/run-jdwp-tests.sh --mode\u003dhost --debug\nChange-Id: I6ce0f71de2aa9f90cd23cfca7723a793b560b16b\n"
    },
    {
      "commit": "bf6331a45f730e1f1044af2ce43bceda660ae6fc",
      "tree": "66013474dc85b2a868d5fad2506c8674a086fa1a",
      "parents": [
        "13093d455b8266338fd713b04261c58e9dc2b164"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 19 09:02:50 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 19 09:02:50 2017 +0000"
      },
      "message": "Revert \"ART: Start RuntimeCallbacks\"\n\njdwp tests failing with:\n    STDERR\u003e dalvikvm32 E 01-18 23:14:50 12180 12198 thread-inl.h:137] holding \"runtime callbacks lock\" at point where thread suspension is expected\n\nBug: 31684920\n\nThis reverts commit 13093d455b8266338fd713b04261c58e9dc2b164.\n\nChange-Id: I94e4154e273d006eecdd485607dcfd96392d6a00\n"
    },
    {
      "commit": "13093d455b8266338fd713b04261c58e9dc2b164",
      "tree": "b4c5e54ce8a74af2f8929df089133967ea7f7274",
      "parents": [
        "3a5e34b65727d2c9e7e6ebe45c337dae0d0398a4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 17 21:40:35 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 18 19:48:37 2017 +0000"
      },
      "message": "ART: Start RuntimeCallbacks\n\nAdd a central RuntimeCallbacks structure to handle certain interesting\nruntime events.\n\nIn a first iteration, add ThreadLifecycleCallback with ThreadStart and\nThreadStop. Move Dbg over to ThreadLifecycleCallback.\n\nAdd a test.\n\nBug: 31684920\nTest: m test-art-host-gtest-runtime_callbacks_test\nTest: art/tools/run-jdwp-tests.sh --mode\u003dhost\nChange-Id: Ie0f77739a563207bfb4f04374e72dc6935c40b4f\n"
    },
    {
      "commit": "1f64859d59dc5da93913a1230cbb4e66d6e524c0",
      "tree": "b099e7c09eaa4f58dcbfa90514f8416ba6721483",
      "parents": [
        "c00735af8acafb0920f84f663c88df4a59894241"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 13 10:46:01 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 13 10:50:55 2017 -0800"
      },
      "message": "ART: Remove suspension from AttachAgent\n\nIt conflicts with calls later. Every plugin needs to do local\nprotections for itself.\n\nFollow-up to commit ad2dc875ce29c3fafc1129a2a25184df28b66a10.\n\nBug: 31682382\nBug: 34275017\nTest: m test-art-host-run-test-909-attach-agent\nChange-Id: Ib698d880feb774a00c819ef14c27a48501ca1f13\n"
    },
    {
      "commit": "c4baad2aa4857e0f64c37abc5185964b47aed8e1",
      "tree": "3041cd17a9d70bb7798de4ff1814ee201efe6eef",
      "parents": [
        "8fdba845ffeb516aa0ede900def3a833861eff15"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 12 16:59:39 2017 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 12 10:15:51 2017 -0800"
      },
      "message": "Revert \"Revert \"ART: Ensure plugin is loaded on AttachAgent\"\"\n\nAgents require the JVMTI plugin. Ensure that it is loaded when\ntrying to satisfy an AttachAgent request. Amend test 909.\n\nThis reverts commit 98cf7cf8766770dba2718a6131345cc7f57c5bc7.\nBlacklist debuggable test configurations for negative test.\n\nBug: 31682382\nTest: m test-art-host-run-test-909-attach-agent\nChange-Id: I7720a18689bd6ddee38292dd42faf190fc06d14d\n"
    },
    {
      "commit": "98cf7cf8766770dba2718a6131345cc7f57c5bc7",
      "tree": "628ffda55e75f18889161b684ac2b4e578d562b7",
      "parents": [
        "ad2dc875ce29c3fafc1129a2a25184df28b66a10"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 12 10:46:04 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 12 10:46:04 2017 +0000"
      },
      "message": "Revert \"ART: Ensure plugin is loaded on AttachAgent\"\n\nTest fails.\nBug: 31682382\n\nThis reverts commit ad2dc875ce29c3fafc1129a2a25184df28b66a10.\n\nChange-Id: Id15d9d5478d2f72a4dc59f119944a311be7bc989\n"
    },
    {
      "commit": "ad2dc875ce29c3fafc1129a2a25184df28b66a10",
      "tree": "600623ced1717d003c1f9486f8533a70d00ef6f9",
      "parents": [
        "db47a144d816e0976c5b4c00461b80b07ce97c60"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 11 08:36:59 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 11 17:25:31 2017 -0800"
      },
      "message": "ART: Ensure plugin is loaded on AttachAgent\n\nAgents require the JVMTI plugin. Ensure that it is loaded when\ntrying to satisfy an AttachAgent request. Amend test 909.\n\nBug: 31682382\nTest: m test-art-host-run-test-909-attach-agent\nChange-Id: Id99d0315b5b2577167dd8f8448a052e04f3ed2e5\n"
    },
    {
      "commit": "ccd56958eb46fbb00c1eb45c7a7b23d5bbfd7698",
      "tree": "8ff64df9415a91c4a1bc9ef100293de743fe48b4",
      "parents": [
        "9538f9e2a5d03f1b1bc07ebfbd93b61dcf8ad604"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Dec 15 17:57:38 2016 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Dec 16 20:58:46 2016 +0000"
      },
      "message": "Add Thread entry to signal if the thread can call into java\n\nCompiler threads (AOT or JIT) should not call into Java as they have no\npeers (which may lead to crashes, e.g. b/33067273)\n\nBug: 32602185\nBug: 33067273\n\nTest: m test-art-host-run-test; m test-art-host-gtest\nChange-Id: I97dda7a5444643db3c5d5318339a65a602f709e8\n"
    },
    {
      "commit": "eca3eda2ccc121b13ce0e6d8c8c6c4040f7147b6",
      "tree": "4ff1300f5b66346f7c05d4f689161f2d7278b7fb",
      "parents": [
        "3f92bdea524fb1f1c70dab07bba082b4b1ac4699"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 09 16:26:44 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Dec 14 13:07:09 2016 +0000"
      },
      "message": "Add ClassLoader to app-image roots.\n\nPreviously we were looking for class loaders by going\nthrough the dex cache type array. When we change the array\nto be hash-based, we may not actually find the class loader\nthat way.\n\nBug: 30627598\nTest: m test-art-host\nChange-Id: Ic91a81853fec9946e26bb8272d2a9120393a43bf\n"
    },
    {
      "commit": "9186ced255f2e7402646b5b286deebb540640734",
      "tree": "833c25fd3bbb47749265947705b4fc0f0c1ba796",
      "parents": [
        "aa2657d6d9dda2e44c6452e5f5901db78ef9b3cc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 12 14:28:21 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Dec 13 11:43:48 2016 -0800"
      },
      "message": "ART: Clean up utils.h\n\nRemove functionality provided by libbase. Move some single-use\nfunctions to their respective users.\n\nTest: m test-art-host\nChange-Id: I75594035fa975200d638cc29bb9f31bc6e6cb29f\n"
    },
    {
      "commit": "585da955bc8e5040705dcfd941b2131025ebcef8",
      "tree": "d22555ab3b33b446271fcbbd1676177d21d7221f",
      "parents": [
        "ce29d1813914ee9a9e9b04b034968f09694dd557"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Dec 02 14:52:29 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 12 11:47:02 2016 -0800"
      },
      "message": "ART: Add precise root visiting\n\nAdd VisitRootFlags::kVisitRootFlagPrecise to signal a\nrequest for precise RootInfo objects.\n\nMove VisitRootFlags to gc_root.h. Refactor VisitRoot\nfunctions to pass flags. Add code in Thread visiting\nto decode vregs in compiled code.\n\nBug: 31385354\nTest: m test-art-host\nChange-Id: I8e7280f0ab682871f729f2a1c6b18670cf2dbf82\n"
    },
    {
      "commit": "3a8825cba6db099ecb7050b7b60412740cd737c6",
      "tree": "0f30e278fc448b7243dfe191fbaa746b9b52cfbf",
      "parents": [
        "efdcb1518c21dc3bc7a9beac04a678248e7b27a0",
        "0480523e01102e40a072d266e43a18a0ca4344e4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Dec 03 01:25:08 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Dec 03 01:25:08 2016 +0000"
      },
      "message": "Merge \"ART: Clean up ClassLinker\"\nam: 0480523e01\n\nChange-Id: I30752bcdd1d48e3f9a0cc031b2c74255f4973bca\n"
    },
    {
      "commit": "cc1b5357f83f0b787d51fbfde3fe870c8a2fa050",
      "tree": "253d23dba63e1003dc8e953002b994d01c97f181",
      "parents": [
        "5d0c3009fc56afdb4aeae5ee6dd98c3d1d2e7711"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 01 16:58:38 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Dec 02 14:00:22 2016 -0800"
      },
      "message": "ART: Clean up ClassLinker\n\nTry to clean up and simplify ClassLinker.\n\nMove dex_lock to Locks. Remove dead code. Move single-use\ncode to user. Hide implementation details from header.\n\nTest: m test-art-host\nChange-Id: I58150fa9c2a9524f8304370270c2197d655cb3a8\n"
    },
    {
      "commit": "769dfba30e65a76bdb84baa794f899cc31c8bff5",
      "tree": "104377b75ed62a969e6516187fde6309c37fe4ee",
      "parents": [
        "041944d5dcb515c8508f96accbec8756a238c55f",
        "141c6f68d47e9312e3c27aa6dcd3ae510e7e19c7"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Dec 01 23:38:03 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 01 23:38:03 2016 +0000"
      },
      "message": "Merge \"Class Hierarchy Analysis (CHA)\"\nam: 141c6f68d4\n\nChange-Id: I7811780d767d2d3a70584b2fb6f207e1acd52119\n"
    },
    {
      "commit": "063fc772b5b8aed7d769cd7cccb6ddc7619326ee",
      "tree": "bc165781989087a998721991504e589a7d5b0926",
      "parents": [
        "48d08a4233ee4450b0d5073d41445f9dd1f17191"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Aug 02 11:02:54 2016 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Dec 01 11:15:47 2016 -0800"
      },
      "message": "Class Hierarchy Analysis (CHA)\n\nThe class linker now tracks whether a method has a single implementation\nand if so, the JIT compiler will try to devirtualize a virtual call for\nthe method into a direct call. If the single-implementation assumption\nis violated due to additional class linking, compiled code that makes the\nassumption is invalidated. Deoptimization is triggered for compiled code\nlive on stack. Instead of patching return pc\u0027s on stack, a CHA guard is\nadded which checks a hidden should_deoptimize flag for deoptimization.\nThis approach limits the number of deoptimization points.\n\nThis CL does not devirtualize abstract/interface method invocation.\n\nSlides on CHA:\nhttps://docs.google.com/a/google.com/presentation/d/1Ax6cabP1vM44aLOaJU3B26n5fTE9w5YU-1CRevIDsBc/edit?usp\u003dsharing\n\nChange-Id: I18bf716a601b6413b46312e925a6ad9e4008efa4\nTest: ART_TEST_JIT\u003dtrue m test-art-host/target-run-test test-art-host-gtest\n"
    },
    {
      "commit": "abbca9f83dfc1ae8e851b69cdb8cf7db75f25602",
      "tree": "37e5155964f5c5cf51a94b0979d692af39e40acc",
      "parents": [
        "9f865c3b8572a345dd0ba81813b64c0a4c77e460",
        "211fd802903c130ed1c47c18d1b87809d290aa69"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 30 18:30:45 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 30 18:30:45 2016 +0000"
      },
      "message": "Merge \"ART: Add dex::StringIndex\"\nam: 211fd80290\n\nChange-Id: Ic693797b08729ba2e400657a8106bec1f8c22190\n"
    },
    {
      "commit": "211fd802903c130ed1c47c18d1b87809d290aa69",
      "tree": "e049fbad2dd7fbf244d5163e084be339f02fc8d7",
      "parents": [
        "304f2d3a1d090846a7a55a0016efc9fc8eb14078",
        "8a0128a5ca0784f6d2b4ca27907e8967a74bc4c5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 30 18:21:22 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 30 18:21:22 2016 +0000"
      },
      "message": "Merge \"ART: Add dex::StringIndex\""
    },
    {
      "commit": "efb0481c1c01a1148cb5adff1d629e0e8499c72d",
      "tree": "191d6167d9bb2ac89f1567664ce7457b333d2345",
      "parents": [
        "2aaa2979e684ab7431980e84f87c341f9bc2cf4c",
        "c9e2fc27c57d4c007d26081a8e60b244ecba8665"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 30 14:02:29 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 30 14:02:29 2016 +0000"
      },
      "message": "Merge \"Move inline caches GC handling in JitCodeCache.\"\nam: c9e2fc27c5\n\nChange-Id: I9c05d759e5b14bd6ec26870f3fff7ecd4817bedf\n"
    },
    {
      "commit": "c9e2fc27c57d4c007d26081a8e60b244ecba8665",
      "tree": "cd59bdb099bf2342f4400c37cfbf6ea827a56632",
      "parents": [
        "9ebca690fdfb36fe1a689fd32c3d05d999497768",
        "e51ca8bfa8a193b64901ad214842f213adca92eb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 30 13:57:30 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 30 13:57:30 2016 +0000"
      },
      "message": "Merge \"Move inline caches GC handling in JitCodeCache.\""
    },
    {
      "commit": "e51ca8bfa8a193b64901ad214842f213adca92eb",
      "tree": "b07b2534edc592d68b5461a3bdb8a31241892d54",
      "parents": [
        "eb9c58e88f8e0f4a0a413efce04b49b183ad23e3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 22 14:49:31 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 29 21:05:51 2016 +0000"
      },
      "message": "Move inline caches GC handling in JitCodeCache.\n\nMake the classes they hold weak references and visit\nthem during SweepJitRoots.\n\nThis fixes the newly introduced deadlock:\n\nThread1:\n1) Lock JitCodeCache lock to create Profiling info for\n  ArtMethod m.\n2) m is a copied method, we need to track the actual holder,\n   needing to decode a weak reference.\n3) Weak references are not accessible due to GC.\n\nGC Thread:\n- Disallow weak reference access.\n- Wait for checkpoint.\n\nThread2:\n- Try to lock JitCodeCache lock\n- Deadlock, as Thread1 owns the JitCodeCache lock.\n\nTest: test-art-host\nbug: 31289185\nbug: 33198826\n\nChange-Id: I7ee17631015450ace8d2a0264415a81c5a902bb8\n"
    },
    {
      "commit": "8a0128a5ca0784f6d2b4ca27907e8967a74bc4c5",
      "tree": "0dec75200282ae5e49785395e97bd4e6459f1c09",
      "parents": [
        "60438b46090d22bb9b978196f5aa53fab3b89759"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 28 07:38:35 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 29 11:11:46 2016 -0800"
      },
      "message": "ART: Add dex::StringIndex\n\nAdd abstraction for uint32_t string index.\n\nTest: m test-art-host\nChange-Id: I917c2881702fe3df112c713f06980f2278ced7ed\n"
    },
    {
      "commit": "e99bce2cae8e4e3fe33f80bef526f839493c0489",
      "tree": "662fb0b183607f5be9ad9f3004e08bbad192a0bb",
      "parents": [
        "2cada4f8c52cd58403f6a4c1a1ac0aae6bd20c5a",
        "ded461e9df57a9e36e82f665d9600f9ea588dd87"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 29 15:11:33 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Nov 29 15:11:33 2016 +0000"
      },
      "message": "Merge \"Fix the target Linux builds of ART\"\nam: ded461e9df\n\nChange-Id: I16a851ff3892b8842fd918ff7cbf38a2c7828185\n"
    },
    {
      "commit": "1af0c4ff8b79ad44a4e12d7271a66d4e775ba224",
      "tree": "3e5e2527241d423290df454d551bf6787a052f0d",
      "parents": [
        "71601907b95a3527fc554a3a1724b3c12b872a7a"
      ],
      "author": {
        "name": "Julien Duraj",
        "email": "julien.duraj@linaro.org",
        "time": "Wed Nov 16 14:05:48 2016 +0000"
      },
      "committer": {
        "name": "Julien Duraj",
        "email": "julien.duraj@linaro.org",
        "time": "Wed Nov 23 10:37:31 2016 +0000"
      },
      "message": "Fix the target Linux builds of ART\n\nWhen ART_TARGET_LINUX was set it would hit some pieces of dead code that\nwere using old defines i.e. `__ANDROID__`\n\nTest: export ART_TARGET_LINUX\u003dtrue\nTest: source build/envsetup.sh\nTest: lunch\nTest: cd art \u0026\u0026 mma\n\nChange-Id: I80102750192928606e0884d2b723a87ccb7d7e19\n"
    },
    {
      "commit": "1eaefe8925d55f87317084f4e25e2f47cd7c0122",
      "tree": "63ea56db47fe2d267bb529f4107377ed57ab9399",
      "parents": [
        "b4c63db564550085ec8d4a239fc5c2f490a97b3c",
        "dac7ad17c78387d15d7aefae0f852dddf5f37e34"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 21 10:24:07 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Nov 21 10:24:07 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"Revert \"JIT root tables.\"\"\"\"\"\nam: dac7ad17c7\n\nChange-Id: Ie713d994800586937fb5fa09b1e21610bf3c3a47\n"
    },
    {
      "commit": "dac7ad17c78387d15d7aefae0f852dddf5f37e34",
      "tree": "603b3ca74ba9144d217497417314fe863e2201ef",
      "parents": [
        "af524438b8a76264a23ec2d748e11eeded02abc7",
        "132d8363bf8cb043d910836672192ec8c36649b6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 21 10:14:06 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 21 10:14:07 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"Revert \"JIT root tables.\"\"\"\"\""
    },
    {
      "commit": "81f3e2d8c3af6847bd3115900604f4f87be48c04",
      "tree": "6269202313dbabac8d77a980587c7bbf6dc9967b",
      "parents": [
        "962a861d8c49c47c75a666cfee95c538bc7845b4",
        "9fd470f87342dfe974c8ec8c74239a547e768650"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sun Nov 20 00:45:05 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sun Nov 20 00:45:05 2016 +0000"
      },
      "message": "ART: Extend DumpRecursiveAbort\nam: 9fd470f873\n\nChange-Id: I1ac6cd762b562d95cbd783f2eb0ff3cb81fa4ae3\n"
    },
    {
      "commit": "9fd470f87342dfe974c8ec8c74239a547e768650",
      "tree": "9bacb890f1e8c56bee6db335c046ce9e63b6ad08",
      "parents": [
        "ab07cbe238fc41cc074bd2af87a0b3fcdddedf27"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 17:21:12 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 17:42:58 2016 -0800"
      },
      "message": "ART: Extend DumpRecursiveAbort\n\nAccept recursive dump request for deeper recursions. Otherwise,\ntwo or more threads aborting concurrently would ensure that there\nare no dumps.\n\nTest: m test-art-host\nChange-Id: Ib82d64cceba0de89e352d9b15bcd5708db82498c\n"
    },
    {
      "commit": "40d98eb1189ed7ab6070a8d3272fcb60b7bf7187",
      "tree": "a3989d8c448e654fcf1f7e7345e5717f6e939922",
      "parents": [
        "5da6d670959ccadaadc9c377fe986c4eacf2cded",
        "88c4ff69dfed9e8f057a7b854605fc266cb35a5f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 21:09:46 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Nov 18 21:09:46 2016 +0000"
      },
      "message": "Merge \"ART: Dump native stack on recursive abort\"\nam: 88c4ff69df\n\nChange-Id: Id4ee3b6dadb4de689858d388ca8171f326dac651\n"
    },
    {
      "commit": "39f68527d7e3f4dfc1ac761df554f5af91461a13",
      "tree": "bc50fc334a4a15aac2ddde0d1bb6d5317764948c",
      "parents": [
        "1995c6b30f091efe8084fe0bc4a86c57e2a01281",
        "8df07aa7fedb252cc9a9f42bb3395b1f30ac856d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 19:39:40 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Nov 18 19:39:40 2016 +0000"
      },
      "message": "Merge \"ART: Use cerr in Runtime::Abort on the host\"\nam: 8df07aa7fe\n\nChange-Id: Ibd60bc9c0ef901cc6bd2b51d8a1593943776bb99\n"
    },
    {
      "commit": "7afa45427cc2cef534a3fb68a295fa5a4f305062",
      "tree": "a29899fb5c989229d43cc6eb7b41d6ac8d5d306a",
      "parents": [
        "b67906bb98409911b4ffe7da7fcd5b049ee089fb"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 09:51:06 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 09:51:06 2016 -0800"
      },
      "message": "ART: Dump native stack on recursive abort\n\nDump the native stack of the current thread on recursive abort.\nThat is safe to do, as it requires no runtime interaction.\n\nTest: m test-art-host\nChange-Id: I4e052916f1036c74dc9fa82b049b4574626a70bb\n"
    },
    {
      "commit": "b67906bb98409911b4ffe7da7fcd5b049ee089fb",
      "tree": "0c2f55ce03c9af1a0d1d1831de251adee01fdd27",
      "parents": [
        "5e294c3f015c8e3a2ec88a8ff117a1ec801f0d3a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 09:30:08 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 18 09:31:11 2016 -0800"
      },
      "message": "ART: Use cerr in Runtime::Abort on the host\n\nUse cerr to immediately write out abort info on the host, in an\neffort to make recursive aborts diagnosable. This is similar\n(but slightly inferior) to the previous INTERNAL_FATAL fastpathing.\n\nTest: m test-art-host\nChange-Id: I7c49874951acd47e58faceeb84a9ba93159ca3b0\n"
    },
    {
      "commit": "132d8363bf8cb043d910836672192ec8c36649b6",
      "tree": "42ee8b08f0323e9762675333b50a4c218ecdefc7",
      "parents": [
        "e89667815b9d0a1eacb91678fed2a7518bb07cc2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 16 09:19:42 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 18 14:31:30 2016 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"JIT root tables.\"\"\"\"\n\nTest: 626-set-resolved-string, test-art-host, test-art-target\nTest: run-libcore-tests.sh\nTest: phone boots and runs\n\nThis reverts commit 3395fbc20bcd20948bec8958db91b304c17cacd8.\n\nChange-Id: I104b73d093e3eb6a271d564cfdb9ab09c1c8cf24\n"
    },
    {
      "commit": "2af9c7dcee8d1f15b3f6a1caea05f47c5af4d8d3",
      "tree": "6df14bb22c3aa76dbc1ecb9e80fb540738fde260",
      "parents": [
        "efbcf48d7ca0c7ae4fdc106cb319ff54081dc89e",
        "96de579b8cb24e87ad0a0ec33b0507c95765a951"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Nov 16 22:51:32 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 16 22:51:32 2016 +0000"
      },
      "message": "Merge \"Ensure CC GC is used for the read barrier config.\"\nam: 96de579b8c\n\nChange-Id: I36400acaa712fc52b4bdd62370b5a1b09d8aef0d\n"
    },
    {
      "commit": "96de579b8cb24e87ad0a0ec33b0507c95765a951",
      "tree": "1437a34fd4fb060222802b1b1b825c45c7ddcc6c",
      "parents": [
        "82d44f1408d0108270f4a305a7fe0123bcc53405",
        "1b0adbf7b14973c3f110976de046d75a7d4ed934"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 16 22:39:44 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 16 22:39:44 2016 +0000"
      },
      "message": "Merge \"Ensure CC GC is used for the read barrier config.\""
    },
    {
      "commit": "1b0adbf7b14973c3f110976de046d75a7d4ed934",
      "tree": "35e0e3effe140748982b0ccf295b123c4952dbe8",
      "parents": [
        "26c8f54be31ccf99540906746b17fc8bba1bab9a"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Nov 14 17:35:12 2016 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Nov 16 12:04:19 2016 -0800"
      },
      "message": "Ensure CC GC is used for the read barrier config.\n\nTo prevent the -Xgc option from causing unsupported GC types to run.\n\nBug: 12687968\nTest: test-art-host with CC.\nChange-Id: I10b42190c0888342e9127c52e863ddae82e4d7a1\n"
    },
    {
      "commit": "9808c0b690756bd536c97ba9a3dd093eb3b388ca",
      "tree": "526e879978e2af3904e2124a1d33e8bace9181ad",
      "parents": [
        "1d064e92780b15914c9052cc83c6bf0467fe9623",
        "1c80417e03195a39ec21be84d586bfcabd07950a"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Nov 15 18:54:26 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Nov 15 18:54:26 2016 +0000"
      },
      "message": "Merge \"Add option to force all code to be deoptimizable\"\nam: 1c80417e03\n\nChange-Id: I83204166035b5b71125e4b69b72d51d0638425b1\n"
    },
    {
      "commit": "6b16d891bdf18cabed861cd67407eef9be639efd",
      "tree": "09aaf457c96ec3940e3e78d42a6db9aebed82516",
      "parents": [
        "5a92027262a216614c82ec841adcfc6b4627d07b"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Nov 11 11:21:04 2016 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Nov 15 09:06:06 2016 -0800"
      },
      "message": "Add option to force all code to be deoptimizable\n\nCurrently this can only be passed during runtime startup. We will add\nsupport for doing it from the zygote in the future.\n\nBug: 28769520\nBug: 32369913\n\nTest: m test-art-host\n\nChange-Id: I5eb16887ea14b140217c123b3effd47c5c8b2768\n"
    },
    {
      "commit": "3bb67f773302d8bac1a84977cebb5e6e7647a33f",
      "tree": "5ba5cd2d208f0dbc624d93c9f75a395cdff72d26",
      "parents": [
        "0f8ad8b2d55aa242c3d4b928fb096d58282c09df",
        "81cae78d1853893ff9c3ecea4b5100002a538eb7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 14 12:48:26 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Nov 14 12:48:26 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"JIT root tables.\"\"\"\"\nam: 81cae78d18\n\nChange-Id: Icaf0bf548f4d33571e991a36a1b9f5e81652baa6\n"
    },
    {
      "commit": "81cae78d1853893ff9c3ecea4b5100002a538eb7",
      "tree": "d32c8f7e57449381511ffb206f4a335c157ae597",
      "parents": [
        "e8fc2cedb85ce4a6747cddbbf4cf33288e0ba5b9",
        "3395fbc20bcd20948bec8958db91b304c17cacd8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 14 12:41:12 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 14 12:41:12 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"JIT root tables.\"\"\"\""
    },
    {
      "commit": "3395fbc20bcd20948bec8958db91b304c17cacd8",
      "tree": "e0d00b412961e2aaa0dff91317a9f4168189e5fb",
      "parents": [
        "75afcdd3503a8a8518e5b23d21b6e73306ce39ce"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 14 12:40:52 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 14 12:40:52 2016 +0000"
      },
      "message": "Revert \"Revert \"Revert \"JIT root tables.\"\"\"\n\nlibcore failures:\ndalvikvm32 F 11-14 03:04:06 14870 14870 jit_code_cache.cc:310] Check failed: new_string !\u003d nullptr\n\nThis reverts commit 75afcdd3503a8a8518e5b23d21b6e73306ce39ce.\n\nChange-Id: I5a6b6b48aa79a763d1ff1ba4d85d63811254787d\n"
    },
    {
      "commit": "9d944cb6c631b7ef02ba52574b30f7bc1128a90c",
      "tree": "efd0b8911671bc1e2dd8488a427dfc09a010fda2",
      "parents": [
        "a65d0c9f1e79b24f13ab7ec5b1208787c26e6a71",
        "4b050e817b929169e57661376793cff4c3ef421a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 14 09:19:47 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Nov 14 09:19:47 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"JIT root tables.\"\"\"\nam: 4b050e817b\n\nChange-Id: I58d029103296071d91fcf5d1a5d969095aab925c\n"
    },
    {
      "commit": "4b050e817b929169e57661376793cff4c3ef421a",
      "tree": "56ee6c72dd7ed64fe4bcf701a0733c50b0289bc9",
      "parents": [
        "7fad15efba22817e9abb0f35b15aa2dd4715884c",
        "75afcdd3503a8a8518e5b23d21b6e73306ce39ce"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 14 09:13:46 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 14 09:13:47 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"JIT root tables.\"\"\""
    },
    {
      "commit": "42f94da5a5ab8b5c1b24da7a926df459b94561c0",
      "tree": "d1f9113fa12fcaa13570b95413aaa95037a8a73e",
      "parents": [
        "064a8632cd3a9b0775843201f8ca350280cba2d3",
        "39ce7d2907edb978f1ab6cd75884be48ab11cd77"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Nov 11 18:54:15 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Nov 11 18:54:15 2016 +0000"
      },
      "message": "Merge \"Make empty checkpoint work while weak ref access is disabled.\"\nam: 39ce7d2907\n\nChange-Id: I9fc7a636864f1c8d8993341dcd0554a65bd6fa59\n"
    },
    {
      "commit": "39ce7d2907edb978f1ab6cd75884be48ab11cd77",
      "tree": "7d2f0c56bd8a7dd483b5c1ede7047b623d0e35d7",
      "parents": [
        "5302bd999afee6db5b0cfd63e6a49b0fcbf92dd4",
        "3049324f4ef71b5d7a3de49bd77c75f07dbf8f3a"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Nov 11 18:44:44 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 11 18:44:44 2016 +0000"
      },
      "message": "Merge \"Make empty checkpoint work while weak ref access is disabled.\""
    },
    {
      "commit": "75afcdd3503a8a8518e5b23d21b6e73306ce39ce",
      "tree": "b49afc4772fa72319475f96ed66d744bb03e803c",
      "parents": [
        "ee48b0f11df812d98de5c989e1f6d95a21515564"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 10 10:38:11 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 11 13:18:24 2016 +0000"
      },
      "message": "Revert \"Revert \"JIT root tables.\"\"\n\nAlso  contains Revert \"Support kJitTableAddress in x86/arm/arm64.\"\n\nThis reverts commit 4acd03638fcdb4e5d1666f8eec7eb3bf6d6be035.\nThis reverts commit 997d1217830c0a18b70faeabd53c04700a87d7d9.\n\nTest: ART_USE_READ_BARRIER\u003dtrue/false test-art-host test-art-target\n\nChange-Id: I77cb1e9bf8f1b4c58b72d3cf5ca31ced2aaa1ea3\n"
    },
    {
      "commit": "3049324f4ef71b5d7a3de49bd77c75f07dbf8f3a",
      "tree": "19e2d9d5e8476bf526dd5924ef05b1d727b75f8b",
      "parents": [
        "e7b46e22c7f4f6f503501b3b2ad99113289d142b"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Nov 03 13:06:52 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Nov 09 18:14:08 2016 -0800"
      },
      "message": "Make empty checkpoint work while weak ref access is disabled.\n\nFix a potential race on PushOntoMarkStack for CC by running an empty\ncheckpoint (while weak ref access is disabled).\n\nBug: 32508093\nBug: 12687968\nTest: test-art-host with CC/CMS, libartd boot with N9, Ritz EAAC.\nChange-Id: I3749bb525e7734804307ee16262355f3fc730312\n"
    },
    {
      "commit": "0627abd36c9cc12fb26164a7b4514e5159c3cd5c",
      "tree": "38dc1468d34607ce63298a8650e44a56eff99249",
      "parents": [
        "8f9550806fff06c3549d5db8c6d0d4ceef9ca947",
        "20c56a8cded87092d40097323fcf9eaf50f64e4b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 17:39:54 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 09 17:39:54 2016 +0000"
      },
      "message": "Merge \"Revert \"JIT root tables.\"\"\nam: 20c56a8cde\n\nChange-Id: I94678ba4ca22e9dc051ee83a40964c5b0d97f607\n"
    },
    {
      "commit": "20c56a8cded87092d40097323fcf9eaf50f64e4b",
      "tree": "1dd41fe4afd736aa0cfb8d6ef8ed4835a4dbe4af",
      "parents": [
        "2e7f085990423a706137c1d42673226ee7a7194f",
        "4acd03638fcdb4e5d1666f8eec7eb3bf6d6be035"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 17:30:49 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 09 17:30:49 2016 +0000"
      },
      "message": "Merge \"Revert \"JIT root tables.\"\""
    },
    {
      "commit": "4acd03638fcdb4e5d1666f8eec7eb3bf6d6be035",
      "tree": "1220262d0ed22d91777c68a8a568348cddf820cb",
      "parents": [
        "ac3ebc3150760425ed00abd56da48f9a6e0666bc"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 17:30:31 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 17:30:31 2016 +0000"
      },
      "message": "Revert \"JIT root tables.\"\n\nMay be the offender for jit-gcstress failure of 902.\n\nThis reverts commit ac3ebc3150760425ed00abd56da48f9a6e0666bc.\n\nChange-Id: I9ea6c9236fd1729fed7d1868dd8a111172932308\n"
    },
    {
      "commit": "3f06a4ddecd15e3039ecedeea16c2d55207bc26e",
      "tree": "7eb0974f4571c36e3e00e169d6f67c8a29796fa3",
      "parents": [
        "0f9c5a7030ebc194bfd6d722260c8fcc1f9a3dfb",
        "0864c98b10cb8ca306671cabaa9be2a4068a2711"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 10:00:08 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 09 10:00:08 2016 +0000"
      },
      "message": "Merge \"JIT root tables.\"\nam: 0864c98b10\n\nChange-Id: Ic8d73f221f6d0a9b308dacb3288cccbf807d7886\n"
    },
    {
      "commit": "0864c98b10cb8ca306671cabaa9be2a4068a2711",
      "tree": "56d9bb3097c51d5efbf67cd7516b0bc3c8e16616",
      "parents": [
        "4c45ffaf6329d40e3249894cfb078d3d274ddfd5",
        "ac3ebc3150760425ed00abd56da48f9a6e0666bc"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 09:55:45 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 09 09:55:45 2016 +0000"
      },
      "message": "Merge \"JIT root tables.\""
    },
    {
      "commit": "9af15038bd0ccd0abcd823f5b685d5da4aacfd4f",
      "tree": "7f1e1b708b071f61b48506872959f8bc579cabf5",
      "parents": [
        "004a0cebbd36098bd7f9e1ac34942ba4276bdd54",
        "8bab69aafb3039f1dfe4aad4faf2a99986018abb"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 08 21:28:46 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Nov 08 21:28:46 2016 +0000"
      },
      "message": "Merge \"ART: Refactor jmethodID handling\"\nam: 8bab69aafb\n\nChange-Id: I5916823995e09bea7842a608767233074523aa5e\n"
    },
    {
      "commit": "ac3ebc3150760425ed00abd56da48f9a6e0666bc",
      "tree": "3c5c923bb00a898e035c0e7c4b8a6a684a578419",
      "parents": [
        "76ad2405b40547e0ab4fc401fb8303189ff783eb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 05 13:13:50 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 08 17:21:30 2016 +0000"
      },
      "message": "JIT root tables.\n\nImplement root tables for the JIT. Each JIT compiled method\ngets a table allocated before the stack maps.\n\nThe table gets visited through Runtime::SweepSystemWeaks.\n\nImplement String roots for x86_64 as an example.\n\nTest: test-art-host test-art-target\n\nChange-Id: Id3d5bc67479e08b52dd4b253e970201203a0f0d2\n"
    },
    {
      "commit": "13b27842e88ccf1a42807c92daeb108e867dc4cd",
      "tree": "d95968f678070058ec084376d561c7ed4f1bcff3",
      "parents": [
        "689a331aded82340d2ab144d0adb9bbbbd4b53ff"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 07 16:48:23 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 07 19:45:48 2016 -0800"
      },
      "message": "ART: Refactor jmethodID handling\n\nArtMethod objects have been native since Marshmallow.\nRemove the dependency on being runnable. Refactor the\ncode into the jni_internal header.\n\nTest: m test-art-host\nChange-Id: I1385fcd4c08981491701da55a87036b447aa2fc2\n"
    },
    {
      "commit": "5e653ef97344e352b2ed35ef213e0981cef74c0d",
      "tree": "c3f83e9096d4a00a68f93b6af9219df9a1ef3791",
      "parents": [
        "8735e8c553b34abf692ceb586f5a91b7bf541226",
        "3e9e3a3761bd3d9f4a9ea6a49b2707abba702f22"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Nov 03 00:10:00 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Nov 03 00:10:00 2016 +0000"
      },
      "message": "Merge \"Call ClassExt::VisitRoots\"\nam: 3e9e3a3761\n\nChange-Id: Iafabd1715c43e8d851970e870fd9c2a0a0f06067\n"
    },
    {
      "commit": "cec2fd462aaa53918ba28a6a8149b812716ff957",
      "tree": "638da4677cab879105e420c1bfc332b02b461a03",
      "parents": [
        "f7b9a7b92573281316e7f245a9836eccfb212d30"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Nov 02 16:32:07 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Nov 02 16:33:20 2016 -0700"
      },
      "message": "Call ClassExt::VisitRoots\n\nWe were missing this call.\n\nTest: ART_DEFAULT_GC_TYPE\u003dGSS mma test-art-host\nChange-Id: I559a64b04dde514888e37a86fafc260e55196f95\n"
    },
    {
      "commit": "962662c42de11189e45ef80cf81d309f8b60e855",
      "tree": "a085753225aa849afccf6073040bfdcfd515b67b",
      "parents": [
        "e29e482dac4e4c4ec8f36500e7fbe5e731e1917e",
        "9be86bb445c3d218af0a48ee30827e89bb71a21b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 01 01:40:22 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Nov 01 01:40:22 2016 +0000"
      },
      "message": "Merge \"Move intern table to ObjPtr\"\nam: 9be86bb445\n\nChange-Id: I1fb6cff9ac119f6edc7ee5f9d23405dcea651372\n"
    },
    {
      "commit": "9e868098b4a5d666570e3924518978d7abd3542e",
      "tree": "f4e4ee5bb96e3ba00838fd0bfff96eabe636abcb",
      "parents": [
        "b0b2080b4cea8365052d1be973e927f8ee85f609"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 31 14:58:04 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 31 16:40:39 2016 -0700"
      },
      "message": "Move intern table to ObjPtr\n\nAlso moved StringLog to use a GcRoot.\n\nAlso removed read barriers from lookup to prevent making weak strings\nstrongly live more often than necessary.\n\nBug: 31113334\n\nTest: clean-oat-host \u0026\u0026 test-art-host CC baker\n\nChange-Id: I05586e125d5dfed8d184890468fd398c79f32619\n"
    },
    {
      "commit": "bde2da0a5de33300bd889dee4ca875a03f222c21",
      "tree": "4b08b221eec55e3b5342a5bf0d33ee22533980f7",
      "parents": [
        "be5842b377945d188b309f56f88612674c4c7eaa",
        "be92d691dd044dfc94a1c8e8793056776d55e826"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Oct 31 10:35:36 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Oct 31 10:35:36 2016 +0000"
      },
      "message": "Merge \"method_handles: Complete support for emulated stack frames.\"\nam: be92d691dd\n\nChange-Id: Id651bd3eadd08dcd07e3280bc2cdd632d0be711f\n"
    },
    {
      "commit": "000e1885701c8fdad07a784e3771881fa9be1d8a",
      "tree": "77d11180fb1d93903fa6c6cd58383d91a82affc5",
      "parents": [
        "b5cc1d1321e36d38cd48ae079438a8758b82edc1"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Oct 24 17:14:25 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Oct 28 14:11:45 2016 +0100"
      },
      "message": "method_handles: Complete support for emulated stack frames.\n\nMost of this change is a refactor that templatizes the code\nthat performs argument conversions. This allows us to copy arguments\nbetween two shadow frames, or an emulated stack frame and a shadow\nframe.\n\nTest: make test-art-host\nBug: 30550796\n\nChange-Id: I23e65735a2dbd28f3c7b7d1ccf9762e77e0cf1f1\n"
    },
    {
      "commit": "b73ab5d7c0d1110492ea4301eea2b0534d5679ac",
      "tree": "7b33284174ba8a95f8a71cc0736c5d679b6dbccd",
      "parents": [
        "3c7c825f829df8bb167fd7f259ebb8aebe654606",
        "f35843dc6a83b50bf09c540e2c49b2953367fe3c"
      ],
      "author": {
        "name": "Leonard Mosescu",
        "email": "mosescu@google.com",
        "time": "Tue Oct 25 19:53:49 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 25 19:53:49 2016 +0000"
      },
      "message": "Merge \"Enable agent attaching during live phase\"\nam: f35843dc6a\n\nChange-Id: Ic8c6e3d5c1b3695187767bf31d2839e3395b9740\n"
    },
    {
      "commit": "eb84221ffc00357be6d69e2e461c7a45ee96334a",
      "tree": "00e6a0884a62dfb448e4d617699fe511307db74f",
      "parents": [
        "19c5e5f3e92db92e4a51b354743cbb0edd8e0f48"
      ],
      "author": {
        "name": "Leonard Mosescu",
        "email": "mosescu@google.com",
        "time": "Thu Oct 06 17:26:36 2016 -0700"
      },
      "committer": {
        "name": "Leonard Mosescu",
        "email": "mosescu@google.com",
        "time": "Tue Oct 25 19:46:58 2016 +0000"
      },
      "message": "Enable agent attaching during live phase\n\nThis is the ART part, the plumbing from VMDebug_attachAgent() to\nactually loading the agent into the runtime.\n\nTest: m test-art-host\n\nBug: 31682382\n\nChange-Id: I3ccc67aa050c1f78278882128983686ed44ddec2\n"
    },
    {
      "commit": "11a73ac0c59231183be44458e9d036c4fe53348f",
      "tree": "5cde3050989089aef9dd499ce49d7d0ba6bdfa45",
      "parents": [
        "1c149d66e67092548f67f395e791cf5399c33f5c",
        "77cd3d861fcf723ba0a37833c223eeb08cfd7d8c"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Oct 21 15:42:44 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Oct 21 15:42:44 2016 +0000"
      },
      "message": "Merge \"Remove mutex dependency on art::Runtime\"\nam: 77cd3d861f\n\nChange-Id: Iac764a067e2d6f19a255676ef067d8e1ddda1cb3\n"
    },
    {
      "commit": "f42eb2c7801dbb45a6ba20a372d5ba4712ebefba",
      "tree": "62939df36e0d113aab0307f75ab728de72b80953",
      "parents": [
        "fc5fbfc13fd6873d42fe82c308ee68a685258b4c"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Oct 19 13:20:45 2016 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Oct 20 13:40:56 2016 -0700"
      },
      "message": "Remove mutex dependency on art::Runtime\n\nBreaks the cyclic dependency between mutex and the runtime.  This allows\nthe use of mutexes without instantiating a runtime.\n\nBug: 22322814\nTest: test-art\nChange-Id: Ia642e515937068d385e5bb1e10bbd3e50a6e36d2\n"
    },
    {
      "commit": "1c2b4d0f99e62386ef2d7065ebed8f7e5dc91f63",
      "tree": "9e7bbc3dd81bcf83c2bae47054f5d2d6d1fd3dec",
      "parents": [
        "e2c470ceaaa32d5b75576de7438f416173a2cdb9",
        "3bbfcb794f5f81f4aa76ac0fb4c811d260e69d3b"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Oct 20 11:58:39 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 20 11:58:39 2016 +0000"
      },
      "message": "Merge \"Return error message if IndirectReferenceTable construction fails.\"\nam: 3bbfcb794f\n\nChange-Id: Ib7f88016ae51ce543542ada3dd0c578d0a463c22\n"
    },
    {
      "commit": "da0a69edb24122d3d35ce1483c5ab94de919d714",
      "tree": "7216e6a19b1a9f3ca9da28d61c717ad9086d994e",
      "parents": [
        "278ec18934045477f0340b4aa6564f003a1e190d"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Oct 11 15:06:38 2016 +0100"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Oct 19 16:37:47 2016 +0100"
      },
      "message": "Return error message if IndirectReferenceTable construction fails.\n\nPreviously if there was an error when constructing the\nIndirectReferenceTable, the error message was lost. Now expose and\ninclude the error message when throwing an exception related to\nfailures to construct the IndirectReferenceTable.\n\nThe error message is propagated through JVMEnvExt, JavaVMExt, and\nRuntime::Init as well.\n\nBug: 32013594\nTest: Added new 151-OpenFileLimit runtest.\nTest: m test-art-host, m test-art-target\n\nChange-Id: I3692f6928c9570358571bce634569d6f14cdeb05\n"
    },
    {
      "commit": "1112203a69f86db7ef0025ed71293d199e8f9324",
      "tree": "edd2555001ca8c445b0b5a7f0545f8277849fbdd",
      "parents": [
        "5a88e28f91b4896144aab79d045e204f60638039",
        "27b88f3a2aaaa2dd3e03706d02590a07a96d8c30"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Oct 17 22:56:56 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Oct 17 22:56:56 2016 +0000"
      },
      "message": "Merge \"Remove logging dependency on runtime\"\nam: 27b88f3a2a\n\nChange-Id: Ica477f15e9ee950f4cdf026272e52c0d3749825d\n"
    }
  ],
  "next": "f57589fd40e5b69dad5aff060ccef756507f381a"
}
