)]}'
{
  "log": [
    {
      "commit": "6e3dd9e16d5e45afcb4beebcbc8d4f495df1a9c2",
      "tree": "41b800f47ec12d0ebad6967ecb83530fc1ddb5a1",
      "parents": [
        "767c593d61c6ec7140bb15660d191950096a9067",
        "0eebdcc511364a9ade5290507d446f41cf256fbe"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 26 17:02:19 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Feb 26 17:02:19 2021 +0000"
      },
      "message": "Fix jclass read barrier in GenericJNI. am: 0eebdcc511\n\nOriginal change: https://android-review.googlesource.com/c/platform/art/+/1608101\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: Iea67c357c9d282521e215393a356a105281d8d38\n"
    },
    {
      "commit": "0eebdcc511364a9ade5290507d446f41cf256fbe",
      "tree": "fde6e4e7ce9dd1b2e1028cd2aee63e428f05a902",
      "parents": [
        "0a73762a454abc961a6fcf0e27df00586c5f13e1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 26 09:34:13 2021 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 26 15:42:43 2021 +0000"
      },
      "message": "Fix jclass read barrier in GenericJNI.\n\nThe GcRoot\u003c\u003e::Read\u003ckWithReadBarrier\u003e() does not update\nthe GcRoot\u003c\u003e::root_ which we need to do.\n\nTest: m\nBug: 172332525\nBug: 181249330\nChange-Id: I9886c6f23339e39588c885d7b1e2557abae8d027\n"
    },
    {
      "commit": "7ff54bcc55a6168307af4b2fef56dcb1402941fa",
      "tree": "d19849677ed0fd8746f8b0a1bfb007b0e99c71cb",
      "parents": [
        "28bfb29b9a64ce37d8761c63f57b8662304350b1",
        "16f60dc094fe283d1fcfd062b3144452e005c133"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 26 13:39:21 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Feb 26 13:39:21 2021 +0000"
      },
      "message": "Support loading vdex files without odex. am: 16f60dc094\n\nOriginal change: https://android-review.googlesource.com/c/platform/art/+/1590077\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: Ie3a2da761687d6fbb16da4c1609b3f6e5074d1cc\n"
    },
    {
      "commit": "16f60dc094fe283d1fcfd062b3144452e005c133",
      "tree": "7623386d460cd3c9a125aaaf60b1e81196ab48f1",
      "parents": [
        "9a1a5a9ae8611c0eb7dd5bfaffc8682eea3ee7c7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 16 15:35:16 2021 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 26 13:18:41 2021 +0000"
      },
      "message": "Support loading vdex files without odex.\n\nGetDexoptNeeded with \u0027verify\u0027 as filter will return false when a vdex is\navailable.\n\nTest: 628-vdex, 820-vdex-multidex, test.py\nBug: 176960283\nChange-Id: I3ac2f747d1e7f5331a49a22c94983959e3b60122\n"
    },
    {
      "commit": "85952c1c2137eb680402a067b080e8fffd0b989e",
      "tree": "8401507b746271766145ac3eba5cc8de1b19b1d9",
      "parents": [
        "b15e3471fd30659b1545f30e5dbba76e220c5622",
        "b9b7d91f5ceb0b738e1774992fd6fe205c6091e9"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Feb 25 13:08:06 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Feb 25 13:08:06 2021 +0000"
      },
      "message": "Revert \"Lazily allocate DexCache arrays.\" am: b9b7d91f5c\n\nOriginal change: https://android-review.googlesource.com/c/platform/art/+/1603476\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: Id696d23c25e89d7398809ec4eeb707d823bd2484\n"
    },
    {
      "commit": "b9b7d91f5ceb0b738e1774992fd6fe205c6091e9",
      "tree": "06210044d3f66a0eb72e491ba9effc13bb827ced",
      "parents": [
        "4c3ade67c470543562a0029e39b576954a807321"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Feb 24 09:24:47 2021 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Feb 25 12:12:16 2021 +0000"
      },
      "message": "Revert \"Lazily allocate DexCache arrays.\"\n\nThis reverts commit 1214319d27e7fb4c4ff00b39799df6f15288098a.\n\nReason for revert: Post-submit fails\nBug: b/181097963\nTest: TH\n\nChange-Id: I9fd21140f1703d0020458b786f48bd39889a9948\n"
    },
    {
      "commit": "6f2b5e25c067b919d98e1d7e3d1dffc29522fd74",
      "tree": "a80a615e85250b9fadaa19496139426d1e56ca1e",
      "parents": [
        "ce22a1ff65b8861805b3927aad5769902bcd46f7",
        "3a8d7c2de4392ff4c40858803447efe14c3c9fa8"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu Feb 25 03:32:04 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Feb 25 03:32:04 2021 +0000"
      },
      "message": "Return null for PhantomReference.referent in Field_get() am: 3a8d7c2de4\n\nOriginal change: https://android-review.googlesource.com/c/platform/art/+/1606553\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I10d1b7ad3155dc4c897ad9b2204ed2f95c51632f\n"
    },
    {
      "commit": "3a8d7c2de4392ff4c40858803447efe14c3c9fa8",
      "tree": "a6a13854431cc59646f3b94e5e3df420a83e6547",
      "parents": [
        "ae7c8da2dcb775b58ee9285cb7c3433a8be66ebe"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Feb 24 11:29:26 2021 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 25 02:19:19 2021 +0000"
      },
      "message": "Return null for PhantomReference.referent in Field_get()\n\nTo be consistent with the behavior of PhantomReference\u0027s get(), we\nshould always return null. Otherwise it\u0027s possible that an object\nthat\u0027s only reachable via a PhantomReference becomes strongly reachable,\nviolating the defining property of PhantomReferences.\n\nBug: 174433134\nTest: art/test/testrunner/testrunner.py --host\nChange-Id: Ic0c5ba1826c69cd7e8c0d2b35dc3fc6ac5b93c0e\n"
    },
    {
      "commit": "ce22a1ff65b8861805b3927aad5769902bcd46f7",
      "tree": "7de56fae05733c60068f020705c20d1e402de172",
      "parents": [
        "24d60e058e08f33798efcae15b8f92503e9aff94",
        "ae7c8da2dcb775b58ee9285cb7c3433a8be66ebe"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Feb 25 00:30:09 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Feb 25 00:30:09 2021 +0000"
      },
      "message": "Add nativeZygoteJitEnabled am: ae7c8da2dc\n\nOriginal change: https://android-review.googlesource.com/c/platform/art/+/1588393\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: If911ab6f5fde09a85ea0c2d00f6a453712c23165\n"
    },
    {
      "commit": "ae7c8da2dcb775b58ee9285cb7c3433a8be66ebe",
      "tree": "a71213fc1e46a4cc2714e3cbcf382e623fa908fc",
      "parents": [
        "e99a85840462fddafd4253a7c16ca83bb6cca3ed"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Fri Feb 12 20:17:20 2021 -0800"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Feb 25 00:02:17 2021 +0000"
      },
      "message": "Add nativeZygoteJitEnabled\n\n... to allow the zygote to check whether it needs to keep the jit thread\naround.\n\nBug: 159631815\nBug: 174211442\nTest: Boot AOSP\nChange-Id: I4d32aee36993cf063d2464d839f2cabda1ee8ff5\n"
    },
    {
      "commit": "24d60e058e08f33798efcae15b8f92503e9aff94",
      "tree": "178754ad06e82e981fdfab27a31f2f3c3d2270aa",
      "parents": [
        "0b7e0c6091dec6a71d1cebf7ea50c89cde9f5fb5",
        "e99a85840462fddafd4253a7c16ca83bb6cca3ed"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Feb 24 22:56:28 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Feb 24 22:56:28 2021 +0000"
      },
      "message": "[metrics] Add GC related counters/histograms am: e99a858404\n\nOriginal change: https://android-review.googlesource.com/c/platform/art/+/1604216\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I78e96c05c91acf046b754ae0f5a6eea8def0e51d\n"
    },
    {
      "commit": "e99a85840462fddafd4253a7c16ca83bb6cca3ed",
      "tree": "ae278cd171cb8fc94a5dde4199c415af2d3e5f53",
      "parents": [
        "135e948025ac2fbc262ad6da34052a8b981c9aee"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Tue Feb 23 19:07:39 2021 -0800"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Feb 24 22:16:25 2021 +0000"
      },
      "message": "[metrics] Add GC related counters/histograms\n\nAlso added a base metrics class.\n\nTest: art/test/testrunner/testrunner.py --host\nBug: 177591729\nBug: 177591724\nBug: 177591575\nChange-Id: I8319b134c9afdb674427ea96b2e57e09bb078bb2\n"
    },
    {
      "commit": "3516f5f220d43393b6f343801970e4096bc56245",
      "tree": "8c03229f8fce16f043d6d8d76c83a58b37ab8074",
      "parents": [
        "4c42a75f7727e54395ca86144883b57fd6cabf91",
        "df69bd7575cf2537f5563141fd7cb945712686ca"
      ],
      "author": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Wed Feb 24 01:19:20 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Feb 24 01:19:20 2021 +0000"
      },
      "message": "Remove Flags am: df69bd7575\n\nOriginal change: https://android-review.googlesource.com/c/platform/art/+/1603614\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: Ib8900e8d92527d83fa232f004a778be2122099e1\n"
    },
    {
      "commit": "df69bd7575cf2537f5563141fd7cb945712686ca",
      "tree": "6584dbdb18a508890f769a9a77f8d328cade66c6",
      "parents": [
        "aa704f17d0d0a026b496853811fefda5d0783028"
      ],
      "author": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Tue Feb 23 11:36:21 2021 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 24 00:40:14 2021 +0000"
      },
      "message": "Remove Flags\n\nThese were reading system properties which caused security warnings in\nsome cases. Removing to allow us to do a more comprehensive design.\n\nThis reverts commit 0a6e9e56f7f3ac7750b38eaba83639ad47a2692f.\nThis reverts commit 3dba023d4fb47882fa215715c196cfa3be30c098.\n\nTest: test.py --host\nChange-Id: I04e8b7a934540b250e6fc56f5aa6ce7f18131d4d\n"
    },
    {
      "commit": "c341045b0e9e9e7cd7d54a2cbb7711aa31bbab5a",
      "tree": "24094f0f7b0a441344ee68395c1096ed62e6155b",
      "parents": [
        "6f1d4cdccd3a0003e6f4f54223547d0b85a8e2fb",
        "1214319d27e7fb4c4ff00b39799df6f15288098a"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 23 15:57:08 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Feb 23 15:57:08 2021 +0000"
      },
      "message": "Lazily allocate DexCache arrays. am: 1214319d27\n\nOriginal change: https://android-review.googlesource.com/c/platform/art/+/1592876\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I1a2c60b5266e9a25c4c728f4dd1af8bd7938268d\n"
    },
    {
      "commit": "1214319d27e7fb4c4ff00b39799df6f15288098a",
      "tree": "8708943822a634322bd9790c4d008210e44b3ddb",
      "parents": [
        "b7cb691fb8da124e8a6276a5a7fee47dd0aaa338"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 16 14:06:31 2021 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 23 15:24:27 2021 +0000"
      },
      "message": "Lazily allocate DexCache arrays.\n\nWe rarely need the DexCache for compiled code.\nDelay the allocation in hope we never need it.\n\nThis reduces DexCache memory usage by ~25% at startup.\n\nTest: m test-art-host-gtest\nTest: test.py -r -b --host\nChange-Id: I680a59c905c2b821ee954e4b32abd5d24876bd11\n"
    },
    {
      "commit": "0e81e8bb9bea2e661506ac54cb68b5ed59065222",
      "tree": "d01dec17a262ba84e20a2b7977e8de62b8f58ad4",
      "parents": [
        "0421604712826f860b2b3077c16b3278e1d3eca3",
        "cedec9db0a9accfdcf5eb695879e0b2caf2c34cb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 23 15:20:52 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Feb 23 15:20:52 2021 +0000"
      },
      "message": "Do not create HandleScope for JNI transitions. am: cedec9db0a\n\nOriginal change: https://android-review.googlesource.com/c/platform/art/+/1582970\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I25ca6749e0c81b1af50270d678bffe637322efe7\n"
    },
    {
      "commit": "cedec9db0a9accfdcf5eb695879e0b2caf2c34cb",
      "tree": "99fd71a3ef398a471507ed815c4a175805ad51f3",
      "parents": [
        "0ccc970b3c00b172e3cff8e10da13dd6323ccd52"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 08 16:16:13 2021 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 23 14:34:43 2021 +0000"
      },
      "message": "Do not create HandleScope for JNI transitions.\n\nWe previously crated a HandleScope in the JNI transition\nframe to hold references passed as jobject (jclass, etc.)\nto the native function and these references were actually\nspilled twice during the transition.\n\nWe now construct the jobject as a pointer to the reference\nspilled in the reserved out vreg area in the caller\u0027s frame.\nAnd the jclass for static methods is just a pointer to the\nmethod\u0027s declaring class. This reduces the amount of work\nrequired in the JNI transition, both on entry (in compiled\nstubs) and exit (in JniMethodEnd*).\n\nSome additional work is required when GC visits references\nof a native method as we need to walk over the method\u0027s\nshorty which was unnecessary for a HandleScope.\n\nAlso fix Thread::InitStackHwm() to calculate correct stack\nsize needed by the new Thread::IsJniTransitionReference().\n\nThe results for StringToBytesBenchmark on blueline little\ncores running at fixed frequency 1420800 are approximately\narm64 (medians from 3 runs) before after\ntimeGetBytesAscii EMPTY     447.33 436.86\ntimeGetBytesIso88591 EMPTY  440.52 431.13\ntimeGetBytesUtf8 EMPTY      432.31 409.82\narm (medians from 3 runs)   before after\ntimeGetBytesAscii EMPTY     500.53 490.87\ntimeGetBytesIso88591 EMPTY  496.45 495.30\ntimeGetBytesUtf8 EMPTY      488.84 472.68\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: testrunner.py --host --gcstress\nTest: testrunner.py --host --jit-on-first-use\nTest: testrunner.py --host --jit-on-first-use --gcstress\nTest: run-gtests.sh\nTest: testrunner.py --target --optimizing\nTest: boots.\nBug: 172332525\nChange-Id: I658f9d87071587b3e89f31c65feca976a11e9cc2\n"
    },
    {
      "commit": "1c1c8609995de141702e9612908274ee89bbe685",
      "tree": "8aaaf8ced2126297c175b28bfd66a1a8d57af46c",
      "parents": [
        "055b3166eec8d7cc98ea06a025108bb45e18d4cd",
        "52be87a2aa9ef2fa9f3b46a3ea1a2e3a08f1b174"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 23 08:44:53 2021 +0000"
      },
      "committer": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 23 08:44:53 2021 +0000"
      },
      "message": "Merge \"Merge ab/7061308 into stage.\" into stage-aosp-master"
    },
    {
      "commit": "09efc1604936c234b65a5d278f5ea63da29b17cd",
      "tree": "e0b34882e0af2f7fe364645b8b3c2a8c802bc6d5",
      "parents": [
        "d83edf3d155c49a578851da4f0407affa03b2325"
      ],
      "author": {
        "name": "satayev",
        "email": "satayev@google.com",
        "time": "Mon Feb 22 17:24:57 2021 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 23 02:48:40 2021 +0000"
      },
      "message": "Revert \"Remove obsolete TestApiEnforcementPolicy.\"\n\nThis reverts commit d8b153b7c2026f45db97a7fd5804957becc5cfdf.\n\nReason for revert: cts tests on -user builds is broken\n\nChange-Id: I7528fb6d1606f08d2398bc4cbb27519424cf1b51\n"
    },
    {
      "commit": "74584e6b65b6d5949afa9de664b05f453d42872b",
      "tree": "7d4ff8395607f4d64b393e91b5db7d6c1ee45adb",
      "parents": [
        "27b8cb7bb6ba85ca0a903f02c7d38b9f24636af7"
      ],
      "author": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Thu Feb 18 14:39:17 2021 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 22 22:28:15 2021 +0000"
      },
      "message": "[metrics] Add ClassLoadingTotalTime counter\n\nThis keeps track of how much time we spend in the class loading\nprocess.\n\nTesting instructions:\n\n   adb shell setprop dalvik.vm.metrics.write-to-log true\n   adb shell stop \u0026\u0026 adb shell start\n   adb logcat -e \"ART internal metrics\"\n\nObserver ClassLoadingTotalTime in internal metrics report. Example:\n\n    *** ART internal metrics ***\n      Metadata:\n        timestamp_since_start_ms: 34555\n        session_id: 2710488913234081424\n        uid: 10065\n        compilation_reason: Unknown\n        compiler_filter: (unspecified)\n      Metrics:\n        ClassLoadingTotalTime: count \u003d 120959\n        ClassVerificationTotalTime: count \u003d 216121\n        JitMethodCompileTime: range \u003d 0...1000000, buckets: 4482,10,2,3\n    *** Done dumping ART internal metrics ***\n\nBug: 177591870\nTest: Manual, see above\nChange-Id: I24f0c94ab6af5e6cd9b0dc32122f2905c36cf3b7\n"
    },
    {
      "commit": "fedff519e0bab2702cbf1ea271cbcb89eeeb52a3",
      "tree": "1219011411161f4f97b935e505f6e166df888d6c",
      "parents": [
        "48516425230845987f5fe3d17e5d0acfc6f82131"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Feb 07 21:36:33 2021 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 22 15:29:12 2021 +0000"
      },
      "message": "Change runtime behavior related to hiddenapi.\n\nWhen resolving a method, if the found method is not accessible, check if\nthere are methods defined in interfaces which are.\n\nBug: 178680596\nBug: 122551864\nTest: 817-hiddenapi\nChange-Id: If7631b30b2eb8eb70d3d0fa1522744fbbd1f66a1\n"
    },
    {
      "commit": "52be87a2aa9ef2fa9f3b46a3ea1a2e3a08f1b174",
      "tree": "adf98dc8bc86e2f550086d783111884f3494f9d3",
      "parents": [
        "4ed65e8750c3eb9fba8e09854526f26a35a598bb",
        "ceb0515be40ee18a29762f90d0f44c15cc42247a"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Sun Feb 21 09:24:22 2021 -0800"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Sun Feb 21 09:24:22 2021 -0800"
      },
      "message": "Merge ab/7061308 into stage.\n\nBug: 180401296\nMerged-In: I54e68609a09d7bc012daf4fff796e15807f6fece\nChange-Id: I637b7d5fe4ffdca94b046a523083d65766821818\n"
    },
    {
      "commit": "b6f885722aaeb9a402d5181a3f52755ad48db3b0",
      "tree": "1b6612a1da967234cd32e77231f891c756d5c8a7",
      "parents": [
        "0a6e9e56f7f3ac7750b38eaba83639ad47a2692f"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Feb 10 13:59:18 2021 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 19 10:59:30 2021 +0000"
      },
      "message": "runtime: update oat_file_assistant for on device signing\n\nUse odex files from ART APEX data directory if present. This is\nspecifically to enable loading system_server from the ART APEX data\ndirectory.\n\nBug: 160683548\nTest: manual\nChange-Id: I5daf751b83f35386420f037e0b207f601565d5c7\n"
    },
    {
      "commit": "0a6e9e56f7f3ac7750b38eaba83639ad47a2692f",
      "tree": "627d537bfaf9a219b855902716bcb3c8609823a7",
      "parents": [
        "8dcdd4735bff02673e5a3ec1238b8aff1d217957"
      ],
      "author": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Fri Feb 12 15:46:06 2021 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 18 18:58:25 2021 +0000"
      },
      "message": "[metrics] Move existing command line arguments to flags\n\nThis will allow us to tune metrics reporting behavior as needed\nthrough server-side configurations rather than having to wait for the\nnext ART release.\n\nThis CL also includes the flag to enable statsd reporting, even though\nthat feature is not yet implemented.\n\nBug: 175050458\nTest: manual\nChange-Id: Id69828684f2cf9d32471703494439d0722f18dce\n"
    },
    {
      "commit": "8dcdd4735bff02673e5a3ec1238b8aff1d217957",
      "tree": "1107ea6e73bc6fce6d23eec0b07b1325cf7b5233",
      "parents": [
        "5de5efef38f52f248d1e1c88fdcf3d211aabe712"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Feb 17 19:30:02 2021 -0800"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu Feb 18 17:51:18 2021 +0000"
      },
      "message": "Handle Reference-type object in Field_get()\n\nBy fetching referent from Reference-type object directly (without\ngetReferent()) we run the risk of invoking the read-barrier (and hence\npushing an unmarked object to the mark-stack) when the GC doesn\u0027t expect\nthat to happen.\n\nBug: 174433134\nTest: art/test/testrunner/testrunner.py --host\nChange-Id: I5ff7598f9f945518db28b86a5f6ed25c39b73d05\n"
    },
    {
      "commit": "5de5efef38f52f248d1e1c88fdcf3d211aabe712",
      "tree": "fb991b4dbee4d9afecad141bc75dab14893633a1",
      "parents": [
        "18af6447e5963265f6e7e61d6630064f66891f94"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Feb 15 21:23:00 2021 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Feb 18 16:51:21 2021 +0000"
      },
      "message": "Remove pointer-size arguments from DexCache.\n\nThe DexCache is always allocated at runtime now and thus\nit always has runtime pointer-size. Remove the dead code.\n\nTest: m test-art-host-gtest\nChange-Id: Ic21dc20649e1fd70f8981602d75b5690065aec20\n"
    },
    {
      "commit": "88566950be6d9d7d72645ba0c90c71bd7d7d7c5c",
      "tree": "9eb687ba6e3aa23623b5a0467d006e046ceab2d5",
      "parents": [
        "dbad1ef673140c66cdbcbbf40424674ae8e2b4c8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 16 15:51:18 2021 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 18 09:55:47 2021 +0000"
      },
      "message": "Use the checksum in the dex header for anynomous vdex files.\n\nWe were breaking (non-fatal) assumptions that location\nchecksums are unique per dex file.\n\nTest: test.py\nTest: 692-vdex-inmem-loader\nChange-Id: I3c2cf186bb244a7e89b9dd0ec9e68cadc4696d6e\n"
    },
    {
      "commit": "dbad1ef673140c66cdbcbbf40424674ae8e2b4c8",
      "tree": "d1f1d2521aae7d28f0def5abaed2746e353d2162",
      "parents": [
        "3dba023d4fb47882fa215715c196cfa3be30c098"
      ],
      "author": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Wed Feb 17 13:46:00 2021 +0000"
      },
      "committer": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Wed Feb 17 16:45:59 2021 +0000"
      },
      "message": "Revert \"[metrics] Add StatsdBackend\"\n\nThis reverts commit 3d2b93e6acb4e7ac6fc808f17813975f250dbf89.\n\nReason for revert: Breaks ART tests in chroot environment, as the\n  libstatssocket library is not found. The error message is:\n\n  CANNOT LINK EXECUTABLE\n  \"/apex/com.android.art/bin/art/x86/art_libdexfile_tests\":\n  library \"libstatssocket.so\" not found: needed by\n  /apex/com.android.art/lib/libartd.so in namespace com_android_art\n\n  How to reproduce in AOSP (e.g. on cuttlefish):\n\n  $ lunch aosp_cf_x86_64_phone-userdebug \u0026\u0026 m \u0026\u0026 launch_cvd\n\n  In another terminal, run art gtests on the device:\n\n  $ unset ART_TEST_ANDROID_ROOT\n  $ unset CUSTOM_TARGET_LINKER\n  $ unset ART_TEST_ANDROID_RUNTIME_ROOT\n  $ unset ART_TEST_ANDROID_TZDATA_ROOT\n  $\n  $ export ART_TEST_CHROOT\u003d/data/local/art-test-chroot\n  $ export OVERRIDE_TARGET_FLATTEN_APEX\u003dtrue\n  $ export ANDROID_SERIAL\u003d\"0.0.0.0:6520\"\n  $\n  $ . ./build/envsetup.sh\n  $ lunch aosp_cf_x86_64_phone-userdebug\n  $\n  $ art/tools/buildbot-build.sh --target -j72\n  $ art/tools/buildbot-cleanup-device.sh\n  $ art/tools/buildbot-setup-device.sh\n  $ art/tools/buildbot-sync.sh\n  $\n  $ export ISA\u003dx86_64\n  $ art/tools/run-gtests.sh -j8\n\nBug: 178236337\nTest: art gtests in chroot env on aosp_cf_x86_64_phone-userdebug\nChange-Id: Icbd38792f4d8828c40a53f037cefeebd777172bf\n"
    },
    {
      "commit": "3dba023d4fb47882fa215715c196cfa3be30c098",
      "tree": "da22f82b7cde87f37100f715a0e05f332b377f73",
      "parents": [
        "381d35c1b01401e193544f679bfaf4f5c197f7cd"
      ],
      "author": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Sat Jan 30 02:03:29 2021 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 17 15:05:02 2021 +0000"
      },
      "message": "Add a server-configurable flags API\n\nAdds a new set of flags that can be set by the command line, server\nconfiguration, or system properties. These flags can be used to enable\nor disable certain features or otherwise change their behavior. The\nflexible configuration options facilitate both development and also\nexperimentation.\n\nAs an example of their use, this CL also moves the\n-Xwrite-metrics-to-log command line option to the flags system\ninstead. Future work will migrate the rest of the metrics settings.\n\nTest: ./test/run-test --host --jit 2232-write-metrics-to-log\nBug: 175050458\nChange-Id: I1ef37e7d355204a3172b7aa5c0baa4cbd8c7076b\n"
    },
    {
      "commit": "3d2b93e6acb4e7ac6fc808f17813975f250dbf89",
      "tree": "c44605b61d2e863ad9d0cb76b59b84a0a8f71266",
      "parents": [
        "d2efecc12ca362cf7d2ee86455b1646f96aecb2c"
      ],
      "author": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Tue Feb 09 15:02:13 2021 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 16 21:16:42 2021 +0000"
      },
      "message": "[metrics] Add StatsdBackend\n\nAdds a new backend that allows reporting ART\u0027s metrics to statsd, where\nthey can then be uploaded to Westworld.\n\nManual Testing Instructions:\n\nRun the following commands.\n\n    m statsd_testdrive\n    adb shell setprop dalvik.vm.extra-opts              \\\n                      -Xwrite-metrics-to-statsd\\\\\\      \\\n                      -Xwrite-metrics-to-log\\\\\\         \\\n                      -Xmetrics-reporting-period\u003d10\n    adb shell stop \u0026\u0026 adb shell start\n    statsd_testdrive 332\n\nAfter about a minute, you should see several atoms logged from ART.\n\nBug: 178236337\nTest: Manual, see above\nChange-Id: Ia1c0bbadb0a9790ab44453ad60ca217c0fdb4e1a\n"
    },
    {
      "commit": "a746c63b5e68d94f807416d504a6249c3e044c82",
      "tree": "6c2a609a8ced583caaf9ff290628f07db5f827d6",
      "parents": [
        "6df4511a2cf9ffae0294c1e5136c27ff84cfd1cb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 12 15:19:38 2021 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 16 10:52:12 2021 +0000"
      },
      "message": "Remove unsed artLookupResolvedMethod.\n\nTest: test.py\nChange-Id: I9485105760a4c3eab1e542a99ea617f3e0b4d0b1\n"
    },
    {
      "commit": "6df4511a2cf9ffae0294c1e5136c27ff84cfd1cb",
      "tree": "a29efde60f8ffb947679113d524ae9f6169e0338",
      "parents": [
        "354fbd7e8d38d7888c6c2610cc14cfa55f468fbb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Feb 07 21:51:58 2021 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 16 09:27:59 2021 +0000"
      },
      "message": "Use vdex assignability types at runtime.\n\nWhen the oat file mentions the class needs to be verified at runtime,\ncheck whether the vdex has assignability types. If it has, and the\nchecks are successful, then the class is verified. Otherwise do a full\nverification to report the actual verification error.\n\nTest: test.py\nBug: 176960283\nChange-Id: I2ba14b72c1d8be3d33f7a699721496a8c15c39f2\n"
    },
    {
      "commit": "2b945726a57ff3d2665be56d00aa9dc0fa8a9d94",
      "tree": "3163aed01b96eafbb8081d3745f8b9886a18f2cc",
      "parents": [
        "662cee96aceb3591f6804b71a8d1c93466203165"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Feb 10 13:57:45 2021 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Feb 11 08:38:01 2021 +0000"
      },
      "message": "runtime: add image to gLogVerbosity template\n\nBug: 160683548\nTest: manual\nChange-Id: If08fae3a8b4daf3ee3fc25f7140d4496c704d0f8\n"
    },
    {
      "commit": "d4ff5bb50e252b004cfa1b4bc330b017208552a5",
      "tree": "5084a931388adcdb89a08e5726ca5b13eeb94e47",
      "parents": [
        "271662c2de6df0a5c85d47177dbe257c973cb3ae"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Feb 03 17:09:40 2021 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Feb 11 02:07:57 2021 +0000"
      },
      "message": "Remove dalvik-pruning APIs\n\nThese are no longer used anywhere.\n\nTest: m\nBug: 172114559\nChange-Id: Id7206173a370f07a9a7494a6cea85552f0f57cd3\n"
    },
    {
      "commit": "2807839d996167f35e4000ff2f80952dd62c5e8b",
      "tree": "8a925afa4826bd6a1f79f47020a11dd1b25d1540",
      "parents": [
        "745da80dbf169d83e2acb847b0c9c07985d51bdf"
      ],
      "author": {
        "name": "Pedro Loureiro",
        "email": "pedroql@google.com",
        "time": "Thu Jan 21 17:09:55 2021 +0000"
      },
      "committer": {
        "name": "Pedro Loureiro",
        "email": "pedroql@google.com",
        "time": "Wed Feb 10 12:54:47 2021 +0000"
      },
      "message": "Add logcat message when @TestApi access is denied\n\nThis serves to help a developer knowing what to do when a test fails.\n\nTest: manual\n\nFixes: 177047045\nChange-Id: I0e32896bd5a0a4163a4a9a0d405e1f977fd4cd7d\n"
    },
    {
      "commit": "745da80dbf169d83e2acb847b0c9c07985d51bdf",
      "tree": "a01990e419ee49fe255a6df108027a89b568975a",
      "parents": [
        "16f7f8e384f0ae13c53525ff12affbc00605b0ec"
      ],
      "author": {
        "name": "Nikita Iashchenko",
        "email": "nikitai@google.com",
        "time": "Wed Jan 20 21:52:54 2021 +0000"
      },
      "committer": {
        "name": "Nikita Iashchenko",
        "email": "nikitai@google.com",
        "time": "Wed Feb 10 12:33:48 2021 +0000"
      },
      "message": "Add Math.multiplyHigh intrinsic\n\nTest: ./art/test/testrunner/testrunner.py --target  --optimizing --64 -t 082-inline-execute\nTest: ./art/test/testrunner/testrunner.py --host --optimizing --64 -t 082-inline-execute\nChange-Id: I4b6cafa8b9e513eca7c5c139440024d87a7ef758\n"
    },
    {
      "commit": "01cc9101b618696f7f797855f7ef5393c6664e1a",
      "tree": "3d3cfc97f2e37e055696c05df9614e07cb13c56d",
      "parents": [
        "60117aeeffda3d01a5314984694ae3d6d4588fc1"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Feb 04 16:53:40 2021 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Feb 10 01:48:23 2021 +0000"
      },
      "message": "Quiet unneeded warning about jdwp\n\nA recent change gave -XjdwpOptions a default value value. This made\nthe runtime print a (non-fatal) warning if started without jdwp\nsupport telling the user the option is being ignored. Make this\nwarning only print when the jdwpOptions are explicitly given.\n\nTest: ./art/test/run-test --host --dev 001-HelloWorld\nChange-Id: Ie61f3d32462a6b8379d5916ccce37abbc7783d9a\n"
    },
    {
      "commit": "c7ac91b21d1a15c14e29d69ff02b48c485962b0d",
      "tree": "f8bcc4df536c29773742cbb54b32b959ebd601c3",
      "parents": [
        "5c48df9895530fb26666c6d79d155ef3886d7a83"
      ],
      "author": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Thu Feb 04 21:44:01 2021 +0000"
      },
      "committer": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Tue Feb 09 16:31:17 2021 +0000"
      },
      "message": "[metrics] Report some ART metadata\n\nAdds reporting for some metadata associated with ART metrics,\nincluding timestamp relative to ART startup, the session id, and the\nprocess\u0027s user id. It additionally outputs placeholders for the\ncompilation reason and compiler filter, but these need some additional\nplumbing from the Runtime and OatFileManager to fill in, so those will\ncome in a followup CL.\n\nThis CL also includes a fair amount of refactoring around metrics\nreporting and handling the session data.\n\nExample output:\n\n    *** ART internal metrics ***\n      Metadata:\n        timestamp_since_start_ms: 768\n        session_id: 5026277321588503825\n        uid: 123456\n        compilation_reason: Unknown\n        compiler_filter: (unspecified)\n      Metrics:\n        ClassVerificationTotalTime: count \u003d 4167\n        JitMethodCompileTime: range \u003d 0...1000000, buckets: 7,0,0,0,0,0\n    *** Done dumping ART internal metrics ***\n\nTest: ./test/run-test --host --jit 2232-write-metrics-to-log\nChange-Id: Ic74b503b135d71099d9e26bf660b60e4cc3a46bc\n"
    },
    {
      "commit": "5c48df9895530fb26666c6d79d155ef3886d7a83",
      "tree": "8d9ca6d6eb89d7ec38642a42636fd8bda91522fa",
      "parents": [
        "9ebc0660f4c736b01994d34d3ad2a1171f41f048"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 09 11:47:10 2021 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 09 16:18:38 2021 +0000"
      },
      "message": "[verifier]: flag instruction that will throw at runtime\n\nWe\u0027ve accidentally changed the verifier behavior in:\nhttps://android-review.googlesource.com/c/platform/art/+/1561956\n\nWe need to preserve the behavior of marking an instruction that will\nthrow at runtime, so that the code following it is not looked at. This\nmeans that if there are verification failures in that \"dead code\", they\nwon\u0027t make the class not verified.\n\nTest: 819-verification-runtime\nBug: 179227478\nBug: 179245053\nChange-Id: I4526a98b9479f47102fb00bd65bb943fe6aa9c8e\n"
    },
    {
      "commit": "1b3fb625b682bf2ee22563cb42e37411b64b050d",
      "tree": "d5d88a9420c1e9160e7d7bf2cdce8b0bc9a18d5c",
      "parents": [
        "5bcecf0a13c97d578321d1c7e067e28ad5e1322e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 08 10:54:38 2021 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 09 14:16:36 2021 +0000"
      },
      "message": "Do not dump details of OOME for thread peer.\n\nTest: testrunner.py --target --optimizing -t 004-ThreadStress\nBug: 154100060\nChange-Id: I69582d7d1e4f5ced71ac32210ad7a0e4402da510\n"
    },
    {
      "commit": "eae6a7121925b95477b92b404d85645e665bc948",
      "tree": "1a2155272c19c5aa60ad5eebe27e881f87e63088",
      "parents": [
        "1ee12675375f97790f2ad2bbd0196c1847f858fb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 05 13:33:28 2021 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 08 10:49:38 2021 +0000"
      },
      "message": "Avoid an unnecessary ComputeModifiedUtf8Hash().\n\nThe DescriptorHashPair already has the hash as the member\n`second`, so avoid recalculating it in release mode.\n\nAlso split \"HashEquals\" classes into separate \"Hash\" and\n\"Equals\" classes to disambiguate their operators in traces.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 175869411\nChange-Id: I87cbe613778c7d310ba5c2bf437729244780472c\n"
    },
    {
      "commit": "c5323fe55f82d91d53ac4ccfd82dde7baa55a4af",
      "tree": "c81fb19ae8c7a12ffb70ea6caa62bcc6c637a742",
      "parents": [
        "b6dda5a1fa90b08d3ebf83a5d1f882e5355bc68b"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Feb 04 21:20:30 2021 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Sat Feb 06 15:59:32 2021 +0000"
      },
      "message": "libartpalette: Use fixed width typedef rather than enum for status\n\nAs the NDK guidelines note, the size of an enum is a compiler choice\nso an enum of unqualifed width cannot be considered stable ABI.\n\nBug: 122824298\nTest: TH\nChange-Id: I63d42fdb5a989aab15ec995529781b1b8c3ddb7a\n"
    },
    {
      "commit": "b6dda5a1fa90b08d3ebf83a5d1f882e5355bc68b",
      "tree": "c3002c5ddf5b1b582c7f0399990b920ed59028eb",
      "parents": [
        "a0a20cdaba1a339b526707bde0e61e4eae8acfd5"
      ],
      "author": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Thu Feb 04 01:09:58 2021 +0000"
      },
      "committer": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Fri Feb 05 21:34:32 2021 +0000"
      },
      "message": "[metrics] Report metrics at app startup completion\n\nWe are particularly interested in metrics collected during app\nlaunch. This causes ART to report metrics when NotifyStartupCompleted\nis called.\n\nNote that startup reports are automatically enabled if any metrics\nbackend is configured.\n\nThis CL also fixing a small bug where attaching the thread could fail\nif this happens while the runtime is shutting down, leading to a fatal\nerror when the background thread attempted to detach itself.\n\nBug: 170149255\nTest: adb shell setprop dalvik.vm.extra-opts -Xwrite-metrics-to-log \u0026\u0026 \\\n      adb shell stop \u0026\u0026 adb shell start\n\n      Then launch apps and observe metrics in logcat.\n\nChange-Id: I2f3fc0c61c58db94aa3e2165ed794e1a5652a060\n"
    },
    {
      "commit": "433547446f7e0ad1b3fcdf993cbaaee9fdb8b9b4",
      "tree": "9760321f707871cc1f4ba5d2db80dd845b66d690",
      "parents": [
        "f80445b3d2e9948003c883c92c218ff37e202445"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 03 15:37:01 2021 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 05 14:21:47 2021 +0000"
      },
      "message": "Cache hashes of virtual methods in j.l.Object.\n\nAvoid calculating them in ClassLinker::LinkVirtualMethods()\nfor each class that declares new virtual methods.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: boots.\nBug: 175869411\nChange-Id: Iae75b1794a6d6ab5073a18c9000ec22550feebf0\n"
    },
    {
      "commit": "55ab7e84c4682c492b6fa18375b87ffc5d0b23bb",
      "tree": "5fcc2567a1a4e6ae73dead2f70c69bc03b0a64bb",
      "parents": [
        "ac27ac01490f53f9e2413dc9b66fbb2880904c96"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Mon Apr 27 21:02:28 2020 +0100"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Fri Feb 05 11:34:38 2021 +0000"
      },
      "message": "ARM64: Support SVE VL other than 128-bit.\n\nArm SVE register size is not fixed and can be a\nmultiple of 128 bits. To support that the patch\nremoves explicit assumptions on the SIMD register\nsize to be 128 bit from the vectorizer and code\ngenerators and enables configurable SVE vector\nlength autovectorization, e.g. extends SIMD register\nsave/restore routines.\n\nTest: art SIMD tests on VIXL simulator.\nTest: art tests on FVP (steps in test/README.arm_fvp.md)\n      with FVP arg:\n      -C SVE.ScalableVectorExtension.veclen\u003d[2,4]\n      (SVE vector [128,256] bits wide)\n\nChange-Id: Icb46e7eb17f21d3bd38b16dd50f735c29b316427\n"
    },
    {
      "commit": "ac27ac01490f53f9e2413dc9b66fbb2880904c96",
      "tree": "271018e1ef33667bee8d57c40ffa3f4d9f8cf930",
      "parents": [
        "26bf47a60064fcc42e1b5e7b4b41deb8312d7330"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 01 09:31:02 2021 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 05 10:48:17 2021 +0000"
      },
      "message": "Implement Reference.refersTo() intrinsic.\n\nTest: Added tests to 122-npe and 160-read-barrier-stress\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: run-gtests.sh\nTest: testrunner.py --target --optimizing\nBug: 172573708\nChange-Id: I8342510565289058df218d3249ffac1eb993ca4f\n"
    },
    {
      "commit": "b5a10be6153d9bf09e4edf4a645da4085b4436bf",
      "tree": "ebf5a4b90f6c3ef45bc7342405f808a71be8a38e",
      "parents": [
        "bfd622abc23c77ffc8799f376df7241f15d6550a"
      ],
      "author": {
        "name": "Wessam Hassanein",
        "email": "wessam@google.com",
        "time": "Wed Nov 11 16:42:52 2020 -0800"
      },
      "committer": {
        "name": "Wessam Hassanein",
        "email": "wessam@google.com",
        "time": "Fri Feb 05 03:10:12 2021 +0000"
      },
      "message": "ART/Perfetto Java Heap Profiler\n\nAdding a Sampling Java Heap Profiler to ART and its interface to Perfetto.\nThis cl is the first cl (CL1) in a series of cls described as below to implement the full ART/Perfetto Java Heap Profiler.\nCL1: ART Java Heap Profiler. This is the main ART sampling profiler code. Tested using the ART testrunner as below as well as VLOG.\nCL2: Uncomment APEX code ART side. CL3: Add APEX code Perfetto side.\nCL2 and CL3 will be submitted simultaneously to avoid build failures and to add APEX dependencies.\nCL4: Uncomment Perfetto API code. To be reviewed by fmayer@ (Perfetto Team). Further Testing, could be full feature testing including Perfetto at this point.\nCL5: Further tests and/or optimizations can be added as needed.\n\nTest: Passing Tests\ntest/testrunner/testrunner.py --host --debug -b\ntest/testrunner/testrunner.py --host --debug -b --64 -t 004-ThreadStress\ntest/testrunner/testrunner.py --host --runtime-option\u003d-XX:PerfettoJavaHeapStackProf\u003dtrue --debug -b\ntest/testrunner/testrunner.py --host --runtime-option\u003d-XX:PerfettoJavaHeapStackProf\u003dtrue --debug -b --64 -t 004-ThreadStress\nIndividualized and VLOG testing.\n\nBug: 160214819\n\nChange-Id: I2be4c4e715ce8c3c8ac545e3e14332198b9c2295\n(cherry picked from commit 7b149d585b4627ebb389e987c14fe808f2fe698b)\nMerged-In: I2be4c4e715ce8c3c8ac545e3e14332198b9c2295\n"
    },
    {
      "commit": "8ba4de1a5684686447a578bdc425321fd3bccca6",
      "tree": "20c24450b24950266ccc235306e3ad2109c57497",
      "parents": [
        "32bf6d39bc020cacfc655ce60630f4a0da3b45cf"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Wed Dec 04 21:10:23 2019 +0000"
      },
      "committer": {
        "name": "Ulyana Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Thu Feb 04 06:16:33 2021 +0000"
      },
      "message": "ART: Implement predicated SIMD vectorization.\n\nThis CL brings support for predicated execution for\nauto-vectorizer and implements arm64 SVE vector backend.\n\nThis version passes all the VIXL simulator-runnable tests in\nSVE mode with checker off (as all VecOp CHECKs need to be\nadjusted for an extra input) and all tests in NEON mode.\n\nTest: art SIMD tests on VIXL simulator.\nTest: art tests on FVP (steps in test/README.arm_fvp.md)\n\nChange-Id: Ib78bde31a15e6713d875d6668ad4458f5519605f\n"
    },
    {
      "commit": "3098e36d2935ad7ce9995ef5fb7395d035383047",
      "tree": "0d56301c7e029a58853be507649f21b1c3438825",
      "parents": [
        "37fd800e917269df7824052452bcbd65f5528a3e"
      ],
      "author": {
        "name": "Andrei Onea",
        "email": "andreionea@google.com",
        "time": "Tue Jan 26 18:30:54 2021 +0000"
      },
      "committer": {
        "name": "Andrei-Valentin Onea",
        "email": "andreionea@google.com",
        "time": "Wed Feb 03 15:21:04 2021 +0000"
      },
      "message": "Limit hidden api logcat logging.\n\nSeveral signature tests are randomly failing due to adb timing out.\nBecause these tests try accessing all nonsdk APIs, they generate a lot\nof output to logcat.\nThis change reduces the number of logged APIs to a maximum of 100. For\nmost use cases, this should be sufficient - and will reduce the amount\nof spam in the signature tests, hopefully addressing them randomly\nfailing.\n\nTest: atest CtsHiddenApiBlocklistDebugClassTestCases\nBug: 176156645\nChange-Id: I0218c9fca651653d3d9a1036296f4cc3186427c6\n"
    },
    {
      "commit": "98071159668576ae08c2b0de80b0565d58f409f2",
      "tree": "9d9d33ca68c95583f7023f32cbcda9fdb52dc219",
      "parents": [
        "d8b153b7c2026f45db97a7fd5804957becc5cfdf"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jan 27 18:41:58 2021 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Feb 02 20:39:40 2021 +0000"
      },
      "message": "Improve trace logging when loading odex files\n\nAdd extra trace categories with information on the status\nof odex files and the outcome of the loading process.\n\nTest: gtests\nBug: 178410926\nChange-Id: I02ef78f34ba726f40c8a988db8dc995f4c01c55e\n"
    },
    {
      "commit": "d8b153b7c2026f45db97a7fd5804957becc5cfdf",
      "tree": "014e91484c13e2c44cfa1380f388c758b7c23c0c",
      "parents": [
        "b1cf83748ce8165fe7e41ce6a57eb5529946a971"
      ],
      "author": {
        "name": "Artur Satayev",
        "email": "satayev@google.com",
        "time": "Fri Jan 22 17:27:07 2021 +0000"
      },
      "committer": {
        "name": "satayev",
        "email": "satayev@google.com",
        "time": "Tue Feb 02 20:25:47 2021 +0000"
      },
      "message": "Remove obsolete TestApiEnforcementPolicy.\n\nAccess to TestApis is now gated by @ChangeId ALLOW_TEST_API_ACCESS.\n\nBug: 147113465\nTest: presubmit\nChange-Id: I4c5e336069bce3bccfcde0bcd84b6c1f539635e9\n"
    },
    {
      "commit": "b1cf83748ce8165fe7e41ce6a57eb5529946a971",
      "tree": "56fe4acb1a5310cf015467a79427f4de67a53b68",
      "parents": [
        "0f0caf869a9026e723caf79d8f50d8da25bc4185"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 02 13:32:20 2021 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 02 18:08:12 2021 +0000"
      },
      "message": "Fix image bug around clinit and nterp.\n\nnterp trampoline doesn\u0027t do clinit checks, so we should install the\nresolution stub if a method needs a clinit check before being entered.\n\nTest: 818-clinit-nterp\nBug: 178992601\nChange-Id: I9d6b023a6c6620adfcd2a6ed5cd1e042a7cb449b\n"
    },
    {
      "commit": "480d98182efa33179f1773c791dc8f4bed62ef2b",
      "tree": "e352691c80cd341dcfb55ef31d3f2044362c9416",
      "parents": [
        "10592e30a959d4ebe90f5ba4b6237ec0cacddc6c"
      ],
      "author": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Wed Jan 27 23:41:45 2021 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 01 19:09:57 2021 +0000"
      },
      "message": "[metrics] Move core metrics code to libartbase\n\nWe would like to be able to use ART\u0027s metrics system in places where\nwe do not have access to the runtime. This CL splits the metrics code\ninto the core implementation of the counters and histograms and the\nbackground reporting thread. The reporting thread was the only part\nthat had dependencies on the runtime, so this remains in the runtime.\n\nThe bulk of the metrics code moves to libartbase so that it can be\nused in more contexts.\n\nBug: 178099697\nTest: m test-art-host-gtest\nChange-Id: I26a4fe326371686d5857ad49ba98569f5c55f84a\n"
    },
    {
      "commit": "10592e30a959d4ebe90f5ba4b6237ec0cacddc6c",
      "tree": "6b2ac355b78cf4cef439d4878c0c75c9d6b2ed00",
      "parents": [
        "d1728bfca62a0757000ef3aa0388b5e51269a2a2"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Dec 11 19:54:32 2020 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Feb 01 18:11:10 2021 +0000"
      },
      "message": "Default jdwpOptions to suspend\u003dn,server\u003dy\n\nThese options are basically required to actually attach a JDWP debugger\nso we might as well have them set by default.\n\nChange-Id: I1a3c45d61c53c20bfb1367c82510e2fe972099d9\nTest: Treehugger\nBug: https://github.com/android/ndk/issues/933\n"
    },
    {
      "commit": "d1728bfca62a0757000ef3aa0388b5e51269a2a2",
      "tree": "04d75ba364e3ce0c39735a38083383408f9f7cf4",
      "parents": [
        "36e4d1d398a1526c6bc5eba12b32279dc07749d8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 12 14:02:29 2021 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 01 14:48:53 2021 +0000"
      },
      "message": "Add a kTypeChecksFailure.\n\nThis is to distinguish between a soft failure due to type checks, or a\nsoft failure due to other reasons.\n\nA follow-up CL will start using that information and use the type checks\nin the vdex file to perform fast verification at runtime.\n\nTest: test.py\nBug: 176960283\n\nChange-Id: I04bff9ff26033f41e9439d366667a9aec1f339a0\n"
    },
    {
      "commit": "35a37200c6819015a5a66ec0bfdfb9d6ab3f2e0e",
      "tree": "0c0a2eb79b258bc9d024ab6d682320f9ee6d1d77",
      "parents": [
        "3a1ca400758302f44a95ae8255ca7c012d651d73"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 29 17:53:32 2021 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 01 09:57:26 2021 +0000"
      },
      "message": "Reland \"Remove obsolete code in the verifier.\"\n\nThis reverts commit 7572e76a368e56da139648a5f2e0a92b25a581e2.\n\nBug: 176960283\nBug: 178731135\n\nReason for revert: Fixed access checks of mterp on array allocations\n\nChange-Id: I5c2e321e392714bb6921f3b02e32a79ebfd4e22a\n"
    },
    {
      "commit": "3a1ca400758302f44a95ae8255ca7c012d651d73",
      "tree": "9b208b6a6e1f4e0917fdf6b567907c8974d3e1be",
      "parents": [
        "e77141a9f2c8d44866c02fe726ac0449984ebe10"
      ],
      "author": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Thu Jan 21 23:10:09 2021 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 29 19:58:12 2021 +0000"
      },
      "message": "[metrics] Add histogram statistics for reporting\n\nIn order to meet feature parity with the existing GC histograms, this\nCL adds the ability to estimate percentiles and confidence intervals\nfrom histogram data.\n\nThis is currently exposed only to metrics backends, which can choose\nto compute these summary statistics if desired. The human-readable\nstream backend does this.\n\nExample output:\n\n    JitMethodCompileTime: range \u003d 0...1000000\n      99% confidence interval: 333...66332\n      buckets: 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0\n\nBug: 178034939\nTest: m test-art-host-gtest-art_runtime_tests\nChange-Id: Ia0f8f53419018583af20029c4c9e1ea9d59a9985\n"
    },
    {
      "commit": "e77141a9f2c8d44866c02fe726ac0449984ebe10",
      "tree": "563675376ef17b3c47080389145cd668a8f041cf",
      "parents": [
        "0fba186013badc1526ae5c34e1e59c39f06ad43c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 29 16:44:55 2021 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jan 29 19:03:01 2021 +0000"
      },
      "message": "Add debug output for bug 177816575.\n\nTest: m\nBug: 177816575\nChange-Id: I7debafd012b3c1e5714cdb06b73834430a82c861\n"
    },
    {
      "commit": "7572e76a368e56da139648a5f2e0a92b25a581e2",
      "tree": "ef650023a2d33e6cc373a25449d8fd5a534a511e",
      "parents": [
        "42bee50518ebd23ff2107df86ed0a98737291cc2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 29 10:14:54 2021 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 29 14:06:45 2021 +0000"
      },
      "message": "Revert \"Remove obsolete code in the verifier.\"\n\nThis reverts commit 22538e4672348c56d4d44d6113bedd6b47d0abd0.\n\nBug: 176960283\nBug: 178731135\n\nReason for revert: Fails some vm-tests\n\nChange-Id: I60f44fe1ca963b08018fd9ab4ca352dfd8a8b1cb\n"
    },
    {
      "commit": "42bee50518ebd23ff2107df86ed0a98737291cc2",
      "tree": "7659d86093b72c0da93141f5aa5f1e5637a4ce11",
      "parents": [
        "2b84cf8a1dbc77df88fafec55ce5f45ff8778268"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jan 28 14:58:35 2021 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 29 13:20:38 2021 +0000"
      },
      "message": "Clean up ClassLinker::LinkFields().\n\nMove the function and its helper functions and classes to a\nhelper class ClassLinker::LinkFieldsHelper. Use field index\ninstead of `ArtField*` to make the sorted entries smaller\nand avoid heap allocations for up to 64 fields (up from 16).\n\nAvoid checking for \"Ljava/lang/ref/Reference;\" with costly\nDescriptorEquals() after the early initialization is done.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: boots.\nBug: 175869411\nChange-Id: Ice0a8abe2b85baffc40e1889f2f611eee3be34e8\n"
    },
    {
      "commit": "c7993d55b2912532c1b0917e6b0ca43097bed21d",
      "tree": "1145ce1c0ffbbd729d0a6c1b53c608bf7adb3d6a",
      "parents": [
        "22538e4672348c56d4d44d6113bedd6b47d0abd0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 27 15:20:56 2021 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jan 28 14:14:16 2021 +0000"
      },
      "message": "Rewrite ClassLinker::LinkFields().\n\nRewrite field offset assignment to avoid heap allocations in\nmost cases. We do one allocation if there are many fields.\n\nRewrite gap filling to prefer small gaps over big ones. This\ncreates more natural field ordering. For example,\n    class A { byte unalign; }\n    class B extends A {\n        long l;\n\tbyte a, b, c, d, e, f;\n    }\nwould have previously had offsets\n    12, 10, 14, 9, 11, 13, 15\nfor fields a, b, c, d, e, f, respectively. Now these are\n    9, 10, 11, 12, 13, 14, 15\nin line with their lexicographical order.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: boots.\nBug: 175869411\nChange-Id: I558635ac59c959dd85e8a3b015c26a6d90033853\n"
    },
    {
      "commit": "22538e4672348c56d4d44d6113bedd6b47d0abd0",
      "tree": "186ff7dff13bcd944297e17d9a98f16216b60d7c",
      "parents": [
        "7203b2052c1b77a369a2fa5647529576f57de0cc"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 27 15:40:02 2021 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 28 13:56:18 2021 +0000"
      },
      "message": "Remove obsolete code in the verifier.\n\nWe now handle verification errors depending on their kind after the\nmethod has been verified.\n\nTest: test.py\nBug: 176960283\nChange-Id: Ib1c5fde157d516907f176e16fda00fe05ac25ff1\n"
    },
    {
      "commit": "151e23a09cc820584493e6c80daff762bb2f4d5d",
      "tree": "8c53ddbfa62cf57ae33a638254f289bad3863278",
      "parents": [
        "f6510e4c9d5626049df3c21d457a4cea614f1c84"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 22 10:11:13 2021 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jan 28 10:14:09 2021 +0000"
      },
      "message": "Rewrite intern table construction in ImageWriter.\n\nMake sure that intern tables in images are at maximum load\nfactor (full) and make that maximum load factor independent\nof runtime parameters. As we pre-allocate an intern table\nbuffer of the right size in ImageWriter, we also avoid\nunnecessary resizing of the temporary intern table.\n\nInstead of using InternTable::LookupStrong() for intern\nlookup, access the internal non-boot image intern table\ndirectly. This avoids unnecessary lookups in boot image\nintern tables and the intern table lock is locked only once\ninstead of locking for each StringId in input dex files.\n\nRemove obsolete comment related to patchoat relocations.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: boots.\nBug: 175869411\nChange-Id: Ie74e1ac1b1b1d25add74edd38b7e1d70b6654ee3\n"
    },
    {
      "commit": "f6510e4c9d5626049df3c21d457a4cea614f1c84",
      "tree": "aae859cd053eccbd210bda549ad4a77675cfe67e",
      "parents": [
        "bd728b07434a81d0669255ec551191af7a3bfb8d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jan 26 14:19:09 2021 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jan 28 09:11:54 2021 +0000"
      },
      "message": "Fix CardTable::Scan for short regions.\n\nThe aligned end of the range can be before the start of the\nrange and we would have previously visited cards before the\nstart. This becomes a problem when we generate a small app\nimage as seen with\n    https://android-review.googlesource.com/1556581\nfor 1002-notify-startup in the `interp-ac` configuration.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing --interpreter --interp-ac\nChange-Id: Ief4bcaeebaf32ae65a25ca09d12a7fcf14359287\n"
    },
    {
      "commit": "bd728b07434a81d0669255ec551191af7a3bfb8d",
      "tree": "cdb2d3c44b86056c691e742c69a1cec1d017d4a5",
      "parents": [
        "04ea42c39bff591b4a82622f847c34237c8bc69e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 27 13:21:35 2021 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 27 15:42:07 2021 +0000"
      },
      "message": "Add a ScopedTrace when updating code_item and entrypoint in image.\n\nTest: app startup, take a trace\nBug: 177444058\nChange-Id: I54b038a4fb95333a8c7e0b17746ac40b5c2e0f47\n"
    },
    {
      "commit": "04ea42c39bff591b4a82622f847c34237c8bc69e",
      "tree": "564a26f86fc2ec6e58c7da27dd11d06648b615ed",
      "parents": [
        "ee7bfb2a2931b5db36511146df7865c16287b2d8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 22 10:04:56 2021 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 27 13:26:11 2021 +0000"
      },
      "message": "Add a new kind of verifier error with unresolved type checks.\n\nDifferentiate between missing a class for, eg allocation, and missing a\nclass for a type check which would be a hard failure at runtime if the\ntype check was not successful.\n\nTest: test.py\nBug: 176960283\nChange-Id: I36f64b2b221ba42c987e1e5809a921e7644a3456\n"
    },
    {
      "commit": "c39af9409ed4c8dd711be606f758a9b378cd0ee3",
      "tree": "43f8cc23a07a41fb8fc03be77a15fa203e27194d",
      "parents": [
        "3a73ffb70151dbc99fa41f300a237f8c29783e0e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 25 08:43:57 2021 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 27 08:29:40 2021 +0000"
      },
      "message": "Add a nterp trampoline in the oat file, replaced at runtime.\n\nTo avoid checking whether an ArtMethod can run nterp when loading an\nimage, record that information directly in the image, and patch the\nentrypoint so nterp can do direct pointer checks when calling an\nArtMethod.\n\nTest: test.py\nBug: 177444058\nChange-Id: Ia87367c37848e1efe33336b3677490c07d7e1767\n"
    },
    {
      "commit": "3a73ffb70151dbc99fa41f300a237f8c29783e0e",
      "tree": "8debef1b372e5bea27d5265a9019446229955e3d",
      "parents": [
        "e585964df42e9fd2fab6f209810cb03e1b261ab1"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jan 25 14:11:05 2021 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jan 25 07:01:32 2021 -0800"
      },
      "message": "Revert^4 \"Partial Load Store Elimination\"\n\nThis reverts commit 791df7a161ecfa28eb69862a4bc285282463b960.\nThis unreverts commit fc1ce4e8be0d977e3d41699f5ec746d68f63c024.\nThis unreverts commit b8686ce4c93eba7192ed7ef89e7ffd9f3aa6cd07.\n\nWe incorrectly failed to include PredicatedInstanceFieldGet in a few\nconditions, including a DCHECK. This caused tests to fail under the\nread-barrier-table-lookup configuration.\n\nReason for revert: Fixed 2 incorrect checks\n\nBug: 67037140\nTest: ./art/test/testrunner/run_build_test_target.py -j70 art-gtest-read-barrier-table-lookup\n\nChange-Id: I32b01b29fb32077fb5074e7c77a0226bd1fcaab4\n"
    },
    {
      "commit": "e585964df42e9fd2fab6f209810cb03e1b261ab1",
      "tree": "35edc923e92389e4fcb0518289aacb72339f1247",
      "parents": [
        "1bcd7cd823826e95827ea2d666291f56fcccb368"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 08 18:09:36 2021 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 25 09:22:46 2021 +0000"
      },
      "message": "When entering nterp, take a fast path for instance calls with 1 argument.\n\nSuch methods only take \u0027this\u0027 as an argument and we don\u0027t need to fetch\nthe shorty.\n\nWe can make this optimization when doing nterp-\u003ecompiled as a follow-up,\nby checking that the next instruction after the invoke is not\nmove-result(-wide).\n\nTest: test.py\nBug: 112676029\nChange-Id: Ibc7b4d4ca1c636f4ad6572484e0990ccdbd63293\n"
    },
    {
      "commit": "791df7a161ecfa28eb69862a4bc285282463b960",
      "tree": "a43b022307ea2df82a360164bdf2627cd07eb5b1",
      "parents": [
        "805769bb3800c1e47b0a76ce2c5ebb270a4ac69d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Jan 23 13:28:56 2021 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Jan 24 17:18:55 2021 +0000"
      },
      "message": "Revert \"Revert^2 \"Partial Load Store Elimination\"\"\n\nThis reverts commit fc1ce4e8be0d977e3d41699f5ec746d68f63c024.\n\nBug: 67037140\n\nReason for revert: Fails read-barrier-table-lookup tests.\n\nChange-Id: I373867c728789bc14a4370b93a045481167d5f76\n"
    },
    {
      "commit": "805769bb3800c1e47b0a76ce2c5ebb270a4ac69d",
      "tree": "46bafbf1bc58b492d60b338362a2bd89653108b9",
      "parents": [
        "47d89dde45b24ee09eb96cc676d7939959fb04cf"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Jan 22 16:08:48 2021 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Sun Jan 24 13:44:23 2021 +0000"
      },
      "message": "Remove unused flag is_zygote flag from ImageSpace.\n\nBug: 169925964\nTest: cd art \u0026\u0026 mma\nChange-Id: I5f69a6d3fb3fe2fec5b32b0ae91c00ccbcabedf0\n"
    },
    {
      "commit": "fc1ce4e8be0d977e3d41699f5ec746d68f63c024",
      "tree": "b656aa7c9e62aa181dfbf7fd4f2a0d32b8bf0704",
      "parents": [
        "c6da1be58086e873c9695f8c4c1a3a8ca718696e"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jan 22 14:05:13 2021 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jan 22 07:15:51 2021 -0800"
      },
      "message": "Revert^2 \"Partial Load Store Elimination\"\n\nThis reverts commit 47ac53100303e7e864b7f6d65f17b23088ccf1d6.\n\nThere was a bug in LSE where we would incorrectly record the\nshadow$_monitor_ field as not having a default initial value. This\ncaused partial LSE to be unable to compile the Object.identityHashCode\nfunction, causing crashes. This issue was fixed in a parent CL. Also\nupdated all Offsets in LSE_test to be outside of the object header\nregardless of configuration.\n\nTest: ./test.py --host\nBug: 67037140\n\nReason for revert: Fixed issue with shadow$_monitor_ field and offsets\n\nChange-Id: I4fb2afff4d410da818db38ed833927dfc0f6be33\n"
    },
    {
      "commit": "47ac53100303e7e864b7f6d65f17b23088ccf1d6",
      "tree": "95730c6ba84ef0eebca6236428c8ba51c5eaf280",
      "parents": [
        "51d771db35cc0647bc1fd2a32ed6348d181a7a41"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 22 08:41:08 2021 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 22 08:41:39 2021 +0000"
      },
      "message": "Revert \"Partial Load Store Elimination\"\n\nThis reverts commit b8686ce4c93eba7192ed7ef89e7ffd9f3aa6cd07.\n\nBug: 67037140\n\nReason for revert: Fails a few tests.\n\nChange-Id: Icf0635bffbfbba93bf0a5b854a9582c418198136\n"
    },
    {
      "commit": "0b986f73e018fe55af1d71d2f8deaa61bd6840a2",
      "tree": "ac0626c2b722d7bdec205eda84fbf807621d35fa",
      "parents": [
        "b8686ce4c93eba7192ed7ef89e7ffd9f3aa6cd07"
      ],
      "author": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Wed Jan 20 22:24:06 2021 +0000"
      },
      "committer": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Thu Jan 21 18:16:38 2021 +0000"
      },
      "message": "Revert^4 \"[metrics] Add background reporting thread\"\n\nThis adds a background thread that reports metrics every N seconds,\nwhere N is specified by the -Xmetrics-reporting-period command line\noption. Periodic reporting is disabled by default.\n\nThis reverts commit 1060838894e34785139b5e3583fbc9edad7fa7f9.\n\nReason for revert: Remove problematic test\n\nTest: test/run-test --host 2233-metrics-background-thread\nTest: adb shell stop \u0026\u0026 \\\n      adb shell setprop dalvik.vm.extra-opts \\\n          -Xmetrics-reporting-period\u003d30\\\\\\ -Xwrite-metrics-to-log \u0026\u0026 \\\n      adb shell start \u0026\u0026 \\\n      adb logcat  # observe metrics in log\nBug: 170149255\nChange-Id: I3d72043bbb1e652728253585aae5486598658d2b\n"
    },
    {
      "commit": "b8686ce4c93eba7192ed7ef89e7ffd9f3aa6cd07",
      "tree": "1721ee940f978736a2212d693271ee698897cb0b",
      "parents": [
        "625048049558d394d50b6e98885b8c210e481bf1"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Nov 02 08:48:33 2020 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jan 21 17:58:10 2021 +0000"
      },
      "message": "Partial Load Store Elimination\n\nAdd partial load-store elimination to the LSE pass. Partial LSE will\nmove object allocations which only escape along certain execution\npaths closer to the escape point and allow more values to be\neliminated. It does this by creating new predicated load and store\ninstructions that are used when an object has only escaped some of the\ntime. In cases where the object has not escaped a default value will\nbe used.\n\nTest: ./test.py --host\nTest: ./test.py --target\nBug: 67037140\n\nChange-Id: Idde67eb59ec90de79747cde17b552eec05b58497\n"
    },
    {
      "commit": "d5a8695394f8f6e8f9a66752441623dc31b97660",
      "tree": "591ac4892304365282a57262c91e1945ac94c6a9",
      "parents": [
        "2fb37411e42455a00fdad90f0e612c3214e5bd1a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 19 10:35:54 2021 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 21 14:07:57 2021 +0000"
      },
      "message": "Reland \"Improve invokeinterface for nterp.\"\n\nThis reverts commit f1d06474baa2f7c00761db39099b89ddab71bbe4.\n\nBug: 177554973\nBug: 112676029\n\nTest: test.py\nTest: 815-invokeinterface-default\nTest: enable text-to-speech on device, no crash\n\nReason for revert: Fixed issue with recursive default methods\n\nChange-Id: I2fb9336adb6c4fc920f39aa19bfe7f0a92ce059a\n"
    },
    {
      "commit": "2fb37411e42455a00fdad90f0e612c3214e5bd1a",
      "tree": "dfa5d667c45f2ec5b16875e4362f26fc6676ed33",
      "parents": [
        "2c2724cb36cd5a9cec6c852c681efc3b7c6b86ea"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 20 14:16:24 2021 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 21 08:14:54 2021 +0000"
      },
      "message": "Fix moving GC bugs introduced in latest nterp change.\n\nIn:\nhttps://android-review.googlesource.com/c/platform/art/+/1554054\n\nWe are now loading the value (and sometimes instance) that will be\nstored from a sput/iput opcode. Because the slow path can be suspended,\nwe need to reload that value after calling the runtime.\n\nTest: test.py\nTest: art/test/run-test  --dex2oat-jobs 4 --host --prebuild --compact-dex-level fast --random-profile --no-relocate --gcstress --runtime-option -Xcheck:jni --64  476-checker-ctor-fence-redun-elim\nBug: 177627911\nBug: 79751666\nBug: 112676029\nBug: 176960283\nBug: 177810406\nChange-Id: If45962386d62defe44e52f8b0a38d2f045e0b5ce\n"
    },
    {
      "commit": "2c2724cb36cd5a9cec6c852c681efc3b7c6b86ea",
      "tree": "203b76db53f102d031e43ea0632194d4517d6bec",
      "parents": [
        "350c2ff41ff234c71b21f8e653e44be0e23504d9"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Jan 14 19:54:23 2021 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Jan 21 00:33:57 2021 +0000"
      },
      "message": "Disable the public SDK Checker during exception throwing\n\nThe compiler will try to throw exception when it cannot\nresolved methods/classes or when there\u0027s an incompatible class\nchange. While doing so, it requires the thrown exception class\nto be initialized.\n\nHowever, when verifying with a public SDK Checker installed,\nit\u0027s possible that the exception class may not initialized due\nto private member access (e.g. serialVersionUid).\n\nSince during verification the exceptions are simply mechanism\nfor the compiler to propagate the verification error it is OK\nto disable the SDK Checker and allow the class to be initialized.\n\nBug: 177017481\nTest: m test-art-host \u0026 manual\nChange-Id: I3765897bf9885b7e26b3ab044002df88866cd3cd\n"
    },
    {
      "commit": "6d951ca478be8948fd0cf135accbc948f564c15a",
      "tree": "669bdfb25237c6dd8d2a3060ff5404da1205ccf4",
      "parents": [
        "e3c1ede68006c8c695ff5b7f6383d6aaef49f932"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Tue Jan 19 12:32:27 2021 -0800"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 20 13:56:12 2021 +0000"
      },
      "message": "Use correct modifiers on LDR instructions.\n\nUXTW is not a valid modifier for LDR on 32-bit ARM. Compilers built\nwithout assertions incorrectly accept the modifier, while compilers\nbuilt with assertions crash (see llvm.org/pr48805).\n\nThe intent appears to be to use the LSL modifier (and that is how the\ninstruction is assembled with the no-assertions compiler) so change\nthe code to use it.\n\nChange-Id: Icc0ec955486fe5c78e88604e9d8e3b3a9b4f7b62\n"
    },
    {
      "commit": "e3c1ede68006c8c695ff5b7f6383d6aaef49f932",
      "tree": "78eb12669b64f9a582371de17f71f46167f0350c",
      "parents": [
        "c6e4578e546bc23272cb165baff395cdac7521fc"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jan 08 13:30:04 2021 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 20 01:03:35 2021 +0000"
      },
      "message": "Allow reserved_ memmap to be invalid for heap test\n\nIn some cases the mapping fails (presumably due to ASLR). Avoid\ntesting it\u0027s valid to prevent test flakiness.\n\nTest: test.py\nBug: 175018342\nChange-Id: Ia177a62ffa2158e1c3e93d30e71f35fb3dc73158\n"
    },
    {
      "commit": "808c556b1f4b936b8e9010ed1a6d8313dd862983",
      "tree": "022e9123c589d79233116bae1ad59f4a4319ad14",
      "parents": [
        "caac87ab74fbf5463e58f1addf3f8f5080080b6e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 18 14:19:21 2021 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 19 09:45:45 2021 +0000"
      },
      "message": "Reland \"Refactor code in mterp and nterp to handle all cases of missing class.\"\"\n\nThis reverts commit 748e9564c5334834aee0050533e6f1d24557f8c9.\n\nBug: 177627911\nBug: 79751666\nBug: 112676029\nBug: 176960283\n\nReason for revert: fixed mterp braino\n\nTest: 173, 814\n\nChange-Id: Ic853eb344562be0207ce6e9bfd41d74e795561d7\n"
    },
    {
      "commit": "4c796aad94ecf594d3e792da4e5d2424638791da",
      "tree": "466b796ded30a136713b7b2756e8fa6d5db6dafb",
      "parents": [
        "dd732cc38f57844bfcedc5687d4b66df7102f31f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 15 10:04:45 2021 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jan 19 09:11:51 2021 +0000"
      },
      "message": "Rewrite class table construction in ImageWriter.\n\nMake sure that class tables in images are at maximum load\nfactor (full) and make that maximum load factor independent\nof runtime parameters. As we pre-allocate a class table\nbuffer of the right size in ImageWriter, we also avoid\nunnecessary resizing of the temporary class table.\n\nMake sure that app image class tables are deterministic.\nWe previously just copied the class table from the app class\nloader even though some entries may have been inserted there\nduring multi-threaded phases of the compilation, causing\nnon-deterministic contents based on insertion order.\n\nRemove obsolete comment related to patchoat relocations.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: boots.\nBug: 175869411\nChange-Id: I605048b639f67a5ed4b03eb8888cbaafa9ba4091\n"
    },
    {
      "commit": "dd732cc38f57844bfcedc5687d4b66df7102f31f",
      "tree": "91f9d8fcf1bdf4778e994ab4acadbb0f23b7c278",
      "parents": [
        "748e9564c5334834aee0050533e6f1d24557f8c9"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Jan 15 16:31:30 2021 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 18 11:19:44 2021 +0000"
      },
      "message": "Add an overload of ExecAndReturnCode taking a timeout\n\nEnables callers to timeout waiting on a subprocess.\n\nBug: 177432913\nTest: test-art-host-gtest-art_runtime_tests32\nChange-Id: I7a27e0ca4679f45daf815d7e2563ca9b723bd701\n"
    },
    {
      "commit": "748e9564c5334834aee0050533e6f1d24557f8c9",
      "tree": "5c481f0c872a81024a24cdca5daf831a40dcab8a",
      "parents": [
        "09e2337f8a971c318c560444912d50b06d723e35"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jan 14 22:43:34 2021 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jan 15 21:15:19 2021 +0000"
      },
      "message": "Revert \"Refactor code in mterp and nterp to handle all cases of missing class.\"\n\nThis reverts commit 3f2980f1b0fc22f3566e6759141994a8269912ba.\n\nBug: 177627911\nReason for revert: Fixes b/177627911 crash in photos\n\nChange-Id: I614df98b15168d8fe94e09e5db1ab81001018dd2\n"
    },
    {
      "commit": "fa81f71b27bb1290848e7ce1fe31b4241110031d",
      "tree": "2425a8dc6a186739340f7093a5a170beb630a379",
      "parents": [
        "7eb5a95d96175ab6bfca3e9b19673443651ac997"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jan 13 12:27:21 2021 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Jan 15 18:11:29 2021 +0000"
      },
      "message": "Remove the ability to load the boot image from dalvik cache\n\nGeneration of boot image in dalvik cache is not supported since\n6732b8057061ee753a9ff7cc6d79c2edd0a33168 (https://r.android.com/1454861).\n\nBug: 160683548\nBug: 177313562\nTest: atest ArtGtestsTargetInstallApex\nTest: m test-art-host-gtest\nChange-Id: I5034b873535767d8694bc6c4fe05d90cf8b51588\n"
    },
    {
      "commit": "1060838894e34785139b5e3583fbc9edad7fa7f9",
      "tree": "267cc17ce650219d520e847fa011ebada320b8b8",
      "parents": [
        "f1d06474baa2f7c00761db39099b89ddab71bbe4"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 15 09:20:23 2021 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 15 09:20:58 2021 +0000"
      },
      "message": "Revert \"Revert^2 \"[metrics] Add background reporting thread\"\"\n\nThis reverts commit 4c176b9de6c430422395017910633bcb001b2e84.\n\nReason for revert: Test fails on target.\n\nChange-Id: Idfef53679cf602c7c10a9cc0ffb16fda583ed78f\n"
    },
    {
      "commit": "f1d06474baa2f7c00761db39099b89ddab71bbe4",
      "tree": "9924ce87e34d1058a0d12e963e3a94fbd3d1539d",
      "parents": [
        "4c176b9de6c430422395017910633bcb001b2e84"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jan 14 23:40:53 2021 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jan 15 00:36:13 2021 +0000"
      },
      "message": "Revert \"Improve invokeinterface for nterp.\"\n\nThis reverts commit c0d392be9172c4c60b3e81b0123489ec3036c401.\n\nBug: 177554973\nReason for revert: Fix crash when enabling \u0027Select to Speak\u0027\n\nChange-Id: If2865cc1dfc11e6bd27ed533da10f53521e3e613\n"
    },
    {
      "commit": "4c176b9de6c430422395017910633bcb001b2e84",
      "tree": "7e2977cbda130db7f4f83e8eba9449f49e0e4397",
      "parents": [
        "5bb354fa440ae7c9ebe6994ceb45e6795c5d3363"
      ],
      "author": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Tue Dec 15 18:23:28 2020 +0000"
      },
      "committer": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Thu Jan 14 21:40:56 2021 +0000"
      },
      "message": "Revert^2 \"[metrics] Add background reporting thread\"\n\nThis adds a background thread that reports metrics every N seconds,\nwhere N is specified by the -Xmetrics-reporting-period command line\noption. Periodic reporting is disabled by default.\n\nThis reverts commit 73366109eec37b75f77f24e6e52832047508b34f.\n\nThe reason this was previously reverted was due to failures where\nJVMTI reported an unexpected thread at startup. This change fixes the\nissue by adding the metrics background reporting thread to the list of\nallowed threads in ti_thread.cc.\n\nTest: test/run-test --host 2233-metrics-background-thread\nTest: adb shell stop \u0026\u0026 \\\n      adb shell setprop dalvik.vm.extra-opts \\\n          -Xmetrics-reporting-period\u003d30\\\\\\ -Xwrite-metrics-to-log \u0026\u0026 \\\n      adb shell start \u0026\u0026 \\\n      adb logcat  # observe metrics in log\nChange-Id: I5eea4a4551de9cf4672a461c09521ef871063a91\n"
    },
    {
      "commit": "5bb354fa440ae7c9ebe6994ceb45e6795c5d3363",
      "tree": "166f2719d86826c33b8b2e541c4bda8ee9caa93f",
      "parents": [
        "ec389671c661ea1cb73490a2896d6519f299dea2"
      ],
      "author": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Wed Jan 13 20:38:34 2021 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 14 21:39:16 2021 +0000"
      },
      "message": "Revert^4 \"[metrics] Add file output support\"\n\nAdds a new command line option, -Xwrite-metrics-to-file\u003d_, which\nspecifies a file for writing metrics to. This can be used in conjunction\nwith -Xwrite-metrics-to-log, which will cause the output to go to both\nlogcat and the file.\n\nWriting metrics to a file can be helpful for testing or benchmarking\nenvironments.\n\nAccess to the file is protected using advisory locking, so it is safe to\nhave multiple processes write metrics to the same file.\n\nThis reverts commit f8567b535dcc4618f0ee76e5b8716d296681197b.\n\nReason for revert: Splitting out problematic test.\n\nTest: test/run-test --host test/2234-write-metrics-to-file\nBug: 175025360\nBug: 170149255\nChange-Id: I09be3bfe10293fe71ded1a5b155dcd2fd226f8b3\n"
    },
    {
      "commit": "ec389671c661ea1cb73490a2896d6519f299dea2",
      "tree": "29e03b8419409835c15dde59ef8f5ffdc12d1f51",
      "parents": [
        "365f94f828ebd8aa5f55e3a3882f847960ed6bb5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jan 14 10:58:31 2021 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jan 14 17:44:05 2021 +0000"
      },
      "message": "Implement Reference.refersTo() in UnstartedRuntime.\n\nComplement the Reference.get() implementation with the\nReference.refersTo(). This may prevent initialization\nregressions for some classes as we replace Reference.get()\nuses with Reference.refersTo() in the future.\n\nTest: m\nBug: 172573708\nChange-Id: I03b6ba9b06f8da0f38761f21c21ef15e7517c47d\n"
    },
    {
      "commit": "3f2980f1b0fc22f3566e6759141994a8269912ba",
      "tree": "85d72d4efa66f81f725daf324ad7fd54d5f37135",
      "parents": [
        "c26c640db1911d2fcab7c2b4830993bc254011aa"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 12 10:45:06 2021 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 14 08:50:59 2021 +0000"
      },
      "message": "Refactor code in mterp and nterp to handle all cases of missing class.\n\nThis is to handle the case the type of a field is missing, and where we\nonly throw an exception when we assign a non-null value.\n\nBug: 79751666\nBug: 112676029\nBug: 176960283\nTest: test.py\nChange-Id: I9c233f271eea7ae4a8028fb727d5c49c7c45feac\n"
    },
    {
      "commit": "c26c640db1911d2fcab7c2b4830993bc254011aa",
      "tree": "f8164f9b1ea2a9ced1e2f0a302b6d312a21e9414",
      "parents": [
        "1a0e292b9bb60be76a666ca86046db1492a345d4"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jan 13 15:58:15 2021 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jan 13 15:58:20 2021 +0000"
      },
      "message": "Minor formatting fixes in handle_scope-inl.h\n\nChange-Id: I76139d78303627b83649b0528ee055901e36f952\nTest: None\n"
    },
    {
      "commit": "f8567b535dcc4618f0ee76e5b8716d296681197b",
      "tree": "59581c9c3d168f3a1b8e0dd7f4a2e384a8434999",
      "parents": [
        "0ddba9a4239477a2319fbf4317ca8782308c2c35"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 13 09:50:24 2021 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 13 09:51:02 2021 +0000"
      },
      "message": "Revert \"Revert^2 \"[metrics] Add file output support\"\"\n\nThis reverts commit 8ef84f233a55972eb3a3d84c11c1617531af8e92.\n\nBug: 175025360\nBug: 170149255\n\nReason for revert: test failing on target\n\nChange-Id: I8d82462f6fb853ece4a4b295de17ab13b1f1b6f1\n"
    },
    {
      "commit": "0ddba9a4239477a2319fbf4317ca8782308c2c35",
      "tree": "1076f2838d6081b85f12c65c3c080d7a03980804",
      "parents": [
        "b52515830da6688524bfde8bb79f1fa781451cda"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jan 12 10:33:53 2021 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 12 22:13:16 2021 +0000"
      },
      "message": "Support null-filled HandleScopes without mutator_lock_\n\nCreating a HandleScope used to always require (via assert) the\nmutator_lock_ be held. When the scope is filled with null (as it\nnormally is) this is not needed however.\n\nTest: ./test.py --host\nChange-Id: I47acbcaeafc7617f264233a5ab869eded6a22473\n"
    },
    {
      "commit": "8ef84f233a55972eb3a3d84c11c1617531af8e92",
      "tree": "cb7113879d10fcafd3b3c2d969e75fba7c60dc35",
      "parents": [
        "46d6fc0e16d65468aa259fadf27ddfeef72987b7"
      ],
      "author": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Tue Jan 12 00:04:57 2021 +0000"
      },
      "committer": {
        "name": "Eric Holk",
        "email": "eholk@google.com",
        "time": "Tue Jan 12 17:16:13 2021 +0000"
      },
      "message": "Revert^2 \"[metrics] Add file output support\"\n\nAdds a new command line option, -Xwrite-metrics-to-file\u003d_, which\nspecifies a file for writing metrics to. This can be used in conjunction\nwith -Xwrite-metrics-to-log, which will cause the output to go to both\nlogcat and the file.\n\nWriting metrics to a file can be helpful for testing or benchmarking\nenvironments.\n\nAccess to the file is protected using advisory locking, so it is safe to\nhave multiple processes write metrics to the same file.\n\nThis reverts commit ce2e0957f065002293ef152da28b6fa941c6baa3.\n\nReason for revert: Fixed test failures by adding Android.bp file.\n\nTest: test/run-test --host test/2234-write-metrics-to-file\nBug: 175025360\nBug: 170149255\nChange-Id: I6768f5b4920896fc0f8e5866c878af999f73012d\n"
    },
    {
      "commit": "c0d392be9172c4c60b3e81b0123489ec3036c401",
      "tree": "13b77bab3a3a8a1acf26dc02d2ee09bcd3a51c36",
      "parents": [
        "c38d94449a0ccfefd396d2e01b571f3e804d9e48"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 29 20:41:43 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 12 09:39:41 2021 +0000"
      },
      "message": "Improve invokeinterface for nterp.\n\n- Remove bitwise negation of imt_index: the class linker already always\n  initializes the imt_index.\n- Special case the imt index of default methods: to simplify invocation\n  in nterp, mask the method_index to create the imt index.\n- Add arm64, arm, x64 support in nterp.\n\nTest: test.py\nBug: 112676029\nChange-Id: I815a4a4ec5c219921ab4ed1a20b02586aab19a46\n"
    },
    {
      "commit": "83881483515aec1dfaa0c848f1ce876c3f966b43",
      "tree": "01bfa31dbdef146ec88505378e4829f133a5ab91",
      "parents": [
        "7d4a71ee0ecab7bf65086c786fb5358444dd2a8f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jan 07 10:59:54 2021 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jan 11 13:53:33 2021 +0000"
      },
      "message": "Rewrite method matching in UnstartedRuntime.\n\nUse the `ArtMethod*` as the key in the maps to avoid\nthe `PrettyMethod()` overhead.\n\nRemove ByteOrder.isLittleEndian() implementation from\nUnstartedRuntime. The Java method has been removed by\n    https://android-review.googlesource.com/151062 .\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: boots.\nBug: 175869411\nChange-Id: I97cf91a0abf2b28f83562d8764d28edafa1a09e2\n"
    },
    {
      "commit": "7d4a71ee0ecab7bf65086c786fb5358444dd2a8f",
      "tree": "c6656cd3aba27ce75bfc560ed7257185883b3daa",
      "parents": [
        "72d3195772de83f74d940d461c75ffccd4b30272"
      ],
      "author": {
        "name": "liulvping",
        "email": "liulvping@xiaomi.com",
        "time": "Wed Dec 30 09:46:50 2020 +0800"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jan 11 10:59:42 2021 +0000"
      },
      "message": "Don\u0027t wrap exception when transaction is aborted\n\nIn unstarted runtime,to abort a transaction we use\na fake exception named TransactionAbortError which\nshould never be caught by the bytecode, therefore\nit makes no sense to wrap it, else invoking the\nconstructor for the wrap exception could violate\nthe write value constraint in transaction.\n\nIt\u0027s a difficult to write a regression test which\nneed compile a dex file with a class that uses\nspecial reflection in \u003cclinit\u003e as a boot image\nextension.\n\nTest: m test-art-host-gtest\nBug: 176505353\n\nSigned-off-by: liulvping \u003cliulvping@xiaomi.com\u003e\nChange-Id: I0f0e0317d140b48e38169b4eb6a68d8749708e41\n"
    },
    {
      "commit": "72d3195772de83f74d940d461c75ffccd4b30272",
      "tree": "65bcb5ad8b30cc2e7c0c8b69165bca359982e000",
      "parents": [
        "dc281e776c0395b54200c62626f90417f092a2bf"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jan 08 18:06:24 2021 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jan 11 10:50:35 2021 +0000"
      },
      "message": "Fix error message logging in `art::gc::space::ImageSpace::LoadBootImage`.\n\nTest: m com.android.art\nChange-Id: Icbc926abdd1cdccde92d8e2c7cb595e55b6a06ee\n"
    }
  ],
  "next": "47213e4e3773bfca0348b011831eaaa678cd0791"
}
