)]}'
{
  "log": [
    {
      "commit": "f2dcba05ca76e0609687cf1e8013bbe983c73b2e",
      "tree": "b72fc3424d5c4a57b4157fbaeb087a43d2776aa7",
      "parents": [
        "27351be1c1b7cabf714872b9fa40c7ccbefe9b76"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 22 13:59:24 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 22 16:51:28 2019 +0000"
      },
      "message": "Fix statistics reporting in JIT.\n\nWe now need to take into account shared / private regions.\n\nTest: boot, take a bugreport\nBug: 119800099\nChange-Id: I131a73a0fd96a60b13c464c17445b0ba3973bef4\n"
    },
    {
      "commit": "de0ccffc5e8b22f86730b125cd3cfd825a576ba7",
      "tree": "6c723636f30f5f9bc9170421f2649505c49fa191",
      "parents": [
        "4345aacf582a5206976d5bed98ab4abd7b9a8c40"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 19 10:54:05 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 19 17:33:09 2019 +0000"
      },
      "message": "Fix a braino in GetSavedEntryPointOfPreCompiledCode.\n\nWe should return the entrypoint, and not the code_ptr. On thumb,\nthe entrypoint is code_ptr + 1.\n\nTest:  jitzygote boots, zygote32 doesn\u0027t crash.\nBug: 119800099\nChange-Id: I41c97291c54efb4d6e342d260d693ab1abf8dffe\n"
    },
    {
      "commit": "323844002e54243e295497e7f829e46a533da621",
      "tree": "e6219f651332ee140042e4e0d4c975919f4fe9bf",
      "parents": [
        "297a0533d2e3f1d49f0b73c5d1e3b09ce0418de2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 17 20:06:44 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 18 13:12:57 2019 +0000"
      },
      "message": "jitzygote: Handle case of methods having the resolution stub.\n\nWe need to cache the compiled code until the class is initialized.\n\nTest: test.py\nTest: jitzygote config boots\nBug: 119800099\nChange-Id: Ib7a1efc3e101d9dabfad963621a1fe4a142e9b29\n"
    },
    {
      "commit": "b08d5db0bebd9a17b6e66cb98aeedcc744f6d1eb",
      "tree": "cafcd45b3c923a50be482c8dba45426d4b9ed319",
      "parents": [
        "2a290e14fd10a5e494ee0a48e07bc238a7a271d6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 17 10:45:36 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 17 18:54:04 2019 +0000"
      },
      "message": "Move location of where we clear thread pool tasks post fork.\n\nBug: 119800099\nTest: boot jitzygote, system server methods get JIT compiled.\n\nChange-Id: Ieb66b36aefad7a570ebfdfa296a2713c20d36f22\n"
    },
    {
      "commit": "e32d24c75bf62e3cb9bff266ad4be859634320a9",
      "tree": "73a9c51958a77b3040b0ce04041424930b709873",
      "parents": [
        "d17eac6b037f67494e31671d1a1d9d233ba3f237"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 05 10:28:59 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 05 15:36:58 2019 +0000"
      },
      "message": "Store zygote compiled code in a shared map.\n\n- Store flags in the ArtMethod to know that it is compiled by the zygote\n- Query the map when entering a zygote compiled method from the\ninterpreter.\n\nBug: 119800099\nTest: boots\nChange-Id: Ib1a38266573e28d371034d02d6bb83f9b8b2e317\n"
    },
    {
      "commit": "af213ccb19231a4f46340bf8a791b4f498b8bda4",
      "tree": "f668938f3f225e27ffd6b75993e2d8ddf65ae148",
      "parents": [
        "0cc6a825b14893d0d23311d7d708087794675e77"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 01 10:50:55 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jul 02 12:50:41 2019 +0000"
      },
      "message": "Fix ClearEntryPointsInZygoteExecSpace.\n\nMethods allocated in the shared region now don\u0027t have a profiling\ninfo.\n\nAlso move test 689-zygote-jit-deopt to now use proper ZygoteHooks APIs\nto fork from zygote, and have non-bionic build create a shared region.\n\nTest: 689-zygote-jit-deopt\nBug: 119800099\nChange-Id: I400618673a0b5b2ba7389e46d692ea6a58dbeea8\n"
    },
    {
      "commit": "88f3fd910cb0fbc1c2233fc65d2a30542cc62921",
      "tree": "6fcdd7d4e5bd60281d55e4be1bb155a219edc999",
      "parents": [
        "64f1f1f2d6cd13249601f7de2b9d1dab26480f78"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 27 16:32:13 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 28 14:19:08 2019 +0000"
      },
      "message": "jitzygote: madvise DONTFORK on writable shared region.\n\nSo only the zygote can write to the shared mapping.\n\nTest: boots\nBug: 119800099\nChange-Id: I9efde2c9c89dbc7445da890ee975effe13ba3790\n"
    },
    {
      "commit": "a48c3dfcebece7ee4b893757b715319f0b5b1fa7",
      "tree": "eb846bcf242f7e9f4243196b5f4546b0a222cfa0",
      "parents": [
        "1459929a7e9ea96932b6c24597e1692b9b05606c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 27 13:11:12 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 28 06:37:34 2019 +0000"
      },
      "message": "Revert \"Revert \"Make the JIT zygote memory shared.\"\"\n\nThis reverts commit 2fef66b294417d447630f9d98de68227eef476d3.\n\nBug: 119800099\nBug: 136110523\n\nReason for revert: Fixed webview_zygote case.\n\nChange-Id: Iaae8c999463d77b7b1e62b55458493bdbc97a104\n"
    },
    {
      "commit": "e764f38a4b04e0a068631bc53d8737ba07639557",
      "tree": "5980097784fe6326647bd1615a5ee1c9739d8d16",
      "parents": [
        "f90c406cfb7c495378743837b01446120742e74f"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Jun 27 12:56:48 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 27 15:40:27 2019 +0000"
      },
      "message": "Remove unnecessary cache alignment fixes\n\nThis change reverts two alignment changes relating to 32-bit ARM\nruntimes on 32-bit ARMv7 kernels. These were speculative fixes before\nthe problem was properly understood.\n\nThis means code alignment in the JIT code cache is determined by\nGetInstructionSetAlignment() for all architectures.\n\nThe first commit removed is 521ff988097af7c79a0b94368d33d21f7c7dfb7d.\n\nThe second is df1ab205c78fbfae152947e9618d8871a42a744b.\n\nTest: manual (see b/132205399)\nBug: 136150630\nBug: 132205399\nChange-Id: I9e5ed4b2271df80b7c7ea81cdb088b45c456b86a\n"
    },
    {
      "commit": "2fef66b294417d447630f9d98de68227eef476d3",
      "tree": "59fc4ea6cf13217eb92fbdd4e39561b5ad518cf0",
      "parents": [
        "21d5994583c679cd5d8573b5d35dbd659bdca2c7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 26 22:00:02 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 26 22:00:38 2019 +0000"
      },
      "message": "Revert \"Make the JIT zygote memory shared.\"\n\nThis reverts commit 05f87217ddc9b4b9186710c0135b918f456c5aef.\n\nBug: 119800099\nBug: 136110523\n\nReason for revert: testWebview flaking\n\nChange-Id: I96afa6bc9c56c4aaf5ed72ae370f6f69c096c559\n"
    },
    {
      "commit": "aeb0223f14a9dbd9e7caaa177d055684b4819799",
      "tree": "d396dcddb3afa328d192776bc1856a48f5f52583",
      "parents": [
        "05f87217ddc9b4b9186710c0135b918f456c5aef"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Jun 25 14:18:18 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 26 14:59:58 2019 +0000"
      },
      "message": "Retry cache flushes on ARMv7 devices\n\nOn ARMv7, CPU cache flushing requires a system call. This system call\ncan fail and return an error. This change moves to using the system\ncall directly (cacheflush) so flush failures can be detected and\nflushing can be re-attempted. For other platforms we continue using\n__builtin___clear_cache which is an intrinsic with a void return\ntype.\n\nThe strategy for ARMv7 is to attempt to flush the entire range\nrequired. If this fails (a rare occurance), we visit the pages in the\nflush range sequentially, first reading a byte from the page to\nmaximize it\u0027s chance of being resident and then flushing the cache\nlines. We repeat this up to 4 times per page if there are failures.\n\nAs a final fallback, when neither approach to flushing the JIT code\ncache pages succeeds, the code is not committed to the JIT code cache\nas the cache lines for the new code are in an unknown state.\n\nThis complexity is necessary for the dual view JIT because the\nexecutable range is not writable so the kernel logic does not\n(appear to) anticipate the need to flush (or invalidate) cache lines\nthere. Previously the failing cache flush operations went undetected\nand result in bad i-cache state and cause crashes. These issues have\nonly been reported on devices with 32-bit kernels.\n\nBug: 132205399\nTest: art/test.py --host --jit -j32\nTest: Manual (described in bug)\nChange-Id: I63b56beaac610ea973def0a57118be9a2647da23\n"
    },
    {
      "commit": "05f87217ddc9b4b9186710c0135b918f456c5aef",
      "tree": "6e7bc0d2a3d8faa94c303d7d753319f3850fadcd",
      "parents": [
        "8d335b61d637fa9b040eb9d559dbac98067467f1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 19 10:00:00 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 26 12:24:15 2019 +0000"
      },
      "message": "Make the JIT zygote memory shared.\n\nTest: boots\nBug: 119800099\nChange-Id: I75ff8a58eea4de5cb833139641b4e15b8394d9b1\n"
    },
    {
      "commit": "00a37fff76278cd19cf59568df87495f6663c4b6",
      "tree": "8dc0f95daf800d36ac5da12faa658416b0dcc6a0",
      "parents": [
        "6c0c7c8226a80d0e56f071118f46e4491cfa7754"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 20 14:27:22 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 24 15:40:45 2019 +0000"
      },
      "message": "Move code writing to data portion of the JIT cache in JitMemoryRegion.\n\nSo there is only one method that needs to write to the data portion\nof the region.\n\nTest: test.py --jit\nChange-Id: I5b7dc442526da54f83a208cb70c8cf86fad6ebcd\n"
    },
    {
      "commit": "a61dbc078a17ffc470d6714270dd303370aaebd6",
      "tree": "087679e8052dab86c5caf3548cb379da47b3ceb7",
      "parents": [
        "9d3b5ec3bf76855ccb3e01abad41f1fa9e305ade"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 20 14:49:25 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 21 08:10:13 2019 +0000"
      },
      "message": "Remove useless ScopedCodeCacheWrite calls.\n\nTest: test.py --jit\nChange-Id: Ia84535dd024ca2b999cf0e1394a9deb61a4ceda1\n"
    },
    {
      "commit": "349845ae9c820484973959e1f3d366099d2fa0c2",
      "tree": "208431b346ab23f9aca9870ae06a993c640b3a8e",
      "parents": [
        "1b2a49b7aba39ed6663a69dfdf63d0df069f0d42"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 19 13:13:10 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 20 07:08:52 2019 +0000"
      },
      "message": "Move JIT code allocation to JitMemoryRegion.\n\nSo that JitCodeCache does not need to know about dual view.\n\nTest: m\nChange-Id: I19d2e8e69eef07648803937fff928aa9b45ac5a2\n"
    },
    {
      "commit": "521ff988097af7c79a0b94368d33d21f7c7dfb7d",
      "tree": "61e7b0377f02596acdb0520ad5faf1cc6505cb8a",
      "parents": [
        "3149252c4b2a27b137b40a0d379e09ada9bb2d05"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Jun 18 13:56:28 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 18 17:36:44 2019 +0000"
      },
      "message": "For 32-bit ARM devices align method headers and code to 64-byte\nboundaries.\n\nFor other architectures, move back to instruction set alignment.\n\nRename kJitCodeCacheAlignment to kJitCodeAccountingBytes since it\u0027s\nnow only used for accounting rather than alignment.\n\nBug: 132205399\nTest: art/test.py --host --jit\nTest: manual (described in bug)\nChange-Id: I88f5f39381bf0331ce8540a929c6a68b3b5e0c75\n"
    },
    {
      "commit": "3149252c4b2a27b137b40a0d379e09ada9bb2d05",
      "tree": "dacf56c50d32ed913b0c2014a84dacfccff3bbcd",
      "parents": [
        "9c54e1802855e70b109adff47d5b0dd616806525"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Jun 18 12:13:49 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 18 14:46:29 2019 +0000"
      },
      "message": "Fix memory leak in JIT cache\n\nWhen adding code to the JIT cache it is possible for CHA assumptions\nto be invalidated and for the generated code to be invalid. The path\nfor handling this should release the JIT cache memory holding the\ncode.\n\nTest: for i in {1..100} ; do art/test.py --host --jit -r -t 044 ; done\nChange-Id: Ia6213647064a3db0c4d11bf1181c325375282528\n"
    },
    {
      "commit": "9c54e1802855e70b109adff47d5b0dd616806525",
      "tree": "9f63ede3e819b9ac22a645d9b025d6f3e6a418fa",
      "parents": [
        "697c47a7ffd4489c4bc4edc229c8123309526286"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jun 18 10:42:52 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jun 18 14:27:45 2019 +0000"
      },
      "message": "Simplify JIT memory region creation.\n\nHave JitCodeCache only call JitMemoryRegion::Initialize.\n\nTest: m\nChange-Id: Idc6f75bf7ebb94fb2dfd0a73b02d8e0befefa85e\n"
    },
    {
      "commit": "741a0707d45a779ed2a538954027ef101708aead",
      "tree": "02fbc1df3fd41b01269888eac8f5d951cd04680a",
      "parents": [
        "f1bd5f3dc7a99a62818b03dd78510a416b3c10bd"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 10 11:18:11 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 10 13:22:46 2019 +0000"
      },
      "message": "Fix two bugs in jitzygote configuration.\n\n- Fix a stalled ObjPtr reference.\n- Fix DCHECKs now invalid with system server also using \u0027prejit\u0027.\n\nBug: 119800099\nTest: boots\nChange-Id: If64e09115192f06763335237a7518df619965a3c\n"
    },
    {
      "commit": "7f7539b8ed0a31de1d1b6e1f0b730d55e37666a6",
      "tree": "d1611f06e3e468ff61c4d4bc349777b85b3a2e16",
      "parents": [
        "93adcb53c77f4f04dfebd30b94e8ea9936aa8abb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 06 16:20:54 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 10 07:32:49 2019 +0000"
      },
      "message": "Pass the memory region to allocate into to the compiler / allocation.\n\nTest: test.py\nBug: 119800099\nChange-Id: Ie3cba5abe3dd4f8756af5ecfd6c26320de314fe8\n"
    },
    {
      "commit": "2a905b2b50fb77723f6627e2d6a5df218d21081f",
      "tree": "4fa5d59381ed16073bc5f57cf9c9522e6f81acdd",
      "parents": [
        "29bb803f2d41ea48e9f255dadd22b4c291e0a036"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 06 09:04:07 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 06 12:53:49 2019 +0000"
      },
      "message": "Move memory related regions of the JIT cache in its own class.\n\n- Moves the JIT lock into the global locks list\n- Jit cache has two regions: one inherited from zygote, and its own.\n\nBug: 119800099\nTest: boot, test.py\nChange-Id: I833ba2b5a3d3c10fa01286cdf52603fa174a2cc7\n"
    },
    {
      "commit": "d2f13ba7153aa7b77e4662844233c848535f8aac",
      "tree": "9a0f9bda0e886b1652cc306dba4a05648385beb0",
      "parents": [
        "e7d7e9dd01b6ce5a079ebc7e369f4a8d4e42f7d8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jun 04 16:48:58 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 06 08:02:04 2019 +0000"
      },
      "message": "Remove requirement of a ProfilingInfo for jitted code.\n\nWhen pre-jitting (zygote or system server in jit zygote mode),\nthe profiling info is just memory overhead. Remove the need to have\none.\n\nBug: 119800099\nTest: boot, testrunner.py --jit\nChange-Id: Ie74d870eebef72c903225542e9b41dfe98132419\n"
    },
    {
      "commit": "df1ab205c78fbfae152947e9618d8871a42a744b",
      "tree": "d7c461bba27009dd8304a2da1b0cea5b031a1a7b",
      "parents": [
        "743600d5ae654817a5d81179fb480816e0cd139d"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Sun Jun 02 16:45:03 2019 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Jun 04 15:34:07 2019 +0000"
      },
      "message": "ART: Avoid shared cache lines for JIT code allocations\n\nDual view JIT exhibits some hygiene issues that causes crashes on\ndevices with 32-bit kernels.\n\nThis change makes JIT code allocations cache aligned. This is based on\nguidance in the v7_coherent_user_range() that says \"it is assumed that\nthe Icache does not read data from the write buffer\".\n\nBug: 132205399\n\nTest: \u003e2000 boot tests on affected device with no zygote crashes.\nTest: No crashes running ART JIT benchmarks on go/lem\nTest: No failures with Treehugger\n\nChange-Id: I901e2e5c07b9502876b33f572be63ec1dca19cbe\n"
    },
    {
      "commit": "eab0248f8785f25241011a953940ea5a4c5e7467",
      "tree": "15de339b7f70b2a5a4f866bd090afca2922fbf02",
      "parents": [
        "5515310c7e83f8bd11f575fba7439edbd3bea4d9"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu May 09 10:28:17 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 10 05:05:45 2019 +0000"
      },
      "message": "Clean up after obsolete methods update fix.\n\nThis is a follow-up after\n    https://android-review.googlesource.com/942485 ,\naddressing most of the late comments.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing --interpreter\nBug: 73333076\nChange-Id: I52c0a3cbf81e97474dc46846486263946379416a\n"
    },
    {
      "commit": "c45b5897e65d8713f008732277db2544b9af1e67",
      "tree": "1d193616a402f6d21f730bff8ac9377b4ae1896e",
      "parents": [
        "2cd21b20345c2733bda1366830ffd767f0682b9f"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Apr 24 10:32:04 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Apr 26 15:01:21 2019 +0000"
      },
      "message": "jitzygote: JIT native methods on first use.\n\nCompile JNI stub on first use to avoid the expensive generic stub.\n\nTest: profile calendar\nBug: 119800099\nChange-Id: Iaef9d0d528ff34c1636237cdcce6e8639c47c8ed\n"
    },
    {
      "commit": "605a5fe91694d8a90c02fb01967081f55878a125",
      "tree": "9c9365246d523920cc4c9180f648243408ac767e",
      "parents": [
        "20d1c942c0e841920eac92f68c6d3e7f2a2135b4"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Apr 24 14:05:21 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Apr 25 14:33:33 2019 +0000"
      },
      "message": "jitzygote: Fix DCHECKs\n\nTest: boot device with libartd and jitzygote\nBug: 119800099\nChange-Id: I8f3a158cac22ce9ec221cd287bdddbb109c37b54\n"
    },
    {
      "commit": "3db3d37dcd3ca8e232a260ce71ac540f33fcf584",
      "tree": "e2a1c6a9290ddb931d32c100a3b2f9ee179820f3",
      "parents": [
        "467b692bfa088098d57947ed3d764fbf1a072974"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Apr 17 18:19:17 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Apr 24 17:09:14 2019 +0000"
      },
      "message": "Invert IsUsingDefaultBootImageLocation to IsUsingApexBootImageLocation.\n\nSome tests are picking up the jit-zygote path, which is not intended.\n\nInvert the flag so that if in doubt, we don\u0027t execute the experiment path.\n\nBug: 119800099\nChange-Id: Ief3ff353cc25fa81157a75d917814982f3836ed0\n"
    },
    {
      "commit": "a3b31ba6ee409f11889af604d91d8786458ea48f",
      "tree": "6efccf253658a433d87cacbf1fc686bf9ab9a319",
      "parents": [
        "b10f02828b869cf6505bbd6eef6d2ae332c4e91b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Apr 14 20:10:16 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Apr 14 20:48:56 2019 +0000"
      },
      "message": "Fix ProfilingInfo race.\n\nThe field can be cleared concurrently, so fetch it only once.\n\nTest: test.py\nBug: 119800099\nChange-Id: I097a9c6f2175da7a027255c6b81954554bdbcff6\n"
    },
    {
      "commit": "7989ac9ef0f50db26ce5844e7e6f9a659994c244",
      "tree": "a71974b358b1b06cdd9d740b83cbab41493db4b3",
      "parents": [
        "6dfdfef85b210dc104a7cd221c6717e1a2123a13"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 10 12:42:30 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 12 16:10:51 2019 +0000"
      },
      "message": "Save the JIT compiled code when the class isn\u0027t initialized yet.\n\nWhen a class isn\u0027t initialized, we put resolution stubs to its\nstatic methods. In order to fetch the compiled code at the point of\ninitialization, save it in the profiling info.\n\nBug: 119800099\nTest: start an app, no JIT compilation of boot classpath methods\nChange-Id: I32b947318dbcb1010c94a11b51ea39d992d247e3\n"
    },
    {
      "commit": "d03e8dd6c824352fb2281d333d4e134458776fa1",
      "tree": "b53f5a2257c590e4b1f5fed440f2f38f396ccf46",
      "parents": [
        "408f7d0db69f4aaa79afc5a652673166aff525be"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 10 23:13:20 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Apr 11 15:05:20 2019 +0000"
      },
      "message": "Fix longstanding JIT bug in interaction with class initialization.\n\nThe entrypoint of a method of a class being initialized was\nwrongly updated to pointing to compiled code when it should stay\nthe resolution stub.\n\nTest: 694-clinit-jit\nBug: 119800099\nBug: 130337355\nChange-Id: I1bd5769c950b62330d8ae5c34cc08111b2fb4c04\n"
    },
    {
      "commit": "d355acfaf613d4020f1c2f4b526275c624fe887a",
      "tree": "c40094e3a866cdc27426c713108a67e5eda260b9",
      "parents": [
        "df1a7d458e3f4b5410562e7d86a3343155a44ce0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Mar 21 17:09:40 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Apr 03 08:07:46 2019 +0000"
      },
      "message": "Clean up Object size related read barriers.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --interpreter\nTest: testrunner.py --host --interpreter --gcstress\nBug: 119486698\nChange-Id: I831838f230ebdd9e540462b2de56271895a01fad\n"
    },
    {
      "commit": "c524e9e7e767be0801cf110310039635698c1532",
      "tree": "cd11699dce8c175a0940a583f5ea02ce89f73a85",
      "parents": [
        "2e1ec835d08ca0ab81b1c24436f659f952ace260"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 26 10:54:50 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 26 17:06:55 2019 +0000"
      },
      "message": "ObjPtr\u003c\u003e-ify mirror::Class.\n\nAnd move function definitions that rely on obj_ptr-inl.h\nfrom class.h to class-inl.h .\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 31113334\nChange-Id: I5ccc765d0a02b1d37cb39ed68c17b8456faf92ea\n"
    },
    {
      "commit": "5708376183c4e2d4456a191955c5060e404a9f0a",
      "tree": "4afed897b6e71c45b4f51ae9536d5bb6da7ec024",
      "parents": [
        "3c83921510c849cd43b90ab6094abce232c8c088"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 05 09:24:45 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 05 15:40:35 2019 +0000"
      },
      "message": "Revert \"Remove code size from OatQuickMethodHeader\"\n\nThis reverts commit 131f23a4c2c34b689c07e6efd05cea74190f0113.\n\nBug: 123510633\nBug: 127305289\n\nReason for revert: b/127305289\n\nChange-Id: I59905779fe8c7d7551c0fa6c8693fb64eb6760b2\n"
    },
    {
      "commit": "131f23a4c2c34b689c07e6efd05cea74190f0113",
      "tree": "c0c1927bd770f0224c6aed5eaccb13765a7cc57d",
      "parents": [
        "438cc2b34be2a5d114a50ba6cdef22f9045d863a"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jan 29 18:52:12 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Feb 14 09:44:47 2019 +0000"
      },
      "message": "Remove code size from OatQuickMethodHeader\n\nThis saves from 0.75% from oat file size.\n\nBug: 123510633\nChange-Id: Ibf0d45d5d84057ee45a3584a4b69a7c0487443bf\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": "889e29aae6a7cbd3c6f8dae44f67e054e083a8b6",
      "tree": "b3954038ef36a8ad925f493a770802f8ade60150",
      "parents": [
        "6b36d8025de5237b57e7bf23033bfc61a112d6cd",
        "afc60cd6ddcd15353698bb453716313dea241ef8"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Dec 11 13:25:17 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 11 13:25:17 2018 +0000"
      },
      "message": "Merge \"Cleanup native debug interface api.\""
    },
    {
      "commit": "afc60cd6ddcd15353698bb453716313dea241ef8",
      "tree": "708bbf11e425ddb7a75874f27d272fd5484d0bf1",
      "parents": [
        "58431a7cf863b2eb7fe25eff6a28ec376f2f151d"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Dec 05 11:59:31 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Dec 11 11:32:37 2018 +0000"
      },
      "message": "Cleanup native debug interface api.\n\nStrongly type the DEX file arguments.\n\nRemove the need for callers to worry about locks.\n\nUse std::map instead of std::unordered_map internally.\n\nTest: ./art/test.py -b -r -t 137\nChange-Id: I8bd79b796b5c7da265afc43a07ed227f550116c7\n"
    },
    {
      "commit": "ae982f976866a709cf2465d203b2fe83420a37f4",
      "tree": "88085ec635a0d45de7c2360adb869a8a2f150329",
      "parents": [
        "c1baad2f913cbe37c7b634499ae23a10dd60d278"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Dec 08 12:31:10 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Dec 08 12:31:10 2018 +0000"
      },
      "message": "Remove CHECK given jvmti deallocates memory.\n\nMissed from https://android-review.googlesource.com/c/platform/art/+/844516\n\nbug: 120632268\nTest: com.android.server.wifi.test\nChange-Id: I18eacc329ddb7a3708e45fc2b4fefe448c8757f2\n"
    },
    {
      "commit": "1c1c6e67d858db7fd9296260d4e6e8cff84a0364",
      "tree": "df3a2b3e594be74554c97e006fc4d3271bcabaad",
      "parents": [
        "58431a7cf863b2eb7fe25eff6a28ec376f2f151d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 07 14:46:50 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 07 14:46:50 2018 +0000"
      },
      "message": "Remove CHECK and don\u0027t free code/data in zygote space.\n\njvmti can redefine classes and request free-ing code generated\nby the zygote. In this case, don\u0027t free the memory, as that would\nactually lead to dirty memory, which is opposite the idea of\nsaving memory.\n\nbug: 120653173\nTest: com.android.server.wifi.test\nChange-Id: I8552f075e68e6646f06842a8abf7ec65da6be292\n"
    },
    {
      "commit": "ce9ed3669d041d9eb2f5489596f133248d90f497",
      "tree": "f95fc9d6fc78119686fe91db5c2aaabd31b6abb1",
      "parents": [
        "69431d3ba1c560f0b23bd2ad6257949deb679aa7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 29 03:19:28 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 06 14:12:34 2018 +0000"
      },
      "message": "Enable JIT in zygote.\n\nbug: 119800099\nTest: boot test\nChange-Id: I92dc59adeaf1202a984d363b1420ef26e53ebe84\n"
    },
    {
      "commit": "ef6b2aa28fec148d3fe635a34260fde8c89622c7",
      "tree": "c00a942a4af6eab805e78b26ce779b23166e1212",
      "parents": [
        "8f50b2c27f9b32726bbadfcebba910640b94036e",
        "c7d878d4be3f0971d4b86266308c7540a26c2856"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 28 16:43:42 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 28 16:43:42 2018 +0000"
      },
      "message": "Merge \"Revert^4 \"ART: Add StackVisitor accepting a lambda\"\""
    },
    {
      "commit": "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": "80e6a0917361273d471af731fee123f6b9e5e094",
      "tree": "16ffc3af15e57113e073f97955b5675244ef91f5",
      "parents": [
        "5ad3adeb0595b9cb5ada6185f0d5f689dfae0ba4",
        "7a2c7c2f7062d9fef21b72ff9c10ca8ef863eb8b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 22 08:59:26 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 22 08:59:26 2018 +0000"
      },
      "message": "Merge \"Refactor code around JIT creation.\""
    },
    {
      "commit": "1afdfe681436db495276d853709116c39de40c4d",
      "tree": "a2fe476efb313455090b419b7a83971b7f5ec29f",
      "parents": [
        "d52a6f402fac600e7432cfd59a1298659625a6d3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 21 09:38:10 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 22 08:58:15 2018 +0000"
      },
      "message": "Wait until inline cache is accessible in GetProfiledMethods.\n\nBug: 119844538\nTest: test.py\nChange-Id: I7ee0718bb866652b1913496eb3ecd3beee1d46c3\n"
    },
    {
      "commit": "7a2c7c2f7062d9fef21b72ff9c10ca8ef863eb8b",
      "tree": "909d18e31d319313a0729019258418980c810d79",
      "parents": [
        "c754cc8e1c2dbcb1331ec2bed3ea0787bdd2b5c3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 20 10:03:13 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 21 11:09:49 2018 +0000"
      },
      "message": "Refactor code around JIT creation.\n\n- Create the JIT early on.\n- Have dedicated zygote spaces, that get assign after the fork.\n- Re-parse compiler options after fork to take into account customization\n  of debug flags by the child.\n\nCurrently, we only create the thread pool in the child, so the zygote\nisn\u0027t jitting yet.\n\nBug: 119800099\nTest: test.py, device boots\nChange-Id: I591ce933ebf54a67937ab1d05206534f55ef2f65\n"
    },
    {
      "commit": "c7d878d4be3f0971d4b86266308c7540a26c2856",
      "tree": "041a6d897df81ae64f25c211f16e8640959a35f5",
      "parents": [
        "d295a75d952742604eaae0530daea19dd6fd782c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 19 18:42:06 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 19 17:09:07 2018 -0800"
      },
      "message": "Revert^4 \"ART: Add StackVisitor accepting a lambda\"\n\nThis reverts commit ec43a01e0ac948c59d5b1f9c3812f2901b48942a.\n\nReason for revert: Added missing code.\n\nBug: 115837065\nTest: m test-art-host\nChange-Id: Id30ccdf9aa9a6e56a914254793e399f2712c882d\n"
    },
    {
      "commit": "ec43a01e0ac948c59d5b1f9c3812f2901b48942a",
      "tree": "57e1a23dcc0beba8e98841b8cf063f6153b08c9b",
      "parents": [
        "3d477f3a3eea757a49ca621cc579f711f22fccdd"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Nov 17 13:10:40 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Nov 17 13:10:40 2018 +0000"
      },
      "message": "Revert \"Revert^2 \"ART: Add StackVisitor accepting a lambda\"\"\n\nThis reverts commit 3d477f3a3eea757a49ca621cc579f711f22fccdd.\n\nBug: 115837065\n\nReason for revert: Breaks jdwp tests.\n\nChange-Id: I09249331798970751a20c6b41675c3efef72adfb\n"
    },
    {
      "commit": "3d477f3a3eea757a49ca621cc579f711f22fccdd",
      "tree": "b4b402d0181610c62062c8c597ef30ee2840b6b1",
      "parents": [
        "54c7da9c50ee85ade636605cd6ea18b4c2bc69fa"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 16 16:40:45 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 16 10:13:38 2018 -0800"
      },
      "message": "Revert^2 \"ART: Add StackVisitor accepting a lambda\"\n\nThis reverts commit 8248490f24e8582ce2ead8cd878d8a2c38310a48.\n\nReason for revert: Fixed instrumentation.cc\n\nBug: 115837065\nTest: m test-art-host\nChange-Id: I484833f4712c835fcaf3452dca4cae5b031d5a7d\n"
    },
    {
      "commit": "b9f1af59681a73a33c86dd5919cc11874623d9d8",
      "tree": "d31e900f951201e406c524efd75318ebdbe4d649",
      "parents": [
        "b321ac28f726a7ed41f277382d85702ffdfbe00f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 16 10:30:29 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 16 10:30:29 2018 +0000"
      },
      "message": "Small cleanups in jit_code_cache.\n\nMake methods private, remove dead code.\n\nTest: test.py\nChange-Id: I4554d35c64115c6dd5308b6d509659e5c60346b1\n"
    },
    {
      "commit": "c980df6125e53bbf8e5e7e8eecb3f9b0125bae5e",
      "tree": "966f80eb3959b94a5508525b0726e05f53ac7286",
      "parents": [
        "3d719ed950772e1ec70fe082863e907d5acd3fcf",
        "8248490f24e8582ce2ead8cd878d8a2c38310a48"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 16 01:18:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 16 01:18:34 2018 +0000"
      },
      "message": "Merge \"Revert \"ART: Add StackVisitor accepting a lambda\"\""
    },
    {
      "commit": "8248490f24e8582ce2ead8cd878d8a2c38310a48",
      "tree": "f542af6560561526fc413e361e3323a615b5429c",
      "parents": [
        "36f8d22c672498753b9edc66ba11acc9816b2a17"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 16 00:47:49 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 16 00:47:49 2018 +0000"
      },
      "message": "Revert \"ART: Add StackVisitor accepting a lambda\"\n\nThis reverts commit 36f8d22c672498753b9edc66ba11acc9816b2a17.\n\nReason for revert: Seems to be breaking test 687\n\nBug: 115837065\nChange-Id: I83bb1a9d76cc701c3d582778e5047ebd5dab5d29\nTest: TreeHugger\n"
    },
    {
      "commit": "e09485f761220ff16129d25b773ab968d3c2d76b",
      "tree": "87f93a1c3e2d2c7805859231c9cb7dd92a778bba",
      "parents": [
        "9e70fafa9ca3bf055fe1e9d8cba4ddb4ee090776",
        "36f8d22c672498753b9edc66ba11acc9816b2a17"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 15 21:44:18 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 15 21:44:18 2018 +0000"
      },
      "message": "Merge \"ART: Add StackVisitor accepting a lambda\""
    },
    {
      "commit": "a7edd0d02f3aa2e6df31d6bd1de78e48797e8fc2",
      "tree": "988a26723769395801d40d266192994eed369b22",
      "parents": [
        "c925fe6afb9d7c100b5f7c889a98c147c66e1742"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 07 03:18:16 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 07 05:54:40 2018 +0000"
      },
      "message": "Fix JIT creation so it picks up runtime flags.\n\nbug: 119063276\nTest: benchmarks, take a bugreport, check that JIT is enabled.\nTest: atest ZenModeFilteringTest with libartd and JIT at first use.\nChange-Id: Id9f0be316467064dc21edfb0a0493149678630e0\n"
    },
    {
      "commit": "36f8d22c672498753b9edc66ba11acc9816b2a17",
      "tree": "7a7195bf16db14d7f56f94a4d6421f6837b2f686",
      "parents": [
        "a53da8f8170ddaff3e4160641938ba1b7806202c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 08 08:13:42 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 02 16:01:30 2018 -0700"
      },
      "message": "ART: Add StackVisitor accepting a lambda\n\nTo simplify implementation of visitors. Rewrite some\nvisitors.\n\nBug: 115837065\nTest: mmma art\nTest: m test-art-host\nChange-Id: I04172d7626b702c1d69c63eba65526378935a25d\n"
    },
    {
      "commit": "ad28f5e02b3adc8ee7fec2f323eeb42bc96d596a",
      "tree": "53722e481afd203846ec45bf3d65ef3e32b5d419",
      "parents": [
        "fe79b5939696c87f66d9d39540fe0f38369c5158"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Oct 17 09:08:17 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Oct 31 06:32:12 2018 +0000"
      },
      "message": "ART: add hook for framework to set SELinux context\n\nAdds a new zygote hook for system server, nativePostForkSystemServer,\nso the process can transition between the system_server_startup and\nsystem_server SELinux domains.\n\nMemory resources for the JIT are allocated in the hook as setting the\nSELinux domain with setcon() requires that the process is still single\nthreaded.\n\nBug: 66095511\nTest: device boots\nTest: art/test.py --host --64\nChange-Id: Ic840634c5c59906b8d344c2edffafeb9b13a409f\n"
    },
    {
      "commit": "1130659b0d948806e7ca974ead8ad2bcc1951d13",
      "tree": "9046a016fafc7f9bff4e34732aa8f89ed81ad46c",
      "parents": [
        "1c1442a498fd3f9ddc5d2bb04baa7ccd2d3539c4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Oct 26 14:22:59 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 30 10:20:32 2018 +0000"
      },
      "message": "Refactor MemMap::MapAnonymous().\n\nRemove the address argument from the shortcut overload and\nintroduce one more shortcut overload. This makes it easier\nto find all uses where we pass non-null address hint.\n\nRemove `requested_begin` parameter from some constructors\nwhere we were always passing null. Rewrite some tests to\nuse the reservation API.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 118408378\nChange-Id: Ibbbb96667e7cc11cf7fea119892463d8dbc9a8b5\n"
    },
    {
      "commit": "88dbad33ae92167a89a5d5469f39f41624535dbf",
      "tree": "b3b0c864c12c246117143954f16df054309852c6",
      "parents": [
        "c58dca3941459b4375a53925f3471373584eab5e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 26 19:54:12 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 25 09:52:28 2018 -0700"
      },
      "message": "ART: Do some include-what-you-use\n\nHelp with transitive includes. In preparation for new\nspecialized headers reducing transitivity.\n\nBug: 118385392\nTest: mmma art\nChange-Id: Ib465ecceec3331ea81588fb4a43eb65e766b6904\n"
    },
    {
      "commit": "98ea9d9d82ab078ca10fa7f8e02eddda94cf1d98",
      "tree": "a848b7e41ff227a2d3d4d6795ec11089f39cb6ca",
      "parents": [
        "02338775e33b553be51d44ff60bb1ef8e527bd94"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 19 14:06:15 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 23 15:19:55 2018 -0700"
      },
      "message": "ART: Refactor for bugprone-argument-comment\n\nHandles runtime.\n\nBug: 116054210\nTest: WITH_TIDY\u003d1 mmma art\nChange-Id: Ibc0d5086809d647f0ce4df5452eb84442d27ecf0\n"
    },
    {
      "commit": "1d3fd0803db51012e4d85b72b0f8096879c77af4",
      "tree": "0029858bb34c244282f91bd64705226d5dee28fb",
      "parents": [
        "cac3267b3516571ef64bd28f916f52659796253f"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Sep 28 09:38:35 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Sun Sep 30 19:37:35 2018 +0100"
      },
      "message": "Revert^4 \"ART: Dual mapping of JIT code pages\"\n\nThis reverts commit 1bfce389e8aba4ca7276918f2f86e5b13c5b5840.\n\nThis change adds a fix for stale data in the JIT code cache when dual\nmappings of the code cache are employed. With dual mappings, newly\ncompiled code is written into the non-executable mapping of the code\ncache. An additional data cache flush is needed to ensure the new\ncode is written out to the point of unification in the memory\nhierarchy.\n\nTest: manual\nBug: 66095511\nBug: 116761923\n\nChange-Id: Ib5fa83f22ee4fee1d0f80e16b974e1677c20af9b\n"
    },
    {
      "commit": "1bfce389e8aba4ca7276918f2f86e5b13c5b5840",
      "tree": "e00d19a342ff429fc514bf70bf52ff005a00911c",
      "parents": [
        "0e904ffc3376fe6fd272fee809752463f10e27f5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 28 01:41:04 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 28 01:41:04 2018 +0000"
      },
      "message": "Revert^3 \"ART: Dual mapping of JIT code pages\"\n\nThis reverts commit 0e904ffc3376fe6fd272fee809752463f10e27f5.\n\nReason for revert: Seems to break for 32-bit arm\n\nBug: 66095511\nBug: 111199492\nBug: 116761923\nChange-Id: I7d4bc78a1d5748a85ce63e2c57f32a8bdb768354\n"
    },
    {
      "commit": "0e904ffc3376fe6fd272fee809752463f10e27f5",
      "tree": "2cc5b4abdd378b6448d9d84e0034b23dc2430da8",
      "parents": [
        "5d7015cd64085068b1685d44339b4b705ef3f065"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Sep 24 08:40:54 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Sep 24 11:30:18 2018 +0100"
      },
      "message": "Revert^2 \"ART: Dual mapping of JIT code pages\"\"\n\nAvoid setting footprint on code heap mspace when the heap size is zero.\n\nBug: 66095511\nBug: 111199492\nTest: art/test.py --host --64 --interpreter --no-image -r -t 595-profile-saving\n\nChange-Id: I8c475e135f7558915f799d3cb451595833e832a6\n"
    },
    {
      "commit": "5d7015cd64085068b1685d44339b4b705ef3f065",
      "tree": "e00d19a342ff429fc514bf70bf52ff005a00911c",
      "parents": [
        "fe10f729ecabfedbf803ef881a8d24c008748369",
        "819824bbafc5bfea0d3896e1d3e1d4ed2188d09e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Sep 22 11:41:27 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Sep 22 11:41:27 2018 +0000"
      },
      "message": "Merge \"Revert \"Test for jit deadlock\"\""
    },
    {
      "commit": "819824bbafc5bfea0d3896e1d3e1d4ed2188d09e",
      "tree": "975df03373d8b36d90ae90371423d180f8380863",
      "parents": [
        "b7ac4a077a99d3f2a41bef0a5c6cc74343458dcf"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Sep 22 11:39:38 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Sep 22 11:39:38 2018 +0000"
      },
      "message": "Revert \"Test for jit deadlock\"\n\nThis reverts commit b7ac4a077a99d3f2a41bef0a5c6cc74343458dcf.\n\nBug: 112074977\nBug: 70838465\n\nReason for revert: Test segfaults here:\nhttps://build.chromium.org/p/client.art/builders/bullhead-armv7-gcstress-ndebug/builds/1719/steps/test%20optimizing/logs/stdio\n\nChange-Id: I9e105b630b1509689d27a154cc356fbe11018fce\n"
    },
    {
      "commit": "604e234e7a98d793d1a9591a477d64f30849f709",
      "tree": "b5f824c5bc0aa1621a59bc1d53dea46e172607ad",
      "parents": [
        "6fa1729be6d2e38a31fc804025ed44cd08a4eb04",
        "60eaabebac20034571ed37f5096158a6623461ea"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Sep 21 16:48:45 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 21 16:48:45 2018 +0000"
      },
      "message": "Merge \"Revert \"ART: Dual mapping of JIT code pages\"\""
    },
    {
      "commit": "60eaabebac20034571ed37f5096158a6623461ea",
      "tree": "50f77c45386702a8e2248d44ed4a2bf9954f402c",
      "parents": [
        "0e314f08cb0080799e86f639e3bc0306c5e74344"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 21 16:41:27 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 21 16:41:27 2018 +0000"
      },
      "message": "Revert \"ART: Dual mapping of JIT code pages\"\n\nThis reverts commit 0e314f08cb0080799e86f639e3bc0306c5e74344.\n\nReason for revert: Breaks test-art-host-run-test-debug-prebuild-interpreter-no-relocate-ntrace-cms-checkjni-no-image-pictest-ndebuggable-no-jvmti-cdex-fast-595-profile-saving64.\n\nBug: 66095511\nBug: 111199492\nChange-Id: I6ca09e6c60e49647dfe6cc52708b1843c8acc89a\n"
    },
    {
      "commit": "d75a268d2efdcc063d483c965c4899875aaf42b1",
      "tree": "b02acaa8b6443db2aed026a3529761773f68afba",
      "parents": [
        "8f676995c00154f48d6b68b1656b654d0cd4593c",
        "0e314f08cb0080799e86f639e3bc0306c5e74344"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Sep 21 14:29:38 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 21 14:29:38 2018 +0000"
      },
      "message": "Merge \"ART: Dual mapping of JIT code pages\""
    },
    {
      "commit": "0e314f08cb0080799e86f639e3bc0306c5e74344",
      "tree": "ab4cf915ea5399b42c8dbf304d752e110f905ea0",
      "parents": [
        "9b1e90ef5c8c026253099066e8414803a9880bf9"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Sep 04 11:28:31 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Sep 21 10:35:43 2018 +0100"
      },
      "message": "ART: Dual mapping of JIT code pages\n\nAdd support for a two mappings of JIT code pages. One mapping is used\nfor executing code, the other for updating it. The latter mapping is\nnever executable.\n\nFallback to the existing regime when the required support is missing.\n\nNo longer allocate mappings for JIT code when cache exists only for\nprofiling purposes.\n\nBug: 66095511\nBug: 111199492\nTest: art/test.py --host\nTest: art/test.py --64 (angler - single view)\nTest: art/test.py --64 (other - dual view)\nTest: walleye boots\n\nChange-Id: I9920534c81cbf16f375f1dd554d5952716bf3253\n"
    },
    {
      "commit": "6c4f8e82a82dff90e7f72deaae2fe62de9017810",
      "tree": "5093840ae04fb13e3de2f9ef25a600255c5c0d0e",
      "parents": [
        "72c5d1f72310e19b8d2769a78ea742a91082b4d8",
        "ac3ac681a1d1d5d5d4662b7e4d3cf8e0b4d53d27"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 21 08:10:39 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 21 08:10:39 2018 +0000"
      },
      "message": "Merge \"Pass JIT roots as a vector\u003cHandle\u003c\u003e\u003e to JIT cache.\""
    },
    {
      "commit": "0e2cf3f17cebb29e561e07961ab6cf52911a7231",
      "tree": "963bdc457d8f35845a6296d24ca76e710d9c89e1",
      "parents": [
        "89468aeaa6a67ae4025b30d427391186306d6522",
        "b7ac4a077a99d3f2a41bef0a5c6cc74343458dcf"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 20 23:54:31 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 20 23:54:31 2018 +0000"
      },
      "message": "Merge \"Test for jit deadlock\""
    },
    {
      "commit": "b7ac4a077a99d3f2a41bef0a5c6cc74343458dcf",
      "tree": "2f715b3defc49a180e0374bbe1f61c37b3eda2d0",
      "parents": [
        "f035463650ada4a2bc07a38ca23dd96758e3db92"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Aug 28 15:53:22 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Sep 20 10:17:11 2018 -0700"
      },
      "message": "Test for jit deadlock\n\nThis should deadlock if one can get the JIT to load a class. The code\nin the test seems to usually cause this to happen.\n\nTest: ./test/testrunner/testrunner.py --host -t 1952\nBug: 112074977\nBug: 70838465\nChange-Id: I6d31a98e300879bee361036a46effcf7db312368\n"
    },
    {
      "commit": "ac3ac681a1d1d5d5d4662b7e4d3cf8e0b4d53d27",
      "tree": "803b02eabfb6af718561d0dfd83d61e4bccbfa28",
      "parents": [
        "8402166d0e3b5d91ab867a7dcd7218f824afe3ff"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 20 11:01:43 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 20 15:48:38 2018 +0100"
      },
      "message": "Pass JIT roots as a vector\u003cHandle\u003c\u003e\u003e to JIT cache.\n\nThis avoids creating an object on the heap and thus\nprevents issues for the 904-object-allocation in the\nJIT-at-first-use configuration.\n\nTest: run_build_test_target.py -j48 art-jit-on-first-use\n      (test 904 passes; test 1935 still failing).\nBug: 116189667\nChange-Id: I58c0c8cb2d78edc63dab7d72e69b882abbfb79fd\n"
    },
    {
      "commit": "563ada2e5570d947ee2b96e3651ded3692be33be",
      "tree": "649679d2e1249053a98237130a9b944181aa21ef",
      "parents": [
        "a93364cbd4ebf4b8c309c4c18f30e16c8f9a8997"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Sep 04 11:28:31 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Sep 19 16:58:49 2018 +0100"
      },
      "message": "ART: Add wrappers for membarrier and memfd_create()\n\nAdds art::membarrer() and art::memfd_create() as wrappers around the\nsimilarly named linux syscalls. These wrappers can fail due to missing\nOS support so code that uses them needs to deal with this.\n\nUpdates the JIT code cache to use art::membarrer().\n\nBug: 111199492\nTest: art/test.py --host\nChange-Id: I122746e6293e7201077e834d8a5ed7bbba45e283\n"
    },
    {
      "commit": "d7a7f2f0bf62d6ff564dd34aa41a19f016583a78",
      "tree": "52bb3eb11651c275a232e9d8b970fe02a1b54dd1",
      "parents": [
        "d176e93d66df409e2eee5343efd26b35c73fb71b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 07 11:57:18 2018 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 07 13:05:11 2018 -0700"
      },
      "message": "Remove read barriers in Class::IsClassClass and Object::IsClass\n\nRemove unnecessary read barriers since Class.class is not movable.\n\nTest: test-art-host\nBug: 114413743\n\nChange-Id: Id68562606bab75bf5ba99a7e8a38e7db9d46df1d\n"
    },
    {
      "commit": "38d29fda9849b2e0e46a26a91b711e29177692cb",
      "tree": "6cd525d6c582238b2f46d2f924b2290049ae5025",
      "parents": [
        "83d04472775fb933a65f0ffddbba9dcaea58fa7e"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Sep 07 12:58:37 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Sep 07 13:15:51 2018 +0100"
      },
      "message": "ART: Simplify cache flush calls\n\nRemove need to cast to char* for Flush{Data,Instruction}Cache.\n\nTest: Treehugger\nChange-Id: I880c327d59624a04bc2a44a741bc40756a0fd3eb\n"
    },
    {
      "commit": "f233136f2ca25316643b7f409df7af55a762f98a",
      "tree": "a5aee0db607b4dc4d08e695426ebb74abcaabc35",
      "parents": [
        "9999327c8fbcab1d57f609457d68085ddefb7eb7"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jul 11 15:14:10 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Sep 06 13:47:10 2018 +0100"
      },
      "message": "ART: Add FlushInstructionPipeline()\n\nUse membarrier(MEMBARRIER_CMD_PRIVATE_EXPEDITED), where available, to\nflush CPU instruction pipelines after JIT code cache updates. This is\nneeded on architectures where TLB updates do not require a TLB\nshootdown.\n\nBug: 65312375\nBug: 66095511\nBug: 111199492\nTest: manual (requires kernel \u003e\u003d 4.16).\nChange-Id: I96811c611133ba765a546a09432c0c951ad39e10\n"
    },
    {
      "commit": "c09cd0513b860c4301ca7bd6a9065b583d102295",
      "tree": "1c7aa4ed2b9b5b1335829461e764c94565afb71d",
      "parents": [
        "40f8a74cba008af768316f0b5bfe9502174b6d02"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 23 16:36:36 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 31 11:50:53 2018 +0100"
      },
      "message": "Reserve boot image memory in one go.\n\nLoad boot image components into the reserved memory.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: Pixel 2 XL boots.\nTest: m test-art-target-gtest\nTest: testrunner.py --target --optimizing\nBug: 77856493\nChange-Id: I214f947979bc0bbfc6df4312527504e90b88a01d\n"
    },
    {
      "commit": "92597a8e27274abb25f1b15e0883357381f5a9a5",
      "tree": "7a21eb917c4928d1ae9f528dab62fe1b696223d1",
      "parents": [
        "fdc3d6782a4c30a54c062fad7a1eff4510304183"
      ],
      "author": {
        "name": "Joel Fernandes (Google)",
        "email": "joelaf@google.com",
        "time": "Fri Aug 17 16:19:19 2018 -0700"
      },
      "committer": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Thu Aug 30 10:45:19 2018 -0700"
      },
      "message": "Replace ashmem in ART with prctl\n\nART use ashmem just for naming anonymous regions. This is a hack.\nFurther, we are moving away from ashmem in favor of native Linux based\nshared-memory mechanims for Android. We already have a PRCTL for naming\nmaps in the Android kernels. Lets use that for Android.\n\nThis also results in removal of ashmem hacks for host-only builds.\n\nAs a side-effect, the naming of regions change from \"/dev/ashmem/\u003cname\u003e\"\nto \"[anon:\u003cname\u003e\" so we need to update debug code in frameworks. Another\nCL does that.\n\nNote: The user pointers passed to the prctl should be available during\nmaps read time, so we cannot use pointers from the stack. To solve this,\nwe maintain an std::map of unique debug strings when we name the maps.\nThis doesn\u0027t result in more memory usage than before, since ashmem is\nheavier storage-wise due to additional kernel data structure\nallocations.\n\nPerformance of \u0027dumpsys meminfo\u0027 gone up by 25% (1s to 0.75s). Slab\nmemory consumption gone down by 3-5MB on boot.\n\nTest: Boot and dumpsys meminfo before/after\nBug: 111903542\nInternal gerrit: ag/4827680\nChange-Id: Ia658fce62977f6c69dc4ce89ffdcfe2d9ae22738\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\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": "c34bebf39410f5571d3d5813157b61f274d435c3",
      "tree": "73909d3b34a2908e9de44cc60c4a2ff74eabefd7",
      "parents": [
        "f345404c725330914b8313d2c1af17226c5b92ca"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 16 16:12:49 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 21 13:51:00 2018 +0100"
      },
      "message": "Remove unnecessary indirection from MemMap.\n\nAvoid plain MemMap pointers being passed around by changing\nthe MemMap to moveable and return MemMap objects by value.\nPreviously we could have a valid zero-size MemMap but this\nis now forbidden.\n\nMemMap::RemapAtEnd() is changed to avoid the explicit call\nto munmap(); mmap() with MAP_FIXED automatically removes\nold mappings for overlapping regions.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nTest: m test-art-target-gtest\nTest: testrunner.py --target --optimizing\nChange-Id: I12bd453c26a396edc20eb141bfd4dad20923f170\n"
    },
    {
      "commit": "33b7b5da331e0a10fc615c8df72ba2aefad4e3fb",
      "tree": "4894623ad71bf957c25009e35e1b57ba501bb9c3",
      "parents": [
        "134380d7c70d95962ed818458185e608ad17ff08"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Aug 07 19:13:51 2018 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Aug 17 14:40:51 2018 -0700"
      },
      "message": "Revert^2 \"Fix race in CommitCodeInternal and cleanup\"\n\nThis reverts commit 8dde74eb7bec8e989f34d86a01c26b0f5c7e6443.\n\nWe were failing to do a null check in cha.cc. Due to compiler\noptimizations this would actually run without error on non-asan\nbuilds, causing the error to pass testing.\n\nReason for revert: Fixed issue causing asan issue.\nTest: run asan tests\n\nChange-Id: Ic5492c69b7735555108d8b18c8e687ce510c4549\n"
    },
    {
      "commit": "8dde74eb7bec8e989f34d86a01c26b0f5c7e6443",
      "tree": "e94f5e620f27b3d6dcb3b634bc25bf0274b1143b",
      "parents": [
        "a2af2b0c761a04d1e1ba4b1ccdc2efb4692e9c9c"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Aug 07 19:11:05 2018 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Aug 07 19:11:05 2018 +0000"
      },
      "message": "Revert \"Fix race in CommitCodeInternal and cleanup\"\n\nThis reverts commit a2af2b0c761a04d1e1ba4b1ccdc2efb4692e9c9c.\n\nReason for revert: Seems to cause the asan gtests to fail.\n\nChange-Id: I0c7b4720de16f9b2b4e1e27c3c4e57a018c59a0c\nTest: none\n"
    },
    {
      "commit": "a2af2b0c761a04d1e1ba4b1ccdc2efb4692e9c9c",
      "tree": "6c84decdf15db52cf8c20074f55b6f4fc89f9520",
      "parents": [
        "d0c6ec392756fd038ebb8aeaad19aed94c5fd1a5"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jul 19 14:39:24 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Aug 01 09:15:23 2018 -0700"
      },
      "message": "Fix race in CommitCodeInternal and cleanup\n\nJitCodeCache::CommitCodeInternal had a race where it gained the\ncode-cache lock to allocate memory, then drops it and potentially\nsuspends. It relied on the time for a code-collect being strictly more\nthan the time this function took, creating a race. This CL Changes the\nlock ordering of CHA to allow us to cleanup the CommitCodeInternal\nfunction and remove the race.\n\nTest: ./test.py --host --jit\nChange-Id: I13c7ec6c56f07660778009ad8ce9c8c10bc2d57d\n"
    },
    {
      "commit": "8cd54547cec8a4537db5682c2da8be22843b1310",
      "tree": "fb1158993bab2e027984cedab59b402c051a45a7",
      "parents": [
        "91f0fdb4372d3f2bcfcd9db67afcbe7ee1901048"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Jul 15 23:58:44 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Aug 01 14:49:40 2018 +0100"
      },
      "message": "Move MethodInfo to CodeInfo.\n\nThere is no need to treat it specially any more,\nbecause of the de-duplication at BitTable level.\n\nThis saves 0.6% of oat file size.\n\nTest: test-art-host-gtest\nChange-Id: Ife7927d736243879a41d6f325d49ebf6930a63f6\n"
    },
    {
      "commit": "8808756b8fba036a9c73a45c800a56be09872364",
      "tree": "9b28f314ff516d1d9b85d07f71bdc77fad465e48",
      "parents": [
        "dda4e8b5f2ffed24a2dcdb99d2301d9fc0eb91e2"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sat Jun 23 22:05:56 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jul 27 15:03:06 2018 +0100"
      },
      "message": "Remove frame info from OatQuickMethodHeader.\n\nThe information has been moved to CodeInfo,\nwhere it is stored in much more compact way.\n\nThe old CL which added the data to CodeInfo cost 0.7%.\nThis CL saves 2.5% of .oat file size so a win overall.\n\nTest: test-art-host-gtest\nChange-Id: I07fcf6f2776c96218f995ba3b57a1e6ccbf5e317\n"
    },
    {
      "commit": "b07dcdba37e9a5652b7754a6bd9c3538880d6668",
      "tree": "15524fb0505323ec78bf4d8841245da6fe61d6ee",
      "parents": [
        "6250dfa22577160b270f3f3165260739707cf7d3",
        "c945e0d410ca8d4e9ba09272e8727a3192f1e449"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jul 20 13:06:30 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 20 13:06:30 2018 +0000"
      },
      "message": "Merge changes I87f2999f,I8af0e845\n\n* changes:\n  Remove ArtMethod\u0027s declaring class state checks.\n  ObjPtr\u003c\u003e-ify ArtMethod and mirror::Method.\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": "d25eb2cf85d04ae8565dcefb347afb108268b374",
      "tree": "db3d326e3ba40af8e7fd3e3aeea5e3752b07c700",
      "parents": [
        "d7da3147fea647ade418337aed6a8f9402412611"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jul 19 12:17:04 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jul 19 12:17:04 2018 +0000"
      },
      "message": "Revert^5 \"Rewrite JVMTI method tracing to use trampolines\"\n\nThis reverts commit d7da3147fea647ade418337aed6a8f9402412611.\n\nReason for revert: Tests are still failing on the buildbot.\n\nChange-Id: Iaaac38137b1c4bed8e3a15b0c0c14730654025f6\n"
    },
    {
      "commit": "d7da3147fea647ade418337aed6a8f9402412611",
      "tree": "74907194b84807ae327ba9aff876e1f9d4bbf7a4",
      "parents": [
        "eee2ee8e17aa65656e9946c5beb4a0a49fee7509"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jul 18 15:39:16 2018 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jul 18 16:10:50 2018 -0700"
      },
      "message": "Revert^4 \"Rewrite JVMTI method tracing to use trampolines\"\n\nSince we are unable to change the semantics of ClassLoaded and\nClassPrepared due to b/111394423 for the moment changes were made in\nlibjdwp to remove the deadlock between the jit being stopped and\njit-threads trying to lock JVMTI monitors in libjdwp.\n\nUntil some resolution for b/111394423 is implemented agents should be\nvery careful about gaining locks in the ClassLoaded, ClassPrepared or\nVMObjectAlloc events if said lock is held over a call to\nSetEventNotificationMode, SetExtensionEventCallback,\nRetransformClasses, or RedefineClasses. These locks can only be\nsafely held if the object argument to the event is not an array-class\nobject or the thread is known not to be a jit thread.\n\nThis reverts commit bf2ca05ccf658a9f626d1cb3f1adca6087ece7b8.\n\nBug: 111394423\nTest: ./art/tools/run-libjdwp-tests.sh --mode\u003dhost --debug\n\nReason for revert: Fixed issue with libjdwp deadlocking on jit threads\n\nChange-Id: I8baeb8311f67062cbc26286eb221da34e1972f27\n"
    },
    {
      "commit": "bf2ca05ccf658a9f626d1cb3f1adca6087ece7b8",
      "tree": "8de1c48dd0a83091ffef6bf321ffc4ffc05b1147",
      "parents": [
        "460c6ce61766196fc47ec5744417254fa2d6e364"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jul 18 13:26:11 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jul 18 13:26:11 2018 +0000"
      },
      "message": "Revert^3 \"Rewrite JVMTI method tracing to use trampolines\"\n\nThis reverts commit 460c6ce61766196fc47ec5744417254fa2d6e364.\n\nReason for revert: I believe this is breaking libjdwp jit tests.\n\nChange-Id: I51297763c1d12555b32f3d37c0ceaa3b5720fff5\nTest: ./art/tools/run-libjdwp-tests.sh --mode\u003dhost --variant\u003dX64 --debug\n"
    },
    {
      "commit": "460c6ce61766196fc47ec5744417254fa2d6e364",
      "tree": "70831d1dd48b3e65e1266da179d01c7d27cc1e47",
      "parents": [
        "53570676750d74416cecdf5a8e01f3cf9a8d4169"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jul 11 16:13:24 2018 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 17 11:03:27 2018 -0700"
      },
      "message": "Revert^2 \"Rewrite JVMTI method tracing to use trampolines\"\n\nThis reverts commit 8772eb7ced96101e6202d8884edc84224ee1f1fd.\n\nWe had issues with trampolines confusing the libgcc _Unwind_Backtrace\nfunction and jit suspension deadlocking with user-code suspension.\n\nReason for revert: Fixed issue causing test 989 to fail in some\n                   configurations.\nTest: ./test.py --host --gcstress --cms\nTest: ./art/tools/run-libjdwp-tests.sh --mode\u003dhost\n\nChange-Id: Id83aa0d71f4523fe1b5e448d49887779f911a1a2\n"
    },
    {
      "commit": "dca6840055c5255ad05f7516b0227e44ef6310a2",
      "tree": "1ec755d20b31dbe4c57a4e29afcd468eb3751568",
      "parents": [
        "f3c3e83d3a98bd3ca388fca32f1c277a7945e1e3",
        "8772eb7ced96101e6202d8884edc84224ee1f1fd"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jul 11 16:11:29 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 11 16:11:29 2018 +0000"
      },
      "message": "Merge \"Revert \"Rewrite JVMTI method tracing to use trampolines\"\""
    },
    {
      "commit": "8772eb7ced96101e6202d8884edc84224ee1f1fd",
      "tree": "24df91603efe9ce8c4a2efd09ac402aceb10df4e",
      "parents": [
        "25bf44622d6359c1d49c2a8a8b45938ff099f811"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jul 11 16:10:48 2018 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jul 11 16:10:48 2018 +0000"
      },
      "message": "Revert \"Rewrite JVMTI method tracing to use trampolines\"\n\nThis reverts commit 25bf44622d6359c1d49c2a8a8b45938ff099f811.\n\nReason for revert: Seems to break jit-gcstress test 989\n\nChange-Id: Ia59833a2b80c6ab5a67483bf076bf08ba6769a40\nTest: None\n"
    },
    {
      "commit": "839f53a179df5225dac6964732486fc8dc5c79b0",
      "tree": "843aa29a1e7ddefbedc91026fad4e91168fab8e3",
      "parents": [
        "23b8f0d6cafc5079347f7b2ec61eecb0a9f30371"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 10 15:46:14 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 10 16:08:16 2018 -0700"
      },
      "message": "Fix typo in condition for getting the compiled code.\n\nDue to a late refactor we unintentionally flipped a condition and\nreturned early on code-collection being off instead of it being on.\n\nTest: ./test.py --host --trace --ntrace\nTest: ./test/testrunner/testrunner.py --host --runtime-option\u003d-Xjitthreshold:0 --jit\nTest: ./test/testrunner/testrunner.py --host --jit --debug --runtime-option\u003d-Xplugin:libtracefast-trampolined.so\nTest: ./test/testrunner/testrunner.py --host --jit --debug --runtime-option\u003d-Xjitthreshold:0 --runtime-option\u003d-Xplugin:libtracefast-trampolined.so\nTest: ./test/testrunner/testrunner.py --host --debuggable --run-test-option\u003d\u0027--with-agent libtifast.so\u003dMethodEntry,MethodExit\u0027\nTest: ./test/testrunner/testrunner.py --host --debuggable --jit --runtime-option\u003d-Xjitthreshold:0 --run-test-option\u003d\u0027--with-agent libtifast.so\u003dMethodEntry,MethodExit\u0027\nTest: adb shell am start-activity -S --attach-agent /data/local/tmp/libtifast.so\u003dMethodEntry,MethodExit \u003csome app\u003e\nTest: ./test/testrunner/testrunner.py --host --runtime-option\u003d-Xplugin:libtracefast-trampolined.so\nChange-Id: I2f341cf748530f79a574933a3abb4f32a5019d03\n"
    },
    {
      "commit": "25bf44622d6359c1d49c2a8a8b45938ff099f811",
      "tree": "d1a0e1f8069001d6880723f77e95efb01385ca71",
      "parents": [
        "d109e30eab8ba25f8d89be2a83d9036e2d541af2"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jun 11 10:28:06 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 10 08:44:52 2018 -0700"
      },
      "message": "Rewrite JVMTI method tracing to use trampolines\n\nNow that we have working instrumentation trampolines we can rewrite\nthe MethodEntry and MethodExit events to use these instead of the\ninterpreter. This will improve performance of code being traced in\nthis way by allowing the actual code to still use optimized jit code.\n\nTest: ./test/testrunner/testrunner.py --host --runtime-option\u003d-Xjitthreshold:0 --jit\nTest: ./test/testrunner/testrunner.py --host --jit --debug --runtime-option\u003d-Xplugin:libtracefast-trampolined.so\nTest: ./test/testrunner/testrunner.py --host --jit --debug --runtime-option\u003d-Xjitthreshold:0 --runtime-option\u003d-Xplugin:libtracefast-trampolined.so\nTest: ./test/testrunner/testrunner.py --host --debuggable --run-test-option\u003d\u0027--with-agent libtifast.so\u003dMethodEntry,MethodExit\u0027\nTest: ./test/testrunner/testrunner.py --host --debuggable --jit --runtime-option\u003d-Xjitthreshold:0 --run-test-option\u003d\u0027--with-agent libtifast.so\u003dMethodEntry,MethodExit\u0027\nTest: adb shell am start-activity -S --attach-agent /data/local/tmp/libtifast.so\u003dMethodEntry,MethodExit \u003csome app\u003e\n\nChange-Id: I37c2ece14b1b12a79390da7d668ebbefa2966f87\n"
    },
    {
      "commit": "3e36a9c24f591097b4403fe77b1d426c03aeb56a",
      "tree": "64f9c8896038ada2f7a17bd7cc62c488027dd548",
      "parents": [
        "25bf44622d6359c1d49c2a8a8b45938ff099f811"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jun 19 09:45:05 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 10 08:44:52 2018 -0700"
      },
      "message": "Move back to jit code on trace removal\n\nThis changes the lock hierarchy so the lock checker is able to\ncorrectly determine that we will not deadlock. This lets us replace\nthe jit code in the method when tracing is removed.\n\nTest: ./test.py --host\n\nChange-Id: I14dd4eb9814c73fa3639239bb56d91c8303cec60\n"
    },
    {
      "commit": "2d441b1253cca39bf3078422e8f0b2f4ec1bb408",
      "tree": "3db740023b1322749856f943c4b25b8158da8a44",
      "parents": [
        "e824cfdcfd41d400237a806ff93caca7f2e51878"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jun 08 15:33:21 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 10 08:44:17 2018 -0700"
      },
      "message": "Make instrumentation trampoline able to jump to jit code\n\nIn order to get the benefit of the instrumentation trampoline it must\nbe able to jump to jit code. This patch adds support for doing that\nand adds code to ensure that we will not be jumping back and forth\nbetween the trampoline and the interpreter all the time if the jit has\nnot yet compiled the current method.\n\nNote we also disable the jit-gc when turning on these trampolines\nsince otherwise we could end up either sending instrumentation events\nmultiple times or running uninitialized memory.\n\nBug: 110263880\nTest: ./test/testrunner/testrunner.py --host --runtime-option\u003d-Xplugin:libtracefast-trampolined.so\nTest: ./test/testrunner/testrunner.py --host --runtime-option\u003d-Xplugin:libtracefast-trampolined.so --runtime-option\u003d-Xjitthreshhold:0\nTest: ./test.py --host\n\nChange-Id: Ie6e92ec6367452fe4fde24d520d808b7af91d1b5\n"
    },
    {
      "commit": "afc97bca07c85d4c3b46801c557edd12d681fc96",
      "tree": "fd53094370a28aa4ba4b9d419e05ff7797cf51ae",
      "parents": [
        "564fa8a1f3e3c39793c9b146ed5f21650617dc3f"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jul 05 08:14:35 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jul 05 13:04:43 2018 +0100"
      },
      "message": "Revert^2 \"Add CodeInfo to JNI methods.\"\n\nIt has no stack maps. We only store the frame info there.\n\nAs a consequence of having CodeInfo, the JNI methods are\nnow classified as IsOptimized().\n\nThis does not have any real effect on .oat file size.\n\nThis reverts commit 564fa8a1f3e3c39793c9b146ed5f21650617dc3f.\n\nTest: test-art-host-gtest\nTest: test-art-target-gtest-jni_compiler_test32\nChange-Id: Ic7a1949027d89ba97cfedfc8ea453f041193b6a7\n"
    },
    {
      "commit": "564fa8a1f3e3c39793c9b146ed5f21650617dc3f",
      "tree": "b9e960a55f5643e65ecd05e258f9ac1662288bcc",
      "parents": [
        "85f3934f364e1674bfd2a6813274918576acdf60"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jul 05 00:01:10 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jul 05 00:01:10 2018 +0000"
      },
      "message": "Revert \"Add CodeInfo to JNI methods.\"\n\nThis reverts commit 85f3934f364e1674bfd2a6813274918576acdf60.\n\nReason for revert: breaks gtests on target\n\nChange-Id: I9f97fe4e7557027677824974568120f658bbd53a\n"
    },
    {
      "commit": "85f3934f364e1674bfd2a6813274918576acdf60",
      "tree": "7dde44e022bfe43439982e6d2c699f5acc73efcf",
      "parents": [
        "0162450a86c1586c8e0d28710ea0280bfa64ae32"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sat Jun 23 22:05:52 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jul 04 13:51:50 2018 +0100"
      },
      "message": "Add CodeInfo to JNI methods.\n\nIt has no stack maps. We only store the frame info there.\n\nAs a consequence of having CodeInfo, the JNI methods are\nnow classified as IsOptimized().\n\nThis does not have any real effect on .oat file size.\n\nTest: test-art-host-gtest\nChange-Id: I8d03a3af347dc7239719bb3c39ecf84c6eaece80\n"
    },
    {
      "commit": "f0f3c594404aeb3d758e31ba748be400dc5b78a9",
      "tree": "e5c247c1aedfbf4de832d2fc3ccf415aca8366c6",
      "parents": [
        "a98d9e76ed2486db9a7490a6e421a509ab2f6e2d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 26 13:28:00 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 27 08:37:43 2018 -0700"
      },
      "message": "ART: Clean up jit_code_cache.h\n\nRefactor to reduce transitive includes.\n\nTest: mmma art\nChange-Id: I32caf422dc9a59b8e3d495b88b182f072ef4de84\n"
    }
  ],
  "next": "882ed6bcccf60e55b61aa1860d9a15a7e92af959"
}
