)]}'
{
  "log": [
    {
      "commit": "938a0670d551d81d5f0710d0d565167b42227337",
      "tree": "dde8d8711384a1caf464c86f2c5944cbfdff61f8",
      "parents": [
        "5b041c05d6b73b73c43a425dc4ff3b784722c4a2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 20 16:03:42 2020 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 21 14:38:43 2020 +0100"
      },
      "message": "Remove the checkcast quickening optimization.\n\nQuickening is now disabled, and the optimization uses VerifierDeps\npost-verification, which we plan on not supporting for future verifier\nimprovements.\n\nTest: test.py\nBug: 112676029\nChange-Id: Ie9004b27c93e1189e6c1142494e79cd84b05400c\n"
    },
    {
      "commit": "5b041c05d6b73b73c43a425dc4ff3b784722c4a2",
      "tree": "0425b87cf343b8a45182c053d7e300623b64d419",
      "parents": [
        "8bea400eec977e433ad3453c5a21f74955afbc2a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 20 15:17:53 2020 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 21 13:23:28 2020 +0000"
      },
      "message": "Remove unassignable_types from vdex.\n\nThese were used in case a class went from \"verified-at-runtime\" to\n\"verified\". With go/nterp, we\u0027re re not going to handle this situation\nand we should only record what types the verifier expects to be\nassignable.\n\nTest: test.py\nBug: 112676029\nChange-Id: I6ffa61cef3aa767dfccadbdfdd5432e72e143ca3\n"
    },
    {
      "commit": "f50975ab491fa962e6e5ec4405fdb31591d51d96",
      "tree": "eb055d2d3128fd5c3f2950bb11e3996780e25b80",
      "parents": [
        "bd11057e44ab16a03c7c64d8ef46d0f6ca8d0c92"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Oct 15 13:34:55 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 20 12:43:06 2020 +0000"
      },
      "message": "Reland \"Make \u0027quicken\u0027 an alias to \u0027verify\u0027.\"\n\nThis reverts commit 7e9fc9d6d1622192f118bab771784eedfb66c60e.\n\nBug: 170086509\n\nBug: 170588354\nBug: 170589481\nBug: 170589988.\n\nReason for revert: TODO\n\nChange-Id: Ia1de625e90e4279b1cf0a584e5f0fbc8caa94efd\n"
    },
    {
      "commit": "eb9eb00868106af52386d7113a8aafaa6d44e8b6",
      "tree": "05b1243b30b31d6e2d3215ebdaa329c90d9875f8",
      "parents": [
        "5fa36f99fdb5617d1ced977c637dcaa2762704fc"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Oct 02 13:54:19 2020 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 19 17:01:09 2020 +0000"
      },
      "message": "Faster @CriticalNative for boot image.\n\nThe @CriticalNative call does not need the target method, so\nwe can avoid one instruction on x86, x86-64 and arm64. The\ncurrent approach for arm does not allow such optimization.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_blueline-userdebug boots.\nTest: run-gtests.sh\nTest: testrunner.py --target --64 --optimizing\nBug: 112189621\nChange-Id: I11b7e415be2697757cbb11c9cccf4058d1d72d7d\n"
    },
    {
      "commit": "6ebe40fce5927e3f40ec1d375590648d48d458f0",
      "tree": "677e3c908d87a92becbf23ecfbad6779852c2947",
      "parents": [
        "801f6a7b003659251bf2386febb0030f04697750"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 14 16:37:58 2020 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 16 08:30:15 2020 +0000"
      },
      "message": "Remove field/method/class resolution metadata in vdex.\n\nThey can now be handled at runtime with access checks.\n\nBug: 112676029\nTest: test.py\nChange-Id: I08c838334fb0dc94e58fa24463f49633ef7989fc\n"
    },
    {
      "commit": "ae7168e19f886ed43ed200f9b0e769613df485f9",
      "tree": "0c7169d33b71d643957e1acdaffc0ff61d4526fb",
      "parents": [
        "5e8e5161e5f5a1e944f5bc6fd2ef893e0a33551b"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Oct 09 15:13:29 2020 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 12 15:42:21 2020 +0000"
      },
      "message": "Remove unused image space order argument\n\nBug: 160683548\nTest: Treehugger\nChange-Id: I249d2891b645fa103106ee946f014b9ce362cbda\n"
    },
    {
      "commit": "7e9fc9d6d1622192f118bab771784eedfb66c60e",
      "tree": "98c89934b8907d62ff5e97eda11f20d3d4e97b2d",
      "parents": [
        "384dae4c7e51c34e1fd047c6f58dde63e08ab6a3"
      ],
      "author": {
        "name": "Ming-Shin Lu",
        "email": "lumark@google.com",
        "time": "Mon Oct 12 03:36:52 2020 +0000"
      },
      "committer": {
        "name": "Ming-Shin Lu",
        "email": "lumark@google.com",
        "time": "Mon Oct 12 07:15:39 2020 +0000"
      },
      "message": "Revert \"Make \u0027quicken\u0027 an alias to \u0027verify\u0027.\"\n\nThis reverts commit 4f0e8daf7ed79c0712c0fd927c8ad2c903c15773.\n\nReason for revert: Droidcop-triggered revert due to breakage https://android-build.googleplex.com/builds/tests/view?invocationId\u003dI69100006175866595\u0026testResultId\u003dTR93113908724113263, bug 170588354, bug 170589481, bug 170589988.\n\nChange-Id: If8f4396aa0db024ed5817a4fed61c13caf32f785\n"
    },
    {
      "commit": "4f0e8daf7ed79c0712c0fd927c8ad2c903c15773",
      "tree": "6838f8b413a444b711bdab8136826be07ab95f39",
      "parents": [
        "a79872b016ea95b6ec530ae1ac35f3c5b0d9997f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 07 09:34:13 2020 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 09 08:07:17 2020 +0000"
      },
      "message": "Make \u0027quicken\u0027 an alias to \u0027verify\u0027.\n\nBug: 170086509\nTest: test.py\nChange-Id: I3267ddd51d36c35f23cb05e26dc1a1f062065d7f\n"
    },
    {
      "commit": "8f63f1084b013a129f66cf8a7ed8ab1cae9f02aa",
      "tree": "6e9bbf5ad71a55f701f740e2995e0b84e9b87307",
      "parents": [
        "7aa2bfc09541ea5d2516738de84c24cd0269fed0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 28 12:10:28 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 30 13:58:32 2020 +0000"
      },
      "message": "Faster access to unresolved classes from compiled code.\n\nAdd two new load kinds to LoadClass, similar to kBssEntry\nbut using the access-checking entrypoint on the slow-path.\nOne is used for classes that are in the literal package and\nthe other for classes outside the literal package of the\ncompiling class. Associate new .bss entries with these load\nkinds and update them from entrypoints based on the resolved\nclass properties. If the resolved class is public, both\ntypes of entries can be updated, otherwise only the package\nlocal entry can be updated and only if the defining class\nloader of the class is the same as the caller\u0027s defining\nclass loader (which is identical for all code in an oat\nfile) because the run time access check for same package\nrequires both class loader and literal package name match.\n\nTest: Additional tests in 727-checker-unresolved-class.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_blueline-userdebug boots.\nTest: run-gtests.sh\nTest: testrunner.py --target --optimizing\nBug: 161898207\nChange-Id: I281e06ac2825caf81c6d7ee3128af833abd39992\n"
    },
    {
      "commit": "199f2ecd9e8c915d93d365e12405f7d6a1d5d924",
      "tree": "5fb614ab9f1a9d3c4cc10d171177c49b36405aea",
      "parents": [
        "1d34c08cf005df789e72fa36dfbb99b5b9edda2c"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Sep 28 18:11:41 2020 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Sep 28 20:11:18 2020 +0000"
      },
      "message": "Add missing art_(debug_)defaults to dex2oat host static libs.\n\nThis fixes build breakage on mac since art_defaults disables darwin.\n\nBug: 169576709\nBug: 145934348\nTest: Build ART prebuilt SDK, set prefer:true on prebuilts and build\n  platform system image using prebuilts\nTest: Build and run out/soong/host/linux-x86/bin/dex2oat(d)\n  on linux\nTest: build/soong/soong_ui.bash --make-mode \\\n      TARGET_PRODUCT\u003dsdk TARGET_BUILD_VARIANT\u003duserdebug nothing\n  on mac\nChange-Id: Iabbfbfd98974b62157d85f84b651bdfef20a122e\n"
    },
    {
      "commit": "35f765b9c66a9d999d35afd54c693f8636d0a7ee",
      "tree": "4e51043f9d638c0d861022291ef80d126fb96e0d",
      "parents": [
        "a28438ab47e8e41599fa6b2343f8a6a21efa0116"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Sep 23 00:38:38 2020 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Sep 28 10:13:56 2020 +0000"
      },
      "message": "Link all internal libraries statically into dex2oat(d) on host.\n\nAll static defaults had to change to whole_static_libs to work with the\nnew libdex2oat(d)_static libraries, so that they don\u0027t lose all symbols\nin the static_libs dependency from the dex2oat(d) binaries.\n\nThe static unstripped dex2oat binary is 348 MB, 35 MB smaller than the\nsum of the dynamic binary + DSO\u0027s.\n\nTest: art/build/apex/runtests.sh\nTest: runtests in device chroot\nTest: art/test/testrunner/run_build_test_target.py art-test\nTest: readelf -d out/host/linux-x86/bin/dex2oat(d)\n  Check that NEEDED only lists system libraries (libdl, libpthread,\n  libm, librt, libgcc_s, libc).\nBug: 145934348\nChange-Id: I7abcf1db9b053f71ced6a7dde38ab1b4300b7b5a\n"
    },
    {
      "commit": "2eb1f8337b4852b25517d9197ce3f313248f9b85",
      "tree": "1c8960eff3fc9f575321abc41bd0e200c850648c",
      "parents": [
        "3c7bd3c783e5a171f7ae1e5bc1c11cb95b80a93b"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu Sep 17 00:25:52 2020 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Sep 21 02:34:07 2020 +0100"
      },
      "message": "Link liblz4 and liblzma dynamically again.\n\nThis reverts https://r.android.com/821441 in spirit - it was an attempt\nto avoid external shared lib dependencies before the APEX library\ndependency logic was built. Now these shared libraries will simply be\nadded as internal libs in the APEX.\n\nSoong doesn\u0027t propagate shared lib dependencies in static libs, so we\nhave to repeat them in some cases where libelffile and libart-dex2oat\nare used.\n\nTest: art/build/apex/runtests.sh\nTest: art/tools/buildbot-build.sh\nBug: 118374951\nChange-Id: I0a61b8388f12a749ab8ab5074866eebbad78548b\n"
    },
    {
      "commit": "1d4f009209c35e91c41c915e21e3b59a731925f8",
      "tree": "63428eec8b2397cccdba81e9df37faa54081a8bc",
      "parents": [
        "fb9b09d50ccab5e9de5b79bed4f943cc1ac0b74d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Aug 07 14:01:05 2020 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 17 13:46:20 2020 +0000"
      },
      "message": "Call dex2oat and runtime hooks when creating / loading oat/dex files.\n\nTest: m\nBug: 162715919\nBug: 134558686\nChange-Id: I293310106b8dcd7bec22d8790fd5f72b315776a8\n"
    },
    {
      "commit": "cf3fb35c61a1db28274add01773df5e70b787123",
      "tree": "57020490e0f39ddaf5db057858b3d41c5e1df288",
      "parents": [
        "adfdfafb132f116b10faff9a73c0a3438281d047",
        "e6c0f2a75bd969253279580e2e4772e54787034b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 08 14:07:05 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Sep 08 14:07:05 2020 +0000"
      },
      "message": "Pass a full  MethodReference of the invoke in HInvoke nodes. am: e6c0f2a75b\n\nOriginal change: https://android-review.googlesource.com/c/platform/art/+/1419632\n\nChange-Id: I96da4ddacb4085a4346348c0370c42a396e8bbfe\n"
    },
    {
      "commit": "e6c0f2a75bd969253279580e2e4772e54787034b",
      "tree": "79598b2b6b457d9c718ddb18e29a0211a73ae85a",
      "parents": [
        "63c0c2d9da31d26781f5e77aba6125f0d0988795"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 07 08:30:52 2020 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 08 13:51:53 2020 +0000"
      },
      "message": "Pass a full  MethodReference of the invoke in HInvoke nodes.\n\nCleanup to ensure we don\u0027t make mistakes when passing a dex method index\nto the HInvoke constructor, and we know which dex file it relates to.\n\nTest: test.py\nChange-Id: I625949add88a6b97e1dafeb7aed37961e105d6aa\n"
    },
    {
      "commit": "9821bce382d9f7ae47f6be02851134955a19aa55",
      "tree": "4babef5106cd687106847127560349e1abe4870d",
      "parents": [
        "a2ad00bee939903d8e2b4b670686ff41523775e3",
        "4717175e40a19e79af904dfb7b7dd13f046debd7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 07 07:49:09 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Sep 07 07:49:09 2020 +0000"
      },
      "message": "Move code item to the data pointer and remove code_item_offset. am: 4717175e40\n\nOriginal change: https://android-review.googlesource.com/c/platform/art/+/1418555\n\nChange-Id: I3b481da2fb05c1ccbac208c98ff0218fc3a971fe\n"
    },
    {
      "commit": "4717175e40a19e79af904dfb7b7dd13f046debd7",
      "tree": "426f040eacf5a8305f8bb8d504bd509824d984c8",
      "parents": [
        "1faacf59b9f74e9d2de4e0331ef0cdfcf132225d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Aug 31 15:03:20 2020 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 07 07:29:59 2020 +0000"
      },
      "message": "Move code item to the data pointer and remove code_item_offset.\n\nThis saves 4 bytes on 32bit and 8 bytes on 64bit on ArtMethod.\n\nAlso update nterp to directly fetch the code item from the data pointer.\n\nTest: test.py\nBug: 112676029\n\nChange-Id: Ic01f43c7ccf2cbce1ec517478e81362232d36371\n"
    },
    {
      "commit": "d90e52f2d7edace0cc844010bfda247790479f66",
      "tree": "0d432c992487a5d0f75feebdab6891f979ce1773",
      "parents": [
        "bd3a1d385a876b1f5e9e2c12b580339e5ee4d974",
        "0d47a82b11ea666fc3ef971b32be5a03ffadc452"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Sep 02 17:56:59 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Sep 02 17:56:59 2020 +0000"
      },
      "message": "Use help-text generator for dex2oat am: 0d47a82b11\n\nOriginal change: https://android-review.googlesource.com/c/platform/art/+/1412267\n\nChange-Id: Ice6da221e969c1b4bdda69df96df4e5d913a00b2\n"
    },
    {
      "commit": "0d47a82b11ea666fc3ef971b32be5a03ffadc452",
      "tree": "2bd3e50b0dae701470f92a713a875ab594b3d344",
      "parents": [
        "6624d58c11b43a10c802037bf1c5754ca276156c"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Aug 25 09:16:34 2020 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Sep 02 17:21:58 2020 +0000"
      },
      "message": "Use help-text generator for dex2oat\n\nThe use of a static text blob makes keeping the dex2oat help text up\nto date difficult. Change to use the new cmdline help-text generator\ncode.\n\nTest: dex2oat --help\nChange-Id: I1139cba2c773242e15f863d7efd2c7050c05ab4f\n"
    },
    {
      "commit": "b966ea4959f8167673660e2d136b5376b7e76af7",
      "tree": "8827145aaabab0add2a58d33920a2bd2336f33f0",
      "parents": [
        "b01f181cafd07901cb7d59a6134e29132e8c80cd",
        "68f0d256edeb45a6149ba656dc7b00494967caf8"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Sat Aug 29 01:12:05 2020 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Sat Aug 29 01:12:05 2020 -0700"
      },
      "message": "Merge Android R (rvc-dev-plus-aosp-without-vendor@6692709)\n\nBug: 166295507\nMerged-In: I193b45316bd8250b85e8c3cfcbdcda00304001ef\nChange-Id: I55df0a8c17ac3631dcd0a7fd842cd2af2d7127f8\n"
    },
    {
      "commit": "0c9a217ba6a8af3b3fd522ec75b69c41f216fe49",
      "tree": "f0c0444e60e76f2cbd69a66c3e1214aecf8a1761",
      "parents": [
        "2ea4cc76a1a04ad16edccf5fe2486964f945a125"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Aug 26 14:42:24 2020 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Aug 27 09:31:45 2020 +0000"
      },
      "message": "Always create IMT conflict tables when generating an image.\n\nIt is required by the runtime. Also remove obsolete code around forcing\narray class initialization: we now always intialize in array classes in\nClassLinker::FinishArrayClassSetup.\n\nTest: eng builds\nBug: 166327764\nChange-Id: I2f2398a8ba60360588c089affc4a73897d9df97b\n"
    },
    {
      "commit": "2cee2131f1f08c8004447cdf17be3940a9ecca64",
      "tree": "31afee4f2ed64c0f24eeaa93e6cb896855a82cae",
      "parents": [
        "f50ee05c4b3eaae80ef0a5637c1124988337ec90"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Aug 24 15:31:52 2020 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Aug 25 13:29:10 2020 +0000"
      },
      "message": "Remove dex2oat_headers library.\n\nIt is now unused.\n\nTest: m\nTest: m test-art-host-gtest\nBug: 142946543\nChange-Id: Ie11bac19e52a166363ebca231287017997d5409c\n"
    },
    {
      "commit": "9a2ba0e2ace958b8a4d655b3f99578957de81544",
      "tree": "01d0c035549391caa2ed0fd7bc00104362cfbd13",
      "parents": [
        "7f91ae239ef270f47cab19840df8231d2e19ee23"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 19 15:01:34 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 19 16:10:08 2020 +0000"
      },
      "message": "Clear DexCache MethodTypes and CallSites in ImageWriter.\n\nAnd clean up the rest of ImageWriter::ClearDexCache().\n\nTest: m\nChange-Id: I975ce128d1ef7a14e972a17c70f1dee2b55914f6\n"
    },
    {
      "commit": "50fe6dc170402600936d72a5fd729b5ebda0294b",
      "tree": "a26c3d7ec656537f32ebff7125c77b3b9dc766c8",
      "parents": [
        "2ea5d0408fd09bd95a97a796270d6b0c31acab2e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 07 17:38:51 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 18 08:00:18 2020 +0000"
      },
      "message": "Optimizing: Fix weak field access check.\n\nTest: New test 727-checker-unresolved-class\nTest: testrunner.py --host --optimizing --interpreter --jvm -t 727\nTest: testrunner.py --host --optimizing\nBug: 161898207\nChange-Id: Iaab9e3fef4775144d533086ec3797ce7d06c50b7\n"
    },
    {
      "commit": "169dfb47436b94def39390be5e2d2ca93e16d61d",
      "tree": "f9c2bea35779bc7abb16e92ce636d1b0670adc8f",
      "parents": [
        "e492f7ed1499a6b600181bb13584091b8f0f63dd"
      ],
      "author": {
        "name": "Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Fri Aug 07 04:22:18 2020 +0000"
      },
      "committer": {
        "name": "Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Tue Aug 11 04:56:51 2020 +0000"
      },
      "message": "Revert^2 \"art: Remove dependencies on platform unavailable modules\"\n\nRevert^2 \"releasetools: Disable host module on darwin\"\n\n0ac3666667de42bd681586d642b52fc9e62e488f\n\nChange-Id: I0c2edeea8a10acc4a6e74a0660ebf7aa5dd67d1b\n"
    },
    {
      "commit": "c4cd59b1f17865d9ba1f362cb5c187cb95982355",
      "tree": "d0b8273b33ff23fab222a167f33bf4f35e6e31d3",
      "parents": [
        "0fa304ee0fa63149222bfc6756f56cd285c56bd1"
      ],
      "author": {
        "name": "Insaf Latypov",
        "email": "saferif@google.com",
        "time": "Thu Aug 06 15:36:57 2020 +0000"
      },
      "committer": {
        "name": "Insaf Latypov",
        "email": "saferif@google.com",
        "time": "Thu Aug 06 15:44:20 2020 +0000"
      },
      "message": "Revert \"art: Remove dependencies on platform unavailable modules\"\n\nRevert \"releasetools: Disable host module on darwin\"\n\nRevert \"conscrypt: Disable host module on darwin\"\n\nRevert submission 1385032-mac-required-fix\n\nReason for revert: breaks the build on aosp-master\nReverted Changes:\nI13335299c:releasetools: Disable host module on darwin\nI728a4677a:conscrypt: Disable host module on darwin\nI8f3435ff1:art: Remove dependencies on platform unavailable m...\nIbb9248ef4:art: Disable host module on darwin\nI7db68a629:libcore: Disable host module on darwin\n\nBug: 163030797\nChange-Id: Ibe83fc65bca64602e8b37b58b2ad6e20476efa63\n"
    },
    {
      "commit": "84eb3c927c5a90aaa63b8e82420689b4ac978730",
      "tree": "24e2ee65dcbc96c9000646e94b1a6e7250e693dc",
      "parents": [
        "47f9c9fdd01835e69b1cae705254c8e5c2b01afc"
      ],
      "author": {
        "name": "Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Fri Jul 31 20:55:17 2020 +0800"
      },
      "committer": {
        "name": "Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Thu Aug 06 04:02:47 2020 +0000"
      },
      "message": "art: Remove dependencies on platform unavailable modules\n\nThe device variants of these tests depend on tools such as\n`dex2oatd` which are not available to the platform. The tools\nare provided by the ART APEX (com.android.art.debug / .testing).\n\nThis also breaks darwin host build coincidentally, because on\nlinux host build the build system confuses the host and device\nvariants of `dex2oatd`, so the build system mistakenly thought\ndevice variant of \"dex2oatd\" exists (while in reality only the\nhost variant exists.)\nOn darwin host however, both device and host variants of\n`dex2oatd` doesn\u0027t exist, thus triggering a build break.\n\nSo for the host variants of these tests, the tools\ndependencies should be specified as\n`host.required: [\u003ctool name\u003e]` and for the device variants\n`android.required: [\"com.android.art.testing\"]`.\nHowever these device testcases are already packaged in the\nART testing APEX, so the device dependency should be omitted.\n\nBug: 162102724\nBug: 7456955\nTest: TH build mac host target\nChange-Id: I8f3435ff11f19f7191e87b0728e6d524bbd0f559\n"
    },
    {
      "commit": "346fd964a826cfb5626582452b7519c04aee2f8a",
      "tree": "49fb6cf2ab865391ba4027389b0049474df38c7b",
      "parents": [
        "d3ee902ed06b635eedebc796543a67299eb6cd05"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jul 27 16:51:00 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jul 28 11:13:37 2020 +0000"
      },
      "message": "More inclusive language in the runtime\n\nTest: m\nBug: 161896447\nBug: 161850439\nBug: 161336379\nChange-Id: Iabc29fa43b4b5a403699d6bca95e9a2cb8945d77\n"
    },
    {
      "commit": "d3ee902ed06b635eedebc796543a67299eb6cd05",
      "tree": "7eaabcd6196325647cb31e8a1210b5465eb694a8",
      "parents": [
        "3c98d6989b3556bd81f67d69190561a16dfc22b8"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jul 27 16:05:38 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jul 28 11:10:47 2020 +0000"
      },
      "message": "More inclusive language in the build system.\n\nTest: m\nBug: 161896447\nBug: 161850439\nBug: 161336379\nChange-Id: I90dfafacc04d91661b1b1f5baf018ea6a423db72\n"
    },
    {
      "commit": "14464670d7d6a226b768873f25d63f5d025941ff",
      "tree": "a2df66958949e9baf0b153fe860655f4a76147f7",
      "parents": [
        "65d6a5b1867772d7a3c331ec9083aa42d531bdcb"
      ],
      "author": {
        "name": "Ian Pedowitz",
        "email": "ijpedowitz@google.com",
        "time": "Fri Jul 24 09:40:26 2020 -0700"
      },
      "committer": {
        "name": "Ian Pedowitz",
        "email": "ijpedowitz@google.com",
        "time": "Fri Jul 24 09:40:26 2020 -0700"
      },
      "message": "Update language to comply with Android’s inclusive language guidance\n\nSee https://source.android.com/setup/contribute/respectful-code for\nreference\n\nBug: 161896447\nBug: 161850439\nBug: 161336379\nTest: N/A - comment only changes\nChange-Id: I0d7ea46f7e06384a8c15fbff2d015183d33a9507\n"
    },
    {
      "commit": "2d53643ca0e05e7c67894aa75eba899acbb9f287",
      "tree": "39299475c04303312f527bc00355bd9fd7a3fad8",
      "parents": [
        "cefebc86af30522bf79d2a89a2bcf96f7f970ecb"
      ],
      "author": {
        "name": "Ian Pedowitz",
        "email": "ijpedowitz@google.com",
        "time": "Wed Jul 22 14:33:00 2020 -0700"
      },
      "committer": {
        "name": "Ian Pedowitz",
        "email": "ijpedowitz@google.com",
        "time": "Fri Jul 24 00:41:56 2020 +0000"
      },
      "message": "Update language to comply with Android’s inclusive language guidance\n\nSee https://source.android.com/setup/contribute/respectful-code for\nreference\n\nBug: 161896447\nBug: 161850439\nBug: 161336379\nTest: m -j checkbuild cts docs tests\nChange-Id: I32d869c274a5d9a3dac63221e25874fe685d38c4\n"
    },
    {
      "commit": "c2208272f24e921b808af53721d2ca821d76503c",
      "tree": "924a1ca0e42c8a59947c4c86e5d26ac4f9d8d71b",
      "parents": [
        "50a454b23485ceb8fe37e102abc0e41e2857876a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 23 11:04:39 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 23 14:15:33 2020 +0000"
      },
      "message": "Replace \"dummy\" with \"fake\" in some tests.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing -t 004-JniTest\nBug: 161336379\nChange-Id: Ifab653fbf66af8ea3bd4a35ca116c7cc91be51bd\n"
    },
    {
      "commit": "4ef451aecd4008ccee2ebf6136a70ed6a5c14717",
      "tree": "d9f2155873bf0c040aad3cc372c3b3509fe4b583",
      "parents": [
        "659e8d6f76d5ce487c46710291e143bc897b5071"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 23 09:54:27 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 23 11:58:05 2020 +0000"
      },
      "message": "Rename kDummy32BitOffset to kPlaceholder32BitOffset.\n\nAnd drop an obsolete reference to Quick compiler.\n\nTest: m test-art-host-gtest\nBug: 161336379\nChange-Id: If08cc0ca83cfeb1c6923c41f9d61766f878a295a\n"
    },
    {
      "commit": "52fe49e87902fb231201874f52c4993e6fe611e9",
      "tree": "afdbe28e5abd1499e7ca780044bf408c2af7da2f",
      "parents": [
        "26d88f8735d94cb4c42733baedeb09695d440795"
      ],
      "author": {
        "name": "Victor Hsieh",
        "email": "victorhsieh@google.com",
        "time": "Mon Jul 20 15:20:12 2020 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 21 21:30:55 2020 +0000"
      },
      "message": "dex2oat: remove unnecessary lock to reference profile\n\nBug: 161573792\nTest: run dex2oat over a remote filesystem\nTest: run dex2oat normally, still succeed\nChange-Id: I831a75a26084880c4e2be41747bc27bb30c31900\n"
    },
    {
      "commit": "547aa5834fff9a624c30ee65ab043f07f3f82f59",
      "tree": "26936a4198e6d0399ef27ca853f84c6766d9d3df",
      "parents": [
        "ddd44ecde46e8e728f5fd0628689851cff63319c",
        "fe9724bfed086f468bc473ee2d8d522a927e2c94"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 02 09:20:04 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jul 02 09:20:04 2020 +0000"
      },
      "message": "Rewrite OatFileManager::OpenDexFilesFromOat. am: 90a18cf5b7 am: fe9724bfed\n\nOriginal change: https://android-review.googlesource.com/c/platform/art/+/1350062\n\nChange-Id: Ic9a5bf84cafa8aa9c242d64d0a9e4b82d9e0f601\n"
    },
    {
      "commit": "90a18cf5b76bbf9a13dc520b8817de51b8efd7f8",
      "tree": "10da04f8d8c00f88bfe844691aa811d00c483ab9",
      "parents": [
        "c4b50b3bb8125aa12255587c55b356b424278110"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 25 15:12:59 2020 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 02 08:45:31 2020 +0000"
      },
      "message": "Rewrite OatFileManager::OpenDexFilesFromOat.\n\n- Remove obsolete option -Xno-dex-file-fallback\n- Only load an oat file when class loader context matches.\n- Remove obsolete duplicate class check code.\n\nBug: 132357300\nBug: 156250899\nChange-Id: I78e645806e0de2f35ce2614285f1a7cbc705484c\n"
    },
    {
      "commit": "0b806a098f0bbfd508d5e0c4d7d6b7b39cc9c745",
      "tree": "729e4fd268e0913ddf234946decf804d002df769",
      "parents": [
        "d6564e460ea537415ac8eb4367fee0d1b8e241d3",
        "1068f455339cdc8c8aedd3e37fa0f54a4fc7ba6c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 19 08:54:04 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Jun 19 08:54:04 2020 +0000"
      },
      "message": "Direct calls to @CriticalNative methods. am: 86c8752f64 am: 1068f45533\n\nOriginal change: https://android-review.googlesource.com/c/platform/art/+/1321919\n\nChange-Id: I4a42cd3d0f25eb52a67e4f8fa815fed744c6b25b\n"
    },
    {
      "commit": "86c8752f64629325026945cd4eabd1dcea224acb",
      "tree": "9dc2be978f9e784a3ce16fa29d46941a94ac1c94",
      "parents": [
        "f97a859e85f703644d897f0e3e1bc54315557aaa"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon May 11 16:55:55 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 19 08:26:46 2020 +0000"
      },
      "message": "Direct calls to @CriticalNative methods.\n\nEmit direct calls from compiled managed code to the native\ncode registered with the method, avoiding the JNI stub.\n\nGolem results:\nart-opt-cc                       x86 x86-64    arm  arm64\nNativeDowncallStaticCritical  +12.5% +62.5% +75.9% +41.7%\nNativeDowncallStaticCritical6 +55.6% +87.5% +72.1% +35.3%\nart-opt                          x86 x86-64    arm  arm64\nNativeDowncallStaticCritical  +28.6% +85.6% +76.4% +38.4%\nNativeDowncallStaticCritical6 +44.6% +44.6% +74.6% +32.2%\n\nTest: Covered by 178-app-image-native-method.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --debuggable --ndebuggable \\\n          --optimizing --jit --jit-on-first-use\nTest: run-gtests.sh\nTest: testrunner.py --target --optimizing\nTest: testrunner.py --target --debuggable --ndebuggable \\\n          --optimizing --jit --jit-on-first-use -t 178\nTest: aosp_cf_x86_phone-userdebug boots.\nTest: aosp_cf_x86_phone-userdebug/jitzygote boots.\nBug: 112189621\nChange-Id: I8b37da51e8fe0b7bc513bb81b127fe0416068866\n"
    },
    {
      "commit": "99f5f2af510aebb7ce7344a6a00837d7ecaccf31",
      "tree": "b7e41640cd83622b67e7236fb86f78131181a7cd",
      "parents": [
        "4977521d54b66395f29c0be47ec1075ebf29aeff",
        "25bf65544029225b2d11bc568443e60921bdd2b3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 11 10:44:04 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jun 11 10:44:04 2020 +0000"
      },
      "message": "Clean up generated operator\u003c\u003c(os, enum). am: 9974e3cdc1 am: 25bf655440\n\nOriginal change: https://android-review.googlesource.com/c/platform/art/+/1331113\n\nChange-Id: Iea2166f4e730a54e1eebe28d84466f5542b2de3a\n"
    },
    {
      "commit": "9974e3cdc1564edc3143b90d7bb2a416f1f887e7",
      "tree": "4f9746e6b237b2a17cc1e2543a141817d4946c19",
      "parents": [
        "2d19902c3d140c7b9b1d7ae905bd1023a4e649a1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 10 16:27:06 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 11 10:06:12 2020 +0000"
      },
      "message": "Clean up generated operator\u003c\u003c(os, enum).\n\nPass enums by value instead of const reference.\n\nDo not generate operator\u003c\u003c sources for headers that have no\nenums or no declarations of operator\u003c\u003c. Do not define the\noperator\u003c\u003c for flag enums; these were unused anyway.\n\nAdd generated operator\u003c\u003c for some enums in nodes.h . Change\nthe operator\u003c\u003c for ComparisonBias so that the graph\nvisualizer can use it but do not use the generated\noperator\u003c\u003c yet as that would require changing checker tests.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: Ifd4c455c2fa921a9668c966a13068d43b9c6e173\n"
    },
    {
      "commit": "14e05b81a026e6a98108e694668e893f32a12886",
      "tree": "d54d90416723bf683532f2123acc9cd52d461a1d",
      "parents": [
        "c1b89f819485553c11ebc7edcd9f352d00f43420",
        "9db35462c6806529d1e885caba0ef293fa52db2e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jun 09 14:54:25 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jun 09 14:54:25 2020 +0000"
      },
      "message": "Update built-in updatable BCP packages for statsd. am: 9db35462c6\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/art/+/11797131\n\nChange-Id: I38c8abeff61c23bb45d5c3db718de012ad29b477\n"
    },
    {
      "commit": "9db35462c6806529d1e885caba0ef293fa52db2e",
      "tree": "da715e2db6e4567c720998cf78cdaac3301ccc36",
      "parents": [
        "396e61cc009b9214f22ff0dfb2b8ec7853c3d0a2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jun 09 14:10:13 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jun 09 14:37:57 2020 +0000"
      },
      "message": "Update built-in updatable BCP packages for statsd.\n\nThis is a follow-up to commit\n    058db967d9adf86d8e2c6a3287864fab70803aa9\n\nTest: m\nBug: 157649935\nChange-Id: I1da323905d3349c8cfd7ad5ef95136e31d391bdc\n"
    },
    {
      "commit": "528b6e6262e6ad206cc9dfe2b0e3fde023f5b257",
      "tree": "df205e059e032173529f70dae7007d2674444eaf",
      "parents": [
        "9b37bc177feb621a7ee83e9c585f76809d0be180",
        "8e11b6b0552fd7aef2e323be95f529d195c28ae8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jun 09 13:05:58 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jun 09 13:05:58 2020 +0000"
      },
      "message": "Add a new class status for verified with access checks. am: 1715efa0b4 am: 8e11b6b055\n\nOriginal change: https://android-review.googlesource.com/c/platform/art/+/1325172\n\nChange-Id: Ia7e0e616c3295f3c3219e087a6f7f275d01267bc\n"
    },
    {
      "commit": "1715efa0b46d57d587237829d1c0695aaca2c344",
      "tree": "61e7013808a8fa9c45384fa8d84bd7f3eb1eaf34",
      "parents": [
        "9922f00cf68aac69209216a0726a45eb6338763c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 05 18:34:49 2020 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jun 09 12:28:42 2020 +0000"
      },
      "message": "Add a new class status for verified with access checks.\n\nAt runtime, we won\u0027t run the verifier for those classes, but run with\naccess checks enabled in the interpreter.\n\nBug: 157265232\nTest: test.py\n\nChange-Id: Ia087c3b6f9fcbd295307333e524945d844ef54dc\n"
    },
    {
      "commit": "ac68442d1ce17b442ff924a69e8bea2b22f6f4e7",
      "tree": "d7a8f730bb09fc266762a9a159a88661b492d040",
      "parents": [
        "8254589537be5f5c8429113fd0e56782f2d2d1c9",
        "7057fc2f3646ba574cea783272b6c1f2adf2baf7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jun 08 16:22:26 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Jun 08 16:22:26 2020 +0000"
      },
      "message": "Fix dlsym lookup trampoline for @CriticalNative. am: 6bc480b56e am: 7057fc2f36\n\nOriginal change: https://android-review.googlesource.com/c/platform/art/+/1324556\n\nChange-Id: Ie007fa61ebd7a80dddccc4aba0d33e11db194a04\n"
    },
    {
      "commit": "6bc480b56e8bf070eb425b792757c62ca8fd38b2",
      "tree": "b00302f3be9f3ca54b4d0e870e47d14dcd97705f",
      "parents": [
        "66704db5967a8eed64f53d82594205d6d48a953d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jun 08 09:00:33 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jun 08 14:56:13 2020 +0000"
      },
      "message": "Fix dlsym lookup trampoline for @CriticalNative.\n\nFor @CriticalNative we do not have the JniEnv* argument to\nretrieve the Thread*, we must use the thread register.\n\nThe test 178-app-image-native-method was supposed to cover\nthis but the profile was missing the necessary references.\nWe add those references and add $noinline$opt$ tags to make\nsure the test actually runs the way it was supposed to and\nadd extra calls to the critical methods as they can take\ndifferent paths on subsequent execution.\n\nAlso add an extra test for class initialization checks that\nensures correct behavior for planned direct calls from\ncompiled managed code to registered @CriticalNative code.\n\nTest: testrunner.py --target --optimizing -t 178\nBug: 112189621\nChange-Id: I6a63d990bc08236ebaac7dacb0f5979d835ee321\n"
    },
    {
      "commit": "2b4242a5ad0ff4aabc70e6559d784cf7202ea40e",
      "tree": "96f1710db302939e948cae3425f969c5ebcd47c9",
      "parents": [
        "1507982c14a355667ff965e1399147b7abbf4f23",
        "d0bfc488a49ed26bfcdd1649bbcb6dbf364eea00"
      ],
      "author": {
        "name": "David Su",
        "email": "dysu@google.com",
        "time": "Tue Jun 02 19:20:02 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jun 02 19:20:02 2020 +0000"
      },
      "message": "Wifi: Remove unused permitted_package am: d0bfc488a4\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/art/+/11688280\n\nChange-Id: I7ef909af236642ab728a6148208cddc56b2f69be\n"
    },
    {
      "commit": "d0bfc488a49ed26bfcdd1649bbcb6dbf364eea00",
      "tree": "ccc4bcf89100adf054ecfcce53728a1cf811da5c",
      "parents": [
        "ce68e3fbf8e90b050dde7a38a509359f2e12f4f7"
      ],
      "author": {
        "name": "David Su",
        "email": "dysu@google.com",
        "time": "Mon Jun 01 14:13:06 2020 -0700"
      },
      "committer": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 02 19:04:53 2020 +0000"
      },
      "message": "Wifi: Remove unused permitted_package\n\nandroid.x.net.wifi is no longer used as the\npackage name for jarjar\u0027ed classes. Instead we\nhave settled on com.android.wifi.x going forward.\n\nBug: 157781374\nTest: boots up and connects to wifi\nChange-Id: Ia0741bcee4bdd79c76b8d659c072795a1eb4e5e1\n"
    },
    {
      "commit": "57d79b5108acaed7720a770eda41870c074c5c07",
      "tree": "c75cb7c5f1383aa94dc8d73e33bd6d9ee7e9abb9",
      "parents": [
        "5731f8b184bab3455ab41ca5da0e0480d42105a4",
        "32d4dcae13a3a2433670f57908e9f88d879ae8f8"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sat May 30 14:24:19 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat May 30 14:24:19 2020 +0000"
      },
      "message": "Remove core.art image am: 6355d6932a am: 32d4dcae13\n\nChange-Id: I89a0be56e7bb76c5c9678adae6911bd65eca295b\n"
    },
    {
      "commit": "6355d6932a9e8267b3025f4061583f5610e64e54",
      "tree": "5531fe626119b7b6f4015fd3fa1f627c6846aa9c",
      "parents": [
        "fa915c920f07a794f06a9bee47513dc5f303d019"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Mar 26 14:10:26 2020 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sat May 30 13:58:29 2020 +0000"
      },
      "message": "Remove core.art image\n\nIt is no longer used.\n\nTest: ./art/test.py -r --optimizing\nBug: 147817558\nBug: 147819342\nChange-Id: I913d7b78365d028bfcd9d876238882ebfd410682\n"
    },
    {
      "commit": "ebb8a10860a103641ec3e3bef14144a14f040fa4",
      "tree": "ee105b2e1a97e4333bc17bca842d9e9af377e864",
      "parents": [
        "5b48678dd019ad7e84db7343034c43f47f9a6fe7",
        "351c717a15a2e67ce36bf58bc6ec1a7c670fc174"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri May 29 21:59:12 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri May 29 21:59:12 2020 +0000"
      },
      "message": "Finish move of jar compilation rules from makefile to soong. am: 4a88a5af74 am: 351c717a15\n\nChange-Id: I1344eb58720cc3fac729d9aeef7dc43e04862c74\n"
    },
    {
      "commit": "5b48678dd019ad7e84db7343034c43f47f9a6fe7",
      "tree": "1f903ae8ee034194c1d2143e2ffe47bf94e21cf0",
      "parents": [
        "2afb9c01bddae41d841de69e178a71758726edbb",
        "19e45e5e596393f15b814fad823d534d9575c2d6"
      ],
      "author": {
        "name": "Evgeny Astigeevich",
        "email": "evgeny.astigeevich@linaro.org",
        "time": "Fri May 29 21:58:58 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri May 29 21:58:58 2020 +0000"
      },
      "message": "ART: Add classes having intrinsics to boot image am: ffffa9c4e1 am: 19e45e5e59\n\nChange-Id: I2e6f934da2d736b45815eb93ca42a53ee152c3bc\n"
    },
    {
      "commit": "4a88a5af7417d9dc0bfe37cffd92a253531c8f30",
      "tree": "6a0496ac10c62f8d183265a9d9615d5778a8c444",
      "parents": [
        "ffffa9c4e18e233db7b0f5eb31d07d8a52d527e4"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue May 05 16:21:57 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri May 29 11:51:26 2020 +0000"
      },
      "message": "Finish move of jar compilation rules from makefile to soong.\n\nThe rules have already been previously ported to soong, but they were\nonly used for atest.  Always use them to simplify the makefile.\n\nThis makes the gtest modules in .bp files depend on the needed jars,\nwhich ensures that they will be copied next to the test binary.\nThis is needed as atest can not access them in the current location.\n\nIt also simplifies the tradefed xml since the manual copying\ncan be removed for the apex-based device testing.\n\nTest: test-art-host-gtest\nTest: atest ArtGtestsTarget\nBug: 147819342\nChange-Id: I54d92eca88fc04c949209d490e838d0a92ce8f87\n"
    },
    {
      "commit": "ffffa9c4e18e233db7b0f5eb31d07d8a52d527e4",
      "tree": "562f5fa455f06e4f538645c4c6190f18d2715f41",
      "parents": [
        "62d33f78909f86b7eea22b9e982a93709c2b2c92"
      ],
      "author": {
        "name": "Evgeny Astigeevich",
        "email": "evgeny.astigeevich@linaro.org",
        "time": "Thu May 28 12:38:30 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 29 11:22:47 2020 +0000"
      },
      "message": "ART: Add classes having intrinsics to boot image\n\nClasses, which have intrinsics methods but are not in\nboot-image-profile.txt, are not included into the boot image.\nThis causes the list of intrinsics to be a mix of methods from\nthe boot image and the framework. Intrinsics methods from the boot\nimage are already marked as intrinsics. Intrinsics methods from the\nframework are not marked. The current implementation of InitializeIntrinsics\nstops initializing intrinsics when it encounters an initialized\nintrinsic on the list. This means uninitialized intrinsics must be\nat the beginning of the list. Otherwise they won\u0027t be initialized.\n\nInstead of rearranging the list, the CL adds classes having intrinsics\nmethods to the boot image. This guarantees all intrinsics to be marked.\nThe CL also adds DCHECK to InitializeIntrinsics to check that all\nintrinsics have been initialized.\n\nTest: test.py --host --optimizing --jit --gtest --interpreter\nTest: test.py --target --optimizing --jit --interpreter\nTest: run-gtests.sh\nChange-Id: I82bc840bc2c07d3e4e527ee6e1f76c2015c59c21\n"
    },
    {
      "commit": "5b97a6cb51e5910a8e7e65d24cae1dba76d5cfdb",
      "tree": "59ba38577bf159f1956e96c802651c61073e07e9",
      "parents": [
        "9e8d90feefdbcdfab6bfe4ed3d0c6f4b8bbda5ef",
        "f43e0e145c23d33b176a557c4aac0146894e0263"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu May 28 22:19:37 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu May 28 22:19:37 2020 +0000"
      },
      "message": "dex2oat: Add missing updatable package for framework-wifi am: f43e0e145c\n\nChange-Id: Id7c71f377089ea458cc5f1eeaa2a074ac7185ac3\n"
    },
    {
      "commit": "f43e0e145c23d33b176a557c4aac0146894e0263",
      "tree": "f377b2e7d600a95d7f0c383c4a108671588eef35",
      "parents": [
        "c35b3ec1427ae02197210a817e4f63018cfe3671"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu May 28 18:56:47 2020 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu May 28 22:17:28 2020 +0000"
      },
      "message": "dex2oat: Add missing updatable package for framework-wifi\n\nTest: m droid checkapi\nBug: 155164730\nChange-Id: If6e3b596547426312ffe7fe865e92eadad63888e\n"
    },
    {
      "commit": "2280b534e24e600a46b6e83141b546659c461552",
      "tree": "58f8372d73b2229a8c22673f74fdf313c37ffd57",
      "parents": [
        "fc136524f5a99be31f0c37ff849c07fde5629562"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed May 27 00:30:44 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed May 27 13:44:26 2020 +0000"
      },
      "message": "Move gtest tool dependencies from makefile to soong\n\nBug: 147817558\nBug: 147819342\nTest: run test individually and remove the tools directory between runs\nChange-Id: Ida773d76fdeadb38695d6a2556ad4a55adb823b5\n"
    },
    {
      "commit": "d21ecf68035305b36e6129f85a5088a57a31e549",
      "tree": "edb9f81da84dc22a0f492521e1609fddad4af406",
      "parents": [
        "39bb1646aa980c906c3fb86b14cd26c1187782fe"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 15 16:52:32 2020 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu May 21 21:29:48 2020 +0000"
      },
      "message": "Put dex2oat32 and dex2oat64 in the ART apex.\n\nRequired to move to dex2oat64 on some devices.\n\nTest: m \u0026\u0026 art_apex_test\nTest: art/build/apex/runtests.sh\nBug: 153380900\n(cherry picked from commit d68580ee6508bd9d5aa6bbdef33f79b8c2cbcf85)\nChange-Id: Ibb0f181f32474eaedef7a8aa4b441cec8899b8c3\nMerged-In: Ie4a75d72a8be3c1252c6b49b29d680dc641b6b61\n"
    },
    {
      "commit": "6ed4a76d35f557c938669e68494041334227601f",
      "tree": "2aa6a0425536419bb03f82872a46547947e42245",
      "parents": [
        "3562b1b2bb0bc46bc0e01c0b22c4cf6b95ad934a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu May 21 12:39:05 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu May 21 17:55:39 2020 +0000"
      },
      "message": "DO NOT MERGE ANYWHERE Revert \"Put dex2oat32 and dex2oat64 in the ART apex.\"\n\nThis reverts commit 9389c54713d8a25413068fb7605d587ba0c95c73.\n\nBug: 155833188\n\nReason for revert: Wrong Merged-In tags.\n\nChange-Id: Iee8b048e179c325ab900702868cea67d38235a52\n"
    },
    {
      "commit": "6c71dca9ecb00b46172b37153b93ab1fbcd772dd",
      "tree": "00729119ac6f4fc5c81d9b7ee176c98eab14c93e",
      "parents": [
        "c4b83106ccc80074045588a6e94700f42e377fb5"
      ],
      "author": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Mon May 18 12:50:56 2020 +0100"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Thu May 21 13:03:28 2020 +0000"
      },
      "message": "Hardcode more array types in the profile for the ART boot image.\n\nMotivation: after separation of core-icu4j into i18n APEX\n(https://r.android.com/1302774), core-icu4j has been moved from the ART\nboot image to the framework boot image extension. This has caused\nslowdown on ZygoteInit and PostZygoteInitGC (b/156098788), as well as\nincrease of PSS for zygote (b/156198579).\n\nTwo factors contribute to the regression:\n\n1. Some classes are now missing from the boot image (they were\n   previously included in the ART image because core-icu4j contains\n   references to them):\n\n    java.lang.Class \"byte[][][]\"\n    java.lang.Class \"int[][]\"\n    java.lang.Class \"int[][][]\"\n    java.lang.Class \"java.lang.ref.WeakReference[]\"\n    java.lang.Class \"java.math.MathContext[]\"\n    java.lang.Class \"java.security.Provider[]\"\n    java.lang.Class \"java.text.DateFormat[]\"\n    java.lang.Class \"java.text.Normalizer$Form[]\"\n    java.lang.Class \"java.time.temporal.IsoFields$Field[]\"\n    java.lang.Class \"short[][]\"\n    java.lang.Class \"sun.security.jca.ProviderConfig[]\"\n\n2. Some classes that previosly were verified now require verification\n   at run-time.\n\nThis patch addresses the first problem: it hard-codes array classes\nint[][], int[][][], short[][], byte[][][] in the profile for ART image.\nThese four classes have been chosen because they contribute most to\nthe output of:\n  `m dump-oat-boot \u0026\u0026 \\\n     grep -cE \u0027Class.*VisiblyInitialized\u0027 boot.host-\u003carch\u003e.oatdump.txt`\n\n[[I+[[[I+[[S+[[[B+[WR+[MC+[P+[DF+[NF+[IFF+[PC    8505 \u003c\u003d all\n[[I+[[[I+[[S+[[[B+[WR+[MC+[P+[DF+[NF+[IFF        8504\n[[I+[[[I+[[S+[[[B+[WR+[MC+[P+[DF+[NF             8503\n[[I+[[[I+[[S+[[[B+[WR+[MC+[P+[DF                 8502\n[[I+[[[I+[[S+[[[B+[WR+[MC+[P                     8501\n[[I+[[[I+[[S+[[[B+[WR+[MC                        8500\n[[I+[[[I+[[S+[[[B+[WR                            8498\n[[I+[[[I+[[S+[[[B                                8496 \u003c\u003d this patch\n[[I+[[[I+[[S                                     8494\n[[I+[[[I                                         8492\n[[I                                              8489\n                                                 8435 \u003c\u003d none\n\nTest: aosp_cf_x86_phone-userdebug boots\n\nTest: Forrest runs of asit/perf/boottime_test (SuccessiveBootTest) show\n    reduced slowdown on ZygotInit compared to the metric before:\n    - wembley (zygote32) is down to 4880ms\n      (from ~5150ms, compared to ~4800ms before the ICU change)\n    - walleye (zygote64) is down to 1385ms\n      (from ~1430ms, compared to ~1350ms before the ICU change)\n    Stats of this Forrest run may be too good due to the noise:\n    https://android-build.googleplex.com/builds/forrest/run/L52500000567492990\n\nBug: 156098788\nBug: 156198579\nChange-Id: I62a27124fcd431000cc7752ba72e7faa85499a64\n"
    },
    {
      "commit": "695348f4b0541f4373b46eac5830cdd87f71c076",
      "tree": "f2f6019f0c394f99aaaf9f2f7deec16bf6116b0f",
      "parents": [
        "1f5300a211202442a07607830c6550773ca50b50"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 19 14:42:02 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 20 08:41:09 2020 +0000"
      },
      "message": "Add compiler type to CompilerOptions.\n\nLet CompilerOptions hold the information whether it is AOT\nor JIT compilation, or Zygote JIT for shared code.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing --jit\nTest: aosp_taimen-userdebug boots.\nChange-Id: Id9200572406f8e43d99b8b61ef0e3edf43b52fff\n"
    },
    {
      "commit": "b1c8e161a1f216f48e28c8bcd5a6b26752c7e2a0",
      "tree": "5f97c683540e440d3a33948b06c267dccbe1b7b6",
      "parents": [
        "daee51f893902526b191b3a3c5dd179b1964a352"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon May 18 19:04:42 2020 +0900"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 19 00:58:00 2020 +0000"
      },
      "message": "Dynamically link to libz\n\nlibz will be a stub providing library, which means it has stable API\nsurface that Mainline modules can depend on. APEXes including the\nruntime APEX don\u0027t need to statically link to it; it will just increase\nthe size of the APEX. With ag/11420260 this is even prohibited.\n\nThis change changes the static linkings to libz to dynamic linkings.\n\nBug: 155456180\nTest: m\nChange-Id: Ic6a38909241c8f851bf299130542bc323a0ff2ef\n"
    },
    {
      "commit": "58520dfba31d6eeef75f5babff15e09aa28e5db8",
      "tree": "eb09e871c318fa9a01923e9afd31f70bdbb5e468",
      "parents": [
        "bc89ed42d6128c27819e5403f6ceca5c18892e23"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed May 13 17:08:43 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 13 19:34:11 2020 +0000"
      },
      "message": "Revert \"Use MADV_FREE to reclaim pages of freed regions\"\n\nThis reverts commit 315f1b21a51a67e5d9c9ec3a04f1887931061e10.\n\nReason for revert: Regression in PSS (b/155678984). Also MPTS test report a low hit ratio (20%), which doesn\u0027t justify the change, at least in the current format. A workaround will be to bring back marking pages back and only madv_free first few regions which are expected to be allocated soon. The rest of the regions should probably be reclaimed with MADV_DONTNEED. Also, for a GC happening when the app is in background should probably reclaim all regions with MADV_DONTNEED.\n\nTest: art/test/testrunner/testrunner.py\nBug: 155678984\nBug: 74447417\nBug: 140130889\nChange-Id: I3c4bc4648a3b12062957a51ee716742eb9944747\n"
    },
    {
      "commit": "bc89ed42d6128c27819e5403f6ceca5c18892e23",
      "tree": "38a0490a8a9ee725e099381840baa2a95e776300",
      "parents": [
        "12cde746b872c149a542ada0277040068af6606c"
      ],
      "author": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Wed Apr 29 19:59:24 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 13 19:14:21 2020 +0000"
      },
      "message": "Do not execute OAT files that require app images that cannot be loaded\n\nThis change creates a new requires-image flag in the OAT header, which\nis set when the file was created with an image (app image, etc.). If\nthis flag is set, we will not load the OAT file as executable if the\nimage could not be loaded.\n\nGoing forward, this allows the compiler to assume there will be an app\nimage when an app image is generated and in some cases generate better\ncode.\n\nNote that we still must load the OAT file, because there will not always\nbe another way to access the underlying DEX files.\n\nRevert submission 1298633-revert-155218105\n\nReason for revert: Fixing tests and relanding\nReverted Changes:\nI701c91d5b:Revert \"Disable ART run-test 2231-oat-require-app-...\nIc5cda4c75:Revert \"Reject OAT file in speed-profile if app im...\n\nBug: 38313278\nTest: m test-art-host-gtest-oat_file_assistant_test64\nTest: atest android.server.wm.MultiDisplaySecurityTests#testDisplayHasAccess_UIDCanPresentOnPrivateDisplay android.classloaders.cts.UsesLibraryHostTest#testUsesLibrary_full\nChange-Id: I52cca033fa8e2e6de86514c833798c3d99b99477\n"
    },
    {
      "commit": "5868adaefe72cc8bcdcd8325c40f712375a506d1",
      "tree": "a1d4328902c4e860fe69c4e4bb34052de2530df3",
      "parents": [
        "5a62af5dc9e9bafeffcac7820e1a5b7586e58477"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 12 11:50:34 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 13 08:00:22 2020 +0000"
      },
      "message": "Move implementations from class_root.h to -inl.h .\n\nMake it possible to include the definition of enum ClassRoot\nwithout pulling in a lot of other headers.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nChange-Id: Ic90fdd70bfe0c5428a5c9a0d7901ea7e15b03488\n"
    },
    {
      "commit": "94a810be73cea8f7c34df572fbdf5d2fbb2d6f87",
      "tree": "849a2455396dc27981ef34fab2a524ab135b8dfa",
      "parents": [
        "fc5e2ef08c78bcf4a60c5097ff3a7fa80e358522"
      ],
      "author": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Wed May 06 14:33:16 2020 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 08 19:07:00 2020 +0000"
      },
      "message": "Small cleanups\n\nThis change addresses several cleanup opportunities that came up during\nhttps://r.android.com/1298080, including:\n\n* Remove --no-dex2oat from the run-test usage message, since this option\n  is no longer supported.\n\n* Refactor the `b ? OatHeader::kTrueValue : OatHeader::kFalseValue`\n  pattern in dex2oat so there is less code duplication.\n\nTest: ./test.py --host\nChange-Id: I9a2a6649116cd431c3829901965f2e48812fcbd6\n"
    },
    {
      "commit": "6621013ee43ae5c8ec3ab5e35530fe2c732da85b",
      "tree": "ccb518cd35e44e2d2376b803175d4a3f6ec14993",
      "parents": [
        "9e4b42ad325ee8583b3c98550010516a3a127527"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 05 14:29:30 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 06 08:10:01 2020 +0000"
      },
      "message": "Allow unresolved exception classes in boot image.\n\nAnd incorporate dex2oat_image_test changes from\n    https://android-review.googlesource.com/1302586\nto test that this works.\n\nTest: m test-art-host-gtest\nBug: 153648261\nChange-Id: I810de9c84973156c06a2c871bf2e0921c80a3fa4\n"
    },
    {
      "commit": "9e4b42ad325ee8583b3c98550010516a3a127527",
      "tree": "d9b2dcb265434d03aacbd1fe5e4b96c8217c018c",
      "parents": [
        "5477b8e55f01a58fac188f272818b38a19c50d4e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 28 12:28:21 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 06 08:05:59 2020 +0000"
      },
      "message": "Refactor vdex file writing.\n\nInstead of unzipping dex files to the vdex file using a file\ndescriptor, reserve space in the vdex file and mmap it to\nmemory and unzip dex files to memory. Postpone any flushes\nuntil after we have finalized the contents, then flush the\ncontents without header, then store and flush the header.\n\nTesting with a certain big app on aosp_taimen-userdebug and\nusing --dump-timings to show the timing for different phases\nof compilation shows significant improvements. The time of\n\"Write Dex files\" goes from ~1s down to ~0.3s and also the\n\"OpenDexFiles\" is reduced from ~0.3s to ~0.2s. The latter is\npresumably caused by having the memory pages already filled\nwith data because this change does not touch that code. The\n\"dex2oat Write VDEX\" phase time does not significantly\nchange but it has an impact on the time of the enclosing\n\"dex2oat Oat\" phase, increasing it by up to ~0.2s.\n\nThis change also prepares for future improvements, such as\ndoing the dex file extraction on multiple threads (one task\nper dex file, helping with multi-dex), or tuning when we\nflush the vdex file contents (dex file data could be\nflushed with an msync() on a separate thread while we\u0027re\nrunning the \"dex2oat Compile\" phase but that could be\ncounter-productive for dex-to-dex compilation as we would\npotentially write the bytecode twice).\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nBug: 34201138\nChange-Id: I9dbc2b0b4e3bf1e3b2cbf78957356e1d4ca23f66\n"
    },
    {
      "commit": "4a48775376a4c0b180a7d32ad2cdf00bd0dca140",
      "tree": "ef0bbb1281f6d4785e60f26cb420646c83eb6f6d",
      "parents": [
        "b5146a3b70b9bf15532d25d3b876354938976bc9"
      ],
      "author": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Tue May 05 11:11:30 2020 +0000"
      },
      "committer": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Tue May 05 11:11:30 2020 +0000"
      },
      "message": "Revert \"Move ICU from ART APEX to i18n APEX\"\n\nRevert \"Move v8 and libpac into i18n APEX\"\n\nRevert \"Move core-icu4j into I18n APEX\"\n\nRevert \"Move ICU from ART APEX into i18n APEX\"\n\nRevert \"Move core-icu4j into i18n APEX\"\n\nRevert \"Move libpac into i18n APEX\"\n\nRevert \"Add shared library into i18n APEX and add the required s...\"\n\nRevert \"Make com_android_i18n namespace visible\"\n\nRevert submission 1299494-i18nApex\n\nReason for revert: Breaking aosp_x86-eng on aosp-master\nReverted Changes:\nI30fc3735b:Move ICU from ART APEX to i18n APEX\nIcb7e98b5c:Calling @IntraCoreApi from core-icu4j should not c...\nIc7de63fe3:Move core-icu4j into I18n APEX\nI65b97bdba:Make com_android_i18n namespace visible\nIa4c83bc15:Move v8 and libpac into i18n APEX\nI10e6d4948:Move core-icu4j into i18n APEX\nI8d989cad7:Move ICU from ART APEX into i18n APEX\nI72216ca12:Move ICU into i18n APEX\nIef9dace85:Add shared library into i18n APEX and add the requ...\nI7d97a10ba:Move libpac into i18n APEX\nI90fff9c55:Move ICU from ART APEX into i18n APEX\n\nChange-Id: I516a8d290e3a3cc2b45d71ba5400364b0478a57a\n"
    },
    {
      "commit": "8419b82fa8d46362eb1369ec1876ee2d3c4bc29d",
      "tree": "dca0a5f4cd30c2882e404532eb06691a19624306",
      "parents": [
        "b6f4c79b06bb97651a7be1ac828d18ed18356603"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Mon Apr 06 20:42:07 2020 +0100"
      },
      "committer": {
        "name": "vichang",
        "email": "vichang@google.com",
        "time": "Tue May 05 08:52:20 2020 +0000"
      },
      "message": "Move ICU from ART APEX to i18n APEX\n\nIt involves a change of boot class path to use core-icu4j\nfrom i18n APEX.\n\nBug: 138994281\nTest: device boots\nTest: m build-art-target-tests\nTest: CtsJniTestCases\nTest: atest libnativeloader_test\nTest: ./art/test/testrunner/run_build_test_target.py -j80 art-test\nTest: art/build/apex/runtests.sh\nChange-Id: I30fc3735be760cba48856cd102852d2a6c796374\n"
    },
    {
      "commit": "71f661c294156f2ebe10600368a23a35d882c67b",
      "tree": "92f830a0ffe7e266a2182bac8dcb3fd4d6ba9c55",
      "parents": [
        "0c66e678a0562846449a424e297211a1aa70694d"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Tue Apr 28 18:20:43 2020 +0900"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon May 04 12:18:30 2020 +0000"
      },
      "message": "Set apex_available property\n\nThe marked library(ies) were available to the APEXes via the\nhand-written whitelist in build/soong/apex/apex.go. Trying to remove the\nwhitelist by adding apex_available property to the Android.bp of the\nlibraries.\n\nBug: 150999716\nTest: m\nMerged-In: Ie9a693be10c6c6571c8aa5357500f5d931400593\n(cherry picked from commit 0f152391c0458d3d1cce04a11bc92e7234955d6f)\nChange-Id: Ie9a693be10c6c6571c8aa5357500f5d931400593\n"
    },
    {
      "commit": "0f152391c0458d3d1cce04a11bc92e7234955d6f",
      "tree": "41662dd66d7cb33a2b2398d39a0a6476e1ad5eb8",
      "parents": [
        "4b62522c9d7d5cb4177d337b9a162df9471f4aff"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Tue Apr 28 18:20:43 2020 +0900"
      },
      "committer": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon May 04 10:13:36 2020 +0000"
      },
      "message": "Set apex_available property\n\nThe marked library(ies) were available to the APEXes via the\nhand-written whitelist in build/soong/apex/apex.go. Trying to remove the\nwhitelist by adding apex_available property to the Android.bp of the\nlibraries.\n\nBug: 150999716\nTest: m\nChange-Id: Ie9a693be10c6c6571c8aa5357500f5d931400593\n"
    },
    {
      "commit": "315f1b21a51a67e5d9c9ec3a04f1887931061e10",
      "tree": "4d736d750c5839395aac65a48bd3935a9831cdbc",
      "parents": [
        "0f5b2bf1aee7e08ce3b0dbf91ee528eb846d372f"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Feb 12 18:10:32 2020 -0800"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Fri May 01 18:22:13 2020 +0000"
      },
      "message": "Use MADV_FREE to reclaim pages of freed regions\n\nIn order to release memory consumed by freed regions back to kernel we\nuse madvise(MADV_DONTNEED) syscall, which synchronously takes away all\nthe pages of the given memory range. As a side-effect, this also\nprovides us clean (zeroed-out) pages the next time region is used by\nan application thread as a TLAB. The downside is overhead of\nMADV_DONTNEED (it has to manipulate all the corresponding page-table\nentries). Furthermore, the application thread gets page fault each\ntime it moves from one page to the next while consuming the TLAB.\n\nMADV_FREE is another madvise option that also advises kernel to take\naway the pages, but only when there is memory pressure. It is a much\nmore light-weight operation than MADV_DONTNEED. Also, the application\nthread doesn\u0027t get the page fault overhead, if the page is not already\nreclaimed. However, a page which is not reclaimed by the kernel will\nhave stale data on it.\n\nThis change uses MADV_FREE for region-space\u0027s reclamation and ensures\nthat pages about to be used for new allocations are properly cleared.\n\nBug: 74447417\nBug: 140130889\nTest: Golem, mpts/greenday tests\nChange-Id: I1e4a75abed51844d5062685bf77871f609af5a65\n"
    },
    {
      "commit": "bb3560d58538d7172b058853d471a876ddd86467",
      "tree": "c2c305bbefd5560daf6438fd1fced57e8dc687db",
      "parents": [
        "3e076810bab2ff46689e6e79b4026d5c1e7d98cb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 30 11:14:11 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 30 19:10:31 2020 +0000"
      },
      "message": "dex2oat: Fix vdex file invalidation.\n\nWe erroneously stored the invalid vdex magic \"wdex\" after\nthe header because we already read the header and did not\nseek back to the start of the file.\n\n(cherry picked from commit 4b62522c9d7d5cb4177d337b9a162df9471f4aff)\n\nTest: Updated dex2oat_test#RunUnquickenMultiDex.\nTest: m test-art-host-gtest\nBug: 155366778\nMerged-In: Ie369a8822d08be731b8d272fa8556c3939aeb66f\nChange-Id: I8f7a0d06dbb9cedd319b9c0d7c340107ce88e56c\n"
    },
    {
      "commit": "4b62522c9d7d5cb4177d337b9a162df9471f4aff",
      "tree": "db432989f04b000605b44dbd406f4662ad3fcbe8",
      "parents": [
        "f27d50cbfc15ea1235c937565eb434bfa1022f1b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 30 11:14:11 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 30 11:53:10 2020 +0100"
      },
      "message": "dex2oat: Fix vdex file invalidation.\n\nWe erroneously stored the invalid vdex magic \"wdex\" after\nthe header because we already read the header and did not\nseek back to the start of the file.\n\nTest: Updated dex2oat_test#RunUnquickenMultiDex.\nTest: m test-art-host-gtest\nBug: 155366778\nChange-Id: Ie369a8822d08be731b8d272fa8556c3939aeb66f\n"
    },
    {
      "commit": "9389c54713d8a25413068fb7605d587ba0c95c73",
      "tree": "a013307dce2236f4dbb31890015ee5e3b93dbcba",
      "parents": [
        "271b53e7d90314950f29e8248138d6f4df53ee2d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 15 16:52:32 2020 +0100"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Apr 23 21:37:24 2020 +0000"
      },
      "message": "Put dex2oat32 and dex2oat64 in the ART apex.\n\nRequired to move to dex2oat64 on some devices.\n\nTest: m \u0026\u0026 art_apex_test\nTest: art/build/apex/runtests.sh\nBug: 153380900\n(cherry picked from commit d68580ee6508bd9d5aa6bbdef33f79b8c2cbcf85)\n\nBy default, don\u0027t use a bitness suffix for ART.\n\nThis will make it pick up the symlink. Only if the bitness is passed\nthrough the command line will we add it to the path.\n\nTest: dalvik/dx/tests/run-all-tests\n(cherry picked from commit 745e45d44462af1e58a120f4886ea5c307b66a2e)\n\nFix logic to find dex2oat.\n\nOn device, we now have dex2oat64/dex2oat32 with no symlinks, so be\nexplicit on the bitness when trying to find the executable.\n\nBug: 153380900\nTest: run-gtests.sh, testrunner.py, run-libcore-tests, run-libjdwp-tests\n(cherry picked from commit b0c6cb59ed8f8999d035ea0cabe3c1cd226507f8)\n\nMerged-In: Ie4a75d72a8be3c1252c6b49b29d680dc641b6b61\nMerged-In: Ic1bf59ffd760b97b3e173ee48d3ce7ad9bb6c3ce\nMerged-In: I8a26f9f38fa589cad0b1b83041181f7637060861\nChange-Id: Ib1b8a1869d47493586ed00eca34de7b4bbef0d83\n"
    },
    {
      "commit": "d68580ee6508bd9d5aa6bbdef33f79b8c2cbcf85",
      "tree": "b62294c5f8bed42c0ab5bc6e94ef5a2a4cfa627f",
      "parents": [
        "672295a9e3b7481f79186b0ca7ba410e6c8eb10f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 15 16:52:32 2020 +0100"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Apr 20 04:08:23 2020 +0000"
      },
      "message": "Put dex2oat32 and dex2oat64 in the ART apex.\n\nRequired to move to dex2oat64 on some devices.\n\nTest: m \u0026\u0026 art_apex_test\nTest: art/build/apex/runtests.sh\nBug: 153380900\nChange-Id: Ie4a75d72a8be3c1252c6b49b29d680dc641b6b61\n"
    },
    {
      "commit": "c390879443dea479fb5b317237ee455d76136be2",
      "tree": "931674a0c3c6a2db7ae82d44477724c55d623afb",
      "parents": [
        "b47b978486572492140b63b0c8c5daa58dc28d41"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 06 14:52:04 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 15 08:10:37 2020 +0000"
      },
      "message": "Do not crash for broken stored VerifierDeps.\n\nPropagate the error to the callers. Also avoid filling in\nunused data structures when we want only verified classes.\n\nTest: aosp_taimen-userdebug boots.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 151220989\nChange-Id: I3ad0d725251037006128c1f631e6bd6dcec3a592\n"
    },
    {
      "commit": "fe331bae86c6c08185815d4705c5c7f046d8566d",
      "tree": "89426c5d09775c34a5fea53f54881937f9230c28",
      "parents": [
        "7c02a9d372251c0e66c2cde2c09cfb340f8e3733"
      ],
      "author": {
        "name": "wangshumin",
        "email": "wangshumin@xiaomi.com",
        "time": "Fri Nov 08 19:25:50 2019 +0800"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 09 08:24:03 2020 +0000"
      },
      "message": "Fix dex2oat failure when --zip-fd actually points to raw dexfile.\n\nInstalld always pass --zip-fd to dex2oat when perform dexopt,\nhowever some apps use RawDexFile rather than ZipArchive as\nsecondary dex, so check whether it\u0027s a RawDexfile before try\nit as ZipArchive. This make sure dex2oat success when secondary\ndex is a raw dexfile.\n\n(cherry picked from commit 3949e5ed86cb752125c7b545ed5c59edfa80580a)\n\nTest: m test-art-host-gtest-oat_writer_test\nTest: m test-art-host-gtest-dex2oat_test\nBug: 153534055\nSigned-off-by: wangshumin \u003cwangshumin@xiaomi.com\u003e\nMerged-In: I6da98845cdf64acee1865dd997616e8214417315\nChange-Id: I35dd511ee744f0670a9576f495927623966368f8\n"
    },
    {
      "commit": "3949e5ed86cb752125c7b545ed5c59edfa80580a",
      "tree": "2c92db555a3d3c49306924b1c148970ab7ba3121",
      "parents": [
        "42df1c7db9f798fc6e1975773bbeff53f3a037da"
      ],
      "author": {
        "name": "wangshumin",
        "email": "wangshumin@xiaomi.com",
        "time": "Fri Nov 08 19:25:50 2019 +0800"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 08 10:09:02 2020 +0000"
      },
      "message": "Fix dex2oat failure when --zip-fd actually points to raw dexfile.\n\nInstalld always pass --zip-fd to dex2oat when perform dexopt,\nhowever some apps use RawDexFile rather than ZipArchive as\nsecondary dex, so check whether it\u0027s a RawDexfile before try\nit as ZipArchive. This make sure dex2oat success when secondary\ndex is a raw dexfile.\n\nTest: m test-art-host-gtest-oat_writer_test\nTest: m test-art-host-gtest-dex2oat_test\n\nChange-Id: I6da98845cdf64acee1865dd997616e8214417315\nSigned-off-by: wangshumin \u003cwangshumin@xiaomi.com\u003e\n"
    },
    {
      "commit": "9c06d449e5d83f9ab2aaef2e9765c3038abc8ede",
      "tree": "24a9ddee1b9c8be7674925cf6b869a4a7af4026c",
      "parents": [
        "d1f73515701bc64b3a23727b3973da6906f1b167"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 01 14:11:05 2020 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 03 15:08:07 2020 +0000"
      },
      "message": "Avoid creating preresolved strings array for dex files that have no strings\n\nHad exposed a bug in the image writer where having an empty non-null\narray caused an assert failure.\n\nAdded test.\n\n(cherry-picked from commit adbe2b10d3e9d1cba9c313043941ca591ed109f0)\n\nBug: 152809035\nTest: test-art-host\nMerged-In: I0671eef56ae7cbe67bb4ecdbcd72df4e26c8aaa3\nChange-Id: I0671eef56ae7cbe67bb4ecdbcd72df4e26c8aaa3\n"
    },
    {
      "commit": "1b32e8b832c4fbd5ccfba5c231fd2c1254889bbe",
      "tree": "9168a8aeb066bd371d4d61a6987e194a5744a937",
      "parents": [
        "adbe2b10d3e9d1cba9c313043941ca591ed109f0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 02 10:50:35 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Apr 03 15:23:51 2020 +0100"
      },
      "message": "dex2oat: add --updatable-bcp-packages-file argument.\n\nAdd a command line argument specifying a file that contains\nthe list of updatable boot class path packages.\n\n(cherry picked from commit d1f73515701bc64b3a23727b3973da6906f1b167)\n\nTest: Updated module_exclusion_test\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nBug: 151314205\nMerged-In: Ic6a66ad7e565a9b9b344cc467cb1ed550ab41b3f\nChange-Id: I81ec37f8698763db29e859c070f87e265165006d\n"
    },
    {
      "commit": "d1f73515701bc64b3a23727b3973da6906f1b167",
      "tree": "59d789c42edd402ae799caa748939b61aeb00be7",
      "parents": [
        "bda163d9c8313f0b92046abda5ffb1216af1e808"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 02 10:50:35 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Apr 03 13:40:14 2020 +0100"
      },
      "message": "dex2oat: add --updatable-bcp-packages-file argument.\n\nAdd a command line argument specifying a file that contains\nthe list of updatable boot class path packages.\n\nTest: Updated module_exclusion_test\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nBug: 151314205\nChange-Id: Ic6a66ad7e565a9b9b344cc467cb1ed550ab41b3f\n"
    },
    {
      "commit": "adbe2b10d3e9d1cba9c313043941ca591ed109f0",
      "tree": "5a90a6233cb67611e28892f1d56903cb66d9efc3",
      "parents": [
        "00a4492987165fa4e5b1b8f9c3e14995e3ad8dd1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 01 14:11:05 2020 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 02 09:14:49 2020 -0700"
      },
      "message": "Avoid creating preresolved strings array for dex files that have no strings\n\nHad exposed a bug in the image writer where having an empty non-null\narray caused an assert failure.\n\nAdded test.\n\nBug: 152809035\nTest: test-art-host\nChange-Id: I0671eef56ae7cbe67bb4ecdbcd72df4e26c8aaa3\n"
    },
    {
      "commit": "4fa07a5727551018e2dcd93d41dac98f20212e99",
      "tree": "8214358e517601c67706a4fbbb4010408a45780a",
      "parents": [
        "d31def587a914c1d306355a7331c24d7b13ad5ca"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Mar 31 20:52:09 2020 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Apr 01 17:19:07 2020 +0100"
      },
      "message": "Add explicit compiler option to enable test-specific features.\n\nWe can no longer rely on checking the \"core.art\" image name,\nsince we plan to remove it and use the shipped boot image.\n\nThis option enables test-specific features, such as $noinline$.\n\nTest: ./art/test.py -r --optimizing --64\nBug: 147817558\nChange-Id: Iadac6e1b0f46e83efd0551fb8462a6b268ad33d8\n"
    },
    {
      "commit": "00a4492987165fa4e5b1b8f9c3e14995e3ad8dd1",
      "tree": "5a7a4010e688fce81f4c3344cb7c2dd42f5aa61e",
      "parents": [
        "314faec6bdfac52a997587e66ef67badeefd832a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 25 14:57:17 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 01 07:47:14 2020 +0000"
      },
      "message": "Deduplicate interned image strings.\n\nAlso fix a bug in relocation; even for -Xnorelocate we need\nto relocate second and later extension if it\u0027s not compiled\nagainst all previous boot image components.\n\nAlso clean up InternTable includes.\n\n(cherry picked from commit fdd46848364b5fdb7360cb3256bd9482d7ca3c28)\n\nTest: New tests in image_space_test.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nBug: 152037801\nMerged-In: Ie6ae70721f4ffb48950bd248ffa123dee460bcd7\nChange-Id: Ic442aa23d582177863fd54328c33a228390586df\n"
    },
    {
      "commit": "fdd46848364b5fdb7360cb3256bd9482d7ca3c28",
      "tree": "d3e47c9723155f6376e3782cc47658a295c1da1c",
      "parents": [
        "4ac8d96c332b014b72c2480aa1c83762e818daef"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 25 14:57:17 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 31 13:16:12 2020 +0000"
      },
      "message": "Deduplicate interned image strings.\n\nAlso fix a bug in relocation; even for -Xnorelocate we need\nto relocate second and later extension if it\u0027s not compiled\nagainst all previous boot image components.\n\nAlso clean up InternTable includes.\n\nTest: New tests in image_space_test.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nBug: 152037801\nChange-Id: Ie6ae70721f4ffb48950bd248ffa123dee460bcd7\n"
    },
    {
      "commit": "3ca922bf59313056cba1851726aa1131d17b0228",
      "tree": "2eeddedfd9f4403af22afdf0eee0bef65162d9ce",
      "parents": [
        "0201d451e4076d97f1ad33bf617c00d5e3f2fb22"
      ],
      "author": {
        "name": "wulonghua",
        "email": "wulonghua@xiaomi.com",
        "time": "Fri Mar 27 11:15:42 2020 +0800"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 30 19:03:03 2020 +0000"
      },
      "message": "dex2oat: Fix repeatedly preparing dex files for oat file\n\nto reduce compilation time when compiling dex files individually.\n\n(cherry picked from commit bdf146cecefd51f9823b3f1a1e158923c278f4d7)\n\nTest:\n    enable DumpTiming first\n    adb shell setprop pm.dexopt.install quicken\n    adb install xxx.apk\n    #check dex2oat timing in logcat(SetDexFiles repeatedly)\n\nSigned-off-by: wulonghua \u003cwulonghua@xiaomi.com\u003e\nBug: 152750193\nMerged-In: Ia9973f03540a51af2c49d996b5ccb8ab3e009e5a\nChange-Id: Iacbf77326a6e1392e54b4f650893da7b11db0859\n"
    },
    {
      "commit": "bdf146cecefd51f9823b3f1a1e158923c278f4d7",
      "tree": "ba88bf4deefc44c97b97c139d52afdbbc3837239",
      "parents": [
        "bc11509d4c3e7f4f28c28f1c07e70e0d2e68add5"
      ],
      "author": {
        "name": "wulonghua",
        "email": "wulonghua@xiaomi.com",
        "time": "Fri Mar 27 11:15:42 2020 +0800"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 30 14:06:04 2020 +0000"
      },
      "message": "dex2oat: Fix repeatedly preparing dex files for oat file\n\nto reduce compilation time when compiling dex files individually.\n\nTest:\n    enable DumpTiming first\n    adb shell setprop pm.dexopt.install quicken\n    adb install xxx.apk\n    #check dex2oat timing in logcat(SetDexFiles repeatedly)\n\nChange-Id: Ia9973f03540a51af2c49d996b5ccb8ab3e009e5a\nSigned-off-by: wulonghua \u003cwulonghua@xiaomi.com\u003e\n"
    },
    {
      "commit": "fe57c2b63df652fe4eefd750e3566309bfe038fb",
      "tree": "839ff604e8baae86458642803bc2738d0ab7b5e3",
      "parents": [
        "a467a6e81f5c6da589a5fb16fdb85f2604860623"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Mar 27 14:58:54 2020 +0000"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Mar 27 19:23:23 2020 +0000"
      },
      "message": "Revert^4 \"Add \"linkage\" test options\"\"\n\nThis reverts commit 16c08ca97486f535698f1a1b17f0332bfe78e95a.\n\nReason for revert: Disabled on device testing\n\nChange-Id: I8d5442e0ebb6383ebfbce98f1857b5e844e0d5e1\nBug: none\nTest: make test-art-host-gtest-dex2oat_test\n"
    },
    {
      "commit": "16c08ca97486f535698f1a1b17f0332bfe78e95a",
      "tree": "81dc1613d8751db5e9c73031bdfe9725c361778c",
      "parents": [
        "133987d8e3387395943f33ecc467ba0dbfed77e6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 27 10:07:19 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 27 10:07:40 2020 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Add \"linkage\" test options\"\"\"\n\nThis reverts commit 80c0c50de048da458c707adde5b0499d75f8253a.\n\nReason for revert: Test fails on device:\nhttps://ci.chromium.org/p/art/builders/ci/angler-armv8-ndebug/1306?\n\nChange-Id: I19e9b9e24023b2d7b6b86114c7a9e4018f65b2b8\n"
    },
    {
      "commit": "80c0c50de048da458c707adde5b0499d75f8253a",
      "tree": "a8e5c0bda491c4e84b37fd483694fe9ab65766fb",
      "parents": [
        "379503d0a12d4e22f0c04b4e7f295bfb9f6349fd"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Mar 24 22:02:57 2020 +0000"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Mar 26 20:38:09 2020 +0000"
      },
      "message": "Revert \"Revert \"Add \"linkage\" test options\"\"\n\nThis reverts commit 91a8e6f60c508c6e010b6ef8e4056e3a6f04c447.\n\nReason for revert: Moved tests to gtest and under compilation only.\n\nChange-Id: I60899694946353bfcd334473c20bb17c84f095e0\nBug: none\nTest: make test-art-host-gtest-dex2oat_test\n"
    },
    {
      "commit": "7bbbe25f37ae70bebd121e0b4ea9bd53842281fe",
      "tree": "71957cedabe633bd3f8abd8a9fe08010fab1543b",
      "parents": [
        "91a8e6f60c508c6e010b6ef8e4056e3a6f04c447"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Mar 20 12:14:55 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 23 09:47:50 2020 +0000"
      },
      "message": "Suppress ThreadLocal hash override warning.\n\n(cherry picked from commit 54f6fc7e604e146590892c0467e98764d761ae75)\n\nTest: art/tools/buildbot-build.sh --host\nBug: 151947200\nMerged-In: I9f80729c1ca0b770e4a1c85bd0a345cf5858b008\nChange-Id: I426aa8ab0fc020458440968b39c7227779fad9d4\n"
    },
    {
      "commit": "54f6fc7e604e146590892c0467e98764d761ae75",
      "tree": "b0d6dd41c1985c4b6983805b0fe1f9e5db1b85e9",
      "parents": [
        "12d694282f7d0a1a47ed22341954b286a4dee574"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Mar 20 12:14:55 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 23 09:45:02 2020 +0000"
      },
      "message": "Suppress ThreadLocal hash override warning.\n\nTest: art/tools/buildbot-build.sh --host\nBug: 151947200\nChange-Id: I9f80729c1ca0b770e4a1c85bd0a345cf5858b008\n"
    },
    {
      "commit": "91a8e6f60c508c6e010b6ef8e4056e3a6f04c447",
      "tree": "42372667d930c57ef3384c1c4981fb5c1591ef8b",
      "parents": [
        "873bb64b8815b3f6a350ce109eb54ec770369d22"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 23 08:34:15 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 23 08:34:15 2020 +0000"
      },
      "message": "Revert \"Add \"linkage\" test options\"\n\nThis reverts commit 873bb64b8815b3f6a350ce109eb54ec770369d22.\n\nReason for revert: Test in CL fails on device, see:\nhttps://ci.chromium.org/p/art/builders/ci/angler-armv7-ndebug/1302?\n\nChange-Id: I18d8204f40bbc0f89eb230656e14966035b0b1c3\n"
    },
    {
      "commit": "873bb64b8815b3f6a350ce109eb54ec770369d22",
      "tree": "2059840d3930dc5bd19536150fb3ac3c15654fbc",
      "parents": [
        "6e44830b65de39f5d20342109f7cbc47e4624fe0"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Mar 10 15:26:55 2020 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Mar 20 09:48:11 2020 -0700"
      },
      "message": "Add \"linkage\" test options\n\nAdd options to control \"linkage\" model.  This involves checking for\nredefinitions and subclassing classloaders.\n\nBug: none\nTest: 1964-redefinition\nChange-Id: I0cb3c725b7d62f7c6c0958dc6d5f9b55d6258fd5\n"
    },
    {
      "commit": "01c66ba5eae879c4636a60b63d0ace32c8737217",
      "tree": "3259a35e3b84d9b8d875f887b4af00f2febfbcc2",
      "parents": [
        "92053840f11aba607284c64269ac92f6c00448e4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Mar 13 17:19:06 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 18 11:13:12 2020 +0000"
      },
      "message": "Do not preload dex caches for assume-verified.\n\nAnd completely clear dex caches when in the pruning phase.\nThe preloading, if requested, will fill it later.\n\nThis reduces the time it takes to compile the boot image\nextension in memory by over 120ms on aosp_taimen-userdebug\nwith --compiler-filter\u003dassume-verified. Measured with\n  adb root \u0026\u0026 \\\n  adb shell stop \u0026\u0026 \\\n  adb shell setprop dalvik.vm.boot-image \\\n      \u0027boot.art:/nonx/boot-framework.art!/system/etc/boot-image.prof\u0027 \u0026\u0026 \\\n  adb shell setprop dalvik.vm.image-dex2oat-filter \\\n      assume-verified \u0026\u0026 \\\n  adb shell \u0027setprop dalvik.vm.extra-opts \\\n      \"-Ximage-compiler-option --dump-timings\"\u0027 \u0026\u0026 \\\n  adb shell start\n  # Collect dex2oat lines from logcat.\n(To avoid dex2oat crashes, we have to revert\n  https://android-review.googlesource.com/1240047 and\n  https://android-review.googlesource.com/1246288 .\nTODO: Investigate and fix those crashes.)\n\n(cherry picked from commit 4b90b86153819c84f672eeb25f88247f4ce56931)\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nTest: boot-framework.art checksums are unchanged with the\n      default filter, i.e. \"verify\" (and therefore all the\n      boot images should be unchanged).\nBug: 119800099\nBug: 150193586\nChange-Id: I1b3b5320aea1113c7fa983b29e2c606f58da5d2b\n"
    },
    {
      "commit": "92053840f11aba607284c64269ac92f6c00448e4",
      "tree": "4d04745ee4d25126fe9806e33237521012bf9eff",
      "parents": [
        "4f2bee1a0c73f00e0b1caf7ad0a8b282bc44952d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 20 17:07:55 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 18 11:13:12 2020 +0000"
      },
      "message": "Avoid dex2dex initialization if not compiling.\n\nReduces the compilation time for the boot image extension\nin memory by ~0.1s.\n\nAlso record timing for ImageWriter::PreloadDexCaches() and\nand fix naming for CompilerDriver::SetVerifiedDexFile()\ntiming to not be confused with VerifyDexFile().\n\n(cherry picked from commit f639bf4c6b542553f727dc1a3262d9a4fd887fe5)\n\nTest: aosp_taimen-userdebug boots;\n  adb root \u0026\u0026 \\\n  adb shell stop \u0026\u0026 \\\n  adb shell setprop dalvik.vm.boot-image \\\n    \u0027boot.art:/nonx/boot-framework.art!/system/etc/boot-image.prof\u0027 \u0026\u0026 \\\n  adb shell \u0027setprop dalvik.vm.extra-opts \\\n    \"-Ximage-compiler-option --dump-timings\"\u0027 \u0026\u0026 \\\n  adb shell start  # Starts correctly\n  # Check dex2oat timing in logcat\nBug: 119800099\nBug: 150193586\nChange-Id: I31846738a66c95eda28e873eac724a3949ac3f48\n"
    },
    {
      "commit": "4b90b86153819c84f672eeb25f88247f4ce56931",
      "tree": "2dd843ce8aa679261589473f1f52f9fe6c4dd58b",
      "parents": [
        "bf7705509ea10d1f172bd37200ebbb6472a139a3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Mar 13 17:19:06 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 17 16:09:07 2020 +0000"
      },
      "message": "Do not preload dex caches for assume-verified.\n\nAnd completely clear dex caches when in the pruning phase.\nThe preloading, if requested, will fill it later.\n\nThis reduces the time it takes to compile the boot image\nextension in memory by over 120ms on aosp_taimen-userdebug\nwith --compiler-filter\u003dassume-verified. Measured with\n  adb root \u0026\u0026 \\\n  adb shell stop \u0026\u0026 \\\n  adb shell setprop dalvik.vm.boot-image \\\n      \u0027boot.art:/nonx/boot-framework.art!/system/etc/boot-image.prof\u0027 \u0026\u0026 \\\n  adb shell setprop dalvik.vm.image-dex2oat-filter \\\n      assume-verified \u0026\u0026 \\\n  adb shell \u0027setprop dalvik.vm.extra-opts \\\n      \"-Ximage-compiler-option --dump-timings\"\u0027 \u0026\u0026 \\\n  adb shell start\n  # Collect dex2oat lines from logcat.\n(To avoid dex2oat crashes, we have to revert\n  https://android-review.googlesource.com/1240047 and\n  https://android-review.googlesource.com/1246288 .\nTODO: Investigate and fix those crashes.)\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nTest: boot-framework.art checksums are unchanged with the\n      default filter, i.e. \"verify\" (and therefore all the\n      boot images should be unchanged).\nBug: 119800099\nChange-Id: I2de4d672accd2272dd39e403dc08f2d608269fa1\n"
    },
    {
      "commit": "764f5e372b3bcefb465107bfdab852207755def5",
      "tree": "9d44e27c23948c1f866c04e80245cb3859d11564",
      "parents": [
        "5edcca18fba19a14c6306e925164b2597349cf74"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Mar 13 11:30:59 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Mar 13 14:05:23 2020 +0000"
      },
      "message": "Set the identity hash code seed before creating Runtime.\n\n(cherry picked from commit e1ee6f97e35c4798e532171213f4e2b50260e525)\n\nTest: m clean-oat-host \u0026\u0026 m dump-oat-boot\n      move out/soong/boot.arm64.oatdump.txt somewhere else, repeat\n      m clean-oat-host \u0026\u0026 dump-oat-boot\n      and diff the old and new file (the only difference is in\n      dexFile: fields that are null in boot images but oatdump adds\n      runtime values).\nBug: 151397003\nBug: 150319075\nChange-Id: I8d5d20b18894051cac7d44d699a2c108a2926108\n"
    }
  ],
  "next": "e1ee6f97e35c4798e532171213f4e2b50260e525"
}
