)]}'
{
  "log": [
    {
      "commit": "fe2886de2a9f06f286fe905ce8417981b9089c5c",
      "tree": "060025813c4ab6d3bfd98aaafa54a97be342a0c0",
      "parents": [
        "d7d3f6fa1870b9e9b8f58ab7854e5eeee071ba2e",
        "226805d9b81ba442251d0e2c4baedc36fcda6592"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 10 14:22:23 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 10 14:22:23 2019 +0000"
      },
      "message": "Merge \"Deoptimize zygote compiled methods in DeoptimizeBootImage.\""
    },
    {
      "commit": "436896cd020eee6de97b619a670832b0607c3f16",
      "tree": "7cc5cbafcfbe6f590cb3e9d816112815a3f00668",
      "parents": [
        "7458a7afdfe3046d962ea13dd0f6b176283505b2"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 02 15:06:53 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 03 09:19:10 2019 -0800"
      },
      "message": "ART: Some IWYU for IterationRange\n\nRemove unnecessary include. Forward-declare in common headers.\n\nBug: 119869270\nTest: mmma art\nChange-Id: I0a1403259ea3f1142548009deb6313dab0fed26f\n"
    },
    {
      "commit": "7458a7afdfe3046d962ea13dd0f6b176283505b2",
      "tree": "b4573042cc825952812de920f24c4af71322d509",
      "parents": [
        "ad1aa6340567c0660506069d760ff41483eb3821"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 02 10:32:11 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 03 09:19:10 2019 -0800"
      },
      "message": "ART: Refactor code_item_accessors\n\nRefactor to internal templated functions to not leak DexFile details\nprematurely.\n\nBug: 119869270\nTest: mmma art\nChange-Id: I6f281703b750ec016e8cf18abfa55980a00506dd\n"
    },
    {
      "commit": "ad1aa6340567c0660506069d760ff41483eb3821",
      "tree": "dbceabc90859e9353a8683d8be02a702205be9c9",
      "parents": [
        "b8bca301eff0db87d37bc4ab898a4973d211019b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 02 10:30:54 2019 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 03 09:19:10 2019 -0800"
      },
      "message": "ART: Move Signature to its own header\n\nReduce the dependencies on dex_file.h\n\nBug: 119869270\nTest: mmma art\nChange-Id: I1450fe2c3f4a7f5b535ed38cc19cb8a053228541\n"
    },
    {
      "commit": "3f1dcd39e134d994ac88dcc4f30ec8cabcd8decf",
      "tree": "365d20ad6b68ff1dbd4903764b63880324136e4d",
      "parents": [
        "0f0a4e40667c87fbd4ae5480eddbfd701bfabfa2"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Dec 28 09:39:56 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 02 10:32:25 2019 -0800"
      },
      "message": "ART: Move dex structs into own header\n\nSeparating out the structs from DexFile allows them to be forward-\ndeclared, which reduces the need to include the dex_file header.\n\nBug: 119869270\nTest: m\nChange-Id: I32dde5a632884bca7435cd584b4a81883de2e7b4\n"
    },
    {
      "commit": "226805d9b81ba442251d0e2c4baedc36fcda6592",
      "tree": "3a256b1d36894d8d43ec9650f2a3f55c90c4730c",
      "parents": [
        "96453b7d6aa445c6609aa465df5d66ae0beb7956"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 14 10:59:02 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 19 09:22:01 2018 +0000"
      },
      "message": "Deoptimize zygote compiled methods in DeoptimizeBootImage.\n\nThose methods don\u0027t get compiled with the \"debuggable\" flag,\nso we need to deoptimize them.\n\nAlso fix a bug revealed by the new test where a concurrent\nJIT collection happens when trying to disable it.\n\nAlso make DeoptimizeBootImage truly mutator lock exclusive.\n\nTest: 689-zygote-jit-deopt\nChange-Id: I00607dbe100350c5328293c35c87946fa97924b8\n"
    },
    {
      "commit": "e36e7f2226e4e08b7a7094f78cb80bbe0e729c2b",
      "tree": "0787ae19a232728121a60791f3a18094529120f1",
      "parents": [
        "244470afafdb1c5aba17507ef793d316b9c4d038"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Nov 14 14:21:23 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Nov 27 17:31:01 2018 +0000"
      },
      "message": "Store ImtIndex in ArtMethod.\n\nThis avoids recalculation and reduces pressure on the thread local cache.\n\nThis halves the time we spend hashing from 2% to 1% (maps on device).\n\nTest: ./art/test.py -b --host --64\nChange-Id: I2407bd9c222de4ddc6eea938908a1ac6d7abc35b\n"
    },
    {
      "commit": "85865697ff9fabede3d64ff64cde72727c3fc4c1",
      "tree": "0c67639c4c286149fa3f06f5f412683e39014790",
      "parents": [
        "b321ac28f726a7ed41f277382d85702ffdfbe00f"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Oct 30 17:26:20 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Nov 16 11:11:20 2018 +0000"
      },
      "message": "Runtime flags only for fast/slow hiddenapi path\n\nWith more flags being supported in the dex file, stop copying all of\nthem into ArtField/ArtMethod access flags. Instead, store the\ninformation needed to figure out whether to enter the slow path and\nretrieve full access flags from dex or not.\n\nAt the moment, the only runtime flag is kAccPublicApi assigned to all\nclass members on the whitelist.\n\nThe CL also moves hardcoded API membership of intrinsics out of\nArtMethod and into hidden_api.h, and moves ArtMethod::SetIntrinsic\ninto the .cc file.\n\nTest: m test-art\nChange-Id: Ia1cc05060dbc22341768161dfd8697c6158e803a\n"
    },
    {
      "commit": "9581e6176c78f3f2a8f40ff9d5a6c4d4029253fb",
      "tree": "e12f130a067566c9360b04e14714e8743c9e21ae",
      "parents": [
        "30890f6af9bae6ece7267c72e3c82e3c61da4d9e"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Oct 30 14:29:43 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Oct 31 09:42:07 2018 +0000"
      },
      "message": "Cache whether we should use interpreter invoke fast-path.\n\nThere is many conditions to check on each invoke.  If they all pass,\ncache the result in the access flags of the called ArtMethod.\n\nThis speeds up arm64 golem interpreter benchmarks by 4%.\n\nTest: ./art/test.py -b -r --interpreter --host --64\nChange-Id: I86313dbdba84cbf8c707aae84e0ff05b6e034700\n"
    },
    {
      "commit": "47cd272d15f41109b3dacb21cfa509d18a03e011",
      "tree": "f2693adde283631362b3acc2c573d7280632621f",
      "parents": [
        "6e32b0059b4c3073c601018da3ca315ad568525a"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Oct 23 12:50:02 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Oct 30 11:04:29 2018 +0000"
      },
      "message": "Remove HiddenApiAccessFlags, move content to hiddenapi::\n\nHiddenapi code in runtime/ has all code in the hiddenapi:: namespace\ninstead of using a class as a wrapper. Refactor HiddenApiAccessFlags\nfor consistency. Also turn ApiList into `enum class` for stricter\ntype checks.\n\nTest: m test-art\nChange-Id: Ifb3c443ea43860476abd4fd3d4934cd14e2cdcc1\n"
    },
    {
      "commit": "56de89aaf2a224de8c436291e3c23a1a61315437",
      "tree": "397fafa3662d1abde6fecff49f24a559c2b0ab32",
      "parents": [
        "ededf08e2f4a5df3401a5d4badb98ff3c8cb8fb9"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Oct 01 15:32:20 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Oct 03 14:38:59 2018 +0100"
      },
      "message": "Mark most *Offset helper functions as constexpr.\n\nMaking the values compile-time constants will help to\nclean up the cpp-define-generator.\n\nTest: test.py -b -g\nChange-Id: I612a19a54062784b501bfe4f41c6642d48e0dd21\n"
    },
    {
      "commit": "4df2d8041f5dcc7af8c3b3b60b0ea87a1e0d3b94",
      "tree": "0273072a2b65d6c0cf692a3e7f8eab9814d9d23d",
      "parents": [
        "233b572a940431a94a1790750afdceab2d6f4fde"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 27 16:42:44 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 28 09:12:06 2018 +0100"
      },
      "message": "Revert^2 \"Load boot image at a random address.\"\n\nThis reverts commit f3d077373536c54824e4449759dff2f18369eab3.\n\nFixed Heap constructor to reserve extra space for GSS.\n\nChange-Id: I6a65be35f4aa183304db5491da4a4810d8e3b266\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing --relocate --no-relocate\nTest: Pixel 2 XL boots.\nTest: m test-art-target-gtest\nTest: testrunner.py --target --optimizing --relocate --no-relocate\nTest: art/test/testrunner/run_build_test_target.py -j48 art-gtest-gss-gc-tlab\nBug: 77856493\n"
    },
    {
      "commit": "f3d077373536c54824e4449759dff2f18369eab3",
      "tree": "e00d19a342ff429fc514bf70bf52ff005a00911c",
      "parents": [
        "5ad79d85d77a42456728897ac3e2e7d4530e618e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 27 16:24:17 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 27 16:24:17 2018 +0000"
      },
      "message": "Revert \"Load boot image at a random address.\"\n\nThis reverts commit 5ad79d85d77a42456728897ac3e2e7d4530e618e.\n\nReason for revert: Breaks GSS garbage collection config.\n\nBug: 77856493\nChange-Id: Ifa39966ac2470154f8ba093de4804689d545219b\n"
    },
    {
      "commit": "5ad79d85d77a42456728897ac3e2e7d4530e618e",
      "tree": "ff70d1f12904c718f2f3f721d3846f4305eae53d",
      "parents": [
        "5d7015cd64085068b1685d44339b4b705ef3f065"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 03 09:54:09 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 26 13:08:36 2018 +0100"
      },
      "message": "Load boot image at a random address.\n\nAnd perform in-place fixup of references and pointers. This\ndirties all the boot image memory loaded by zygote, so there\nshall be no \"shared clean\" boot image pages anymore, these\nshall change to \"shared dirty\". However, as we\u0027re using a\nprofile-based boot image, these pages are presumably used\noften enough and unlikely to be paged out anyway.\n\nThe in-place fixup takes around 60-120ms when starting the\nzygote on aosp_taimen-userdebug. However, an experiment with\nMAP_POPULATE pushes the raw fixup down to around 12-15ms.\nIf we used compressed images, this would be the actual time\nfor fixup as the data would be already present in memory.\nIf we keep using uncompressed images, we shall need to tune\nthe loading with MAP_POPULATE or MADV_WILLNEED.\n\nThe -Xrelocate/-Xno-relocate option is re-interpreted from\n\"use patchoat if needed\" to \"relocate the boot image in\nmemory if possible\". We do not allow relocation for the AOT\ncompilation to speed up dex2oat execution and help producing\ndeterministic output.\n\nThe patchoat tool shall be removed in a follow-up CL.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing --relocate --no-relocate\nTest: Pixel 2 XL boots.\nTest: m test-art-target-gtest\nTest: testrunner.py --target --optimizing --relocate --no-relocate\nBug: 77856493\nChange-Id: I2db1fabefb5d4b85c798cd51e04c78cb232bff4a\n"
    },
    {
      "commit": "bbc6e7edb5fca4a61ac53dd9bce79cb4f0bb3403",
      "tree": "0fbce767bc383358cf4cd65aafc74140e1850982",
      "parents": [
        "19379b58bd433da91230e4fe6cd96e7416d16adc"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Aug 24 16:58:47 2018 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 28 11:06:07 2018 +0100"
      },
      "message": "Use \u0027final\u0027 and \u0027override\u0027 specifiers directly in ART.\n\nRemove all uses of macros \u0027FINAL\u0027 and \u0027OVERRIDE\u0027 and replace them with\n\u0027final\u0027 and \u0027override\u0027 specifiers. Remove all definitions of these\nmacros as well, which were located in these files:\n- libartbase/base/macros.h\n- test/913-heaps/heaps.cc\n- test/ti-agent/ti_macros.h\n\nART is now using C++14; the \u0027final\u0027 and \u0027override\u0027 specifiers have\nbeen introduced in C++11.\n\nTest: mmma art\nChange-Id: I256c7758155a71a2940ef2574925a44076feeebf\n"
    },
    {
      "commit": "c945e0d410ca8d4e9ba09272e8727a3192f1e449",
      "tree": "b010aeed33bb66bbaf9af355f21dfad2f9232dea",
      "parents": [
        "d93e374e273dd45f5d829399da1d4201bf46057e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jul 18 17:26:45 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 19 16:23:48 2018 +0100"
      },
      "message": "Remove ArtMethod\u0027s declaring class state checks.\n\nThis check was not very useful because the Class is already\nin a state to pass the check when we\u0027re constructing the\nArtMethod and it can never revert to an earlier state, so\nthe check is essentially a weak protection against GC bugs.\nBesides not being very useful, the check had the ability to\ninvalidate ObjPtr\u003c\u003e cookies (when called in non-runnable\nstate), making it difficult to fully ObjPtr\u003c\u003e-ify the code.\n\nAlso remove a lot of kReadBarrierOption template parameters\nwhich were needed specifically for this check. This removes\nunnecessary maintence burden as shown by past bugs dealing\nwith carefully adding those parameters where necessary.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 74373650\nBug: 31113334\nChange-Id: I87f2999fc4e7c27b5c2307139269b4b5f6649d16\n"
    },
    {
      "commit": "d93e374e273dd45f5d829399da1d4201bf46057e",
      "tree": "280dc72b2aec4696bbc35ad39ca8d3479107380e",
      "parents": [
        "7f7f9d3991f3a55da8934a3b72890d4776373598"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jul 18 10:58:13 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 19 16:04:38 2018 +0100"
      },
      "message": "ObjPtr\u003c\u003e-ify ArtMethod and mirror::Method.\n\nAnd clean up some forgotten things after old CLs.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 31113334\nChange-Id: I8af0e845c24d674d0efab21d80c29949b1cc0593\n"
    },
    {
      "commit": "18090d118bfb04620aeef719e2d7780c26298bf8",
      "tree": "040e5195f0278c9bc846d5543c0e36771ffc5b48",
      "parents": [
        "9ddef18ae95859a985e7a0de7e22999fcbc28e07"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 01 16:53:12 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jun 04 17:52:35 2018 +0100"
      },
      "message": "Refactor String resolution.\n\nUse the same pattern as type resolution and avoid some\nunnecessary read barriers in the fast path. Consolidate\nnaming between ArtField and ArtMethod.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nChange-Id: Iea69129085f61f04a4add09edd0eadbb7ac9ecb2\n"
    },
    {
      "commit": "904e75a66edea51adc11f61ad8ccaab557402095",
      "tree": "f8f1c1acdaf7575b110c1e2941896517ebfd6f8c",
      "parents": [
        "adff274917f36ce3aad85cd876e76d615734f2be"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue May 15 13:45:08 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed May 16 10:11:07 2018 +0000"
      },
      "message": "Fix stripping of access flags during JVMTI redefine\n\nWhen JVMTI redefines a method/field, it replaces the guts of an\nArtMethod with the implementation in a provided dex file. This\nprocess includes overwriting the intrinsics ordinal (stored in\nArtMethod\u0027s access flags) so that the new implementation is picked up.\nThis overwrite, however, does not check if the ArtMethod is an\nintrinsic in the first place and will clear the bits regardless.\n\nThis caused an issue for hidden API as its access flags conflict\nwith those of intrinsics. All redefined framework classes would\ntherefore become completely visible to all callers.\n\nThis patch fixes the issue by adding a IsIntrisic() check around the\nfunction which clears the access flags.\n\nBug: 79698297\nTest: art/test.py -b --host -r -t 999-redefine-hiddenapi\nTest: art/test.py -b --host -r -t 950-redefine-intrinsic\nChange-Id: I7e607d874cc732ceb118d58e4cd40ff4353215f5\n"
    },
    {
      "commit": "166546c3579b7a9deb413f8e44ad94b8ed41335b",
      "tree": "766450bb9576909e925c5e7d5e1b81c25dd05839",
      "parents": [
        "2e6f69c704202d41f0ab5ab0aa65583a26184e51"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Apr 23 13:50:38 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue May 08 10:32:23 2018 +0100"
      },
      "message": "Fix hidden API flags decoding for intrinsics\n\nHidden API decision logic would try to decode the access flags of\nintrinsics directly, bypassing the override in ArtMethod. This patch\nget hidden_api.h to use the same code path.\n\nThis also fixes CtsHiddenApiDiscoveryTestCases where the access flags\nof blacklisted APIs are tested. VarHandle intrinsics would not pass.\n\nBug: 64382372\nBug: 72430785\nBug: 78230396\nTest: cts-tradefed run cts --module CtsHiddenApiDiscoveryTestCases\nMerged-In: I080313dd91bbee2d7d98b00c02e224974b344c01\nChange-Id: I080313dd91bbee2d7d98b00c02e224974b344c01\n(cherry picked from commit 14c212a44ac9a3ad12025ebf30836129669fa949)\n"
    },
    {
      "commit": "2e6f69c704202d41f0ab5ab0aa65583a26184e51",
      "tree": "a9fc475db54eca326fa46eebf90a3f1399fa7d1c",
      "parents": [
        "1724520ec2788838413b20672f73afa5a00b0d4c"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 19 12:41:04 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue May 08 10:32:14 2018 +0100"
      },
      "message": "Set hidden API flags of intrinsics\n\nIntrinsics overwrite the hidden API access flags of the respective Java\nmethod, which is why we need to hardcode their API list membership.\n\nVarHandle intrinsics are blacklisted because they could be used to\nbypass hidden API checks and given they are new in P, should not be\nused by anybody except tests (that do not enforce API checks).\n\nThe remaining intrinsics which happen to be @hide are put on light\ngreylist. We used to put them on whitelist implicitly, hence never\nsaw warnings about them. To be safe, we put them on light grey.\n\nNote that these are set even for the core image that currently does\nnot have hidden API flags. That is fine because (a) VarHandles can\nstill be tested, and (b) light greylist membership may print warnings\nbut will not change the semantics.\n\nBug: 64382372\nBug: 77733081\nTest: make\nMerged-In: Ia9a7765260acb533560676e7dfcd51065cfb247d\nChange-Id: Ia9a7765260acb533560676e7dfcd51065cfb247d\n(cherry picked from commit 49dded0c15dbf3d7c3920ae4744c93c2d6081202)\n"
    },
    {
      "commit": "b041a406daf5213ac1d5c9bcdc197d34cba85bf3",
      "tree": "f32c9f97143d2df79940e070f2862cc7a5f6e807",
      "parents": [
        "51038fc5f8be887ff86fe062e6a5af840e37726d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 13 15:16:22 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 19 09:25:09 2018 +0000"
      },
      "message": "Use vdex\u0027s quickening info when decoding a quickened instruction.\n\nbug: 74521989\n\nTest: test.py, 678-quickening\nChange-Id: I3a85cc6014afcf11889941dcd15b90d4296b8408\n"
    },
    {
      "commit": "be4c2bd892bd167a50b4dfa7133e70a809197698",
      "tree": "150898533382fb98c160e265a5f31f66ded754f0",
      "parents": [
        "bfce631960ae2ab381180beb55cf34ab3b445aaa"
      ],
      "author": {
        "name": "Alexey Grebenkin",
        "email": "a.grebenkin@samsung.com",
        "time": "Thu Feb 01 19:09:59 2018 +0300"
      },
      "committer": {
        "name": "Artem Udovichenko",
        "email": "artem.u@samsung.com",
        "time": "Tue Mar 13 17:01:21 2018 +0300"
      },
      "message": "Fix dangling SingleImplementations left after class unloading\n\nTest: make test-art-host, manual using sample code\n\nbug: 73143991\n\nChange-Id: I4d56b39c69d4ed60266a8b90b9e9d18fba7b8227\n"
    },
    {
      "commit": "34088e16c93f482c251e55351022762760500b63",
      "tree": "5b26a3263e8f8ddecd5004783129784359cd4858",
      "parents": [
        "04bd682576416ef7c3bfb0ab6a74ec60beac724b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 08 10:56:09 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 08 14:01:54 2018 +0000"
      },
      "message": "Don\u0027t do a read barrier in JIT GC code.\n\nThe ArtMethod the JIT GC iterates over might be in the\nprocess of being unloaded.\n\nbug: 74369794\nTest: test.py --jit\nTest: test-art-host-run-test-debug-no-prebuild-jit-no-relocate-ntrace-cms-checkjni-picimage-npictest-ndebuggable-no-jvmti-cdex-fast-674-hiddenapi64\nChange-Id: Ibf8acb0df26f90c479420ef9d0c1b1bc1fcd3b0d\n"
    },
    {
      "commit": "58143d2c47734c46c1fa4855cb603c24f2d15454",
      "tree": "261bd69b379e5a39e39e3c15947960e53f389d98",
      "parents": [
        "a1b035b963d091ca6824f285c33de69c6e16ac77"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Feb 20 08:44:20 2018 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Mar 05 15:21:52 2018 +0000"
      },
      "message": "ART: Fixes for constructor parameter annotations\n\nSynthesize empty parameter annotations for implicit parameters on\nconstructors. Reflective methods for recovering parameter annotations\nexpect them to be present though they may not be present in the DEX file.\n\nBug: b/68033708\nTest: art/test/run-test --host 715\n\nChange-Id: I0827c7e71ff7c7e044fc9dd6c5aac639a0e1a4c6\n"
    },
    {
      "commit": "67bf42e89592c3a1c648f927f2ce3ccb189a1161",
      "tree": "054d5b7adf7cc62d4d2a2118a70c0fbdd1751610",
      "parents": [
        "d961043ff1dd6fddb68aa90c1f939cfafec24219"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Feb 26 16:43:04 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Feb 28 15:08:21 2018 -0800"
      },
      "message": "Header library to remove dependence on runtime/\n\nAdd a new header library to remove libdexfile and others\u0027 dependence on\nruntime (typically runtime/base) includes in libdexfile.  Also a small step\nto tease dexlayout and profman away from relying on these as well.\n\nBug: 22322814\nTest: make -j 50 checkbuild\n      make -j 50 test-art-host-gtest\n\nChange-Id: I38e2fe399a75f4bc6318c77a71954c00ea73ec2b\n"
    },
    {
      "commit": "fa854e4834c383daafd240902ecb291ecfdad7b6",
      "tree": "ac3d740dc0c7c6e91b286f467c3b111b178822c5",
      "parents": [
        "bae3065e57e2e82aa29d6207312c5ba38cff7426"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Feb 07 13:09:55 2018 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Feb 07 14:27:57 2018 +0000"
      },
      "message": "Visit targets of proxy methods when visiting thread roots.\n\nThe target of a non-static proxy method (`this` object), stored in the\nproxy method\u0027s stack frame, needs to be visited as GC root. This is\nespecially important in the case of a moving GC, where the proxy\ninstance may be moved like any object.\n\nFix initially provided by Robert Vollmer.\n\nTest: m test-art-host\nTest: art/test/testrunner/testrunner.py --gcstress -t 1939-proxy-frames\nTest: art/test/testrunner/testrunner.py --gcstress -t 1914-get-local-instance\nBug: 70216372\nBug: 67679263\nChange-Id: Iea27a8eba51ccd9c9055efaf6b263892830170b5\n"
    },
    {
      "commit": "0e9d0908a9462f8cc8881ae9a54e4fa131f3c3ea",
      "tree": "b46d45d62cc38ac045b410f5258d7c8aff9810a2",
      "parents": [
        "212e375f3f1b69bba5a96f1a6a44e4d28e546f4c",
        "8d728324571b720a952b297787eed70c7a1d1acb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 01 11:54:30 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 01 11:54:30 2018 +0000"
      },
      "message": "Merge \"Add compiler option for counting hotness in compiled code.\""
    },
    {
      "commit": "da244c9249149655b303950ce3f432ce1d47a2e0",
      "tree": "fc92772c0465c1008869d39542f456076742aa90",
      "parents": [
        "2f8ad4bc3284358575aad06822cac1650512cb1b",
        "0225f8e2939a9340cb7dcebfcfe7996a2bd9bce9"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Feb 01 09:27:46 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 01 09:27:46 2018 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Make libdexfile build independent of runtime dir\"\"\""
    },
    {
      "commit": "02e33ab15593a5944e711f78f8f5e1d81a94c856",
      "tree": "bb0c6354518f21af959deae8b839f4b45e4efeaa",
      "parents": [
        "f346af51a5d44ee0a3cd26e7e0e1b28ec1c5579f",
        "aa129ff1bffdd6cbfe159f9381ba0babf42dddbd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 31 17:02:31 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 31 17:02:31 2018 +0000"
      },
      "message": "Merge \"Do not DCHECK intrinsics with hidden API flags\""
    },
    {
      "commit": "0225f8e2939a9340cb7dcebfcfe7996a2bd9bce9",
      "tree": "fd32362dff4ecdc8ff8b0d800a1b46fb0d9d0104",
      "parents": [
        "c7e546ff3963a1d51b1f100d308db735bd19f736"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Jan 31 08:52:24 2018 +0000"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Jan 31 01:24:53 2018 -0800"
      },
      "message": "Revert \"Revert \"Make libdexfile build independent of runtime dir\"\"\n\nThis reverts commit 787784f9effb126b5d0d3dc97d544c4a477b5daf.\n\nReason for revert: Bot configuration issue.\n\nChange-Id: I6a10bb4a9571f89c7e4dd095f9157e830a44e2de\nBug: 22322814\nTest: make -j 50 checkbuild\n"
    },
    {
      "commit": "787784f9effb126b5d0d3dc97d544c4a477b5daf",
      "tree": "1ff6d9fd284a4dd2a337165dff20e71137997c9d",
      "parents": [
        "b40b7e73469339a6b667b4a2e2b8690112a74dc9"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Jan 30 18:48:51 2018 +0000"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Jan 30 18:48:51 2018 +0000"
      },
      "message": "Revert \"Make libdexfile build independent of runtime dir\"\n\nThis reverts commit b40b7e73469339a6b667b4a2e2b8690112a74dc9.\n\nReason for revert: on device libdexfile.so missing\n\nChange-Id: I9bd61a98bef870400580e8c991cb061d3f57fa72\n"
    },
    {
      "commit": "aa129ff1bffdd6cbfe159f9381ba0babf42dddbd",
      "tree": "92264351aa2f08d0e8944884ae4b1c5536f4b08f",
      "parents": [
        "d2b5229453af661572f0c76ac08dfd3f52727d5b"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Jan 30 16:11:02 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Jan 30 18:26:23 2018 +0000"
      },
      "message": "Do not DCHECK intrinsics with hidden API flags\n\nSwitching an ArtMethod into an intrinsic wipes its hidden API flags.\nThose with flags therefore need to be special cased. Disable the\nDCHECK for these for the moment.\n\nBug: 64382372\nTest: make\nChange-Id: I8ea3f53a1a86fd7a2f82b215ca068eeafec88c49\n"
    },
    {
      "commit": "b40b7e73469339a6b667b4a2e2b8690112a74dc9",
      "tree": "7e8a34d9c7894c4c946f674f19f0a0a512b95184",
      "parents": [
        "9690ad794b324ba54e936608881ac0f62538b97a"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Jan 25 17:11:07 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Jan 30 01:17:58 2018 -0800"
      },
      "message": "Make libdexfile build independent of runtime dir\n\nRemove libdexfile\u0027s dependency on utils.cc and move utf.cc into\n/dex.  Remove libdexfile\u0027s constituent sources from libart and\nuse libdexfile wherever libart is. Also remove some ART-specific\ninterfaces.  Libdexfile\u0027s tests remain to be converted, plus\nmoving the files to a new directory peer to runtime/.\n\nBug: 22322814\nTest: make -j 50 test-art-host\nChange-Id: Ifaf695216e4a0e43d3aa377984d933f7a2a243c2\n"
    },
    {
      "commit": "8d728324571b720a952b297787eed70c7a1d1acb",
      "tree": "f24a774aa56c236f2f756b1b439e4c61830bec56",
      "parents": [
        "0530796b73d0a33a5df27e3a7765c0835994769a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 18 22:44:32 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 29 09:34:05 2018 +0000"
      },
      "message": "Add compiler option for counting hotness in compiled code.\n\nFor eventually easier profiling of boot classpath and\nsystem server.\n\nbug: 30934496\nTest: 674-hotness-compiled\n\nChange-Id: I0f63c644527b74f6ef2649f481c2a1c731bb9f21\n"
    },
    {
      "commit": "8c0961f9e061ee4b04c1c4ba8ad5cca13bcf884d",
      "tree": "f6e5a970a6bcc0935e150cb6c28a520bf31ba964",
      "parents": [
        "2b1a21ed3581f77f34d582507177ebce33565534"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Jan 23 16:11:38 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Jan 24 09:24:29 2018 -0800"
      },
      "message": "Move missed files to libdexfile\n\nReduce the dependencies on utf and utils in preparation for separate\ndirectory.\n\nBug: 22322814\nTest: make -j 50 test-art-host\n      make -j 50 dexdump2 dexlist\n\nChange-Id: Icdecf895dafec63ef903514eef79d459abc14925\n"
    },
    {
      "commit": "f6a8a557e0e3099a2c458a81a4b48623989330a5",
      "tree": "e82439e60546643d34b888fd79c04ae7b4d899c0",
      "parents": [
        "1372c9772d37f43147d3791c998173811f04594c"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Jan 15 18:10:50 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jan 18 14:47:33 2018 +0000"
      },
      "message": "Set runtime hidden API access flags\n\nThe hiddenapi tool encodes new access flags into boot class path\ndex files, but we do not want to use those at runtime. They are\ncumbersome to decode and interfere with other flags.\n\nThis patch introduces new runtime access flags kAccHiddenApiBits,\ntwo consecutive bits in the space occupied by intrinsic ordinals\nwhich are used to encode the four categories of APIs in\nHiddenApiAccessFlags::ApiList. ClassLinker converts one encoding\nto the other when a new method/field is loaded from DexFile.\n\nDexHiddenAccessFlags have been made an internal class of new\nHiddenApiAccessFlags class which contains all the code related\nto encoding/decoding these flags for both DexFile and runtime.\n\nTest: m test-art-host\nBug: 64382372\nChange-Id: Ie055dc3440c44e8815030e652f08d9ee3dba69e5\n"
    },
    {
      "commit": "210531f8775c89feb90d430cd5b6026b4cf8ef89",
      "tree": "3c23fffcc0d1d7876f15f64672e0de98b1f051ca",
      "parents": [
        "3c9e0f69b04b614c44448e66e15c6f8a78da4b2c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jan 12 10:15:51 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Jan 13 01:40:03 2018 +0000"
      },
      "message": "Revert \"Revert \"Move quickening info logic to its own table\"\"\n\nBug: 71605148\nBug: 63756964\n\nTest: test-art-target on angler\n\nThis reverts commit 6716941120ae9f47ba1b8ef8e79820c4b5640350.\n\nChange-Id: Ic01ea4e8bb2c1de761fab354c5bbe27290538631\n"
    },
    {
      "commit": "6716941120ae9f47ba1b8ef8e79820c4b5640350",
      "tree": "76dd7d32703505d4ab44c0b55a7ecaf3ff66a94e",
      "parents": [
        "7a26f948204377130be7b738d70d7365c86a804b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 12 09:06:14 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 12 09:06:14 2018 +0000"
      },
      "message": "Revert \"Move quickening info logic to its own table\"\n\nBug: 71605148\nBug: 63756964\n\nSeems to fail on armv7.\n\nThis reverts commit f5245188d9c61f6b90eb30cca0875fbdcc493b15.\n\nChange-Id: I37786c04a8260ae3ec4a2cd73710126783c3ae7e\n"
    },
    {
      "commit": "7a26f948204377130be7b738d70d7365c86a804b",
      "tree": "dd3ab45b73127fdcbcdca64bbac484bfe2c0a8cd",
      "parents": [
        "29504326da13831fa3060ac507927c4d76aa556a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 04 18:23:55 2018 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 11 10:58:22 2018 -0800"
      },
      "message": "Move quickening info logic to its own table\n\nAdded a table that is indexed by dex method index. To prevent size\noverhead, there is only one slot for each 16 method indices. This\nmeans there is up to 15 loop iterations to get the quickening info\nfor a method. The quickening infos are now prefixed by a leb\nencoded length. This allows methods that aren\u0027t quickened to only\nhave 1.25 bytes of space overhead.\n\nThe value was picked arbitrarily, there is little advantage to\nincreasing the value since the table only takes 1 byte per 4 method\nindices currently. JIT benchmarks do not regress with the change.\n\nThere is a net space saving from removing 8 bytes from each\nquickening info since most scenarios have more quickened methods than\ncompiled methods.\n\nFor getting quick access to the table, a 4 byte preheader was added\nto each dex in the vdex file\n\nRemoved logic that stored the quickening info in the CodeItem\ndebug_info_offset field.\n\nThe change adds a small quicken table for each method index, this\nmeans that filters that don\u0027t quicken will have a slight increase in\nsize. The worst case scenario is compiling all the methods, this\nresults in 0.3% larger vdex for this case. The change also disables\ndeduping since the quicken infos need to be in dex method index\norder.\n\nFor filters that don\u0027t compile most methods like quicken and\nspeed-profile, there is space savings. For quicken, the vdex is 2%\nsmaller.\n\nBug: 71605148\nBug: 63756964\nTest: test-art-host\n\nChange-Id: I89cb679538811369c36b6ac8c40ea93135f813cd\n"
    },
    {
      "commit": "9e734c7ab4599d7747a05db0dc73c7b668cb6683",
      "tree": "dce1d1993734a947fb2e6f626eb1b425cb72143b",
      "parents": [
        "b496af808eaf3af5ebac50aef4fbec33323b5016"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Jan 04 17:56:19 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Jan 05 11:07:19 2018 -0800"
      },
      "message": "Create dex subdirectory\n\nMove all the DexFile related source to a common subdirectory dex/ of\nruntime.\n\nBug: 71361973\nTest: make -j 50 test-art-host\nChange-Id: I59e984ed660b93e0776556308be3d653722f5223\n"
    },
    {
      "commit": "808c7a57bb913b13c22884f57cdacd59bf1fdb3f",
      "tree": "d7f0d7cabaac5a7646c25bae584a82a9aa279cc0",
      "parents": [
        "64bae9fb677aa0e2406d13ea9f8ebaa92e16f978"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Dec 15 11:19:33 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Dec 22 09:41:17 2017 -0800"
      },
      "message": "Make CodeItem fields private\n\nMake code item fields private and use accessors. Added a hand full of\nfriend classes to reduce the size of the change.\n\nChanged default to be nullable and removed CreateNullable.\nCreateNullable was a bad API since it defaulted to the unsafe, may\nadd a CreateNonNullable if it\u0027s important for performance.\n\nMotivation:\nHave a different layout for code items in cdex.\n\nBug: 63756964\nTest: test-art-host-gtest\nTest: test/testrunner/testrunner.py --host\nTest: art/tools/run-jdwp-tests.sh \u0027--mode\u003dhost\u0027 \u0027--variant\u003dX32\u0027 --debug\n\nChange-Id: I42bc7435e20358682075cb6de52713b595f95bf9\n"
    },
    {
      "commit": "8f1a586fd4ac9796e75b2b18638e39b33ad6e9a2",
      "tree": "f1970c938487dbd9e773619804612ac824b0721c",
      "parents": [
        "2ba3557b6d2ea65956f7a98e6f0fd921f35792a5",
        "170331f0e44a0e07fcfe0b5932517e0500f5cd1f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 08 19:28:07 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 08 19:28:07 2017 +0000"
      },
      "message": "Merge changes I917df597,Ib2ca880e,Ib3733573,I3e3a4672\n\n* changes:\n  ART: Remove base/logging from heap-inl.h\n  ART: Factor out gAborting\n  ART: Move runtime-debug flags to own files\n  ART: Replace base/logging with android-base/logging\n"
    },
    {
      "commit": "28e012a4af2d710e5e5f824709ffd6432e4f549f",
      "tree": "576ebdbff9d5f9f098cd29d652215b8f67b6b042",
      "parents": [
        "4388fb213ec746ee18a6bea38ee894f8c19990b9"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 07 11:22:59 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 08 15:27:27 2017 +0000"
      },
      "message": "Determine HLoadClass/String load kind early.\n\nThis helps save memory by avoiding the allocation of\nHEnvironment and related objects for AOT references to\nboot image strings and classes (kBootImage* load kinds)\nand also for JIT references (kJitTableAddress).\n\nCompiling aosp_taimen-userdebug boot image, the most memory\nhungry method BatteryStats.dumpLocked() needs\n  - before:\n    Used 55105384 bytes of arena memory...\n    ...\n    UseListNode    10009704\n    Environment      423248\n    EnvVRegs       20676560\n    ...\n  - after:\n    Used 50559176 bytes of arena memory...\n    ...\n    UseListNode     8568936\n    Environment      365680\n    EnvVRegs       17628704\n    ...\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing --jit\nBug: 34053922\nChange-Id: I68e73a438e6ac8e8908e6fccf53bbeea8a64a077\n"
    },
    {
      "commit": "dcc528d2c7d5ac2cc075d4c965fdf702421d0f43",
      "tree": "e070070248facaf4c23f0ceb4a713de29b681462",
      "parents": [
        "57943810cfc789da890d73621741729da5feaaf8"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 07 13:37:10 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 07 16:26:11 2017 -0800"
      },
      "message": "ART: Move runtime-debug flags to own files\n\nTo reduce the need for base/logging.h and separate out concerns.\n\nTest: m\nChange-Id: Ib373357325c6e622f608ada341594c3bea2fce2e\n"
    },
    {
      "commit": "57943810cfc789da890d73621741729da5feaaf8",
      "tree": "367677a982a45af98ffe3e79543615875e8550b4",
      "parents": [
        "d5153627778e71ef68b510ce03c77467fa4d85bd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 06 21:39:13 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 07 16:26:11 2017 -0800"
      },
      "message": "ART: Replace base/logging with android-base/logging\n\nReplace wherever possible. ART\u0027s base/logging is now mainly VLOG\nand initialization code that is unnecessary to pull in and makes\nchanges to verbose logging more painful than they have to be.\n\nTest: m test-art-host\nChange-Id: I3e3a4672ba5b621e57590a526c7d1c8b749e4f6e\n"
    },
    {
      "commit": "2196c651ecc77e49992c6c329dfce45f78ff46cb",
      "tree": "4eb151632fc7b851101b4264286ce5e900fa06b5",
      "parents": [
        "dc93cac66f1db225474cec5bf0350fd7a148085e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 30 16:16:07 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 30 16:20:39 2017 +0000"
      },
      "message": "Revert^4 \"JIT JNI stubs.\"\n\nThe original CL,\n    https://android-review.googlesource.com/513417 ,\nhas a bug fixed in the Revert^2,\n    https://android-review.googlesource.com/550579 ,\nand this Revert^4 adds two more fixes:\n    - fix obsolete native method getting interpreter\n      entrypoint in 980-redefine-object,\n    - fix random JIT GC flakiness in 667-jit-jni-stub.\n\nTest: testrunner.py --host --prebuild --no-relocate \\\n      --no-image --jit -t 980-redefine-object\nBug: 65574695\nBug: 69843562\n\nThis reverts commit 056d7756152bb3ced81dd57781be5028428ce2bd.\n\nChange-Id: Ic778686168b90e29816fd526e23141dcbe5ea880\n"
    },
    {
      "commit": "056d7756152bb3ced81dd57781be5028428ce2bd",
      "tree": "154ae8968a450a2e02d88207fa09e380fd380553",
      "parents": [
        "e7441631a11e2e07ce863255a59ee4de29c6a56f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 30 09:12:13 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 30 09:12:13 2017 +0000"
      },
      "message": "Revert \"Revert \"Revert \"JIT JNI stubs.\"\"\"\n\nStill seeing occasional failures on 667-jit-jni-stub\n\nBug: 65574695\nBug: 69843562\n\nThis reverts commit e7441631a11e2e07ce863255a59ee4de29c6a56f.\n\nChange-Id: I3db751679ef7bdf31c933208aaffe4fac749a14b\n"
    },
    {
      "commit": "e7441631a11e2e07ce863255a59ee4de29c6a56f",
      "tree": "a0488fac018ea391d01b751b7254719937bdee8f",
      "parents": [
        "aa25db7d2a6f7f507c27ce49c99a33daf3059f8f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 29 13:00:56 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 29 14:04:26 2017 +0000"
      },
      "message": "Revert \"Revert \"JIT JNI stubs.\"\"\n\nThe original CL,\n    https://android-review.googlesource.com/513417 ,\nhad a bug for class unloading where a read barrier was\nexecuted at the wrong time from\n    ConcurrentCopying::MarkingPhase() -\u003e\n    ClassLinker::CleanupClassLoaders() -\u003e\n    ClassLinker::DeleteClassLoader() -\u003e\n    JitCodeCache::RemoveMethodsIn() -\u003e\n    JitCodeCache::JniStubKey::UpdateShorty() -\u003e\n    ArtMethod::GetShorty().\nThis has been fixed by removing sources of the read barrier\nfrom ArtMethod::GetShorty().\n\nTest: testrunner.py --host --prebuild --jit --no-relocate \\\n      --no-image -t 998-redefine-use-after-free\nBug: 65574695\nBug: 69843562\n\nThis reverts commit 47d31853e16a95393d760e6be2ffeeb0193f94a1.\n\nChange-Id: I06e7a15b09d9ff11cde15a7d1529644bfeca15e0\n"
    },
    {
      "commit": "47d31853e16a95393d760e6be2ffeeb0193f94a1",
      "tree": "344b0fddbbcc9a64bed2ba20dbe73fb227c2bdf4",
      "parents": [
        "3417eaefe4e714c489a6fb0cb89b4810d81bdf4d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 28 18:36:12 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 28 18:36:12 2017 +0000"
      },
      "message": "Revert \"JIT JNI stubs.\"\n\nSeems to break 998-redefine-use-after-free in\nsome --no-image configuration.\n\nBug: 65574695\nBug: 69843562\n\nThis reverts commit 3417eaefe4e714c489a6fb0cb89b4810d81bdf4d.\n\nChange-Id: I2dd157b931c17c791522ea2544c1982ed3519b86\n"
    },
    {
      "commit": "3417eaefe4e714c489a6fb0cb89b4810d81bdf4d",
      "tree": "fe97f5191d25d26ef4250280f4c599b3a50f2059",
      "parents": [
        "7bdc6e73fd97eb75f30b77f183e4fe6c2c599a09"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 21 18:14:28 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 28 13:00:09 2017 +0000"
      },
      "message": "JIT JNI stubs.\n\nAllow the JIT compiler to compile JNI stubs and make sure\nthey can be collected once they are not in use anymore.\n\nTest: 667-jit-jni-stub\nTest: Pixel 2 XL boots.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --jit\nTest: testrunner.py --target --jit\nBug: 65574695\nChange-Id: Idf81f50bcfa68c0c403ad2b49058be62b21b7b1f\n"
    },
    {
      "commit": "169bf2bf2d962f23d37b4d6879d8e54d89b24f72",
      "tree": "67a6c1ee1d8ac79356ccc0ef8d3e1bd8249cb98a",
      "parents": [
        "eab2b429ee036134f85620cac84a18b8df71fded",
        "b8db20098ea13d51e697b7a27931ba5d300639f4"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 14 15:56:40 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 14 15:56:40 2017 +0000"
      },
      "message": "Merge \"Put back kWithoutReadBarrier.\""
    },
    {
      "commit": "b8db20098ea13d51e697b7a27931ba5d300639f4",
      "tree": "a36895d38b20a56cd81056d723d3f4fb0ee83db7",
      "parents": [
        "73de384319d25bcc59ce365f5ec7952febb94b58"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 14 14:02:23 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 14 14:02:23 2017 +0000"
      },
      "message": "Put back kWithoutReadBarrier.\n\nIt was mistakenly removed in:\nhttps://android-review.googlesource.com/#/c/platform/art/+/518395/\n\nBug: 65574695\nBug: 35644369\nTest: test.py\nChange-Id: Iafe8d3187fb9a609d7531a85127cd05bf1a1eaf3\n"
    },
    {
      "commit": "8eaa8e59c95aac26cc072cdbaaccd8f3976f113d",
      "tree": "613ebe58b921780913a417f09b0f2a0f686c89d8",
      "parents": [
        "5552e535951f2feb10bfd492b8abb54bd41a9f4b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 13 17:47:50 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 14 09:48:17 2017 +0000"
      },
      "message": "Remove kIsVdexEnabled.\n\nIt is now always assumed there is one.\n\nTest: test.py\nChange-Id: I8f3f5c722fb8c4a0f9ad8ea685d1a956bd0ac9ae\n"
    },
    {
      "commit": "b3e7bcc737a5af57549e47370523912e31e434f7",
      "tree": "5547f785e167696747ae2e0bc2b3ea866e7b9c7f",
      "parents": [
        "a16fec549253638268dda3d83e6e34a500cbfc1c",
        "69147f165efaa9da152bb37da3a16dd5d8c6cf3c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 10 17:03:43 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 10 17:03:43 2017 +0000"
      },
      "message": "Merge \"Add code item accessor helper classes\""
    },
    {
      "commit": "b0a6aeee250945b1d156ebab94053380f2e5a3c5",
      "tree": "7ddb52bb20997b8f1c81be3df2250949a088e697",
      "parents": [
        "0db16e00e3927445585a588499731c58c1ae1bef"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Oct 27 10:34:04 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 10 08:30:36 2017 +0000"
      },
      "message": "Record @{Fast,Critical}Native in method\u0027s access flags.\n\nRepurpose the old kAccFastNative flag (which wasn\u0027t actually\nused for some time) and define a new kAccCriticalNative flag\nto record the native method\u0027s annotation-based kind. This\navoids repeated determination of the kind from GenericJNI.\nAnd making two transitions to runnable and back (using the\nScopedObjectAccess) from GenericJniMethodEnd() for normal\nnative methods just to determine that we need to transition\nto runnable was really weird.\n\nSince the IsFastNative() function now records the presence\nof the @FastNative annotation, synchronized @FastNative\nmethod calls now avoid thread state transitions.\n\nWhen initializing the Runtime without a boot image, the\nWellKnowClasses may not yet be initialized, so relax the\nDCheckNativeAnnotation() to take that into account.\n\nAlso revert\n    https://android-review.googlesource.com/509715\nas the annotation checks are now much faster.\n\nBug: 65574695\nBug: 35644369\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nChange-Id: I2fc5ba192b9ce710a0e9202977b4f9543e387efe\n"
    },
    {
      "commit": "69147f165efaa9da152bb37da3a16dd5d8c6cf3c",
      "tree": "25dbec549b8c06cf24729a577c76ef0b6d3d4c7f",
      "parents": [
        "2202d56061941b4fecbdb018d84bcefb05b6c683"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 06 20:02:24 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 09 19:06:10 2017 -0800"
      },
      "message": "Add code item accessor helper classes\n\nAdd classes to abstract accesses to code item data. These classes\nhandle both standard dex and compact dex.\n\nAdded:\n- CodeItemInstructionsAccessor to handle code item instructions.\n- CodeItemDataAccessor to handle code item data excluding debug info.\n\nMoved inline_method_analyzer to use the new classes to test the new\nAPIs.\n\nBug: 63756964\nTest: test-art-host\nChange-Id: I9926acb77b81fa64ed4a3b49b7bed1aab30a0f33\n"
    },
    {
      "commit": "0db16e00e3927445585a588499731c58c1ae1bef",
      "tree": "9d151a03534703642d20cd2265260ff13c7592a4",
      "parents": [
        "a3c21d9c0552a04dfa69817b991b8e902cd0d6d6"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 08 14:32:33 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 08 14:50:56 2017 +0000"
      },
      "message": "Use strcmp() for checking @{Fast,Critical}Native annotations.\n\nInstead of looking up the descriptor in boot class path\nloader (where @{Fast,Critical}Native are guaranteed to\nbe already resolved) and then checking if it\u0027s the\n@{Fast,Critical}Native annotation, just check the\ndescriptor with strcmp().\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 65574695\nChange-Id: I765590d039981d169fb3c606b6166580a84303b6\n"
    },
    {
      "commit": "eb4d19bc3fde3a4736b61253bccfd4a49d8b3697",
      "tree": "74c5a6a0fea24bc5dd85e501862dda283a9001e3",
      "parents": [
        "fd443eb00b2456006f03252ba085c1f851e8adf5"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Nov 06 15:49:23 2017 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Nov 06 16:14:19 2017 +0000"
      },
      "message": "ART: Remove ArtMethod::IsAnnotatedWithPolymorphicSignature\n\nAvoids relying on PolymorphicSignature annotation in determining\nwhether a method is signature polymorphic.\n\nBug: 65872996\nTest: art/test.py --host -j32\nChange-Id: If064b92575bf4e4d7eba5dc5332f780e96054fe2\n"
    },
    {
      "commit": "43f0cdbe3281cd5c9a33d5472b1538e5617f6691",
      "tree": "afed702b60c483bd5fa63be7cb3ad866b83d24d1",
      "parents": [
        "26ef34c01ae5db2d3c964844b3717b8974a612c9"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Oct 10 14:47:32 2017 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Nov 01 16:22:45 2017 +0000"
      },
      "message": "ART: Intrinsify polymorphic signature methods\n\nAdds VarHandle accessor method to list of intrinsics.\n\nAdds code to interpreter to ensure intrinsics with polymorphic\nsignatures are initialized.\n\nRename most uses of InvokePolymorphic to InvokeMethodHandle (and\nsimilar changes) to be clear that the particular code path applies to\nMethodHandle instances rather than VarHandle.\n\nChange-Id: Ib74865124a1e986badc0a7c4bb3d782af07225d4\nBug: 65872996\nTest: art/test.py --host\n"
    },
    {
      "commit": "cfcc9cfb44bab79f7381bcc4bfd9bf2d4435f734",
      "tree": "6637daf0cde4f14afd02793ad268f22f9257bd4c",
      "parents": [
        "f67f115423c9ef5aa62a33c12670cd8f89457c9c"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Sep 29 15:07:27 2017 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Sun Oct 01 12:08:08 2017 +0100"
      },
      "message": "ART: Increase the number of potential instrinsics\n\nThe new limit is 256 intrinsics.\n\nAdds additional sanity checks.\n\nAvoids setting the kAccPreviouslyWarm bit for intrinics (defaults to\ntrue).\n\nBug: 65872996\nTest: art/test.py --host -j32\nChange-Id: I33ea67c9b6b8500b3ceb8a085358f075f6fcbb82\n"
    },
    {
      "commit": "e2abbc604ce003c776c00ecf1293796bb4c4ac5a",
      "tree": "f7d124d1861cad2162c30dfe932bb4e1beaf41ef",
      "parents": [
        "7090dfe84f78b1928fcbdfd664d0dd9ea52633ff"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 15 11:59:26 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 18 11:36:24 2017 -0700"
      },
      "message": "ART: Move kDexNoIndex to dex_file_types.h\n\nDefine the constant with the types to allow lowering the dependency\non DexFile.\n\nTest: m\nChange-Id: I3c61421db45be96d2057e01b1a7825883d8bd178\n"
    },
    {
      "commit": "a49e053faa4a254df1f21e055cb73555de241cfc",
      "tree": "bed0e8f0934550d4329c0aed10f016c884c6750f",
      "parents": [
        "47d00f6c4657af33c3cc29783c0f2eb156aa1449"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Aug 25 08:05:29 2017 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Sep 11 15:31:00 2017 -0700"
      },
      "message": "Show ArtMethods in imgdiag\n\nSince ArtMethods were moved out of mirror:: classes imgdiag does not\nshow information about them.  Diff ArtMethods to facilitate finding\ndirty memory there.\n\nBug: 38173645\nTest: imgdiag --boot-image\u003d/system/framework/boot.art --image-diff-pid\u003d`pid system_server`\nChange-Id: Icd86a9ef14d5177a297026c22c81c080f5c85fc1\n"
    },
    {
      "commit": "5122e6ba34d46851cd89f2ad55bf6bb067e038d6",
      "tree": "e96ba37b6451be7a06d930b0274251cac35ce05e",
      "parents": [
        "02cb397857c979dffae95e2db2678a72ec407cf0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 17 16:10:09 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 29 11:29:31 2017 +0100"
      },
      "message": "ART: Remove ArtMethod::dex_cache_resolved_methods_.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: testrunner.py --target on Nexus 6P\nTest: Repeat the above tests with ART_HEAP_POISONING\u003dtrue\nTest: Build aosp_mips64-eng\nChange-Id: I9cd0b8aa5001542b0863cccfca4f9c1cd4d25396\n"
    },
    {
      "commit": "d1ee20fed62cd8db8fd496c4e5760dc554136020",
      "tree": "3252b0983fc23118846b68e0fc9b65b86af030eb",
      "parents": [
        "2ade881db8642f10007c1c46b5e7f073d463c2d3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 17 09:21:16 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 17 10:38:57 2017 +0100"
      },
      "message": "Revert^4 \"ART: Use proxy ArtMethod\u0027s data_ to store the interface method.\"\n\nFix a DCHECK() failure while visiting references for non-CC\nmoving GC by avoiding the DCHECK(); reference equality may\ngive false negatives at that stage as we may compare the new\nreference against an old one for the same object.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: testrunner.py --host --jit\nTest: testrunner.py --host --gcstress\nTest: ART_DEFAULT_GC_TYPE\u003dSS ART_USE_READ_BARRIER\u003dfalse \\\n      testrunner.py --host --gcstress -t 048-reflect-v8\n\nThis reverts commit 76ccd09c3d98317dfbd179c6f5c231dcfc5d6996.\n\nChange-Id: I13cc339d5b31fceedf39ea9a77f27369ba72279f\n"
    },
    {
      "commit": "76ccd09c3d98317dfbd179c6f5c231dcfc5d6996",
      "tree": "07f1546ce7a090af8c88110598920769bfb5e669",
      "parents": [
        "c42fab35f18539957debb8703195eeb76c9718f7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Aug 15 19:11:54 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Aug 15 19:11:54 2017 +0000"
      },
      "message": "Revert^3 \"ART: Use proxy ArtMethod\u0027s data_ to store the interface method.\"\"\n\nStill failling:\n\n+dalvikvm64 F 08-15 18:54:16 218912 218912 art_method-inl.h:395] Check failed: !GetDeclaringClass()-\u003eIsResolved() || interface_method-\u003eGetDeclaringClass()-\u003eIsAssignableFrom(GetDeclaringClass()) \n\n\nThis reverts commit c42fab35f18539957debb8703195eeb76c9718f7.\n\nChange-Id: I91b51f8c1e7f6e0ae876b751d8e9cd3b8acb62f6\n"
    },
    {
      "commit": "c42fab35f18539957debb8703195eeb76c9718f7",
      "tree": "65bcf5256213282a315a34621b3fbc73786c1585",
      "parents": [
        "f0c66eb04db3c9fc513f50dfaad1385cf703820e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 15 14:11:49 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 15 15:18:07 2017 +0100"
      },
      "message": "Revert^2 \"ART: Use proxy ArtMethod\u0027s data_ to store the interface method.\"\n\nFix a DCHECK() to ignore unresolved proxy classes.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: testrunner.py --host --jit\nTest: testrunner.py --host --gcstress\n\nThis reverts commit 7ef52f75dd6e981e1e8c7567f593c197e8a94dcc.\n\nChange-Id: Idccdb04958a8bdb1c58b529dfb92885993ac62ea\n"
    },
    {
      "commit": "7ef52f75dd6e981e1e8c7567f593c197e8a94dcc",
      "tree": "9685b783f628e290c6307d6ead024aac749a11ab",
      "parents": [
        "0888cf1821d6622fd623db31000be19b9365f81c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Aug 14 18:52:32 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Aug 14 18:52:32 2017 +0000"
      },
      "message": "Revert \"ART: Use proxy ArtMethod\u0027s data_ to store the interface method.\"\n\nBroke a few tests with:\n+dalvikvm64 F 08-14 18:36:32 136697 136697 art_method-inl.h:392] Check failed: interface_method-\u003eGetDeclaringClass()-\u003eIsAssignableFrom(GetDeclaringClass()) \n\n\nThis reverts commit 0888cf1821d6622fd623db31000be19b9365f81c.\n\nChange-Id: Idc93b6686392f9dfeca3bc11bd22104948fd9fd3\n"
    },
    {
      "commit": "0888cf1821d6622fd623db31000be19b9365f81c",
      "tree": "fc1e251066fa30ffd475b8a51c15f17bc976b13f",
      "parents": [
        "f9fd236b047a4851f24a3829acfd7e3340676305"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jul 28 12:55:17 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Aug 14 14:06:49 2017 +0100"
      },
      "message": "ART: Use proxy ArtMethod\u0027s data_ to store the interface method.\n\nThis immensely simplifies the interface method retrieval\nand removes one dependency on dex_cache_resolved_methods_.\nWe may later consider removing that member if we deem the\nmemory savings worth the performance impact.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: testrunner.py --host --jit\nChange-Id: Id76349c69e4c4dea4e3b297bd504db8f98f1b7cc\n"
    },
    {
      "commit": "b45528c1f1b83ca8c970f439b54fbfcfda6908ea",
      "tree": "e8f493a7b21064d353d112ea1378d7819db385aa",
      "parents": [
        "2c2e13ec24bff70db6e49270b9d4d787add9925e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 27 14:14:28 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 27 15:30:47 2017 +0100"
      },
      "message": "ART: Refactor retrieval of types through ArtMethod.\n\nSplit Get*() functions that take a \"bool resolve\"\nargument into Lookup*() and Resolve*() functions.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nChange-Id: I0b7eaa1fadc2ffa8c0168203790467f91a126963\n"
    },
    {
      "commit": "07bfbace6f835e6c748fd68ec7624992478b16c1",
      "tree": "5d094a00fbc90455bd9b53e042cf8b4fe8433462",
      "parents": [
        "ba118827465d12177f3996e50133960087b1c916"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 06 14:55:02 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 20 16:33:00 2017 +0100"
      },
      "message": "Hash-based DexCache methods array.\n\nTotal boot*.art size for aosp_angler-userdebug:\n  - arm64:\n    - before: 11603968\n    - after: 10129408 (-1.4MiB, -12.7%)\n  - arm:\n    - before: 8626176\n    - after: 7888896 (-0.7MiB, -8.5%)\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: Nexus 6P boots.\nTest: testrunner.py --target\nTest: Build aosp_mips64-eng\nBug: 30627598\nChange-Id: I7f858605de5f074cbd7f0d9c4c072fbd44aee28f\n"
    },
    {
      "commit": "97e78033e6cf81d72c9d4d016e349282b911303c",
      "tree": "6d24f271c7c707646ae2eb87161c887004fcd469",
      "parents": [
        "ef43805b0e80015645a5fc52e53b93ad178f60e3"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jun 27 17:51:55 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jun 28 09:55:48 2017 -0700"
      },
      "message": "Move debugger.cc GetCanonicalMethod to ArtMethod\n\nThis functionality will be useful to other parts of the runtime so put\nit in a more central place.\n\nTest: ./test.py --host -j40\nChange-Id: I4d19cc1016884f5921245ac284c7323cbf3ea8cd\n"
    },
    {
      "commit": "35e42f0ab3b70203038fe037ee50d39e2d37af9a",
      "tree": "2c8e6fd5a88ce40dff7daf078954832bebec46a0",
      "parents": [
        "46e67be2da4623025c306b3bd21b96ce10ae1b6e"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jun 26 18:14:39 2017 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jun 27 14:13:14 2017 +0100"
      },
      "message": "Only look for method optimization annotations in the bootstrap class loader.\n\nWhen checking for an optimization annotation (FastNative or\nCriticalNative) on a method, do not resolve the method\u0027s annotations\u0027\nclasses as a side effect -- instead, look them up in the bootstrap\nclass loader\u0027s resolved types. This is to prevent exceptions from being\nthrown (during class resolution) in JNI transitions.\n\nThis change does not affect annotation lookup rules in the context of\nreflection.\n\nTest: art/test/testrunner/testrunner.py -t 656-annotation-lookup-generic-jni\nBug: 38454151\nBug: 34659969\nChange-Id: Ie6b8b30b96a08baa629c449e3803a031515508d1\n"
    },
    {
      "commit": "a792067fcf354b02cbab0a51b51842b73274d4cd",
      "tree": "6139b0928d66ef4f17b5386f7a9cc1dc81f1c59e",
      "parents": [
        "2cf565901845e4bafc663c24071c91d13c692858"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 23 09:41:20 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 23 11:11:03 2017 +0100"
      },
      "message": "Don\u0027t do a read barrier in GetProfilingInfo.\n\nProfilingInfos are handled by the JIT, which treats declaring classes\nof methods having these ProfilingInfo as weak roots. So it might be\npossible the JIT requests a ProfilingInfo for a class that is going\nto be unloaded (and that\u0027s ok, as the memory for the ProfilingInfo\nis reclaimed by the JIT and is done before unloading the class).\n\nbug: 62914384\nTest: test.py\nChange-Id: I84571786c1569782fb02d68257c4f70b195f27b6\n"
    },
    {
      "commit": "aea05c17f8c12ac7032e252f997a4c61c071e2d6",
      "tree": "4b6a33b180103e1b8ee36099ed189224f7b2fb6c",
      "parents": [
        "1c5b42f00933b8f28b447f039fb93a7d9a9db06f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri May 19 08:45:02 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 21 12:55:47 2017 -0700"
      },
      "message": "ART: Move debug-checks to runtime-debug-flags\n\nCurrent slow checks:\n* Class status checking in ArtMethod\n* Read barrier invariant checking\n\nBug: 35644369\nTest: m test-art-host\nChange-Id: I66138a9accc601fa0fa675cf600412ad3629d28f\n"
    },
    {
      "commit": "d76615851af31791c7b1549e8c4609152237b9ce",
      "tree": "e438a8cb0892e02768c55c2bc99f8be1d00abacb",
      "parents": [
        "6ecff4d2127e70738aa2493d6deceb946c204eff"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon May 01 13:48:16 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jun 07 11:10:50 2017 -0700"
      },
      "message": "Handler-ize InstrumentationListener and related code\n\nWe are going to be making instrumentation listeners that can cause\nsuspensions during their running. We explicitly handler-ize all the\ninstrumentation listener functions in order to ensure this is safe.\n\nBug: 34414073\nTest: ./test.py --host --ntrace --trace -j40\nChange-Id: Ic719080d0991b104d41b7757df8d1f332c72cd04\n"
    },
    {
      "commit": "5d08fcc21a14190c4dba3028a3e35d281afdd016",
      "tree": "c42de65ced190778342d9b022e400f4a7f9d346b",
      "parents": [
        "57cf00bde719ddc84a6015b107b90a20169e3099"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jun 05 17:56:46 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jun 05 20:28:16 2017 -0700"
      },
      "message": "ART: More header cleanups\n\nPull out more dependencies through forward declarations.\n\nTest: m test-art-host\nChange-Id: I7d86726928937f788b956ec9eac91532d66d57ae\n"
    },
    {
      "commit": "c6ea7d00ad069a2736f603daa3d8eaa9a1f8ea11",
      "tree": "a6d3332a8592fb806841314d55b206b573d37d86",
      "parents": [
        "d68677c5fde1ace16ea58d65733776c954e7acb4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Feb 01 16:46:28 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 21 08:40:33 2017 -0700"
      },
      "message": "ART: Clean up art_method.h\n\nClean up the header. Fix up other headers including the -inl file,\nin an effort to prune the include graph. Fix broken transitive\nincludes by making includes explicit. Introduce new -inl files\nfor method handles and reference visiting.\n\nTest: source build/envsetup.sh \u0026\u0026 lunch aosp_angler-userdebug \u0026\u0026 mmma art\nTest: source build/envsetup.sh \u0026\u0026 lunch aosp_mips64-userdebug \u0026\u0026 mmma art\nChange-Id: I8f60f1160c2a702fdf3598149dae38f6fa6bc851\n"
    },
    {
      "commit": "d78ddec5f8eaf1f27e9043f6f42be90149ccb966",
      "tree": "e3c21f93e419ba35486cf8f641d816523a06b9a3",
      "parents": [
        "66f43b988ad84568a46c1760b314723e9229e6d0"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Apr 18 15:20:38 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Apr 19 09:44:25 2017 -0700"
      },
      "message": "Implement can_generate_native_method_bind capability\n\nThis capability lets one observe and even replace the implementations\nof native methods when they are bound.\n\nTest: ./test.py --host -j40\n\nBug: 37432636\nChange-Id: I2432a8e4da1a677e8011ce495296f4ab9f42eb3e\n"
    },
    {
      "commit": "8c19d2431f45861ca11cf5ebc4fdaf10200f2458",
      "tree": "2d376ce322be680898d55fde929e67032d4c711c",
      "parents": [
        "4e03442619834c56dbf79a3493eb8a2d91b93e7f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 06 12:35:10 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 29 16:51:26 2017 -0700"
      },
      "message": "Refactor image writer\n\nAim to have common functions for copying references and pointers.\nRequired for adding support for faster image fixups.\n\nTest: test-art-host -j32\n\nBug: 34927277\nBug: 34928633\nChange-Id: Ia654efc483b332eea3535570496bfeccd7c635ee\n"
    },
    {
      "commit": "18ea1c9e9281b5c143b8c376d76c3ff9cae885fb",
      "tree": "1b2a4a2d8c15fc9a01e539f29275a05833cb44f9",
      "parents": [
        "624dc59e7d0ab8b916a986b502cb358d16182234"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 27 08:00:18 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 27 09:02:22 2017 +0100"
      },
      "message": "\"Revert^6 \"CHA for interface method.\"\"\"\n\nUpdate test expectations for CHA tests flaking on no-dex2oat.\n\nbug:36344221\n\nThis reverts commit 27ef25f084017421ca05508208f436b5fc11df73.\n\nChange-Id: Ie92adc7a2ec3b3081a1c57d71f8c89247e58cd46\n"
    },
    {
      "commit": "27ef25f084017421ca05508208f436b5fc11df73",
      "tree": "2059bf861c7992cfa195e7301451b98908c8abc6",
      "parents": [
        "fb185130f35bbfe2ba1875974ed39ef0b3c7a77f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 24 08:59:22 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 24 08:59:22 2017 +0000"
      },
      "message": "Revert \"Revert^4 \"CHA for interface method.\"\"\n\nStill failing on the bots.\n\nThis reverts commit fb185130f35bbfe2ba1875974ed39ef0b3c7a77f.\n\nChange-Id: I1629e237dd41ce4784ccadbfc346352dfcbdb137\n"
    },
    {
      "commit": "fb185130f35bbfe2ba1875974ed39ef0b3c7a77f",
      "tree": "47cab7e151d7de2d86d9499e264273f7262699b9",
      "parents": [
        "a861b0daacd508dacfdac6c337c1128904e5b386"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Mar 16 16:19:15 2017 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Mar 22 14:26:20 2017 -0700"
      },
      "message": "Revert^4 \"CHA for interface method.\"\n\nThis reverts commit 43e99be9db10111a2d6e094882cd06c248c69e11.\n\nAlso fix the issue that tries to change invoke-interface to\nan invoke-virtual of a cross-dexfile proxy method. Added a\ntestcase.\n\nTest: run-libcore-tests.sh --mode\u003dhost --variant\u003dX64 --debug\nTest: ART_TEST_JIT\u003dtrue m -j20 test-art-host-run-test\nChange-Id: Iacdf9d7ad93590e8163ed59d5838d70700a69018\n"
    },
    {
      "commit": "f2f1c9dab95892ec2983f57185c2bb0fbce80f80",
      "tree": "163613230c2afb656f9ee2b232253d76624e3bf8",
      "parents": [
        "8a31bb939f2ab1fe3f745ade40408ac07267208a"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Mar 15 15:35:46 2017 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Mar 15 09:19:22 2017 -0700"
      },
      "message": "Revert \"Revert \"Refactor annotation code for obsolete methods.\"\"\n\nThe number of InterruptedExceptions created during runtime shutdown is\nsometimes inconsistent so we will filter those out of the test results.\n\nThis reverts commit 65e0775010121498a37fa26c64fcc5bb17a6c1b5.\n\nReason for revert: Fixed issue with test flakes\n\nBug: 31455788\nTest: stress --cpu 60; while ./test/run-test --host 980; do; done\n\nChange-Id: Idf53ea11ceec1f48c433da468b31092bf230de57\n"
    },
    {
      "commit": "65e0775010121498a37fa26c64fcc5bb17a6c1b5",
      "tree": "5849c59b4e2de57fa8156149597f4a921a2f04d9",
      "parents": [
        "5378b64af97f9ae06082c697a6b13d2b98e02abb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 15 06:56:35 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 15 06:58:57 2017 +0000"
      },
      "message": "Revert \"Refactor annotation code for obsolete methods.\"\n\nTest has flakes.\nBug: 31455788\n\nThis reverts commit 672a0b75c91af44749b1e946684e6a65a884d778.\n\nChange-Id: If00ecbd31abe204bcaf8341eceb674e07c0ac8f2\n"
    },
    {
      "commit": "bfe66b01844328bab508f305df3b5d46ca6798a7",
      "tree": "de590d9346e3b7ffe3725b36792264dc28d5f4f4",
      "parents": [
        "9f2498c21a7d02605e61c5b2145ba55abf1c3703",
        "43e99be9db10111a2d6e094882cd06c248c69e11"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 15 06:29:09 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 15 06:29:10 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"CHA for interface method.\"\"\"\""
    },
    {
      "commit": "43e99be9db10111a2d6e094882cd06c248c69e11",
      "tree": "fb4d9ed1e6a5230c3a54e07157f017cf60167e51",
      "parents": [
        "8f301e26943c53485abc2da5ff1907f7c2e0ff0c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 15 06:28:52 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 15 06:28:52 2017 +0000"
      },
      "message": "Revert \"Revert \"Revert \"CHA for interface method.\"\"\"\n\nBreaks libcore tests.\n\nThis reverts commit 8f301e26943c53485abc2da5ff1907f7c2e0ff0c.\n\nChange-Id: Iea46176118be9e05aceb06f2d290961bb1f38265\n"
    },
    {
      "commit": "875e3225c52570a806a8d3719ea89ef9d72bf7ae",
      "tree": "10597eb6e63f7da237cca23e75889c5583561d4e",
      "parents": [
        "bff6bac661d05ad184c831a2b0b224260f2e2956",
        "672a0b75c91af44749b1e946684e6a65a884d778"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 14 21:10:32 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 14 21:10:33 2017 +0000"
      },
      "message": "Merge \"Refactor annotation code for obsolete methods.\""
    },
    {
      "commit": "672a0b75c91af44749b1e946684e6a65a884d778",
      "tree": "7ae1c2fd5b9e2e7d155d9427848000d381e138d0",
      "parents": [
        "01ea2aa05d6889b4ec08679606d3cdf36b302a8f"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Mar 10 13:09:57 2017 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Mar 14 10:18:12 2017 -0700"
      },
      "message": "Refactor annotation code for obsolete methods.\n\nReading annotations on obsolete ArtMethod* objects would cause\nproblems due to reading from the wrong dex file. We refactored that\ncode so now it always uses the correct dex file when reading\nannotations. This was rarely a problem since obsolete ArtMethods are\nonly ever exposed to the runtime itself which rarely reads\nannotations.\n\nWe also add a test for redefining Object.class. This is one of the\nsmall number of classes where the runtime will read it\u0027s annotations\noff of obsolete methods.\n\nBug: 31455788\nTest: ./test/testrunner/testrunner.py --host -j40\nChange-Id: I5f1c58464b89a7a9198a7b26b015b102a7dc9c2f\n"
    },
    {
      "commit": "8f301e26943c53485abc2da5ff1907f7c2e0ff0c",
      "tree": "e255d1ce3041dff95d2cd2b6bf1b1474962d811e",
      "parents": [
        "dcab11d06860ae1e23d03926adb6c31f75404032"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Feb 27 16:23:51 2017 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Mar 07 16:47:13 2017 -0800"
      },
      "message": "Revert \"Revert \"CHA for interface method.\"\"\n\nThis reverts commit 85a1ec1347c8117365632dcaaa648ebb0a8691f5.\n\nIt also fixed the issue that\u0027s caused by changing an invokeinterface\nto an invokevirtual, when the method is the original default interface\nmethod. Since the default interface method is not in any vtable, unless\nit\u0027s copied and becomes a virtual method.\n\nTest: ART_TEST_JIT\u003dtrue m -j20 test-art-host-run-test\nChange-Id: I627616978690485c66cfca47c234f1504066ea1d\n"
    },
    {
      "commit": "85a1ec1347c8117365632dcaaa648ebb0a8691f5",
      "tree": "d6a9dcfa89747b39ee334a149e6bcba9a3e28447",
      "parents": [
        "747aeb423267aed1d22a8d66013c351026d68f55"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Feb 27 16:00:48 2017 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Feb 27 16:00:48 2017 -0800"
      },
      "message": "Revert \"CHA for interface method.\"\n\nThis reverts commit 7130fc769896a96573f55496444d87161e4b41e8.\n\nThere might be some race condition going on. 960-default-smali\nfails sometimes.\n"
    },
    {
      "commit": "747aeb423267aed1d22a8d66013c351026d68f55",
      "tree": "7015e8ca15d4abec04813a3a1fce6fa2756463b0",
      "parents": [
        "86a185601ae4067742a2236ff2bb494ae69915c2",
        "7130fc769896a96573f55496444d87161e4b41e8"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Feb 27 19:45:10 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 27 19:45:11 2017 +0000"
      },
      "message": "Merge \"CHA for interface method.\""
    },
    {
      "commit": "b1106e2aa98105dec533cdac9074a8f0216a4106",
      "tree": "881beb77d6550fbd62fd82241d2bb9107b72e794",
      "parents": [
        "02c488068f4793204b00b40d76eb3a891a332def"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Feb 23 11:34:48 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Feb 23 11:34:48 2017 -0800"
      },
      "message": "ART: Add flag for ArtMethod class state checks\n\nThe checks, especially in GetAccessFlags, is expensive. To help\nwith running a debug build on devices, add a flag to be able to\nturn the checks off.\n\nBug: 35644369\nTest: m\nChange-Id: I2a3db1a56986df8f4a8b2dc5bcb26e1bcaea0a24\n"
    },
    {
      "commit": "7130fc769896a96573f55496444d87161e4b41e8",
      "tree": "667ddb35e759618e065d902a29e8c70061a2a5fc",
      "parents": [
        "c0514866d973d7906258b552bf65b5c0382e3509"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Feb 15 15:59:24 2017 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Feb 22 14:37:43 2017 -0800"
      },
      "message": "CHA for interface method.\n\nTest: m test-art-host, boot device.\nChange-Id: Ia2da74c2af1974fe344f215ae667eaf03c59a26e\n"
    },
    {
      "commit": "7532d58afabda43b03bb30a06d1a448428aaebbf",
      "tree": "7fdc83741b78670bef07357a6125786ece73f532",
      "parents": [
        "6a669aac63ffc17b5e903aa4a1f285fe338eadcf"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Feb 13 16:36:06 2017 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Feb 21 09:49:44 2017 -0800"
      },
      "message": "Allow redefined intrinsics\n\nWe make a change to allow intrinsics to be redefined. Note that\nredefined intrinisics will no-longer be optimized as much and will not\nbe inlined or moved out of loops.\n\nTest: ART_TEST_JIT\u003dtrue mma -j40 test-art-host\n\nChange-Id: Id6df89bb247d21f7859b48356ceba310eef9d105\n"
    },
    {
      "commit": "eee0bd448ec057d3f224895ddb868786758eeb5b",
      "tree": "32283e1b1ccb97bced2999a364cf21361c8d07ac",
      "parents": [
        "02b2349b1cd2a78e86b1a7542f8330e6c3aaeb35"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Feb 14 15:31:45 2017 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Feb 14 09:28:19 2017 -0800"
      },
      "message": "Revert^6 \"Make class redefinition work with native methods on stack.\"\n\nWe were incorrectly trying to obtain the profiling information of a\nnative method.\n\nThis reverts commit 02b2349b1cd2a78e86b1a7542f8330e6c3aaeb35.\n\nReason for revert: Fixed test failure with jit configurations\n\nTest: ART_TEST_JIT\u003dtrue mma -j40 test-art-host\n\nChange-Id: Ic7112104aec64e597d2df80db5dc2a505d2cc2dd\n"
    },
    {
      "commit": "fcbafb36eff1facdd4c2b60e5f56dd986c558901",
      "tree": "443a55d0ac3698e7eaf82395d6f3567b35d8474d",
      "parents": [
        "406402baa4900c36b3fe27b03bf9e04e978e50be"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Feb 02 15:09:54 2017 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Feb 02 15:32:25 2017 -0800"
      },
      "message": "Ensure we don\u0027t attempt to compile obsolete methods.\n\nWe would run into issues if we tried to compile an obsolete method\nsince some of the information needed to do so is lost as we redefine\nthe declaring class. Since compiling these methods is unlikely to have\na major effect on the performance of the program we simply tell the\nJIT not to bother with them.\n\nAlso update all places to use the new SetDontCompile helper.\n\nTest: mma -j40 test-art-host\nTest: stress --cpu 60 \u0026; \\\n    while ./test/run-test --host --jit --gcstress --64 942; do ; done\n\nChange-Id: Ie70fee6f503818e7589571facf28ccc5e7ca79f8\n"
    },
    {
      "commit": "90c5a9b889af84cbb840c60e461d5bdbf8dc0df6",
      "tree": "ef0cc70d9ad20546f950be3364cbbbdeb05b5db6",
      "parents": [
        "3cb871ab1af47576959fd24a99d370381b8f193e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Feb 01 13:10:06 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Feb 02 17:49:39 2017 +0000"
      },
      "message": "Various improvements to stack walking speed\n\nMake BitMemoryRegion constructor inlined, remove read barrier\nfor IsProxyMethod.\n\nAround 15% speedup for pmd benchmark, maybe more for CC.\n\nTest: test-art-host\n\nChange-Id: Ib4392649e041406e538cc944c26c69f68d388fb4\n"
    },
    {
      "commit": "4ba388a39333b13f0f3bcde826444c77fd7166ed",
      "tree": "bbb2b337ee5798f50c5720d2e8467c53477d7826",
      "parents": [
        "8f28bd479af445293474867191a0bf1cf0f08a4f"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jan 27 10:26:49 2017 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jan 30 12:13:30 2017 -0800"
      },
      "message": "Remove Deoptimization code from class transformation.\n\nSince we removed the current_method from the compiled code we don\u0027t\nneed to deoptimize all frames anymore.\n\nThis is a partial revert of commit dba614810.\n\nBug: 32369913\nBug: 33630159\n\nTest: ART_TEST_TRACE\u003dtrue \\\n      ART_TEST_JIT\u003dtrue   \\\n      ART_TEST_INTERPRETER\u003dtrue mma -j40 test-art-host\n\nChange-Id: I44a6dd89e1d96bd8c82c2c24a2f42fef023a80be\n"
    },
    {
      "commit": "66866e2b5710cf8135674d11c6912a6f023de186",
      "tree": "cfbfd895ac3c71aa3eae50e649866369b95ed987",
      "parents": [
        "dee81ab18f6be61add94256fbec90a913d09cc1a",
        "137cdfa1e8a3810fb86d3298ec10036c0491d13f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jan 27 19:11:31 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 27 19:11:32 2017 +0000"
      },
      "message": "Merge \"Avoid read barriers for ArtMethod::GetDexFile\""
    }
  ],
  "next": "e8fcd013493b800227bd7ea5f38f6cc27e9b90d1"
}
