)]}'
{
  "log": [
    {
      "commit": "ade74a610f4f7e6e243234530cd0743bef6c00a2",
      "tree": "484a643abdae9480940451205418d58632281f7a",
      "parents": [
        "57ce054a06ca6e5b9a2572ed1607066e6a55f628"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Aug 08 15:55:42 2018 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 21 18:57:07 2018 +0100"
      },
      "message": "Add a check to ConcurrentCopying::MarkNonMoving for sticky-bit case.\n\nTest: ART run-tests \u0026 gtests, libcore tests, JDWP tests (host \u0026 device)\nTest: Device/emulator boot test\nBug: 67628039\nBug: 12687968\nChange-Id: Ia94634a10e2dc1b1fe3d58503a31f2edc6c175e0\n"
    },
    {
      "commit": "57ce054a06ca6e5b9a2572ed1607066e6a55f628",
      "tree": "3531cb7ad346f07b4c3e5832c3fe047e8e506870",
      "parents": [
        "b1e1dc3aa52e6bb258adabede233d98266d0e1f5"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 07 16:20:31 2018 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 21 17:53:01 2018 +0100"
      },
      "message": "Improve logging in Sticky-Bit CC collector.\n\nTest: ART run-tests \u0026 gtests, libcore tests, JDWP tests (host \u0026 device)\nTest: Device/emulator boot test\nBug: 67628039\nBug: 12687968\nChange-Id: Id8232a47410ac7fada0a87cf142e7e437572d031\n"
    },
    {
      "commit": "b1e1dc3aa52e6bb258adabede233d98266d0e1f5",
      "tree": "830c8c6b7aeea562bb9b6709819fdb850df80881",
      "parents": [
        "5c4b3cc8b167ff492e5ec6d414416b67c7dd501f"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jul 10 19:19:31 2018 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 21 17:53:01 2018 +0100"
      },
      "message": "Sweep only objects in the live stack in sticky-bit CC collections.\n\nReuse the same strategy used in sticky-bit Concurrent Mark-Sweep\n(CMS) collections for sticky-bit Concurrent Copying (CC) collections\nwalk the live stack (which contains allocations made outside the\nregion space since the previous GC thread flip phase) and free\nunmarked objects.\n\nAs a side effect, this change address a bug that used to trigger GC\ncrashes during a sticky-bit CC (young-generation) collection involving\nan unreachable newly allocated object in the non-moving space with a\ndangling reference to an object cleared or moved from a newly\nallocated region of the region space.\n\nTest: ART run-tests \u0026 gtests, libcore tests, JDWP tests (host \u0026 device)\nTest: Device/emulator boot test\nBug: 67628039\nBug: 12687968\nChange-Id: If5d94d854effdc8a614c1c3e3facb2221824aff2\n"
    },
    {
      "commit": "5c4b3cc8b167ff492e5ec6d414416b67c7dd501f",
      "tree": "0cf8f2b2fa59bd34e404ae2040aec83c82750eab",
      "parents": [
        "c69199570ed834c99e36cf56fdc10e960b13236d",
        "a29afd5e06bbc8bc444fe36e8607b132b5a50b49"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 21 16:48:20 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 21 16:48:20 2018 +0000"
      },
      "message": "Merge \"Remove special case for young-gen collection in ConcurrentCopying::IsMarked.\""
    },
    {
      "commit": "c69199570ed834c99e36cf56fdc10e960b13236d",
      "tree": "5d6016aa879021b35333792cef9e21cbfafd6244",
      "parents": [
        "9c924258dd3764af816bec48a5a609f796d2b6b2",
        "5c54d8643802d5fb4764049a6aa7e500d1c9998e"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 21 16:47:16 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 21 16:47:16 2018 +0000"
      },
      "message": "Merge \"Restore bitmap marking in non-moving space in ConcurrentCopying::Copy.\""
    },
    {
      "commit": "9c924258dd3764af816bec48a5a609f796d2b6b2",
      "tree": "91951b47e2b1879df26276d871de174d9452bed6",
      "parents": [
        "348d10084f59ffe70619e9a25374ead424379669",
        "dd509acc6d916df7cff91c51ad0666f60b75dfc0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 21 16:46:55 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 21 16:46:55 2018 +0000"
      },
      "message": "Merge \"ARM/ARM64: Rewrite art_quick_do_long_jump.\""
    },
    {
      "commit": "348d10084f59ffe70619e9a25374ead424379669",
      "tree": "f69bf96432a6f9c8078e6c86efc706410e776c56",
      "parents": [
        "7c0c794790f49c417ef42c19676c29f06b09a383",
        "4e7511364e21e55078ce8434dd8a7ffacbe0037b"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 21 16:46:41 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 21 16:46:41 2018 +0000"
      },
      "message": "Merge \"Rework the newly-allocated region logic in RegionSpace.\""
    },
    {
      "commit": "7c0c794790f49c417ef42c19676c29f06b09a383",
      "tree": "8a93f9f2702818288abc2d5a92e5a33e6fcb9438",
      "parents": [
        "d9205b84810e44fbe7fa2b4548f13d79e1eb5368",
        "91ab8db448065e1ed556f034652fcd87f7e81d71"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 21 16:44:28 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 21 16:44:28 2018 +0000"
      },
      "message": "Merge \"Have ZeroLiveBytesForLargeObject process all the regions of a large object.\""
    },
    {
      "commit": "d9205b84810e44fbe7fa2b4548f13d79e1eb5368",
      "tree": "d5502cb2954b77e1a9b0a3a6c5694da676023895",
      "parents": [
        "e1cb52f93dfdd053b993746f7dad20bce4123991",
        "8d1a996144cbb005892f34788fb2b248abd17571"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 21 16:43:28 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 21 16:43:28 2018 +0000"
      },
      "message": "Merge \"Experimental Sticky-Bit (Generational) CC collection\""
    },
    {
      "commit": "e1cb52f93dfdd053b993746f7dad20bce4123991",
      "tree": "f2b9af2a91e267d3003aef12a3097280c84f2332",
      "parents": [
        "c0417890a7ff0bc13d01c67d2edb18fae923a4c9",
        "cf6c442f57b92596790c05969cc409c6f7a87c07"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Tue Aug 21 16:22:40 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 21 16:22:40 2018 +0000"
      },
      "message": "Merge \"Refactoring to support more annotation types.\""
    },
    {
      "commit": "c0417890a7ff0bc13d01c67d2edb18fae923a4c9",
      "tree": "32dcdec35122b998496ca7bdadf35bcbb425c910",
      "parents": [
        "88cf462fc30ceaa1493f9d58e47985cf0cd82112",
        "09d041b214f54e0866516b18b44e44f28d7be70b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 21 15:11:22 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 21 15:11:22 2018 +0000"
      },
      "message": "Merge \"Reduce memory usage by other deps in scheduler.\""
    },
    {
      "commit": "dd509acc6d916df7cff91c51ad0666f60b75dfc0",
      "tree": "4516c4413f9c23464567984f40dc794c07dda7c8",
      "parents": [
        "f345404c725330914b8313d2c1af17226c5b92ca"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 21 13:59:26 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 21 16:08:03 2018 +0100"
      },
      "message": "ARM/ARM64: Rewrite art_quick_do_long_jump.\n\nAvoid accessing memory below SP.\nAvoid using a deprecated instruction on ARM.\n\nLoad all registers except IP on ARM and IP0, IP1 on ARM64.\nWe previously didn\u0027t load r1 on ARM (where obsolete\ncomments described it as a return value) and x1 on ARM64\nbut it\u0027s preferable to restore these properly, clobbering\ninterprocedural scratch registers instead. This may be\nuseful if we eventually decide to allocate dex registers\nto physical registers for catch handlers in compiled code.\n\nTest: Pixel 2 XL boots.\nTest: testrunner.py --target --optimizing\nChange-Id: I273ac79bf36c999e937a164a88b7075b24f930c5\n"
    },
    {
      "commit": "cf6c442f57b92596790c05969cc409c6f7a87c07",
      "tree": "3351da8dae021d7b641021bb7bc0f8be7443dac2",
      "parents": [
        "20893eef2fe90eef24cc0f7c2f213b10d8515050"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Mon Aug 20 16:42:45 2018 +0100"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Tue Aug 21 15:15:43 2018 +0100"
      },
      "message": "Refactoring to support more annotation types.\n\nSplit the actual annotation handling logic out of AnnotationVisitor,\ninstead delegating to a new AnnotationHandler interface. The visitor now\nsimply takes a map of annotation name to handler, and delegate all the\ninteresting work.\n\nCreate a new GreylistAnnotationHandler for dealing with the existing\n@UnsupportedAppUsage annotations.\n\nAdd support for writing to a whitelist file too, though this is not used\nyet in this CL. A new parameter --write-whitelist specifies a filename to\nwrite this to.\n\nAlso refactor the tests along similar lines.\n\nBug: 112186571\nTest: atest class2greylisttest\nChange-Id: Ic4da92f3499da7f40f9207ad1776ad79d76464a4\n"
    },
    {
      "commit": "88cf462fc30ceaa1493f9d58e47985cf0cd82112",
      "tree": "d5dadbb69645f083ea50611e3973dcf6cf3a5431",
      "parents": [
        "c0dec2236b976794ff8f6cc3c2f41c36756ffaf9",
        "c34bebf39410f5571d3d5813157b61f274d435c3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 21 14:08:32 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 21 14:08:32 2018 +0000"
      },
      "message": "Merge \"Remove unnecessary indirection from MemMap.\""
    },
    {
      "commit": "c0dec2236b976794ff8f6cc3c2f41c36756ffaf9",
      "tree": "5354bafea925f227111ae48a58f1bfd51e4b351f",
      "parents": [
        "20893eef2fe90eef24cc0f7c2f213b10d8515050",
        "27c3df546db6507170ccd0e1da2fbb9397594099"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Aug 21 14:04:14 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 21 14:04:14 2018 +0000"
      },
      "message": "Merge \"Optimize the mterp field setter.\""
    },
    {
      "commit": "20893eef2fe90eef24cc0f7c2f213b10d8515050",
      "tree": "d6756e9680d7f53770159967ec5b892849e63c0f",
      "parents": [
        "2ea7c19a13900db1e3c85fb224723d7aeb2b9fbe",
        "3866641884c1661bbaae4864cbda2b61b8caaa86"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Tue Aug 21 13:08:38 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 21 13:08:38 2018 +0000"
      },
      "message": "Merge \"Support for maxTargetSdk on @UnsupportedAppUsage.\""
    },
    {
      "commit": "c34bebf39410f5571d3d5813157b61f274d435c3",
      "tree": "73909d3b34a2908e9de44cc60c4a2ff74eabefd7",
      "parents": [
        "f345404c725330914b8313d2c1af17226c5b92ca"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 16 16:12:49 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 21 13:51:00 2018 +0100"
      },
      "message": "Remove unnecessary indirection from MemMap.\n\nAvoid plain MemMap pointers being passed around by changing\nthe MemMap to moveable and return MemMap objects by value.\nPreviously we could have a valid zero-size MemMap but this\nis now forbidden.\n\nMemMap::RemapAtEnd() is changed to avoid the explicit call\nto munmap(); mmap() with MAP_FIXED automatically removes\nold mappings for overlapping regions.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nTest: m test-art-target-gtest\nTest: testrunner.py --target --optimizing\nChange-Id: I12bd453c26a396edc20eb141bfd4dad20923f170\n"
    },
    {
      "commit": "2ea7c19a13900db1e3c85fb224723d7aeb2b9fbe",
      "tree": "d382b14a78d67206f583405a575b178f4c739ded",
      "parents": [
        "c202be5363004a3954f57b66e8d6093b07de93a5",
        "00cbb4113bd646df142406fa080ecc3e7687091b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 21 12:06:57 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 21 12:06:57 2018 +0000"
      },
      "message": "Merge \"Avoid crash when ANDROID_DATA is not writeable.\""
    },
    {
      "commit": "00cbb4113bd646df142406fa080ecc3e7687091b",
      "tree": "a86056c7f4d0a2cd75fce122bb89d7badbaf1085",
      "parents": [
        "e3f0656a1852b9fb619fdcb369755ea324767c0e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 21 11:36:16 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 21 11:49:43 2018 +0100"
      },
      "message": "Avoid crash when ANDROID_DATA is not writeable.\n\nIn this situation, the `dalvik_cache` filename is non-empty\nbut the cache directory cannot be created, so the variable\n`dalvik_cache_exists` is false triggering a wrong DCHECK().\nWe relax the DCHECK() and adjust related code.\n\nThe bug was introduced in\n    https://android-review.googlesource.com/734702 .\n\nAlso prevent running dex2oat if the cache does not exist,\nthe dex2oat would previously fail anyway due to the empty\n--image\u003d parameter.\n\nTest: Extra test in image_space_test.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 112848347\nBug: 112827048\nChange-Id: Ib82a3885773e95a7bdb0835499ea564f31e75eea\n"
    },
    {
      "commit": "27c3df546db6507170ccd0e1da2fbb9397594099",
      "tree": "6287e36343646f3bfd7b76d41ea780d4148346ab",
      "parents": [
        "ffa15ea5b19d4616b5c7b1e8ac76cca91038005d"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Aug 20 15:00:23 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Aug 21 11:13:09 2018 +0100"
      },
      "message": "Optimize the mterp field setter.\n\nSame as getters. FindFieldFast does ligth-weight access checks\nwhich are not necessary when running under mterp.\n\nThis reduces the overhead of non-quickened code from 1.35x to 1.25x.\n(golem benchmarks on arm64 with quickening manually disabled)\n\nTest: profiled benchmark locally on host\nChange-Id: I6ccb45ee28de0a395798448e8e5d181ea11c3876\n"
    },
    {
      "commit": "c202be5363004a3954f57b66e8d6093b07de93a5",
      "tree": "580aca6bdd843a66e0fb7692dbe01f9a1a6f4c1b",
      "parents": [
        "e3f0656a1852b9fb619fdcb369755ea324767c0e",
        "03cca37570d80897f73570d57ce96f9727fc9a48"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Aug 21 09:55:00 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 21 09:55:00 2018 +0000"
      },
      "message": "Merge \"Fix unhiding API in JVMTI redefine run-tests\""
    },
    {
      "commit": "e3f0656a1852b9fb619fdcb369755ea324767c0e",
      "tree": "fd281550c960648f4b1460432e31ab7fa513706f",
      "parents": [
        "99d31998b679a3e48b9e5db0b9b40d5b472bace4",
        "e85595e8edf1dade430f53e6149cffd41d74f629"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Aug 20 17:10:49 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 20 17:10:49 2018 +0000"
      },
      "message": "Merge \"Add explicit native method test to 988\""
    },
    {
      "commit": "03cca37570d80897f73570d57ce96f9727fc9a48",
      "tree": "e0193de2bad51564bf561d73f5d56c31f6779652",
      "parents": [
        "ea82529238b18f0b5cffa368efa3450cdcfd063c"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Aug 20 17:25:28 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Aug 20 17:35:13 2018 +0100"
      },
      "message": "Fix unhiding API in JVMTI redefine run-tests\n\nWhen JVMTI redefines a boot classpath dex file, it creates a copy of\nit, reverts quickening and removes hidden API access flags. This logic\nwould not, however, remove hidden API access flags when there is a vdex\nbut no quickening info. This patch changes the logic to unhide API\nunconditionally. Production code is not affected as not unhiding merely\ntrips a DCHECK.\n\nBug: 111694487\nTest: art/test/testrunner/testrunner.py --interp-ac --target \\\n      -t 980-redefine-object -t 983-source-transform-verify\nChange-Id: I3a2987e19faa0ddf299a1ebbd72cc975b93aeebf\n"
    },
    {
      "commit": "99d31998b679a3e48b9e5db0b9b40d5b472bace4",
      "tree": "90d422091490edacc0093e678e5d709fb11bbb7e",
      "parents": [
        "f345404c725330914b8313d2c1af17226c5b92ca",
        "82e1e27283fb08b462cc3584814196b680c76587"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Aug 20 16:08:32 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 20 16:08:32 2018 +0000"
      },
      "message": "Merge \"Revert^2 \"Refactor image loading.\"\""
    },
    {
      "commit": "82e1e27283fb08b462cc3584814196b680c76587",
      "tree": "90d422091490edacc0093e678e5d709fb11bbb7e",
      "parents": [
        "f345404c725330914b8313d2c1af17226c5b92ca"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Aug 20 13:38:06 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Aug 20 15:31:19 2018 +0100"
      },
      "message": "Revert^2 \"Refactor image loading.\"\n\nThis reverts commit 701b6eecf8cc219e88e1a2b5b5921bd698fe8d85.\n\nAnd fixes the boot class path retrieval. Monolithic boot\nimage does not contain the boot class path.\n\nChange-Id: I6978e0f1fa0acda8acd43be007ac1a90a8fd9f98\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nTest: m test-art-target-gtest\nTest: testrunner.py --target --optimizing\nBug: 112827048\n"
    },
    {
      "commit": "3866641884c1661bbaae4864cbda2b61b8caaa86",
      "tree": "8cee2b12b4bd27fe426eb43e46a71099080845eb",
      "parents": [
        "f345404c725330914b8313d2c1af17226c5b92ca"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Thu Aug 09 11:11:22 2018 +0100"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Mon Aug 20 15:04:08 2018 +0100"
      },
      "message": "Support for maxTargetSdk on @UnsupportedAppUsage.\n\nclass2greylist now supports writing to multiple output greylist files\nspecified on the command line like so:\n\nclass2greylist --write-greylist lightgrey.txt \\\n               --write-greylist 26:p-blacklist.txt \\\n\t       --write-greylist 28:q-blacklist.txt\n\nIf no --write-greylist parameter is specified, then all annotated\ninterfaces will simply be written to standard out as before. This\nmaintains the previous behaviour, and de-couples this change from the\ncorresponding build changes.\n\nAny maxTargetSdk parameters will be validated against the set of valid\nvalues given in the --write-greylist parameters. If no such parameters\nare given, the valid values are: 26 (O), 28 (P) or none.\n\nTest: atest class2greylisttest\nBug: 110868826\nChange-Id: Id001d5427b1d399f3af98444b501e8405531a66d\n"
    },
    {
      "commit": "f345404c725330914b8313d2c1af17226c5b92ca",
      "tree": "1be9666f9ea0ce08304256062aaae03d7312ca70",
      "parents": [
        "ea82529238b18f0b5cffa368efa3450cdcfd063c",
        "701b6eecf8cc219e88e1a2b5b5921bd698fe8d85"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 20 13:26:23 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 20 13:26:23 2018 +0000"
      },
      "message": "Merge \"Revert \"Refactor image loading.\"\""
    },
    {
      "commit": "701b6eecf8cc219e88e1a2b5b5921bd698fe8d85",
      "tree": "8c59a26d010fd2bf7c308426af145835dcc3622f",
      "parents": [
        "3934736709a38f312d9c04707e4f8bb7ca73cb22"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Aug 20 12:16:30 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Aug 20 12:16:30 2018 +0000"
      },
      "message": "Revert \"Refactor image loading.\"\n\nThis reverts commit 3934736709a38f312d9c04707e4f8bb7ca73cb22.\n\nReason for revert: Breaks image_space_test on target.\n\nBug: 112827048\nChange-Id: Ia3b2e93c2d075a4cd7093df4e1674cadb83ce560\n"
    },
    {
      "commit": "ea82529238b18f0b5cffa368efa3450cdcfd063c",
      "tree": "888cbd1058aa5c2d369c034296781d44aea33ce9",
      "parents": [
        "c884be0345c3d64d20b9296b0ed675fc3b2e58bd",
        "693f21c7fb412c30afbc292ef47e4cd884f54e56"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Aug 20 09:28:44 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 20 09:28:44 2018 +0000"
      },
      "message": "Merge \"Re-enable ART\u0027s region space memory protection on host.\""
    },
    {
      "commit": "c884be0345c3d64d20b9296b0ed675fc3b2e58bd",
      "tree": "e8021cf18b7c7682271cb7a29f030c5903d14a4a",
      "parents": [
        "0e595d372a64d99e44cef920fd833de3ce62cb60",
        "3782c870e9c563bef11981ab61aee6c112c329b1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Aug 18 00:19:21 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Aug 18 00:19:21 2018 +0000"
      },
      "message": "Merge \"Update bytecode experiments\""
    },
    {
      "commit": "0e595d372a64d99e44cef920fd833de3ce62cb60",
      "tree": "4894623ad71bf957c25009e35e1b57ba501bb9c3",
      "parents": [
        "134380d7c70d95962ed818458185e608ad17ff08",
        "33b7b5da331e0a10fc615c8df72ba2aefad4e3fb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Aug 17 23:31:37 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 17 23:31:37 2018 +0000"
      },
      "message": "Merge \"Revert^2 \"Fix race in CommitCodeInternal and cleanup\"\""
    },
    {
      "commit": "e85595e8edf1dade430f53e6149cffd41d74f629",
      "tree": "df6d474f41b38d1deddceb63bb6c6a5a84611cf5",
      "parents": [
        "134380d7c70d95962ed818458185e608ad17ff08"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Aug 17 15:54:34 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Aug 17 15:54:34 2018 -0700"
      },
      "message": "Add explicit native method test to 988\n\nRealized this test doesn\u0027t include any explicit check that native\nmethods are traced correctly and this will be useful to have for\nfuture work.\n\nTest: ./test.py --host -j50\nChange-Id: I208458b6fe7d69e4d78e6757aa5ef2b437665edb\n"
    },
    {
      "commit": "33b7b5da331e0a10fc615c8df72ba2aefad4e3fb",
      "tree": "4894623ad71bf957c25009e35e1b57ba501bb9c3",
      "parents": [
        "134380d7c70d95962ed818458185e608ad17ff08"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Aug 07 19:13:51 2018 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Aug 17 14:40:51 2018 -0700"
      },
      "message": "Revert^2 \"Fix race in CommitCodeInternal and cleanup\"\n\nThis reverts commit 8dde74eb7bec8e989f34d86a01c26b0f5c7e6443.\n\nWe were failing to do a null check in cha.cc. Due to compiler\noptimizations this would actually run without error on non-asan\nbuilds, causing the error to pass testing.\n\nReason for revert: Fixed issue causing asan issue.\nTest: run asan tests\n\nChange-Id: Ic5492c69b7735555108d8b18c8e687ce510c4549\n"
    },
    {
      "commit": "134380d7c70d95962ed818458185e608ad17ff08",
      "tree": "52ec5855ed2a68836d964042a5a3447f0ad194ac",
      "parents": [
        "821a512ef47c1f59d3f0a6fcd4d5cf3e46566518",
        "ffa15ea5b19d4616b5c7b1e8ac76cca91038005d"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Aug 17 17:19:09 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 17 17:19:09 2018 +0000"
      },
      "message": "Merge \"Optimize the mterp field getter.\""
    },
    {
      "commit": "ffa15ea5b19d4616b5c7b1e8ac76cca91038005d",
      "tree": "52658073e7ebe1bb28aade424862faf08a734099",
      "parents": [
        "afebd20bbe771d75c6dcd622d5219568cc702012"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Aug 16 10:04:11 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Aug 17 16:26:23 2018 +0100"
      },
      "message": "Optimize the mterp field getter.\n\nCarefully optimize the C++ helper function to make it faster.\nUse the macro less by using templated helper methods.\n\nThis reduces the overhead of non-quickened code from 1.45x to 1.35x.\n(golem benchmarks on arm64 with quickening manually disabled)\n\nTest: test.py --host\nChange-Id: I1904e1edcb14573ac247c552c9b73ae704c57217\n"
    },
    {
      "commit": "821a512ef47c1f59d3f0a6fcd4d5cf3e46566518",
      "tree": "7b50e01bfff6fb971252cc6f5301143dfa15488b",
      "parents": [
        "afebd20bbe771d75c6dcd622d5219568cc702012",
        "3934736709a38f312d9c04707e4f8bb7ca73cb22"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 17 13:02:51 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 17 13:02:51 2018 +0000"
      },
      "message": "Merge \"Refactor image loading.\""
    },
    {
      "commit": "a29afd5e06bbc8bc444fe36e8607b132b5a50b49",
      "tree": "664c30f0dbf1305f540492c6133d2a70495e63bd",
      "parents": [
        "5c54d8643802d5fb4764049a6aa7e500d1c9998e"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jan 29 18:24:17 2018 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Aug 16 17:52:50 2018 +0100"
      },
      "message": "Remove special case for young-gen collection in ConcurrentCopying::IsMarked.\n\nMethod art::gc::collector::ConcurrentCopying::IsMarked contained a\nshort-circuit for non-region spaces in the case of young-generation\ncollection, that would return the reference as-is. This change disables\nthis code, as it seemed to break reference processing, which relies on\nart::gc::collector::ConcurrentCopying::IsNullOrMarkedHeapReference and\nart::gc::collector::ConcurrentCopying::IsMarked.\n\nTest: ART run-tests \u0026 gtests, libcore tests, JDWP tests (host \u0026 device)\nTest: Device/emulator boot test\nBug: 67628039\nBug: 12687968\nChange-Id: Iab7a8261a2a13f2f36516ec267dd1b3f574f0324\n"
    },
    {
      "commit": "5c54d8643802d5fb4764049a6aa7e500d1c9998e",
      "tree": "57865b00781ae826fb578279f6dae8cfc32d4e29",
      "parents": [
        "4e7511364e21e55078ce8434dd8a7ffacbe0037b"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jan 17 14:46:24 2018 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Aug 16 17:50:59 2018 +0100"
      },
      "message": "Restore bitmap marking in non-moving space in ConcurrentCopying::Copy.\n\nWhen copying an (evac) from-space reference to the non-moving space in\nConcurrentCopying::Copy, also mark it in the heap mark bitmap, like it\nused to be. (This marking operation was removed in\nhttps://android-review.googlesource.com/257901.)\n\nThis addresses an issue with Sticky-Bit (Generational) CC collection,\nwhere an assertion in\nConcurrentCopying::AssertToSpaceInvariantInNonMovingSpace could fail\nwhen checking a reference in the non-moving space, that would happen\nto be unmarked (and not on the allocation stack).\n\nTest: ART run-tests \u0026 gtests, libcore tests, JDWP tests (host \u0026 device)\nTest: Device/emulator boot test\nBug: 67628039\nBug: 12687968\nChange-Id: Id21540a77c6c9f90e819377473951b4887f2f6bf\n"
    },
    {
      "commit": "09d041b214f54e0866516b18b44e44f28d7be70b",
      "tree": "607da2425d2a6d7920ad344f5a16126c0d3c49ce",
      "parents": [
        "d7a0192ffa9c9015f0980b1aaa694e914a37d57f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jul 30 12:51:59 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 16 16:13:44 2018 +0100"
      },
      "message": "Reduce memory usage by other deps in scheduler.\n\nRely on transitive dependencies instead of adding the full\nset of side effect dependencies.\n\nCompiling a certain apk, the most memory hungry method has\nthe scheduler memory allocations in ArenaStack hidden by\nthe register allocator:\n  - before:\n    MEM: used: 155744672, allocated: 168446408, lost: 12036488\n    Scheduler     155744672\n  - after:\n    MEM: used: 5181680, allocated: 7096776, lost: 114752\n    SsaLiveness     4683440\n    RegAllocator     314312\n    RegAllocVldt     183928\nThe total arena memory used, including the ArenaAllocator\nnot listed above, goes from 167170024 to 16607032 (-90%).\n(Measured with kArenaAllocatorCountAllocations\u003dtrue,\nkArenaAllocatorPreciseTracking\u003dfalse.)\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 64312607\nChange-Id: I825bcfb490171070c46ad6d1f460785f4e75cfd7\n"
    },
    {
      "commit": "693f21c7fb412c30afbc292ef47e4cd884f54e56",
      "tree": "593c9a041d4eede4d3c636f5c580680fffa519f5",
      "parents": [
        "afebd20bbe771d75c6dcd622d5219568cc702012"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Aug 10 14:50:26 2018 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Aug 16 15:03:23 2018 +0100"
      },
      "message": "Re-enable ART\u0027s region space memory protection on host.\n\nMemory protection of unused regions was disabled on host because of\nspurious errors due to old kernel issues on some machines. These\nproblems have presubmably been fixed since, so let\u0027s re-enable that\nmechanism.\n\nTest: art/test.py --host\nBug: 63131961\nBug: 74064045\nChange-Id: Ieb03540fd205401a2b031e0d4c90444b5b2c8aed\n"
    },
    {
      "commit": "afebd20bbe771d75c6dcd622d5219568cc702012",
      "tree": "0b2daed800ea6cfd179275b6d3dc31ef8eb0a72e",
      "parents": [
        "38c7dbc82fef7ebcc79a23edd875a4670aa03e34",
        "9cb18154df4c5745b611cf4872035c2fbcdecc48"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Aug 16 10:20:27 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 16 10:20:27 2018 +0000"
      },
      "message": "Merge \"Protect all of ART\u0027s region space from the start.\""
    },
    {
      "commit": "38c7dbc82fef7ebcc79a23edd875a4670aa03e34",
      "tree": "08a64f45a0b0e73678c31b7effa5b34db2583b09",
      "parents": [
        "8780c78a1f54265a37a9389ecc6b55c050955728",
        "de3bd98600548b1367138891a73a95a2b345c84b"
      ],
      "author": {
        "name": "Tamas Kenez",
        "email": "tamaskenez@google.com",
        "time": "Thu Aug 16 09:39:31 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 16 09:39:31 2018 +0000"
      },
      "message": "Merge \"Update 3 art tests\u0027 check expectations for D8 v1.3.15-dev.\""
    },
    {
      "commit": "8780c78a1f54265a37a9389ecc6b55c050955728",
      "tree": "9b9aa6d75907d9dc6591790540202146a08797f7",
      "parents": [
        "1c6bfee0d54f291a866775a6d79af4c18d357506",
        "104bab605071a20bfe7c086962e55e251027570c"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Aug 16 09:00:16 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 16 09:00:16 2018 +0000"
      },
      "message": "Merge \"Add specialized handler for non-quickened opcodes in mterp.\""
    },
    {
      "commit": "104bab605071a20bfe7c086962e55e251027570c",
      "tree": "3da7b043a47c47114375b01014946c854ae91560",
      "parents": [
        "d7a0192ffa9c9015f0980b1aaa694e914a37d57f"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Aug 07 17:09:01 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Aug 16 09:49:31 2018 +0100"
      },
      "message": "Add specialized handler for non-quickened opcodes in mterp.\n\nThe generic handler did access checks but this is unnecessary since\nmterp should only be used in cases where we don\u0027t need access check.\nI believe that this is just simple oversight that was never spotted.\n\nNon-quickened code is currently 1.9x slower than quickened code.\nThis reduces it to 1.45x - essentially halving of the overhead.\n(golem benchmarks on arm64 with quickening manually disabled)\n\nTest: test-art-host-gtest\nChange-Id: Icd29aeff3bf25baaae9a9a07072ddd3448e4d92c\n"
    },
    {
      "commit": "1c6bfee0d54f291a866775a6d79af4c18d357506",
      "tree": "9acf946b6c6d4b0e3b5b8f2c5af8d21938577679",
      "parents": [
        "326220ff49f857ca336429e9ff99bc414203aafa",
        "0549663b1cdf8c6386685c7c2e3d3ec27c8c0bc6"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Aug 16 08:19:54 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 16 08:19:54 2018 +0000"
      },
      "message": "Merge \"Rename Thread native methods to match OpenJDK 8u121-b13\""
    },
    {
      "commit": "4e7511364e21e55078ce8434dd8a7ffacbe0037b",
      "tree": "26fb7beea13bc96f1d406fcee68163ef8ba4d6f6",
      "parents": [
        "91ab8db448065e1ed556f034652fcd87f7e81d71"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jan 15 11:52:58 2018 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Aug 15 19:57:39 2018 +0100"
      },
      "message": "Rework the newly-allocated region logic in RegionSpace.\n\n- Mark large (and large tail) regions as \"newly allocated\" in\n  RegionSpace::AllocLarge when they are allocated for non-evac\n  purposes, the same way non-large regions were already marked\n  as \"newly allocated\" in RegionSpace::AllocateRegion when\n  they were allocated for non-evac purposes.\n- Clear the \"newly allocated\" status of regions only when\n  setting them as (evac) from-space and non-evac from-space.\n\nThis addresses an issue with Sticky-Bit (Generational) CC collection,\nwhere an assertion in ConcurrentCopying::VerifyNoMissingCardMarks\ncould fail when a recently allocated large region held a dead large\nobject holding a (presumably stale) object reference pointing to a\nnewly allocated (non-large) region.\n\nTest: ART run-tests \u0026 gtests, libcore tests, JDWP tests (host \u0026 device)\nTest: Device/emulator boot test\nBug: 67628039\nBug: 12687968\nChange-Id: Idd20c159db9359ee783a421ec699d3e3aa450552\n"
    },
    {
      "commit": "91ab8db448065e1ed556f034652fcd87f7e81d71",
      "tree": "da733e9c5508b1760feb475e9947a581b440d7db",
      "parents": [
        "8d1a996144cbb005892f34788fb2b248abd17571"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jan 11 18:15:41 2018 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Aug 15 19:57:16 2018 +0100"
      },
      "message": "Have ZeroLiveBytesForLargeObject process all the regions of a large object.\n\nWhen executing `RegionSpace::ZeroLiveBytesForLargeObject(obj)`, in\naddition to zero-ing the live bytes count of the large region starting\nat address `obj`, also zero the live bytes count of the associated\nlarge tail regions.\n\nThis addresses an issue with Sticky-Bit (Generational) CC collection,\nwhere an assertion in RegionSpace::ClearFromSpace could fail when\nprocessing a large unevac from-space region whose allocated bytes were\nall live.\n\nTest: ART run-tests \u0026 gtests, libcore tests, JDWP tests (host \u0026 device)\nTest: Device/emulator boot test\nBug: 67628039\nBug: 12687968\nChange-Id: I66379803adc05f6e090833e4e698a4b749fcaff0\n"
    },
    {
      "commit": "0549663b1cdf8c6386685c7c2e3d3ec27c8c0bc6",
      "tree": "65e68a8114afee103e98016dbe1bd6c402a698a6",
      "parents": [
        "017d63c144081b8977d63ecf3f67a7677ba77593"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Aug 03 12:52:21 2018 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Aug 15 18:47:29 2018 +0100"
      },
      "message": "Rename Thread native methods to match OpenJDK 8u121-b13\n\nRenames the following native methods:\n* nativeSetPriority -\u003e setPriority0\n* nativeSetName -\u003e setNativeName\n* nativeInterrupt -\u003e interrupt0\n\nTested using:\n  make checkbuild, flash and CtsLibcoreTestCases\n  art/test/testrunner/run_build_test_target.py -j80 art-test\n\nBug: 80180276\nTest: see above\nChange-Id: I83ac240dfc108a2bf7f6c33895c9046b74707072\n"
    },
    {
      "commit": "326220ff49f857ca336429e9ff99bc414203aafa",
      "tree": "b4ee804a4d37a4bc18d5de5323e1a3af037029fd",
      "parents": [
        "f39942a02fb6795bb63fa1386e9aad02dd7469cc",
        "2f4a7b65193ceeadf4c4c1eeffc558e8fb87b3a4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 15 17:04:43 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 15 17:04:43 2018 +0000"
      },
      "message": "Merge \"Fix a bug with volatile fields.\""
    },
    {
      "commit": "f39942a02fb6795bb63fa1386e9aad02dd7469cc",
      "tree": "73f3a79a63e4825ae0509093342683e99c94d9c0",
      "parents": [
        "fef0c5ada51ffddb2a6bf2d6c74e7866b13ca43e",
        "d887ed8228ea2f8dfd3a178a0d0923275402e1fd"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 15 16:46:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 15 16:46:34 2018 +0000"
      },
      "message": "Merge \"Revert^2 \"ARM: Reimplement the UnsafeCASObject intrinsic.\"\""
    },
    {
      "commit": "8d1a996144cbb005892f34788fb2b248abd17571",
      "tree": "73d00933b1e0e06027e5d53f739de935174f9c18",
      "parents": [
        "d7a0192ffa9c9015f0980b1aaa694e914a37d57f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 17 16:39:45 2016 -0700"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Aug 15 16:52:33 2018 +0100"
      },
      "message": "Experimental Sticky-Bit (Generational) CC collection\n\nUse the card table to quickly collect regions allocated since the\nlast GC. This is similar in behavior to sticky CMS.\n\nTODO: This is using the existing sticky CMS ergonomics, we can\nmaybe improve on these.\n\nGuard Generational Concurrent Copying collection with compile-time\nflag art::kEnableGenerationalConcurrentCopyingCollection, set by\nenvironment variable ART_USE_GENERATIONAL_CC.\n\nTest: ART run-tests \u0026 gtests, libcore tests, JDWP tests (host \u0026 device)\nTest: Device/emulator boot test\nBug: 67628039\nBug: 12687968\nChange-Id: I9c8023b71a029b0a73527cf67d924675c4c14305\n"
    },
    {
      "commit": "de3bd98600548b1367138891a73a95a2b345c84b",
      "tree": "7be3fd8a688c5a8c9a2f079baaab1f2f22932562",
      "parents": [
        "2b1a76fec7d1f7ba8b013c7d0967d216ef662a22"
      ],
      "author": {
        "name": "Tamas Kenez",
        "email": "tamaskenez@google.com",
        "time": "Wed Aug 15 15:30:56 2018 +0200"
      },
      "committer": {
        "name": "Tamas Kenez",
        "email": "tamaskenez@google.com",
        "time": "Wed Aug 15 15:33:28 2018 +0000"
      },
      "message": "Update 3 art tests\u0027 check expectations for D8 v1.3.15-dev.\n\nTest: art/test/run-test --host 458-checker-instruct-simplification\n      art/test/run-test --host 618-checker-induction\n      art/test/run-test --host 669-checker-break\nChange-Id: I136bc6306a3c3dc01dfe4e7b3780863e709d5138\n"
    },
    {
      "commit": "fef0c5ada51ffddb2a6bf2d6c74e7866b13ca43e",
      "tree": "d724685492bdd9b686e13b27ad3c9f35c52464a9",
      "parents": [
        "d7a0192ffa9c9015f0980b1aaa694e914a37d57f",
        "ca3ddeddba1b819b91ea9a62c2b2446c8929666f"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Aug 15 15:30:25 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 15 15:30:25 2018 +0000"
      },
      "message": "Merge \"Remove region space memory protection before logging heap corruption.\""
    },
    {
      "commit": "2f4a7b65193ceeadf4c4c1eeffc558e8fb87b3a4",
      "tree": "1c95d37c537df2a7e7bbca9115f8b114360eb626",
      "parents": [
        "2b1a76fec7d1f7ba8b013c7d0967d216ef662a22"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Thu Aug 09 11:11:22 2018 +0100"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Wed Aug 15 16:25:23 2018 +0100"
      },
      "message": "Fix a bug with volatile fields.\n\nThe access bit for bridge methods is also used for volatile fields, so\nignore that bit if the member is not a method. Add some test cases for\nthis too.\n\nTest: atest class2greyisttest\nBug: 110868826\nChange-Id: I895ee3af50ad658a714e55ad328714edec6cc4a1\n"
    },
    {
      "commit": "d887ed8228ea2f8dfd3a178a0d0923275402e1fd",
      "tree": "371d9baee8747966818904962fc99d5834a489c6",
      "parents": [
        "d7a0192ffa9c9015f0980b1aaa694e914a37d57f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 14 13:52:12 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 15 15:50:39 2018 +0100"
      },
      "message": "Revert^2 \"ARM: Reimplement the UnsafeCASObject intrinsic.\"\n\nThis reverts commit f28be439b97623ebad540f7a1e3f9f1e3436b001.\n\nThe regression test for the revert reason was added in\n    https://android-review.googlesource.com/731508 .\nWe fix the problem by introducing a specialized entrypoint\nfor the UnsafeCASObject intrinsic introspection marking\nwhere we read the destination register from the right bits.\n\nChange-Id: I1838abe05474be009d0fd96125efebd7f6dd9c59\nTest: m test-art-host-gtest\nTest: Pixel 2 XL boots.\nTest: testrunner.py --target --optimizing --32\nTest: ART_HEAP_POISONING\u003dtrue testrunner.py --target --optimizing --32\nBug: 36141117\n"
    },
    {
      "commit": "3934736709a38f312d9c04707e4f8bb7ca73cb22",
      "tree": "336430fe50f899a74a514791413e480a29c2995b",
      "parents": [
        "d7a0192ffa9c9015f0980b1aaa694e914a37d57f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 08 11:12:47 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 15 15:04:32 2018 +0100"
      },
      "message": "Refactor image loading.\n\nTry to load all boot class path components from the same\nplace (system or dalvik cache) instead of looking for each\ncomponent image file separately.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: If5d9f39c6ec21d9be05fe36a42c70224d6fef27a\n"
    },
    {
      "commit": "d7a0192ffa9c9015f0980b1aaa694e914a37d57f",
      "tree": "8c59a26d010fd2bf7c308426af145835dcc3622f",
      "parents": [
        "2b1a76fec7d1f7ba8b013c7d0967d216ef662a22",
        "5c84472ef4ec70867bd76ba6076c264f641cb130"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 15 14:02:33 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 15 14:02:33 2018 +0000"
      },
      "message": "Merge \"ART: Improve test 160-read-barrier-stress.\""
    },
    {
      "commit": "2b1a76fec7d1f7ba8b013c7d0967d216ef662a22",
      "tree": "b0e71b905f42235db42b756eb4d350cb1c516e3e",
      "parents": [
        "017d63c144081b8977d63ecf3f67a7677ba77593",
        "14e5a29a8c5dcd971376a4a04b3c3b05100b3f86"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Aug 15 10:55:10 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 15 10:55:10 2018 +0000"
      },
      "message": "Merge \"Rename art::ReadBarrier::WhiteState as art::ReadBarrier::NonGrayState.\""
    },
    {
      "commit": "5c84472ef4ec70867bd76ba6076c264f641cb130",
      "tree": "b00b3930bbbc0efdf2abb1638657b7ee8c06a54b",
      "parents": [
        "9e113dd00d94526d7e6e546ac9bd4f066db3a019"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 15 09:56:57 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 15 10:30:11 2018 +0100"
      },
      "message": "ART: Improve test 160-read-barrier-stress.\n\nAdd tests for reading references for which we do not hold a\nto-space reference. Rewrite the test to test fields, arrays,\nGC roots and Unsafe separately, so that reads in one of the\ntests do not affect other tests and we exercise more code\npaths in the Baker read barriers with introspection.\n\nAdd a regression test for the reverted\n    https://android-review.googlesource.com/729224\nwhich erroneously clobbered r0 on ARM in UnsafeCASObject.\n\nTest: testrunner.py --target 160-read-barrier-stress\nTest: Repeat with the bad CL; fails for ARM, OK for ARM64.\nBug: 36141117\nChange-Id: I0cbc5f5b9a78865ba7ca14ae166ee19d7cf8dd3f\n"
    },
    {
      "commit": "3782c870e9c563bef11981ab61aee6c112c329b1",
      "tree": "5c85849a69025979945e9827491c5e097b1aead0",
      "parents": [
        "92a97be0450977e40b969dec8fde66caf4aa8287"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 14 19:25:47 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 14 20:19:37 2018 -0700"
      },
      "message": "Update bytecode experiments\n\nAdd a constexpr boolean for always storing the invoke result in r0.\n\nCleaned up instruction blob counting to be correct for added prefix\ninstructions.\n\nBug: 77808483\nBug: 77721545\nTest: test-art-host\n\nChange-Id: If03451e879cccb30a544a1bb597698fa658e032e\n"
    },
    {
      "commit": "017d63c144081b8977d63ecf3f67a7677ba77593",
      "tree": "b70aa68ecf91e2eb894e43a7d9fc12a1cf13c456",
      "parents": [
        "92a97be0450977e40b969dec8fde66caf4aa8287",
        "3b8aa77c8c4c458e69ae8872a22f68894b94ef4a"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Aug 14 22:07:32 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 14 22:07:32 2018 +0000"
      },
      "message": "Merge \"Pause GC during deoptimization work\""
    },
    {
      "commit": "3b8aa77c8c4c458e69ae8872a22f68894b94ef4a",
      "tree": "55f6576cbaae0c06ad5ed32f8da8e8357f04a92f",
      "parents": [
        "350b6a312222b9b27bfee0e72ce261a45cb60e1c"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Aug 13 15:55:44 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Aug 14 13:25:15 2018 -0700"
      },
      "message": "Pause GC during deoptimization work\n\nWhen we are deoptimizing code we should stop the gc to prevent\ndeadlocks. This change also reorganizes gc pause code a bit to make\nthis simpler to implement.\n\nTest: ./test.py --host\nBug: 79175795\nChange-Id: I00000ab608231a7fd1627d69d58216b9115a47ca\n"
    },
    {
      "commit": "92a97be0450977e40b969dec8fde66caf4aa8287",
      "tree": "903ee9721f056311da9ba64f24d6f834dd1393f7",
      "parents": [
        "e0943873483cb2169e5360e1f746931a3371aa24",
        "4b233677a7b83e7961ba605191909c9d40b507e7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 14 18:12:45 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 14 18:12:45 2018 +0000"
      },
      "message": "Merge \"Delete ClassDataItemIterator\""
    },
    {
      "commit": "9cb18154df4c5745b611cf4872035c2fbcdecc48",
      "tree": "77cac8e21e0621f28bd1f9ee401e877d5efbf2b3",
      "parents": [
        "ca3ddeddba1b819b91ea9a62c2b2446c8929666f"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Aug 10 15:45:05 2018 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 14 19:10:44 2018 +0100"
      },
      "message": "Protect all of ART\u0027s region space from the start.\n\nWe used to only protect memory regions upon clearing them (meaning\nthey had been allocated before). This change protects all\nregions (which are all initially unused) from the start.\n\nTest: art/test.py\nBug: 74064045\nChange-Id: I30e6b151063164783f20fecbfa9aa50a8a50327a\n"
    },
    {
      "commit": "ca3ddeddba1b819b91ea9a62c2b2446c8929666f",
      "tree": "eb98e53b285f5218bf12469d23332e08810cf038",
      "parents": [
        "e0943873483cb2169e5360e1f746931a3371aa24"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Aug 10 15:35:17 2018 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 14 19:10:44 2018 +0100"
      },
      "message": "Remove region space memory protection before logging heap corruption.\n\nDuring heap corruption logging, before reading memory from the region\nspace (to produce debugging information), make sure all of the space\u0027s\npages are readable to prevent a memory protection fault (which would\ninterrupt debug logging.\n\nTest: art/test.py\nBug: 74064045\nChange-Id: I6c804abef7fae602b80c0a2d1020ce870fa6b681\n"
    },
    {
      "commit": "14e5a29a8c5dcd971376a4a04b3c3b05100b3f86",
      "tree": "81c607cde36b6481ed2cd2d8b41293f62a5521f8",
      "parents": [
        "e0943873483cb2169e5360e1f746931a3371aa24"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jun 28 12:00:56 2018 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 14 18:01:43 2018 +0100"
      },
      "message": "Rename art::ReadBarrier::WhiteState as art::ReadBarrier::NonGrayState.\n\nThe read barrier state recorded in object\u0027s lockword used to be a\nthree-state value (white/gray/black), which was turned into a\ntwo-state value (white/gray), where the \"black\" state was conceptually\nmerged into the \"white\" state. This change renames the \"white\" state\nas \"non-gray\" and adjusts corresponding comments.\n\nTest: art/test.py\nChange-Id: I2a17ed15651bdbbe99270c1b81b4d78a1c2c132b\n"
    },
    {
      "commit": "e0943873483cb2169e5360e1f746931a3371aa24",
      "tree": "c5fdf8d02f8bb23218513c9159090ff783df0ef0",
      "parents": [
        "6e1faf4af246ebfb05505cebd8ca0db48aa3bae6",
        "c73f05242a6688c8edec46c1ff257a1efbd4b519"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 14 16:55:40 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 14 16:55:40 2018 +0000"
      },
      "message": "Merge \"Document the use of the biased card table in ART\u0027s code generators.\""
    },
    {
      "commit": "6e1faf4af246ebfb05505cebd8ca0db48aa3bae6",
      "tree": "92aa923069d5a934aee798e2ba614a6a4db44b67",
      "parents": [
        "9e113dd00d94526d7e6e546ac9bd4f066db3a019",
        "94796f8e1b1d920c6107ffddf4efdabcf85e1da4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 14 16:49:43 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 14 16:49:43 2018 +0000"
      },
      "message": "Merge \"ARM64: Reimplement the UnsafeCASObject intrinsic.\""
    },
    {
      "commit": "94796f8e1b1d920c6107ffddf4efdabcf85e1da4",
      "tree": "e6c068b622bc60b1570eb1c54d3ddeea4972b1a2",
      "parents": [
        "248141f724cbb9d436f13181b5301172c4385cc2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 08 15:15:33 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 14 16:36:39 2018 +0100"
      },
      "message": "ARM64: Reimplement the UnsafeCASObject intrinsic.\n\nFor the UnsafeCASObject with Baker read barriers, drop the\nold code updating the field. Perform the main path CAS loop\nand redirect the flow for failure to a slow path that marks\nthe old value and compares it with the expected value (if\nnot marking, this is just a few instructions to determine\nthat they differ). If it\u0027s the same, the old value is known\nto be the from-space reference to the expected object and\nthe slow path performs a modified CAS loop checking for both\nexpected object references (from-space and to-space).\n\nTest: Already covered by the 160-read-barrier-stress.\nTest: m test-art-host-gtest\nTest: Pixel 2 XL boots.\nTest: testrunner.py --target --optimizing --64\nTest: ART_HEAP_POISONING\u003dtrue testrunner.py --target --optimizing --64\nBug: 36141117\nChange-Id: I175806dbc003640c9bb6759be6788311bcc9310c\n"
    },
    {
      "commit": "c73f05242a6688c8edec46c1ff257a1efbd4b519",
      "tree": "68b95952ec9710da3aabf7a686725692a9fd5cf5",
      "parents": [
        "9e113dd00d94526d7e6e546ac9bd4f066db3a019"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 14 15:16:50 2018 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 14 15:20:33 2018 +0100"
      },
      "message": "Document the use of the biased card table in ART\u0027s code generators.\n\nTest: n/a\nChange-Id: Ie03a6f6dc87fd0766fc2b685ec39a0a0ebe3fb57\n"
    },
    {
      "commit": "9e113dd00d94526d7e6e546ac9bd4f066db3a019",
      "tree": "7e76fa49a59b7bbb0ce2b2ba0cad32066f630951",
      "parents": [
        "9fa87195cad2025f6f71c127ce7cf6c0a013015e",
        "7d9052c43ddefaf3818695805c6e78da4e357875"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 14 14:18:10 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 14 14:18:10 2018 +0000"
      },
      "message": "Merge \"Speed up chroot process lookup in ART Buildbot tear-down script.\""
    },
    {
      "commit": "9fa87195cad2025f6f71c127ce7cf6c0a013015e",
      "tree": "afebe3aeb68333e71030ed8fa9dd41450971a356",
      "parents": [
        "bf414729f50f5b03d1a4df130547b3769ad18dd3",
        "f28be439b97623ebad540f7a1e3f9f1e3436b001"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 14 13:27:22 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 14 13:27:22 2018 +0000"
      },
      "message": "Merge \"Revert \"ARM: Reimplement the UnsafeCASObject intrinsic.\"\""
    },
    {
      "commit": "7d9052c43ddefaf3818695805c6e78da4e357875",
      "tree": "f847d9abcc4aa04b4124f43a20fbac8f68501cf0",
      "parents": [
        "bf414729f50f5b03d1a4df130547b3769ad18dd3"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 14 13:57:33 2018 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 14 14:07:23 2018 +0100"
      },
      "message": "Speed up chroot process lookup in ART Buildbot tear-down script.\n\nInstead of executing \"adb shell readlink\" on every file matching the\nsearch pattern (\"/proc/*/root\") to find symbolic links to the chroot\ndir, filter the output of \"adb shell ls -ld\" and iterate on that\nsublist directly. Reduces the script execution time from 53s to 3s in\nlocal testing.\n\nTest: Rely on the ART Buildbot\nBug: 34729697\nChange-Id: Ib2ce38b37cdcec43c2ea966c89d13de794e91380\n"
    },
    {
      "commit": "f28be439b97623ebad540f7a1e3f9f1e3436b001",
      "tree": "8828a0e319fa692c4a80e8cecadff7b68a845faa",
      "parents": [
        "1bf0b7ad2fc6ba0cc51d0df2890f9f2d0b05b32b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 14 12:20:51 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 14 12:42:28 2018 +0000"
      },
      "message": "Revert \"ARM: Reimplement the UnsafeCASObject intrinsic.\"\n\nThis reverts commit 1bf0b7ad2fc6ba0cc51d0df2890f9f2d0b05b32b.\n\nReason for revert: The introspection entrypoint would read the\ndestination register from the wrong bits.\n\nBug: 36141117\nChange-Id: I67c40ba9fb5a834fc5565149269d66a716438e9b\n"
    },
    {
      "commit": "bf414729f50f5b03d1a4df130547b3769ad18dd3",
      "tree": "a6e662a2bba4279c1c53ccdbb88fabfc1d32b2aa",
      "parents": [
        "69648a8011d9de22d408800fb63ae42d3a7ecb56",
        "1bf0b7ad2fc6ba0cc51d0df2890f9f2d0b05b32b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 14 12:07:07 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 14 12:07:07 2018 +0000"
      },
      "message": "Merge \"ARM: Reimplement the UnsafeCASObject intrinsic.\""
    },
    {
      "commit": "69648a8011d9de22d408800fb63ae42d3a7ecb56",
      "tree": "afebe3aeb68333e71030ed8fa9dd41450971a356",
      "parents": [
        "d55446b7c62acaecf01f4ffd03d8a0d0b0f4e448",
        "0dcb17ffacdd07e5c110557479a05cedd679faee"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Aug 14 11:46:59 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 14 11:46:59 2018 +0000"
      },
      "message": "Merge \"Tweak the \"art --perf\" helper command.\""
    },
    {
      "commit": "1bf0b7ad2fc6ba0cc51d0df2890f9f2d0b05b32b",
      "tree": "76e97da9d2819558771b03061fabac01de488b11",
      "parents": [
        "248141f724cbb9d436f13181b5301172c4385cc2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 10 14:22:10 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 14 10:30:43 2018 +0100"
      },
      "message": "ARM: Reimplement the UnsafeCASObject intrinsic.\n\nClean up the shared code for all the UnsafeCAS* intrinsics\nto avoid deprecated instructions (IT should only be followed\nby a single 16-bit instruction) and simplify heap poisoning\ncode (to be more readable at the cost of performance).\n\nFor the UnsafeCASObject with Baker read barriers, drop the\nold code updating the field. Perform the main path CAS loop\nand redirect the flow for failure to a slow path that marks\nthe old value and compares it with the expected value (if\nnot marking, this is just a few instructions to determine\nthat they differ). If it\u0027s the same, the old value is known\nto be the from-space reference to the expected object and\nthe slow path performs a modified CAS loop checking for both\nexpected object references (from-space and to-space).\n\nAlso replace all uses of vixl\u0027s EmissionCheckScope with the\nExactAssemblyScope in the arm32 codegen; all these uses are\nrelated to the Baker read barrier using introspection.\n\nTest: Already covered by 160-read-barrier-stress.\nTest: m test-art-host-gtest\nTest: Pixel 2 XL boots.\nTest: testrunner.py --target --optimizing --32\nTest: ART_HEAP_POISONING\u003dtrue testrunner.py --target --optimizing --32\nBug: 36141117\nChange-Id: If0b77d278826eb909b437ea9a1336afec575ccdf\n"
    },
    {
      "commit": "0dcb17ffacdd07e5c110557479a05cedd679faee",
      "tree": "afebe3aeb68333e71030ed8fa9dd41450971a356",
      "parents": [
        "d55446b7c62acaecf01f4ffd03d8a0d0b0f4e448"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Aug 13 12:41:47 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Aug 13 12:41:47 2018 +0100"
      },
      "message": "Tweak the \"art --perf\" helper command.\n\nEnable use of dwarf as frame-pointer unwinding is unreliable.\nSet the frequency to 10000 samples per second.\n\nTest: run the tool\nChange-Id: I6cc19a674b162e95183d0263cf016cc90372b560\n"
    },
    {
      "commit": "d55446b7c62acaecf01f4ffd03d8a0d0b0f4e448",
      "tree": "668c67a3ac592718a4a5db4f42a403924a1bb12c",
      "parents": [
        "9229d6e84bdaf0960a36e0bd6a88798a1d974dca",
        "42deda8a5ee207706df37d7cb56d2a48e94073f0"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Aug 10 16:58:48 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 10 16:58:48 2018 +0000"
      },
      "message": "Merge \"Add helper method to iterate over BitTable fields in CodeInfo.\""
    },
    {
      "commit": "42deda8a5ee207706df37d7cb56d2a48e94073f0",
      "tree": "fc1b40813e502c04241950eef5c8b27313fa9ed7",
      "parents": [
        "dd667714e9504d447e752b0cffdf757a6133392b"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Aug 10 11:23:27 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Aug 10 16:41:33 2018 +0100"
      },
      "message": "Add helper method to iterate over BitTable fields in CodeInfo.\n\nAvoid the repetitive code patterns and simplify code.\n\nTest: test-art-host-gtest-stack_map_test\nTest: checked output of oatdump\nChange-Id: I2354bc652837eb34efeecf4de56a027384544034\n"
    },
    {
      "commit": "9229d6e84bdaf0960a36e0bd6a88798a1d974dca",
      "tree": "03b66fad6c08f100c01175babc23797adb3287ad",
      "parents": [
        "6c1df5747b882a9949b24796749314b7e9077b8f",
        "1587789d6fc662ce3238e2746870fccd6a2e47be"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Aug 10 14:49:21 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 10 14:49:21 2018 +0000"
      },
      "message": "Merge \"Don\u0027t greylist public bridge methods.\""
    },
    {
      "commit": "6c1df5747b882a9949b24796749314b7e9077b8f",
      "tree": "a6c2591fab234e40690fdcf84a62bfebd86835f0",
      "parents": [
        "dd667714e9504d447e752b0cffdf757a6133392b",
        "248141f724cbb9d436f13181b5301172c4385cc2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 10 14:15:21 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 10 14:15:21 2018 +0000"
      },
      "message": "Merge \"ARM/ARM64: Introspection Baker RB for intrinsics.\""
    },
    {
      "commit": "1587789d6fc662ce3238e2746870fccd6a2e47be",
      "tree": "d8fd0bc3276fb6a519d1a0917faaf6bc71b0b815",
      "parents": [
        "971a80e5aa36955d9fee6b479a5cbd554f50ca08"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Wed Aug 08 14:01:37 2018 +0100"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Fri Aug 10 14:49:11 2018 +0100"
      },
      "message": "Don\u0027t greylist public bridge methods.\n\nWe need to be able to apply the @UnsupportedAppUsage annotation to regular\n(non-bridged) methods, but due to the SDK visibility rules, the synthetic\nbridge is sometimes part of the SDK. We need to know the public API set\nin order to exclude these.\n\nBug: 110868826\nTest: atest class2greylisttest\nTest: m\nChange-Id: I2ac9dfaaf60053762f379a5dc0d81e48a40a4e57\n"
    },
    {
      "commit": "dd667714e9504d447e752b0cffdf757a6133392b",
      "tree": "b7153d8f452ba686cc88052079aafae3f838d34e",
      "parents": [
        "971a80e5aa36955d9fee6b479a5cbd554f50ca08",
        "0c3aa31b7151c3b67aa0dff1ae2b8718eeb905c7"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Aug 10 13:48:42 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 10 13:48:42 2018 +0000"
      },
      "message": "Merge \"Move varint encoding/decoding to BitMemoryReader/Writer.\""
    },
    {
      "commit": "248141f724cbb9d436f13181b5301172c4385cc2",
      "tree": "8828a0e319fa692c4a80e8cecadff7b68a845faa",
      "parents": [
        "6e99db490fabbc38d96cc618a7aa82a99b3d07cf"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 10 10:40:07 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 10 13:05:12 2018 +0100"
      },
      "message": "ARM/ARM64: Introspection Baker RB for intrinsics.\n\nNamely Unsafe.getObject/-Volatile().\n\nTest: Additional tests in 160-read-barrier-stress.\nTest: m test-art-host-gtest\nTest: Pixel 2 XL boots.\nTest: testrunner.py --target --optimizing\nTest: ART_HEAP_POISONING\u003dtrue testrunner.py --target --optimizing\nBug: 36141117\nChange-Id: I7305d75ab0ae8c9621843f9a382ad3a5e0aefa0b\n"
    },
    {
      "commit": "0c3aa31b7151c3b67aa0dff1ae2b8718eeb905c7",
      "tree": "b7153d8f452ba686cc88052079aafae3f838d34e",
      "parents": [
        "971a80e5aa36955d9fee6b479a5cbd554f50ca08"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Aug 03 14:52:32 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Aug 10 12:40:01 2018 +0100"
      },
      "message": "Move varint encoding/decoding to BitMemoryReader/Writer.\n\nTest: test-art-host-gtest-bit_memory_region_test\nChange-Id: I0f7d7dfc9efe9df0e3e746b1741c46f06a0bd3b4\n"
    },
    {
      "commit": "971a80e5aa36955d9fee6b479a5cbd554f50ca08",
      "tree": "a30f7befba047b9dc4e73b46a7d469798f6c3037",
      "parents": [
        "c5a319ca5f4c136770fa5c8931d9ee7f48bc6a0f",
        "d1606417eac35d4842f607b63eda48e868e8db1d"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Aug 10 10:24:01 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 10 10:24:01 2018 +0000"
      },
      "message": "Merge \"Cleanup BitMemoryReader/Writer api.\""
    },
    {
      "commit": "d1606417eac35d4842f607b63eda48e868e8db1d",
      "tree": "90220460ac22f888d93dd46596d67f1dbdceaffc",
      "parents": [
        "2382eaec6a9d661b541eae3ce9dbcd9edb7ad251"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jul 31 15:05:14 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Aug 10 09:43:45 2018 +0100"
      },
      "message": "Cleanup BitMemoryReader/Writer api.\n\nTest: test-art-host-gtest-stack_map_test\nTest: test-art-host-gtest-bit_table_test\nChange-Id: I15c624d2a70736aeb8422ce5babcef8e8fa82136\n"
    },
    {
      "commit": "c5a319ca5f4c136770fa5c8931d9ee7f48bc6a0f",
      "tree": "d6fe7985a884321d26ab2da0244e054860032eee",
      "parents": [
        "7f6beba750ebc86c7e4d62e563b0d068827ace60",
        "d6065142caf9de205fba35a85b82f95e55df2253"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Aug 09 21:05:54 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 09 21:05:54 2018 +0000"
      },
      "message": "Merge \"Remove copy and leak of dex data.\""
    },
    {
      "commit": "d6065142caf9de205fba35a85b82f95e55df2253",
      "tree": "8a579ced92b4c2a83cc1808dd5f3909f91823b19",
      "parents": [
        "6e99db490fabbc38d96cc618a7aa82a99b3d07cf"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Aug 09 07:29:05 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Aug 09 07:29:05 2018 -0700"
      },
      "message": "Remove copy and leak of dex data.\n\nTo implement class redefinition we need to keep around a copy of the\ninitial redefinition. We moved this to be done in ArtClassDefinition\nbut left code that allocated and copied the buffer in RedefineClasses.\nThis code did nothing but leak memory.\n\nTest: ./test.py --host\nChange-Id: Ide5eafc7eda57eb5b1fc02eccb26091eacfae84f\n"
    },
    {
      "commit": "7f6beba750ebc86c7e4d62e563b0d068827ace60",
      "tree": "e8fbd30d194e16a42d052ad95ea88e9b8f407b29",
      "parents": [
        "a97be531bc7f95d19522a2f0da2498e884df5f53",
        "349af804d74c93e1dd3684f5cc5222ad2efbf80c"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Aug 09 10:50:49 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 09 10:50:49 2018 +0000"
      },
      "message": "Merge \"Improve debugging in RegionSpace::PoisonDeadObjectsInUnevacuatedRegion.\""
    },
    {
      "commit": "a97be531bc7f95d19522a2f0da2498e884df5f53",
      "tree": "5655bda673e9833fb9627c9c4343376318ef7340",
      "parents": [
        "921e51710566d68cf0d5504bcb19f9ec4fee3f87",
        "e21b437a58d7c02ccac3b72caf48af9bd814765f"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Aug 09 10:47:12 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 09 10:47:12 2018 +0000"
      },
      "message": "Merge \"Check the live bytes value of a region against the region bitmap.\""
    },
    {
      "commit": "4b233677a7b83e7961ba605191909c9d40b507e7",
      "tree": "3bbb6cd8e8db9ae5b042d6574b02426de95d2172",
      "parents": [
        "921e51710566d68cf0d5504bcb19f9ec4fee3f87"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 08 10:06:44 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 08 10:08:24 2018 -0700"
      },
      "message": "Delete ClassDataItemIterator\n\nNo longer required.\n\nBug: 79758018\nTest: test-art-host\nChange-Id: Ieb3e5d27dbcb4697052a1ae43dafbd268506277b\n"
    },
    {
      "commit": "349af804d74c93e1dd3684f5cc5222ad2efbf80c",
      "tree": "93a21a91c0610d1beb4087f34f06ed49a67f4340",
      "parents": [
        "e21b437a58d7c02ccac3b72caf48af9bd814765f"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jun 08 18:44:31 2018 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Aug 08 18:03:28 2018 +0100"
      },
      "message": "Improve debugging in RegionSpace::PoisonDeadObjectsInUnevacuatedRegion.\n\nTest: art/test.py\nBug: 74064045\nBug: 67628039\nChange-Id: Ibe78718740f26537f0b6cb6542bbf8d3e6e5b977\n"
    },
    {
      "commit": "921e51710566d68cf0d5504bcb19f9ec4fee3f87",
      "tree": "d42b9ae0d9326b29a636a61a80f6474256087297",
      "parents": [
        "6e99db490fabbc38d96cc618a7aa82a99b3d07cf",
        "396dc08833659c78409567b28f7bb25e9254fbb0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 08 16:09:18 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 08 16:09:18 2018 +0000"
      },
      "message": "Merge \"Move hiddenapi to ClassAccessor\""
    },
    {
      "commit": "e21b437a58d7c02ccac3b72caf48af9bd814765f",
      "tree": "ac1ea6fd5aeb85f5f3f86e0051bccb4c2253ea61",
      "parents": [
        "d0a4d1f71a7deb0624e1694a6690eda10d8b77bf"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jun 05 15:47:45 2018 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Aug 08 17:02:17 2018 +0100"
      },
      "message": "Check the live bytes value of a region against the region bitmap.\n\nWhen the live bytes count of a region is defined (i.e. different\nfrom -1), check that it matches the number of (allocated) bytes\nused by live objects in this region, according to the region\nspace bitmap.\n\nThis check is only enabled in debug mode.\n\nTest: art/test.py\nBug: 74064045\nChange-Id: I602f5ac7e6a69d52437628844b970a2db9481857\n"
    },
    {
      "commit": "6e99db490fabbc38d96cc618a7aa82a99b3d07cf",
      "tree": "a2fac1bea0f0409b83e6f925bfab6c79eb15b12d",
      "parents": [
        "405099d76b1615e6352eccd65ca34f1ce5501811",
        "ef0713287279026c4960f324097f2cd4fc8dddb5"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Aug 08 11:41:04 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 08 11:41:04 2018 +0000"
      },
      "message": "Merge \"Fix some typos in comments in ART.\""
    },
    {
      "commit": "405099d76b1615e6352eccd65ca34f1ce5501811",
      "tree": "c61a9e8afe1f574bb3eb15df78c812a0c9c9cfb9",
      "parents": [
        "09a6812456d2e0513043b5586db6b18d4162d9dd",
        "4c9b493083cebae58c067642b7a85d93df7a95b0"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Aug 08 11:29:02 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 08 11:29:02 2018 +0000"
      },
      "message": "Merge \"Temporarily disable failing libcore tests (caused by mockito merge).\""
    },
    {
      "commit": "4c9b493083cebae58c067642b7a85d93df7a95b0",
      "tree": "25407d0a660c3a2ebebc4f724c0693e62d7bf7e8",
      "parents": [
        "2382eaec6a9d661b541eae3ce9dbcd9edb7ad251"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Aug 08 11:35:36 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Aug 08 11:42:11 2018 +0100"
      },
      "message": "Temporarily disable failing libcore tests (caused by mockito merge).\n\nBug: 111704422\nChange-Id: Ic502dcfb44ed8987bdfbaa811b403edad0b50227\n"
    },
    {
      "commit": "09a6812456d2e0513043b5586db6b18d4162d9dd",
      "tree": "5015dd6ac22088611f76cc2df5d713ec85a554da",
      "parents": [
        "2382eaec6a9d661b541eae3ce9dbcd9edb7ad251",
        "72b7bf8e51fbb416d12001e43277a9748520b681"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Aug 08 10:22:46 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 08 10:22:46 2018 +0000"
      },
      "message": "Merge \"Fix comment about art::gc::collector::kDisallowReadBarrierDuringScan.\""
    }
  ],
  "next": "2382eaec6a9d661b541eae3ce9dbcd9edb7ad251"
}
