)]}'
{
  "log": [
    {
      "commit": "7dac864d7eae3d731eeacf55cfc7f71b4df6cee3",
      "tree": "9f27bb1c0b6f076c2dd1b721441200f9f7a78022",
      "parents": [
        "047081a1509762879a9eb51981982af65f419bac"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 06 17:09:30 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 27 10:02:22 2019 +0000"
      },
      "message": "Clean up JNI dlsym lookup trampoline.\n\nMake sure the GenericJniTrampoline recognizes the trampoline\nin primary boot image oat file. Rename that trampoline, add\na test and flag some issues in the code.\n\nTest: New test 178-app-image-native-method.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: testrunner.py --host -t 178-app-image-native-method\nBug: 112189621\nChange-Id: I8f8cd11998af536fd3842dd4183a25f0367655a6\n"
    },
    {
      "commit": "047081a1509762879a9eb51981982af65f419bac",
      "tree": "d4a4460d88c4ccda074017f25f7869b7a1bc780c",
      "parents": [
        "f585c1e4f8b011b7399668800da53ec726fbeb40"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Nov 27 02:51:25 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 27 04:23:51 2019 +0000"
      },
      "message": "Revert \"Revert^2 \"Revoke CC\u0027s thread-local mark stack in ~Thread\"\"\n\nThis reverts commit add69acb7db965bd8d817a185e962e5474f690d1.\n\nBug: 140119552\nReason for revert: Causes b/144408451\n\nChange-Id: Ifaa78a3a13cbcc0524fa0fb8e25d377b6fd6ed2b\n"
    },
    {
      "commit": "f585c1e4f8b011b7399668800da53ec726fbeb40",
      "tree": "bd7a532ba4fdca8bc037a1b5faaef491a37f98e1",
      "parents": [
        "f92f6f12f3be976afb8f2ac8e8bbeaef72ef8b33"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Mon Nov 25 10:41:23 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 27 02:32:51 2019 +0000"
      },
      "message": "Protect/Unprotect regions (region space) only in debug build\n\nDuring performance analysis it was observed that the\nallocation-intensive workloads get negatively impacted by the region\nprotect/unprotect. Therefore, we enable this only on debug builds.\n\nSome of the most affected benchmarks on Golem are as follows:\n\nBenchmark                           | armv8 | armv7 |  x64  |  x32\n------------------------------------------------------------------\nBinaryTrees                         |   8%  |   8%  |  13%  |  12%\nMicroAllocThreeFinalThrice          |  13%  |   8%  |  27%  |  30%\nMicroAllocThreeFinalTwice           |  13%  |   9%  |  32%  |  30%\nMicroAllocThreeFinal                |  13%  |   8%  |  33%  |  30%\nMicroAllocTwoFinal                  |  11%  |   9%  |  32%  |  31%\nMicroAllocOneFinal                  |  11%  |   9%  |  33%  |  31%\nMicroAllocBaseline                  |  12%  |   9%  |  33%  |  34%\nKotlinMicroTree                     | -0.4% |  0.7% |   8%  |   9%\nKotlinMicroMap                      |   6%  |   3%  | 0.7%  |   1%\nKotlinImgProc-CheckerboardMultiply  |   5%  |  0.5% |   0%  |-0.5%\nSplay                               |   5%  |   4%  |   2%  |   3%\nMicroLazyInitSingleThreadedSlow     |   8%  |  -2%  |  17%  |   7%\nMicroLazyInitImmutableSlow          |   5%  |  -2%  |  24%  |   8%\n\nTest: golem benchmarking\nBug:140130889\nChange-Id: I6be646bcc069d59625112c1b9ab91bbbc5f9f627\n"
    },
    {
      "commit": "f92f6f12f3be976afb8f2ac8e8bbeaef72ef8b33",
      "tree": "172d92f23364dab93e94ef003d38f8a72dbf0062",
      "parents": [
        "0aa02069a224384f0c6a8d78c3465290b61bdf67"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Nov 26 12:37:14 2019 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Nov 26 12:56:54 2019 -0800"
      },
      "message": "Skip 909 \u0026 126 with zipapex\n\nTests 909 and 126 fail on zipapex due to their \u0027run\u0027 scripts doing\nnon-standard things. Add support for run-test skipping based on a\n\u0027zipapex\u0027 selector and add these tests to the skip list.\n\nTest: ./test/testrunner.py --no-build-dependencies --runtime-zipapex \u003cpath\u003e -t 909 -t 910\nBug: 135507613\nChange-Id: I75c103f90d73c8703649e9370c9dfc8059dd858d\n"
    },
    {
      "commit": "0aa02069a224384f0c6a8d78c3465290b61bdf67",
      "tree": "b1cc859ce0449e0943e756544d2a7a581cf870ca",
      "parents": [
        "88b1c83080afcb2bfb6f781ded1c90fe8f9eab4d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 21 16:24:09 2019 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 26 17:26:31 2019 +0000"
      },
      "message": "Add resetJitCounters\n\nUsed to avoid Jit counters from class preloading being recorded in the\nboot profiles.\n\nBug: 139883463\nBug: 142564450\nTest: test/run-test 2230-profile-save-hotness\nChange-Id: I69c548ea336e9fb33e74988668e5d3c93b8a6705\n"
    },
    {
      "commit": "88b1c83080afcb2bfb6f781ded1c90fe8f9eab4d",
      "tree": "e3ee63ccca83c60c5790e51610349889f44daacf",
      "parents": [
        "8e895008a3e2f2813bb46cb0c6bc76884e46e9ac"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 26 14:13:44 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 26 15:55:26 2019 +0000"
      },
      "message": "Revert \"Allow structural redefinition on non-final classes.\"\n\nThis reverts commit c47040d31cbcd8cddd5fadb552b4f0f6c94b5bd0.\n\nReason for revert: Breaks ART tests (see e.g. b/145197371).\n\nBug: 145197371\nBug: 134162467\nBug: 144168550\nChange-Id: Ia8e5788655057e380fc723a38900d26d69cda938\n"
    },
    {
      "commit": "8e895008a3e2f2813bb46cb0c6bc76884e46e9ac",
      "tree": "c30e54521e1b31eb50e282b54be138f888d9870e",
      "parents": [
        "7c9cfe8b3f986e7cbc18350ad7b9b72f58f5846c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 26 14:05:40 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 26 14:06:21 2019 +0000"
      },
      "message": "Revert \"Revert^2 \"Implement Dot Product Vectorization for x86\"\"\n\nThis reverts commit 7cf5607f472020711e36eedbbfebb25b40d3f90e.\n\nBug: 144947842\n\nReason for revert: Seems to have broken android.jvmti.cts.JvmtiHostTest1936#testJvmt\n\nChange-Id: Ied6ff6ddf1cb2e3e76adcaa0fda5e36af254b7c5\n"
    },
    {
      "commit": "7c9cfe8b3f986e7cbc18350ad7b9b72f58f5846c",
      "tree": "838641fd0cecba43abb2a1382aa41c4e2ccc00f1",
      "parents": [
        "d3ed4ada0d2bf6ffa0e997692734fe5016d365e3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 25 17:40:21 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 26 10:31:02 2019 +0000"
      },
      "message": "Honor the --baseline flag for the JIT.\n\nTest: art -Xcompiler-option --baseline uses the baseline compiler.\nChange-Id: I2a5a3ed0038ca965ab1f0cebffb7900e90bae43a\n"
    },
    {
      "commit": "d3ed4ada0d2bf6ffa0e997692734fe5016d365e3",
      "tree": "43a7359bb3f5dd56ff13729b4dd9b65f47bc4850",
      "parents": [
        "c47040d31cbcd8cddd5fadb552b4f0f6c94b5bd0"
      ],
      "author": {
        "name": "Shalini Salomi Bodapati",
        "email": "shalini.salomi.bodapati@intel.com",
        "time": "Mon Oct 21 11:47:39 2019 +0530"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 26 09:14:31 2019 +0000"
      },
      "message": "Handle Special case div and rem by 2 in art interpreter\n\n4% gain in division \u0026 3.1% gain in modulus\noperation on Intel(R) Atom Architecture\n\nTest: 411-checker-hdiv-hrem-pow2\n\nChange-Id: I338a51f2a867ed7f7cb1caf851b8fc8c9fa62d10\nSigned-off-by: Shalini Salomi Bodapati \u003cshalini.salomi.bodapati@intel.com\u003e\n"
    },
    {
      "commit": "c47040d31cbcd8cddd5fadb552b4f0f6c94b5bd0",
      "tree": "50df569420cd6746daadf1487933719d1f86d66b",
      "parents": [
        "dc540dfffb6863177143d024dd6f491775d77585"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Nov 13 09:33:52 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 26 02:11:19 2019 +0000"
      },
      "message": "Allow structural redefinition on non-final classes.\n\nThis adds support for structurally redefining non-final,\nnon-finalizable classes. The only restriction is that one cannot\nredefine a class at the same time as any of its supertypes, if a\nstructural redefinition is occurring. The structural redefinition may\nnot remove any fields or methods, change the superclass or change the\nimplemented interfaces. Adding new methods or fields, both static or\nnon-static, public, private, protected, or package-private, is\nsupported.\n\nTest: ./test.py --host\nBug: 134162467\nBug: 144168550\nChange-Id: I32e9e854b3e56270170b10e8f5aba9de8f6bfdfa\n"
    },
    {
      "commit": "dc540dfffb6863177143d024dd6f491775d77585",
      "tree": "91a2fe20c625790cead209c36ed4a45e0cf97c06",
      "parents": [
        "882d41435982c518506f544ab79a9fa0a90cc78f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 15 17:11:44 2019 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 25 23:00:08 2019 +0000"
      },
      "message": "Add ScopedAllowThreadSuspension\n\nAdd a way to temporarily re-allow thread suspension. This makes it\ncleaner to do the pre alloc visitor stuff in heap-inl.\n\nTest: test-art-host\nChange-Id: Ifbb2725923df84e8e0bd073d415e99cb8090e681\n"
    },
    {
      "commit": "882d41435982c518506f544ab79a9fa0a90cc78f",
      "tree": "5b5902f9ba26b45c2ced2367f168d82f33ad7b7c",
      "parents": [
        "da3653f1424236c4778cf3806861d04f2ba9b07e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 21 13:27:10 2019 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 25 21:33:30 2019 +0000"
      },
      "message": "Use nativePostForkSystemServer for system server profiling\n\nNeed to use nativePostForkSystemServer instead of nativePostForkChild\nsince nativePostForkChild is called after the class loader is created.\n\n(cherry-picked from commit 0712f2969c0f19fa2cc41f99751d39ee1852ebbc)\nBug: 139883463\nBug: 144383344\nTest: showmap `pid system_server` and verify\nTest: atest BootImageProfileTest\n\nMerged-In: I7c4f61b08d286ef6056931231f6b835749092720\nChange-Id: I7c4f61b08d286ef6056931231f6b835749092720\n"
    },
    {
      "commit": "da3653f1424236c4778cf3806861d04f2ba9b07e",
      "tree": "6c0056048e04698b25d4ce0ea664417eb5a951c2",
      "parents": [
        "0ac78cf94fac523ab9bea0a42edac8eb8c09a05d"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Mon Nov 25 10:07:56 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 25 19:37:04 2019 +0000"
      },
      "message": "Fix reinterpret cast in ImmuneSpaceCaptureRefsVisitor\n\nTest: art/test/testrunner/testrunner.py\nBug:145134481\nChange-Id: I5795aa22939fdc8b958f2298a196e63e28d5883e\n"
    },
    {
      "commit": "0ac78cf94fac523ab9bea0a42edac8eb8c09a05d",
      "tree": "5aa7e192fc054f2837de61e660446ef33c317197",
      "parents": [
        "80f1c2850a6cc501c42ff1cfa306ec725e2bf61f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 25 15:46:19 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 25 17:53:48 2019 +0000"
      },
      "message": "Fix vtable relocation for boot image extension.\n\nCheck relocated reference against destination address\nrange rather than source address range.\n\nTest: No crashes seen when framework is compiled as\n      a boot image extension (cherry-pick WIP CLs).\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 119800099\nChange-Id: Ica5d898c80db7817a511d64046f3a84830cb2a45\n"
    },
    {
      "commit": "80f1c2850a6cc501c42ff1cfa306ec725e2bf61f",
      "tree": "2110ff812059febf23402fdb43257f89d23bbeba",
      "parents": [
        "7ed2d385b513ced901e42181ae9a83e220b47912"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Nov 25 15:07:27 2019 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Nov 25 17:17:51 2019 +0000"
      },
      "message": "Add libdl_android.so to more places required for Golem.\n\nTest: env SOONG_ALLOW_MISSING_DEPENDENCIES\u003dtrue ART_BUILD_TARGET_DEBUG\u003dfalse ART_BUILD_HOST_DEBUG\u003dfalse USE_DEX2OAT_DEBUG\u003dfalse OUT_DIR\u003dout/x86_64 ART_TARGET_LINUX\u003dtrue ART_USE_READ_BARRIER\u003dfalse CUSTOM_TARGET_LINKER\u003dout/x86_64/target/product/armv8/system/bin/linker64 m build-art-target-golem\nBug: 144343305\nBug: 129332183\nChange-Id: I9bde7f02dfd50a2389a7bb16d7930bb56e5d79df\n"
    },
    {
      "commit": "7ed2d385b513ced901e42181ae9a83e220b47912",
      "tree": "ace75719b974de2e38d1473d607a247f7eb85da9",
      "parents": [
        "aedc9bc5ebdacadc9efe4465173e1b7ca7edc226"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 25 10:41:53 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 25 15:18:48 2019 +0000"
      },
      "message": "Fix boot image extension class exclusion.\n\nThe code in CompilerDriver was too permissive for arrays and\nthe code in Transaction was not even checking interfaces.\nMove the check to AotClassLinker and fix it.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I3400b6c0e212e25acf17e3740ba19a8b407e03d3\n"
    },
    {
      "commit": "aedc9bc5ebdacadc9efe4465173e1b7ca7edc226",
      "tree": "5889afe345495e831f6c390f215fc0ca611b630d",
      "parents": [
        "3c036885d2d5e6129c1d6b5933be2fce13fbdc79"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 04 15:31:42 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 25 13:54:49 2019 +0000"
      },
      "message": "Ensure we can always enter OSR code\n\nWhen the the loop header is not the target of a back-edge,\nwe used to never enter the OSR code even if it\u0027s been compiled.\n\nTest: testrunner.py --host --jit -t 570-checker-osr-locals\n      (it used to get stuck, you can kill the dalvikvm to check that\n      the weirdLoop was OSR-compiled)\nBug: 136743846\n\nChange-Id: Iae55463eff92adccf9adec842e04f8ff6d9d8568\n"
    },
    {
      "commit": "3c036885d2d5e6129c1d6b5933be2fce13fbdc79",
      "tree": "82690225efcb0da1b3364cefb80da635b6893855",
      "parents": [
        "cb177da21e46df1ef58a537e87df0e042ed1418b"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Wed Nov 20 17:45:32 2019 +0900"
      },
      "committer": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Sat Nov 23 03:37:29 2019 +0000"
      },
      "message": "Make file_contexts as \"android:path\" property\n\nTill now, file_contexts has been treated differently that other input\nsrc files. Now it is tagged as `android:\"path\"` because it is.\n\nBug: 144732805\nTest: m\nChange-Id: Ia3db7ac4e7c30d0afdcb99f33950b3075f35eed1\n"
    },
    {
      "commit": "cb177da21e46df1ef58a537e87df0e042ed1418b",
      "tree": "f9a192a3949cc8d8f649865d1c7b5d30d539ea6a",
      "parents": [
        "78a44b9863cc88da3f546b39f9cf3081561b5c51"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu Nov 21 16:40:06 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 22 03:03:42 2019 +0000"
      },
      "message": "Convert \u0027thread to mark-stack map empty\u0027 assertion into a CHECK\n\nUsing LOG(FATAL) doesn\u0027t print threads\u0027 headers, which is needed to\nidentify the thread(s) which has a mark-stack assigned.\n\nBug:144408451\nTest: art/test/testrunner/testrunner.py --host\nChange-Id: Ib273dd866e00f231ab67d9da7cad14659cbb7c6b\n"
    },
    {
      "commit": "78a44b9863cc88da3f546b39f9cf3081561b5c51",
      "tree": "24ee2a0d6e5ba65315e9e473f9871b7539588bbe",
      "parents": [
        "a8f39186b26f66671c5e960e7f7a3b7ce231eab1"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Nov 11 16:59:46 2019 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Nov 21 16:17:37 2019 +0000"
      },
      "message": "Update Buildbot and Golem setups for libdl_android.so.\n\nTest: art/tools/run-gtests.sh /apex/com.android.art/bin/art/arm/arch_test (in chroot)\nBug: 135753770\nBug: 144343305\nChange-Id: I19f359602d7194ccabd46e55665f3ff1a897013f\n"
    },
    {
      "commit": "a8f39186b26f66671c5e960e7f7a3b7ce231eab1",
      "tree": "231b20d3394af6305d89ecdefea34d755d622ee0",
      "parents": [
        "e61f16af3976ca8c0ab82cd3f21e5dff66225520"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 21 10:08:58 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 21 13:35:02 2019 +0000"
      },
      "message": "Clean up some image tests.\n\nMake ImageSpaceLoadingTest\u003cfalse,.,.\u003e use a custom image\nlocation based on ScratchFile to avoid accidentally finding\na pre-compiled boot image in default location.\n\nAdd -Xnoimage-dex2oat to Dex2oatImageTest to avoid useless\ndex2oat invocations that just slow down the test. Suppress\nerror messages from image loading that is supposed to fail.\nCompile only 3 dex files in TestModesAndFilters to make the\ntest faster (29s-\u003e20s on host).\n\nTest: m test-art-host-gtest\nChange-Id: Ia92e85f056027003d2fb50aa871c9fae7a5fdc01\n"
    },
    {
      "commit": "e61f16af3976ca8c0ab82cd3f21e5dff66225520",
      "tree": "4eb932e907b165f267755549361db870d1b51778",
      "parents": [
        "55d9aaad5d5ec9729ce7522eb88b0c69a0b3342d"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Nov 20 13:49:19 2019 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Nov 21 00:38:16 2019 +0000"
      },
      "message": "Add missing WriteBarrier on VisitReflectiveTargets\n\nWe weren\u0027t performing write-barriers during VisitReflectiveTargets.\nThis could lead to incorrect marking.\n\nTest: ./test.py --host --gcstress\nChange-Id: I153f319e257675d83cae6ec25e041cbddecf1a94\n"
    },
    {
      "commit": "55d9aaad5d5ec9729ce7522eb88b0c69a0b3342d",
      "tree": "7e21d1f7f777aaf524660e7d1386a31adf71c306",
      "parents": [
        "505e56bb5519ac5ebc50ab1cc79509aa0de640cb"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Tue Nov 19 19:02:34 2019 -0800"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Nov 20 19:01:14 2019 +0000"
      },
      "message": "Assert no-thread-mark-stack mapping after switching to shared mode\n\nBug:144408451\nTest: art/test/testrunner/testrunner.py --host -t 004-ThreadStress\nChange-Id: I6e7eddb138ba90a2c4bef7a39e48036ff5184e38\n"
    },
    {
      "commit": "505e56bb5519ac5ebc50ab1cc79509aa0de640cb",
      "tree": "c24eb3c35c4a4d4882206c7dde929ac93ad166d2",
      "parents": [
        "3e9d7ae3c2b303be546e84f73a3a3c2d7cbd74e3"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Nov 20 08:49:24 2019 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Nov 20 16:07:10 2019 +0000"
      },
      "message": "Temporary hack: Force the use of `signal_dumper` as timeout handler on host.\n\nThe use of signal_dumper has been globally disabled in\n`test/etc/run-test-jar` since\nhttps://android-review.googlesource.com/c/platform/art/+/1144349/\n(commit 352482c000830755405f5da3624891ff4690a36a) in order to get\nfiner observations of the process timing out in\n`test/testrunner/testrunner.py`, implemented (as a temporary measure)\nin https://android-review.googlesource.com/c/platform/art/+/1145595\n(commit 2bd8bfd716d4b07d7df017596af7b8394006cf38).\n\nForce-restore the use of `signal_dumper` in `test/etc/run-test-jar` on\nhost, so that we can get backtraces when a host run-test times out.\n\nTest: Test the code path locally with very low timeout.\nTest: Rely on the Android Build (master-art-host) and the ART Buildbot.\nBug: 144333851\nBug: 144360582\nChange-Id: I3960f0b4346de0bf640ba0b671c21b4025550d76\n"
    },
    {
      "commit": "3e9d7ae3c2b303be546e84f73a3a3c2d7cbd74e3",
      "tree": "f143dd7f5acf7a4b23d500cbebcffa01b7e51ede",
      "parents": [
        "c526e42d6091b8f2b3b4ac810299ccba9506e380"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Nov 18 15:21:51 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 20 14:05:18 2019 +0000"
      },
      "message": "Don\u0027t use addr2line for dex and jar files.\n\nBug: 144594370\nTest: Modify a run-test to invoke String.length interpreter intrinsic \\\n  and call Runtime::Abort from interpreter intrinsic implementation\nChange-Id: I2997dbfa59ce2bbe9d725f1d7fe7eed565f698fe\n"
    },
    {
      "commit": "c526e42d6091b8f2b3b4ac810299ccba9506e380",
      "tree": "8879fce9f4c4bef5cb837a2553f46ace972e86c0",
      "parents": [
        "a879bdf5e9e1f2e1ff01ce9a66af3682188079bf"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 20 10:27:14 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 20 11:22:07 2019 +0000"
      },
      "message": "Use full profile in Dex2OatImageTest#TestExtension.\n\nTest: m test-art-host-gtest-dex2oat_image_test\nBug: 119800099\nChange-Id: I120f71f98b4df7fae88764e5215e06a6e151b7a2\n"
    },
    {
      "commit": "a879bdf5e9e1f2e1ff01ce9a66af3682188079bf",
      "tree": "0621e683ad6710e590a26fd7ae399bb077edc7de",
      "parents": [
        "142816a6ac2a9261d37cffb7a7367a96f712fde2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 19 16:25:47 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 20 09:43:45 2019 +0000"
      },
      "message": "Revert^2 \"Fix CompilerDriver\u0027s handling of boot image extension.\"\n\nThis reverts commit 96d8585ebb9e21fc27a59ddd4173ca62ad93c194.\n\nFixed verification from oat files when compiling a boot\nimage extension. Normal verification can fail if the\nprimary boot image is quickened.\n\nTest: `art/tools/buildbot-build.sh --target` with master-art manifest\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 119800099\nBug: 144751090\nChange-Id: Ibc4e7ab1ec8451c9b5c87b6e87ab9807ac22e284\n"
    },
    {
      "commit": "142816a6ac2a9261d37cffb7a7367a96f712fde2",
      "tree": "de5be36fdf80681d3ce517b095e9f2058918a498",
      "parents": [
        "986914bfd60c1cace9726e9029598d72cbf279e1"
      ],
      "author": {
        "name": "Usama Arif",
        "email": "usama.arif@linaro.org",
        "time": "Wed Nov 06 16:15:31 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 20 09:18:26 2019 +0000"
      },
      "message": "ARM64: Pass simd half floating point feature to VIXL macroassembler.\n\nVIXL requires NEONHalf CPUFeature to emit half floating points\nNEON instructions.\n\nTest: codegen_test\n\nChange-Id: I797d7a27087103491871e86d283f9860d3f20624\n"
    },
    {
      "commit": "986914bfd60c1cace9726e9029598d72cbf279e1",
      "tree": "556e5549254e4d5b280a63451fa8673ab36fba7b",
      "parents": [
        "5697faba0e910374da285f5f848d2aaf7ee6ffec"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Nov 19 01:12:25 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 19 17:15:48 2019 +0000"
      },
      "message": "Revert^4 \"Initial support for adding virtuals with structural redefinition\"\n\nThis reverts commit 2f8c1ac61b0c611d67badea70261c851ed19b82a.\n\nIf there were pending tasks to jit compile a method which is made\nobsolete the JIT would CHECK fail, since the newly obsolete method is\nmarked DontCompile. This didn\u0027t happen with non-structural\nredefinition since in that case the \u0027valid\u0027 ArtMethod always remains\nthe same.\n\nTo fix this we just have the JitTask check if the method it\u0027s\ncompiling is compilable and fail if it\u0027s not.\n\nReason for revert: Fixed JIT check failure.\n\nTest: ./test.py --host\nBug: 134162467\nBug: 144168550\nBug: 144729319\nChange-Id: Ib867b2de13bb4c2978b4538a5851c647caf0e1cc\n"
    },
    {
      "commit": "5697faba0e910374da285f5f848d2aaf7ee6ffec",
      "tree": "196548f63269ebaab95b36fafde11b2abb94a7b5",
      "parents": [
        "feba2643d0a2426e7a10462abcd3d168ee6a61dd"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Nov 19 15:01:02 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 19 16:32:16 2019 +0000"
      },
      "message": "ART: suppress control characters in scripts without a tty\n\nMakes LUCI output slightly more readable.\n\nTest: manual\nChange-Id: I00d51fe3815ded5e1478081e1b170c1eea200e6e\n"
    },
    {
      "commit": "feba2643d0a2426e7a10462abcd3d168ee6a61dd",
      "tree": "50abfac9fff54bb7623edd47db886c8fb3b67444",
      "parents": [
        "26f6330d72e90b3162f8ead17a774a78effc82fc"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 19 13:22:18 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 19 15:47:41 2019 +0000"
      },
      "message": "Make HashSet behave like std::unordered_set...\n\n... instead of std::unordered_multiset. The old behavior is\nunexpected and error prone. CompilerDriver\u0027s attempts to\nprune image classes can fail due to this discrepancy.\n\nAlso avoid using std::iterator\u003c\u003e as it has been deprecated\nin C++17. Note that we erroneously used it as a private base\nclass rather that public, so it was not working anyway.\n\nTest: Add/update tests in hash_set_test.\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nChange-Id: Iaf459724562184cac6915e2b1e0b849371de8b53\n"
    },
    {
      "commit": "26f6330d72e90b3162f8ead17a774a78effc82fc",
      "tree": "55897a392a4eaf43e664cf9be090c8bbcdb1ad92",
      "parents": [
        "a6d7f50d36365e2dc8d19d7b25328b0aff7fd5ce"
      ],
      "author": {
        "name": "Neeraj Solanki",
        "email": "neeraj.solanki@intel.com",
        "time": "Tue Oct 15 14:04:15 2019 +0530"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 19 14:04:33 2019 +0000"
      },
      "message": "Partial loop unrolling during auto-vectorization for x86_64 architectures.\n\nTest: ./test.py --host --64\n\nChange-Id: I5186b025a7343f5b1190c1eb4de1610090d113c8\nSigned-off-by: Neeraj Solanki \u003cneeraj.solanki@intel.com\u003e\n"
    },
    {
      "commit": "a6d7f50d36365e2dc8d19d7b25328b0aff7fd5ce",
      "tree": "74769621a84b90aade5fa57899a8e92d70210ccf",
      "parents": [
        "d56f7d1086b16f32c0771a41a4afb376b5fd3076"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Fri Nov 15 14:15:41 2019 +0000"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Tue Nov 19 12:11:36 2019 +0000"
      },
      "message": "Refactor Javac.java into a new shared library.\n\nThis allows it to be used by other tests. Also add a little extra required\nfunctionality: invoke an annotation processor, request an artifact other\nthan a class file.\n\nBug: 144495446\nTest: atest class2greylisttest\nChange-Id: Ic33c77a3834f3090b32e3fb9b83853261784d906\n"
    },
    {
      "commit": "d56f7d1086b16f32c0771a41a4afb376b5fd3076",
      "tree": "41e048cb90e749ffb7e6496db841d4ca80628b5b",
      "parents": [
        "9965feffb2f55ff1e6dfacd396f65e642c22b799"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Nov 19 06:03:11 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Nov 19 10:28:55 2019 +0000"
      },
      "message": "Revert \"Add spin loop to mutex, overhaul monitor\"\n\nThis reverts commit 0d508a01106746e0d8865752850f4f03bcce1e01.\n\nReason for revert: Preparing revert, in case the art/ci/host-x86_64-cdex-fast failure recurs.\n\nBug: 140590186\n\nChange-Id: I404b6ee498ff4eda73ec3b8fc4bf8e92efb2705f\n"
    },
    {
      "commit": "9965feffb2f55ff1e6dfacd396f65e642c22b799",
      "tree": "e90f112521b2484897dfe22bc53b3d5098ecd314",
      "parents": [
        "ffc791c748dd28cc6bc7fff825b3c1b7af96abb3"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Nov 19 09:23:16 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Nov 19 09:25:20 2019 +0000"
      },
      "message": "Revert \"Temporary hack: Also print extra backtraces on test timeouts on host.\"\n\nThis reverts commit 25d536e67fc69e0413298989f1b21b6fdcece682.\n\nReason for revert: build infra does not have python 3.5, so subprocess.run().\nBug: 142039427\nBug: 144333851\nBug: 144360582\n\nChange-Id: Ide90b3e78a458f6c941c1e36b4f5fb084259f5b1\n"
    },
    {
      "commit": "ffc791c748dd28cc6bc7fff825b3c1b7af96abb3",
      "tree": "384238d8893cd2f2a41b020a91a6ee479bdae663",
      "parents": [
        "2f8c1ac61b0c611d67badea70261c851ed19b82a"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Nov 14 19:19:28 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Nov 19 07:34:07 2019 +0000"
      },
      "message": "dex2oat: add --cpu-set command-line option\n\nEnables affinitizing dex2oat threads to a specific group of CPUs.\n\nBug: 141446571\nTest: art/test/run-test -Xcompiler-option --cpu-set\u003d0,1 956\nTest: art/test/run-test -Xcompiler-option --cpu-set\u003d,0,1 956\nTest: art/test/run-test -Xcompiler-option --cpu-set\u003d,, 956\nTest: art/test/run-test -Xcompiler-option --cpu-set\u003d0,a 956\nTest: cmdline_parser_test\nChange-Id: I4bb1519beacd329da1a69af31982a6154d315865\n"
    },
    {
      "commit": "2f8c1ac61b0c611d67badea70261c851ed19b82a",
      "tree": "97f87c13f69d033cf3f4120af66a7c5391c2da35",
      "parents": [
        "96d8585ebb9e21fc27a59ddd4173ca62ad93c194"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Nov 19 01:09:31 2019 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Nov 19 01:11:18 2019 +0000"
      },
      "message": "Revert^3 \"Initial support for adding virtuals with structural redefinition\"\n\nThis reverts commit 8ba9738d55c11dfb7f85a7de9b1d6a4e1225ad20.\n\nReason for revert: Seems to be failing with `Check failed: method-\u003eIsCompilable()`\n\nTest: None\nBug: 134162467\nBug: 144168550\nBug: 144729319\nChange-Id: Ida9228fa171ae16d803b5ad4438e233a2ed4ffb2\n"
    },
    {
      "commit": "96d8585ebb9e21fc27a59ddd4173ca62ad93c194",
      "tree": "1999d12fadd93aef6c85b0491cda0e40e1d2b433",
      "parents": [
        "8ba9738d55c11dfb7f85a7de9b1d6a4e1225ad20"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Nov 18 18:23:21 2019 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Nov 18 23:19:15 2019 +0000"
      },
      "message": "Revert \"Fix CompilerDriver\u0027s handling of boot image extension.\"\n\nThis reverts commit 96491e9db22806d4343ddcbca97083127b728e0a.\n\nReason for revert: Breaks the local ART build with the master-art\nmanifest with these errors:\n\n  [ 99% 1543/1544] target dex2oat: out/target/product/armv8/data/art-test/arm64/core-interpreter.art\n  FAILED: out/target/product/armv8/data/art-test/arm64/core-interpreter.art\n  […]\n  dex2oatd W 11-18 18:14:42 119587 119587 class_linker.cc:4711] Rejecting class com.android.org.conscrypt.AbstractConscryptEngine that attempts to sub-type erroneous class javax.net.ssl.SSLEngine in /system/framework/conscrypt-testdex.jar\n  dex2oatd F 11-18 18:14:42 119587 119587 compiler_driver.cc:2041] Boot classpath class java.lang.Class\u003ccom.android.org.conscrypt.AbstractConscryptEngine\u003e failed to resolve/is erroneous: state\u003d ErrorResolved\n  Runtime aborting...\n\n  FAILED: out/target/product/armv8/data/art-test/arm64/core.art\n  […]\n  dex2oatd W 11-18 18:14:46 119786 119786 class_linker.cc:4711] Rejecting class com.android.org.conscrypt.JSSEProvider that attempts to sub-type erroneous class java.security.Provider in /system/framework/conscrypt-testdex.jar\n  dex2oatd F 11-18 18:14:46 119786 119786 compiler_driver.cc:2041] Boot classpath class java.lang.Class\u003ccom.android.org.conscrypt.JSSEProvider\u003e failed to resolve/is erroneous: state\u003d ErrorResolved\n  Runtime aborting...\n\nTest: `art/tools/buildbot-build.sh --target` with master-art manifest\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 119800099\nChange-Id: If782420ffe4907e92d2ac90747d66f3d3e1ac127\n"
    },
    {
      "commit": "8ba9738d55c11dfb7f85a7de9b1d6a4e1225ad20",
      "tree": "5aabe6d6af38514af0822ab9529a39f542aaa175",
      "parents": [
        "0d508a01106746e0d8865752850f4f03bcce1e01"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Nov 18 17:52:55 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 18 20:19:43 2019 +0000"
      },
      "message": "Revert^2 \"Initial support for adding virtuals with structural redefinition\"\n\nThis reverts commit d0e354e54da2f2e79b6fc2ff0e13d53c74976b08.\n\nWe were incorrectly continuing to use an ObjPtr over a suspend point\n(in this case a CollectGarbageInternal). This led for the ObjPtr to be\ninvalidated. Instead we should have been using a Handle (that already\nexists).\n\nReason for revert: Fixed stale ObjPtr use.\n\nTest: ./test.py --host\nTest: ./test/testrunner/run_build_test_target.py -j80 art-debug-gc\nBug: 134162467\nBug: 144168550\nBug: 144590579\nChange-Id: Ied9856a707d377e97d34c7450376caf2a0b83255\n"
    },
    {
      "commit": "0d508a01106746e0d8865752850f4f03bcce1e01",
      "tree": "727e9b6a420c3ff1206e97a9ab0369b9947cd797",
      "parents": [
        "25d536e67fc69e0413298989f1b21b6fdcece682"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Aug 30 16:14:32 2019 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Mon Nov 18 18:06:50 2019 +0000"
      },
      "message": "Add spin loop to mutex, overhaul monitor\n\nSince Linux context switch overhead is typically larger than a\nmicrosecond, this may greatly reduce the overhead of waiting for a\nmutex that is only briefly held by another thread. Rather than going\nto sleep and having to be woken back up again, at a cost of several\nmicroseconds, we just spin, hopefully for much less than microsecond,\nuntil the mutex becomes available. It does waste some CPU cycles\nwhen spinning fails, either because the lock is held too long, or\nwe are being scheduled against the thread holding the lock. But we\nexpect those to be unlikely.\n\nWe test the lock only a few times, with pauses in between. It\u0027s\nunclear that\u0027s beneficial; we should perhaps just loop reading\nthe variable. In general, this needs further tuning.\n\nAdd a test that mutual exclusion works, which can also be run as\nlock microbenchmark.\n\nThe old monitor implementation did not benefit much from this, because\nit used mutex only as a low-level lock to protect the monitor data\nstructure. Instead use monitor_lock_ as the actual lock providing\nmutual exclusion for the monitor, i.e. hold onto it while the monitor\nis fatlocked.  Among other things, this requires that the monitor_lock_\nalways be acquired by, or explicitly on behalf of, the thread holding\nthe monitor.\n\nThis in turn makes it really hard to deflate a monitor held by another\nthread. Just stop doing that, since it was unclear whether that\u0027s\nactually beneficial.\n\nThe main advantages of the monitor change are:\n- Half the number of mutex acquisitions.\n- Easier to effectively spin.\n- No possibility of blocking while trying to release a monitor.\n\nNo longer compute owner method and dex pc values on monitor entry\nunless we\u0027re tracing. This was expensive and increased lock hold times\nsufficiently that it often made spinning ineffective.\n\nHave mutex acquisition call futex wait in a loop between updating\nwaiter count. The old way resulted in extra futex wakeups in highly\ncontended situations.\n\nConditionally disable frame size warning for Heap::PreZygoteFork().\nOtherwise the platform doesn\u0027t build with ART_USE_FUTEXES \u003d 0, which\nwe needed for testing.\n\nBased on the new test, this appears to get us about a decimal order\nof magnitude in inflated contended locking performance. Single-threaded\nor scalable applications (i.e. most) should be unaffected. But it should\nprevent applications that do encounter contention from \"falling off a\ncliff\", or at least greatly reduce the height of the cliff. And it\nshould make performance more repeatable by making it less dependent on\nwhether a monitor happens to get inflated.\n\nBug: 111835365\nBug: 140590186\nTest: Successfully built and ran monitor tests. Boots AOSP.\nTest: Build platform with ART_USE_FUTEXES \u003d 0.\nTest: Check contention messages in log after booting AOSP.\nTest: Check systrace output while partially running new test.\n\nChange-Id: Iff7457fff59efcb24e25d35a4ef71b67b8a9082a\n"
    },
    {
      "commit": "25d536e67fc69e0413298989f1b21b6fdcece682",
      "tree": "fa497dbf5ce019cca5c7e84c51a4bba86373f39b",
      "parents": [
        "fcd5a282ceaa6ff4573cb9d08b7e359684943cb2"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Nov 15 13:43:50 2019 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Nov 18 18:02:57 2019 +0000"
      },
      "message": "Temporary hack: Also print extra backtraces on test timeouts on host.\n\nThere is no `debuggerd` on host, and `gdb` may require root\npermissions to run `ptrace()`. Send `SIGQUIT` to ART to ask it to dump\ninformation via its signal handler instead.\n\nTest: Rely on the Android Build (master-art-host) and the ART Buildbot.\nBug: 142039427\nBug: 144333851\nBug: 144360582\nChange-Id: I7d057015d27234c5c2db68c15e1d0103b1c0a9d9\n"
    },
    {
      "commit": "fcd5a282ceaa6ff4573cb9d08b7e359684943cb2",
      "tree": "bbfa258bdde89ace7a6e8142701bed7d691f2bbb",
      "parents": [
        "63786f6b200077975829dbf7f0fa69ffd4a342f7"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Nov 18 16:34:45 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 18 17:52:51 2019 +0000"
      },
      "message": "run-libcore-tests.sh: check for tty\n\nHave vogar suppress color related control characters if script output\nis not to a tty. This is to ease reading logs from the bots.\n\nTest: art/tools/run-libcore-tests.sh --mode host | tee /tmp/log.txt\nTest: art/tools/run-libcore-tests.sh --mode host\nChange-Id: I970647c6f5339090cae4af84402d4a70f2bfb031\n"
    },
    {
      "commit": "63786f6b200077975829dbf7f0fa69ffd4a342f7",
      "tree": "e3555baecdf3270b4b39d0b6539256d90c80946f",
      "parents": [
        "96491e9db22806d4343ddcbca97083127b728e0a"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Nov 18 07:36:35 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 18 17:07:37 2019 +0000"
      },
      "message": "Bump profile version\n\nThere were some changes to the profile format without a version bump.\n\nTest: profile tests\nBug: 139884006\nChange-Id: I4b5c2b1e28ba83b79d98f3fa1b61a2901caf64c4\n"
    },
    {
      "commit": "96491e9db22806d4343ddcbca97083127b728e0a",
      "tree": "c98f671ad008c48af813e94d393d8d645c115e66",
      "parents": [
        "d0e354e54da2f2e79b6fc2ff0e13d53c74976b08"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 15 16:45:25 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 18 13:14:30 2019 +0000"
      },
      "message": "Fix CompilerDriver\u0027s handling of boot image extension.\n\nUpdate a few checks for boot image to also apply to\nboot image extensions.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 119800099\nChange-Id: I7f17686bc22de677d5e2068e6fe5fd2a53e89ce7\n"
    },
    {
      "commit": "d0e354e54da2f2e79b6fc2ff0e13d53c74976b08",
      "tree": "743c595ef2cd94f89b487974e698d18c7d297330",
      "parents": [
        "c0200a984cacb6c0911d046a018cd11c7d20646b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 18 08:37:50 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 18 08:38:15 2019 +0000"
      },
      "message": "Revert \"Initial support for adding virtuals with structural redefinition\"\n\nThis reverts commit 283bb322de84ac570b987c65a1015e2dbcbfad7c.\n\nReason for revert: Test flakes\n\nBug: 134162467\nBug: 144168550\nBug: 144590579\nChange-Id: I2259c030f03a72f6b7bcda10288bd23cb3258164\n"
    },
    {
      "commit": "c0200a984cacb6c0911d046a018cd11c7d20646b",
      "tree": "03a2ab5ac9cf40188d273e37e7648308bf84618c",
      "parents": [
        "283bb322de84ac570b987c65a1015e2dbcbfad7c"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Nov 14 09:01:11 2019 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Sat Nov 16 13:37:39 2019 +0000"
      },
      "message": "Improve profile merging error logging\n\nDo not log an error if the profile version differs. This can happen\nwhen switching boot image profiling on/off and can lead to unhelpful\nlogs.\n\nTest: profile tests\nBug: 139884006\nChange-Id: I4cef4accb786041338aa8c8b82892b70a02a4e03\n"
    },
    {
      "commit": "283bb322de84ac570b987c65a1015e2dbcbfad7c",
      "tree": "18f5d68c78e56a2d398192c8340269a60706b7a0",
      "parents": [
        "2c5dfe16ab2b0f8fbd14dedc161eb4658a8673fc"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Oct 29 11:15:05 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Nov 16 00:26:03 2019 +0000"
      },
      "message": "Initial support for adding virtuals with structural redefinition\n\nInitial implementation of adding virtual methods and non-static fields\nusing structural redefinition. Currently this is limited to \u0027final\u0027,\nnon-finalizable classes. These restrictions will be removed or\nloosened in the future.\n\nAll non-collected instances of the redefined class will be made\nobsolete and reallocated. This can cause significant GC load.\n\nThis feature does not work with any of the -quick opcodes and should\nonly be used with dex files that haven\u0027t undergone dex2dex\ncompilation (that is --debuggable and BCP dex files).\n\nTest: ./test.py --host\nBug: 134162467\nBug: 144168550\n\nChange-Id: Ia401d97395cfe498eb849a661ea9a900dfaa6da3\n"
    },
    {
      "commit": "2c5dfe16ab2b0f8fbd14dedc161eb4658a8673fc",
      "tree": "4e17b6ff7f259e76507cda660aad46ddf67d8795",
      "parents": [
        "a9bbc08daad6d601c870c8493323f57b70373336"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Thu Nov 14 11:22:25 2019 +0000"
      },
      "committer": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Fri Nov 15 23:01:39 2019 +0000"
      },
      "message": "Use packed fields for HeapGraph.\n\nBug: 143874090\nChange-Id: I2c0676f85839dea4d7db6b44f305a44ed05a08ea\n"
    },
    {
      "commit": "a9bbc08daad6d601c870c8493323f57b70373336",
      "tree": "8ca74373cac0fe52aced5f32cc6f6e1f9c3239b5",
      "parents": [
        "56f1332113c3b8b1844c04683b9cb9dc5a0bd346"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Nov 14 14:51:41 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 15 19:17:23 2019 +0000"
      },
      "message": "Implement STL iterators on ObjectArray and add helpers\n\nIterating over an ObjectArray is rather cumbersome, requiring manual\nfor-loops. To improve ergonomics and STL standard-ness this implements\nstd::iterator\u0027s for ObjectArray and converts code to use this (in\nsimple situations). This should allow us to use standard STL functions\nin the future when dealing with ObjectArrays.\n\nAlso adds some helpers such as ZipCount and ZipLeft.\n\nTest: ./test.py --host\nChange-Id: Ifd515b8321775424b3256a6faf47b2ba970177d3\n"
    },
    {
      "commit": "56f1332113c3b8b1844c04683b9cb9dc5a0bd346",
      "tree": "849942dca13874ef8e86f6ad9cce76ad5152b429",
      "parents": [
        "3e20d0a7748c8810bff9fe99298758930fbe5300"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 15 14:07:19 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 15 17:42:51 2019 +0000"
      },
      "message": "Fix pruning invoke environment for StringBuilder append pattern.\n\nTest: Extra test in 697-checker-string-append\nTest: testrunner.py --host --optimizing\nBug: 19575890\nBug: 144300699\nChange-Id: I3934eb01a62dbbed8b8f9f94ce3ba02051538bb0\n"
    },
    {
      "commit": "3e20d0a7748c8810bff9fe99298758930fbe5300",
      "tree": "35e3a5981f2a996b98c1c8798610852c293a2fbb",
      "parents": [
        "8cdcd4fab6ffd88a6814016249ae85b5be67aba7"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Nov 12 20:31:33 2019 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Nov 15 17:35:33 2019 +0000"
      },
      "message": "Reduce boot profile data usage\n\n- remove inline caches from boot profiles (they are not used)\n- remove some flags that will not provide much value.\n\nTest: profile tests\nBug: 139884006\nChange-Id: I063ff339e266637c987e05cdb16e18935f6c1e15\n"
    },
    {
      "commit": "8cdcd4fab6ffd88a6814016249ae85b5be67aba7",
      "tree": "b3d75b276363fd355995db80dbda3d397c9d1e57",
      "parents": [
        "4813618470e48290ba92a5944a2896fccd8aa3a4"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Nov 12 20:27:49 2019 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Nov 15 17:35:33 2019 +0000"
      },
      "message": "Increase the maximum allowed dex files for boot image profiles\n\nBoot image profiles aggregate data from a lot of apps and could easily\nexceed the previous 255 dex file limit. In general a boot profile may\ncontain number_of_bootclasspath_elems * number_of_apps_on_device dex\nfiles.\n\nTo cope up with this, we increase the max allowed number of dex files to\n2^16. The regular profiles will keep the same low limit (255) to save ram\nand space.\n\nA side effect of this change is that in-memory representation of boot\nprofiles during serialization increases substantially. However, we merge\nboot profiles only during idle-maintenance mode and we can afford a higher\nceiling.\n\nTest: profile test\nBug: 139884006\nChange-Id: Icdfdac8f2e4c2935692beacc8037911b64461eee\n"
    },
    {
      "commit": "4813618470e48290ba92a5944a2896fccd8aa3a4",
      "tree": "46ba71ac3ac26d3175428a258ed43cd3d700853b",
      "parents": [
        "889b72d80e192a2e30698f9966a4a7171a1c1df8"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Nov 15 13:39:03 2019 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Nov 15 14:59:29 2019 +0000"
      },
      "message": "Add missing bug number to TODO in `build/apex/art_apex_test.py`.\n\nTest: n/a\nBug: 123602136\nChange-Id: I0a03a2a8f8ad233358139f11df585875b81ac097\n"
    },
    {
      "commit": "889b72d80e192a2e30698f9966a4a7171a1c1df8",
      "tree": "d325bfb4ff44ffaf49650f32a2cfafbaa9f43603",
      "parents": [
        "afaa457b6f56c6d3bff9dce9b314825f4726fdf9"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 12 11:01:13 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 15 10:34:24 2019 +0000"
      },
      "message": "Load classes for boot image extension.\n\nPreviously we actually failed to load and initialize classes\nfor boot image extensions. Though some classes may have been\nresolved by other code paths, extension art files did not\ncontain the intended classes. This CL fixes that and some\nother bugs that were exposed by this class initialization.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I63a1970f7ff45dc37b14ebd24c5a68f3edacd6ef\n"
    },
    {
      "commit": "afaa457b6f56c6d3bff9dce9b314825f4726fdf9",
      "tree": "e6a4482549961b83f225dd289dda21df5ede0b7e",
      "parents": [
        "1592cfc31c4a5b898bd93ca5cdc36b8ea57e2208"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Tue Nov 12 13:03:50 2019 +0900"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 15 05:23:31 2019 +0000"
      },
      "message": "Migrate to apex_manifest.pb\n\nFixing some references to apex_manifest.json.\napex_manifest.json is only for Q-compatibility.\n\nBug: 143951586\nTest: m \u0026 flash \u0026 boot\nChange-Id: I93b149d51b9b3f9b1f20e4a807c30555b6d53b7f\n"
    },
    {
      "commit": "1592cfc31c4a5b898bd93ca5cdc36b8ea57e2208",
      "tree": "ad5edd191089baecd30d9b2abd750dc4a7baf741",
      "parents": [
        "d830263af8b612b9c00fb4ceb50f1815df9a039d"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Nov 13 17:52:33 2019 -0800"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Fri Nov 15 04:21:41 2019 +0000"
      },
      "message": "Add mark-stack related assertions in marking phase\n\nTest: art/test/testrunner/testrunner.py\nBug:144408451\nBug:140119552\nChange-Id: Ic2d4bbef939e4f2a020e2492683a7b8cc35b9a6e\n"
    },
    {
      "commit": "d830263af8b612b9c00fb4ceb50f1815df9a039d",
      "tree": "16cbd33fd597144bd418ecf423bc03913e9b5bd0",
      "parents": [
        "52f8e5c2d3f9a475f6877b716642cf2af41dd4d7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 14 13:16:16 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 14 17:09:18 2019 +0000"
      },
      "message": "Fix image checksum verification.\n\nMove over the separator \u0027:\u0027 for checking subsequent dex file\nchecksums. The bug, introduced in\n    https://android-review.googlesource.com/1091189 ,\ncaused rejection of oat files if the boot class path had\nmore than one module that was not part of the boot image.\n\nTest: Add a new test to image_space_test.\nTest: Manual fake OTA with extra logging for checksum mismatch.\nBug: 119800099\nBug: 144146443\nChange-Id: I9eb8328348b30ee4769468924f9e6ac65b70d4cb\n"
    },
    {
      "commit": "52f8e5c2d3f9a475f6877b716642cf2af41dd4d7",
      "tree": "1f589f16e497675a4ae3daf6445d5aa8b0bd7bfd",
      "parents": [
        "2221bafe9ad4f7f69d8dc67fa19aaee0f2e51bcd"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Nov 13 17:30:27 2019 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Nov 14 15:11:39 2019 +0000"
      },
      "message": "ARM64: Move from FPRegister to VRegister based API (continued).\n\nMove newly added occurrences of `vixl::aarch64::FPRegister` to\n`vixl::aarch64::VRegister` in `compiler/optimizing/intrinsics_arm64.cc`.\n\nTest: test.py --host --optimizing --jit --gtest\nTest: test.py --target --optimizing --jit\nTest: run-gtests.sh\nChange-Id: I32010cc4c44212f49facf96b50a3d59f3333b4b1\n"
    },
    {
      "commit": "2221bafe9ad4f7f69d8dc67fa19aaee0f2e51bcd",
      "tree": "d5f0bb16efdef93fc50dbcc9390874cbc684d7c5",
      "parents": [
        "b8012103855f50651bbe2e6d5f2ff3079afccbc9"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Nov 13 12:35:20 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 13 21:59:46 2019 +0000"
      },
      "message": "Add ForkJoinPool* threads to 911 Ignored regex\n\nCTS tests now sometimes have a ForkJoinPool thread live during test\nrunning. This thread needs to be ignored by our test.\n\nTest: ./test.py --host\nTest: atest CtsJvmtiRunTest911HostTestCases\nBug: 144234269\nChange-Id: I3e9d64903f680ecdd6994d5ae1f1fa6362feda10\n"
    },
    {
      "commit": "b8012103855f50651bbe2e6d5f2ff3079afccbc9",
      "tree": "085fc7431f9856ae55a1bc0385092043186895d9",
      "parents": [
        "94fd9eaee76e862932dded6583a9c052e5aa9efc"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Nov 13 01:41:04 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 13 20:55:58 2019 +0000"
      },
      "message": "Revert^2 \"Correctly quote -Xbootclasspath argument in run-test-jar\"\n\nThis reverts commit a8a17a4b92b290892627f0ccc38973c847e0a7fb.\n\nThis limits the quoting to only --gdbserver, which is the one case\nwhere we know there is a problem with the glob characters.\n\nReason for revert: Fixed issue causing debug-gc to fail\nTest: ./test.py --host\nTest: ./test/testrunner/run_build_test_target.py art-debug-gc\nTest: ./test/run-test --host --strace --64 001-HelloWorld\n\nChange-Id: I60f40d21b08b0514c24ac6a3db260aad19a539b8\n"
    },
    {
      "commit": "94fd9eaee76e862932dded6583a9c052e5aa9efc",
      "tree": "26638e055a87784bd4d05fac144f644a64a99320",
      "parents": [
        "149cddaa22a1a78e8dde179d2c33b745cb500629"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Oct 24 16:57:34 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 13 17:50:14 2019 +0000"
      },
      "message": "Use a different name for shared classloader namespace, to help debugging.\n\nTest: atest libnativeloader_test\nBug: 130388701\nChange-Id: I6dbb53cac7fb7ac8fb5178611a164c83c2ab59ba\n"
    },
    {
      "commit": "149cddaa22a1a78e8dde179d2c33b745cb500629",
      "tree": "af751d1b98fad44a2742089c6928677261f9f580",
      "parents": [
        "fdbe207596c11cf84c23855123d87ea6e15b70ff"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 12 15:02:51 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 13 11:52:43 2019 +0000"
      },
      "message": "Check stored references in transactional interpreter.\n\nFor boot image extension, we need to reject references to\nclasses that are defined in a dex file belonging to the boot\nimage we\u0027re compiling against but not actually in the boot\nimage. Allowing such references could yield duplicate class\nobjects from multiple extensions.\n\nTest: Additional tests in transaction_test.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --interp-ac\nChange-Id: I99eaec331f6d992dba60aeb98a88c268edac11ac\n"
    },
    {
      "commit": "fdbe207596c11cf84c23855123d87ea6e15b70ff",
      "tree": "6ed58d4c80bfeb9d8333d74e252c171568f85a87",
      "parents": [
        "af9ab6de388c14cc42166ab3fab30e2dac0b8693"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Nov 11 15:52:45 2019 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Nov 13 10:34:37 2019 +0000"
      },
      "message": "Better handle the Host APEX case in `build/apex/art_apex_test.py`.\n\nAssume a Host APEX has a Debug flavor by default, and abort if another\nflavor (Release or Testing) is explicitly specified.\n\nTest: art/build/apex/runtests.sh\nTest: art/build/apex/runtests.sh -t (was broken before this change)\nBug: 142938159\nBug: 139277987\nChange-Id: Ifcbc07f9e81adbd394242b0c80f09a590db22554\n"
    },
    {
      "commit": "af9ab6de388c14cc42166ab3fab30e2dac0b8693",
      "tree": "d654bb01f6e1408744d917ebb78beef6317a1fca",
      "parents": [
        "688ff644f023e91cb50709306f4c8eb713632f64"
      ],
      "author": {
        "name": "Chuwei Xu",
        "email": "xucw@motorola.com",
        "time": "Tue Nov 05 22:06:01 2019 +0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 13 10:19:40 2019 +0000"
      },
      "message": "art: extend the supported cpu_variant list for arm64\n\nadd kryo300 to the supported cpu_variant list\n\nBug: b/143929263\nChange-Id: I2eb4ec0e98f84f19270b8555696191ff1aa8ac0a\n"
    },
    {
      "commit": "688ff644f023e91cb50709306f4c8eb713632f64",
      "tree": "182c5b9d119dacb6294f8870122b8a48c69f3872",
      "parents": [
        "df66de0b5e3fda8ff7af2b39cb133e38884ce958"
      ],
      "author": {
        "name": "Ian Zerny",
        "email": "zerny@google.com",
        "time": "Mon Nov 04 18:42:09 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 13 08:48:39 2019 +0000"
      },
      "message": "Update 913-heaps expectation for change in D8 register assignments.\n\nTest: testrunner.py --host -t 913\nChange-Id: I36f4e1bc4cf02612ca82c461b39e2064d8d0b340\n"
    },
    {
      "commit": "df66de0b5e3fda8ff7af2b39cb133e38884ce958",
      "tree": "7fe5da3868ff9414e2bb2ca05ef0c03b2941d5b7",
      "parents": [
        "a8a17a4b92b290892627f0ccc38973c847e0a7fb"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Nov 11 23:22:15 2019 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Nov 13 08:33:25 2019 +0000"
      },
      "message": "Update expectations around APEX manifests in `art_apex_test.py`.\n\nRecent changes broke ART\u0027s Host APEX checks. Adjust and increase them by:\n- checking for the Protocol Buffers APEX manifest (in all APEXes);\n- no longer checking for the (Android Q compatible) JSON APEX\n  manifest (even in target APEXes).\n\nTest: art/build/apex/runtests.sh\nBug: 143654022\nBug: 139277987\nChange-Id: I4afc23d56fe90aaf447f334bde3bc0117f12d1aa\n"
    },
    {
      "commit": "a8a17a4b92b290892627f0ccc38973c847e0a7fb",
      "tree": "4a21892770798756ab9b8846685e5438e6010920",
      "parents": [
        "682715ee1448959801640975005abb8b876b80b3"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Nov 13 01:37:32 2019 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Nov 13 01:39:32 2019 +0000"
      },
      "message": "Revert \"Correctly quote -Xbootclasspath argument in run-test-jar\"\n\nThis reverts commit cb809bb89eca9889a7ad443372e6a918f3c14650.\n\nReason for revert: failing debug-gc it seems.\n\nChange-Id: I7f56e22a7075a4160d9082cb8fcb8b414cd67607\nTest: None\n"
    },
    {
      "commit": "682715ee1448959801640975005abb8b876b80b3",
      "tree": "db230f9af26acef7d5fd30317429432fa924a183",
      "parents": [
        "be08b201e20900d590c235eb7a933ace2212ccbc"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Nov 11 18:45:29 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 13 01:35:34 2019 +0000"
      },
      "message": "Set system server package name to \"android\" when profiling\n\nSystem server does not set a value for it\u0027s runtime package name.\nConfigure it before we start the profile saver so that we can annotate the\nsamples with a proper name.\n\nTest: manual\nBug: 139884006\nChange-Id: Id09cf493b9e7227f85d0c7554aef248253f2a44d\n"
    },
    {
      "commit": "be08b201e20900d590c235eb7a933ace2212ccbc",
      "tree": "1932acf878722cc266601968e58ca1ebc51ee365",
      "parents": [
        "48297337eb1e44b0d9a3c5e9211ef9080eb406a8"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Nov 12 20:11:00 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 13 00:38:15 2019 +0000"
      },
      "message": "Fix libnativeloader_test to work on 64 bit architectures.\n\nTest: atest -a libnativeloader_test (on taimen, testing both arm64-v8a and armeabi-v7a)\nBug: 142896688\nChange-Id: I90e24b6da8f02ff57d498685312709ac3c598e68\n"
    },
    {
      "commit": "48297337eb1e44b0d9a3c5e9211ef9080eb406a8",
      "tree": "cb10eb0dd62c5474e583c0fb8c6934076be9b5c2",
      "parents": [
        "ad88cbe5ac72e318d998bc16fc43d75522e13a3a"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Nov 12 21:21:32 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 13 00:38:15 2019 +0000"
      },
      "message": "Avoid \"using namespace\" that\u0027s blocked by cpplint.\n\nTest: m libnativeloader_test\nBug: 142897320\nChange-Id: I1d74f54638a0d2dfa1935590124b3266a064c04a\n"
    },
    {
      "commit": "ad88cbe5ac72e318d998bc16fc43d75522e13a3a",
      "tree": "f8a54f6d3d1a147e4d9074a5918ae0becf318511",
      "parents": [
        "0f6bde0ee40de32e404d5c7882fe8c8aa47de0a3"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Nov 11 18:43:15 2019 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Nov 13 00:33:20 2019 +0000"
      },
      "message": "Handle profile annotation during profman-merge\n\nWhen merging via profman we need to consider the presence of annotations\nduring data filtering. The profile key contains more than just the file\nname, and as such it needs some processing when compared to the apk\nlocations.\n\nTest: profile_assistant_test\nBug: 139884006\nChange-Id: Ic35814f7e2eebfa9b92126b9d527159754412d9a\n"
    },
    {
      "commit": "0f6bde0ee40de32e404d5c7882fe8c8aa47de0a3",
      "tree": "86ee936d14a432290aa54f1b15e775bf757801be",
      "parents": [
        "83aacb23d88c3df3d7fe655655b715f8229078f9"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Nov 11 18:38:10 2019 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Nov 13 00:33:20 2019 +0000"
      },
      "message": "Adjust profile version when the boot image profiling is switched on\n\nThe current profile version needs to be updated if the boot image\nprofiling was switched on dynamically. Otherwise we will not be able to\nadd new data to the file since we will have a version mismatch.\n\nTest: manual \u0026 profile_compilation_info_test\nBug: 139884006\nChange-Id: I85e9970c5e26d3f2144a644e7052f2b6a433e1db\n"
    },
    {
      "commit": "83aacb23d88c3df3d7fe655655b715f8229078f9",
      "tree": "5b9f3e008868e9454eb1bfe5c74388ebb67a57a1",
      "parents": [
        "0e82e0f089944079f1f664a748abe11fcad73e97"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Nov 11 18:35:02 2019 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Nov 13 00:33:20 2019 +0000"
      },
      "message": "Print profile version when dumping the info\n\nTest: manual\nBug: 139884006\nChange-Id: I0bf8843587e5c548dfbf015e128644735c358a45\n"
    },
    {
      "commit": "0e82e0f089944079f1f664a748abe11fcad73e97",
      "tree": "0f301c30756c0f57f3a7f8d29525a25acc3d27fe",
      "parents": [
        "cb809bb89eca9889a7ad443372e6a918f3c14650"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Nov 11 18:34:10 2019 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Nov 13 00:33:20 2019 +0000"
      },
      "message": "Add more options for boot profile aggregation\n\n1) force_merge - ensure we merge the data even if it\u0027s just a few methods\n2) boot_image_merge - ignore non-boot-profiles (in case the app didn\u0027t\nhave the chance to pick app the new format after the flag switch)\n\nTest: profile_assistant_test\nBug: 139884006\nChange-Id: Icf7a9a8edac64bac69d16937bc2496bf610f10c8\n"
    },
    {
      "commit": "cb809bb89eca9889a7ad443372e6a918f3c14650",
      "tree": "7aba43ca4009dbcf30363836e542a8fe82283d0e",
      "parents": [
        "681692b6291008caaddf4971eab7ea9f9b25d9ca"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Nov 11 15:16:28 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 12 22:04:55 2019 +0000"
      },
      "message": "Correctly quote -Xbootclasspath argument in run-test-jar\n\nWe were passing shell glob-characters to dalvikvm but didn\u0027t always\nquote them correctly. This could cause issues as tools like gdb would\ntry (and fail) to expand them.\n\nTest: ./test.py --host --optimizing\nTest: ./test/run-test --host --gdbserver --64 001-HelloWorld\nChange-Id: Id20ace4be0b71582de3a500282a7f59c71f366f1\n"
    },
    {
      "commit": "681692b6291008caaddf4971eab7ea9f9b25d9ca",
      "tree": "cad26b5b6016cc27baa480e5f4b83faac3317ef0",
      "parents": [
        "665aac46784684dfb85fe999f6a566ed0cf173ef"
      ],
      "author": {
        "name": "Usama Arif",
        "email": "usama.arif@linaro.org",
        "time": "Wed Oct 30 16:23:26 2019 +0000"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Nov 12 20:58:17 2019 +0000"
      },
      "message": "ARM64: FP16.rint() intrinsic for ARMv8\n\nThis CL implements an intrinsic for rint() method with\nARMv8.2 FP16 instructions.\n\nThis intrinsic implementation achieves bit-level compatibility with the\noriginal Java implementation android.util.Half.rint().\n\nThe time required in milliseconds to execute the below code on Pixel3:\n- Java implementation android.util.Half.rint():\n    - big cluster only: 19828\n    - little cluster only: 61457\n- arm64 Intrinisic implementation:\n    - big cluster only: 14186 (~28% faster)\n    - little cluster only: 54405 (~11% faster)\n\nAnalysis of this function with simpleperf showed that approximately only\n60-65% of the time is spent in libcore.util.FP16.rint. So the percentage\nimprovement using intrinsics is likely to be more than the numbers stated\nabove.\n\nAnother reason that the performance improvement with intrinsic is lower\nthan expected is because the java implementation for values between -1 and\n1 (abs \u003c 0x3c00) only requires a few instructions and should almost give\na similar performance to the intrinsic in this case. In the benchmark function\nbelow, 46.8% of the values tested are between -1 and 1.\n\npublic static short benchmarkrint(){\n    short ret \u003d 0;\n    long before \u003d 0;\n    long after \u003d 0;\n    before \u003d System.currentTimeMillis();\n    for(int i \u003d 0; i \u003c 50000; i++){\n        for (short h \u003d Short.MIN_VALUE; h \u003c Short.MAX_VALUE; h++) {\n            ret +\u003d FP16.rint(h);\n        }\n    }\n    after \u003d System.currentTimeMillis();\n    System.out.println(\"Time of FP16.rint (ms): \" + (after - before));\n    System.out.println(ret);\n    return ret;\n}\n\nTest: 580-fp16\nTest: art/test/testrunner/run_build_test_target.py -j80 art-test-javac\nChange-Id: I075c3e85a36fd9bce14deee437c5b961bd667b5d\n"
    },
    {
      "commit": "665aac46784684dfb85fe999f6a566ed0cf173ef",
      "tree": "343d6956068b1c21e0fc4af018e1322d7685411b",
      "parents": [
        "b9f02c2f8624bbf0746939e3b2735a1537a567b6"
      ],
      "author": {
        "name": "Usama Arif",
        "email": "usama.arif@linaro.org",
        "time": "Tue Oct 29 11:13:18 2019 +0000"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Nov 12 20:58:17 2019 +0000"
      },
      "message": "ARM64: FP16.ceil() intrinsic for ARMv8\n\nThis CL implements an intrinsic for ceil() method with\nARMv8.2 FP16 instructions.\n\nThis intrinsic implementation achieves bit-level compatibility with the\noriginal Java implementation android.util.Half.ceil().\n\nThe time required in milliseconds to execute the below code on Pixel3:\n- Java implementation android.util.Half.ceil():\n    - big cluster only: 19447\n    - little cluster only: 62638\n- arm64 Intrinisic implementation:\n    - big cluster only: 14260 (~27% faster)\n    - little cluster only: 54387 (~13% faster)\n\nAnalysis of this function with simpleperf showed that approximately only\n60-65% of the time is spent in libcore.util.FP16.ceil. So the percentage\nimprovement using intrinsics is likely to be more than the numbers stated\nabove.\n\nAnother reason that the performance improvement with intrinsic is lower\nthan expected is because the java implementation for values between -1 and\n1 (abs \u003c 0x3c00) only requires a few instructions and should almost give\na similar performance to the intrinsic in this case. In the benchmark function\nbelow, 46.8% of the values tested are between -1 and 1.\n\npublic static short benchmarkCeil(){\n    short ret \u003d 0;\n    long before \u003d 0;\n    long after \u003d 0;\n    before \u003d System.currentTimeMillis();\n    for(int i \u003d 0; i \u003c 50000; i++){\n        for (short h \u003d Short.MIN_VALUE; h \u003c Short.MAX_VALUE; h++) {\n            ret +\u003d FP16.ceil(h);\n        }\n    }\n    after \u003d System.currentTimeMillis();\n    System.out.println(\"Time of FP16.ceil (ms): \" + (after - before));\n    System.out.println(ret);\n    return ret;\n}\n\nTest: 580-fp16\nTest: art/test/testrunner/run_build_test_target.py -j80 art-test-javac\nChange-Id: I5474c1d0d7c08ec77a6f82c4fb67f555253bfa67\n"
    },
    {
      "commit": "b9f02c2f8624bbf0746939e3b2735a1537a567b6",
      "tree": "ac6ad1f4125bd459a3b424cb5ff8b8029a3d5c7e",
      "parents": [
        "f1b18facd1edd6c8652c42085c5432c878507c8e"
      ],
      "author": {
        "name": "Usama Arif",
        "email": "usama.arif@linaro.org",
        "time": "Fri Oct 25 17:37:33 2019 +0100"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Tue Nov 12 20:58:17 2019 +0000"
      },
      "message": "ARM64: FP16.floor() intrinsic for ARMv8\n\nThis CL implements an intrinsic for floor() method with ARMv8.2 FP16\ninstructions. This intrinsic calls a template GenerateFP16Round function\nwhich will be used to implement other intrinisics such as ceil and\nrint.\n\nThis intrinsic implementation achieves bit-level compatibility with the\noriginal Java implementation android.util.Half.floor().\n\nThe time required in milliseconds to execute the below code on Pixel3:\n- Java implementation android.util.Half.floor():\n    - big cluster only: 18623\n    - little cluster only: 60424\n- arm64 Intrinisic implementation:\n    - big cluster only: 14213 (~24% faster)\n    - little cluster only: 54398 (~10% faster)\n\nAnalysis of this function with simpleperf showed that approximately only\n60-65% of the time is spent in libcore.util.FP16.floor. So the percentage\nimprovement using intrinsics is likely to be more than the numbers stated\nabove.\n\nAnother reason that the performance improvement with intrinsic is lower\nthan expected is because the java implementation for values between -1 and\n1 (abs \u003c 0x3c00) only requires a few instructions and should almost give\na similar performance to the intrinsic in this case. In the benchmark function\nbelow, 46.8% of the values tested are between -1 and 1.\n\npublic static short benchmarkFloor(){\n    short ret \u003d 0;\n    long before \u003d 0;\n    long after \u003d 0;\n    before \u003d System.currentTimeMillis();\n    for(int i \u003d 0; i \u003c 50000; i++){\n        for (short h \u003d Short.MIN_VALUE; h \u003c Short.MAX_VALUE; h++) {\n            ret +\u003d FP16.floor(h);\n        }\n    }\n    after \u003d System.currentTimeMillis();\n    System.out.println(\"Time of FP16.floor (ms): \" + (after - before));\n    System.out.println(ret);\n    return ret;\n}\n\nTest: 580-fp16\nTest: art/test/testrunner/run_build_test_target.py -j80 art-test-javac\n\nChange-Id: Iad1dd032d456af54932f13c5cf27228f8652a0b5\n"
    },
    {
      "commit": "f1b18facd1edd6c8652c42085c5432c878507c8e",
      "tree": "856465341f025debf8a526490c7f00cee06d3694",
      "parents": [
        "2462789806df0281c52fa9bb60fa37fe3ff606b6"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Nov 11 14:22:00 2019 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Nov 11 14:33:19 2019 -0800"
      },
      "message": "Use explicit list of mirrored class when checking CanRedefine\n\nWe were assuming that the ClassRoots contained all the mirror\u0027d\nclasses but this is not the case. Instead we should use an explicit\nlist of the mirror\u0027d classes.\n\nTest: ./test.py --host\nTest: m test-art-host-gtest-class_linker_test64\nBug: 134162467\n\nChange-Id: Idd4c258ee0134e42afd0175b948123ea052704e1\n"
    },
    {
      "commit": "2462789806df0281c52fa9bb60fa37fe3ff606b6",
      "tree": "a26da1d669e88b34b10b0f6c76b06abd8b694473",
      "parents": [
        "28b6efed2c2e38d3df787f8f68e2b8d55efabd06"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Nov 06 10:28:21 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 11 16:58:12 2019 +0000"
      },
      "message": "Ensure structural redefinition can shadow functions/fields\n\nPreviously when we structurally redefined a class and a new field or\nfunction shadowed a super type field or function the shadowed version\nmight still get called. This was due to the old version remaining in\nthe dex-caches of other classes. To fix this we just remove from all\ndex-caches any entries that might be (invisibly) shadowed by a new\nfunction/field. This is any non-virtual methods or non-private field\nof a supertype of the redefined class with the same name \u0026 signature\nas a method/field in the redefined class.\n\nTest: ./test.py --host\nBug: 134162467\n\nChange-Id: Iae8e7a3e7f8ecedbd2f314816b140156fce3e5fd\n"
    },
    {
      "commit": "28b6efed2c2e38d3df787f8f68e2b8d55efabd06",
      "tree": "ae82be3edc0277cc7614df2ec3cc56c852744ca7",
      "parents": [
        "2764f615865d65592d03276325fd2602fea2ed08"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Nov 06 12:49:41 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 11 16:58:12 2019 +0000"
      },
      "message": "Don\u0027t visit invalid Dex-cache slots\n\nWe were incorrectly visiting invalid dex-cache slots during\nVisitReflectiveTargets. This didn\u0027t cause any real problems but it is\nneither expected nor useful.\n\nTest: ./test.py --host\nBug: 134162467\nChange-Id: I2dedbcff66bfb4fa093d23ea79e1054aa5a9636b\n"
    },
    {
      "commit": "2764f615865d65592d03276325fd2602fea2ed08",
      "tree": "25d407375e6adb2e00e39be3d794d4244bd1ba9f",
      "parents": [
        "1c5949ee99d5eb01ea9abe706cf372d59f02e891"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Nov 11 14:36:20 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 11 16:29:31 2019 +0000"
      },
      "message": "MethodHandles: fix missing nominal type return value conversion\n\nFixes missing adaption path when a method handle has a nominal type\nset from MH.asType().\n\nBug: 113855305\nTest: art/test/run-test --host 956\nChange-Id: Id203e5ab6bd5df03fd728944f52f6e267c3a38f3\n"
    },
    {
      "commit": "1c5949ee99d5eb01ea9abe706cf372d59f02e891",
      "tree": "a0ebfcfc2c651bd46e1bbb98e11f1f98b4a5cdab",
      "parents": [
        "7a20cbdd42fbab5ad562bf98b867c533b0a12164"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Mon Nov 04 19:36:00 2019 +0000"
      },
      "committer": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Mon Nov 11 13:04:11 2019 +0000"
      },
      "message": "libicu_jni needs to be initialized before libopenjdk{d}\n\njava.lang.System, which implements System.loadLibrary, depends on ICU4CMetadata.\nThus, libicu_jni has to be loaded before libopenjdk, which initializes java.lang.System. Otherwise, the device fails to boot.\nSee b/143888405 for details.\n\nBug: 138994281\nBug: 143888405\nTest: device boots\nChange-Id: I3d6691be012601368820c3de717ee1268b6b7ca9\n"
    },
    {
      "commit": "7a20cbdd42fbab5ad562bf98b867c533b0a12164",
      "tree": "4b06320aa680cf43d4402a652043f40bae0a26a6",
      "parents": [
        "2022debc5fc2e72b5be359e94728308ef5edf09a"
      ],
      "author": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Fri Nov 08 11:27:31 2019 +0000"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Mon Nov 11 10:30:10 2019 +0000"
      },
      "message": "Revert^4 \"Package dexpreopt artifacts for libcore jars in the ART apex.\"\n\nThis reverts commit 0f7c792f12905558836cc01f3406d6ba364cefd7.\n\nReason for revert: coverage build with EMMA_INSTRUMENT_FRAMEWORK\u003dtrue\nis fixed by inspecting the environment variable and not generating\nboot image in case it is set.\n\nThis patch set adds precompiled dexpreopt files for the libcore part\nof boot class path in the ART apex. The dexpreopt files are packaged\nin javalib/$ARCH/ subdirectory and have names prefixed with \u0027boot\u0027\nto match the boot image on the system partition.\n\nTest: m\nTest: art/build/apex/runtests.sh\n\nBug: 144091989\nChange-Id: I8378f42708a64339b0c9d70fd0d7804bc885859e\n"
    },
    {
      "commit": "2022debc5fc2e72b5be359e94728308ef5edf09a",
      "tree": "3ea18f218ce59b87fbd2de85e44edd59d2ec06ad",
      "parents": [
        "ef3baf689b6bd8d4d0a72d18317684171304a235"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 11 09:27:30 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 11 09:27:30 2019 +0000"
      },
      "message": "Blacklist tests that require getrandom.\n\nTest: libcore\nBug: 141230711\nChange-Id: I0674172308eb44d26f847bea3e23b91bb9319820\n"
    },
    {
      "commit": "ef3baf689b6bd8d4d0a72d18317684171304a235",
      "tree": "836423b3d50d8bffdd0190ef84983a9d825bdfef",
      "parents": [
        "92eec3a90282edf30ca1535d58a4b52294ba7e76"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Nov 07 15:46:45 2019 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Sat Nov 09 00:36:10 2019 +0000"
      },
      "message": "Refactor script, add new options\n\nRefactored the trace processing script to use argument parsing, etc.,\nand improve the structure.  Then added several command line options to\nfilter and provide different views.\n\nBug: none\nTest: run the script on a trace, view the flame graph\nChange-Id: I66805829c9e7212b2f69b3556134036f8dd21bc2\n"
    },
    {
      "commit": "92eec3a90282edf30ca1535d58a4b52294ba7e76",
      "tree": "27b05f588a5286f5b08b33f7a57b20544841f5ef",
      "parents": [
        "4f7c0cc6b272f9998074d0cde36b24bdd7b06bf9"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 05 10:59:36 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 08 14:46:52 2019 +0000"
      },
      "message": "Add boot image checksums to image header.\n\nThis adds an early validity check, so that we do not need to\nload an image extension and oat file before we can discard\nthem as out-of-date based on the checksums from oat header.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing --interp-ac\nBug: 119800099\nChange-Id: I951e8429f8dde73f3fc41c36dffe5a657a0db62b\n"
    },
    {
      "commit": "4f7c0cc6b272f9998074d0cde36b24bdd7b06bf9",
      "tree": "dd732c75952f863c9a63c566b68a06977e6d387a",
      "parents": [
        "64bac15658065a8cdcfdc118e9b374dffbcf557c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 08 13:11:49 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 08 13:11:49 2019 +0000"
      },
      "message": "Disable zygote-jit-deopt under gcstress while investigating timeouts.\n\nTest: zygote-jit-deopt\nBug: 137887811\nChange-Id: Idde7e64eef910c65719d1274c3193eb90cee91b3\n"
    },
    {
      "commit": "64bac15658065a8cdcfdc118e9b374dffbcf557c",
      "tree": "7edf0aefc141536194662e935467591f373b9507",
      "parents": [
        "62f62f38f40199ecb32632194b7a529b2aa2f839"
      ],
      "author": {
        "name": "Usama Arif",
        "email": "usama.arif@linaro.org",
        "time": "Mon Oct 28 12:11:21 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 08 10:41:28 2019 +0000"
      },
      "message": "Restructure 580-fp16 tests into functions\n\nThere are a lot of tests present in main and their number is increasing.\nRestructure these into functions to make it easier to find related tests.\n\nTest: 580-fp16\nTest: art/test/testrunner/run_build_test_target.py -j80 art-test-javac\nChange-Id: I8d0e766d1ebab0cf6d6829300a1d09c4a2244365\n"
    },
    {
      "commit": "62f62f38f40199ecb32632194b7a529b2aa2f839",
      "tree": "57cd9d3780d1af2ddddf1944da9cb9464b5807e1",
      "parents": [
        "0d81f5bb4e90b5c01e7cd2799cb341ad2af1bd01"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Nov 05 15:55:45 2019 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Nov 08 05:07:32 2019 +0000"
      },
      "message": "Disable -Wthread-safety-negative\n\nART used to turn on -Wthread-safety-negative, but at some point the\nbuild started adding -Wno-thread-safety-negative later on the command\nline.  That is being fixed, but causes new warnings in ART.  Disable\n-Wthread-safety-negative for now.\n\nBug: 144045034\nTest: mma\nChange-Id: I3a2edd4472b6ff7beff08289c45997694f543668\n"
    },
    {
      "commit": "0d81f5bb4e90b5c01e7cd2799cb341ad2af1bd01",
      "tree": "6b2b3db2a9af13705c89bc8090f6ed95860b877c",
      "parents": [
        "d3d00c06a439f5204b290505a3333f780dd00bce"
      ],
      "author": {
        "name": "Nick Desaulniers",
        "email": "ndesaulniers@google.com",
        "time": "Mon Nov 04 11:19:10 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 07 19:06:27 2019 +0000"
      },
      "message": "art: fix -Wc99-designator\n\nNested designated initialization is a C99 feature.\n\nAlternatively, we could disable this warning as other Android projects\nhave chosen to do.\n\nBug: 139945549\nTest: mm\nChange-Id: Ic33089cc1d88100f01c44cc9890c461ed6fd7450\nSigned-off-by: Nick Desaulniers \u003cndesaulniers@google.com\u003e\n"
    },
    {
      "commit": "d3d00c06a439f5204b290505a3333f780dd00bce",
      "tree": "7fb793aa293908b9218267acbf8e10da14e95031",
      "parents": [
        "0f7c792f12905558836cc01f3406d6ba364cefd7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 07 15:09:07 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 07 16:46:05 2019 +0000"
      },
      "message": "Refactor oat.h.\n\nMove OatClassType and OatMethodOffsets to oat_file.h and\nmake all dependencies on oat.h explicit instead of relying\non transitive #includes. This reduces the number of files\nthat need to be rebuilt for oat version changes.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I89c8e397a4f423043d7a036a995cc33548b25051\n"
    },
    {
      "commit": "0f7c792f12905558836cc01f3406d6ba364cefd7",
      "tree": "3b53679e77505435e4ce0a80bffbc430a244df95",
      "parents": [
        "267366ca19e7b71a63d3c4a02976cc56a6e58adc"
      ],
      "author": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Thu Nov 07 16:12:09 2019 +0000"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Thu Nov 07 16:24:29 2019 +0000"
      },
      "message": "Revert^3 \"Package dexpreopt artifacts for libcore jars in the ART apex.\"\n\nReason for revert: breaks the coverage build.\n\nChange-Id: I8badfb8a385a43537ccaaa73cdf3d6330155afb0\n"
    },
    {
      "commit": "267366ca19e7b71a63d3c4a02976cc56a6e58adc",
      "tree": "063ef118f770096ac667f5b4c7d22b75693896c0",
      "parents": [
        "fa2b2d35255515accd0aa69193aa5e72b009e38e"
      ],
      "author": {
        "name": "Artur Satayev",
        "email": "satayev@google.com",
        "time": "Thu Oct 31 14:59:26 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 07 15:23:32 2019 +0000"
      },
      "message": "Only allow access to @TestApi signatures in instrumented processes.\n\nNote that the check is for \"pure\" @TestApi signatures, i.e. those that are on blacklist. If the signature is also annotated with @SystemApi or @UnsupportedApiUsage then it would not be on blacklist.\n\nBug: 133832325\nTest: manual\nChange-Id: I546fb42495331efd638d9def924ef33da0c80182\n"
    },
    {
      "commit": "fa2b2d35255515accd0aa69193aa5e72b009e38e",
      "tree": "38438343d4560cac67bace5e5f8f52c7c517206a",
      "parents": [
        "2191069047034ad891ea15f60a217246edc38d53"
      ],
      "author": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Thu Nov 07 10:47:34 2019 +0000"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Thu Nov 07 14:20:40 2019 +0000"
      },
      "message": "Revert^2 \"Package dexpreopt artifacts for libcore jars in the ART apex.\"\n\nThis reverts commit 0c63f76d90ed5b5dc4bc420fc51ffc383f8d87d9.\n\nReason: (some) build failures are fixed after reworking the patch.\n\nThis patch set adds precompiled dexpreopt files for the libcore part\nof boot class path in the ART apex. The dexpreopt files are packaged\nin javalib/$ARCH/ subdirectory and have names prefixed with \u0027boot\u0027\nto match the boot image on the system partition.\n\nTest: m\nTest: m com.android.art deapexer \\\n    \u0026\u0026 find $ANDROID_BUILD_TOP -type f -name \u0027com.android.art.*.apex \\\n        | xargs deapexer | grep boot \\\n    Expect to find javalib/$ARCH/boot*.{art,oat,vdex} files.\nTest: art/build/apex/runtests.sh\n\nBug: 143594594\nBug: 143593500\n\nChange-Id: Ic09fab122f4e2acda1fa5d3c8addf1feaf9b6b8d\n"
    },
    {
      "commit": "2191069047034ad891ea15f60a217246edc38d53",
      "tree": "5fcdb37aa8d1e052979631adac01fe74794748b3",
      "parents": [
        "add69acb7db965bd8d817a185e962e5474f690d1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 06 13:27:03 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 07 14:04:57 2019 +0000"
      },
      "message": "Revert^4 \"Boot image extension.\"\n\nThis reverts commit f5c5eb30fc71e0c305d678bd3c1c995a5c36d508.\n\nRemoved wrong check for no dex files. Dex files can also be\nspecified with zip-location and file descriptors. Added a\nregression test to dex2oat_test.\n\nFixed the image checksums validation to use the appropriate\npart of BCP rather then full BCP. This fixes errorneous\nrejection of oat files compiled against partial BCP.\n\nChanged dex2oat_image_test to use ART_BASE_ADDRESS to try\nand avoid failures when reserving space for loading the\ncompiled images.\n\nTest: Additional tests in dex2oat_{,image_}_test\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 119800099\nBug: 143492855\nBug: 144001974\nChange-Id: I062cbecd0020f5c24353eb75643ea5905cb6f4fd\n"
    },
    {
      "commit": "add69acb7db965bd8d817a185e962e5474f690d1",
      "tree": "ed5f5c469eeeaedf9fc7c102b728046eaf28bbe0",
      "parents": [
        "dd49278c4a8c476f6af832ac0f9fe71752a742d6"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Nov 06 18:21:43 2019 +0000"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Nov 06 14:41:20 2019 -0800"
      },
      "message": "Revert^2 \"Revoke CC\u0027s thread-local mark stack in ~Thread\"\n\nThis reverts commit 93e5ae90697d879a82103b492c6853cda11d0925.\n\nMove revoking thread-local mark stack from Thread::Destroy() to\nThread::~Thread. We also don\u0027t need to perform this revocation with\nScopedObjectAccess.\nAlso, updated the assertion in RevokeThreadLocalMarkStack for cases\nwhere an exiting thread during marking phase of the 2-phase full-heap GC\ninvokes it.\n\nReason for revert: Removed assertion that will no longer be true with\nthis change.\n\nBug: 140119552\nTest: art/testrunner/testrunner.py\nChange-Id: Ic827fcc9729e19c0a9af772287ea3e96dbdd5ff9\n"
    },
    {
      "commit": "dd49278c4a8c476f6af832ac0f9fe71752a742d6",
      "tree": "6dad03b1cceb12617ff7c032598a314713cb0a39",
      "parents": [
        "f5c5eb30fc71e0c305d678bd3c1c995a5c36d508"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Nov 05 11:15:19 2019 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Nov 06 18:53:01 2019 +0000"
      },
      "message": "Add size weighting to the script\n\nAdd the ability to weight the counts by the total size allocated at that\nstack trace.  Also puts the thread/type/size at the top of the stack\ntrace and fixes a bug that erroneously inserted an additional stack\nframe at the base.  Some small code cleanups in the agent also.\n\nBug: none\nTest: attach, run app, pull, process, enjoy the flame graph.\nChange-Id: I6256a99c2651696b973c25a5955e3bb9251b86a1\n"
    },
    {
      "commit": "f5c5eb30fc71e0c305d678bd3c1c995a5c36d508",
      "tree": "2f08c5562d3b35b7f0139f772b6324a9689d01ea",
      "parents": [
        "acdb9a350fede0776e1f4d6d04dc3246249345e3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 06 12:25:10 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 06 13:25:07 2019 +0000"
      },
      "message": "Revert^3 \"Boot image extension.\"\n\nThis reverts commit 02820f424714e711bbd4cb4b04a109416eb0c8b8.\nAlso reverts commit beb66b38dcce937d7eee9ef2d07b6402c720f8ee\nthat contained a follow-up fix.\n\nReason for revert: b/144001974\n\nBug: 119800099\nBug: 143492855\nBug: 144001974\nChange-Id: I4da5330c3efa9f0c3508e85344c031d3b360ca0a\n"
    },
    {
      "commit": "acdb9a350fede0776e1f4d6d04dc3246249345e3",
      "tree": "571b9d7e6b9606b1258314f781eb1341399def81",
      "parents": [
        "4c6d765dae35f7a3e7cafdbe346821622e65d6d4"
      ],
      "author": {
        "name": "Artur Satayev",
        "email": "satayev@google.com",
        "time": "Mon Oct 28 18:09:53 2019 +0000"
      },
      "committer": {
        "name": "satayev",
        "email": "satayev@google.com",
        "time": "Wed Nov 06 13:16:51 2019 +0000"
      },
      "message": "Plumb @TestApi enforcement policy to runtime.\n\nBy default access to test APIs would be allowed for instrumented processes only.\n\nBug: 133832325\nTest: manual\nChange-Id: Iaa68447c88304b062025c96e8b863a0758b78add\n"
    }
  ],
  "next": "4c6d765dae35f7a3e7cafdbe346821622e65d6d4"
}
