)]}'
{
  "log": [
    {
      "commit": "afc60cd6ddcd15353698bb453716313dea241ef8",
      "tree": "708bbf11e425ddb7a75874f27d272fd5484d0bf1",
      "parents": [
        "58431a7cf863b2eb7fe25eff6a28ec376f2f151d"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Dec 05 11:59:31 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Dec 11 11:32:37 2018 +0000"
      },
      "message": "Cleanup native debug interface api.\n\nStrongly type the DEX file arguments.\n\nRemove the need for callers to worry about locks.\n\nUse std::map instead of std::unordered_map internally.\n\nTest: ./art/test.py -b -r -t 137\nChange-Id: I8bd79b796b5c7da265afc43a07ed227f550116c7\n"
    },
    {
      "commit": "a6dd280a61bdb09f608dd920d23394a5b6223ef4",
      "tree": "b1fad48bb4d4ed7ca39ec5c250d20d1238739028",
      "parents": [
        "17ed987eeebdebbd1b923c3c2a6887a233cb7517",
        "15c5b97d0093a804881acf3a53bda8b6b4c1521d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 07 10:19:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 07 10:19:34 2018 +0000"
      },
      "message": "Merge \"ART: Add CRC32.updateBytes intrinsic for ARM64\""
    },
    {
      "commit": "17ed987eeebdebbd1b923c3c2a6887a233cb7517",
      "tree": "9d137f6e73d2aac0a0403372d4065fd9da0612d6",
      "parents": [
        "ed8b4ac3d7a78cc4976fa24a34bac92f4fd47a27",
        "05909d81d322c0b20445e672c338c626e43f650d"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Dec 07 09:25:59 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 07 09:25:59 2018 +0000"
      },
      "message": "Merge \"Support class lookup for InMemoryDexClassLoader\""
    },
    {
      "commit": "a9a0973ff03ce2c2d1ec65695ad0f4cd8ed170a7",
      "tree": "9f00efead2c694b2a590f8c4890a9052571bbcff",
      "parents": [
        "260a50cb43618dfdd325e7c89745d8bc38b20292",
        "d19085141ad9c71eae1b0ff585999ac8e27dadd4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 07 07:51:00 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 07 07:51:00 2018 +0000"
      },
      "message": "Merge \"Pass boot class path to ImageSpace::LoadBootImage.\""
    },
    {
      "commit": "73d8cc7c48dc9fa77fe6b61a6894a28112c033af",
      "tree": "47a225708b3ddbc03c6a45aeed6c9d1ddead13fa",
      "parents": [
        "883931d0cc9c48573c13836b80fbad465bdaa0c9",
        "ce9ed3669d041d9eb2f5489596f133248d90f497"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 07 06:41:18 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 07 06:41:18 2018 +0000"
      },
      "message": "Merge \"Enable JIT in zygote.\""
    },
    {
      "commit": "15c5b97d0093a804881acf3a53bda8b6b4c1521d",
      "tree": "ad6befd10a3d6dee0f1667d254374e267ad89ce7",
      "parents": [
        "cfc4b3ac67b364d753d970d1adcf97668114e959"
      ],
      "author": {
        "name": "Evgeny Astigeevich",
        "email": "evgeny.astigeevich@linaro.org",
        "time": "Tue Nov 20 13:41:40 2018 +0000"
      },
      "committer": {
        "name": "Evgeny Astigeevich",
        "email": "evgeny.astigeevich@linaro.org",
        "time": "Thu Dec 06 22:19:23 2018 +0000"
      },
      "message": "ART: Add CRC32.updateBytes intrinsic for ARM64\n\nUse crc32 instructions for\njava.util.zip.CRC32.updateBytes(int,byte[],int,int).\n\nThe intrinsic is used if a number of processed bytes is less or equal to\nkCRC32UpdateBytesThreshold. If it exceeds kCRC32UpdateBytesThreshold the\ncore library provided function is used.\n\nNote that CRC32 is an optional feature in ARMv8, this intrinsic\nis only enabled for devices supporting the CRC32 instructions.\n\nThe CL is based on code from tim.zhang@linaro.org.\n\nPerformance improvements - speedup:\narray size | Cortex-A53 | Cortex-A57\n------------------------------------\n128        | 14x        | 20x\n256        | 10x        | 14x\n512        | 8x         | 11x\n1024       | 7x         | 9x\n2048       | 6x         | 8x\n4096       | 5x         | 7x\n8192       | 5x         | 7x\n16384      | 5x         | 7x\n32768      | 5x         | 7x\n65536      | 5x         | 7x\n\nTest: m test-art-target-gtest\nTest: m test-art-host-gtest\nTest: art/test/testrunner/testrunner.py --target --optimizing --interpreter\nTest: art/test/testrunner/testrunner.py --target --jit\nTest: art/test/testrunner/testrunner.py --host --optimizing --interpreter\nTest: art/test/testrunner/testrunner.py --host --jit\nTest: 580-crc32\n\nChange-Id: I0054cea41b5fc3e712e18b0afc7e3eacbf41feb6\n"
    },
    {
      "commit": "dc1309c01d7b4cbc2c9f5803f7f643fad646f9ba",
      "tree": "4e315f966919643416d8e0fd2a87c8b602ada6c6",
      "parents": [
        "bee521dc73825fc75f840749fc4fc7a083a9f0cf",
        "44f67607b33e36c118fe0f62c062865b2bc8bd8f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 06 22:09:37 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 06 22:09:37 2018 +0000"
      },
      "message": "Merge changes Ib1e027a1,I1608b032,I11ca161a\n\n* changes:\n  ART: Rewrite Runtime fault message to be lock-free\n  ART: Move to using locks.h instead of mutex.h\n  ART: Factor out lock order and holder from mutexes\n"
    },
    {
      "commit": "bee521dc73825fc75f840749fc4fc7a083a9f0cf",
      "tree": "287f691d8d02c7ece3356f0d6052e013a21c00d8",
      "parents": [
        "03eb36c6940060f82f887b3e8860a91c1f97224c",
        "519c1c7bb05af22cca3a21cfc78afce5bf9c300c"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu Dec 06 21:17:45 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 06 21:17:45 2018 +0000"
      },
      "message": "Merge \"Cleanup marking logic for non-moving objects\""
    },
    {
      "commit": "44f67607b33e36c118fe0f62c062865b2bc8bd8f",
      "tree": "a17f7b4a6f7affe866377ac5ee7924195ef8fbe5",
      "parents": [
        "7fbc4a59ba2e60d869313d7961662430df83b2cb"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 28 08:27:27 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 06 11:37:19 2018 -0800"
      },
      "message": "ART: Rewrite Runtime fault message to be lock-free\n\nTo avoid the lock in a general header, rewrite the fault message\n(that is almost unused) to be lock-free. Store the string as a\nheap object owned by Runtime.\n\nBug: 119869270\nTest: mmma art\nTest: m test-art-host\nChange-Id: Ib1e027a1543c46d25953119f05792f0e874d6a3d\n"
    },
    {
      "commit": "7fbc4a59ba2e60d869313d7961662430df83b2cb",
      "tree": "59520285df8d2075412ddc566a0d4d96d4c7e109",
      "parents": [
        "7cc45fd1dbcf5704e442d0443e437aa2ae3fe21b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 28 08:26:47 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 06 11:37:19 2018 -0800"
      },
      "message": "ART: Move to using locks.h instead of mutex.h\n\nWhen only annotating lock requirements, use locks.h.\n\nBug: 119869270\nTest: mmma art\nChange-Id: I1608b03254712feff0072ebad012c3af0cc3dda4\n"
    },
    {
      "commit": "7cc45fd1dbcf5704e442d0443e437aa2ae3fe21b",
      "tree": "76e582afd0580be21497787c584cab61f7599997",
      "parents": [
        "03eb36c6940060f82f887b3e8860a91c1f97224c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 21 16:03:08 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 06 11:37:19 2018 -0800"
      },
      "message": "ART: Factor out lock order and holder from mutexes\n\nIsolate the order and holder class from the mutex definitions.\nThe locks header requires significantly fewer includes, and\nwill be used in a follow-up change to remove mutex.h dependencies\nin headers just for the sake of annotation lock requirements.\n\nThis is itself an NFC commit, only pulling the code apart.\n\nBug: 119869270\nTest: m test-art-host\nChange-Id: I11ca161ac3118725c79313a82f58595699b590bf\n"
    },
    {
      "commit": "05909d81d322c0b20445e672c338c626e43f650d",
      "tree": "3a8edef57fce12fa3d69a783f6b9523b203c85e6",
      "parents": [
        "69431d3ba1c560f0b23bd2ad6257949deb679aa7"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Dec 06 16:25:16 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Dec 06 19:34:02 2018 +0000"
      },
      "message": "Support class lookup for InMemoryDexClassLoader\n\nSetting up InMemoryDexClassLoader with \u0027null\u0027 as parent results in the\nclass loader not being able to load any boot classpath classes. This is\ndue to the fact that InMemoryDexClassLoader inherits class lookup from\nBaseDexClassLoader which delegates it to ART, but ART rejects\nInMemoryDexClassLoader as not supported.\n\nBug: 120603906\nBug: 120613979\nTest: InMemoryDexClassLoaderTest\nChange-Id: I3139b1bb343b5fc722bcf06f89a6f6a21a3c7c54\n"
    },
    {
      "commit": "03eb36c6940060f82f887b3e8860a91c1f97224c",
      "tree": "b4667d8a91976c1458d0ab164f07982bb92b81ee",
      "parents": [
        "4bebb8582123c75cb7a9bf0d35f746845e851618",
        "6693742a2842ece89e90d1fd8e412c2c9d62cd22"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Dec 06 18:43:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 06 18:43:34 2018 +0000"
      },
      "message": "Merge \"ART: use freed_bytes in reclaimed_bytes_ratio calculation\""
    },
    {
      "commit": "d19085141ad9c71eae1b0ff585999ac8e27dadd4",
      "tree": "24284e84f5df4601bacc2a97c56af1bc5950c253",
      "parents": [
        "523940b40f9701504d6e007dd2af48f315038dc1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 22 14:57:28 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 06 14:43:07 2018 +0000"
      },
      "message": "Pass boot class path to ImageSpace::LoadBootImage.\n\nWhen loading the boot image by ImageSpace, do not rely on\nthe boot class path (BCP) recorded in the primary boot image\noat file. Instead, check the BCP from image against the BCP\nprovided by the Runtime, i.e. from -Xbootclasspath:_ or the\nenvironment variable BOOTCLASSPATH. For now, allow Runtime\nto extract the BCP from the primary boot image oat file when\nwe have -Ximage:_ but no BCP.\n\nAlso pass the boot class path components down to the OatFile\nso that we can open and use the original dex files when we\ndo not have copies in the vdex files. This allows compiling\napp prebuilts when the boot dex files are uncompressed and\naligned in the original jars.\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\nTest: run-libcore-tests.sh --mode\u003ddevice --variant\u003dX64\nTest: Manually create boot image jars with uncompressed and\n      aligned dex files, compile a boot image with dex files\n      not copied into vdex files and use this boot image for\n      compiling a prebuilt services.{art,vdex,odex}.\nBug: 119868597\nChange-Id: If9411ddbecf6bb90bfa9233040931c5e833f6aee\n"
    },
    {
      "commit": "ce9ed3669d041d9eb2f5489596f133248d90f497",
      "tree": "f95fc9d6fc78119686fe91db5c2aaabd31b6abb1",
      "parents": [
        "69431d3ba1c560f0b23bd2ad6257949deb679aa7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 29 03:19:28 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 06 14:12:34 2018 +0000"
      },
      "message": "Enable JIT in zygote.\n\nbug: 119800099\nTest: boot test\nChange-Id: I92dc59adeaf1202a984d363b1420ef26e53ebe84\n"
    },
    {
      "commit": "67d351540d2cfa3bca5d1d57020eeec2783a1d31",
      "tree": "5074e4bde7c61c54d9ddaecc12b1f86b3ebfd476",
      "parents": [
        "d4fff712f36f813bf793f9d66897c4cc07b9ae61",
        "8b751c59ed5331551648309bde6a19ec833fc46e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 06 07:06:25 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 06 07:06:25 2018 +0000"
      },
      "message": "Merge \"ART: Move EnableDebugger to frameworks\""
    },
    {
      "commit": "eac4d6aec60053f7bbec9b833e21702f34ba3d93",
      "tree": "4a51da7a94e3022f9a4a485d0141c11220c0ba64",
      "parents": [
        "274ed2ea9d496f75030f849c4259b35ecb4d35c1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 05 12:33:46 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 05 12:52:16 2018 -0800"
      },
      "message": "Reduce runtime thread pool stack size\n\nReduce the size to 64k to avoid using as much virtual address space.\n\nBug: 116052292\nTest: test-art-host\nChange-Id: I370cfb6c8f7060b674e5bc67a0b85ac7adf46041\n"
    },
    {
      "commit": "274ed2ea9d496f75030f849c4259b35ecb4d35c1",
      "tree": "6a371c40b6f754db7687aceb538f81f85871373f",
      "parents": [
        "18851145160a85f028432c07247485250167b155",
        "c6068c7f07785f326090f2c3dc0d5679adbfcc69"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 05 16:48:51 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 05 16:48:51 2018 +0000"
      },
      "message": "Merge \"Parallel image decompression\""
    },
    {
      "commit": "523940b40f9701504d6e007dd2af48f315038dc1",
      "tree": "1c20f1c04edea4473b72d7937582a56559716b83",
      "parents": [
        "c83c64e793f44fbdd5eb4193f5f74af115585658",
        "2d7329b5379a739751448ee93ae7c52d15d0c07b"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Dec 05 14:50:38 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 05 14:50:38 2018 +0000"
      },
      "message": "Merge \"ART: add weighted allocated bytes metrics\""
    },
    {
      "commit": "c83c64e793f44fbdd5eb4193f5f74af115585658",
      "tree": "3ce98f86c4fe1bdf860c61cf6722f9775a65ee9e",
      "parents": [
        "f07dbf7428e05d839fe473cea20db47f0c08e33d",
        "b06fbf7dfdb360885a1791b61c8943200c77e4e6"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Dec 05 13:38:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 05 13:38:34 2018 +0000"
      },
      "message": "Merge \"ART: Support kryo385 CPU.\""
    },
    {
      "commit": "8b751c59ed5331551648309bde6a19ec833fc46e",
      "tree": "7092b4556be47a205e469c20ae30737a4ff26260",
      "parents": [
        "94d4f5fa020561a1f828828dce1edf8fb5d4ab5c"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Dec 05 12:25:31 2018 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Dec 05 12:25:31 2018 +0000"
      },
      "message": "ART: Move EnableDebugger to frameworks\n\nBug: 120485385\nTest: cts\nChange-Id: Ied6ef5e846417fa264d0f5c009780d22219d14e5\n"
    },
    {
      "commit": "519c1c7bb05af22cca3a21cfc78afce5bf9c300c",
      "tree": "efc6f5bd69f708a345d1fed80ff9c379519383a4",
      "parents": [
        "94d4f5fa020561a1f828828dce1edf8fb5d4ab5c"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Fri Nov 09 17:10:47 2018 -0800"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Dec 05 01:08:43 2018 -0800"
      },
      "message": "Cleanup marking logic for non-moving objects\n\nThe marking logic for non-moving and large objects currently grays the\nread barrier state and sets the mark bitmap together. This causes the\nfollowing complexities:\n1) Setting the mark bitmap has to be done atomically as application\nthreads also set the mark bitmap.\n2) It requires using a separate false gray stack to handle cases where\ndue to concurrent execution one thread succeeds in graying the object\neven after the object has been already marked.\n\nThis can be simplified if non-moving/large objects are treated just like\nthe unevac-space objects are. Marking the object involves testing\nwhether the object is already marked in the bitmap or not. If not, then\ngraying the read barrier state and pushing to the mark stack.\nEventually, GC thread sets the mark bit non-atomically while processing\nthe reference.\n\nBug: 119273672\nBug: 112720851\nBug: 119629540\nTest: art/test/testrunner/testrunner.py --64\nChange-Id: I7050d545d59d5d8b1c90813a982e6f464b15d5e3\n"
    },
    {
      "commit": "c6068c7f07785f326090f2c3dc0d5679adbfcc69",
      "tree": "e0d729e4c73cecb87413341a7c6f3fd0ce876cf5",
      "parents": [
        "ee45798b02c3a9fffa9c4b5c1fe0fe03a423df66"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 13 16:00:58 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 04 14:08:55 2018 -0800"
      },
      "message": "Parallel image decompression\n\nAdd a runtime thread pool to facilitate parallel app image loading.\n\nUse the thread pool to decompress the image, this results in a ~1%\napp startup speedup.\n\nTest: test-art-host\nTest: manual\nBug: 116052292\n\nChange-Id: If35f71ff632ac58e67d11eed4b5f5b19656cc301\n"
    },
    {
      "commit": "2d7329b5379a739751448ee93ae7c52d15d0c07b",
      "tree": "76de7c6bd8350792661789ecae4a4943eb36b65c",
      "parents": [
        "6a98f89c4ad645b04d6c80d3d7e260c59bf6f193"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Fri Nov 30 19:58:18 2018 +0000"
      },
      "committer": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Tue Dec 04 19:31:28 2018 +0000"
      },
      "message": "ART: add weighted allocated bytes metrics\n\n`process_cpu_start_time_` is moved from `art::Runtime` to `art::gc:Heap`\nso that it could be reset when the app starts (current process is forked\nfrom Zygote).\n\n`process_cpu_end_time_` is removed from `art::Runtime` because it\u0027s only\nused when the runtime is about to shutdown, so it suffices to capture it\nin a local variable.\n\nTest: Run art with -XX:DumpGCPerformanceOnShutdown on some benchmarks.\nBug: 112187497\nChange-Id: I154fdb6acdf4e0c21dff835807bd4e2cf311e3d1\n"
    },
    {
      "commit": "7a85e70b2bf646d1d7a226fbb4e7fafb66871dd5",
      "tree": "790ee4c1cee812535c856a08355c50c2032c5cd4",
      "parents": [
        "6a98f89c4ad645b04d6c80d3d7e260c59bf6f193"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 03 18:47:23 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Dec 04 17:17:19 2018 +0000"
      },
      "message": "Reduce core image to 6 modules.\n\nThis was\n    Revert^2 \"Reduce core image to core-{oj,libart,simple}.\"\nbut we\u0027re now keeping three additional modules, namely\nconscrypt, okhttp and bouncycastle. And we fix the boot\nclass path used by vogar with the companion change\n    https://android-review.googlesource.com/840810 .\n\nThis reverts commit 00fe35e4021e9a8679eca3ffaede48fd89b56258.\n\nChange-Id: I6137edd91c03c17be50de200267eb9adc971e8fb\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 3 XL boots.\nTest: m test-art-target-gtest\nTest: testrunner.py --target --optimizing\nTest: art/tools/run-libcore-tests.sh --mode\u003ddevice --variant\u003dX64\nBug: 119868597\n"
    },
    {
      "commit": "807e4b30b3384e5b23da0c54710be78f17fc6345",
      "tree": "cb000ac70bffe89a907e1b63f0b58db3d8b6c4b7",
      "parents": [
        "147b5b1ab58abcc25b4c2b489ee9952d0ce70c69",
        "26c43778589d1c7598cbe6203b6545c9d3ab220a"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Tue Dec 04 12:39:16 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 04 12:39:16 2018 +0000"
      },
      "message": "Merge \"Add support for ANDROID_RUNTIME_ROOT variable\""
    },
    {
      "commit": "95eeb3958cd93a4f270cd29ec5b18d2d9d245083",
      "tree": "15b697cc811f8c3ef4bf99be48f8cf59ea9d52c2",
      "parents": [
        "f6f43d842dffd11d2472e2c3397d017ff7399b18",
        "1a6586327d9de6374f9e7ca98d071f2943b03c99"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Dec 04 10:11:43 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 04 10:11:43 2018 +0000"
      },
      "message": "Merge \"Keep pointer to original DexFile during JVMTI redefine for hiddenapi\""
    },
    {
      "commit": "f6f43d842dffd11d2472e2c3397d017ff7399b18",
      "tree": "deda2e653bcfefc9a901bd89226c231a29a4975d",
      "parents": [
        "ee45798b02c3a9fffa9c4b5c1fe0fe03a423df66",
        "80d16289df2ec243737063e4f9d092ac3a7cbb10"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Dec 04 10:07:59 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 04 10:07:59 2018 +0000"
      },
      "message": "Merge \"hiddenapi: Introduce greylist-max-p\""
    },
    {
      "commit": "1a6586327d9de6374f9e7ca98d071f2943b03c99",
      "tree": "1d118af8f32855ef0036080d5e8a560f14e5e482",
      "parents": [
        "d378a567a435a80be9ab7eb8bfe0359c1240c0ff"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Sat Dec 01 17:54:26 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Dec 03 20:19:40 2018 +0000"
      },
      "message": "Keep pointer to original DexFile during JVMTI redefine for hiddenapi\n\nJVMTI redefine overwrites the pointer to the class\u0027 DexFile which\nprevents access checks from reading the hiddenapi flags store. Store\nthe pointer in ClassExt together with the original ClassDef index\nto preserve the access to flags store. Because method/field indices\nare still lost, the corresponding dex member is found using string\ncomparison of member\u0027s name and type.\n\nBug: 119688837\nTest: 999-redefine-hiddenapi\nChange-Id: Ifdf35668e838869a971233bbaae61851014658b1\n"
    },
    {
      "commit": "26c43778589d1c7598cbe6203b6545c9d3ab220a",
      "tree": "474167d306678366b1c90c7a9e6f824308ec7f7a",
      "parents": [
        "c89a28730fb8dff57c6cb5b18295fec45fe85d09"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Fri Nov 23 17:56:43 2018 +0000"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Mon Dec 03 20:05:09 2018 +0000"
      },
      "message": "Add support for ANDROID_RUNTIME_ROOT variable\n\nThis commit introduces the ANDROID_RUNTIME_ROOT environment\nvariable in preparation for its use within the runtime module.\n\nAs a module, ART must no longer use the Android-wide\nANDROID_ROOT environment variable as the base of default\npaths for module content. ANDROID_RUNTIME_ROOT will take over\nthe responsibility. It remains a variable to unify host\nand device treatment.\n\nSome test methods (SetUpAndroidData, TearDownAndroidData\nSetUpAndroidRoot) have been renamed to clarify their purpose.\n\nBug: 119935277\nTest: build / treehugger\nChange-Id: I7c7de52911cbfa56cef90270425ed369176c4767\n"
    },
    {
      "commit": "ee45798b02c3a9fffa9c4b5c1fe0fe03a423df66",
      "tree": "61054ce8dae4b30654d41a1ba2f1394ef1c28484",
      "parents": [
        "9f27ffa9031431267ae59ee3469c853355811916",
        "00fe35e4021e9a8679eca3ffaede48fd89b56258"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 03 18:44:49 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 03 18:44:49 2018 +0000"
      },
      "message": "Merge \"Revert \"Reduce core image to core-{oj,libart,simple}.\"\""
    },
    {
      "commit": "00fe35e4021e9a8679eca3ffaede48fd89b56258",
      "tree": "7db00623bf74e8f37a87fcc653c37191b6d37024",
      "parents": [
        "ec91d48cade73c54f7a03c5d53d863bc2490976e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 03 18:43:54 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 03 18:43:54 2018 +0000"
      },
      "message": "Revert \"Reduce core image to core-{oj,libart,simple}.\"\n\nThis reverts commit ec91d48cade73c54f7a03c5d53d863bc2490976e.\n\nReason for revert: Breaks libcore tests.\n\nChange-Id: I0ea55f74635332177eadd9a69fb831e7f5dc16c7\n"
    },
    {
      "commit": "6693742a2842ece89e90d1fd8e412c2c9d62cd22",
      "tree": "30d8e1e584f5785f82589d3ed6b930fa20f65327",
      "parents": [
        "9f27ffa9031431267ae59ee3469c853355811916"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Fri Nov 30 17:52:01 2018 +0000"
      },
      "committer": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Mon Dec 03 16:21:30 2018 +0000"
      },
      "message": "ART: use freed_bytes in reclaimed_bytes_ratio calculation\n\nThis commit uses actual bytes reclaimed in the current GC cycle instead\nof difference of num_bytes_allocated_ before and after GC cycle for\nreclaimed_bytes_ratio calculation. The latter could be affected by\nmutators running concurrently to GC cycle.\n\nTest: Run art with -XX:DumpGCPerformanceOnShutdown on some benchmarks.\nBug: 112187497\nChange-Id: Icc845566bfe14706b0a4a60ee33b64a4f5e66942\n"
    },
    {
      "commit": "9f27ffa9031431267ae59ee3469c853355811916",
      "tree": "475181ba87667fd2cc73e4864c7a0038e6a36c98",
      "parents": [
        "e239cdc2239b69199d2eab4b2943636be8ceb2ba",
        "9dd5ba3e242c63a252bbd39adf1aa80259009b55"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Dec 03 15:13:44 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 03 15:13:44 2018 +0000"
      },
      "message": "Merge \"ART: add GC throughput measured in bytes per CPU time\""
    },
    {
      "commit": "e239cdc2239b69199d2eab4b2943636be8ceb2ba",
      "tree": "4f53232e73c9feaf60c0dcf123068875afd26a9e",
      "parents": [
        "8bda21f1d8bbc1060bf693f5d1666d3396d1cb69",
        "ec91d48cade73c54f7a03c5d53d863bc2490976e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 03 14:50:46 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 03 14:50:46 2018 +0000"
      },
      "message": "Merge \"Reduce core image to core-{oj,libart,simple}.\""
    },
    {
      "commit": "e99dadae5a7f83eb1bc8456d4444c9197c9e7a14",
      "tree": "bf5204a74b088e8995db4ee36b4cd3ddc98678b4",
      "parents": [
        "d378a567a435a80be9ab7eb8bfe0359c1240c0ff",
        "e16727388a0a2aedae530f686c0fd95cd2bbb80f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Dec 02 18:54:26 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Dec 02 18:54:26 2018 +0000"
      },
      "message": "Merge \"Revert^2 \"Support shared libraries in CreateContextFromClassLoader.\"\""
    },
    {
      "commit": "9dd5ba3e242c63a252bbd39adf1aa80259009b55",
      "tree": "3f162bd53915c1b1cf9ad22075cf9be933b01f10",
      "parents": [
        "d378a567a435a80be9ab7eb8bfe0359c1240c0ff"
      ],
      "author": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Mon Nov 26 10:44:40 2018 +0000"
      },
      "committer": {
        "name": "Albert Mingkun Yang",
        "email": "albertnetymk@google.com",
        "time": "Fri Nov 30 19:53:34 2018 +0000"
      },
      "message": "ART: add GC throughput measured in bytes per CPU time\n\nTest: Run art with -XX:DumpGCPerformanceOnShutdown on some benchmarks.\nBug: 112187497\nChange-Id: I85bd7a49655db760cc605d50b5d18765ef82953c\n"
    },
    {
      "commit": "e16727388a0a2aedae530f686c0fd95cd2bbb80f",
      "tree": "a35bc53fd844f5037b572fe862d9178d83fce5ad",
      "parents": [
        "458128737485d72028d0e4af9855b7773c81010b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 30 01:09:49 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 30 19:09:57 2018 +0000"
      },
      "message": "Revert^2 \"Support shared libraries in CreateContextFromClassLoader.\"\n\nThis reverts commit 1717a493a4a0c1c3b69ecfcb58838627b4c75878.\n\nbug: 120036590\nbug: 120031686\n\nReason for revert: Fix code to ensure ownership of dex files.\n\nChange-Id: I99fffb52b73e0a41d779a41605ddf2e9249c02e0\n"
    },
    {
      "commit": "d378a567a435a80be9ab7eb8bfe0359c1240c0ff",
      "tree": "28e96907cda376e51289ee83d8071565f6ceba6b",
      "parents": [
        "e2ca5cfd18664ad9934102c14fd28cde2736b144",
        "1a8429680f9d08d5f2b49fd93f9ad4df81b7cb66"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 30 18:40:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 30 18:40:34 2018 +0000"
      },
      "message": "Merge \"Add image compressed blocks\""
    },
    {
      "commit": "b06fbf7dfdb360885a1791b61c8943200c77e4e6",
      "tree": "b596912a9e13fa9125400f9b4daa17d289bb3e85",
      "parents": [
        "f2970cd870948a6ee1c8ecd30c9c3147d05aa0be"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Thu Nov 22 19:51:36 2018 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Nov 30 16:07:36 2018 +0000"
      },
      "message": "ART: Support kryo385 CPU.\n\nQualcomm Kryo385 CPU supports up Armv8.2-a features: atomics,\nfp16, crc32.\n\nRelated change:\nhttps://android-review.googlesource.com/c/platform/build/soong/+/831260\n\nTest: builds Pixel 3.\nBug: 119564566\nChange-Id: Iede5830093497abe753a34df3bc4913468be39d0\n"
    },
    {
      "commit": "ec91d48cade73c54f7a03c5d53d863bc2490976e",
      "tree": "4980bf99ae69cab7c733aa442aa4bf42f2d42f17",
      "parents": [
        "0776942115cdf9610ad06cc673feebceb8de3c30"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 29 12:17:11 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 30 13:18:44 2018 +0000"
      },
      "message": "Reduce core image to core-{oj,libart,simple}.\n\nAnd pass the -Xbootclasspath: and -Xbootclasspath-locations:\noptions to tests. This eliminates a discrepancy between the\nimage and boot class path (BCP). Next CL shall check the\nBCP stored in the primary boot image oat file against the\nBCP from the runtime.\n\nUse actual *-hostdex.jar/*-testdex.jar files for compiling\nthe core.art. Since conscrypt, okhttp and bouncycastle have\nthe dex files actually stripped from their *-testdex.jar,\nthey are unsuitable for compilation, adding another reason\nto not include them in the core image. For consistency, use\nthe same jars for core image on host.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 3 XL boots.\nTest: m test-art-target-gtest\nTest: testrunner.py --target --optimizing\nBug: 119868597\nChange-Id: Iccc152ea0d5b3bd9878aa214cc649762f8f4ea9c\n"
    },
    {
      "commit": "458128737485d72028d0e4af9855b7773c81010b",
      "tree": "74b5b23be9f71018e396b37e3ba7aa190ef7a72a",
      "parents": [
        "d5ae80c223a2aa51b6a54faa0f014acdd013103f",
        "1717a493a4a0c1c3b69ecfcb58838627b4c75878"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 30 01:03:10 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 30 01:03:10 2018 +0000"
      },
      "message": "Merge \"Revert \"Support shared libraries in CreateContextFromClassLoader.\"\""
    },
    {
      "commit": "1717a493a4a0c1c3b69ecfcb58838627b4c75878",
      "tree": "84f28de48b55ea9942d3ffc49b13c0ec1c1435b7",
      "parents": [
        "a66d69e884b6f9f41a8da31e6d27b498984c7fa3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 30 01:02:50 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 30 01:02:50 2018 +0000"
      },
      "message": "Revert \"Support shared libraries in CreateContextFromClassLoader.\"\n\nThis reverts commit a66d69e884b6f9f41a8da31e6d27b498984c7fa3.\n\nbug: 120036590\nbug: 120031686\n\nReason for revert: Fails libcore \n\nChange-Id: I6bec17b1e6c0d767c10b44572ca5f8d73c5fc37e\n"
    },
    {
      "commit": "1a8429680f9d08d5f2b49fd93f9ad4df81b7cb66",
      "tree": "75bb0ef44acf50a3108e85529f0495176afbced9",
      "parents": [
        "f2970cd870948a6ee1c8ecd30c9c3147d05aa0be"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 13 15:09:51 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 29 17:01:44 2018 -0800"
      },
      "message": "Add image compressed blocks\n\nAdd support for splitting the image into a set of solid blocks.\n\nAdded dex2oat option --max-image-block-size and correspodning image\nunit test.\n\nMotivation: Enable parallel image decompression in the future.\n\nBug: 116052292\nTest: test-art-host\n\nChange-Id: I37c6c6a43ef94c4a62bf38a0cf51f26ce06347ac\n"
    },
    {
      "commit": "d5ae80c223a2aa51b6a54faa0f014acdd013103f",
      "tree": "25b44b63625d83f36dc405d9ef9ff00b8dfc8fe3",
      "parents": [
        "f355ec703f519c3091853d85f61904be6dfb68aa",
        "813a86307e1f3437ed9d17aeea2c5c6ffcda5c67"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 29 23:36:04 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 29 23:36:04 2018 +0000"
      },
      "message": "Merge \"Use ArtMethod::GetDex{File,Cache}() more.\""
    },
    {
      "commit": "f355ec703f519c3091853d85f61904be6dfb68aa",
      "tree": "82486a5104742260ab35382c0678165ebff85112",
      "parents": [
        "0e211e55fe51adbd6bab7278ff1ceabea21faf78",
        "c1896c9a0e15df3a1b9a3a19bcd2a933b654fe06"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 29 22:51:00 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 29 22:51:00 2018 +0000"
      },
      "message": "Merge \"C++17 compatibility: make WITH_TIDY\u003d1 happy again.\""
    },
    {
      "commit": "4afe9f5218956a3f2b6827e26b10c0ed48af864b",
      "tree": "b4aedd4bfc25138b97135333a55f889dc7514106",
      "parents": [
        "196d0c8d3c76f46d606a5a808492ea4534e17890",
        "a66d69e884b6f9f41a8da31e6d27b498984c7fa3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 29 20:57:55 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 29 20:57:55 2018 +0000"
      },
      "message": "Merge \"Support shared libraries in CreateContextFromClassLoader.\""
    },
    {
      "commit": "196d0c8d3c76f46d606a5a808492ea4534e17890",
      "tree": "0108dec4b020914496e62c52119137bece201154",
      "parents": [
        "c89a28730fb8dff57c6cb5b18295fec45fe85d09",
        "d011d81e8c4c959f6d607bb80dfedf3b64a7f131"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 29 20:46:18 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 29 20:46:18 2018 +0000"
      },
      "message": "Merge \"Use more vector\u003cstring\u003es in dex2oat.cc .\""
    },
    {
      "commit": "c1896c9a0e15df3a1b9a3a19bcd2a933b654fe06",
      "tree": "b68a5f5163f8da0da87d671a225addaa2a13095f",
      "parents": [
        "f2970cd870948a6ee1c8ecd30c9c3147d05aa0be"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 29 11:33:18 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 29 11:33:18 2018 -0800"
      },
      "message": "C++17 compatibility: make WITH_TIDY\u003d1 happy again.\n\nBug: http://b/111067277\nTest: builds\nChange-Id: I8b69ea3815e14bb6eb27f40c0dd01a85b340a355\n"
    },
    {
      "commit": "c89a28730fb8dff57c6cb5b18295fec45fe85d09",
      "tree": "5d596ced1f30cb59c86179c05f4fb2a947ba5253",
      "parents": [
        "f2970cd870948a6ee1c8ecd30c9c3147d05aa0be",
        "0402f4b019c1d6c567b1c56589f1ea9170ab5dcc"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 29 19:19:10 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 29 19:19:10 2018 +0000"
      },
      "message": "Merge \"Revert \"Reduce the number of calls to Jit::AddSamples.\"\""
    },
    {
      "commit": "0402f4b019c1d6c567b1c56589f1ea9170ab5dcc",
      "tree": "fb0705380c3d1600a08c0e95ed581a967bdf0da0",
      "parents": [
        "db94f2be59e60bde11ac903c5bf30e63ead67992"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 29 19:18:46 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 29 19:18:46 2018 +0000"
      },
      "message": "Revert \"Reduce the number of calls to Jit::AddSamples.\"\n\nThis reverts commit db94f2be59e60bde11ac903c5bf30e63ead67992.\n\nReason for revert: Break 667-jit-jni-stub\n\nChange-Id: Ia84a78be8acb62e87f7cd93e43c2967efac8caab\n"
    },
    {
      "commit": "813a86307e1f3437ed9d17aeea2c5c6ffcda5c67",
      "tree": "6ab0118464a3f721dc967d52a9607a96ce6e4188",
      "parents": [
        "7e09737125ddb8c6f243ac1882d2a23da3f109c4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 29 16:17:01 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 29 17:54:54 2018 +0000"
      },
      "message": "Use ArtMethod::GetDex{File,Cache}() more.\n\nDo not go through the declaring class when it can cause\na DexFile or DexCache mismatch for obsolete methods.\n\nAlso fix similar potential mismatch in hiddenapi.\n\nThis is a follow-up to\n    https://android-review.googlesource.com/834082 ,\n    https://android-review.googlesource.com/836008 .\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 119830111\nChange-Id: I3fdf1aa1bc7bab816d5d8034b107506a32438b77\n"
    },
    {
      "commit": "a66d69e884b6f9f41a8da31e6d27b498984c7fa3",
      "tree": "58efae80d2b2161feff23143ab620242d1c09605",
      "parents": [
        "8f50b2c27f9b32726bbadfcebba910640b94036e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 28 16:06:12 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 29 17:16:04 2018 +0000"
      },
      "message": "Support shared libraries in CreateContextFromClassLoader.\n\nMissed this method in my previous set of shared libraries support.\n\nbug: 120036590\nbug: 120031686\nTest: test.py, app startup with speed-profile\nChange-Id: I5c1ec567cfa5452a1f510a3279a9e15125f429ba\n"
    },
    {
      "commit": "80d16289df2ec243737063e4f9d092ac3a7cbb10",
      "tree": "65ee57a867a58f5ddaf42747bf49fef987c57356",
      "parents": [
        "e701de908bf5cb9375f15a3dbd113206aa582e7e"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Nov 01 09:55:09 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Nov 29 16:42:14 2018 +0000"
      },
      "message": "hiddenapi: Introduce greylist-max-p\n\nAdd a new hiddenapi::ApiList constant for a greylist only accessible to\napps targeting SDK version \u003c Q.\n\nThe patch also removes SdkVersion::kP_MR1 which is invalid.\n\nTest: m, phone boots\nTest: m test-art\nTest: atest art/tools/class2greylist/test\nChange-Id: I48f3d1a4703166168fd8e0d1c3337aa2957b66ce\n"
    },
    {
      "commit": "d011d81e8c4c959f6d607bb80dfedf3b64a7f131",
      "tree": "803656224159e0c87c4a97ad640dbe90c6e7285a",
      "parents": [
        "8f50b2c27f9b32726bbadfcebba910640b94036e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 29 12:35:24 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 29 15:11:11 2018 +0000"
      },
      "message": "Use more vector\u003cstring\u003es in dex2oat.cc .\n\nReplace some uses of vector\u003cconst char*\u003e.\n\nTest: m test-art-host-gtest\nBug: 119868597\nChange-Id: Ib5b8d132a35b076c23d43f58a4715c4218dbbffb\n"
    },
    {
      "commit": "f2970cd870948a6ee1c8ecd30c9c3147d05aa0be",
      "tree": "3ca52bb7a21ede069b6e54ebd84cdb782bb0c776",
      "parents": [
        "b2eeca05130c2bb9249850d83aad8281ddfcf5c5",
        "3f704c0498730307e49682fc744000239af8a7fc"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Nov 29 15:06:05 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 29 15:06:05 2018 +0000"
      },
      "message": "Merge \"Inline methods in ObjPtr even in debug builds.\""
    },
    {
      "commit": "b2eeca05130c2bb9249850d83aad8281ddfcf5c5",
      "tree": "5a73aa2362725ef41140132d054abb08f313fb46",
      "parents": [
        "9a9f8f627ebcbf609813df548115fe9452556ebf",
        "db94f2be59e60bde11ac903c5bf30e63ead67992"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Nov 29 14:50:36 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 29 14:50:36 2018 +0000"
      },
      "message": "Merge \"Reduce the number of calls to Jit::AddSamples.\""
    },
    {
      "commit": "9a9f8f627ebcbf609813df548115fe9452556ebf",
      "tree": "73d1d2a2cec915631be13b6dce6950901da54638",
      "parents": [
        "d8eb2f2f2d6ddca682b4aa0703f00bb34069e298",
        "68b926eaa1d907dc830afc8b3f2f0677d134833e"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Nov 29 13:44:47 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 29 13:44:47 2018 +0000"
      },
      "message": "Merge \"Check consistency of mterp vregs before every opcode for slow debug.\""
    },
    {
      "commit": "db94f2be59e60bde11ac903c5bf30e63ead67992",
      "tree": "95d66a33cefefac89f84534ac4f023e76ff096d9",
      "parents": [
        "076c9da66b606057109e5fb2902d28129d120b96"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Nov 09 12:58:28 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Nov 29 11:41:07 2018 +0000"
      },
      "message": "Reduce the number of calls to Jit::AddSamples.\n\nThe method is called for every invoke which is expensive.\nAdd samples, but don\u0027t check the consequences every time.\n\nThis reduces its cost from 3.5% to 1% (maps on device).\n\nTest: ./art/test.py -b -r --host --64\nChange-Id: Ie90da905d067b5d85a3c494c7c9af81b24dc8135\n"
    },
    {
      "commit": "d8eb2f2f2d6ddca682b4aa0703f00bb34069e298",
      "tree": "1ff4cc7d77710c641e954ace980b481beb2555e8",
      "parents": [
        "076c9da66b606057109e5fb2902d28129d120b96",
        "124bb24394ca89bdc20ff12cafc0546beaf83615"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Nov 29 11:11:19 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 29 11:11:19 2018 +0000"
      },
      "message": "Merge \"Mterp: Add missing shadow reg clear to op_long_to_double\""
    },
    {
      "commit": "076c9da66b606057109e5fb2902d28129d120b96",
      "tree": "fb0705380c3d1600a08c0e95ed581a967bdf0da0",
      "parents": [
        "1ad1254db5a7d44775840339240a10deb148034b",
        "7e09737125ddb8c6f243ac1882d2a23da3f109c4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 29 07:14:40 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 29 07:14:40 2018 +0000"
      },
      "message": "Merge \"Use ArtMethod::GetDexFile() instead of using declaring class.\""
    },
    {
      "commit": "055fb139b69ffa7c97362bfff10c60fe6f2f4bd1",
      "tree": "699af3838cb37aa85c7e938e7e3104cbe2edbd34",
      "parents": [
        "a9f861bd83117931b7c5d679038770489bc16155"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 28 17:54:54 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Nov 28 17:54:54 2018 -0800"
      },
      "message": "C++17 compatibility: remove unreachable return.\n\nBug: http://b/111067277\nTest: builds\nChange-Id: If6c3a4add1721067965e19599a7649cc21b55619\n"
    },
    {
      "commit": "3f704c0498730307e49682fc744000239af8a7fc",
      "tree": "034631c580abbf228b02a983ddc9f646c94529c0",
      "parents": [
        "8f50b2c27f9b32726bbadfcebba910640b94036e"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Nov 16 17:05:15 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Nov 28 19:23:36 2018 +0000"
      },
      "message": "Inline methods in ObjPtr even in debug builds.\n\nThis speeds up the debug runtime.\n\nTest: Profile app startup with the debug runtime.\nChange-Id: Ifbf96e3c54453e66189da6da9824c2465513b19f\n"
    },
    {
      "commit": "2025488b81ac0cfa9af5cfd10c7f8a45c215d9a3",
      "tree": "101d49fadb624ee8b5a22a1866b0f319dfea8fc0",
      "parents": [
        "ef6b2aa28fec148d3fe635a34260fde8c89622c7",
        "85f1c576d228c2c43e9a0dc37f0cbb91fad59c45"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 28 18:37:15 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 28 18:37:15 2018 +0000"
      },
      "message": "Merge \"ART: Some iwyu for logging.h\""
    },
    {
      "commit": "68b926eaa1d907dc830afc8b3f2f0677d134833e",
      "tree": "b3ef5af3a02b282004780967adfc4bb8c3d75d4b",
      "parents": [
        "8f50b2c27f9b32726bbadfcebba910640b94036e"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Nov 28 17:43:42 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Nov 28 18:23:02 2018 +0000"
      },
      "message": "Check consistency of mterp vregs before every opcode for slow debug.\n\nTest: ./art/test.py -b -r -t 525 --runtime-option\u003d-XX:SlowDebug\u003dtrue\nChange-Id: Ia156567fb454dc547191941a1bc999a289cd39ed\n"
    },
    {
      "commit": "124bb24394ca89bdc20ff12cafc0546beaf83615",
      "tree": "f9c83798f21a27094ff65d5338844f2fc3f213b5",
      "parents": [
        "8f50b2c27f9b32726bbadfcebba910640b94036e"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Nov 23 21:08:49 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Nov 28 17:09:41 2018 +0000"
      },
      "message": "Mterp: Add missing shadow reg clear to op_long_to_double\n\nBug: 118647289\nTest: ./art/test.py -b -r --target --32 --interpreter --gcstress -t 525\n      with shadow_frame-\u003eCheckConsistentVRegs() added to MterpCheckBefore.\nChange-Id: I49c12e9f5c8250b7172e0e8fae7c932b2eb10f69\n"
    },
    {
      "commit": "ef6b2aa28fec148d3fe635a34260fde8c89622c7",
      "tree": "c00a942a4af6eab805e78b26ce779b23166e1212",
      "parents": [
        "8f50b2c27f9b32726bbadfcebba910640b94036e",
        "c7d878d4be3f0971d4b86266308c7540a26c2856"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 28 16:43:42 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 28 16:43:42 2018 +0000"
      },
      "message": "Merge \"Revert^4 \"ART: Add StackVisitor accepting a lambda\"\""
    },
    {
      "commit": "7e09737125ddb8c6f243ac1882d2a23da3f109c4",
      "tree": "1105bc475dec6b923c205cde3d90ca32cd3a803b",
      "parents": [
        "201330ccfb11989f7449486865c6f74b54f1a914"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 28 16:40:59 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 28 16:43:06 2018 +0000"
      },
      "message": "Use ArtMethod::GetDexFile() instead of using declaring class.\n\nThis is a follow-up to\n    https://android-review.googlesource.com/834082 .\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nBug: 119830111\nChange-Id: I5bd55b0293ef176385a7e9d8b296be6b470cfcc4\n"
    },
    {
      "commit": "8f50b2c27f9b32726bbadfcebba910640b94036e",
      "tree": "84f28de48b55ea9942d3ffc49b13c0ec1c1435b7",
      "parents": [
        "f7b3dff9eef45290d0324db01fb4aaa69bcd5062",
        "d47e9abaf2381a057c4ed86495916fa76dad8296"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 28 15:22:40 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 28 15:22:40 2018 +0000"
      },
      "message": "Merge changes I5dd60978,I0c2b804c\n\n* changes:\n  Remove code replacing core.jar -\u003e core-libart.jar.\n  Remove obsolete code related to patchoat.\n"
    },
    {
      "commit": "a0ca79a603a0aecc1f3a723b25589aafb91943c7",
      "tree": "ad4e7325b3ecda008d40d621a31ca7bfdaad7214",
      "parents": [
        "08005628d20b862ea8b3a510a06cf5d6e0147328",
        "561303f94b5262bf939b91eb11feff5dc3a6aab9"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Nov 28 14:02:02 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 28 14:02:02 2018 +0000"
      },
      "message": "Merge \"Mterp: Always use macros for vreg reads/writes.\""
    },
    {
      "commit": "d47e9abaf2381a057c4ed86495916fa76dad8296",
      "tree": "a73e49d4237c2b8718ae898fc3e58c9ec196e265",
      "parents": [
        "a3283e4d74954a6409db48ef26a49022dfadac97"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 28 10:45:20 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 28 13:30:54 2018 +0000"
      },
      "message": "Remove code replacing core.jar -\u003e core-libart.jar.\n\nThis code seems obsolete. If it was still needed, it would\nhave to replace core.jar with core-oj.jar instead; the boot\nclass path starts with core-oj.jar, not core-libart.jar.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I5dd6097894cd72c27b87dd572e6e65203ad23ff4\n"
    },
    {
      "commit": "a3283e4d74954a6409db48ef26a49022dfadac97",
      "tree": "818c37d2d6ca1fbd9d31242c3e43a8b9205350d9",
      "parents": [
        "244470afafdb1c5aba17507ef793d316b9c4d038"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 28 10:19:12 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 28 10:19:12 2018 +0000"
      },
      "message": "Remove obsolete code related to patchoat.\n\nRemove code that was opening boot oat files from /system/ as\nread-only for failed patchoat. Patchoat has been removed.\n\nTest: m test-art-host\nTest: testrunner.py --host --optimizing\nBug: 77856493\nChange-Id: I0c2b804c28bb34a749218d75875a4fbee9238b7f\n"
    },
    {
      "commit": "08005628d20b862ea8b3a510a06cf5d6e0147328",
      "tree": "f6e22a222b592926075a546fbcd720f7cec9a8f6",
      "parents": [
        "23b729e17ed437d19583f70e63d1fc8a85b5dae4",
        "e36e7f2226e4e08b7a7094f78cb80bbe0e729c2b"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Nov 28 09:23:51 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 28 09:23:51 2018 +0000"
      },
      "message": "Merge \"Store ImtIndex in ArtMethod.\""
    },
    {
      "commit": "23b729e17ed437d19583f70e63d1fc8a85b5dae4",
      "tree": "80fca63f75a6aca3bbd71c383154b57572d56091",
      "parents": [
        "98034bfb4178e5054c89e5a4aa738afe1caff396",
        "c9de61cf9477e221e0dcc6470de9bf73c0559cf0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 27 23:39:55 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 27 23:39:55 2018 +0000"
      },
      "message": "Merge \"Revert^2 \"Refactor code around JIT creation.\"\""
    },
    {
      "commit": "c9de61cf9477e221e0dcc6470de9bf73c0559cf0",
      "tree": "db42f9c3b26d7543b7c378397debfc0595925ba6",
      "parents": [
        "763cd98161424cf19af2f113a6802f04860dcd6e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 27 17:34:31 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 27 18:01:19 2018 +0000"
      },
      "message": "Revert^2 \"Refactor code around JIT creation.\"\n\nThis reverts commit 763cd98161424cf19af2f113a6802f04860dcd6e.\n\nBug: 119800099\n\nReason for revert: Updated the DCHECKo take into account current state\nof zygote not having a thread pool.\n\nChange-Id: I1181ff85e7aebd062ee892548b80ab3de06a5ac7\n"
    },
    {
      "commit": "e36e7f2226e4e08b7a7094f78cb80bbe0e729c2b",
      "tree": "0787ae19a232728121a60791f3a18094529120f1",
      "parents": [
        "244470afafdb1c5aba17507ef793d316b9c4d038"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Nov 14 14:21:23 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Nov 27 17:31:01 2018 +0000"
      },
      "message": "Store ImtIndex in ArtMethod.\n\nThis avoids recalculation and reduces pressure on the thread local cache.\n\nThis halves the time we spend hashing from 2% to 1% (maps on device).\n\nTest: ./art/test.py -b --host --64\nChange-Id: I2407bd9c222de4ddc6eea938908a1ac6d7abc35b\n"
    },
    {
      "commit": "a92b0265ecade9b90ef051798f177eefeead8b4e",
      "tree": "8adbeeaaf0552ab8e57f9b8b4c5bf0ab446d9d2d",
      "parents": [
        "a61a969e2d32c175fca043a33dcc3af04ffa41f0",
        "d79209ceb8a9d41a4f1c194ed5f9cac111e52835"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 26 21:21:49 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 26 21:21:49 2018 +0000"
      },
      "message": "Merge \"C++17 compatibility: unreachable `return`.\""
    },
    {
      "commit": "a61a969e2d32c175fca043a33dcc3af04ffa41f0",
      "tree": "ca3ea7e5228bd57fcec9f171d34fa11d1a43e5fe",
      "parents": [
        "52f5fa70cbe9b99386664697186f06046d351985",
        "763cd98161424cf19af2f113a6802f04860dcd6e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 26 21:19:36 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 26 21:19:36 2018 +0000"
      },
      "message": "Merge \"Revert \"Refactor code around JIT creation.\"\""
    },
    {
      "commit": "52f5fa70cbe9b99386664697186f06046d351985",
      "tree": "acfd912b7f3c47e897698319f172a5cfd89fc668",
      "parents": [
        "201330ccfb11989f7449486865c6f74b54f1a914",
        "af77ad46543ec13d77a53634507901f580d90fb6"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 26 21:13:52 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 26 21:13:52 2018 +0000"
      },
      "message": "Merge \"Reorder kThreadWaitLock\""
    },
    {
      "commit": "d79209ceb8a9d41a4f1c194ed5f9cac111e52835",
      "tree": "2e50a8ccf782366cfce41a9dd801f0d81e8e2cec",
      "parents": [
        "f3d71d90813be42eb2bc5b85a38cd31dd3c5af21"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Nov 16 09:29:48 2018 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Nov 26 10:36:59 2018 -0800"
      },
      "message": "C++17 compatibility: unreachable `return`.\n\nClang rejects the `return` as unreachable in C++17 mode, but complains\nabout falling off the end of a function in C++14 mode. Add UNREACHABLE\nto make it happy either way.\n\nBug: http://b/111067277\nTest: builds\nChange-Id: I119a806f41e88752976d6fd3638146ec6e08d620\n"
    },
    {
      "commit": "763cd98161424cf19af2f113a6802f04860dcd6e",
      "tree": "bfb50d986ad25030ecfde9b3a4e1ffd8983e30f6",
      "parents": [
        "7a2c7c2f7062d9fef21b72ff9c10ca8ef863eb8b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 26 18:21:45 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 26 18:21:45 2018 +0000"
      },
      "message": "Revert \"Refactor code around JIT creation.\"\n\nThis reverts commit 7a2c7c2f7062d9fef21b72ff9c10ca8ef863eb8b.\n\nReason for revert: Breaks boot in debug mode\n\nBug: 119800099\nChange-Id: I6d015b04c480f76824ead936238cbf49b164b7e3\nTest: N/A\n"
    },
    {
      "commit": "201330ccfb11989f7449486865c6f74b54f1a914",
      "tree": "daa70f827c4800f060fd486ff15749fb4bac1d38",
      "parents": [
        "d0f99b93a76451ee0a57187d863bf101a407f374",
        "79c693b3133da397cec7eaff19de631b65a0cf70"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 26 18:08:23 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 26 18:08:23 2018 +0000"
      },
      "message": "Merge \"ART: Remove setjmp.h includes\""
    },
    {
      "commit": "d0f99b93a76451ee0a57187d863bf101a407f374",
      "tree": "78032d83da65c5505635620a7f07d32f88b20406",
      "parents": [
        "244470afafdb1c5aba17507ef793d316b9c4d038",
        "4835d21a33b783869820c928bfc0a16f249d65f2"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 26 16:57:23 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 26 16:57:23 2018 +0000"
      },
      "message": "Merge \"ART: Fix ResolveType with ArtMethod\""
    },
    {
      "commit": "af77ad46543ec13d77a53634507901f580d90fb6",
      "tree": "8dd3f7f719836035cff40465533b56079a6a7004",
      "parents": [
        "244470afafdb1c5aba17507ef793d316b9c4d038"
      ],
      "author": {
        "name": "Charles Munger",
        "email": "clm@google.com",
        "time": "Tue Nov 20 11:04:05 2018 -0800"
      },
      "committer": {
        "name": "Charles Munger",
        "email": "clm@google.com",
        "time": "Mon Nov 26 08:46:31 2018 -0800"
      },
      "message": "Reorder kThreadWaitLock\n\nIn aosp/814976, a new lock level was created for thread wait locks,\nwhich were previously at kDefaultMutexLevel. I missed that another lock,\nkMarkSweepMarkStackLock, was acquired while holding the thread wait\nlock. This corrects the ordering.\n\nBug: 119755302\nChange-Id: Ib55228d2759e281dc0f3a2177a538fd9adfec163\n"
    },
    {
      "commit": "561303f94b5262bf939b91eb11feff5dc3a6aab9",
      "tree": "818a142401e8e969848dec39867e7854dbb4380d",
      "parents": [
        "244470afafdb1c5aba17507ef793d316b9c4d038"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Nov 20 21:55:42 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Nov 25 14:31:56 2018 +0000"
      },
      "message": "Mterp: Always use macros for vreg reads/writes.\n\nThis makes is easier to find/modify the related code.\n\nTest: No change of the assembly instructions in libart.so\nChange-Id: Ia01a5cbda247bcb06fad4c1d1c903d8c53a56e93\n"
    },
    {
      "commit": "dcfa89bfc06a6c211bbb64fa81313eaf6454ab67",
      "tree": "4aaf6da88861029e387525957bf68796cf95648c",
      "parents": [
        "fd667d4165aefe51010e4fe3bd81b820ed9884ef"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Oct 31 11:04:10 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Nov 22 12:49:26 2018 +0000"
      },
      "message": "Rename and reorganize hiddenapi::ApiList\n\nChange values of ApiList flags to make them easier to extend in the\nfuture and unify naming across all components. Light greylist is now\njust \"Greylist\", dark greylist becomes \"GreylistMaxO\".\n\nNote that the version code in \"GreylistMaxO\" must also include any\nmaintenance releases, i.e. entries on \"GreylistMaxO\" are accessible\nto apps with targetSdkVersion\u003c\u003d27 (O MR1).\n\nTest: m, phone boots\nTest: m test-art\nChange-Id: I9622e0646eb265008a8bb2652270876ae95dac84\n"
    },
    {
      "commit": "fd667d4165aefe51010e4fe3bd81b820ed9884ef",
      "tree": "3b37241f04c4f9fe30ca82cbbb1a23679c03c396",
      "parents": [
        "80e6a0917361273d471af731fee123f6b9e5e094",
        "312f10ed40dd175e71eba51ecb44e550e0ac6e97"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 22 10:22:46 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 22 10:22:46 2018 +0000"
      },
      "message": "Merge changes I05871a8a,I8baec836\n\n* changes:\n  Refactor loading boot image.\n  Remove boot image begin/size from image header.\n"
    },
    {
      "commit": "80e6a0917361273d471af731fee123f6b9e5e094",
      "tree": "16ffc3af15e57113e073f97955b5675244ef91f5",
      "parents": [
        "5ad3adeb0595b9cb5ada6185f0d5f689dfae0ba4",
        "7a2c7c2f7062d9fef21b72ff9c10ca8ef863eb8b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 22 08:59:26 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 22 08:59:26 2018 +0000"
      },
      "message": "Merge \"Refactor code around JIT creation.\""
    },
    {
      "commit": "5ad3adeb0595b9cb5ada6185f0d5f689dfae0ba4",
      "tree": "f526c1be8b78123ae3c8f9082674d75fcca63bbb",
      "parents": [
        "a13be298b6bba821187c7f768a3e7bf0506829d0",
        "f0d3002d640bc41fe572e534542e9b8670838bd7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 22 08:59:01 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 22 08:59:01 2018 +0000"
      },
      "message": "Merge \"Fix app image generation and checking with shared libraries.\""
    },
    {
      "commit": "a13be298b6bba821187c7f768a3e7bf0506829d0",
      "tree": "bc11f36c4305e359ef7deae78971263fbe37d4ef",
      "parents": [
        "f759dc027507d0092a49d9ec146dc37ca4534dd4",
        "1afdfe681436db495276d853709116c39de40c4d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 22 08:58:23 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 22 08:58:23 2018 +0000"
      },
      "message": "Merge \"Wait until inline cache is accessible in GetProfiledMethods.\""
    },
    {
      "commit": "1afdfe681436db495276d853709116c39de40c4d",
      "tree": "a2fe476efb313455090b419b7a83971b7f5ec29f",
      "parents": [
        "d52a6f402fac600e7432cfd59a1298659625a6d3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 21 09:38:10 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 22 08:58:15 2018 +0000"
      },
      "message": "Wait until inline cache is accessible in GetProfiledMethods.\n\nBug: 119844538\nTest: test.py\nChange-Id: I7ee0718bb866652b1913496eb3ecd3beee1d46c3\n"
    },
    {
      "commit": "85f1c576d228c2c43e9a0dc37f0cbb91fad59c45",
      "tree": "67d17ea5a7eb6021dabb335730402bd28d72694a",
      "parents": [
        "79c693b3133da397cec7eaff19de631b65a0cf70"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 21 13:52:48 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 21 15:22:07 2018 -0800"
      },
      "message": "ART: Some iwyu for logging.h\n\nRemove over-broad use in headers. Fix up transitive includes.\n\nBug: 119869270\nTest: mmma art\nChange-Id: I518fa7c8bee014b260818fca1fbde6ec47d126da\n"
    },
    {
      "commit": "79c693b3133da397cec7eaff19de631b65a0cf70",
      "tree": "dc08c382b7b17eac484355ca63683b3a0560ab81",
      "parents": [
        "f759dc027507d0092a49d9ec146dc37ca4534dd4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 21 10:43:50 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 21 15:22:07 2018 -0800"
      },
      "message": "ART: Remove setjmp.h includes\n\nWe are not using jmpbuf and co.\n\nBug: 119869270\nTest: m\nChange-Id: I85993e2ce506b059801d8d8da8b440e93ee9e3fd\n"
    },
    {
      "commit": "4835d21a33b783869820c928bfc0a16f249d65f2",
      "tree": "fe49fa458772f3e43c8a55c51a07a68c360cccf6",
      "parents": [
        "5a78e8dbf068c544b84e98f636b30045b09451c4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 21 14:55:10 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 21 14:55:10 2018 -0800"
      },
      "message": "ART: Fix ResolveType with ArtMethod\n\nArtMethods may be obsolete. In that case, the dex cache of the\ndeclaring class is not correct. Refactor the code to avoid\nissues.\n\nPartially reverts commit 09c5ca40635faee00f40f6ca0581dd475efd545e.\n\nBug: 119830111\nTest: m test-art-host\nChange-Id: Ibf89af48e6384569c2abd6d5846cf05c929679d0\n"
    },
    {
      "commit": "f0d3002d640bc41fe572e534542e9b8670838bd7",
      "tree": "3a3532c663b71aeca0a42f5e8cf193a7a8e86f72",
      "parents": [
        "fe96083dbf14f4c8465694e0144af0e13c2bc171"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 20 17:45:38 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 21 21:08:43 2018 +0000"
      },
      "message": "Fix app image generation and checking with shared libraries.\n\nWe can now have multiple class loaders in an app image.\n\nbug: 111174995\nTest: dex2oat_test, test.py\n\nChange-Id: Ie45c030b483efa78df2605fbcafb4e641b80c59a\n"
    },
    {
      "commit": "312f10ed40dd175e71eba51ecb44e550e0ac6e97",
      "tree": "19339686a5eabd5352f22aefa0e62ca1ddf7176c",
      "parents": [
        "0c78ef7f2e8f010311ce9c0715b1ab3fe28f68f6"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 21 12:35:24 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 21 18:01:52 2018 +0000"
      },
      "message": "Refactor loading boot image.\n\nLoad art files first, then load oat files.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I05871a8ababaab5a59919acd7bcfd07c69cc563d\n"
    },
    {
      "commit": "0c78ef7f2e8f010311ce9c0715b1ab3fe28f68f6",
      "tree": "97755cc52e33418aacfd1cc5ebbf061085dec780",
      "parents": [
        "5a78e8dbf068c544b84e98f636b30045b09451c4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 21 14:09:35 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 21 16:47:03 2018 +0000"
      },
      "message": "Remove boot image begin/size from image header.\n\nUse a single boot image range for both the heap (*.art) and\ncode (*.oat) boot files.\n\nThis is done in preparation for boot image extensions. We do\nnot want to encode multiple heap and code ranges and shall\nkeep a single boot image range for the boot image including\nextensions.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 119868597\nChange-Id: I8baec8361602c445652e69bdfbb57e7a7c7c6419\n"
    },
    {
      "commit": "5a78e8dbf068c544b84e98f636b30045b09451c4",
      "tree": "c7a7bb50f48711b1904cc129147b208532b5b22d",
      "parents": [
        "7ec77b412b98cf092bbf38e73b7361c2f3708a71",
        "af9cce1808dbec59d632fe85fb139852751bc479"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Nov 21 14:10:57 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 21 14:10:57 2018 +0000"
      },
      "message": "Merge \"ART: add reclaim bytes ratio metrics to GC performance\""
    },
    {
      "commit": "7ec77b412b98cf092bbf38e73b7361c2f3708a71",
      "tree": "ae665c569fc3d2600fe863131bf3fea526d2d86c",
      "parents": [
        "6ba0ac5344b7f0b6d2f2ca724cfd2689398d6a53",
        "cb2e1dd8f14db0d33259d87d8c6159c278364559"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 21 13:13:09 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 21 13:13:09 2018 +0000"
      },
      "message": "Merge \"Canonicalize shared libraries in ClassLoaderContext::CreateClassLoader.\""
    },
    {
      "commit": "c10a0c60ca388ea5f45c11dd86ca0af11191015a",
      "tree": "8befa85940f28ca1c764e211f6f269daf184d28c",
      "parents": [
        "d52a6f402fac600e7432cfd59a1298659625a6d3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 16 11:39:22 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 21 11:23:38 2018 +0000"
      },
      "message": "ART: Add boot/app image checksums.\n\nAnd check app oat files against the boot image checksum\ninstead of checking the oat checksum. The oat checksums are\nincluded in image checksum calculations and the primary\nimage checksum calculation includes the checksums of the\nsecondary images.\n\nAlso remove the obsolete \"patch delta\" to keep the size\nof the ImageHeader 8-byte aligned, remove the key-value\nstore from secondary oat files and move the oat checksum\nupdate code from oat.cc to the oat_writer.cc.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: Pixel 2 XL boots.\nTest: m test-art-target-gtest\nChange-Id: If74f5f18479c44ede0503bf1911ddb9ff8f3c4f8\n"
    }
  ],
  "next": "7a2c7c2f7062d9fef21b72ff9c10ca8ef863eb8b"
}
