)]}'
{
  "log": [
    {
      "commit": "55eccdf61f46bd2a633f489f8d09cf78e1de1938",
      "tree": "e60d91c8fc48dfe70956ec9febd346b9dc9fcf77",
      "parents": [
        "49df715faf3700e874fbe246b339a8e426549216"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Oct 07 13:51:13 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 07 18:59:55 2019 +0000"
      },
      "message": "Revert^4 \"Walk internal ArtField/ArtMethod pointers\"\n\nSeveral of the new tests make use of the invoke-custom opcode. This\nopcode is not supported by dexter/slicer causing the tests to fail.\n\nThis reverts commit c34eab45161c51bf63e548e44645cbcc59d01268.\n\nReason for revert: Added tests to redefine-stress known failures\nTest: ./test.py --host --redefine-stress\nBug: 134162467\n\nChange-Id: Ic1b375a0cb1e44d0252c17115af92c269fb8efc5\n"
    },
    {
      "commit": "49df715faf3700e874fbe246b339a8e426549216",
      "tree": "2e6216a9fe271aad03acf966d7154a57b86d7e41",
      "parents": [
        "97421fd3f780baf9dfcffdd2b86ded33481d272c"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Oct 03 11:22:35 2019 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Oct 07 17:14:04 2019 +0000"
      },
      "message": "Handle MethodHandle call to non-default interface methods\n\nWe would check-fail when an invoke-super MethodHandle attempted to\ninvoke a non-default interface method. This changes the behavior to\ncorrectly throw an IllegalAccessError.\n\nTest: ./test.py --host\nBug: 142059356\nChange-Id: I8c214ee589ba71d8ab0dd6434890a3f681031364\n"
    },
    {
      "commit": "1cef6b2a2542448a5f3ab954008c24bdb5fbbd8a",
      "tree": "ecec24cf32ea236245e9bf5f6f1b62b245588505",
      "parents": [
        "c34eab45161c51bf63e548e44645cbcc59d01268"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Oct 03 15:26:15 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Oct 07 08:45:09 2019 +0000"
      },
      "message": "Add and use a read-barrier free NeedInitializationCheck method.\n\nThe JIT may be working with ArtMethod that are in the process of\nbeing deleted.\n\nBug: 142001849\nTest: 674-hiddenapi\nChange-Id: I3632ba6f49bcf54a29bd92882eb343b92945ef28\n"
    },
    {
      "commit": "c34eab45161c51bf63e548e44645cbcc59d01268",
      "tree": "1b2a0eb85865d2cf6b1627cb5d64869e72412505",
      "parents": [
        "623d4f1ba4f4218c5472e3d9e1e9bf707795878d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Oct 07 07:15:53 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Oct 07 07:16:18 2019 +0000"
      },
      "message": "Revert \"Revert^2 \"Walk internal ArtField/ArtMethod pointers\"\"\n\nThis reverts commit ea2a3d949354c8b054983ba629c81bc5ff7163da.\n\nBug: 134162467\n\nReason for revert: Fails redefine stress\n\nChange-Id: If487c0bcacaf3a3f565ff475b6dad8321e3428b9\n"
    },
    {
      "commit": "623d4f1ba4f4218c5472e3d9e1e9bf707795878d",
      "tree": "44a01387b2fcdda602019cefa3bf78b6535b2caa",
      "parents": [
        "94af5824acb28f9756fb8246f95f78c4026228e2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 30 13:45:51 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Oct 06 13:09:09 2019 +0000"
      },
      "message": "Share boot image methods memory in JIT zygote.\n\nOnce the zygote is done compiling, copy the ArtMethods to\nshared memory that will be in-place remapped. This is\na memory optimization that enables memory sharing between\nzygote and early forked processes.\n\nCurrently relies on undefined behavior of the kernel, but will\nfollow-up with a CL that uses file sealing that will address this.\n\nSaves around 2MB of memory for processes forked before zygote is\ndone compiling - there are around a dozen of processes.\n\nBug: 119800099\nTest: boots, PostLaunchMemoryUsage\nChange-Id: Ia1bdbd1abd27f28b087d9f33aca4cd901d55082f\n"
    },
    {
      "commit": "94af5824acb28f9756fb8246f95f78c4026228e2",
      "tree": "e580df0d6a694a5c6b6c54fbc94feab37db779ec",
      "parents": [
        "ea2a3d949354c8b054983ba629c81bc5ff7163da"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Oct 03 14:48:26 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sat Oct 05 00:07:52 2019 +0000"
      },
      "message": "JIT mini-debug-info: Add back timestamps.\n\nThey are needed by simpleperf.\n\nBug: 141558390\nTest: ./art/test.py -b -r --optimizing --jit --host --64\nChange-Id: Ic698910da83656889ecd972b56d4a23061fcf71e\n"
    },
    {
      "commit": "ea2a3d949354c8b054983ba629c81bc5ff7163da",
      "tree": "dc94a9c92b254d3f94d96ad0dc27f195d5a7767c",
      "parents": [
        "7fca6ef7b9dbe5a54f2c93a3484035f48ebae27a"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Oct 04 20:34:46 2019 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Oct 04 14:21:21 2019 -0700"
      },
      "message": "Revert^2 \"Walk internal ArtField/ArtMethod pointers\"\n\nThis reverts commit 712fa800b2b78e527d36c88dc369bf4b723587ea.\n\nWe incorrectly didn\u0027t check if a method was obsolete before giving its\nclass\u0027s MethodIds array. We then incorrectly used this array and the\n(placeholder) -1 index to try to find the previous method-id. Since -1\nis not a valid array index we got check failures. To fix this we\nsimply added a check that the method is not obsolete and if it is we\ngo to the slow-path.\n\nReason for revert: Fixed issue causing out-of-bounds array access\nTest: ./test.py --host --debuggable --ndebuggable\nBug: 134162467\n\nChange-Id: Iaffefeab6e889b4fb6554a11452d0af051001cb7\n"
    },
    {
      "commit": "712fa800b2b78e527d36c88dc369bf4b723587ea",
      "tree": "ccc4573a3c6bef136ef6da022350ebb5c17a1892",
      "parents": [
        "f70dfec27cae2625c199f1b8ecf1ef1f23580a45"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 04 08:38:11 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 04 08:38:38 2019 +0000"
      },
      "message": "Revert \"Walk internal ArtField/ArtMethod pointers\"\n\nThis reverts commit c84fc3a742b160ce51cbf01c2e5f971ccc0a2c6c.\n\nBug: 134162467\n\nReason for revert: Test fails on debuggable.\n\nChange-Id: I240d58fafcc7434749947330b64c67d65b9b7a1e\n"
    },
    {
      "commit": "f70dfec27cae2625c199f1b8ecf1ef1f23580a45",
      "tree": "a2f1fba77e0a0e924974a59c1dace4cf381465ad",
      "parents": [
        "83072060112150894f723277ee9e8ae6977b56b5"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Oct 02 18:58:19 2019 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Oct 03 23:43:05 2019 +0000"
      },
      "message": "Attach the running bitness to the boot image profile\n\nAlso, add tests for the profile saver.\n\nBug: 139884006\nTest: gtest\nChange-Id: I134c951e40859e4e6560cbdf43710c99de6b11fc\n"
    },
    {
      "commit": "c84fc3a742b160ce51cbf01c2e5f971ccc0a2c6c",
      "tree": "1380b353e0d3b5015c9d1ef29fd4c2534828f97b",
      "parents": [
        "8679fd5e938d7bed67d3ab67c55b7f4fb2cdd92a"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Sep 24 14:36:50 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 03 20:44:33 2019 +0000"
      },
      "message": "Walk internal ArtField/ArtMethod pointers\n\nDuring structural class redefinition we sometimes need to update some\nof the ArtMethod/ArtField pointers held by runtime frames. This adds\nsupport for doing this through a StackReflectiveHandleScope similar to\nthe StackHandleScope used for holding object references. This also\nupdates various places where reflective-handles to ArtMethods and\nArtFields are needed, for example the JniIdManager, field Read/Write\noperations and events, field resolution, and the old debugger.\n\nTest: ./test.py --host\nBug: 134162467\n\nChange-Id: I4ea73e85956a07735c6d7b125c5828a4233670bc\n"
    },
    {
      "commit": "00b8d451a1a93c070ffe71727a8366f12dc421a2",
      "tree": "48780d4b4078df51574568524964125fcfb2f2ee",
      "parents": [
        "f383ed8b60405f09996ac2be480df7b4effb8de0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 02 15:34:45 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Oct 03 08:28:43 2019 +0000"
      },
      "message": "Remove the leading \u0027/\u0027 in jit zygote memfd/ashmem names.\n\nThis avoids having two \u0027/\u0027 in case the jit zygote code cache\nis using ashmem.\n\nTest: cat /proc/pid/smaps\nChange-Id: Ibff035949c3ff12ab513be75078255b804eef7a5\n"
    },
    {
      "commit": "f3a1a29d08b2ad73a378ef31261c6238dd1def61",
      "tree": "44ca9765d27bd1016d539d8ac6371c0f95e8af29",
      "parents": [
        "6a98c95feba069dcb66dcdb89d138460a01487f3"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Sep 26 20:44:16 2019 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Oct 02 18:16:12 2019 +0000"
      },
      "message": "Annotate boot profiles with the origin package names\n\nWhen profiling the boot image the samples are not annotated with the\npackage name that generating them.\n\nBug: 139884006\nTest: m test-art-host-gtest\nChange-Id: Ie90765eea0b930660081d4e8a4ea2cda09f72524\n"
    },
    {
      "commit": "86bf2fe254f2e2b3511a9c6293c4cd3a238e465e",
      "tree": "297b840e8d27b31417cb109625678642bfd77775",
      "parents": [
        "d5fe17eac91c5c0cefb2ab8093f41ddc68c2f724"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 27 15:54:42 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 02 12:40:06 2019 +0000"
      },
      "message": "Remove too agressive DCHECK.\n\nBoot classpath does contain soft failures, eg:\ncom.android.framework.protobuf.UnsafeUtil$JvmMemoryAccessor\n\nBug: 141606408\nTest: libartd boots\nChange-Id: Ife657a295560420fd69d14bc11c85720e250f4aa\n"
    },
    {
      "commit": "d5fe17eac91c5c0cefb2ab8093f41ddc68c2f724",
      "tree": "f3299a8fe9ff637545d8e97461d84f6294baa5b2",
      "parents": [
        "bd5690db112e7357bfa7634abbda9762e20959d7"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Tue Oct 01 16:18:47 2019 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Tue Oct 01 16:18:47 2019 -0700"
      },
      "message": "Fix incorrect narrowing type cast\n\nstd::string::npos is greater than the maximum value of uint32_t type,\nthe narrowing cast will make this statement always false.\n\nFound by Clang tautological-constant-out-of-range-compare warning.\n\nTest: N/A\nBug: 72331526\nChange-Id: I59b297360ab5672868f2cffc42ec02189275a152\n"
    },
    {
      "commit": "4090657e44b16dcac5cb63c2151a2eee9472d968",
      "tree": "de386c9da5521f7e3b011df860fad9e43252721d",
      "parents": [
        "19cb8e2bcc1a26f23a9709daf96ad7ead96d05a7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 30 13:57:11 2019 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 01 19:43:05 2019 +0000"
      },
      "message": "Deoptimize boot image when profiling boot class path\n\nUsed for getting JIT samples for boot image methods.\n\nTest: adb shell profman --dump-classes-and-methods --profile-file\u003d/data/misc/profiles/cur/0/android/primary.prof --apk\u003d/apex/com.android.art/javalib/core-oj.jar\nBug: 139883463\n\nChange-Id: Ib22b4539a24c7e57be8ac3e974e6681e754b06ff\n"
    },
    {
      "commit": "19cb8e2bcc1a26f23a9709daf96ad7ead96d05a7",
      "tree": "3e30d7f62a88042fe8575f1af3a67f902a4dc70a",
      "parents": [
        "30677103d4d4dfb2695f1d9c5a3a41ae64a66ec7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 01 10:48:37 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 01 16:04:25 2019 +0000"
      },
      "message": "Lower the check to class is initialized.\n\nKnowing if the class is visibly initialized is only for JIT/AOT compiled\ncode to avoid the memory barrier. For callers of `NeedsInitializationCheck`\nit\u0027s enough to just check whether the class is initialized.\n\nTest: test.py, 626-set-resolved-string\nChange-Id: I2b01e03139e70cdeb73e09a01519f8d096c09440\n"
    },
    {
      "commit": "de05550bf33d3441655cfddd66e788791f2412e7",
      "tree": "6815d4af1a0a825df90318f753dc3afa71704ece",
      "parents": [
        "988c3911671598d7c840c65bf1cdfafa1e05c582"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 02 13:41:35 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 01 13:05:17 2019 +0000"
      },
      "message": "Use ClassStatus::kVisiblyInitialized in reflection.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nTest: run-gtests.sh\nTest: testrunner.py --target --optimizing\nBug: 36692143\nChange-Id: I53342f5bb6285c9ca95445791dd10e04c6d8f962\n"
    },
    {
      "commit": "fd64e56b9f980423b65dd9ce76a16338a7240104",
      "tree": "7acf39a06ae360ab67175e54dd7bc067049e9267",
      "parents": [
        "46123bc8253048c90dd9311ea78cbe628082b649"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Sep 25 17:58:26 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Sep 30 16:15:27 2019 +0000"
      },
      "message": "Move to bionic platform include.\n\nBug: 141560639\n\nTest: Builds.\nChange-Id: Iae00fc17c05f46d7c7128850d8e122925ef42777\nMerged-In: Iae00fc17c05f46d7c7128850d8e122925ef42777\n(cherry picked from commit d96352d019b8400cb1f9c57342d008afadf4a877)\n"
    },
    {
      "commit": "c18eba327c4e207ff7b38817f097ee2220b44b39",
      "tree": "1978e64abd3e9fd3df99179f4a2110a724a9565f",
      "parents": [
        "371390f775c90b8b3df11a9890585598a2a39da9"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Sep 24 14:36:27 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 27 17:08:33 2019 +0000"
      },
      "message": "Consolidate updating of reflective Field/Method references\n\nPreviously we used several different visitors to update Field \u0026\nMethod references for structural redefinition. We also did not visit\nor update JVMTI based references.\n\nThis consolidates all the visitors to a single\nRuntime::VisitReflectiveTargets function with a single\nReflectiveTargetVisitor type. This simplifies the code around\nstructural redefinition and ensures that the reflective value holders\nare in charge of the actual replacement.\n\nSupport was also added for walking internal openjdkjvmti references\nfor things like field-read/modification events.\n\nTest: ./test.py --host\nBug: 134162467\n\nChange-Id: Ic5fc1db7db0a30f947a1a67259dc024e149ebd57\n"
    },
    {
      "commit": "371390f775c90b8b3df11a9890585598a2a39da9",
      "tree": "d73786851dea3dcd1277b6135c3c41c578fbeef5",
      "parents": [
        "954b3adf6b3b4c0efe46ce4e95228fbd386d2c53"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 27 09:57:38 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 27 12:42:27 2019 +0000"
      },
      "message": "Call NativeDebugInfoPostFork in the child post-fork.\n\nIt only applies to children, and must be called before threads resume.\n\nTest: ./art/test/run-test --host --jit --gdb --runtime-option -Xjitthreshold:0 689-zygote-jit-deopt\nChange-Id: I20a82b55316e4343948a54c17289049f587c354e\n"
    },
    {
      "commit": "b096c918a5f20abb3426f1693435e230f2e07445",
      "tree": "1ce0b393c1d3d7aefea028c38afcf8b91e24b264",
      "parents": [
        "193efa454148afb105567676ef82d1b6844e8f9e"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Sep 25 13:33:06 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 26 19:44:22 2019 +0000"
      },
      "message": "Correctly perform read-barriers on cross-thread reg access\n\nFor debug workloads we will sometimes read stack registers on other\nthreads. This generally only happens when the target thread is\nsuspended due to a running GC and the debugger thread tries to access\nstack registers from a compiled method. This could lead to a missed\nread-barrier and a From-Space reference being returned. To fix this we\nmanually perform a read-barrier after pulling the reference out of the\ncompiled stack.\n\nTest: ./test.py --host\nTest: ./art/tools/run-libjdwp-tests.sh --mode\u003dhost\nTest: ./test.py --host --all-compiler --all-gc -t 1966\nBug: 141590021\n\nChange-Id: I5540c03bfdaecddbc1329ff6c7c58c6f18d6a090\n"
    },
    {
      "commit": "621afb45075e2fee1024d34d8c6fc0df828dc4a6",
      "tree": "404ed4c98c2130b1d8761511f38d3f4b830ddfd1",
      "parents": [
        "4815e7209ef2558c861036b05a3082d32909b236"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Sep 23 22:01:36 2019 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Sep 26 14:24:43 2019 +0000"
      },
      "message": "Avoid linking libdexfile_support into static executables.\n\nIt doesn\u0027t define -DSTATIC_LIB, so it ends up compiling in dlopen() calls\nthat don\u0027t work in static executables. Use libdexfile_support_static\ninstead, which is intended for this use. That also requires adding a\ncorresponding libdexfiled_support_static.\n\nThis also fixes d/non-d library mixup because libdexfile_{external,support}\nwhich depend on non-d libs were used in libartd_static_defaults.\n\nTest: Build \u0026 boot\nTest: art/test/run-test --chroot /data/local/art-test-chroot --jit --64 --timeout 5 151-OpenFileLimit\n  and check that logcat has signal_dumper output without any fatal error\nBug: 141485154\nChange-Id: I8005373814d73ceefc2891a77204d4ba89abb922\n"
    },
    {
      "commit": "4ad95214341f03d11f06e82fd92ac22b3605586d",
      "tree": "3dde60deb636cb33f4c59bb26d9f9b516d908ad0",
      "parents": [
        "45cdd05e32bdff1cea8581bc9ecf8a8cb08d6f5b"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Sep 23 23:39:41 2019 -0400"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Sep 26 00:35:55 2019 +0000"
      },
      "message": "Make explicit which methods retrieve info about *hot* methods\n\nRename some methods to better highlight that they refer to hot methods and not\nto any method (e.g. a non-hot, startup methods).\n\nBug: 139884006\nTest: m test-art-host\n\nChange-Id: Ieb3a36c434104d1cde28ca18a5b335cc8a24e537\n"
    },
    {
      "commit": "1061c7d2bf7a559abe5a234c680b27b8838862ca",
      "tree": "b9e299414fbdb05f9763a71fe46b9078449eaac6",
      "parents": [
        "8b959958d1df3545957ddbce2be2ea21003a121c"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Sep 23 21:00:29 2019 -0400"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Sep 26 00:35:55 2019 +0000"
      },
      "message": "Clean up profile AddMethod APIs\n\nRestructure the profile assistant test to use the same APIs as profile\nsaver and\nclean up all the other usages for AddMethodIndex and AddMethod.\n\nBug: 139884006\nTest: m test-art-host\n\nChange-Id: Icf76d6aa05f0f9dcc589182196ca34a0298f2cb7\n"
    },
    {
      "commit": "5a0b6726562948421fbbeb38d20ffd66ef688ff8",
      "tree": "9507db95b78ba55228fc24dc43f485a9755b9773",
      "parents": [
        "a6c9b78a3f2c7a7f39761427dcd32e0bf6c546f3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 24 15:09:40 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 25 16:02:56 2019 +0000"
      },
      "message": "Boot image: only use the resolution stub when there is AOT code.\n\nThis avoids dirtying the page when the class becomes initialized.\n\nTest: test.py\nBug: 119800099\nChange-Id: I5cd7ae56b6637583179dbb766da251977b7ac961\n"
    },
    {
      "commit": "a6c9b78a3f2c7a7f39761427dcd32e0bf6c546f3",
      "tree": "59676cd563b71a5bb866681224a9ac9b2d35991a",
      "parents": [
        "38cf1105e340888f075517936679cce1864fd0b4"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Sep 16 18:57:26 2019 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Sep 24 23:22:12 2019 +0000"
      },
      "message": "Consolidate profile methods\n\nRemove unnecessary profile APIs or the ones that were added only for tests.\nThis makes the profile data flow much easier to understand (as we have to follow\nfewer entry points when adding methods and classes). It will also make it easier\nto restructure the profile format with new data.\n\nTest: m test-art-host-gtest\nChange-Id: I09ea91229278877d16b12af7a0b356ccceb4b520\n"
    },
    {
      "commit": "38cf1105e340888f075517936679cce1864fd0b4",
      "tree": "c0a439449fede6dae61ca87194f4d6f43c1bceb0",
      "parents": [
        "e58624f221b967553d7b71f14d8677ceaa000553"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Sep 20 17:34:39 2019 -0400"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Sep 24 23:22:12 2019 +0000"
      },
      "message": "Process method flags uniformly in the profile\n\nWe used to have two main ways to add methods in profiles: one which would\nassume methods are hot and another one where we had to specify the method\nflags explicitly. This created some implicit assumptions when adding new\nmethods that made it hard to follow which methods sets what.\n\nThis CL unify the way flags are processed removing any assumptions of flags.\n\nBug: 139884006\nTest: m test-art-host\n\nChange-Id: Ib1dcfdd4a5220507b89e3e0947252cef4fa2eb4c\n"
    },
    {
      "commit": "e58624f221b967553d7b71f14d8677ceaa000553",
      "tree": "00d6caa5ca66562d9c8e448abc77c0c6018fca0c",
      "parents": [
        "48349ad38887f65da76df268f8e548d508d8c6a1"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Sep 20 15:53:40 2019 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Sep 24 17:40:00 2019 +0000"
      },
      "message": "Various renames following the name change from \"Runtime APEX\" to \"ART APEX\".\n\nIn particular ANDROID_RUNTIME_ROOT is now ANDROID_ART_ROOT.\n\nTest: Build \u0026 boot\nTest: art/tools/run-gtests.sh in chroot\nTest: art/test/testrunner/testrunner.py --target --64 in chroot\nTest: art/tools/run-libcore-tests.sh --mode\u003ddevice --variant\u003dX64 in chroot\nTest: art/tools/run-jdwp-tests.sh --mode\u003ddevice --variant\u003dX64 in chroot\nTest: m test-art-host-gtest\nTest: art/test/testrunner/testrunner.py --host --64\nTest: art/tools/run-jdwp-tests.sh --mode\u003dhost\nBug: 135753770\nChange-Id: Ia74da964e54cf396d66e9e12ea56da4e9483662a\n"
    },
    {
      "commit": "1550a669adb7e9328879bed24d9edc22eb97c994",
      "tree": "80f1f230decc89af3397f258d3101a6cd0287338",
      "parents": [
        "357d4db493467e4dd74b2ba1d4b8d7c80f8409b6"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Aug 14 17:16:46 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Sep 20 18:48:44 2019 +0000"
      },
      "message": "JIT mini-debug-info: Add support for zygote shared memory\n\nEnsure that zygote\u0027s mini-debug-info is visible to apps.\n\nRemove global seqlock synchronization.\nIt was replaced by entry-level synchronization.\n\nTest: test.py -b -r --host --jit --64\nTest: device boots\nBug: 119800099\nChange-Id: I4885f9a4d44743d5608793a2e5d6453123d111f3\n"
    },
    {
      "commit": "357d4db493467e4dd74b2ba1d4b8d7c80f8409b6",
      "tree": "54850dac045ba281a68671483f8224ca3e6e9ad7",
      "parents": [
        "b0ce4d2e5e01f712443b146644166363d231abe0"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Sep 17 22:23:05 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Sep 20 16:30:48 2019 +0000"
      },
      "message": "Improve stack unwinding during gcstress tests.\n\nReparse process mmaps if new library has been loaded.\n\nTest: test.py -b -r --gcstress --optimizing --host\nChange-Id: If50c226e37301a435d007331d24625bbd391889d\n"
    },
    {
      "commit": "07710c52222fa412051cb9c3920894fe50b7d41c",
      "tree": "0c3a94e2a2c59db85b6f85fb6f4b017e71363537",
      "parents": [
        "fb11957a861bc2230773e74e969b45a92d4f587b"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Mon Sep 16 15:53:38 2019 +0000"
      },
      "committer": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Thu Sep 19 16:43:22 2019 +0000"
      },
      "message": "Reland \"Java Heap Profiler for Perfetto.\" again\n\nThis reverts commit 284b1b01cf47335fa578e995150adcd0c6f02059.\n\nReason for revert: Added some nullptr checks with logging.\n                   Fixed behaviour when ReInitializing plugin.\n\nTest: dump heap for system_server\n\nTest: art/tools/run-gtests.sh -j4\n[ RUN      ] InstructionSetFeaturesTest.FeaturesFromAssembly\nart/runtime/arch/instruction_set_features_test.cc:161: Failure\nValue of: assembly_features-\u003eHasAtLeast(instruction_set_features.get())\n  Actual: false\nExpected: true\nAssembly features: ISA: Arm Feature string: div,-atomic_ldrd_strd,armv8a\nFeatures from build: ISA: Arm Feature string: div,atomic_ldrd_strd,armv8a\n[  FAILED  ] InstructionSetFeaturesTest.FeaturesFromAssembly (0 ms)\nKnown issue, see http://b/139425971\n\nTest: art/test/testrunner/testrunner.py --target --64\n4095/4260 (96%) tests passed.\n\nTest: art/tools/run-libcore-tests.sh --mode\u003ddevice --variant\u003dX64\nOutcomes: 13781. Passed: 13542, Failed: 0, Skipped: 140, Warnings: 99. Took 29m37s.\n\nTest: art/tools/run-jdwp-tests.sh --mode\u003ddevice --variant\u003dX64\nOutcomes: 401. All successful. Took 7m15s.\n\nBug: 136210868\n\nChange-Id: I7b8564c93926788acb0340de254836dff0ebd9f8\n"
    },
    {
      "commit": "fb11957a861bc2230773e74e969b45a92d4f587b",
      "tree": "9606da919e810fbb2f11633c93b6d43dc27700bb",
      "parents": [
        "c2c5948696ca128d862bf837472aacd4c28ce551"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Sep 18 15:04:53 2019 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Sep 18 22:15:02 2019 +0000"
      },
      "message": "Fixed issue in structural redefinition around class init\n\nOn non-x86 ISAs class initialization is two stage with a class first\nbeing \u0027kInitialized\u0027 and later being \u0027kVisiblyInitialized\u0027. This has\nto do with the memory model of non-x86 ISAs. Because we did not follow\nthis process correctly we could hit check-failures on non-x86 targets\nif the redefined class was not fully initialized when being redefined.\n\nTo fix this we force the class-linker to bring the initialization\nstate of the newly created class all the way to visibly initialized\nbefore allowing the redefinition to take place.\n\nTest: ./test.py --target\nBug: 134162467\nBug: 141236848\nChange-Id: I466861270b957a0fe6a90bda0bdabece950f99b2\n"
    },
    {
      "commit": "e5abfbdd4f4135737fc1cb11813a798b58d2683d",
      "tree": "d3e6ca38b1d3d0ea199d0a9fa74bcffcdd9509fe",
      "parents": [
        "d6e2c388d0d91c0e7cce66147cc188caed3208b6"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Tue Sep 17 15:04:54 2019 -0700"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Sep 18 18:00:38 2019 +0000"
      },
      "message": "Check revoked_mark_stacks empty in FinishPhase()\n\nBug: 140119552\nTest: art/test/testrunner/testrunner.py --target\nChange-Id: I69c3d99cb49db57752f7bf680ece45703001605a\n"
    },
    {
      "commit": "4ac0e1571e015a01d75091c3daef065f9624ad77",
      "tree": "4d13edeab88bd6fd724388c48385b0c3cca4f3a8",
      "parents": [
        "5a2301d897294ff4ee6de71f459dc2566dc3fa1a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 18 06:14:50 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 18 06:14:50 2019 +0000"
      },
      "message": "Revert \"Revert \"Basic structural redefinition support\"\"\n\nThis reverts commit 5a2301d897294ff4ee6de71f459dc2566dc3fa1a.\n\nBug: 134162467\n\nReason for revert: Relanding as unclear if issue is due to topic.\n\nChange-Id: Ib1d1cf2e9132e30c9649b760ae9ae2d8ceacf843\n"
    },
    {
      "commit": "5a2301d897294ff4ee6de71f459dc2566dc3fa1a",
      "tree": "2bd06ab3f463734994b3d251f6115514520dbb3f",
      "parents": [
        "4eb6eb40e88214fcc874d93e75660cb580cb4d58"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 18 06:11:22 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 18 06:12:13 2019 +0000"
      },
      "message": "Revert \"Basic structural redefinition support\"\n\nThis reverts commit c971eafeff43e4e26959a6e86b62ab0a8f1a6e1c.\n\nBug: 134162467\n\nReason for revert: Breaks on redefine-stress\n\nChange-Id: I4e38da23d65b5b34b26b5ab537a3583328e078a4\n"
    },
    {
      "commit": "c971eafeff43e4e26959a6e86b62ab0a8f1a6e1c",
      "tree": "f8647487e7465712fd73118ceb89e13167a12648",
      "parents": [
        "1ba7e8c10af4e270864a417044244d63db53ccf5"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Aug 13 10:50:38 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 17 23:52:12 2019 +0000"
      },
      "message": "Basic structural redefinition support\n\nThis adds basic support for adding methods and fields to already\nloaded classes using redefinition. This \u0027structural class\nredefinition\u0027 is currently limited to classes without any virtual\nmethods or instance fields. One cannot currently structurally redefine\nmultiple classes at once nor will structural redefinition trigger the\nstandard redefinition events.\n\nAfter structural redefinition all references to the old class, and its\nfields and methods are atomically updated. Any memory associated with\nthe static fields of the old class is zeroed. Offsets for field access\nmight change.  If there are any active stack frames for methods from\nthe redefined class the original (obsolete method) code will continue\nto execute. The identity hash code of the redefined class will not\nchange. Any locks being held, waited or blocked on by the old class\nwill be transferred to the new class.\n\nTo use this feature the process must be debuggable and running with\n-Xopaque-jni-ids:true.\n\nFor device testing use a wrap.sh that adds the following flags:\n\n    \u0027-Xopaque-jni-ids:true -Xcompiler-option --debuggable -XjdwpProvider:adbconnection\u0027\n\nStructural redefinition only available using the\n\"com.android.art.UNSAFE.class.structurally_redefine_class_direct\"\nextension. This will not trigger the normal class-redefinition events.\nOnly one class may be redefined at a time.\n\nNB There are still some holes in this potentially allowing obsolete\nmethods/fields to be visible. Most notably during jni-id, MethodHandle\nand VarHandle creation as well as potentially other places in the\nruntime. These holes will be closed by later CLs. Until then the\nextension to access structural class redefinition will remain tagged\nas UNSAFE.\n\nTest: ./test.py --host --all-compiler\nBug: 134162467\n\nChange-Id: I825d3a4bdb9594c0147223ae69f433ce9bbfc307\n"
    },
    {
      "commit": "1ba7e8c10af4e270864a417044244d63db53ccf5",
      "tree": "5674e60920995f3520d85bf9e681f285ef87fbb6",
      "parents": [
        "849439ac18cc36972c145fef2e0f54dea36ff131"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Sep 03 17:10:42 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Sep 17 21:25:30 2019 +0000"
      },
      "message": "Fix uses of DW_CFA_restore_state in assembly code.\n\nThe specification does not define how DW_CFA_restore_state affects the CFA.\nThere is no de-facto consensus on the expected behaviour between tools and\nsometimes even the same tool might differ for different architectures.\n\nTherefore we must always explicitly set the CFA after the state restore.\n\nBug: 31975598\nBug: 140407634\nTest: \"test.py -r --gcstress --optimizing --host\" + extra backtrace checks.\nTest: \"objdump -Wf\" and manually check that all restores match saves.\nChange-Id: Ic1547149f2159e77887d48dedd4afb7e000066e8\n"
    },
    {
      "commit": "849439ac18cc36972c145fef2e0f54dea36ff131",
      "tree": "f099b4ebf92674674e332c85ff99b05b9bbdb6e7",
      "parents": [
        "973f8c48154526f1211d8be3f95855bce753f76c"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Sep 16 15:09:16 2019 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Sep 17 19:21:03 2019 +0000"
      },
      "message": "Refactor the management of profile keys\n\nMake the profile key generation dependent on the actual profile object\n(non-static). This will allow us to add additional information into the\nkey, depending on the profile version. For example, for the boot image, we\nmay add the architecture so that we can capture the differences between 32\nand 64 bits.\n\nBug: 139884006\nTest: m test-art-host\nChange-Id: Id1ad60ac50adcf8bfe011b8d843c4cc4e9d5fc0f\n"
    },
    {
      "commit": "973f8c48154526f1211d8be3f95855bce753f76c",
      "tree": "2965072335ad22d5f2ee94abbefc4fd07d919600",
      "parents": [
        "8d8a98c8cdff564962b49e6b4c297477d5fbfb30"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Sep 13 18:31:59 2019 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Sep 17 19:21:03 2019 +0000"
      },
      "message": "Create boot image profiles with the appropriate version\n\nBug: 139884006\nTest: m test-art-host\nChange-Id: I89227d980121d548ed4b9b1e8f3c6e2c78b5ef97\n"
    },
    {
      "commit": "f4666af9f4a3a029c1a076358526f8437f4f4b43",
      "tree": "1948b5533c4766b61466af28906e3438dc5e0e73",
      "parents": [
        "8e2c78d6dfddaceb602ae356e42af4eff19cc74a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 03 12:45:29 2019 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 17 16:07:08 2019 +0000"
      },
      "message": "Revert^2 \"Fix profile saver hotness for AOT code\"\n\nAdded diagnostic to debug flakiness.\n\nTest: test/run-test --always-clean  -O --prebuild --optimizing --no-relocate --runtime-option -Xcheck:jni --64  2230-profile-save-hotness\n\nBug: 139883463\n\nThis reverts commit 775d38d8492ba8c60dba968064d6e0ac44e0b372.\n\nChange-Id: Ia0b45791be4c5c3a990bb030f5d68cef577b4474\n"
    },
    {
      "commit": "284b1b01cf47335fa578e995150adcd0c6f02059",
      "tree": "a165ba397ce26aa19fcd1b49081d36808a33b9d1",
      "parents": [
        "4fa78a0356cd8a9501e427afc5c1bb95eea70ba3"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Sat Sep 14 00:18:42 2019 +0000"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Sat Sep 14 00:27:18 2019 +0000"
      },
      "message": "Revert \"Reland \"Java Heap Profiler for Perfetto.\"\"\n\nThis reverts commit 5a446bd6c72d25ed2435fb2279bd8617ad003d2e.\n\nReason for revert: Multiple gtests failing\n\nChange-Id: I07abd641d49518a48aed7e401c1927aa7c027937\n"
    },
    {
      "commit": "4fa78a0356cd8a9501e427afc5c1bb95eea70ba3",
      "tree": "b0104dba99cf38dae2933d01df629f56e3f880b4",
      "parents": [
        "38a281806b7c8d5c5a4b8124a4e5409c6e4f7aa7"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Sep 12 09:35:24 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 13 21:56:47 2019 +0000"
      },
      "message": "Revert^2 \"Additional sanity checking for JIT thresholds\"\n\nThis reverts commit f923b09ee869da8a7fec8fc4ed860b6f3eaa7337.\n\nChange to use clamping of JIT thresholds rather than fatal errors if\nout of bounds since it\u0027s easy to violate expectations by only setting\none threshold option.\n\nBug: 140587109\nTest: run-test --host -O --prebuild --compact-dex-level fast --jit \\\n      --no-relocate --runtime-option -Xcheck:jni \\\n      638-checker-inline-cache-intrinsic\nTest: art/test/testrunner/testrunner.py --host --64\n\nChange-Id: I866c3f93e074c63586951f37c1c97b6fd6e4c2a6\n"
    },
    {
      "commit": "87beba30796dddb12a1dac7cb3c8f72d9b20e9f2",
      "tree": "19bfa943a6feeb7a661411a07eea47db4fe91206",
      "parents": [
        "9e3954db9a21c852c411db4118bf910de6f4dbcb"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Aug 09 14:20:32 2019 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Sep 13 17:52:37 2019 +0000"
      },
      "message": "Fix some typos in ART.\n\nTest: n/a\nChange-Id: I25301ab0d749f253f54fd83787343f239088d510\n"
    },
    {
      "commit": "40fb15bcc5803e5bce621b4c96da6bb54b48dba6",
      "tree": "076656566944de1f4996933653379e92000e7d57",
      "parents": [
        "60931d9f0a6b63fec1bf44fa662032e930438f42"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Sep 12 11:16:28 2019 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Sep 13 15:58:42 2019 +0000"
      },
      "message": "Fix MethodHandle::GetTargetClass bug\n\nMethodHandle::GetTargetClass incorrectly asserted that ArtMethod types\nwere kind \u003c\u003d kLastValidKind instead of kind \u003c kFirstAccessorKind. This\nfixes that issue.\n\nTest: ./test.py --host\n\nChange-Id: I828a054ec89223b07a05bcb898d03d34608ad1e6\n"
    },
    {
      "commit": "5a446bd6c72d25ed2435fb2279bd8617ad003d2e",
      "tree": "cad94b86c888b89a96596430ae652a64e4decf35",
      "parents": [
        "f923b09ee869da8a7fec8fc4ed860b6f3eaa7337"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Tue Sep 10 11:30:26 2019 +0000"
      },
      "committer": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Thu Sep 12 08:53:36 2019 +0000"
      },
      "message": "Reland \"Java Heap Profiler for Perfetto.\"\n\nThis reverts commit 8f70b9672c13a5ca19cf2c54ace3cb2f342f743a.\n\nReason for revert: Roll forward with fix. Add hprof_listener to threads\n                   allowed to start early.\n\nBug: 136210868\nTest: * art/tools/run-gtests.sh -j4\n        arm/instruction_set_features_test already failing at base\n        art/arm64/image_space_test  already failing at base\n        art/arm/image_space_test  already failing at base\n      * art/test/testrunner/testrunner.py --target --64\n      * art/tools/run-libcore-tests.sh --mode\u003ddevice --variant\u003dX64\n      * art/tools/run-jdwp-tests.sh --mode\u003ddevice --variant\u003dX64\n      * Start profile, killall -38, see dumped data.\n\nChange-Id: I90c3f8158d95d735fe2a67e25813543849dd0c4f\n"
    },
    {
      "commit": "f923b09ee869da8a7fec8fc4ed860b6f3eaa7337",
      "tree": "c822f33676658975cc2cc25cb29bb01a742f2f83",
      "parents": [
        "5a3e9fb4181bda1e7fc5d1775b93cc72207dcb5b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 12 03:37:16 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 12 03:37:16 2019 +0000"
      },
      "message": "Revert \"Additional sanity checking for JIT thresholds\"\n\nThis reverts commit 5a3e9fb4181bda1e7fc5d1775b93cc72207dcb5b.\n\nbug: 140587109\n\nReason for revert: Fails on ndebug builds\n\nChange-Id: Id62cf10c127e4c1c287c94dd5591f694190e830d\n"
    },
    {
      "commit": "5a3e9fb4181bda1e7fc5d1775b93cc72207dcb5b",
      "tree": "3a16085db34e061578418f2bbf79251f393fd3c0",
      "parents": [
        "2ea4ec09b7b672bdad802c9e78e34273b86734ef"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Sep 11 13:46:24 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 11 23:11:05 2019 +0000"
      },
      "message": "Additional sanity checking for JIT thresholds\n\nChange e3fc2d1644fd788509b834b01b83a28595721c47 reduced the frequency\nof calls to JIT::AddSamples(). The elaborate choices for \"default\"\nthreshold selection may fail debug sanity checks.\n\nBug: 140587109\nTest: art --gdb --64 --verbose -Xcompiler-option -g \\\n      -Xjitthreshold:10000 -Xmx512M -Xusejit:true -cp \\\n      ./java-benchmarks-v3.dex benchmarks.Recurse.java.Recurse\nTest: art --gdb --64 --verbose -Xcompiler-option -g \\\n      -Xjitthreshold:10 -Xmx512M -Xusejit:true -cp \\\n      ./java-benchmarks-v3.dex benchmarks.Recurse.java.Recurse\nTest: art/test/testrunner/testrunner.py --all-compiler --host -t 137-cfi\n\nChange-Id: I13034bdc0d8f98d818ea83b57b368351388deda6\n"
    },
    {
      "commit": "3b08bcce2d9c32e469ce11d247bed46439977cac",
      "tree": "cc719c563515446f647c01fbf170302ca349996c",
      "parents": [
        "0054aa59c50374751cc65e8de31a1d813912e67d"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Sep 11 09:48:51 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 11 19:41:04 2019 +0000"
      },
      "message": "Fixup inconsistency due to change in Plugin loading requirements.\n\nSome time ago plugin loading was changed to always occur with the\nthread in kNative (see commit 3a256b1d3689). This adds asserts that\nto plugin loading that the state is correct, fixes an incorrect\nlock-annotation and fixes a test plugin that was missed.\n\nTest: ./test.py --host\nTest: atest CtsJdwpTunnelHostTestCases\nTest: atest CtsJvmtiAttachingHostTestCases\nChange-Id: Ib27ab58e9a357fa308a33da13a86e8d65575e9f4\n"
    },
    {
      "commit": "0054aa59c50374751cc65e8de31a1d813912e67d",
      "tree": "e09f2fdc04fdfda86b2c7ecb3b980a3687323597",
      "parents": [
        "4945b29e6ea494fffc924f5940601af58d2b28ab"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Sep 10 16:46:48 2019 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Sep 11 17:17:22 2019 +0000"
      },
      "message": "Have JavaFrameRootInfo give more info about provenance of root.\n\nIt can be useful to differentiate between java frame roots being the\nmethods declaring class, from a proxy method, being unknown due to\nan imprecise walk or being indeterminable. This passes that\ninformation with the Vreg.\n\nTest: ./test.py --host\nBug: 134162467\n\nChange-Id: I74842d3eeedee5c836511e046652502a53de0f7e\n"
    },
    {
      "commit": "1092bf3003b4bc83f2cf613b769a72c13c6e3bca",
      "tree": "9d7738d96439362462aaa1aab65b318b8e17266d",
      "parents": [
        "5c93af3cc8894deefbc9cba69ea69526c45842aa"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 10 12:39:55 2019 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 10 12:39:55 2019 -0700"
      },
      "message": "Avoid creating runtime thread pool for system server\n\nThe thread pool is not required and would never be deleted since\nthere is NotifyStartupCompleted is not called.\n\nBug: 140777418\nTest: TH\nChange-Id: Ic6a83812a1d389730423796ddc01ee49e13cd91b\n"
    },
    {
      "commit": "5c93af3cc8894deefbc9cba69ea69526c45842aa",
      "tree": "6f79a408832449163fcb2e320ad992393a2e8f32",
      "parents": [
        "8f70b9672c13a5ca19cf2c54ace3cb2f342f743a"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Sep 09 10:51:16 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Sep 09 20:49:04 2019 +0000"
      },
      "message": "Loosen verifier around interface-invoke-super\n\nWe were being overly strict with interface-invoke-super and not\nallowing an interface to invoke-super into its own methods without\ngoing to the interpreter. This causes some scala programs to run\nmostly in the interpreter. Our compiler is able to handle this\ncorrectly so we should allow it without any soft-verification\nfailures.\n\nTest: ./test.py --host\nBug: 140589303\nChange-Id: I40d9510add5bbfd41d2e38b68973fce77880f7e6\n"
    },
    {
      "commit": "8f70b9672c13a5ca19cf2c54ace3cb2f342f743a",
      "tree": "6f7c3bfddf1a8beaa6f4e406cfe59929fce60ed2",
      "parents": [
        "7f8678ec4d2abec1f540fb441be60604bec86b6e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 06 22:25:34 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Sep 07 02:00:29 2019 +0000"
      },
      "message": "Revert \"Java Heap Profiler for Perfetto.\"\n\nThis reverts commit adf49d4bb3870b73e79982f75bacd917d3ec3bb2.\n\nReason for revert: Breaks tests.\n\nBug: 136210868\nChange-Id: If79f47e3151f1d1cb359b79b388b8aac9ee09074\n"
    },
    {
      "commit": "7f8678ec4d2abec1f540fb441be60604bec86b6e",
      "tree": "e36b4d32dfc47fcebadf0ee5c7e4d1e3d51412a6",
      "parents": [
        "84e5bb990d48263849bab132d80d753495bc7204"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 30 16:22:28 2019 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 06 18:40:59 2019 +0000"
      },
      "message": "Revert^2 \"Prevent overflow for AOT hotness counters\"\n\nFixed bug where sbc usage was incorrect. sbc does -1 + carry.\n\nTest: test/run-test --always-clean --runtime-option -Xcheck:jni --64 674-hotness-compiled\nTest: test/run-test --always-clean --runtime-option -Xcheck:jni 674-hotness-compiled\nBug: 139883463\n\nThis reverts commit 7ab07777b08db86dda2891f3e7ae15df8f25a599.\n\nChange-Id: I6f8ac0320592a94314386b04cdb0c7e0e6da6994\n"
    },
    {
      "commit": "acb12378f91cc96183b999721d2875e504bb8762",
      "tree": "7bb2f90e516f5d298cd971388310b683e22d3f95",
      "parents": [
        "adf49d4bb3870b73e79982f75bacd917d3ec3bb2"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Sep 06 10:04:01 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 06 13:16:57 2019 +0000"
      },
      "message": "Fix unhandled allocation failure\n\nAdd check in AllocateData before attempting to translate address.\n\nAdds hints that allocation failures are unlikely.\n\nBug: 140523064\nTest: TH\nChange-Id: I905557ce64f0a1aab7df4673859463ca27792f2b\n"
    },
    {
      "commit": "adf49d4bb3870b73e79982f75bacd917d3ec3bb2",
      "tree": "d318b68d4840140f9c1e78f324becb5db0c142fa",
      "parents": [
        "7ed5e6002fc493984b3a4887a867ef751a139b4d"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Tue Jul 09 17:57:16 2019 +0100"
      },
      "committer": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Fri Sep 06 10:05:17 2019 +0000"
      },
      "message": "Java Heap Profiler for Perfetto.\n\nThis adds a new ART plugin that waits for a signal (number 38), when\nreceived forks the process (so that the app stays responsive to the\nuser), then connects to Perfetto and writes out a proto describing the\ngraph of currently live ART objects.\n\nThis has several advantages over `am dumpheap`:\n* Because it forks, it has less impact on the user.\n* It only writes out the ownership graph, rather than also dumping the\n  contents of the heap.\n* As this is streamed into Perfetto, it can be correlated to other data\n  sources in the same trace file.\n\nTest: Flash; start data source; send signal 38; get heap dump\nBug: 136210868\n\nChange-Id: I1f75bc532fd0a6b8d5f7f474ac7154180677dedd\n"
    },
    {
      "commit": "ccb0b5fffa4b6e0bf501db90c6351e1a1584c648",
      "tree": "5a307224eb021007954f67edf625ee28d272e741",
      "parents": [
        "b3b803b69d5db392ea7cf7a1fea443d4ba133134"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Aug 15 18:10:50 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 02 09:39:46 2019 +0000"
      },
      "message": "jitzyogte: madvise away dex files after compilation.\n\nTell the OS we don\u0027t need them anymore, as we now have compiled code\nfor it.\n\nBug: 119800099\nTest: business card\nChange-Id: Ib6f969dcc68adabad3327a3272147ee383416772\n"
    },
    {
      "commit": "b3b803b69d5db392ea7cf7a1fea443d4ba133134",
      "tree": "b88c5d20a8784cfbd967b74aca40fd7476e72931",
      "parents": [
        "87fb032ee1e7ae98df26c646c450ef44e23fc805"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Aug 20 17:29:12 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Sep 01 21:08:43 2019 +0000"
      },
      "message": "Enable JIT dual data mapping.\n\nWe use it for zygote.  Enable it other cases\nas well for consistency, security and testing.\n\nTest: test.py -b --host --jit\nTest: device boots\nChange-Id: I07ed849b355d7e7f124b6806af41b60fa10bcea4\n"
    },
    {
      "commit": "87fb032ee1e7ae98df26c646c450ef44e23fc805",
      "tree": "6754b2d2a0e38277885a691d1be6f0d796478cc7",
      "parents": [
        "a86a5d162e6b59a32e8ea7991e6c8a157aca5a0a"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Aug 20 10:34:02 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Sep 01 21:08:43 2019 +0000"
      },
      "message": "Fix JIT data dual mapping for apps.\n\nWe don\u0027t use it now, but it would be nice to make it functional.\n\nMark the read-only memory as const, and fix the compile errors.\n\nTest: test.py -b --host --jit\nBug: 119800099\nChange-Id: Ic1c45072f3c97f560e843f95fb87b95f754c6e03\n"
    },
    {
      "commit": "7ab07777b08db86dda2891f3e7ae15df8f25a599",
      "tree": "1b0b2fa585e49e4a7913c09d67794763197c6490",
      "parents": [
        "154445799432cb53d23cd011485132be07c39b5a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Aug 30 08:26:59 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Aug 30 08:57:20 2019 +0000"
      },
      "message": "Revert \"Prevent overflow for AOT hotness counters\"\n\nThis reverts commit 79e6eb8b79be6249358b7801bc511290dacf10d0.\n\nBug: 139883463\n\nReason for revert: 674-hotness-compiled fails on target.\n\nChange-Id: I02fce74d70a4ae69dd5b4ae3924aa11728d9e16f\n"
    },
    {
      "commit": "775d38d8492ba8c60dba968064d6e0ac44e0b372",
      "tree": "dba772e1f12be33fe128cfaeda375654b74b3501",
      "parents": [
        "86459c058c387d76f96d6644e8ec9fb1aa7f165d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Aug 30 08:28:01 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Aug 30 08:57:20 2019 +0000"
      },
      "message": "Revert \"Fix profile saver hotness for AOT code\"\n\nThis reverts commit 4cb48c1bd359bee98a1a4c0cff475d76a3b5483a.\n\nBug: 139883463\n\nReason for revert: Test fails on target.\n\nChange-Id: I1b3a7aec961b212d92e457d52da6ab921044f491\n"
    },
    {
      "commit": "79e6eb8b79be6249358b7801bc511290dacf10d0",
      "tree": "1a04d214dd6223423abd442d8d9b0b61a3db2336",
      "parents": [
        "bae88c0759d48acf29b58d960ad2665e3462dfda"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Aug 26 12:33:46 2019 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 29 16:05:52 2019 +0000"
      },
      "message": "Prevent overflow for AOT hotness counters\n\nPrevious, the addition did not have a check for overflow and might wrap\naround since the counter is only 16 bits.\n\nModified the test to exercise this.\n\nThe slowdown from fixing the overflow is 2% average on golem arm32/64.\nOverall this brings the slowdown from the counter to ~15% from ~13%.\n\nThe benchmarks that regress the most are loopy ones that I would\nconsider non-representative. Code size increases by 0.6%.\n\nBug: 139883463\nTest: test/run-test --host --64 --prebuild 674-hotness-compiled\nTest: test/run-test --host --prebuild 674-hotness-compiled\nTest: test/run-test --64 --prebuild 674-hotness-compiled\nTest: test/run-test ---prebuild 674-hotness-compiled\n\nChange-Id: Icf0ab2aedbc40ab10c9d952ce0f9c7b5e5feaf15\n"
    },
    {
      "commit": "bae88c0759d48acf29b58d960ad2665e3462dfda",
      "tree": "bcb16cb53ef55171875730b27f562fa893cb88f6",
      "parents": [
        "4e8e0a5a2a6b0404a5ecd118e647adcb50c464af"
      ],
      "author": {
        "name": "jaishank",
        "email": "jaishankar.rajendran@intel.com",
        "time": "Tue Jun 11 16:47:45 2019 +0530"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 29 15:45:39 2019 +0000"
      },
      "message": "Supported AVX/AVX2 in art-interpreter\n\nPerformance Impact:\n10-12% Warm Launch Time Performance Improvement in YouTube App\n\nTest: run-test gtest\n\nChange-Id: I103147982a89dd6fc1ef1a271310de5c1804de21\nSigned-off-by: jaishank \u003cjaishankar.rajendran@intel.com\u003e\n"
    },
    {
      "commit": "4cb48c1bd359bee98a1a4c0cff475d76a3b5483a",
      "tree": "f017f7d687f94c4bd2f895a434a46185c03f0063",
      "parents": [
        "49484076e86b75b3449e18cc6827bd0a94ef1300"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 27 17:08:11 2019 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 29 01:37:05 2019 +0000"
      },
      "message": "Fix profile saver hotness for AOT code\n\nIf the counter is larger than the warm threshold, mark the method as\nhot. This fixes a bug for profiling arleady compiled methods where\nthey would not be marked as hot no matter what the counter was.\n\nAlso removed unused functions, and reverted HasSeenMethod to verify\nthat the method is hot.\n\nBug: 139883463\nTest: test-art-host\n\nChange-Id: I243e528e9f06da7223eed9b91ad613d4f1ad9524\n"
    },
    {
      "commit": "e09b87eb8d8c063ddaee53a70b4bc8dbf61ff66c",
      "tree": "df53a0996b9ae47422f4661edc2d7998cc57ba95",
      "parents": [
        "c88c1d0fbbc4bc230f08fd1e0fe7b652519c9236"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Aug 19 21:31:31 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Aug 28 10:24:35 2019 +0000"
      },
      "message": "JIT mini-debug-info: Support JIT data dual mapping.\n\nEnsure that we can add/remove mini-debug-info if the JIT data is\nread-only and we need to use the other mapping for writes.\n\nPointers into the read-only memory are marked as \"const\".\n\nTest: \"test.py -b --host --jit\" with data dual mapping\nTest: device boots with data dual mapping\nBug: 119800099\nChange-Id: I9399cffbe5ae13f08f698ab1598c30f13545a767\n"
    },
    {
      "commit": "c88c1d0fbbc4bc230f08fd1e0fe7b652519c9236",
      "tree": "7295e7e39530096cfe42a24326c28e22f7d4efdc",
      "parents": [
        "4ec4d48940696de077f88f9f8e9abdb178772301"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 27 08:18:46 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 27 18:09:57 2019 +0000"
      },
      "message": "Fully remove DumpKernelStack.\n\nAs explained in the previous commit touching this code, these days only\nroot can get the kernel stack trace anyway.\n\nTest: treehugger\nChange-Id: I9924951afa1f8511720c479598c3bd74f5a55c66\n"
    },
    {
      "commit": "4ec4d48940696de077f88f9f8e9abdb178772301",
      "tree": "b43474eded81a67650795b1b0b0fc35e2a12afc7",
      "parents": [
        "7263abc75f8d139f1efcae887870a2f537e45735"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Aug 01 10:00:23 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 27 17:09:27 2019 +0000"
      },
      "message": "ART: Verifier cleanup\n\nStart making the method verifier more independent of externalities.\nThis will be implemented as incremental changes.\n\nIncorporate suggestions from previous changes: some C++ cleanup.\n\nTest: m test-art-host\nChange-Id: If903239bee58858427f0eb3e3e37a1ca767529c5\n"
    },
    {
      "commit": "efd55b5b5837912c737eb0a9fa09954c8085e055",
      "tree": "43917185ef67c94326e1b27325dc617b92abb5bf",
      "parents": [
        "1ec82e562a31fbd7383555b610743d85b7b4a7d4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 26 09:25:20 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 27 05:13:38 2019 +0000"
      },
      "message": "Don\u0027t complain if we can\u0027t read /proc/self/task/pid/stack.\n\nWhy do we see the warning on every stack in an ANR? Because normally on\nAndroid you either won\u0027t have CONFIG_STACKTRACE, or you won\u0027t have\nPTRACE_MODE_ATTACH_FSCREDS. I\u0027m assuming this code still has some value\non the host, so I\u0027m just silencing the warning rather than deleting the\ncode.\n\nTest: treehugger\nChange-Id: I2f203bde87a6613d1b300a0020290c62bea4ac48\n"
    },
    {
      "commit": "9ac8e4327bd732e4b3b9b8dc6a29560013338d21",
      "tree": "b56840a0c7b0874f73e5db7259861c04f87df796",
      "parents": [
        "29e740fe64a8caeb04e0d686b4d1e290ba5ad1e6"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Aug 13 13:16:13 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Aug 22 20:00:55 2019 +0000"
      },
      "message": "JIT mini-debug-info: Allocate entries in the JIT data space.\n\nTest: test.py -b --host --jit\nTest: device boots\nBug: 119800099\nChange-Id: I7efa1e6e6660239cbd6438b829e08dd9cd079343\n"
    },
    {
      "commit": "82e347bd4e0afa7ab3895c197cc36242cf169db1",
      "tree": "dfd5647804f63cb790957b7ee2a10646e10ee1c9",
      "parents": [
        "05b0086ea31f281d61fdecd99921328b2dbf9f21"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Aug 15 17:45:05 2019 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Mon Aug 19 22:08:01 2019 +0000"
      },
      "message": "Increase kNotifyNativeInterval on host\n\nWe were still spending way too much time in mallinfo on some tests.\n\nBug: 136887041\nTest: Treehugger\nChange-Id: Ib60f19db1b526ae1567d35ce600c15afbbb49303\n"
    },
    {
      "commit": "c6175610512141a7d70e3a50e09ffac1606c3097",
      "tree": "50484eaf702569bcd636cad0f61fec080a8b4f66",
      "parents": [
        "e9455f61f7e45963c7056b51dbaf8bb42c47454a"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Jul 05 19:50:52 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Aug 16 19:05:23 2019 +0000"
      },
      "message": "ART: Add support for SVE feature for ARM64.\n\nImplement basic ISA feature configuration for SVE.\n\nTest: instruction_set_features_test\nTest: instruction_set_features_arm64_test\nChange-Id: I84963c6f896c435ecfb898f7f251039dfed8878a\n"
    },
    {
      "commit": "e9455f61f7e45963c7056b51dbaf8bb42c47454a",
      "tree": "acc00224ae83a5b876cd92b45a5569d0e6232a98",
      "parents": [
        "8fc2f95291206806599d4f2a50da529da85155b6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Aug 15 20:57:04 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Aug 16 13:30:31 2019 +0000"
      },
      "message": "Clear the boot task at fork.\n\nBug: 119800099\nTest: boot, system server doesn\u0027t JIT boot classpath methods.\nChange-Id: I83ba0f8f1c48c810856d333b3b355cae0a11f20f\n"
    },
    {
      "commit": "8fc2f95291206806599d4f2a50da529da85155b6",
      "tree": "c3c9de9a9a925d6ab790f6db466d1f9c17ed1010",
      "parents": [
        "9ce340f829f836560278ecd078fbefcf19c9d629"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jul 31 18:40:09 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Aug 16 09:10:55 2019 +0000"
      },
      "message": "JIT mini-debug-info: Remove global maps.\n\nKeep the extra bookkeeping information in JITCodeEntry.\n\nAlso do the compression eagerly during GC rather then lazily.\n\nTest: test.py -b --host --jit\nBug: 119800099\nChange-Id: Ie6cc682033a32c01d4c2cac242d8a4201116f940\n"
    },
    {
      "commit": "9ce340f829f836560278ecd078fbefcf19c9d629",
      "tree": "3327d6d7dd3c0ff86861cdab67791ee7c8dbe3b8",
      "parents": [
        "d4fc62c66328c0944348a314e3770b4f2b8006ce"
      ],
      "author": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Tue Jan 22 17:46:09 2019 +0000"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Aug 15 20:35:11 2019 +0000"
      },
      "message": "ARM64: toFloat() intrinsics with ARMv8 FP16.\n\nThis CL intrinsifies toFloat() method with ARMv8.2 FP16 instructions.\n\nThis CL depends on the android framework and libcore changes:\nmoving FP16 implementations into libcore.\n\nTested with local micro benchmark on Pixel 3, compared to original\nandroid.util.Half.toFloat() Java implementation, this intrinsic is\n50% faster.\n\nIn real-life case, the FP16 toFloat() intrinsic can help\naccelerate ColorLong ARGB decoding in Android framework.\n\nThis intrinsic implementation archieves bit-level compatibility with the\noriginal Java implementation android.util.Half.toFloat().\n\nTest: 580-fp16\nTest: art/test/testrunner/run_build_test_target.py -j80 art-test-javac\nTest: test-art-host, test-art-target\n\nChange-Id: I059c69747067b84f2c532465e32a1dcd3c25269f\n"
    },
    {
      "commit": "ac8f9369967cff7f31aca5e46db3041a3eda3dce",
      "tree": "e4d6c296c424c68f64fb085c1290779acb7ab455",
      "parents": [
        "ea5b4297d7748bb87a6f1133103df834ea16f227"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Aug 13 16:59:25 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Aug 15 07:10:32 2019 +0000"
      },
      "message": "JIT code cache: Don\u0027t set footprint limit for data portion.\n\nWe use code footprint limit to trigger GCs,\nbut we don\u0027t need it for data.\n\nThe mspace algorithm still only uses as few pages as possible.\n(otherwise we would have been wasting memory as it is now)\n\nThis stops the AllocateData() from unexpectedly failing.\n\nTest: test.py -b --host --jit\nBug: 119800099\nChange-Id: I5e59c9acf335d39d733592d0666f5e987136d883\n"
    },
    {
      "commit": "ea5b4297d7748bb87a6f1133103df834ea16f227",
      "tree": "779cbded6a35f9af09a263293b254f5004785b71",
      "parents": [
        "7ab5c0068017af31b417643f887930bd91715bce"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu Aug 08 16:27:21 2019 -0700"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Aug 14 16:56:16 2019 +0000"
      },
      "message": "Include evacuated bytes in heap size trace\n\nSince ConcurrentCopying collector creates copies of objects that are in\nthe evac from-space, we need to report this during GC cycle using\nTraceHeapSize().\n\nTest: Flash device, run and analyse perfetto trace.\nBug: 139020078\nChange-Id: Iff0da1de4c77da199c1c3b44ea488883e7fa4261\n"
    },
    {
      "commit": "a67daeba97fb1a469cb5764a7ced0d03fc206a38",
      "tree": "bc2c4f4bea8da9c2d7adb0bc3975edc775d4e2b7",
      "parents": [
        "d5a9587acd8fbc3aceddc51d436ebbec5633326c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Aug 12 10:41:25 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Aug 13 10:47:56 2019 +0000"
      },
      "message": "Fix race between post fork initialization and JIT.\n\nOnly start JIT threads after all zygote fork logic has been setup.\nFor robustness, also set the runtime state as the first thing post fork.\n\nTest: m\nChange-Id: Icf5db341275002599d0e89add4d9f6b2f799004d\n"
    },
    {
      "commit": "d5a9587acd8fbc3aceddc51d436ebbec5633326c",
      "tree": "3bad998c59ce8c7f76edb157d8b2a1a3a3d36698",
      "parents": [
        "bac080b0beec961671a7753c88780d8bf700fa40"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Aug 12 13:24:07 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Aug 13 06:18:54 2019 +0000"
      },
      "message": "Update the entrypoint with the code entrypoint, not the code pointer.\n\nThe entrypoint takes into account the \"| 1\" mask for thumb code.\n\nTest: boot and arm32 apps don\u0027t crash.\nChange-Id: I192e65d545e9934d73e4042d72da53e781ddf4a7\n"
    },
    {
      "commit": "44b977d9e2974cdbd8ef11f35919166dada92bda",
      "tree": "f9a883ca345ec204fb061364fef8c849d5d0d871",
      "parents": [
        "759845ff57929e26bfe922b30c814cb58e886bc1"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Aug 09 12:15:32 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Aug 12 17:54:47 2019 +0000"
      },
      "message": "Print more JIT memory use stats.\n\nAlso print the amount of resident(RSS) memory per category.\n\nTest: observe ANR log on device\nBug: 119800099\nChange-Id: Ic8a71de5c280fe42b656ed0e6383a45b0c185109\n"
    },
    {
      "commit": "a6f3583a027e6ef14eb7811f6a1c58e3eea1f5eb",
      "tree": "c9cd2efb0d06907ad3e17aa08cca655a196bc071",
      "parents": [
        "e47933ab3091a002806a3718cc626d2f8d84b620"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Aug 09 13:34:19 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Aug 12 09:51:39 2019 +0000"
      },
      "message": "Couple of small improvements in jitzygote config.\n\n- No need to lock the profile file (avoids having one of the zygote not\nprecompile methods).\n- Don\u0027t add to queue a method already marked as precompiled.\n- Don\u0027t JIT at boot for the secondary zygote.\n- Remove the ZygoteServer precompile workaround. We now have a boot\nprofile.\n\nBug: 119800099\nTest: boot\nChange-Id: Ifcc7d405a0bc8540796835a8fc6b65ea0a14b61e\n"
    },
    {
      "commit": "fa595885339140c3507f26d93cdc6b99081e23c5",
      "tree": "19d6240afee048aa37a778f09996c6ecad5266a6",
      "parents": [
        "918e9af6a7259e7178ec10257f568a60e832a962"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Aug 06 17:40:09 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Aug 09 07:36:39 2019 +0000"
      },
      "message": "Fix setting/getting the native priority of a thread.\n\nBug: 138415922\nTest: 720-thread-priority\nChange-Id: I6e1f34fce3838b7904281be00f315e5b7ade0c78\n"
    },
    {
      "commit": "918e9af6a7259e7178ec10257f568a60e832a962",
      "tree": "1f56177ca84debc27f942db38821d7eae10a4985",
      "parents": [
        "c94b44cee8376b86da85c2452e74edfe5ad4b2cf"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Wed Aug 07 17:15:24 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Aug 09 02:25:29 2019 +0000"
      },
      "message": "Add assembly support for -fsanitize\u003dhwaddress tagged globals.\n\nAs of LLVM r368102, Clang will set a pointer tag in bits 56-63 of the\naddress of a global when compiling with -fsanitize\u003dhwaddress. This requires\nan adjustment to assembly code that takes the address of such globals: the\ncode cannot use the regular R_AARCH64_ADR_PREL_PG_HI21 relocation to refer\nto the global, since the tag would take the address out of range. Instead,\nthe code must use the non-checking (_NC) variant of the relocation (the\nlink-time check is substituted by a runtime check).\n\nThis change makes the necessary adjustment in all of the places where it is\nneeded when compiling with -fsanitize\u003dhwaddress. The __clang_major__ \u003e\u003d 10\nis temporary (required because prebuilt Clang doesn\u0027t support :pg_hi21_nc:)\nand we should be able to remove it once we update Clang past r368102.\n\nTest: walleye_hwasan-userdebug boots\nChange-Id: Ide7f513baac42fdeb637e95a7f7c1c083441884d\n"
    },
    {
      "commit": "bfcea3dca82437ac6a0b824d6d2375629f7a0eaf",
      "tree": "e87d948f78c81f40217c5cd308097c788d39311c",
      "parents": [
        "6461124331de7707f3b109cec38337d851be997e"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Aug 05 15:44:00 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Aug 08 11:58:04 2019 +0000"
      },
      "message": "Jit-zygote: Postpone pre-compilation until boot is completed.\n\nCompile only needed (hot) methods during boot.\n\nThis saves about 1.5s from jit-zygote boot time.\n\nTest: device boots\nBug: 119800099\nChange-Id: If98540e42634bf1e9701231e5174d724e897ce67\n"
    },
    {
      "commit": "b41869adc0f69d38ca852aa8cce541ea1a2203d2",
      "tree": "57340ff0ca66c2c5e0bebad5141ef32e21638c50",
      "parents": [
        "f56393cc933f01327e0a3a1455f38b1b3ff550d0"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Aug 07 12:12:52 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Aug 07 16:50:15 2019 +0000"
      },
      "message": "Fix linker error in JitCompilerInterface\n\nBug: 139042560\nChange-Id: I592acbdbf5d739d61dffbe1e4688237a37db9e9b\n"
    },
    {
      "commit": "f56393cc933f01327e0a3a1455f38b1b3ff550d0",
      "tree": "70ec4475db963e89bac26081a07399699916c461",
      "parents": [
        "084fc289b4c0a1355e2c38076933bd80834a44d7"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Aug 02 15:49:27 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 07 16:43:35 2019 +0000"
      },
      "message": "Switch-interpreter: Inline field getters and setters.\n\nThis makes the interpreter 5% faster and code 1% smaller.\n\nTest: test.py -b --host --64 --interpreter\nChange-Id: If4c16ea84e9a975d7ccae5ef88200d54cf62e27f\n"
    },
    {
      "commit": "635967b5d16e25630276c23aa47daf52ec493ea1",
      "tree": "4f9cba20e58ae2997b4d693d4e1e76ccd684637f",
      "parents": [
        "8d5a215a7e879d8aa9c7d9d2791ed107ecc41f59"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Aug 07 10:15:39 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Aug 07 14:11:21 2019 +0000"
      },
      "message": "Remove \tmessage ART creates for \"throw null\".\n\nThe new version of R8 transforms:\n  throw new NullPointerException()\n\nInto:\n  throw null\n\nART used to create a message for the pattern \"throw null\", which is\nsomething that now breaks ObjectsTest.requireNonNull.\n\nTest: libcore.java.util.ObjectsTest#test_requireNonNull_T\nChange-Id: I142ddc74a9c0cfc76d2479eb92078b7a7d077b27\n"
    },
    {
      "commit": "46b5353fa5e5c5080926c3faa1263e08aa97f323",
      "tree": "e2894de7517caee5c826c16b6f172dcb1f021569",
      "parents": [
        "baa81b5f25e10dd054e3562688802468512f8f67"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Aug 06 13:39:05 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Aug 06 16:56:27 2019 +0000"
      },
      "message": "Simplify JIT compiler interface usage from the runtime.\n\nAvoid the excessive use of externs and reinterpret_casts.\n\nTest: test.py -b --host --64 --jit\nChange-Id: I179656a3a7c4e59d12c8f6d189c937ce07e0f122\n"
    },
    {
      "commit": "baa81b5f25e10dd054e3562688802468512f8f67",
      "tree": "3833d8d83baf6988e995b2dd757353f7925ba939",
      "parents": [
        "38a062eb7390f07ee0a318517f71d9b56491a5f7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 02 10:14:04 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Aug 05 20:35:53 2019 +0000"
      },
      "message": "Use ClassStatus::kVisiblyInitialized in interpreter.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --interpreter --interp-ac\nTest: aosp_taimen-userdebug boots.\nTest: run-gtests.sh\nTest: testrunner.py --target --interpreter --interp-ac\nBug: 36692143\nChange-Id: Ic081c3fab8fb98ba2667bc851fb2b7dd746e7020\n"
    },
    {
      "commit": "38a062eb7390f07ee0a318517f71d9b56491a5f7",
      "tree": "67204f1fbc785b888f9d5718e31cf22de6b2d727",
      "parents": [
        "e80ecf31e0d58a90d6b2a1d65ec090c03abc86dc"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 02 13:59:27 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 05 19:27:58 2019 +0000"
      },
      "message": "Weaken 2 DCHECK()s in reflection.\n\nReflection can be used on classes that are being initialized\nrather than just classes that are already initialized as we\nwere previously asserting.\n\nTest: Additional tests in 100-reflect2.\nChange-Id: I072c28533e9248856b49fddb4bc46109448ee8a9\n"
    },
    {
      "commit": "e80ecf31e0d58a90d6b2a1d65ec090c03abc86dc",
      "tree": "25eb1f6319f3194c79dfcec77753628e424cc476",
      "parents": [
        "d4d6fb50b5e1552c114529854e29c3af5c4eb9c1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 01 15:20:58 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 05 16:12:41 2019 +0000"
      },
      "message": "Rewrite the .data.bimg.rel.ro check in OatFile::Setup().\n\nIn preparation for loading boot image extensions before\nRuntime::Current()-\u003eGetClassLinker() has been initialized,\nchange the check to not rely on Runtime::Current() at all.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: Ica37c294a19e36e615186a0331d4d18c40c7fe2e\n"
    },
    {
      "commit": "81448a21dd3f2c4608496e6dc7a1f093dcccf1e0",
      "tree": "0b2bd5a6b9254a30d349fa2e72699a647219e2dc",
      "parents": [
        "5d93b8848c02c10001719be50c910cf6b156d233"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Aug 01 14:29:53 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Aug 02 09:35:12 2019 +0000"
      },
      "message": "Fix 638-checker-inline-cache-intrinsic\n\nFixes regression from CL/1092314\n\nTest: test.py -b -r -t 638 --host --ndebug\nChange-Id: I26397724a6cb7ee63d0e1536449f614ed36c14af\n"
    },
    {
      "commit": "7c502740ba2b3b8560b8d02af276b010392de5bb",
      "tree": "693d1abb0d04f197a11ecddb8ccbc39ce942a1dc",
      "parents": [
        "c14ec8facf0ea51e7531fa0acbed3410468b0356"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 01 12:47:18 2019 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 01 20:21:52 2019 +0000"
      },
      "message": "Fix Heap::UnBindBitmaps for spaces without bitmaps\n\nSpaces that don\u0027t have a bitmap can\u0027t have their bitmaps unbound.\n\nTest: test/testrunner/run_build_test_target.py -j50 art-debug-gc\nBug: 116052292\nChange-Id: Icbd9fab5bdec5fbc7f23bd02d45d600201387d6d\n"
    },
    {
      "commit": "c14ec8facf0ea51e7531fa0acbed3410468b0356",
      "tree": "a70bc3cffcaf763e4951c96918bc6f8b25a472b3",
      "parents": [
        "147a911636402f2658ce60bd3ad62eb197b00f74"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jul 18 16:08:41 2019 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Aug 01 17:50:27 2019 +0000"
      },
      "message": "Add resize arrays JVMTI extension\n\nAs a prototype for more general object replacement functionality add a\nnew JVMTI extension that allows one to change the size of arrays. This\nextension is \u0027com.android.art.heap.change_array_size\u0027. As far as any\nJVMTI agent, JNI or Java Language code can observer this extension\natomically replaces every reference (strong and weak, global and\nlocal, etc.) with a newly allocated array with the same contents but a\ndifferent length. Internally a whole new array will be created then\nthe old array will have its contents (including lock-word) copied and\nall references to the old array will be replaced with the new array.\n\nTest: ./test.py --host\nBug: 134162467\n\nChange-Id: I92a0beabb02e0c92c8c8f9639836014ff1266878\n"
    },
    {
      "commit": "147a911636402f2658ce60bd3ad62eb197b00f74",
      "tree": "2fb507267d7bad2e906be49c4b18e709e4d706a2",
      "parents": [
        "b90cad58077cd44411c2a1617aec7b6798e6a295"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 31 16:17:10 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 01 17:01:19 2019 +0000"
      },
      "message": "ART: Remove FailOrAbort for unnecessary cases\n\nThe dex file verifier now correctly checks that the instruction array is\nnot empty. As such, index zero is always an instruction.\n\nSlightly refactor code for readability.\n\nTest: m test-art-host\nChange-Id: I3141944beef58a409c5ae52ba27fb5ce5945f9d1\n"
    },
    {
      "commit": "b90cad58077cd44411c2a1617aec7b6798e6a295",
      "tree": "fdebb5c0c8e93d8680cb14bca5925483371ca153",
      "parents": [
        "d1abab7110101d65774f9d090850d20aaa07b661"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 31 16:15:41 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 01 17:01:19 2019 +0000"
      },
      "message": "ART: Move find-locks code up in the callchain\n\nMove the code into the caller and templatize the caller to save some\ninstructions and branches for the common case.\n\nTest: m test-art-host\nChange-Id: I6eee7b60e3f17db778ab98a49126b206c8547a2c\n"
    },
    {
      "commit": "0134a28ec42f5c96a3dffcf496bf1af05d0942dc",
      "tree": "0b8857236fe1aab89718daee8219c4eb9408ad21",
      "parents": [
        "86bf068459252f58686c71bd24dadd76aba45c8b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 29 11:34:55 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 01 17:01:19 2019 +0000"
      },
      "message": "ART: Verifier cleanup\n\nStart making the method verifier more independent of externalities.\nThis will be implemented as incremental changes.\n\nReorder impl::MethodVerifier\u0027s constructor arguments to have all\nsuperclass arguments first. In an effort to simplify additions.\n\nTest: m test-art-host\nChange-Id: Iba119d74b0dd2dc8c4831efa823c191df6975d9d\n"
    },
    {
      "commit": "86bf068459252f58686c71bd24dadd76aba45c8b",
      "tree": "837520d122851c85c2be2297ffe439735ebc00a4",
      "parents": [
        "422a9ebc5b9d780a3201243f02b58652b44d9896"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 29 11:22:44 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 01 17:01:19 2019 +0000"
      },
      "message": "ART: Verifier cleanup\n\nStart making the method verifier more independent of externalities.\nThis will be implemented as incremental changes.\n\nSome cleanup moving small function definitionss into their\ndeclaration.\n\nTest: m test-art-host\nChange-Id: I0b109572e0f892844966e0c25478d6306b2a5d6f\n"
    },
    {
      "commit": "422a9ebc5b9d780a3201243f02b58652b44d9896",
      "tree": "4fcd6abe72d70358d7bf6235266ab685b61678a1",
      "parents": [
        "9f18fbc433bba51a5b81249989a8726558135528"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 01 12:54:07 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 01 16:54:29 2019 +0000"
      },
      "message": "Do not hold lock when making class visibly initialized.\n\nDoing so can lead to deadlocks.\n\nBug: 138561860\nBug: 36692143\nTest: New test 177-visibly-initialized-deadlock\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nTest: run-gtests.sh\nTest: testrunner.py --target --optimizing\nChange-Id: I6195a4a5a7d865f90c529da684697b9a3e23ff30\n"
    },
    {
      "commit": "9f18fbc433bba51a5b81249989a8726558135528",
      "tree": "5a293f961924edf35f6ad4be9935a71c5ba69761",
      "parents": [
        "6f382013399fc8ba8b2717e4d24d91978d2bc0f7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jul 31 15:06:12 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 01 16:36:41 2019 +0000"
      },
      "message": "Make classes visibly initialized faster.\n\nReduce the batch size from 32 to 16 and the trigger count\nfrom 1024 to 128.\n\nThis may help system health micro-benchmarks (b/138601570)\nbut I\u0027m unable to run the forrest tests locally to verify.\n\nBug: 138601570\nBug: 36692143\nTest: m\nChange-Id: I4d938ddbd284ebe624d146eca9ad59ceefeba4d4\n"
    },
    {
      "commit": "6f382013399fc8ba8b2717e4d24d91978d2bc0f7",
      "tree": "53b6bca63d5a1c34b2a60e5d8ef39f7cb22d4fe9",
      "parents": [
        "2b9c8c94fc92c6f2c7c1703efc1793d17ffde297"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jul 30 09:47:35 2019 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 01 16:17:17 2019 +0000"
      },
      "message": "Refactor space bitmap to be a value object\n\nRemove the need for pointer indirections at many places, reduce the\namount of code.\n\nBug: 116052292\nTest: test-art-host\nChange-Id: I4b1040d29f9ba99ea23c51f70a06af2ffbe496d4\n"
    },
    {
      "commit": "8e1106587f0273116302afe06956129b5d82784a",
      "tree": "e1869e8da9ab9a6bfdf89a34f4e8cedd44045005",
      "parents": [
        "5a11036542fbd2c00de1896c0ae2477f655e8ed3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 30 10:14:41 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 01 08:35:08 2019 +0000"
      },
      "message": "Use ClassStatus::kVisiblyInitialized for allocations.\n\nAnd move the \"intialized but not visibly initialized\" check\nto ClassLinker::EnsureIntialized().\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nTest: run-gtests.sh\nTest: testrunner.py --target --optimizing\nBug: 36692143\nChange-Id: Ib5e19326b1149b2aef586b905ce89470c3a8e405\n"
    }
  ],
  "next": "2182147af64ac462635d212473c3ffab400a7831"
}
