)]}'
{
  "log": [
    {
      "commit": "5122e6ba34d46851cd89f2ad55bf6bb067e038d6",
      "tree": "e96ba37b6451be7a06d930b0274251cac35ce05e",
      "parents": [
        "02cb397857c979dffae95e2db2678a72ec407cf0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 17 16:10:09 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 29 11:29:31 2017 +0100"
      },
      "message": "ART: Remove ArtMethod::dex_cache_resolved_methods_.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: testrunner.py --target on Nexus 6P\nTest: Repeat the above tests with ART_HEAP_POISONING\u003dtrue\nTest: Build aosp_mips64-eng\nChange-Id: I9cd0b8aa5001542b0863cccfca4f9c1cd4d25396\n"
    },
    {
      "commit": "0a87a653a296854c9a0abacd9bb1557ee4c4d05d",
      "tree": "4763469d136f3879bbce93521827717dbe05bd5b",
      "parents": [
        "52a3c989f96984f9bc9e02620694fc44708a1df2"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Apr 12 13:43:15 2017 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Aug 07 11:49:38 2017 -0700"
      },
      "message": "Add two special runtime methods.\n\nThis is in preparation for being able to deoptimize upon returning\nfrom a runtime method. We need to identify two special runtime methods:\nclinit and suspend-check since if deoptimization happens when returning\nfrom these two methods, we need to execute the dex instruction that\ncorresponds to the dex pc of the deoptimization point. A clinit can\nbe implicit for an invoke-static, in which case the invocation hasn\u0027t\nhappen yet so we have to execute the invoke-static in the interpreter.\nFor a suspend-check, the dex instruction for it hasn\u0027t been executed yet.\n\nTest: full run-test/gtest on both host and target.\nBug: 33616143\nChange-Id: Id1bdfcfa84a9ca27d5ee9da4b4a99467b1a4a845\n"
    },
    {
      "commit": "279cfba1f6086c25d6737471bc4f66ae79f4e681",
      "tree": "e9ee9c1fb1180c89734ad57b3ee601a5545d9c9e",
      "parents": [
        "62432ae776aa618082865b40b111dbff75aedeb6"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Sat Jul 22 00:24:43 2017 -0700"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Mon Jul 24 09:43:09 2017 -0700"
      },
      "message": "MIPS: Follow-up to hash-based DexCache methods array\n\nThis is a MIPS-specific follow-up to\nhttps://android-review.googlesource.com/#/c/431679/.\n\nTest: booted MIPS32R2 in QEMU\nTest: booted MIPS64 (with 2nd arch MIPS32R6) in QEMU\n\nChange-Id: Ib16cf6613ae3b6537e7fbae1aff9a3316c9fd540\n"
    },
    {
      "commit": "07bfbace6f835e6c748fd68ec7624992478b16c1",
      "tree": "5d094a00fbc90455bd9b53e042cf8b4fe8433462",
      "parents": [
        "ba118827465d12177f3996e50133960087b1c916"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 06 14:55:02 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 20 16:33:00 2017 +0100"
      },
      "message": "Hash-based DexCache methods array.\n\nTotal boot*.art size for aosp_angler-userdebug:\n  - arm64:\n    - before: 11603968\n    - after: 10129408 (-1.4MiB, -12.7%)\n  - arm:\n    - before: 8626176\n    - after: 7888896 (-0.7MiB, -8.5%)\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: Nexus 6P boots.\nTest: testrunner.py --target\nTest: Build aosp_mips64-eng\nBug: 30627598\nChange-Id: I7f858605de5f074cbd7f0d9c4c072fbd44aee28f\n"
    },
    {
      "commit": "0cb172874481f736c6b7c491dd621166cc25561b",
      "tree": "2408750b6e08c686b89cee5df0ddae736a775092",
      "parents": [
        "890045e5a768257d8def42827a09a516ebe3e07e"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Jul 12 14:51:49 2017 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Jul 17 14:09:56 2017 -0700"
      },
      "message": "Do superclass validation at compile time and log with new class status.\n\nTries to perform superclass validation for classes that are resolved,\nbut not initialized at runtime. If successful, saves the result in the\noat file with a new class status. At runtime, the superclass validation\ncan be skipped during class initialization, saving some time and\nreducing string accesses.\n\nResults show savings of 50kB PSS in maps on startup, with slight\ndecrease in startup time.\n\nMaps (average of 100 runs)\nBefore: dex 9941.3 odex 15159.8 total 25101.1 launch 908\nAfter: dex 9897.4 odex 15155.7 total 25053.1 launch 906.6\n\nBug: 63456114\nTest: mm test-art-host\nChange-Id: If67a4a49d61781b6d561c26118d7e0c6b9cc0d6f\n"
    },
    {
      "commit": "8228cdf4ad6322ec8133564aaa51f966d36c0f17",
      "tree": "6d2f5cf4e742ad644ad30eb96a9f943c9ebcb34b",
      "parents": [
        "83b140474aa1759739c8ee4464bf226c4fa0f6d7"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue May 30 15:03:54 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 08 13:13:15 2017 -0700"
      },
      "message": "ART: Move CalleeSaveType to callee_save_type.h\n\nMove the type out of runtime to decrease dependencies. Make it\na proper enum class. Fix up usage.\n\nTest: m test-art-host\nChange-Id: Id84c44bf3c59f37c8a43548e720c5fb65707b198\n"
    },
    {
      "commit": "365719c23d809e595cf320bfba40e76bb4e87940",
      "tree": "0939f0d8dc47723978a665fa11dd637f6976d521",
      "parents": [
        "d6705a0586377f1b0d7d14d3abe2b270bb0adb18"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 08 13:11:50 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue May 16 01:58:03 2017 +0100"
      },
      "message": "No need to lock when calling Thread.interrupted.\n\nAlso intrinsify the Thread.interrupted call.\n\nThe rationale behind this optimization is that the flag can only\nhave two values, and only self can set it to false.\n\nTest: libcore, jdwp, run-tests, 050-sync-test\nChange-Id: I5c2b43bf872ba0bfafcb54b2cfcd19181864bc4c\n"
    },
    {
      "commit": "612ff540cd3329935351f05923358cf29b9c9b44",
      "tree": "dbe861f133a037ee487aaee27fa727d58c3aa73f",
      "parents": [
        "a44d67e7ff3c0d3967f4e9a2d9d1d18c5701c7e7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon May 01 09:59:24 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon May 01 14:45:24 2017 -0700"
      },
      "message": "Increase GC card size to 1024\n\nWith CC, having a larger GC card size does not commonly affect\npauses.\n\nResults:\nBefore (128):\nSystem wide card table PSS: 3642.4K\nGrayAllNewlyDirtyImmuneObjects avg: 145us\n\nAfter (1024):\nSystem wide card table PSS: 1477.8K\nGrayAllNewlyDirtyImmuneObjects avg: 75us\n\nTest: test-art-host\n\nBug: 36457259\nChange-Id: Icec03664985ef75859f4e99d9f76c3b9988193e6\n"
    },
    {
      "commit": "afdcbcb56d0c2f985d0291c369bbc493eedb05b0",
      "tree": "236266aadd25eff5f37ca08e5295ae4b96065dcb",
      "parents": [
        "8d0f3aaf28358697ec812955cdf975ca6c6ff901"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 26 16:43:35 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 26 16:48:27 2017 -0700"
      },
      "message": "Remove some hardcoded cases of kCardShift\n\nAlso added cpp-define-generator to do this. This makes it easier to\nchange the GC card size.\n\nBug: 36457259\nTest: test-art-host\n\nChange-Id: I03b59f2bbb9b483280bea34575f5373ec6b15b98\n"
    },
    {
      "commit": "9cd522b50a5f0209e97a2e6bcf8c9c350d3f3f83",
      "tree": "503af07a0a6122d161a81dfed2d2e64f8e501d5a",
      "parents": [
        "c3b7bf3bcc55ec3c684210176ff6ddeb9d33ac19"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 18 17:05:59 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 18 17:08:57 2017 +0000"
      },
      "message": "Remove now unused dex_cache_resolved_types_ from ArtMethod.\n\nTest: test-art-host test-art-target\nChange-Id: I004c040da165934f74eb8b8e85e99e7c6621c2df\n"
    },
    {
      "commit": "cc99df230feb46ba717252f002d0cc2da6828421",
      "tree": "73ac045673e150fa367a8da4d46874f28e928491",
      "parents": [
        "4507fdcb70bd570d5f3968061bf991f0a1233a93"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 17 23:00:24 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 18 15:16:32 2017 +0000"
      },
      "message": "Load the array class in the compiler for allocations.\n\nRemoving one other dependency for needing to pass\nthe current method, and having dex_cache_resolved_types_\nin ArtMethod.\n\noat file increase:\n- x64: 0.25%\n- arm32: 0.30%\n- x86: 0.28%\n\ntest: test-art-host, test-art-target\nChange-Id: Ibca4fa00d3e31954db2ccb1f65a584b8c67cb230\n"
    },
    {
      "commit": "f9bf250cc642c4e3e0c6904550fe922d3359a737",
      "tree": "953351c7e13b45e9246625ad81bce708788d96f9",
      "parents": [
        "b73e659be3fb6474ff3a993cd25ecbfa1cc4715c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 14 14:59:04 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 15 14:52:22 2016 +0000"
      },
      "message": "Remove dex cache string from mirror::Class.\n\nThe compiled code does not need it anymore.\n\nTest: test-art-host test-art-target\nChange-Id: I71c08ce12d450ab2b2cd018330d42a8b8c9e3da2\n"
    },
    {
      "commit": "39ce7d2907edb978f1ab6cd75884be48ab11cd77",
      "tree": "7d2f0c56bd8a7dd483b5c1ede7047b623d0e35d7",
      "parents": [
        "5302bd999afee6db5b0cfd63e6a49b0fcbf92dd4",
        "3049324f4ef71b5d7a3de49bd77c75f07dbf8f3a"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Nov 11 18:44:44 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 11 18:44:44 2016 +0000"
      },
      "message": "Merge \"Make empty checkpoint work while weak ref access is disabled.\""
    },
    {
      "commit": "3049324f4ef71b5d7a3de49bd77c75f07dbf8f3a",
      "tree": "19e2d9d5e8476bf526dd5924ef05b1d727b75f8b",
      "parents": [
        "e7b46e22c7f4f6f503501b3b2ad99113289d142b"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Nov 03 13:06:52 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Nov 09 18:14:08 2016 -0800"
      },
      "message": "Make empty checkpoint work while weak ref access is disabled.\n\nFix a potential race on PushOntoMarkStack for CC by running an empty\ncheckpoint (while weak ref access is disabled).\n\nBug: 32508093\nBug: 12687968\nTest: test-art-host with CC/CMS, libartd boot with N9, Ritz EAAC.\nChange-Id: I3749bb525e7734804307ee16262355f3fc730312\n"
    },
    {
      "commit": "6f198e3fde6fe0009c1f333c283c6d1cb4fa9b55",
      "tree": "3ee9f75dd0906be955de1bceab1a397aecf1a201",
      "parents": [
        "a840d6155dd3332a1bef42facb1a5d2a3a524c5e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 03 11:15:04 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 07 12:57:49 2016 -0800"
      },
      "message": "Add forwarding address checks for X86, arm, arm64\n\nAdded to READ_BARRIER_MARK_REG.\n\nBug: 30162165\n\nTest: test-art-host, test-art-target\n\nChange-Id: I15cf0d51ed3d22fa401e80ffac3877d61593527c\n"
    },
    {
      "commit": "1cf194f055b7152fde817787fcdadeea1fb1067c",
      "tree": "b47da959af7a1f0138d92fe9989ae299462fed96",
      "parents": [
        "77a0e4541a29c26dba21ed8c1ed1c29ef8d0ce4c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 01 20:13:24 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 02 14:27:06 2016 -0700"
      },
      "message": "Check for forwarding address in READ_BARRIER_MARK_REG\n\nWhen the object is in the from-space, the mark bit is not set.\nIn this case, we can also check the lock word for being a forwarding\naddress. The forwarding address case happens around 25% of the time.\nThis CL adds the case for forwarding address lock words to\nREAD_BARRIER_MARK_REG.\n\nReduces total read barriers reaching runtime on ritzperf:\nSlow paths: 20758783 -\u003e 15457783\n\nDeleted the mark bit check in MarkFromReadBarrier since most of the\ncallers check the bit now.\n\nPerf:\nReadBarrier::Mark: 2.59% -\u003e 2.12%\nart_quick_read_barrier_mark_reg01: 0.79% -\u003e 0.78%\nart_quick_read_barrier_mark_reg00: 0.54% -\u003e 0.50%\nart_quick_read_barrier_mark_reg02: 0.31% -\u003e 0.25%\n\nOnly X86_64 for now, will do other archs after.\n\nBug: 30162165\n\nTest: test-art-host\n\nChange-Id: Ie7289d684d0e37a887943d77710092e380457860\n"
    },
    {
      "commit": "2ecfd270adb29861b493de51cfb8670e276e0c5e",
      "tree": "6aa5d0062a59f43b2c188fe0b1f11d56aedc588a",
      "parents": [
        "19dfeb0e725bca7fd85b4a8a96ce9f3d30408aa3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 01 10:10:05 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 01 15:49:51 2016 -0700"
      },
      "message": "Add interface fast path to art_quick_check_cast for X86_64\n\nX86_64 CC ritzperf results from perf:\nart_quick_check_cast: 0.44% -\u003e 0.76%\nartIsAssignableFromCode: 1.78% -\u003e 0.11%\n\nAdded stub test.\n\nBug: 32577579\n\nTest: test-art-host\n\nChange-Id: I5ed5675c4674fac8eed8826eb50527f4876e5f07\n"
    },
    {
      "commit": "74898e787b0fd25bc38e579001860c0a9fbef580",
      "tree": "fc9ba4bcdf854267d09bc99c59a25a987f58dba5",
      "parents": [
        "d7eabc2cc1a88c1f7f927da61246ae65aab0626c"
      ],
      "author": {
        "name": "Christina Wadsworth",
        "email": "cwadsworth@google.com",
        "time": "Thu Aug 25 13:23:01 2016 -0700"
      },
      "committer": {
        "name": "Christina Wadsworth",
        "email": "cwadsworth@google.com",
        "time": "Tue Aug 30 11:44:56 2016 -0700"
      },
      "message": "ART: Clean up x86 asm in dex cache entrypoints\n\nChange-Id: Icc315d1d5da16cc67eee3c0557cae5781623f3b6\nTest: test-art-host\n"
    },
    {
      "commit": "98d6552f0d9ba5f7137965108c7b300b90332f8c",
      "tree": "3d7914f7e72c62f4f30960f1dedd8223fb26afb1",
      "parents": [
        "521691ae4dfad47cf6b46858347fa5fa32fd7bcc"
      ],
      "author": {
        "name": "Christina Wadsworth",
        "email": "cwadsworth@google.com",
        "time": "Thu Aug 25 14:45:51 2016 -0700"
      },
      "committer": {
        "name": "Christina Wadsworth",
        "email": "cwadsworth@google.com",
        "time": "Thu Aug 25 15:04:52 2016 -0700"
      },
      "message": "ART: Add STRING_DEX_CACHE_ELEMENT_SIZE\n\nChange-Id: Ib484d959bd7eac3793ce508e1d608f2c7402927b\n"
    },
    {
      "commit": "97a8a9a3385024d7a070a4b79d45afe9a64587cd",
      "tree": "fdff406b49ba7baa296955ad21bcba85446df212",
      "parents": [
        "da0f5e72cc5f2747a330b21afa34e7d798fc5c54"
      ],
      "author": {
        "name": "Christina Wadsworth",
        "email": "cwadsworth@google.com",
        "time": "Fri Aug 19 11:23:48 2016 -0700"
      },
      "committer": {
        "name": "Christina Wadsworth",
        "email": "cwadsworth@google.com",
        "time": "Mon Aug 22 10:46:24 2016 -0700"
      },
      "message": "ART: Adding asm support for string dex cache\n\nAdded constants and offsets for the string dex cache fast paths that\nwill be introduced into entrypoints in subsequent commits.\n\nTest: test-art-host\n\nChange-Id: I19f97526e06cbedc782d5ef11359796731cdad82\n"
    },
    {
      "commit": "38dd0e8f0a0158c12eba2a9d91a8086603156f2d",
      "tree": "0e85d38ddb3dbcef44b06ab5ba182cf69a3bc4fb",
      "parents": [
        "f2b1529b0988a1722b718fee6911e0030e95c9b6",
        "2ee98f2172df27c0e57738e214d7a1f0739ac916"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 10 19:06:01 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 10 19:06:01 2016 +0000"
      },
      "message": "Merge \"Fix negative array size checking\""
    },
    {
      "commit": "2ee98f2172df27c0e57738e214d7a1f0739ac916",
      "tree": "f8d7d9fd0a831fb65447ee38f4f6ef54471495a0",
      "parents": [
        "0ed44f95955f48b21763dd32cbd510886e9bb2e1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 10 10:08:58 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 10 10:46:23 2016 -0700"
      },
      "message": "Fix negative array size checking\n\nMask out the alignment after the size check. Was broken in previous\nCL.\n\nTest: target test 412 --64 with CC + baker\n\nBug: 30162165\nChange-Id: Ic4eb7229fb742490cd9193baf0faa2be6b454f38\n"
    },
    {
      "commit": "fd36f1f927c138575184a1f4c7ea4e7abb3e2dbf",
      "tree": "2debb35c9193ac019071e0625986698ccbcaabb8",
      "parents": [
        "c218427ab96e521e0c4e9a3ffeb87e6c57eea0a5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 03 18:49:58 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 10 14:19:49 2016 +0100"
      },
      "message": "Rename callee save enumerators.\n\nAnd related image method enumerators, macros, etc.\nClean up some entrypoint assembly comments.\n\nThis is a follow-up to\n    https://android-review.googlesource.com/252348\n\nTest: Run ART test suite on host and Nexus 9.\nBug: 30212852\nChange-Id: I2707342d4255c88c547655be83ed97a67e12ae9e\n"
    },
    {
      "commit": "8261d02f9523b95013108f271b82bb157ef6f71d",
      "tree": "026969c0ee61c0deae7a625fba81a711acd218aa",
      "parents": [
        "9cff32df754c428ef69ddb61e7600abfd4c75266"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Aug 08 09:41:04 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 09 09:57:01 2016 -0700"
      },
      "message": "Revert \"Revert \"ARM64 asm for region space array allocation\"\"\n\nAlso added missing large object check. No regression from the check\nN6P CC EAAC time at 1313 for 10 samples vs 1314 before reverts.\n\nBug: 30162165\nBug: 12687968\n\nTest: test-art-target with CC + heap poisoning\n\nThis reverts commit 6ae7f3a4541e70f04243a6fe469aa3bd51e16d79.\n\nChange-Id: Ie28f652f619898d7d37eeebf3f31a88af8fac949\n"
    },
    {
      "commit": "965c0b9f98a4acbec7be148291196e30784bba2d",
      "tree": "c9b53c36226535f2941d47a1ea222da114266680",
      "parents": [
        "2e98023165349ab91855555f63fed8dad3c471fe",
        "952dbb19cd094b8bfb01dbb33e0878db429e499a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 04 14:44:10 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 04 14:44:10 2016 +0000"
      },
      "message": "Merge \"Change suspend entrypoint to save all registers.\""
    },
    {
      "commit": "952dbb19cd094b8bfb01dbb33e0878db429e499a",
      "tree": "82932c2b00245042e2c129f3d4133f6431657da3",
      "parents": [
        "df638c66d1f385d4e217b2ab22c5e48a7eefdef4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 28 12:01:51 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 04 14:51:52 2016 +0100"
      },
      "message": "Change suspend entrypoint to save all registers.\n\nWe avoid the need to save/restore registers in slow paths\nand get significant code size savings. On Nexus 9, AOSP:\n  - 32-bit boot.oat: -1.4MiB (-1.9%)\n  - 64-bit boot.oat: -2.0MiB (-2.3%)\n  - other 32-bit oat files in dalvik-cache: -200KiB (-1.7%)\n  - other 64-bit oat files in dalvik-cache: -2.3MiB (-2.1%)\n\nTest: Run ART test suite on host and Nexus 9 with gc stress.\nBug: 30212852\nChange-Id: I7015afc1e7d30341618c9200a3dc9ae277afd134\n"
    },
    {
      "commit": "36a270ae4f288e49493432b7128f899ad579849e",
      "tree": "99f134bbfe111b1c42b1b0c19d8b65175a3e6fc8",
      "parents": [
        "89bd8358c0a69e8cd6456d81d88ef366e261f732"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 28 18:08:51 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 03 15:46:18 2016 -0700"
      },
      "message": "Change one read barrier bit to mark bit\n\nOptimization to help slow path performance. When the GC marks an\nobject through the read barrier slow path. The GC sets the mark bit\nin the lock word of that reference. This bit is checked from the\nassembly entrypoint the common case is that it is set. If the bit is\nset, the read barrier knows the object is already marked and there is\nno work to do.\n\nTo prevent dirty pages in zygote and image, the bit is set by the\nimage writer and zygote space creation.\n\nEAAC score (lower is better):\nN9: 777 -\u003e 700 (average 31 of runs)\nN6P (960000 mhz): 1737.48 -\u003e 1442.31 (average of 25 runs)\n\nBug: 30162165\nBug: 12687968\n\nTest: N9, N6P booting, test-art-host, test-art-target all with CC\n\nChange-Id: Iae0cacfae221e33151d3c0ab65338d1c822ab63d\n"
    },
    {
      "commit": "542451cc546779f5c67840e105c51205a1b0a8fd",
      "tree": "11e09bb5abaee12dddffefbe7e425291076dfa7a",
      "parents": [
        "85c4a4b8c9eabfe16e4e49f9b4aa78c1bf4be023"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 26 09:02:02 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Aug 01 18:54:48 2016 -0700"
      },
      "message": "ART: Convert pointer size to enum\n\nMove away from size_t to dedicated enum (class).\n\nBug: 30373134\nBug: 30419309\nTest: m test-art-host\nChange-Id: Id453c330f1065012e7d4f9fc24ac477cc9bb9269\n"
    },
    {
      "commit": "3c92b129047b12f0887a2068b3800d7a7dcb7d78",
      "tree": "7bc782a01f9da093e9a5eed41d7a2c7bc8f570fe",
      "parents": [
        "311fdf52f7d33b988130d07b3d3a86eb148051ca"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Jul 29 09:19:44 2016 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Jul 29 09:19:44 2016 -0700"
      },
      "message": "cpp-define-generator: \"make art-update-cpp-defines\" to regen asm_support\n\nChange-Id: I1a550eda6c77f38e63bb1c8fb943541cbd3f9cdf\n"
    },
    {
      "commit": "311fdf52f7d33b988130d07b3d3a86eb148051ca",
      "tree": "107308e59eb8cf528ff74029c3c180ca2a7242a6",
      "parents": [
        "a69e790ad9751807d4a660bb4432b7ea79f0ad3b"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Jul 22 15:59:16 2016 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Jul 25 15:15:03 2016 -0700"
      },
      "message": "runtime: Refactor asm_support to be auto-generated (mostly)\n\nUsage:\n\n* If the defines are no longer up to date, re-run generate-asm-support\n\n* To add a new field:\n--- Edit one of the offset_ or constant def files.\n--- Rebuild cpp-define-generator and re-run generate-asm-support\n\nChange-Id: I772430fcf1ad9af40898ebb453848f8412612386\nTODO: Integrate this into the build somehow\nTODO: Account for 32 vs 64-bit and read barrier vs no read barrier\n"
    }
  ]
}
