)]}'
{
  "log": [
    {
      "commit": "9e050ab1a061d9660eb0c1daa01a823ad75b0f05",
      "tree": "714f2ba3b11406310416e85357f45450634846b2",
      "parents": [
        "4f990714b13e0b4446305a5411648a1a9ae42a7a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 14 14:59:25 2021 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 14 17:13:08 2021 +0000"
      },
      "message": "Remove the need of VerifiedMethod in the compiler.\n\nThe compiler only needs to know if a method is compilable or not. So\njust record a set of uncompilable methods (in some cases, we cannot have\nan ArtMethod, but the method can still be compiled).\n\nTest: test.py\nBug: 28313047\nChange-Id: Ic4235bc8160ec91daa5ebf6504741089b43e99cb\n"
    },
    {
      "commit": "f040914a122be86e280efe5e31af1168f2b7c72e",
      "tree": "8ea3fa76be8f215d36977477015ed7f9f3a2f65c",
      "parents": [
        "b4bd92f27fb143135870d07b459ea52637afcfa5"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Mar 22 15:45:03 2021 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jul 06 10:52:35 2021 +0000"
      },
      "message": "Uncouple ART gtests from the ART APEX.\n\nIntroduce standalone versions of ART gtests on target, not bundled\nwith the ART APEX.\n\nSo far ART gtests have always been built as debug artifacts (and\nlinked against ART debug libraries). Make some adjustments in some of\nthese tests so that they can also work as non-debug artifacts and be\nused with the Release ART APEX (which contains only non-debug\nartifacts).\n\nNewly added tests:\n* `art_standalone_cmdline_tests`\n* `art_standalone_compiler_tests`\n* `art_standalone_dex2oat_tests`\n* `art_standalone_dexdump_tests`\n* `art_standalone_dexlist_tests`\n* `art_standalone_dexoptanalyzer_tests`\n  * Note: Requires root access to the device.\n* `art_standalone_libartbase_tests`\n* `art_standalone_libartpalette_tests`\n* `art_standalone_libartservice_tests`\n* `art_standalone_libarttools_tests`\n* `art_standalone_libdexfile_support_tests`\n* `art_standalone_libdexfile_tests`\n* `art_standalone_libprofile_tests`\n* `art_standalone_oatdump_tests`\n* `art_standalone_odrefresh_tests`\n* `art_standalone_profman_tests`\n  * Note: Requires root access to the device.\n  * Note: Some tests (2 out of 37) are failing in multi-ABI\n    contexts and have been temporarily disabled.\n* `art_standalone_runtime_compiler_tests`\n* `art_standalone_runtime_tests`\n  * Note: Some tests (16 out of 686) are failing and have been\n    temporarily disabled.\n  * Note: Some tests (4 out of 686) are failing in multi-ABI\n    contexts and have been temporarily disabled.\n* `art_standalone_sigchain_tests`\n\nTests not added:\n* `art_standalone_dexanalyze_tests`\n  * Reason: ART binary `dexanalyze` is not part of the Release ART APEX.\n* `art_standalone_dexdiag_tests`\n  * Reason: ART binary `dexdiag` is not part of the Release ART APEX.\n* `art_standalone_dexlayout_tests`\n  * Reason: ART binary `dexlayout` is not part of the Release ART APEX.\n* `art_standalone_imgdiag_tests`\n  * Reason: ART binary `imgdiag` is not part of the Release ART APEX.\n\nTest: atest -a art_standalone_cmdline_tests\nTest: atest -a art_standalone_compiler_tests\nTest: atest -a art_standalone_dex2oat_tests\nTest: atest -a art_standalone_dexdump_tests\nTest: atest -a art_standalone_dexlist_tests\nTest: atest -a art_standalone_dexoptanalyzer_tests\nTest: atest -a art_standalone_libartbase_tests\nTest: atest -a art_standalone_libartpalette_tests\nTest: atest -a art_standalone_libartservice_tests\nTest: atest -a art_standalone_libarttools_tests\nTest: atest -a art_standalone_libdexfile_support_tests\nTest: atest -a art_standalone_libdexfile_tests\nTest: atest -a art_standalone_libprofile_tests\nTest: atest -a art_standalone_oatdump_tests\nTest: atest -a art_standalone_odrefresh_tests\nTest: atest -a art_standalone_profman_tests\nTest: atest -a art_standalone_runtime_compiler_tests\nTest: atest -a art_standalone_runtime_tests\nTest: atest -a art_standalone_sigchain_tests\nTest: atest -a art_standalone_\\*_tests\nTest: m art_chroot \u0026\u0026 atest ArtGtestsTargetChroot\nBug: 162834439\nBug: 162734417\nChange-Id: I8beda9159d48c4ca495698357dc3bd95e3ff84d5\n"
    },
    {
      "commit": "55ffe7fa9ead8b501a756bb53f2571e3e7602f5e",
      "tree": "c4f63e30679b3e11d65268e52bf7548416f26792",
      "parents": [
        "8bf1da992a15a79ae76bcf53e9a2909912fbe96a"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jun 14 15:18:54 2021 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jun 28 11:40:15 2021 +0000"
      },
      "message": "Rename some ART gtest related Soong modules.\n\nART gtests currently link with the debug (\"d\") versions of ART\nlibraries. The gtests themselves and their libraries are compiled as\ndebug artifacts. For the sake of consistency, perform the following\nrenaming of ART gtest related Soong modules:\n\n* `libart-compiler-gtest` -\u003e `libartd-compiler-gtest`\n* `libart-dex2oat-gtest`  -\u003e `libartd-dex2oat-gtest`\n* `libart-gtest-defaults` -\u003e `libartd-gtest-defaults`\n* `libart-gtest`          -\u003e `libartd-gtest`\n* `libart-runtime-gtest`  -\u003e `libartd-runtime-gtest`\n* `libartbase-art-gtest`  -\u003e `libartbased-art-gtest`\n\nAs we plan to introduce non-debug (\"non-d\"), standalone versions of\nART gtests in the context of uncoupling ART (target) gtests from the\nART APEX (b/162834439), this renaming will help us, as we\u0027ll be able\nto use the old names of a \"d\" module for the corresponding \"non-d\"\nversion.\n\nTest: mmma art\nTest: Run ART gtests on host and target\nTest: env OVERRIDE_TARGET_FLATTEN_APEX\u003dfalse art/build/apex/runtests.sh\nTest: env OVERRIDE_TARGET_FLATTEN_APEX\u003dtrue  art/build/apex/runtests.sh\nBug: b/162834439\nChange-Id: I4ca27a7f445a760398f41a9e60a7008d77294505\n"
    },
    {
      "commit": "07ff2833c7425cef87abad3e21b3f884597dc58c",
      "tree": "a7ab412fa286c7af891aa438b187b6bf9f9f907b",
      "parents": [
        "ca7de40e2d0f1f5c3c29aec2899f6fbe8d7217f3"
      ],
      "author": {
        "name": "Collin Fijalkovich",
        "email": "cfijalkovich@google.com",
        "time": "Tue Aug 25 10:43:12 2020 -0700"
      },
      "committer": {
        "name": "Collin Fijalkovich",
        "email": "cfijalkovich@google.com",
        "time": "Tue May 18 21:23:45 2021 +0000"
      },
      "message": "Compile libart.so and libart-compiler.so with 2MB section alignment.\n\nAdds the appropriate linker flags for libart and libart-compiler to have\n2MB section alignment. This allows the executable segment of these\nlibraries to be backed by transparent hugepages on supporting systems.\n\nBug: 158135888\nTest: Verified ELF format\n\nChange-Id: Ia6455418cf1fdd3a1a98d662bf381db4b58b8536\n"
    },
    {
      "commit": "053e1383c721b0a1c4f87b2d391ab392c64caf84",
      "tree": "d6698eaf3f64440b47c06e5d6f670be06cfcc80e",
      "parents": [
        "bcec38f7b7dc92d89ce9d49b8c1ba9afe87dab6b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 05 16:07:27 2021 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon May 10 08:12:24 2021 +0000"
      },
      "message": "Link libvixl statically.\n\nInstead of including shared library libvixl.so in the ART\nModule, link libvixl statically to all binaries that use it,\nnamely libart-compiler.so and libart-disassembler.so which\nshall increase in size with the additional libvixl code.\n\nThe ART Module size with default libvixl symbol visibility:\n  - before: 88460730B\n  - after: 86973943B (-1.42MiB)\nWith hidden libvixl symbol visibility:\n  - before: 88337851B\n  - after: 84962808B (-3.22MiB)\n(This is with master-art where we do not have a boot\nprofile and therefore compile more code in boot image.)\nThe change from default to hidden visibility is done in\n    https://android-review.googlesource.com/1697237 .\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: run-gtests.sh\nTest: testrunner.py --target --optimizing\nBug: 186902856\nChange-Id: I040b0115b94b8690ee7be53e3ded8610d9f13e99\n"
    },
    {
      "commit": "d3e9ff326a511ef48ea85afd2de9c292aa6ea20b",
      "tree": "da924af40549dca5fb679173036049e70ca395e9",
      "parents": [
        "4531afd0d813fdfa2bb115522bc5918477c03dc2"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Mar 16 00:44:25 2021 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Apr 12 16:36:03 2021 +0000"
      },
      "message": "Merge libdexfile_external into libdexfile (reland 2).\n\nTo reduce the number of DSO\u0027s. libdexfile_external only adds a few\nsmall functions on top of libdexfile, and it\u0027s still only those\nfunctions that are available in the APEX stubs.\n\nAlso rename libdexfile_external_static to libdexfile_static, for\nconsistency.\n\nSince libdexfile now has stubs, we need to add test_for properties to\navoid linking against the stubs in tests.\n\nThis relands https://r.android.com/1666119 that got submitted out of\norder from https://r.android.com/1664026 - prerequisite changes now\nsubmitted with https://r.android.com/1671709.\n\nTest: Flash and boot with userdebug and eng to try both release and\n  debug modules.\nTest: art/tools/buildbot-build.sh {--target,--host}\nTest: art/build/apex/runtests.sh\nTest: mmm art\nBug: 143978909\nChange-Id: I6de99052d6d8a9d01d748baabbbcecfe1f4509dc\n"
    },
    {
      "commit": "669756df2f4aea67d00e7b3598b2d91f61537141",
      "tree": "86d7ac86af3ee50c3a1f3163f1a80de396279094",
      "parents": [
        "14d9155cc5ac661961aa6718eaf2bfcc704d3c98"
      ],
      "author": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Fri Apr 09 11:35:11 2021 +0000"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Fri Apr 09 11:35:11 2021 +0000"
      },
      "message": "Revert \"Merge libdexfile_external into libdexfile (reland).\"\n\nRevert \"Rename libdexfile_external_static to libdexfile_static (...\"\n\nRevert \"Rename libdexfile_external_static to libdexfile_static (...\"\n\nRevert submission 1666119-libdexfile-noext-2\n\nReason for revert: broken build 7270939 on aosp-master on full-eng\nReverted Changes:\nI582e49ae7:Merge libdexfile_external into libdexfile (reland)...\nIaa6a90f41:Rename libdexfile_external_static to libdexfile_st...\nI4315189b2:libdexfile_external is replaced by libdexfile (rel...\nIa065119c2:Rename libdexfile_external_static to libdexfile_st...\n\nBug: 184929782\nChange-Id: Ie69a73f4f0f745ab988e627c568f4ccb83fd1c71\nTest: forrest build for aosp-master on full-eng\n"
    },
    {
      "commit": "14d9155cc5ac661961aa6718eaf2bfcc704d3c98",
      "tree": "413aa4746ef3a6cbcbdbf8d75387e85be87f6460",
      "parents": [
        "a191bbfd53a0c7df9b5639bfbefeb8b531c833db"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Mar 16 00:44:25 2021 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Apr 09 09:18:30 2021 +0000"
      },
      "message": "Merge libdexfile_external into libdexfile (reland).\n\nTo reduce the number of DSO\u0027s. libdexfile_external only adds a few\nsmall functions on top of libdexfile, and it\u0027s still only those\nfunctions that are available in the APEX stubs.\n\nAlso rename libdexfile_external_static to libdexfile_static, for\nconsistency.\n\nSince libdexfile now has stubs, we need to add test_for properties to\navoid linking against the stubs in tests.\n\nThis relands https://r.android.com/1643424 with leaving out\ndex_file_ext.cc on Windows (cf. build issue b/184239856): mapped_file.h\nbrings in windows.h in Windows builds, which has several defines that\nare incompatible with dex internals (e.g. CONST).\n\nTest: Flash and boot with userdebug and eng to try both release and\n  debug modules.\nTest: art/tools/buildbot-build.sh {--target,--host}\nTest: art/build/apex/runtests.sh\nTest: mmm art\nTest: m TARGET_PRODUCT\u003dfull TARGET_BUILD_VARIANT\u003deng checkbuild\nBug: 143978909\nChange-Id: I582e49ae797744837849db056cef2fbeacc0681e\n"
    },
    {
      "commit": "7432805b24cb8b6d8c754807143a691dc51adaba",
      "tree": "7693475b3520e1673cdba6210e8dc64d2becf1c4",
      "parents": [
        "1a660c0bd57313bae9cd5632ab4252f417590a96"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Mar 29 18:11:23 2021 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Mar 30 18:01:00 2021 +0000"
      },
      "message": "Fix simplifier issue with predicated ifield get\n\nIn cases where all targets of a HPredicatedInstanceFieldGet\ninstruction are known to not be null the simplifier would attempt to\nreplace the default value with a null instruction. This would cause a\nnull-pointer dereference. Correct the simplifier to handle this case\ncorrectly.\n\nMoved some LSE test helper functions to CommonCompilerTestHelper to\navoid duplicating code.\n\nFixed an incorrect (though until now unused) constructor for\nHPredicatatedInstanceFieldGet (the default value and target we\nswapped).\n\nTest: ./test.py --host\nTest: ./art/tools/compile_jars.py --profile-file bad-compile.txt ~/imgur.apk\nBug: 183942773\nChange-Id: I66f4ce37d768d5e457047a3f80bd4cb9aa4546a3\n"
    },
    {
      "commit": "9150de6901996679c0ea6b34e74c8ddcc718d309",
      "tree": "496386b00b2a1b0b3bfbc36b09cf8083e3922f9b",
      "parents": [
        "8da26145fba859a5aba047f6280568565ffb8bfc"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Feb 26 03:22:24 2021 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 02 07:18:14 2021 +0000"
      },
      "message": "[LSC] Add LOCAL_LICENSE_KINDS to art\n\nAdded SPDX-license-identifier-Apache-2.0 to:\n  adbconnection/Android.bp\n  benchmark/Android.bp\n  build/Android.bp\n  build/Android.cpplint.mk\n  build/Android.gtest.mk\n  build/apex/Android.bp\n  build/boot/Android.bp\n  build/sdk/Android.bp\n  cmdline/Android.bp\n  compiler/Android.bp\n  dalvikvm/Android.bp\n  dex2oat/Android.bp\n  dexdump/Android.bp\n  dexlayout/Android.bp\n  dexlist/Android.bp\n  dexoptanalyzer/Android.bp\n  disassembler/Android.bp\n  dt_fd_forward/export/Android.bp\n  imgdiag/Android.bp\n  libartbase/Android.bp\n  libartpalette/Android.bp\n  libartservice/Android.bp\n  libartservice/tests/Android.bp\n  libarttools/Android.bp\n  libdexfile/Android.bp\n  libelffile/Android.bp\n  libnativebridge/Android.bp\n  libnativebridge/tests/Android.bp\n  libnativeloader/Android.bp\n  libnativeloader/test/Android.bp\n  libnativeloader/test/Android.mk\n  libprofile/Android.bp\n  oatdump/Android.bp\n  odrefresh/Android.bp\n  perfetto_hprof/Android.bp\n  profman/Android.bp\n  runtime/Android.bp\n  simulator/Android.bp\n  test/001-HelloWorld/Android.bp\n  test/001-Main/Android.bp\n  test/002-sleep/Android.bp\n  test/004-InterfaceTest/Android.bp\n  test/004-SignalTest/Android.bp\n  test/004-UnsafeTest/Android.bp\n  test/004-checker-UnsafeTest18/Android.bp\n  test/006-args/Android.bp\n  test/007-count10/Android.bp\n  test/009-instanceof/Android.bp\n  test/010-instance/Android.bp\n  test/011-array-copy/Android.bp\n  test/012-math/Android.bp\n  test/013-math2/Android.bp\n  test/014-math3/Android.bp\n  test/015-switch/Android.bp\n  test/016-intern/Android.bp\n  test/017-float/Android.bp\n  test/018-stack-overflow/Android.bp\n  test/019-wrong-array-type/Android.bp\n  test/020-string/Android.bp\n  test/021-string2/Android.bp\n  test/022-interface/Android.bp\n  test/025-access-controller/Android.bp\n  test/026-access/Android.bp\n  test/027-arithmetic/Android.bp\n  test/028-array-write/Android.bp\n  test/029-assert/Android.bp\n  test/030-bad-finalizer/Android.bp\n  test/033-class-init-deadlock/Android.bp\n  test/034-call-null/Android.bp\n  test/035-enum/Android.bp\n  test/036-finalizer/Android.bp\n  test/037-inherit/Android.bp\n  test/038-inner-null/Android.bp\n  test/039-join-main/Android.bp\n  test/040-miranda/Android.bp\n  test/041-narrowing/Android.bp\n  test/043-privates/Android.bp\n  test/044-proxy/Android.bp\n  test/045-reflect-array/Android.bp\n  test/046-reflect/Android.bp\n  test/047-returns/Android.bp\n  test/048-reflect-v8/Android.bp\n  test/049-show-object/Android.bp\n  test/050-sync-test/Android.bp\n  test/051-thread/Android.bp\n  test/052-verifier-fun/Android.bp\n  test/053-wait-some/Android.bp\n  test/054-uncaught/Android.bp\n  test/055-enum-performance/Android.bp\n  test/058-enum-order/Android.bp\n  test/059-finalizer-throw/Android.bp\n  test/061-out-of-memory/Android.bp\n  test/062-character-encodings/Android.bp\n  test/063-process-manager/Android.bp\n  test/067-preemptive-unpark/Android.bp\n  test/070-nio-buffer/Android.bp\n  test/072-precise-gc/Android.bp\n  test/072-reachability-fence/Android.bp\n  test/074-gc-thrash/Android.bp\n  test/076-boolean-put/Android.bp\n  test/078-polymorphic-virtual/Android.bp\n  test/079-phantom/Android.bp\n  test/080-oom-fragmentation/Android.bp\n  test/080-oom-throw-with-finalizer/Android.bp\n  test/080-oom-throw/Android.bp\n  test/081-hot-exceptions/Android.bp\n  test/082-inline-execute/Android.bp\n  test/083-compiler-regressions/Android.bp\n  test/084-class-init/Android.bp\n  test/086-null-super/Android.bp\n  test/087-gc-after-link/Android.bp\n  test/090-loop-formation/Android.bp\n  test/092-locale/Android.bp\n  test/093-serialization/Android.bp\n  test/094-pattern/Android.bp\n  test/095-switch-MAX_INT/Android.bp\n  test/096-array-copy-concurrent-gc/Android.bp\n  test/098-ddmc/Android.bp\n  test/099-vmdebug/Android.bp\n  test/100-reflect2/Android.bp\n  test/1004-checker-volatile-ref-load/Android.bp\n  test/101-fibonacci/Android.bp\n  test/102-concurrent-gc/Android.bp\n  test/103-string-append/Android.bp\n  test/104-growth-limit/Android.bp\n  test/105-invoke/Android.bp\n  test/106-exceptions2/Android.bp\n  test/107-int-math2/Android.bp\n  test/108-check-cast/Android.bp\n  test/109-suspend-check/Android.bp\n  test/110-field-access/Android.bp\n  test/112-double-math/Android.bp\n  test/114-ParallelGC/Android.bp\n  test/115-native-bridge/Android.bp\n  test/116-nodex2oat/Android.bp\n  test/120-hashcode/Android.bp\n  test/121-simple-suspend-check/Android.bp\n  test/122-npe/Android.bp\n  test/123-compiler-regressions-mt/Android.bp\n  test/123-inline-execute2/Android.bp\n  test/125-gc-and-classloading/Android.bp\n  test/128-reg-spill-on-implicit-nullcheck/Android.bp\n  test/129-ThreadGetId/Android.bp\n  test/132-daemon-locks-shutdown/Android.bp\n  test/133-static-invoke-super/Android.bp\n  test/1336-short-finalizer-timeout/Android.bp\n  test/1337-gc-coverage/Android.bp\n  test/1339-dead-reference-safe/Android.bp\n  test/136-daemon-jni-shutdown/Android.bp\n  test/139-register-natives/Android.bp\n  test/140-dce-regression/Android.bp\n  test/140-field-packing/Android.bp\n  test/143-string-value/Android.bp\n  test/144-static-field-sigquit/Android.bp\n  test/148-multithread-gc-annotations/Android.bp\n  test/149-suspend-all-stress/Android.bp\n  test/150-loadlibrary/Android.bp\n  test/151-OpenFileLimit/Android.bp\n  test/152-dead-large-object/Android.bp\n  test/153-reference-stress/Android.bp\n  test/154-gc-loop/Android.bp\n  test/156-register-dex-file-multi-loader/Android.bp\n  test/158-app-image-class-table/Android.bp\n  test/159-app-image-fields/Android.bp\n  test/163-app-image-methods/Android.bp\n  test/165-lock-owner-proxy/Android.bp\n  test/168-vmstack-annotated/Android.bp\n  test/169-threadgroup-jni/Android.bp\n  test/170-interface-init/Android.bp\n  test/172-app-image-twice/Android.bp\n  test/174-escaping-instance-of-bad-class/Android.bp\n  test/175-alloc-big-bignums/Android.bp\n  test/176-app-image-string/Android.bp\n  test/177-visibly-initialized-deadlock/Android.bp\n  test/178-app-image-native-method/Android.bp\n  test/179-nonvirtual-jni/Android.bp\n  test/1900-track-alloc/Android.bp\n  test/1901-get-bytecodes/Android.bp\n  test/1902-suspend/Android.bp\n  test/1903-suspend-self/Android.bp\n  test/1904-double-suspend/Android.bp\n  test/1905-suspend-native/Android.bp\n  test/1906-suspend-list-me-first/Android.bp\n  test/1907-suspend-list-self-twice/Android.bp\n  test/1908-suspend-native-resume-self/Android.bp\n  test/1909-per-agent-tls/Android.bp\n  test/1910-transform-with-default/Android.bp\n  test/1911-get-local-var-table/Android.bp\n  test/1912-get-set-local-primitive/Android.bp\n  test/1913-get-set-local-objects/Android.bp\n  test/1914-get-local-instance/Android.bp\n  test/1915-get-set-local-current-thread/Android.bp\n  test/1916-get-set-current-frame/Android.bp\n  test/1917-get-stack-frame/Android.bp\n  test/1919-vminit-thread-start-timing/Android.bp\n  test/1920-suspend-native-monitor/Android.bp\n  test/1921-suspend-native-recursive-monitor/Android.bp\n  test/1922-owned-monitors-info/Android.bp\n  test/1923-frame-pop/Android.bp\n  test/1924-frame-pop-toggle/Android.bp\n  test/1925-self-frame-pop/Android.bp\n  test/1926-missed-frame-pop/Android.bp\n  test/1927-exception-event/Android.bp\n  test/1928-exception-event-exception/Android.bp\n  test/1930-monitor-info/Android.bp\n  test/1931-monitor-events/Android.bp\n  test/1932-monitor-events-misc/Android.bp\n  test/1933-monitor-current-contended/Android.bp\n  test/1934-jvmti-signal-thread/Android.bp\n  test/1935-get-set-current-frame-jit/Android.bp\n  test/1936-thread-end-events/Android.bp\n  test/1937-transform-soft-fail/Android.bp\n  test/1938-transform-abstract-single-impl/Android.bp\n  test/1939-proxy-frames/Android.bp\n  test/1941-dispose-stress/Android.bp\n  test/1942-suspend-raw-monitor-exit/Android.bp\n  test/1943-suspend-raw-monitor-wait/Android.bp\n  test/1945-proxy-method-arguments/Android.bp\n  test/1947-breakpoint-redefine-deopt/Android.bp\n  test/1949-short-dex-file/Android.bp\n  test/1951-monitor-enter-no-suspend/Android.bp\n  test/1953-pop-frame/Android.bp\n  test/1954-pop-frame-jit/Android.bp\n  test/1955-pop-frame-jit-called/Android.bp\n  test/1956-pop-frame-jit-calling/Android.bp\n  test/1957-error-ext/Android.bp\n  test/1958-transform-try-jit/Android.bp\n  test/1959-redefine-object-instrument/Android.bp\n  test/1960-checker-bounds-codegen/Android.bp\n  test/1960-obsolete-jit-multithread-native/Android.bp\n  test/1961-checker-loop-vectorizer/Android.bp\n  test/1961-obsolete-jit-multithread/Android.bp\n  test/1962-multi-thread-events/Android.bp\n  test/1963-add-to-dex-classloader-in-memory/Android.bp\n  test/1967-get-set-local-bad-slot/Android.bp\n  test/1968-force-early-return/Android.bp\n  test/1969-force-early-return-void/Android.bp\n  test/1970-force-early-return-long/Android.bp\n  test/1971-multi-force-early-return/Android.bp\n  test/1972-jni-id-swap-indices/Android.bp\n  test/1973-jni-id-swap-pointer/Android.bp\n  test/1974-resize-array/Android.bp\n  test/1975-hello-structural-transformation/Android.bp\n  test/1976-hello-structural-static-methods/Android.bp\n  test/1977-hello-structural-obsolescence/Android.bp\n  test/1978-regular-obsolete-then-structural-obsolescence/Android.bp\n  test/1979-threaded-structural-transformation/Android.bp\n  test/1980-obsolete-object-cleared/Android.bp\n  test/1982-no-virtuals-structural-redefinition/Android.bp\n  test/1984-structural-redefine-field-trace/Android.bp\n  test/1985-structural-redefine-stack-scope/Android.bp\n  test/1986-structural-redefine-multi-thread-stack-scope/Android.bp\n  test/1987-structural-redefine-recursive-stack-scope/Android.bp\n  test/1988-multi-structural-redefine/Android.bp\n  test/1989-transform-bad-monitor/Android.bp\n  test/1990-structural-bad-verify/Android.bp\n  test/1991-hello-structural-retransform/Android.bp\n  test/1992-retransform-no-such-field/Android.bp\n  test/1993-fallback-non-structural/Android.bp\n  test/1994-final-virtual-structural/Android.bp\n  test/1995-final-virtual-structural-multithread/Android.bp\n  test/1996-final-override-virtual-structural/Android.bp\n  test/1997-structural-shadow-method/Android.bp\n  test/1998-structural-shadow-field/Android.bp\n  test/1999-virtual-structural/Android.bp\n  test/2003-double-virtual-structural/Android.bp\n  test/2004-double-virtual-structural-abstract/Android.bp\n  test/2005-pause-all-redefine-multithreaded/Android.bp\n  test/2008-redefine-then-old-reflect-field/Android.bp\n  test/201-built-in-except-detail-messages/Android.bp\n  test/2011-stack-walk-concurrent-instrument/Android.bp\n  test/2019-constantcalculationsinking/Android.bp\n  test/202-thread-oome/Android.bp\n  test/2020-InvokeVirtual-Inlining/Android.bp\n  test/2021-InvokeStatic-Inlining/Android.bp\n  test/2022-Invariantloops/Android.bp\n  test/2023-InvariantLoops_typecast/Android.bp\n  test/2024-InvariantNegativeLoop/Android.bp\n  test/2025-ChangedArrayValue/Android.bp\n  test/2026-DifferentMemoryLSCouples/Android.bp\n  test/2027-TwiceTheSameMemoryCouple/Android.bp\n  test/2028-MultiBackward/Android.bp\n  test/2029-contended-monitors/Android.bp\n  test/203-multi-checkpoint/Android.bp\n  test/2030-long-running-child/Android.bp\n  test/2031-zygote-compiled-frame-deopt/Android.bp\n  test/2033-shutdown-mechanics/Android.bp\n  test/2036-jni-filechannel/Android.bp\n  test/2037-thread-name-inherit/Android.bp\n  test/2231-checker-heap-poisoning/Android.bp\n  test/2232-write-metrics-to-log/Android.bp\n  test/300-package-override/Android.bp\n  test/301-abstract-protected/Android.bp\n  test/302-float-conversion/Android.bp\n  test/304-method-tracing/Android.bp\n  test/305-other-fault-handler/Android.bp\n  test/401-optimizing-compiler/Android.bp\n  test/402-optimizing-control-flow/Android.bp\n  test/403-optimizing-long/Android.bp\n  test/404-optimizing-allocator/Android.bp\n  test/405-optimizing-long-allocator/Android.bp\n  test/406-fields/Android.bp\n  test/407-arrays/Android.bp\n  test/408-move-bug/Android.bp\n  test/409-materialized-condition/Android.bp\n  test/410-floats/Android.bp\n  test/411-checker-hdiv-hrem-const/Android.bp\n  test/411-checker-hdiv-hrem-pow2/Android.bp\n  test/411-checker-instruct-simplifier-hrem/Android.bp\n  test/411-optimizing-arith/Android.bp\n  test/413-regalloc-regression/Android.bp\n  test/414-static-fields/Android.bp\n  test/418-const-string/Android.bp\n  test/419-long-parameter/Android.bp\n  test/420-const-class/Android.bp\n  test/421-exceptions/Android.bp\n  test/421-large-frame/Android.bp\n  test/422-instanceof/Android.bp\n  test/422-type-conversion/Android.bp\n  test/423-invoke-interface/Android.bp\n  test/424-checkcast/Android.bp\n  test/426-monitor/Android.bp\n  test/427-bitwise/Android.bp\n  test/427-bounds/Android.bp\n  test/429-ssa-builder/Android.bp\n  test/430-live-register-slow-path/Android.bp\n  test/433-gvn/Android.bp\n  test/434-shifter-operand/Android.bp\n  test/435-try-finally-without-catch/Android.bp\n  test/436-rem-float/Android.bp\n  test/436-shift-constant/Android.bp\n  test/437-inline/Android.bp\n  test/438-volatile/Android.bp\n  test/439-npe/Android.bp\n  test/439-swap-double/Android.bp\n  test/440-stmp/Android.bp\n  test/441-checker-inliner/Android.bp\n  test/443-not-bool-inline/Android.bp\n  test/444-checker-nce/Android.bp\n  test/445-checker-licm/Android.bp\n  test/446-checker-inliner2/Android.bp\n  test/447-checker-inliner3/Android.bp\n  test/449-checker-bce-rem/Android.bp\n  test/449-checker-bce/Android.bp\n  test/450-checker-types/Android.bp\n  test/451-regression-add-float/Android.bp\n  test/451-spill-splot/Android.bp\n  test/454-get-vreg/Android.bp\n  test/455-checker-gvn/Android.bp\n  test/456-baseline-array-set/Android.bp\n  test/458-long-to-fpu/Android.bp\n  test/461-get-reference-vreg/Android.bp\n  test/464-checker-inline-sharpen-calls/Android.bp\n  test/465-checker-clinit-gvn/Android.bp\n  test/466-get-live-vreg/Android.bp\n  test/469-condition-materialization/Android.bp\n  test/470-huge-method/Android.bp\n  test/471-deopt-environment/Android.bp\n  test/472-type-propagation/Android.bp\n  test/473-checker-inliner-constants/Android.bp\n  test/473-remove-dead-block/Android.bp\n  test/474-checker-boolean-input/Android.bp\n  test/474-fp-sub-neg/Android.bp\n  test/475-simplify-mul-zero/Android.bp\n  test/476-checker-ctor-fence-redun-elim/Android.bp\n  test/476-checker-ctor-memory-barrier/Android.bp\n  test/476-clinit-inline-static-invoke/Android.bp\n  test/477-checker-bound-type/Android.bp\n  test/477-long-2-float-convers-precision/Android.bp\n  test/478-checker-clinit-check-pruning/Android.bp\n  test/478-checker-inline-noreturn/Android.bp\n  test/478-checker-inliner-nested-loop/Android.bp\n  test/479-regression-implicit-null-check/Android.bp\n  test/480-checker-dead-blocks/Android.bp\n  test/481-regression-phi-cond/Android.bp\n  test/482-checker-loop-back-edge-use/Android.bp\n  test/483-dce-block/Android.bp\n  test/485-checker-dce-switch/Android.bp\n  test/486-checker-must-do-null-check/Android.bp\n  test/487-checker-inline-calls/Android.bp\n  test/488-checker-inline-recursive-calls/Android.bp\n  test/489-current-method-regression/Android.bp\n  test/490-checker-inline/Android.bp\n  test/491-current-method/Android.bp\n  test/492-checker-inline-invoke-interface/Android.bp\n  test/493-checker-inline-invoke-interface/Android.bp\n  test/494-checker-instanceof-tests/Android.bp\n  test/495-checker-checkcast-tests/Android.bp\n  test/496-checker-inlining-class-loader/Android.bp\n  test/497-inlining-and-class-loader/Android.bp\n  test/499-bce-phi-array-length/Android.bp\n  test/500-instanceof/Android.bp\n  test/505-simplifier-type-propagation/Android.bp\n  test/507-boolean-test/Android.bp\n  test/507-referrer/Android.bp\n  test/508-checker-disassembly/Android.bp\n  test/508-referrer-method/Android.bp\n  test/513-array-deopt/Android.bp\n  test/514-shifts/Android.bp\n  test/519-bound-load-class/Android.bp\n  test/521-checker-array-set-null/Android.bp\n  test/521-regression-integer-field-set/Android.bp\n  test/524-boolean-simplifier-regression/Android.bp\n  test/525-checker-arrays-fields1/Android.bp\n  test/525-checker-arrays-fields2/Android.bp\n  test/526-checker-caller-callee-regs/Android.bp\n  test/526-long-regalloc/Android.bp\n  test/527-checker-array-access-simd/Android.bp\n  test/527-checker-array-access-split/Android.bp\n  test/528-long-hint/Android.bp\n  test/529-long-split/Android.bp\n  test/530-checker-loops1/Android.bp\n  test/530-checker-loops2/Android.bp\n  test/530-checker-loops3/Android.bp\n  test/530-checker-loops4/Android.bp\n  test/530-checker-loops5/Android.bp\n  test/530-checker-lse-ctor-fences/Android.bp\n  test/530-checker-lse-simd/Android.bp\n  test/530-checker-lse/Android.bp\n  test/530-checker-lse2/Android.bp\n  test/530-instanceof-checkcast/Android.bp\n  test/530-regression-lse/Android.bp\n  test/532-checker-nonnull-arrayset/Android.bp\n  test/534-checker-bce-deoptimization/Android.bp\n  test/535-deopt-and-inlining/Android.bp\n  test/536-checker-intrinsic-optimization/Android.bp\n  test/537-checker-arraycopy/Android.bp\n  test/537-checker-jump-over-jump/Android.bp\n  test/538-checker-embed-constants/Android.bp\n  test/540-checker-rtp-bug/Android.bp\n  test/542-bitfield-rotates/Android.bp\n  test/542-inline-trycatch/Android.bp\n  test/542-unresolved-access-check/Android.bp\n  test/545-tracing-and-jit/Android.bp\n  test/548-checker-inlining-and-dce/Android.bp\n  test/549-checker-types-merge/Android.bp\n  test/550-checker-multiply-accumulate/Android.bp\n  test/550-new-instance-clinit/Android.bp\n  test/551-checker-clinit/Android.bp\n  test/551-checker-shifter-operand/Android.bp\n  test/551-implicit-null-checks/Android.bp\n  test/552-checker-sharpening/Android.bp\n  test/552-checker-x86-avx2-bit-manipulation/Android.bp\n  test/554-checker-rtp-checkcast/Android.bp\n  test/555-UnsafeGetLong-regression/Android.bp\n  test/557-checker-instruct-simplifier-ror/Android.bp\n  test/558-switch/Android.bp\n  test/559-bce-ssa/Android.bp\n  test/559-checker-rtp-ifnotnull/Android.bp\n  test/560-packed-switch/Android.bp\n  test/561-divrem/Android.bp\n  test/561-shared-slowpaths/Android.bp\n  test/562-bce-preheader/Android.bp\n  test/562-checker-no-intermediate/Android.bp\n  test/563-checker-invoke-super/Android.bp\n  test/564-checker-bitcount/Android.bp\n  test/564-checker-inline-loop/Android.bp\n  test/564-checker-negbitwise/Android.bp\n  test/565-checker-condition-liveness/Android.bp\n  test/566-checker-codegen-select/Android.bp\n  test/566-polymorphic-inlining/Android.bp\n  test/567-checker-builder-intrinsics/Android.bp\n  test/568-checker-onebit/Android.bp\n  test/570-checker-select/Android.bp\n  test/572-checker-array-get-regression/Android.bp\n  test/573-checker-checkcast-regression/Android.bp\n  test/576-polymorphic-inlining/Android.bp\n  test/577-checker-fp2int/Android.bp\n  test/578-bce-visit/Android.bp\n  test/578-polymorphic-inlining/Android.bp\n  test/579-inline-infinite/Android.bp\n  test/580-checker-round/Android.bp\n  test/580-crc32/Android.bp\n  test/581-rtp/Android.bp\n  test/582-checker-bce-length/Android.bp\n  test/583-checker-zero/Android.bp\n  test/584-checker-div-bool/Android.bp\n  test/589-super-imt/Android.bp\n  test/590-checker-arr-set-null-regression/Android.bp\n  test/591-checker-regression-dead-loop/Android.bp\n  test/593-checker-long-2-float-regression/Android.bp\n  test/594-checker-array-alias/Android.bp\n  test/594-load-string-regression/Android.bp\n  test/595-profile-saving/Android.bp\n  test/597-deopt-busy-loop/Android.bp\n  test/597-deopt-invoke-stub/Android.bp\n  test/597-deopt-new-string/Android.bp\n  test/602-deoptimizeable/Android.bp\n  test/603-checker-instanceof/Android.bp\n  test/604-hot-static-interface/Android.bp\n  test/605-new-string-from-bytes/Android.bp\n  test/607-daemon-stress/Android.bp\n  test/609-checker-inline-interface/Android.bp\n  test/609-checker-x86-bounds-check/Android.bp\n  test/610-arraycopy/Android.bp\n  test/611-checker-simplify-if/Android.bp\n  test/614-checker-dump-constant-location/Android.bp\n  test/615-checker-arm64-store-zero/Android.bp\n  test/616-cha-abstract/Android.bp\n  test/616-cha-interface/Android.bp\n  test/616-cha-miranda/Android.bp\n  test/616-cha-native/Android.bp\n  test/616-cha-regression-proxy-method/Android.bp\n  test/616-cha/Android.bp\n  test/617-clinit-oome/Android.bp\n  test/618-checker-induction/Android.bp\n  test/619-checker-current-method/Android.bp\n  test/620-checker-bce-intrinsics/Android.bp\n  test/622-checker-bce-regressions/Android.bp\n  test/623-checker-loop-regressions/Android.bp\n  test/625-checker-licm-regressions/Android.bp\n  test/626-set-resolved-string/Android.bp\n  test/627-checker-unroll/Android.bp\n  test/628-vdex/Android.bp\n  test/629-vdex-speed/Android.bp\n  test/631-checker-get-class/Android.bp\n  test/632-checker-char-at-bounds/Android.bp\n  test/635-checker-arm64-volatile-load-cc/Android.bp\n  test/636-arm64-veneer-pool/Android.bp\n  test/637-checker-throw-inline/Android.bp\n  test/638-checker-inline-cache-intrinsic/Android.bp\n  test/639-checker-code-sinking/Android.bp\n  test/640-checker-boolean-simd/Android.bp\n  test/640-checker-integer-valueof/Android.bp\n  test/640-checker-simd/Android.bp\n  test/641-checker-arraycopy/Android.bp\n  test/641-iterations/Android.bp\n  test/642-fp-callees/Android.bp\n  test/643-checker-bogus-ic/Android.bp\n  test/645-checker-abs-simd/Android.bp\n  test/646-checker-arraycopy-large-cst-pos/Android.bp\n  test/646-checker-long-const-to-int/Android.bp\n  test/646-checker-simd-hadd/Android.bp\n  test/647-jni-get-field-id/Android.bp\n  test/650-checker-inline-access-thunks/Android.bp\n  test/652-deopt-intrinsic/Android.bp\n  test/654-checker-periodic/Android.bp\n  test/655-checker-simd-arm-opt/Android.bp\n  test/655-jit-clinit/Android.bp\n  test/656-checker-simd-opt/Android.bp\n  test/656-loop-deopt/Android.bp\n  test/657-branches/Android.bp\n  test/658-fp-read-barrier/Android.bp\n  test/660-checker-sad/Android.bp\n  test/660-checker-simd-sad/Android.bp\n  test/660-clinit/Android.bp\n  test/661-checker-simd-reduc/Android.bp\n  test/661-oat-writer-layout/Android.bp\n  test/662-regression-alias/Android.bp\n  test/664-aget-verifier/Android.bp\n  test/665-checker-simd-zero/Android.bp\n  test/666-dex-cache-itf/Android.bp\n  test/667-checker-simd-alignment/Android.bp\n  test/667-jit-jni-stub/Android.bp\n  test/667-out-of-bounds/Android.bp\n  test/669-checker-break/Android.bp\n  test/671-npe-field-opts/Android.bp\n  test/672-checker-throw-method/Android.bp\n  test/673-checker-throw-vmethod/Android.bp\n  test/674-HelloWorld-Dm/Android.bp\n  test/674-hotness-compiled/Android.bp\n  test/676-proxy-jit-at-first-use/Android.bp\n  test/677-fsi2/Android.bp\n  test/679-locks/Android.bp\n  test/680-checker-deopt-dex-pc-0/Android.bp\n  test/680-sink-regression/Android.bp\n  test/684-checker-simd-dotprod/Android.bp\n  test/684-select-condition/Android.bp\n  test/685-deoptimizeable/Android.bp\n  test/687-deopt/Android.bp\n  test/689-multi-catch/Android.bp\n  test/689-zygote-jit-deopt/Android.bp\n  test/693-vdex-inmem-loader-evict/Android.bp\n  test/694-clinit-jit/Android.bp\n  test/695-simplify-throws/Android.bp\n  test/696-loop/Android.bp\n  test/697-checker-string-append/Android.bp\n  test/698-selects/Android.bp\n  test/700-LoadArgRegs/Android.bp\n  test/703-floating-point-div/Android.bp\n  test/704-multiply-accumulate/Android.bp\n  test/705-register-conflict/Android.bp\n  test/707-checker-invalid-profile/Android.bp\n  test/708-jit-cache-churn/Android.bp\n  test/711-checker-type-conversion/Android.bp\n  test/717-integer-value-of/Android.bp\n  test/718-zipfile-finalizer/Android.bp\n  test/720-thread-priority/Android.bp\n  test/721-osr/Android.bp\n  test/726-array-store/Android.bp\n  test/728-imt-conflict-zygote/Android.bp\n  test/805-TooDeepClassInstanceOf/Android.bp\n  test/806-TooWideClassInstanceOf/Android.bp\n  test/812-recursive-default/Android.bp\n  test/813-fp-args/Android.bp\n  test/814-large-field-offsets/Android.bp\n  test/815-invokeinterface-default/Android.bp\n  test/818-clinit-nterp/Android.bp\n  test/900-hello-plugin/Android.bp\n  test/901-hello-ti-agent/Android.bp\n  test/902-hello-transformation/Android.bp\n  test/903-hello-tagging/Android.bp\n  test/904-object-allocation/Android.bp\n  test/905-object-free/Android.bp\n  test/906-iterate-heap/Android.bp\n  test/907-get-loaded-classes/Android.bp\n  test/908-gc-start-finish/Android.bp\n  test/910-methods/Android.bp\n  test/911-get-stack-trace/Android.bp\n  test/913-heaps/Android.bp\n  test/914-hello-obsolescence/Android.bp\n  test/915-obsolete-2/Android.bp\n  test/916-obsolete-jit/Android.bp\n  test/917-fields-transformation/Android.bp\n  test/918-fields/Android.bp\n  test/919-obsolete-fields/Android.bp\n  test/920-objects/Android.bp\n  test/921-hello-failure/Android.bp\n  test/922-properties/Android.bp\n  test/923-monitors/Android.bp\n  test/924-threads/Android.bp\n  test/925-threadgroups/Android.bp\n  test/926-multi-obsolescence/Android.bp\n  test/927-timers/Android.bp\n  test/928-jni-table/Android.bp\n  test/930-hello-retransform/Android.bp\n  test/931-agent-thread/Android.bp\n  test/932-transform-saves/Android.bp\n  test/933-misc-events/Android.bp\n  test/937-hello-retransform-package/Android.bp\n  test/939-hello-transformation-bcp/Android.bp\n  test/940-recursive-obsolete/Android.bp\n  test/941-recursive-obsolete-jit/Android.bp\n  test/942-private-recursive/Android.bp\n  test/943-private-recursive-jit/Android.bp\n  test/944-transform-classloaders/Android.bp\n  test/945-obsolete-native/Android.bp\n  test/946-obsolete-throw/Android.bp\n  test/947-reflect-method/Android.bp\n  test/949-in-memory-transform/Android.bp\n  test/950-redefine-intrinsic/Android.bp\n  test/951-threaded-obsolete/Android.bp\n  test/963-default-range-smali/Android.bp\n  test/982-ok-no-retransform/Android.bp\n  test/983-source-transform-verify/Android.bp\n  test/984-obsolete-invoke/Android.bp\n  test/985-re-obsolete/Android.bp\n  test/986-native-method-bind/Android.bp\n  test/987-agent-bind/Android.bp\n  test/988-method-trace/Android.bp\n  test/989-method-trace-throw/Android.bp\n  test/990-field-trace/Android.bp\n  test/991-field-trace-2/Android.bp\n  test/992-source-data/Android.bp\n  test/993-breakpoints/Android.bp\n  test/994-breakpoint-line/Android.bp\n  test/995-breakpoints-throw/Android.bp\n  test/996-breakpoint-obsolete/Android.bp\n  test/997-single-step/Android.bp\n  test/Android.bp\n  tools/Android.bp\n  tools/ahat/Android.bp\n  tools/ahat/Android.mk\n  tools/art_verifier/Android.bp\n  tools/cpp-define-generator/Android.bp\n  tools/dexanalyze/Android.bp\n  tools/dexfuzz/Android.bp\n  tools/dmtracedump/Android.bp\n  tools/hiddenapi/Android.bp\n  tools/jfuzz/Android.bp\n  tools/jvmti-agents/breakpoint-logger/Android.bp\n  tools/jvmti-agents/chain-agents/Android.bp\n  tools/jvmti-agents/dump-jvmti-state/Android.bp\n  tools/jvmti-agents/enable-vlog/Android.bp\n  tools/jvmti-agents/field-counts/Android.bp\n  tools/jvmti-agents/field-null-percent/Android.bp\n  tools/jvmti-agents/jit-load/Android.bp\n  tools/jvmti-agents/list-extensions/Android.bp\n  tools/jvmti-agents/simple-force-redefine/Android.bp\n  tools/jvmti-agents/simple-profile/Android.bp\n  tools/jvmti-agents/ti-alloc-sample/Android.bp\n  tools/jvmti-agents/ti-fast/Android.bp\n  tools/jvmti-agents/titrace/Android.bp\n  tools/jvmti-agents/wrapagentproperties/Android.bp\n  tools/signal_dumper/Android.bp\n  tools/tracefast-plugin/Android.bp\n  tools/veridex/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to:\n  sigchainlib/Android.bp\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD\n    SPDX-license-identifier-GPL-2.0\nto:\n  Android.bp\n  Android.mk\n\nAdded SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-GPL-2.0\n    SPDX-license-identifier-GPL-with-classpath-exception\nto:\n  dt_fd_forward/Android.bp\n  openjdkjvmti/Android.bp\n\nAdded SPDX-license-identifier-GPL-2.0\n    SPDX-license-identifier-GPL-with-classpath-exception\nto:\n  openjdkjvm/Android.bp\n\nBug: 68860345\nBug: 151177513\nBug: 151953481\n\nTest: m all\n\nExempt-From-Owner-Approval: janitorial work\nChange-Id: If775045c12955fa6d72d40ccf2a09beef93d1699\nMerged-in: If775045c12955fa6d72d40ccf2a09beef93d1699\n"
    },
    {
      "commit": "dc281e776c0395b54200c62626f90417f092a2bf",
      "tree": "5e0a458e7ec1968f365b5a6dcc7454d417f11416",
      "parents": [
        "da946fc92b3f6f9664167ef3a0f1324694417b71"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jan 06 12:35:31 2021 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jan 08 22:35:17 2021 +0000"
      },
      "message": "Add operator\u003c\u003c for HGraph and HInstructions.\n\nInclude helpers for printing arguments as well.\n\nTest: ./test.py --host\nChange-Id: I692fd5bd32a8a39da0defd9454d56ccf2480f229\n"
    },
    {
      "commit": "86fe9b85c5243debe5f695c1625bae03bf738452",
      "tree": "5de78b8292a0225b617e1825817cbd12b46b6fa3",
      "parents": [
        "cc9df4fa1e666b90c5dd8eac94773763f8421f1e"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Nov 16 16:54:01 2020 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Nov 18 20:26:53 2020 +0000"
      },
      "message": "Revert^4 \"Partial LSE analysis \u0026 store removal\"\n\nWe incorrectly handled merging unknowns in some situations.\nSpecifically in cases where we are unable to materialize loop-phis we\ncould end up with PureUnknowns which could end up hiding stores that\nneed to be kept.\n\nIn an unrelated issue we were incorrectly considering some values as\nescapes when live at the point of an invoke. Since\nSearchPhiPlaceholdersForKeptStores used a more precise notion of\nescapes we could end up removing stores without being able to replace\nthe values.\n\nThis reverts commit 2316b3a0779f3721a78681f5c70ed6624ecaebef.\nThis unreverts commit b6837f0350ff66c13582b0e94178dd5ca283ff0a\nThis reverts commit fe270426c8a2a69a8f669339e83b86fbf40e25a1.\nThis unreverts commit bb6cda60e4418c0ab557ea4090e046bed8206763.\n\nBug: 67037140\nBug: 173120044\n\nReason for revert: Fixed issue causing incorrect store elimination\nTest: ./test.py --host\nTest: Boot cuttlefish\n      atest FrameworksServicesTests:com.android.server.job.BackgroundRestrictionsTest#testPowerWhiteList\n\nChange-Id: I2ebae9ccfaf5169d551c5019b547589d0fce1dc9\n"
    },
    {
      "commit": "2316b3a0779f3721a78681f5c70ed6624ecaebef",
      "tree": "8aa4682729b839a97b2578e6cbe05ee5d35be923",
      "parents": [
        "aeb7f9f8fe718219cfb04e0da5df62683250477d"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Sat Nov 14 01:28:22 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Nov 14 02:54:26 2020 +0000"
      },
      "message": "Revert^3 \"Partial LSE analysis \u0026 store removal\"\n\nThis reverts commit b6837f0350ff66c13582b0e94178dd5ca283ff0a\nThis unreverts commit fe270426c8a2a69a8f669339e83b86fbf40e25a1.\nThis rereverts commit bb6cda60e4418c0ab557ea4090e046bed8206763.\n\nBug: 67037140\nBug: 173120044\n\nReason for revert: Git-blame seems to point to the CL as cause of\nb/173120044. Revert during investigation.\n\nChange-Id: I46f557ce79c15f07f4e77aacded1926b192754c3\n"
    },
    {
      "commit": "b6837f0350ff66c13582b0e94178dd5ca283ff0a",
      "tree": "f79fff81352545efe967850e3d17e32255dcfecd",
      "parents": [
        "32c2eb81320f24b5bab24754204b8be95faa08b0"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Nov 12 17:05:28 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 13 10:07:21 2020 +0000"
      },
      "message": "Revert^2 \"Partial LSE analysis \u0026 store removal\"\n\nA ScopedArenaAllocator in a single test was accidentally loaded using\noperator new which is not supported. This caused a memory leak.\n\nThis reverts commit fe270426c8a2a69a8f669339e83b86fbf40e25a1.\nThis unreverts commit bb6cda60e4418c0ab557ea4090e046bed8206763.\n\nBug: 67037140\n\nReason for revert: Fixed memory leak in\nLoadStoreAnalysisTest.PartialEscape test case\n\nTest: SANITIZE_HOST\u003daddress ASAN_OPTIONS\u003ddetect_leaks\u003d0 m test-art-host-gtest-dependencies\n      Run art_compiler_tests\n\nChange-Id: I34fa2079df946ae54b8c91fa771a44d56438a719\n"
    },
    {
      "commit": "fe270426c8a2a69a8f669339e83b86fbf40e25a1",
      "tree": "c048fdec8e37cefb7238218a087709c01d5d3923",
      "parents": [
        "e17530a19a717879c8dd8e70073de6aaf4ee455f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 12 14:12:52 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 12 16:33:50 2020 +0000"
      },
      "message": "Revert \"Partial LSE analysis \u0026 store removal\"\n\nThis reverts commit bb6cda60e4418c0ab557ea4090e046bed8206763.\n\nBug: 67037140\n\nReason for revert: memory leak detected in the test.\n\nChange-Id: I81cc2f61494e96964d8be40389eddcd7c66c9266\n"
    },
    {
      "commit": "bb6cda60e4418c0ab557ea4090e046bed8206763",
      "tree": "f6b94510108cb653a80e0ea14d50ad6616c9f44a",
      "parents": [
        "670ff8854cf075617e0abee77b2259903757d86e"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jul 09 13:24:56 2020 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 12 02:08:44 2020 +0000"
      },
      "message": "Partial LSE analysis \u0026 store removal\n\nThis is the first piece of partial LSE for art. This CL adds analysis\ntools needed to implement partial LSE. More immediately, it improves\nLSE so that it will remove stores that are provably non-observable\nbased on the location they occur. For example:\n\n```\nFoo o \u003d new Foo();\nif (xyz) {\n  check(foo);\n  foo.x++;\n} else {\n  foo.x \u003d 12;\n}\nreturn foo.x;\n```\n\nThe store of 12 can be removed because the only escape in this method\nis unreachable and was not executed by the point we reach the store.\n\nThe main purpose of this CL is to add the analysis tools needed to\nimplement partial Load-Store elimination. Namely it includes tracking\nof which blocks are escaping and the groups of blocks that we cannot\nremove allocations from.\n\nThe actual impact of this change is incredibly minor, being triggered\nonly once in a AOSP code. go/lem shows only minor effects to\ncompile-time and no effect on the compiled code. See\ngo/lem-allight-partial-lse-2 for numbers. Compile time shows an\naverage of 1.4% regression (max regression is 7% with 0.2 noise).\n\nThis CL adds a new \u0027reachability\u0027 concept to the HGraph. If this has\nbeen calculated it allows one to quickly query whether there is any\nexecution path containing two blocks in a given order. This is used to\ndefine a notion of sections of graph from which the escape of some\nallocation is inevitable.\n\nTest: art_compiler_tests\nTest: treehugger\nBug: 67037140\nChange-Id: I0edc8d6b73f7dd329cb1ea7923080a0abe913ea6\n"
    },
    {
      "commit": "3e9abfc9779399815a7dc8d492466a1234b7fdcd",
      "tree": "fd1017f153d3759488914c4d372f543125722ad1",
      "parents": [
        "35b132e3377029a356cfbc9e4682e3ebceb83edf"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Oct 09 22:17:51 2020 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Oct 23 10:03:13 2020 +0000"
      },
      "message": "Rename ART release APEX to com.android.art.\n\nTest: Build \u0026 boot on AOSP master\nTest: `m` on AOSP master, flipping\n  PRODUCT_ART_TARGET_INCLUDE_DEBUG_BUILD between true and false, and\n  check out/target/product/bonito/symbols/apex/com.android.art.\nTest: art/build/apex/runtests.sh\nTest: art/tools/buildbot-build.sh {--host,--target}\nTest: art/tools/run-gtests.sh\nTest: m test-art-host-gtest\nTest: art/test/testrunner/testrunner.py --target --64 --optimizing\nTest: m build-art-target-golem\nBug: 169639321\nChange-Id: Ic4bb8d6f9988ce99bba326b9c635bd3c01ed74ab\nMerged-In: Ic4bb8d6f9988ce99bba326b9c635bd3c01ed74ab\n"
    },
    {
      "commit": "71f7affff661a9f48afae25e19fcd3b9e82dac33",
      "tree": "0c39fae9b425703b0c05f7fdf70dc4e330bdbbbf",
      "parents": [
        "4904d5d65de32237790e5370bd076a9bccc22aa1"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Sep 15 16:45:49 2020 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Oct 05 11:41:52 2020 +0000"
      },
      "message": "Use prebuilt_visibility property on sdk/module_exports\n\nWhen the ART sdk/module_exports snapshots are unpacked in a prebuilts\ndirectory they need some additional visibility rules to be added to\nensure that the prebuilts are visible to each other. Previously, those\nwere added on a case by case basis to the individual modules. This\nchange replaces them by using the prebuilt_visibility property that\nspecifies additional visibility rules to be added to all prebuilt\nmodules in the snapshots.\n\nCurrently, the additional visibility added to the prebuilts makes them\nvisible to anything in //prebuilts or beneath which is not restrictive\nenough. Specifying the rule in a single place will make that easier to\nrestrict in future.\n\nBug: 155921753\nBug: 168301990\nTest: build sdk/snapshot, install them in prebuilts/module_sdk/art\n      and run m nothing to ensure the visibility rules are valid.\nChange-Id: I751ed6d488038214ac9df35849babe69a3c79a31\n"
    },
    {
      "commit": "407468761d72c1031a871c18c29238135d9f0a88",
      "tree": "d9655da2c6a95806476f3b4bfcfd522feafaad06",
      "parents": [
        "9636062c4d4839bbb2fd979ee56b2f38d8615f1e"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Sep 29 13:58:10 2020 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Sep 29 14:55:40 2020 +0000"
      },
      "message": "Link libart-disassembler statically into static libart-compiler.\n\nNecessary to avoid runtime dlopen of non-existing\nlibart(d)-disassembler.so in host dex2oat. This increases the stripped\ndex2oat binary size by 4.8% or ~800 KB.\n\nTest: art/tools/buildbot-build.sh --host \u0026\u0026 \\\n  art/test/testrunner/testrunner.py --optimizing --host --ndebug -t 465\n  with and without HOST_PREFER_32_BIT\u003dtrue\nBug: 145934348\nChange-Id: I623019132175bd0430d30a421655484bdcb71857\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": "d3e9c62976780e830da79ae32be4192dee196db2",
      "tree": "bf7855545f49ea039c6824d340ce2a162ad40ebd",
      "parents": [
        "60ef3997cbcd866c505e51ecde7f06a0535110a0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 05 12:20:28 2020 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 10 09:17:34 2020 +0000"
      },
      "message": "ARM: Allow FP args in core regs for @CriticalNative.\n\nIf a float or double argument needs to be passed in core\nregister to a @CriticalNative method due to soft-float\nnative ABI, insert a fake call to Float.floatToRawIntBits()\nor Double.doubleToRawLongBits() to satisfy type checks in\nthe compiler.\n\nWe cannot do that for intrinsics that expect those inputs in\nactual FP registers, so we still prevent such intrinsics\nfrom using `kCallCriticalNative`. This should be irrelevant\nif an actual intrinsic implementation is emitted. There are\ncurrently two unimplemented intrinsics that are affected by\nthe carve-out, namely MathRoundDouble and FP16ToHalf, and\nfour intrinsics implemented only when ARMv8A is supported,\nnamely MathRint, MathRoundFloat, MathCeil and MathFloor.\n\nTest: testrunner.py --target --32 -t 178-app-image-native-method\nBug: 112189621\nChange-Id: Id14ef4f49f8a0e6489f97dc9588c0e6a5c122632\n"
    },
    {
      "commit": "5439f051a950f0281eeafb8e8064839f2aea6e38",
      "tree": "889efef779fa462357f77cb2166c600cb0d60679",
      "parents": [
        "483bf78ae61ab43a3d513cef0de0072e86d0b0b1"
      ],
      "author": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Wed Jul 29 10:03:46 2020 +0100"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Wed Jul 29 13:58:15 2020 +0000"
      },
      "message": "Revert^3 \"VIXL simulator for ART (Stage1)\"\n\nThis reverts commit e886d68b9c40c941d8966b9c90d0e265c75fb19e.\n\nReason for revert: simulator implemention is not ready yet.\n\nTest: lunch aosp_cf_x86_phone-userdebug \u0026\u0026 m\nTest: art/test.py --run-test --optimizing --host\nChange-Id: I03c8c09ea348205b0238d7a26caef3477cd6ae3b\n"
    },
    {
      "commit": "50a454b23485ceb8fe37e102abc0e41e2857876a",
      "tree": "12699b0a7cd40e916c210bed4118a836491fea6d",
      "parents": [
        "aacf977a3b3af644a7e2eb58d8e56a23d1f3d215"
      ],
      "author": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Thu Jul 23 11:47:51 2020 +0100"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Thu Jul 23 13:33:39 2020 +0000"
      },
      "message": "Link statically with libart(d)-simulator-container.\n\nTest: lunch aosp_cf_x86_phone-userdebug \u0026\u0026 m\nTest: art/test.py --run-test --optimizing --host\nTest: m test-art-host-gtest\nChange-Id: I39d4b500d73a48e1a102a7c5826b6af384b8f031\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": "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": "ecb984ddbd830e6eb3f339b9bd4c7c90eac2438b",
      "tree": "d8ee8ef0672ba40b399812d576f6a992a67ad4ba",
      "parents": [
        "f91fc1220f1b77c55317ff50f4dde8e6b043858f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu May 14 15:16:31 2020 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 15 14:09:54 2020 +0000"
      },
      "message": "Optimizing: Run additional tests on target.\n\nThese tests were running only when x86 codegen was supported\nbut they actually use the runtime instruction set, rather\nthan x86 codegen. Move them to the generic tests, so that\nthey run also on target now that it\u0027s cheap thanks to\n    https://android-review.googlesource.com/1310447 .\n\nTest: m test-art-host-gtest\nTest: run-gtests.sh\nChange-Id: I76338453fbb5112fa07e8cd7c323dcd894790042\n"
    },
    {
      "commit": "75b961a4cd926e647eb20ebf20ec5af410f7e1df",
      "tree": "4c83c209ca826494c440dedf1815217721e4439b",
      "parents": [
        "3a079094a2b92a8dce725848d28abd5de7a84e9f"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Thu May 07 01:45:27 2020 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon May 11 08:55:41 2020 +0000"
      },
      "message": "Add visibilities for prebuilts.\n\nThese visibilities are intentionally blunt, to allow the prebuilts to\nmove around for now.\n\nMany of these visibilities may also go away completely again if the\nexported binaries are changed to compile internal ART libraries\nstatically.\n\nTest: v\n  1. build/soong/scripts/build-aml-prebuilts.sh art-module-sdk \\\n     art-module-test-exports conscrypt-module-sdk \\\n     conscrypt-module-test-exports conscrypt-module-host-exports \\\n     art-module-host-exports\n  2. Unzip out/aml/soong/mainline-sdks/*.zip into separate\n     subdirectories under prebuilts/runtime\n  3. env SOONG_ALLOW_MISSING_DEPENDENCIES\u003dtrue m nothing\n     (together with the topic of https://r.android.com/1252167)\nBug: 155921753\nChange-Id: Id8bbc8aedb0b87e30e9cf3d2a9f34b33cb71756c\n"
    },
    {
      "commit": "1a719e4de83532a1dcd9ddfad2c92d4130f28ea9",
      "tree": "445026effb3298ca8e962701ee01f65785be6fe6",
      "parents": [
        "e33dca6d44463606168330d2f84bc616e8c147f6"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Thu Jul 18 14:24:55 2019 +0100"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Mon May 04 08:19:17 2020 +0000"
      },
      "message": "RFC: ARM64: Split arm64 codegen into scalar and vector (SVE and NEON).\n\nThis is a first CL in the series of introducing arm64 SVE support\nin ART. The patch splits the codegen functionality into scalar and\nvector ones and for the latter introduces NEON and SVE\nimplementations. SVE one currently is an exact copy of NEON one -\nfor the sake of testing and an easy diff when the next CL comes\nwith an actual SVE instructions support.\n\nThe patch effectively doesn\u0027t change any behavior; NEON mode is\nused for vector instructions, tests pass.\n\nTest: test-art-target.\nChange-Id: I5f7f2c8218330998e5a733a56f42473526cd58e6\n"
    },
    {
      "commit": "5b768893456ca3a998b7a2a93490229febbec1cf",
      "tree": "4c88c226cd01758dccd0bbbeeca4d415c069813e",
      "parents": [
        "3cd802e4b80973b2c3893590c90d4bd5859d6dea"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Feb 19 15:49:02 2020 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Feb 21 13:05:33 2020 +0000"
      },
      "message": "Make `libart(d)-disassembler` a requirement of `libart(d)-compiler`.\n\nThe constructor of `art::HGraphVisualizerDisassembler` (which is part\nof `libart(d)-compiler.so`) may dynamically load\n`libart(d)-disassembler.so`; add `libart(d)-disassembler` to the\n`runtime_libs` property of module `libart(d)-compiler` to make sure\nthe former can be found.\n\nAlso promote the failure to dynamically load\n`libart(s)-disassembler.so` in\n`art::HGraphVisualizerDisassembler::HGraphVisualizerDisassembler` from\n`WARNING` to `ERROR`.\n\nTest: art/tools/buildbot-build.sh --host \\\n        \u0026\u0026 art/test/testrunner/testrunner.py --host --optimizing \\\n             -t 640-checker-integer-valueof\nBug: 149749169\nChange-Id: I307bdf8b71e47ed8da1d6d62ab688c500b3f9c80\n"
    },
    {
      "commit": "2c8123c1480dcd42e31963697264fca7ad6fa154",
      "tree": "9599252703d41b43ac973c38032385b303bcb9c8",
      "parents": [
        "c3f2fe95ef4f3a51039e497b02b978e7d85ee3fa"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 12 10:52:22 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 13 15:07:15 2020 +0000"
      },
      "message": "Remove MIPS support from JNI/trampoline compiler.\n\nAlso remove MIPS assembler/disassembler support.\n\nTest: aosp_taimen-userdebug boots.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 147346243\nChange-Id: Id736074b97cd04987a7902741828b119508df1c0\n"
    },
    {
      "commit": "54f4fbd1a6834f06dc9b644b865423fdc03afb15",
      "tree": "4f55b2a196453a8a197a1787a688cc299682e55d",
      "parents": [
        "2d3de3a40015af07f7645a298f77b398af0c6c2c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 12 10:52:22 2020 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 13 09:14:02 2020 +0000"
      },
      "message": "Remove MIPS support from Optimizing.\n\nTest: aosp_taimen-userdebug boots.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 147346243\nChange-Id: I97fdc15e568ae3fe390efb1da690343025f84944\n"
    },
    {
      "commit": "d71f1dc15e264f9d2122c427a4d99d49b525bfd3",
      "tree": "9bb30ad7c9420e738ec84f55d6c01b2f3a754ff7",
      "parents": [
        "c124d1dd977a2ddcd6e4928cfe6c0698f44d6523"
      ],
      "author": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Wed Jan 24 17:24:16 2018 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 28 17:10:34 2020 +0000"
      },
      "message": "Enable support of VecLoad/VecStore in LSE\n\nChanges:\n- Enable VecLoad and VecStore support in LSE.\n- This CL is based on Mingyao\u0027s CL: More general store elimination.\n- The new gtest load_store_elimination_test is to test some corner cases\n  where ArrayGet/ArraySet/VecLoad/VecStore are mixed and overlap.\n- The new java 530-checker-lse-simd.\n\nTest: test.py --host --optimizing --jit --gtest\nTest: test.py --target --optimizing --jit\nTest: run-gtests.sh\nTest: load_store_elimination_test\nTest: 530-checker-lse-simd\nTest: ./art/test/run-test --optimizing --64 --gcstress 667-checker-simd-alignment\nTest: m -j80 art-check-testing-apex-gen\n\nChange-Id: I2d2024ec75a2aaef56b527db98abb40c5f16be79\n"
    },
    {
      "commit": "066dd902930582873e7d9372ac0c8483ac700cb9",
      "tree": "f3a0b47419fea78001faea017ba04e630e82fd2e",
      "parents": [
        "fb537087516e34e92e3c030ef2f7fc8b233d7a47"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Dec 19 02:11:59 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 20 01:17:37 2019 +0000"
      },
      "message": "Revert submission 1194828-revert-1191937-art_apex_available-DWXQGTKMAR\n\nReason for revert: relanding with fix\nReverted Changes:\nIc4119368c:Revert submission 1191937-art_apex_available\nIa084976bb:Revert submission 1191937-art_apex_available\nIada86226d:Revert submission 1191937-art_apex_available\nIc76735eac:Revert submission 1191937-art_apex_available\nI1eb30e355:Revert submission 1191937-art_apex_available\nIcaf95d260:Revert submission 1191937-art_apex_available\nIe8bace4be:Revert submission 1191937-art_apex_available\nI8961702cf:Revert submission 1191937-art_apex_available\nI39316f9ef:Revert submission 1191937-art_apex_available\nI522a7e83b:Revert submission 1191937-art_apex_available\nI8b9424976:Revert submission 1191937-art_apex_available\nI48b998629:Revert submission 1191937-art_apex_available\n\nChange-Id: I7a101d39ff63c153675e4e741f9de1a15a778d33\n"
    },
    {
      "commit": "80599a28d1c865de7644a87111f49ee3b30f7c41",
      "tree": "e56dcf999630a752cd955a06c7f4c00b7add290b",
      "parents": [
        "1e88f980a85056165312331746862dc48186bc54"
      ],
      "author": {
        "name": "Joseph Murphy",
        "email": "murj@google.com",
        "time": "Thu Dec 19 01:06:54 2019 +0000"
      },
      "committer": {
        "name": "Joseph Murphy",
        "email": "murj@google.com",
        "time": "Thu Dec 19 01:06:54 2019 +0000"
      },
      "message": "Revert submission 1191937-art_apex_available\n\nOriginal Commit Message:\n\"\"\"\nRename modules that are APEX-only\n\nThe renamed modules are only available for APEXes, but not for the\nplatform. Use the \u003cmodule_name\u003e.\u003capex_name\u003e syntax to correctly install\nthe APEX variant of the modules.\n\"\"\"\n\nReason for revert: Build Cop - Breaks about 15 AOSP targets, with high confidence due to these changes being the only non-robot changes in those builds.\n\nReverted Changes:\nI190ce2d10:Use apex_available property\nI990e0a67e:Use apex_available property\nI0d1295683:Revert \"Avoid duplicated classes for boot dex jars...\nI5fb725403:Find the jar libraries in APEX from the correct pa...\nI322b1efcc:Rename modules that are APEX-only\nIfa2bd0f8f:Use apex_available property\nIac6533177:Use apex_available property\nIe999602c6:Use apex_available property\nI2a3d73397:Use apex_available property\nIc91bcbb9a:Use apex_available property\nIa6c324eed:Use apex_available property\nI964d0125c:Use apex_available property\n\nChange-Id: I1eb30e355cfce316b94cde0dd176002af8d222bb\n"
    },
    {
      "commit": "1e88f980a85056165312331746862dc48186bc54",
      "tree": "0cbeeaf951d6bd637a46f4f51faf80587f3ecc2b",
      "parents": [
        "c9af14e93f6a2691bf8231752d8d7c3e41b14c76"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Dec 02 13:44:06 2019 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Dec 19 00:21:38 2019 +0000"
      },
      "message": "Use apex_available property\n\nUse apex_available property to prevent modules that are only for the ART\napex from being used outside of the APEX.\n\nThis change also fixes the reference to\n$(TARGET_OUT_SHARED_LIBRARIES)/$(lib).so to $(lib).com.android.art.debug\nphony module since the former is never installed to the system partition\ndue to their \u0027apex_available\u0027 settings.\n\nBug: 128708192\nBug: 133140750\nTest: m\nChange-Id: I990e0a67e066d9b1dc221748422a2f44449258da\n"
    },
    {
      "commit": "0a51605ddd81635135463dab08b6f7c21b58ffb0",
      "tree": "820f338333010f4d6e4b543ffea47e9ff7d2dd3f",
      "parents": [
        "e2727154f25e0db9a5bb92af494d8e47b181dfcf"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 14 13:00:44 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 14 13:00:44 2019 +0000"
      },
      "message": "Revert \"Make compiler/optimizing/ symbols hidden.\"\n\nThis reverts commit e2727154f25e0db9a5bb92af494d8e47b181dfcf.\n\nReason for revert: Breaks ASAN tests (ODR violation).\nBug: 142365358\n\nChange-Id: I38103d74a1297256c81d90872b6902ff1e9ef7a4\n"
    },
    {
      "commit": "e2727154f25e0db9a5bb92af494d8e47b181dfcf",
      "tree": "0ddc6eec3ad9508d7eb1f2b941786dd0ed7d2cd8",
      "parents": [
        "c78860b91ae07eed92f86876e7a03132adea6fcd"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 10 10:46:42 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 14 08:22:00 2019 +0000"
      },
      "message": "Make compiler/optimizing/ symbols hidden.\n\nMake symbols in compiler/optimizing hidden by a namespace\nattribute. The unit intrinsic_objects.{h,cc} is excluded as\nit is needed by dex2oat.\n\nAs the symbols are no longer exported, gtests are now linked\nwith the static version of the libartd-compiler library.\n\nlibart-compiler.so size:\n  - before:\n    arm: 2396152\n    arm64: 3345280\n  - after:\n    arm: 2016176 (-371KiB, -15.9%)\n    arm64: 2874480 (-460KiB, -14.1%)\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing --jit\nBug: 142365358\nChange-Id: I1fb04a33351f53f00b389a1642e81a68e40912a8\n"
    },
    {
      "commit": "4345aacf582a5206976d5bed98ab4abd7b9a8c40",
      "tree": "594191df77d214fac994b63761ac25bba257bb40",
      "parents": [
        "6b689ceb63b4fffaf0e617f7d363c841dd29e458"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jul 17 15:51:54 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 19 17:07:13 2019 +0000"
      },
      "message": "Cleanup some usages of include_dirs\n\nThe include_dirs property causes problems when unbundling as they can\ndirectly reference directories inside the runtime module repositories\nwhich will break the unbundled build as those repositories will not be\npresent. While these usages do not cause problems as they are\nreferences within the runtime module repository they need removing so\nthat the build can enforce no usage of runtime module repository paths\nin the include_dirs property.\n\nThis change:\n* Replaces include_dirs with local_include_dirs where possible.\n* Uses libnativehelper provided header libs, this is possible as they\n  have been updated to build against the NDK.\n* Adds headers for disassembler, libdexfile\n* Makes libart_runtime_headers build against NDK.\n\nTest: m checkbuild\nBug: 134379140\nChange-Id: Iaf065caf4b6a2fcf252f6d5da8fff5be97a242ea\n"
    },
    {
      "commit": "74f89afefe21aba666700a1bb2651c58b25e6988",
      "tree": "daba83598cdfc57d6377404fe4c57f34927c1f15",
      "parents": [
        "15332431202653927f1155d636db52e55e509fd3"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Jul 12 15:27:50 2019 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Jul 18 07:11:25 2019 +0100"
      },
      "message": "Remove Export_static_lib_headers from codegen\n\nIt is not necessary to export headers from static libraries included\nusing whole_static_libs as that automatically exports the headers.\n\nTest: m checkbuild\nBug: 134379140\nChange-Id: Iea85dedf91f404739d12b3a7971cd87c02e1ab6d\nExempt-From-Owner-Approval: needed to fix build failure\n"
    },
    {
      "commit": "15332431202653927f1155d636db52e55e509fd3",
      "tree": "d5979ac7665ee940576f595ef6a89f4916c2a0bc",
      "parents": [
        "b08d5db0bebd9a17b6e66cb98aeedcc744f6d1eb"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Jul 12 15:27:50 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 18 05:51:08 2019 +0000"
      },
      "message": "Remove use of external/vixl/src in include_dirs\n\nThe include_dirs property is deprecated and no longer needed as the\nlibvixl[d] libraries export their include dirs directly.\n\nAdded support to the codegen extensions to allow header include dirs\nfrom libvixl[d] to be re-exported from libart-compiler[d] as the\nlatter\u0027s exported headers include vixl exported headers.\n\nTest: m checkbuild\nBug: 134379140\nChange-Id: I6ad47b093cc25fc1486109fced1c2a238e75ff0d\n"
    },
    {
      "commit": "3fae12960c2d411dff450fce95c096af0e8d74de",
      "tree": "5cc26dc33db8f391b3c7ab1fe24546b17f33d389",
      "parents": [
        "b7c640d364d32b79cb52d04750b063667a9a0c86"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 07 11:26:25 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jun 11 08:58:34 2019 +0000"
      },
      "message": "Move IntrusiveForwardList\u003c\u003e to libartbase.\n\nIt\u0027s generally useful, not just for the compiler.\n\nTest: m test-art-host-gtest\nChange-Id: I3ca742d93a0bca961d1b8b8209356747d2de08a0\n"
    },
    {
      "commit": "0dc93b1ba94460b0ae126dd4db335261165c74b7",
      "tree": "78b3afa099dce52a1eb39d6a9788d610b14a1f6b",
      "parents": [
        "9b81ac36e161fd993eab17b43b93a96e8c63b5cc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 15 10:30:22 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 17 20:40:21 2019 +0000"
      },
      "message": "ART: Run bpfmt over ART\u0027s blueprint files\n\nTest: mmma art\nChange-Id: Ic85df4770c12ec02836c877b243d4aec234aaada\n"
    },
    {
      "commit": "fc8e7598fe013bebff210b48347daf80316ac0a4",
      "tree": "37b6594c1f4e7e40bbdfcee88560a688db868620",
      "parents": [
        "8f88207206fe39f6dcb4e76e24716c81566f26cc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 09 11:46:11 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 09 20:42:19 2019 +0000"
      },
      "message": "art: remove unnecessary references to external/zlib.\n\nBug: https://issuetracker.google.com/115695768\nTest: builds\nChange-Id: If28672497d5702e084ac033eceaeb31a18eb292e\n"
    },
    {
      "commit": "b9c29f625bc27968d80f9eafa988dc14af0a1c28",
      "tree": "10276cd3fa756646b41cb50cf396476f2f8df1d3",
      "parents": [
        "bcd99bed472d228a1a0a65adc606346d7daf6b93"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 20 14:22:51 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 25 10:27:28 2019 +0000"
      },
      "message": "Hide conscrypt package classes for app AOT compilation.\n\nSince app AOT compilation is usually done without conscrypt\non the boot class path, classes defined by app class loader\nin conscrypt packages could be resolved differently, i.e.\nfrom conscrypt, at runtime. Reject such definitions during\nAOT compilation to ensure correct runtime behavior.\n\nAdd a test that when compiling the conscrypt module as an\napp, we cannot resolve any class defined in its dex files.\n\nTest: module_exclusion_test\nBug: 122937705\nChange-Id: I1fcb4c21937f59772206ee50b688a75053231bc0\n"
    },
    {
      "commit": "2faab0064bccdf06a454ba5fc37f2cfeceab78bc",
      "tree": "bc51a211068019d77e7739164adf5be5c6333b7b",
      "parents": [
        "5f1465ff689eccbb1b6d15160d1a3700793956da"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 12 16:35:48 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Mar 20 15:20:54 2019 +0000"
      },
      "message": "Create libelffile library for ELF file manipulation.\n\nMove some of our tooling to library to make it reusable.\n\nRemove MIPS support from the ELF builder.  This is slightly\neasier than making it independent of the runtime.\n\nBug: 110133331\nTest: test.py -b --host\nChange-Id: I93343808d0e27ee8e1117e713a2503e8179fc245\n"
    },
    {
      "commit": "327497e303903f300b01f77f2259fd5b61238ee3",
      "tree": "3f714d2d2ee7d9b6c0ecf71a10c157d4952e5758",
      "parents": [
        "ef764ad3e6d7f07ea9e32642dc3e163bb4eb44fb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 04 12:53:20 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 11 06:59:41 2019 +0000"
      },
      "message": "Move CompilerDriver to dex2oat/.\n\nAlso DexToDexCompiler, QuickCompilerCallbacks and tests.\n\naosp_taimen-userdebug:\n - before:\n   lib64/libart-compiler.so: 3112344\n   lib/libart-compiler.so: 2312908\n   bin/dex2oat: 563176\n - after:\n   lib64/libart-compiler.so: 2986720 (-123KiB)\n   lib/libart-compiler.so: 2219852 (-91KiB)\n   bin/dex2oat: 635832 (+71KiB)\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing --jit\nChange-Id: I36e63b83dff1d5c731d05de27d3663cfc81de6ad\n"
    },
    {
      "commit": "815d5e5304a5b57db64d6829813a14e464d5c55f",
      "tree": "7fac4adffcda366f4ee252e233828ebf2361f2b0",
      "parents": [
        "b1b2ca97651b1993e0a00a4543209419afbc6e64"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 04 10:18:31 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 05 12:37:30 2019 +0000"
      },
      "message": "Refactor compiler tests around CompilerDriver.\n\nIntroduce CommonCompilerDriverTest and inherit that in tests\nthat need to use CompilerDriver. This is in preparation for\nmoving the CompilerDriver to dex2oat/.\n\nTest: m test-art-host-gtest\nChange-Id: I46cf0bc1df4327569eef5526eeab0781473173a1\n"
    },
    {
      "commit": "119733d87242414100df7b9eedb6d1672a03ead6",
      "tree": "19ba75bd42d3c94a4de0684ae66f4078da1546a6",
      "parents": [
        "8a64e773d4d1221166c6a8206315b450e448705a"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jan 30 15:14:41 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Jan 31 15:39:55 2019 +0000"
      },
      "message": "Revert \"Revert \"ART: introduce PALette abstraction layer\"\"\n\nThis reverts commit e6e01a0a00de80704ccb21c48d5d8bdee4470b77.\n\nBug:  122824298\nTest: art/test/testrunner/run_build_test_target.py -j50 art-test-javac\nTest: m out/target/common/obj/PACKAGING/hiddenapi-stub-flags.txt\nTest: frameworks/rs/build_rs.py\nChange-Id: If7b9ddca3daa80b75b3541abd283bf47d5b81118\n"
    },
    {
      "commit": "e6e01a0a00de80704ccb21c48d5d8bdee4470b77",
      "tree": "8f9cc651764686140accaadcfb8f77bf7572c24b",
      "parents": [
        "4b9d00aca9b025b545c9633b4605334c22fc4d2d"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jan 30 14:02:30 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jan 30 14:02:30 2019 +0000"
      },
      "message": "Revert \"ART: introduce PALette abstraction layer\"\n\nThis reverts commit 4b9d00aca9b025b545c9633b4605334c22fc4d2d.\n\nReason for revert: breaks renderscript mac and run_host_tests in master.\n\nChange-Id: I6024894a384c65f3e7d81b9c5bba8ebe8ce1b420\n"
    },
    {
      "commit": "4b9d00aca9b025b545c9633b4605334c22fc4d2d",
      "tree": "7984bf247f908d145b7c6b48df99f3f0a80ae148",
      "parents": [
        "4ee4561f2153f3b0bc3be2e781488a97c73ca58e"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Jan 03 17:04:02 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jan 30 09:00:27 2019 +0000"
      },
      "message": "ART: introduce PALette abstraction layer\n\nThis change decouples direct dependencies on system libraries.\n\nBug: 122824298\nTest: art/test.py --host --64\nTest: art/test.py --target -j8\nTest: m -j100 \u0026 flashall -w \u0026 device boots\nTest: art/build/apex/runtests.sh\nChange-Id: Iae927ed9aaa228a941cd444cef04e6ec53955299\n"
    },
    {
      "commit": "b56e8353020acda1a8285daa11c69f57060cd015",
      "tree": "cb570cb734aa7d51761985639c42b77f9b8f97d0",
      "parents": [
        "d0834e4a44440a8faf199024a030731ad26aae68",
        "12dd9aee74a588bf31f151cebba930849b4baceb"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Nov 14 14:13:52 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 14 14:13:52 2018 +0000"
      },
      "message": "Merge \"Use unified libvixl(d) instead of per-supported-arch libvixl(d)-arm(64).\""
    },
    {
      "commit": "435516229e5f511d1ac4498da58372c8fece35b7",
      "tree": "e510804ebf5b8f1786a7c377e1cef9fb5bb11d90",
      "parents": [
        "e5ed5bafc97e65e8d2b60ddaca48754a50ca5692"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Fri Nov 09 15:14:54 2018 +0000"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Tue Nov 13 15:15:37 2018 +0000"
      },
      "message": "Revert^2 \"Link lzma and lz4 compression libs statically into libartbase and use that\"\n\nThis reverts commit 9960cbc0ff98978a9b32f14ae77d8ddb3c6908d9.\n\nReason for revert: This is the same as aosp/815019 except version_script is\nexcluded on Darwin. I think it should pass the mac targets, but haven\u0027t\ntested.\n\nTest: art/tools/buildbot-build.sh {--host,--target}\nTest: art/test/testrunner/run_build_test_target.py art-asan (not on Darwin)\nTest: python frameworks/rs/build_rs.py (on Darwin, thanks Orion!)\nBug: 118374951\nChange-Id: I7a362381f6d891c6dc1304e5fcf6f8851aa67d7c\n"
    },
    {
      "commit": "dd121f637509a50d6744a0ad596f5dc627e0c60a",
      "tree": "1e20c636cd40a5a87cae1cd0d0b55940c8111a20",
      "parents": [
        "fe59955fc41e277bf1c60378202ba785abb1e4a8"
      ],
      "author": {
        "name": "Shalini Salomi Bodapati",
        "email": "shalini.salomi.bodapati@intel.com",
        "time": "Fri Oct 26 15:03:53 2018 +0530"
      },
      "committer": {
        "name": "Shalini Salomi Bodapati",
        "email": "shalini.salomi.bodapati@intel.com",
        "time": "Thu Nov 08 14:50:29 2018 +0530"
      },
      "message": "Emit bit manipulation instructions for x86 and x86_64\n\nThis patch performs instruction simplification to\ngenerate instructions andn, blsmsk and blsr on\ncpus that have avx2.\n\nTest: test.py --host --64, test-art-host-gtest\nChange-Id: Ie41a1b99ac2980f1e9f6a831a7d639bc3e248f0f\nSigned-off-by: Shalini Salomi Bodapati \u003cshalini.salomi.bodapati@intel.com\u003e\n"
    },
    {
      "commit": "12dd9aee74a588bf31f151cebba930849b4baceb",
      "tree": "9d04404a17b4f3e5e9e2b1150fc575a74ecd37c2",
      "parents": [
        "5725e7c4aab576384649de60557dc1f52eb21b9f"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 06 13:32:06 2018 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 06 14:31:16 2018 +0000"
      },
      "message": "Use unified libvixl(d) instead of per-supported-arch libvixl(d)-arm(64).\n\nUsing a unified libvixl(s) saves space by sharing code that was common\nto libvixl(d)-arm and libvixl(d)-arm64 and also addresses multiple\ndefinitions issues that would cause ODR violations.\n\nTest: 32-bit-only device boot test\nTest: 32/64-bit device boot test\nChange-Id: I1d67c43897e08bc0f5743eb038fe574ce2fb54f3\n"
    },
    {
      "commit": "65ed42a3d3a7bf1a42e759ed53c16b179f54813a",
      "tree": "77930ed648604f50fe6a46059f4cc659b443ddb7",
      "parents": [
        "8a94003e66f337fe84870ff68d3f6f234555cf06"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 30 12:33:04 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 30 12:33:04 2018 +0000"
      },
      "message": "Revert \"Link compression libs statically into libartbase and use those everywhere.\"\n\nThis reverts commit 8a94003e66f337fe84870ff68d3f6f234555cf06.\n\nReason for revert: Breaks asan and dex2oats.\n\nChange-Id: Idea760bbd2b25078ecd1ee5a39da94f6b74432a7\nbug: 118374951\n"
    },
    {
      "commit": "8a94003e66f337fe84870ff68d3f6f234555cf06",
      "tree": "0271729b2571c969238786d21a45ce05120b96e0",
      "parents": [
        "ce2a00daa92670a4fc01ef59fdbc3769a846f69c"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Oct 24 15:02:55 2018 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Oct 29 21:20:43 2018 +0000"
      },
      "message": "Link compression libs statically into libartbase and use those everywhere.\n\nAll targets using these compression libs already use libartbase. This grows\nlibartbase VM size by 314K on 64 bit, but only these targets pack on the\nextra the bloat of liblz4 (84K) and liblzma (174K): dexanalyze, dexdump2,\ndexlayout(d), dexlist. libbacktrace and libunwindstack gain liblz4 only.\n\nOn the other hand this gets rid of static instances in several shared libs.\n\nTest: mmma art\nTest: art/test.py --host --64 --optimizing\nTest: env ART_TEST_NO_SYNC\u003dtrue make -j4 test-art-target-gtest\nTest: art/test/testrunner/testrunner.py -j4 --target --64 --optimizing\nBug: 118374951\nChange-Id: Ida103546d2d16ef892d09e9ca3a0ae5e3b42a541\n"
    },
    {
      "commit": "ec5ed06b59a3b85e7f98ffc50e0539e5a77d1ba1",
      "tree": "c09b7debef2c19d2ea79488d9d3357b49020da26",
      "parents": [
        "9c568f10f68cdbeb285e41cb4538c06f5e90c1b2"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 26 16:20:02 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 06 14:00:25 2018 -0700"
      },
      "message": "ART: Refactor static include list\n\nCreate default objects. This allows chaining the sets, and also\ncan separate between host and target.\n\nTest: mmma art\nChange-Id: I68a80068d442b20c6430e9e576df7f74375e7e49\n"
    },
    {
      "commit": "154c57fc97e5fa343d97b5e7c6bb993ecb4e6e34",
      "tree": "caa390f67ad733872fda06e46fc9f5d516f4c9c2",
      "parents": [
        "2449d6d006dcb685d3b386edcf624e67ef37e12c"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Jun 03 12:00:27 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jul 17 14:45:51 2018 +0100"
      },
      "message": "Compress mini-debug-info in small chunks.\n\nCompress the mini-debug-info in small independent parts.\nThis still results in standard compressed data stream.\nHowever, by dividing into chunks, the compressed data\ncan be random accessed - that is, it makes it possible\nto decompressed only the data that is needed.\n\nThis increases size of .oat files by 1.2%.\n\nBug: 110133331\nTest: test.py --host -b -t 137\nChange-Id: I9d1d4f1971b3c072d45ca4289f8c15f44da4036a\n"
    },
    {
      "commit": "cdfc942e60032622b5a4379d0dd5ca914ba6393a",
      "tree": "823e767f6eba6fb2831f69753936bc0c35eea84e",
      "parents": [
        "ec1f1a91328f44d93cfc16e39160dbdfce2f7b9a",
        "f5f56c791c5853f43a2a9781c98d5776c7dd5a59"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Jul 13 16:35:30 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 13 16:35:30 2018 +0000"
      },
      "message": "Merge \"Revert \"Emit vector mulitply and accumulate instructions for x86.\"\""
    },
    {
      "commit": "f5f56c791c5853f43a2a9781c98d5776c7dd5a59",
      "tree": "ed8270e3a5d0161ebe5bec0606a24cd5e3123e59",
      "parents": [
        "61908880e6565acfadbafe93fa64de000014f1a6"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Jul 13 00:05:27 2018 +0000"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Jul 13 00:05:27 2018 +0000"
      },
      "message": "Revert \"Emit vector mulitply and accumulate instructions for x86.\"\n\nThis reverts commit 61908880e6565acfadbafe93fa64de000014f1a6.\n\nReason for revert: By failing to round multiply results, it does not follow Java rounding rules.\n\nChange-Id: Ic0ef08691bef266c9f8d91973e596e09ff3307c6\n"
    },
    {
      "commit": "ad78fb294dbf8bae52835f98cc3e38a6f217781f",
      "tree": "7c84bd96a90ed96c12a65a0390c171fa79867fd3",
      "parents": [
        "b3df69b26ae461aeb5c990faa9bfa4bf17574234",
        "61908880e6565acfadbafe93fa64de000014f1a6"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 02 12:33:58 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 02 12:33:58 2018 +0000"
      },
      "message": "Merge \"Emit vector mulitply and accumulate instructions for x86.\""
    },
    {
      "commit": "61908880e6565acfadbafe93fa64de000014f1a6",
      "tree": "40b535db9175f3d959364d5bc30eaab4e2c4b4c4",
      "parents": [
        "b5271dd44a30f498689e503340d3c8d01bf31f07"
      ],
      "author": {
        "name": "Gupta Kumar, Sanjiv",
        "email": "sanjiv.kumar.gupta@intel.com",
        "time": "Fri Jun 29 13:06:35 2018 +0530"
      },
      "committer": {
        "name": "Gupta Kumar, Sanjiv",
        "email": "sanjiv.kumar.gupta@intel.com",
        "time": "Mon Jul 02 15:37:38 2018 +0530"
      },
      "message": "Emit vector mulitply and accumulate instructions for x86.\n\nThis patch adds a new cpu vaiant named kabylake and performs\ninstruction simplification to generate VectorMulitplyAccumulate.\n\nTest: ./test.py --host --64\n\nChange-Id: Ie6cc882dadf1322dd4d3ae49bfdb600b0c447765\nSigned-off-by: Gupta Kumar, Sanjiv \u003csanjiv.kumar.gupta@intel.com\u003e\n"
    },
    {
      "commit": "15f95b103731a4386c784ef3ca79c47e68e27719",
      "tree": "12a257e5889029543d960c5578c20d2600824bb0",
      "parents": [
        "b5271dd44a30f498689e503340d3c8d01bf31f07"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Jun 29 15:30:36 2018 +0100"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Jun 29 19:29:53 2018 +0100"
      },
      "message": "ART: Fix HSelectGenerator for instructions which can throw.\n\nMake sure that HSelectGenerator doesn\u0027t hoist instructions which\ncan throw. Currently this doesn\u0027t happen due to\nSideEffect::CanTriggerGC however this side effect is to be removed\nfor some instructions.\n\nTest: select_generator_test.\nTest: test-art-host, test-art-target.\n\nChange-Id: I996f6cbdcee4987a36079d387a7b74b326881ab6\n"
    },
    {
      "commit": "eebb821b1adaf2db7662fc1c3ff4e9fcfe59a694",
      "tree": "a3d3cf5f8c20d03fccdc0808537904da63e74938",
      "parents": [
        "7e56bd41cde4e489a11050d9e340bf8b5692d9e8"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jun 05 14:57:24 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 21 16:12:28 2018 +0100"
      },
      "message": "Implement Integer.valueOf() intrinsic for PIC.\n\nAnd fix the intrinsic for JIT even in case when someone\nmesses up the IntegerCache using reflection. Two cases are\nexposed with a regression test (one that previously failed\nrandomly and one that failed 100%) but other crashes were\npossible; for example, we would need a read barrier for\narray reads when elements are not guaranteed to be in the\nboot image.\n\nThe new approach loads references only from the boot image\nlive objects array which cannot be touched by reflection.\nThe referenced objects and IntegerCache.cache are exposed\nand can lead to weird behavior but not crashes.\n\nOn x86, the pc_relative_fixups_86 actually checks the cache\nan additional time but discrepancies between this check and\nthe location building at the beginning of codegen should be\nOK as the HIsX86ComputeBaseMethodAddress should be added\nfor PIC regardless of whether pc_relative_fixups_86 thinks\nthe method is intrinsified or not.\n\nTest: 717-integer-value-of\nTest: Pixel 2 XL boots.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing --pictest --npictest\nTest: testrunner.py --host --jit\nTest: testrunner.py --target --optimizing --pictest --npictest\nTest: testrunner.py --target --jit\nBug: 71526895\nChange-Id: I89b3245a62aba22980c86a99e2af480bfa250af1\n"
    },
    {
      "commit": "1f010164bea4714e9f653c52e8948c5d5305040b",
      "tree": "e69b2c3f4d2645d4097655f8914325945fe5dbbd",
      "parents": [
        "a7d37cf735f05cfc3a3585a5c44eb65d8a279874"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue May 15 08:59:32 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed May 16 13:01:34 2018 -0700"
      },
      "message": "Move ArtDexFileLoader to libdexfile\n\nAdds a dependency from libdexfile on libartbase, but allows the use of\nMemMap loaders, etc.\n\nBug: 78652467\nTest: make -j 40 checkbuild\nChange-Id: I15cf33893ca9192050762f8350a3cc1e39f88dc5\n"
    },
    {
      "commit": "82d046e7c9daad9b706cbec7df7025c5a4ef9163",
      "tree": "92b7deea052015dd64bea6fc72d76c67f69e0e5d",
      "parents": [
        "5a87e19e4bf1b6719c2aad3effde1b38d2c3085c"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Apr 23 08:14:19 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Apr 26 12:37:04 2018 -0700"
      },
      "message": "Add a profiling library\n\nMove profile_compilation_info to a separate library.  Another step\ntowards building many of our tools without libart[d].\n\nBug: 78459333\nTest: make -j 50 checkbuild\nChange-Id: Ib281d3d1fde6d06ebb429c5d39d62a7038af0f44\n"
    },
    {
      "commit": "42d5805b30b095eb1abd39d99ed71d9fa2b7c03b",
      "tree": "53373e5aa0f47ee4e9ebfff54f97e90c44a5b6cd",
      "parents": [
        "cee49280366af9aa35e889e90d0ae0e90b453a22"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Wed Apr 18 22:59:36 2018 -0700"
      },
      "committer": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Thu Apr 19 06:05:14 2018 +0000"
      },
      "message": "Separate out PGO profile files per arch\n\nBug: http://b/78259283\n\nSpecify separate PGO profiles for AArch64/ARM and x86_64/x86.  This\nallows per-arch profile collection that exercises ART\u0027s code generation\nfor the corresponding 32-bit and 64-bit ABIs.\n\nTest: Build Sailfish and x86_64 targets and verify that corresponding\nprofile files are read.\n\nChange-Id: Iad3a657411676952de5ed446db4dd4e754ea9e11\n"
    },
    {
      "commit": "6d66fcf87dee9d2207ea745969b1f89836b0f8c5",
      "tree": "0f13a17dff10d96c646c2ff65d7179ef97c170c0",
      "parents": [
        "7a69505c2f65aef8f016891456c35475f8264d46"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 12 13:15:27 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 12 14:29:01 2018 +0100"
      },
      "message": "Move RelativePatcher from libart-compiler.so to dex2oat.\n\nFor AOSP master, aosp_taimen-userdebug:\n - before:\n   /system/lib/libart-compiler.so: 2084640\n   /system/lib64/libart-compiler.so: 2921496\n   /bin/dex2oat: 528372\n - after:\n   /system/lib/libart-compiler.so: 2059264 (-24.8KiB)\n   /system/lib64/libart-compiler.so: 2920856 (-640B)\n   /bin/dex2oat: 550056 (+21.2KiB)\n\nTest: m\nTest: m test-art-host-gtest\nBug: 77951326\nChange-Id: I8687ab9e00049acc46a6d229e5121b36d5379737\n"
    },
    {
      "commit": "2a93c7644d4300a3b0fc532c72bc9aa935dd3551",
      "tree": "f6752bf7b43996bcd7f04671d849f681c5fb9eb5",
      "parents": [
        "f069d359c31f91abd7a74cce6627decd54fad4d1",
        "121f2038e9c8afe12f8f4096b7c84a167e7adea5"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Mar 26 23:31:19 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 26 23:31:19 2018 +0000"
      },
      "message": "Merge \"ART: Implement scalar loop unrolling.\""
    },
    {
      "commit": "121f2038e9c8afe12f8f4096b7c84a167e7adea5",
      "tree": "655e2bba77ac34208c54b290286104b124003e59",
      "parents": [
        "f9635aab3f2db9b1b13184e8146530a53246b82c"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Mon Oct 23 19:19:06 2017 +0100"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Mon Mar 26 19:46:23 2018 +0100"
      },
      "message": "ART: Implement scalar loop unrolling.\n\nImplement scalar loop unrolling for small loops\n(on arm64) with known trip count to reduce loop check\nand branch penalty and to provide more opportunities\nfor instruction scheduling.\n\nNote: this functionality is turned off by default now.\n\nTest: cloner_test.cc\nTest: test-art-target, test-art-host\n\nChange-Id: Ic27fd8fb0bc0d7b69251252da37b8b510bc30acc\n"
    },
    {
      "commit": "312f3b2fd0094c028a7d243b116947a35a745806",
      "tree": "3d7ec049ded98c489098c87250c75e3f711f8290",
      "parents": [
        "0a3d5eb2ff9e70fa5785638da938439835d0337e"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Mar 19 08:39:26 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Mar 19 11:02:48 2018 -0700"
      },
      "message": "Move some remaining dex utilities\n\nThere were several utilities related to building/walking/testing dex\nfiles that were not in libdexfile.  This change consolidates these.\n\nBug: 22322814\nTest: make -j 50 test-art-host\nChange-Id: Id76e9179d03b8ec7d67f7e0f267121f54f0ec2e0\n"
    },
    {
      "commit": "1f9df4ae66667d3c0b62caace7f2f4374e104159",
      "tree": "96b92f5b5c68f0ca64e62bf2ce74c0abe22901f1",
      "parents": [
        "45d857bad49223c9f981800dfea7914e95f397e7",
        "1d894d90634b3d685a5a1143dd84f0272b4a7dcd"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Mar 08 02:39:29 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 08 02:39:29 2018 +0000"
      },
      "message": "Merge \"Enable ThinLTO for dex2oat\""
    },
    {
      "commit": "b69d2d3c3af7a7a62efb38d04dec878ea9b0b43c",
      "tree": "4220e5b7475b5c53b19609ef46d1d081bf8357cb",
      "parents": [
        "c758875461cca47d1b342c3c56a218a704b04365"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Feb 21 13:37:17 2018 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Feb 21 22:42:13 2018 +0000"
      },
      "message": "Remove generate-operator-out.py symlinks\n\nRewrite the operator out step to use a python_host_binary instead.\nTest: mma -j50\n\nChange-Id: I1503ad9851bf6d7bae8964f7cb91ba7f19b660ca\n"
    },
    {
      "commit": "1d894d90634b3d685a5a1143dd84f0272b4a7dcd",
      "tree": "aee159e79816473f774863638693639e673d762d",
      "parents": [
        "2b7e1c6d04930361bafbd4959966341fa7c4a097"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Fri Jan 19 22:01:14 2018 -0800"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Fri Feb 16 21:20:46 2018 +0800"
      },
      "message": "Enable ThinLTO for dex2oat\n\nThis helps reducing binary size as well as improve performance of\ndex2oat.\n\nOn Marlin (lower clocked cores)\n  With PGO\n  dex2oat binary + libraries size:\n   - no-lto:   9.90MB\n   - thin-lto: 9.81MB\n\n  dex2oat run time for top 25 apps (with speed filter):\n    Average case: -2.83%\n    Best case   : -4.65%\n    Worst case  :  0.25%, likely noise\n\n  Without PGO\n  dex2oat binary + libraries size:\n   - no-lto:   9.67MB\n   - thin-lto: 9.60MB\n\n  dex2oat run time for top 25 apps (with speed filter):\n    Average case : -0.96%\n    Best case    : -2.30%\n    Worst case   :  0.52%, likely noise\n\nTest: Benchmark on Marlin (low-clock cores)\nBug: 62839002\nChange-Id: Iad39eae4c222b753dd2dab949a928151ea13e630\n"
    },
    {
      "commit": "fcbe15ce26930c0c4bb33998fc2abbe4f8770dbe",
      "tree": "6513a2eaf1251e93578916b5171dc42984de7da3",
      "parents": [
        "b40fa7c33075292beeb6840ac679ffd08fd1f719"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Feb 15 09:41:13 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Feb 15 15:15:13 2018 -0800"
      },
      "message": "Build debug library libdexfiled\n\nAdd a debug version of libdexfile for use when CHECKs, etc., are\nenabled.\n\nBug: 22322814\nTest: make -j 50 checkbuild\nChange-Id: I263138611bcdde9dbc8f619bcb2a0a6d3a09fbf6\n"
    },
    {
      "commit": "0225f8e2939a9340cb7dcebfcfe7996a2bd9bce9",
      "tree": "fd32362dff4ecdc8ff8b0d800a1b46fb0d9d0104",
      "parents": [
        "c7e546ff3963a1d51b1f100d308db735bd19f736"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Jan 31 08:52:24 2018 +0000"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Jan 31 01:24:53 2018 -0800"
      },
      "message": "Revert \"Revert \"Make libdexfile build independent of runtime dir\"\"\n\nThis reverts commit 787784f9effb126b5d0d3dc97d544c4a477b5daf.\n\nReason for revert: Bot configuration issue.\n\nChange-Id: I6a10bb4a9571f89c7e4dd095f9157e830a44e2de\nBug: 22322814\nTest: make -j 50 checkbuild\n"
    },
    {
      "commit": "787784f9effb126b5d0d3dc97d544c4a477b5daf",
      "tree": "1ff6d9fd284a4dd2a337165dff20e71137997c9d",
      "parents": [
        "b40b7e73469339a6b667b4a2e2b8690112a74dc9"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Jan 30 18:48:51 2018 +0000"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Jan 30 18:48:51 2018 +0000"
      },
      "message": "Revert \"Make libdexfile build independent of runtime dir\"\n\nThis reverts commit b40b7e73469339a6b667b4a2e2b8690112a74dc9.\n\nReason for revert: on device libdexfile.so missing\n\nChange-Id: I9bd61a98bef870400580e8c991cb061d3f57fa72\n"
    },
    {
      "commit": "b40b7e73469339a6b667b4a2e2b8690112a74dc9",
      "tree": "7e8a34d9c7894c4c946f674f19f0a0a512b95184",
      "parents": [
        "9690ad794b324ba54e936608881ac0f62538b97a"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Jan 25 17:11:07 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Jan 30 01:17:58 2018 -0800"
      },
      "message": "Make libdexfile build independent of runtime dir\n\nRemove libdexfile\u0027s dependency on utils.cc and move utf.cc into\n/dex.  Remove libdexfile\u0027s constituent sources from libart and\nuse libdexfile wherever libart is. Also remove some ART-specific\ninterfaces.  Libdexfile\u0027s tests remain to be converted, plus\nmoving the files to a new directory peer to runtime/.\n\nBug: 22322814\nTest: make -j 50 test-art-host\nChange-Id: Ifaf695216e4a0e43d3aa377984d933f7a2a243c2\n"
    },
    {
      "commit": "7b4c09a39fd1b43995aa6d68958113463bc5b82b",
      "tree": "2fad44f5bbb1234bb0cc07312dac252deeca2edb",
      "parents": [
        "c7ae623f113484f42facd560756b13f34f7eab68",
        "7f4aff6705f46f411874b5ca8c4856b8ed5bfb13"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Jan 22 21:04:20 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 22 21:04:20 2018 +0000"
      },
      "message": "Merge \"ART: Implement SuperblockCloner.\""
    },
    {
      "commit": "c89013cd10cf508cab8f36e8b8925cd0b0464dac",
      "tree": "757d1a93851360d5709c39c4ebc1c0ab2cba5a5a",
      "parents": [
        "ad643b01de3f1152badfb12edb8469d40843d1e7"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Thu Jan 18 12:35:40 2018 -0800"
      },
      "committer": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Thu Jan 18 16:17:25 2018 -0800"
      },
      "message": "Update PGO configuration\n\nBug: http://b/63768402\n\n- Remove the \u0027enable_profile_use\u0027 property.  This is a no-op change with\nhttps://android-review.googlesource.com/c/591562 - PGO profile use is\nonly enabled if the profile file exists.  We don\u0027t have one yet.\n- Move the profile file location to an art/ subdirectory so it doesn\u0027t\nconflict with profiles for other projects\n\nTest: Build AOSP\nChange-Id: Ifb7cded58a786dc5b1024a4c2c770873fcf4413c\n"
    },
    {
      "commit": "02f6ed6bf01e1d87d8af111359f8553720bf8a92",
      "tree": "6b5e88f3c87715eb14a148081ce9793b7cf0825b",
      "parents": [
        "ab89892e3098d4d9ec186c6dd22d903c5835437c"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Thu Jan 04 10:52:42 2018 -0800"
      },
      "committer": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Fri Jan 12 08:19:33 2018 -0800"
      },
      "message": "Setup PGO for dex2oat and related libraries\n\nBug: http://b/63768402\n\nSetup PGO for libart-compiler.so, dexlayout.so, and the dex2oat binary.\nThe setup for vixl is done in an accompanying CL.  An instrumented copy\nof dex2oat can be produced for the device using:\n  ANDROID_PGO_INSTRUMENT\u003ddex2oat make\n\nProfiles for the instrumented libraries can be produced by running them\non a representative workload.\n\nCurrently, profile use is disabled (via enable_profile_use: false).\nThis can be turned on once a profile is checked in.\n\nTest: Build with ANDROID_PGO_INSTRUMENT\u003ddex2oat and verify profiles get\ngenerated.\n\nChange-Id: Iea056ebd4a9fe8c805ffc2211394d6e1d726264c\n"
    },
    {
      "commit": "7f4aff6705f46f411874b5ca8c4856b8ed5bfb13",
      "tree": "59947502e43f04c23d212b6ea0e8dca3d91549e3",
      "parents": [
        "30f54cc45bd338f9d9079786dae96ea13ab9f163"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Wed Jun 21 17:02:18 2017 +0100"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Tue Jan 09 13:52:59 2018 +0000"
      },
      "message": "ART: Implement SuperblockCloner.\n\nSuperblockCloner provides a feature of cloning subgraphs in a\nsmart, high level way without fine grain manipulation with IR;\ndata flow and graph properties are resolved/adjusted automatically.\nThe clone transformation is defined by specifying a set of basic\nblocks to copy and a set of rules how to treat edges, remap their\nsuccessors. By using this approach such optimizations as Branch\nTarget Expansion, Loop Peeling, Loop Unrolling can be implemented.\n\nTest: superblock_cloner_test.cc.\nChange-Id: Ibeede38195376ca35f44ba9015491e50b3a5b87e\n"
    },
    {
      "commit": "5e399b8715f3cb153ddb619a7c47515583799db3",
      "tree": "ff88905149497482b079ab4cb8c2caaec05cc498",
      "parents": [
        "ffc3be6b4a58c1ed172a5c890f8b8583a416998f"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Thu Dec 21 14:28:35 2017 +0000"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Thu Dec 21 14:57:31 2017 +0000"
      },
      "message": "ART: Rename cloner_test.\n\nRename cloner_test to superblock_cloner_test to be\nconsistent with the test naming conventioni as a new\nSuperblockCloner file is arriving.\n\nTest: superblock_cloner_test.cc.\nChange-Id: I066a20b4599de6c59b83676bb11295135a512791\n"
    },
    {
      "commit": "c654816053ae07fb1f129d705e94b76e59f37454",
      "tree": "867d678ab3f6e0f4af70da98e935aafae0c6126c",
      "parents": [
        "8f1a586fd4ac9796e75b2b18638e39b33ad6e9a2"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Dec 08 12:15:22 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Dec 08 12:22:21 2017 -0800"
      },
      "message": "ART: Change SCOPED_TRACE implementation\n\nMove to a LOG-like usage pattern. This improves usability in the\npresence of lock annotations.\n\nDemonstrate in the JIT compiler, where a lambda would require\na REQUIRES_SHARED annotation.\n\nTest: m\nTest: manual\nChange-Id: I9da2bfb29ed11660dbeb6f114a3d6c7ffef3a26d\n"
    },
    {
      "commit": "cd09e1f4f9902b82fa62cb2da984ea499e3b2d70",
      "tree": "535f7f75849af30b67c560804125ead95909d72b",
      "parents": [
        "72a3f1da3a300b486626b066e33280108b5ce994"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 24 15:02:40 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 27 19:02:34 2017 +0000"
      },
      "message": "Fix stats reporting over 100% methods compiled.\n\nAdd statistics for intrinsic and native stub compilation\nand JIT failing to allocate memory for committing the\ncode. Clean up recording of compilation statistics.\n\nNew statistics when building aosp_taimen-userdebug boot\nimage with --dump-stats:\n  Attempted compilation of 94304 methods: 99.99% (94295) compiled.\n  OptStat#AttemptBytecodeCompilation: 89487\n  OptStat#AttemptIntrinsicCompilation: 160\n  OptStat#CompiledNativeStub: 4733\n  OptStat#CompiledIntrinsic: 84\n  OptStat#CompiledBytecode: 89478\n  ...\nwhere 94304\u003d89487+4733+84 and 94295\u003d89478+4733+84.\n\nTest: testrunner.py -b --host --optimizing\nTest: Manually inspect output of building boot image\n      with --dump-stats.\nBug: 69627511\nChange-Id: I15eb2b062a96f09a7721948bcc77b83ee4f18efd\n"
    },
    {
      "commit": "71bb96894228c1e2408ccaea0c42159b5f550336",
      "tree": "6c5e55b147460cb5c614648b11b2f75f06e2d3cc",
      "parents": [
        "6d95c80a221358b4afff4aabf62c7c7dd9de9163",
        "f3c52b42a035902245d00a619fed0275afb063d2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 22 21:14:25 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 22 21:14:25 2017 +0000"
      },
      "message": "Merge \"Fill Class and String .bss slots in runtime.\""
    },
    {
      "commit": "f3c52b42a035902245d00a619fed0275afb063d2",
      "tree": "c46dab07826be55e9ca92ab301eed586c2f307ca",
      "parents": [
        "b360bff818ad0bf59668cd2bebaaeeaa8a3b5dfe"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 17 17:32:12 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 21 17:09:44 2017 +0000"
      },
      "message": "Fill Class and String .bss slots in runtime.\n\nShift the responsibility for filling Class and String .bss\nslots from compiled code to runtime. This reduces the size\nof the compiled code.\n\nMake oatdump list .bss slot mappings (ArtMethod, Class and\nString) for each dex file.\n\naosp_taimen-userdebug boot image size:\n  - before:\n    arm boot*.oat: 36534524\n    arm64 boot*.oat: 42723256\n  - after:\n    arm boot*.oat: 36431448 (-101KiB, -0.3%)\n    arm64 boot*.oat: 42645016 (-76KiB, -0.2%)\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nTest: testrunner.py --target --optimizing\nTest: m dump-oat, manually inspect output.\nBug: 65737953\nChange-Id: I1330d070307410107e12c309d4c7f8121baba83c\n"
    },
    {
      "commit": "8c4ddb242f48dad200fc0a306cb2d97b28b33325",
      "tree": "444da1968d16015cbea9185ccd40a0489e6315aa",
      "parents": [
        "27dae5f3ce2d00b84eabf4cc4b7b2144af37a43a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 13 11:49:53 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 13 11:49:53 2017 +0000"
      },
      "message": "Revert \"Support VecLoad and VecStore in LSE.\"\n\nSomehow, this breaks:\n./art/test/run-test --optimizing --64 --gcstress 667-checker-simd-alignment\n\nThis reverts commit 27dae5f3ce2d00b84eabf4cc4b7b2144af37a43a.\n\nChange-Id: If552ebd8c14535c2eafbdc2ed0ff1f76ad29da35\n"
    },
    {
      "commit": "27dae5f3ce2d00b84eabf4cc4b7b2144af37a43a",
      "tree": "9e05c544c7e7fa6f57ac5661657adc6e2ca916db",
      "parents": [
        "43fcb33efaa519f0e19bd1bef74fa59b1d9bf723"
      ],
      "author": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Thu Sep 21 13:48:55 2017 +0100"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Nov 10 06:06:21 2017 +0000"
      },
      "message": "Support VecLoad and VecStore in LSE.\n\nTest: test-art-host\nTest: test-art-target\nTest: load_store_elimination_test\n\nChange-Id: I95ac13207a0f57225bf0bc62b1e57a629ae24e02\n"
    },
    {
      "commit": "cced8ba4245a061ab047a0a6882468d75d619dd9",
      "tree": "b379abfa48689c108e1cacedd2b13d4b5394baf2",
      "parents": [
        "96c76457d5c5af2d4243c78d74ada77de3223d88"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Wed Jul 19 18:18:09 2017 +0100"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Tue Nov 07 12:56:17 2017 +0000"
      },
      "message": "ART: Introduce individual HInstruction cloning.\n\nIntroduce API for HInstruction cloning, support it for a few\ninstructions. add a gtest.\n\nTest: cloner_test.cc, test-art-target, test-art-host.\n\nChange-Id: I8b6299be5d04a26390d9ef13a20ce82ee5ae4afe\n"
    },
    {
      "commit": "238e8fcd1d37ef75b85b0a84303d70776fe64495",
      "tree": "ae9e770a0db2fd09a6914f4f2dcf4e98bd3041e6",
      "parents": [
        "f24dfb082abc4715024fe7d5e80fdba6b4e08ba2"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 01 17:10:10 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 01 21:08:29 2017 -0700"
      },
      "message": "ART: Clean up global includes - zlib\n\nRemove zlib from the ART-global includes.\n\nTest: mmma art\nChange-Id: Ib5c12d46aae9cc1288c7a4f2f7e0f60444f2c6e0\n"
    },
    {
      "commit": "373a9b5c718a45ac484afcf4fe6ce84f4bb562b3",
      "tree": "52a3e78fa8bc94a76674caaae837c728332d05dc",
      "parents": [
        "d0332e01ac26c2fd0a900de000a55ed5768ff936"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Oct 18 09:01:57 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Oct 25 10:13:59 2017 -0700"
      },
      "message": "ART: Depend on libnativehelper headers only\n\nDepend on header-only versions where possible. Move projects\nexcluding libart to libnativehelper_header_only.\n\nBug: 65522645\nTest: mmma art\nChange-Id: I53dd3b2a97e94ee685f72de007ed3858f7f5c6b6\n"
    },
    {
      "commit": "2b51edd7918d6a70fd335cdc5af50e9513aab1cf",
      "tree": "e2e57953d38318df3b7d32ca707fa07093fb16d7",
      "parents": [
        "d6947136eab2fcefb1a9195110b9195aabaf469e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Oct 18 13:15:02 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Oct 18 13:27:12 2017 -0700"
      },
      "message": "ART: Fix includes\n\nAdd missing libnativehelper dependencies. Remove superfluous\nScopedLocalRef includes.\n\nTest: mmma art\nChange-Id: Ic2ecbcc1d205500307f0ef5b2859c60d3fc336f3\n"
    },
    {
      "commit": "097f34cc09caf46945ec17e198f57ac9c156e904",
      "tree": "2f478bcc58ac21017431505ca87e83f4606355b4",
      "parents": [
        "42e482f0615bd935d1426a749a413be2c3f79114"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Aug 23 08:57:51 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 06 13:22:08 2017 -0700"
      },
      "message": "ART: Use CmdlineParser in dex2oat\n\nRefactor dex2oat and the compiler to use the cmdline parser. In\nan effort to standardize command-line parsing and make it easier\nto add new properties in a principled manner.\n\nTest: m test-art-host\nChange-Id: Ia077a56234dbf579d7ca3430fef325b57aa06333\n"
    },
    {
      "commit": "a290160f74ee53c0ffb51c7b3ac916d239c9556a",
      "tree": "0bfc9728ccee68dbd359b023319423f703448aac",
      "parents": [
        "86d244ec33f333b32301a9ee09088300c8544a7b"
      ],
      "author": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@imgtec.com",
        "time": "Thu Sep 21 13:50:52 2017 +0200"
      },
      "committer": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@imgtec.com",
        "time": "Thu Oct 05 11:43:34 2017 +0200"
      },
      "message": "MIPS32R2: Share address computation\n\nFor array accesses the element address has the following structure:\nAddress \u003d CONST_OFFSET + base_addr + index \u003c\u003c ELEM_SHIFT\n\nThe address part (index \u003c\u003c ELEM_SHIFT) can be shared across array\naccesses with the same data type and index.\n\nFor example, in the following loop 5 accesses can share address\ncomputation:\n\nvoid foo(int[] a, int[] b, int[] c) {\n  for (i...) {\n    a[i] \u003d a[i] + 5;\n    b[i] \u003d b[i] + c[i];\n  }\n}\n\nTest: test-art-host, test-art-target\nChange-Id: Id09fa782934aad4ee47669275e7e1a4d7d23b0fa\n"
    },
    {
      "commit": "9389ae7309180f4dccc3c34e26798ed428f0d054",
      "tree": "d8ff0d871506ad2559c505b92495b1f5125fc4f6",
      "parents": [
        "350546494d6964daee2b9236820b7f85b88dfd59"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Sep 27 11:58:43 2017 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Sep 27 15:11:33 2017 -0700"
      },
      "message": "Simplify Android.bp files\n\nRemove clang: true, it\u0027s the default.\n\nRemove target.android.shared_libs \"libdl\", since it\u0027s already part of\nthe system_shared_libs list.\n\nRemove host_ldlibs, since -ldl and -lpthread are automatically added on\nDarwin and Linux. -lrt is automatically added on Linux.\n\nTest: mmma art\nChange-Id: I18aa6aa5b49cad31caf6820b1974057ad14a2798\n"
    },
    {
      "commit": "0ebe0d83138bba1996e9c8007969b5381d972b32",
      "tree": "a5ee66ebc5b587ade97e56ac8fc7d832fbbed4af",
      "parents": [
        "e1e347dace0ded83774999bb26c37527dcdb1d5a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 21 22:50:39 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 25 15:45:01 2017 +0100"
      },
      "message": "ART: Introduce compiler data type.\n\nReplace most uses of the runtime\u0027s Primitive in compiler\nwith a new class DataType. This prepares for introducing\nnew types, such as Uint8, that the runtime does not need\nto know about.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nBug: 23964345\nChange-Id: Iec2ad82454eec678fffcd8279a9746b90feb9b0c\n"
    },
    {
      "commit": "d8dbc8da0e5cc6b5c2176ce2d3877e6194d72c0c",
      "tree": "af6e9fb02471d75ebdea46190a0aa3e9dbdb892d",
      "parents": [
        "93780a60090356921b844dbefdc13442c9f18b52"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 20 13:37:47 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 20 15:55:10 2017 +0100"
      },
      "message": "Refactor compiled_method.h .\n\nMove LinkerPatch to compiler/linker/linker_patch.h .\nMove SrcMapElem to compiler/debug/src_map_elem.h .\nIntroduce compiled_method-inl.h to reduce the number\nof `#include`s in compiled_method.h .\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nChange-Id: Id211cdf94a63ad265bf4709f1a5e06dffbe30f64\n"
    },
    {
      "commit": "7452797678c4345d4a9e65b03e00af703c2c5fe0",
      "tree": "fd23d118a6317737a692402a648217418c3d7b99",
      "parents": [
        "3c683150bcf2f1cabbe2e5f9d10d8c670b67fb7e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 29 15:57:32 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 20 10:58:42 2017 +0100"
      },
      "message": "Refactor linker files from compiler/ to dex2oat/.\n\nThis shifts some code from the libart-compiler.so to dex2oat\nand reduces memory needed for JIT. We also avoid loading the\nlibart-dexlayout.so for JIT but the memory savings are\nminimal (one shared clean page, two shared dirty pages and\nsome per-app kernel mmap data) as the code has never been\nneeded in memory by JIT.\n\naosp_angler-userdebug file sizes (stripped):\n  lib64/libart-compiler.so: 2989112 -\u003e 2671888 (-310KiB)\n  lib/libart-compiler.so: 2160816 -\u003e 1939276 (-216KiB)\n  bin/dex2oat: 141868 -\u003e 368808 (+222KiB)\nLOAD/executable elf mapping sizes:\n  lib64/libart-compiler.so: 2866308 -\u003e 2555500 (-304KiB)\n  lib/libart-compiler.so: 2050960 -\u003e 1834836 (-211KiB)\n  bin/dex2oat: 129316 -\u003e 345916 (+212KiB)\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: cd art/; mma; cd -\nChange-Id: If62f02847a6cbb208eaf7e1f3e91af4663fa4a5f\n"
    }
  ],
  "next": "86ce50481f91e3be2e5f2686e18e11babde721ae"
}
