)]}'
{
  "log": [
    {
      "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": "b3b2db7edeaa09751dab44a7d0339590fd7b1788",
      "tree": "ea922140487594c45e6e95d1e2ce624221977dc7",
      "parents": [
        "b5204f4216557b1f7bfd72be1fd49ec9d0960ecb"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 11 15:47:14 2019 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 16 22:13:40 2019 +0000"
      },
      "message": "ART: Use a scoped disable-moving-gc helper in reg_type_test\n\nIn general we cannot use the standard ScopedGCCriticalSection,\nbecause we rely on the RegTypeCache to load classes for the\ntest (in part for test setup convenience, in part as an actual\ntest).\n\nTest: m test-art-host-gtest-reg_type_test\nChange-Id: I00dafc28a39fe97ecee41284fd5d8f3642bf5a2f\n"
    },
    {
      "commit": "b5204f4216557b1f7bfd72be1fd49ec9d0960ecb",
      "tree": "95ca743a14876cda3e8e185ef4613220aba196ce",
      "parents": [
        "4bd5234a05db801892ce28ea0504aebb46d06a25"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 25 12:39:15 2019 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 16 22:13:40 2019 +0000"
      },
      "message": "ART: Add interface class join heuristic\n\nDo not treat interfaces as regular classes. This will always\nlead to a join of java.lang.Object, rejecting semantically\nvalid programs.\n\nWe want to retain IMT dispatch, forcing us to verify interface\nassigment. In the absence of set types, the result is ambiguous\nand not well defined. In a best effort, attempt to find a joint\ninterface by walking the interface tables of the join arguments\nbackwards.\n\nIn the case of two non-interface classes, we still prefer the\nclass hierarchy.\n\nBug: 69826014\nTest: m test-art-host-gtest-reg_type_test\nChange-Id: I7e0086f045e5bb2a7c3ee3464de45fc5b02f4d3f\n"
    },
    {
      "commit": "4bd5234a05db801892ce28ea0504aebb46d06a25",
      "tree": "4c20a058f401c8cdb8842f964a8e1a6f08dd3a93",
      "parents": [
        "431a7e587117f43ae3819009f3b2e4d6211f35b9"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 15 15:09:04 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 16 18:42:44 2019 +0000"
      },
      "message": "ART: Scope runnable part of JitCompileTask\n\nDo not run ProfileSaver code under mutator lock.\n\nBug: 137339043\nTest: m\nChange-Id: Idfdb6992946dfc5186d2a047b80947b40224c6e3\n"
    },
    {
      "commit": "431a7e587117f43ae3819009f3b2e4d6211f35b9",
      "tree": "1713e271f7480f24ebb550e1b30ab113d6efd75a",
      "parents": [
        "8787cf87606f2a0c45b44578c7a9a254b7c6dfc9"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 15 13:30:41 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 16 18:42:34 2019 +0000"
      },
      "message": "ART: Fix some thread-annotalysis issues in ProfileSaver\n\nRemove where possible and replace with the instance_-referenced\nlocks.\n\nRefactor the Run() flow: let Run() expect the profiler lock to\nbe held (and release it). Let RunProfileSaverThread() grab the\nlock. This allows removing NO_THREAD_SAFETY_ANALYSIS from\nRunProfileSaverThread.\n\nAnnotate methods with missing negative annotations.\n\nBug: 137339043\nTest: m\nChange-Id: Ief472cf03facdd4e9253501f2e4eebff4569a22c\n"
    },
    {
      "commit": "8787cf87606f2a0c45b44578c7a9a254b7c6dfc9",
      "tree": "859e0066ab40650b2212240c7e38418b1418d39e",
      "parents": [
        "db26569b5e21ef16f4a90e4f6ad0904341e7ecf8"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu Jul 11 12:50:31 2019 -0700"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Tue Jul 16 17:52:58 2019 +0000"
      },
      "message": "Set Mark-bit for large Zygote objects\n\nWe set the mark-bit of Zygote objects before forking to ensure that the\nobjects are not dirtied due to GC trying to modify the GC related bits\nin the objects\u0027 header. The same was mistakenly not being done for\nlarge-space objects corresponding to Zygote.\n\nTest: art/test/testrunner/testrunner.py --target --64\nBug: 37254935\nChange-Id: I173d6090a6ec0fd7e511e1d684341ecf0968e97f\n"
    },
    {
      "commit": "8b770c42bf37975ac25aa9fe3745bf1e64992d67",
      "tree": "3977ccd3d913a43b07af98b20b9ba16043fe17f0",
      "parents": [
        "5071531ceb1f4ed82dff1da15f572201509cf23e"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jul 12 15:14:29 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jul 16 14:49:55 2019 +0000"
      },
      "message": "Switch-interpreter: Fix large performance regression in preamble.\n\nIntroduced in CL/931678: JVMTI Force early return\n\nThis makes benchmarks on golem up to 50% faster.\n\nTest: run golem\nChange-Id: Ie5757ab2235df77bbd6584fccbceff34a38fe775\n"
    },
    {
      "commit": "5bef022af212e060a3e744e688ae2116849d4485",
      "tree": "be91c1f6cc7bcf8fbfe0b72c85c9f4bf0863adec",
      "parents": [
        "2d06e029b1c84916154b5960d2acd1c84706dc04"
      ],
      "author": {
        "name": "randy.jeong",
        "email": "randy.jeong@samsung.com",
        "time": "Mon May 27 10:29:09 2019 +0900"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Jul 16 09:55:20 2019 +0000"
      },
      "message": "[RUNTIME] Ignore signal registration for debugging\n\nIt\u0027s difficult to identify native crash/error of 3rd party app.\nBecause they can control their app with own signal handling.\nTherefore I would like to support the way to ignore signal\nregistration in 3rd party app with the specific property.\n\nTo enable this, do just setprop \"debug.ignoreappsignalhandler 1\".\n\nTest: test app to hook signal, then setprop debug.ignoreappsignalhandler 1\n\nChange-Id: I56e2f1255a71abae339396379deb8cb5c31c25c5\nMerged-In: I56e2f1255a71abae339396379deb8cb5c31c25c5\nSigned-off-by: randy.jeong \u003crandy.jeong@samsung.com\u003e\n"
    },
    {
      "commit": "7cde45800e21c270945b43a8989334ffc7422c32",
      "tree": "61f04cf955031cf5e38211e7c7d09fee00f10e30",
      "parents": [
        "6b63d8832a780e8b661595ff0b0610b3cc52aa6a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jul 05 13:26:11 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 16 08:22:46 2019 +0000"
      },
      "message": "Further clean up boot image address checks.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nChange-Id: Ib7abd10e94e995e61549b3a3111a640802b5e700\n"
    },
    {
      "commit": "c658278be744b3b6d1b964a826128f9f1f5662f7",
      "tree": "71f7dd393ebcf67518c03ff32f4209ba2110f4e5",
      "parents": [
        "bfa8b1ea0f7edf84c4137d5a822cc8acaf90acda"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 10 15:06:18 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 16 01:19:08 2019 +0000"
      },
      "message": "ART: Introduce CompatThrow\n\nAdd an \"virtual\" instruction flag to signal a historical throw\nthat is not captured by kThrow. Both kinds of instructions need\nto capture the work line at the beginning of a verification step.\n\nLong-term, remove CompatThrow.\n\n\"Annotate\" return-object.\n\nBug: 121245951\nTest: m test-art-host\nChange-Id: I07e9f07da3ebcc9ccd1191ffc2c145b2c83a84f8\n"
    },
    {
      "commit": "bc919af448aef9e8043e56ca83a2aa4ff90b9ad6",
      "tree": "904105c3bd20d6ee9af1fbfcda19f1eaa7ffc42d",
      "parents": [
        "d78122b424c1be24f7e9ac7983af3f43e9d4e294"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 10 14:09:51 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 15 17:52:47 2019 +0000"
      },
      "message": "ART: Disallow unresolved return types after Q\n\nFor apps targeting future releases, do not allow type mismatches\ninvolving unresolved types. The behavior complicates the verifier\nand the runtime and does not conform to regular expected behavior.\n\nHistorically this has been done for app compatibility when non-native\nmultidex was a thing. In that situation, even at runtime when an \"early\"\nclass is being verified a type might not be available because it is\nsupplied by a later injected dex file.\n\nClassloader manipulations in this way are no longer supported. Classes\nhave to be available at verification time to not fail the class.\n\nBug: 121245951\nTest: m test-art-host\nChange-Id: I9608c79183be7b85b76892498d6a7007a29f2434\n"
    },
    {
      "commit": "d78122b424c1be24f7e9ac7983af3f43e9d4e294",
      "tree": "e3d89743ab77a860b45306530afbb519666aa68a",
      "parents": [
        "d70a97c6d4a0954bed8991bd89a93bd3da9476f6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 10 14:06:53 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 15 17:36:17 2019 +0000"
      },
      "message": "ART: Do not access-check type on instanceof peephole\n\nWhen attempting the instanceof+branch peephole, do not retrieve\nthe cast type with an access check to avoid a posted failure. That\nfailure does not happen, it belongs with the instanceof.\n\nBug: 121245951\nTest: m test-art-host\nChange-Id: I87e2228bff9f3374e7141e600f24554846ecac32\n"
    },
    {
      "commit": "d70a97c6d4a0954bed8991bd89a93bd3da9476f6",
      "tree": "82612bad0122b0083113edc4702dc3bad4168157",
      "parents": [
        "2808be84a8f86542450670acdb5e6b55498ff5f0"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 01 14:00:05 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 15 17:30:05 2019 +0000"
      },
      "message": "ART: Monitor-stack merging should not be handled as throwing\n\nMismatched stacks and other issues on merging register lines should\nnot be handled as a pending runtime exception. Actual exceptions\nwill be thrown at monitor-enter/exit and return sites. Both are\nalready covered: the former by being annotated kThrow, the latter\nby explicit checks for the stack (and end of control flow).\n\nThus, Fail() with pending_exc set to false in register line merging.\nThis still triggers lock verification at runtime.\n\nBug: 121245951\nTest: m test-art-host\nChange-Id: I06acca2920110e3de2a2bed7bae6695788f77449\n"
    },
    {
      "commit": "2808be84a8f86542450670acdb5e6b55498ff5f0",
      "tree": "f41b63e3109a6a6a9bd534f32b8d92f20eb9ef35",
      "parents": [
        "460f05480379d5c75555d06c4938bc990ce6ff83"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Thu Dec 20 19:15:11 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jul 15 09:30:36 2019 +0000"
      },
      "message": "ART: Introduce stackmap with no DexRegInfo.\n\nSome of safepoints don\u0027t need to have DexRegisterMap info;\nthis will decrease the stackmap size.\n\n.oat file size reduction:\n - boot.oat:           -233 kb (-5.4%)\n - boot-framework.oat: -704 kb (-4.9%)\n\nTest: 461-get-reference-vreg, 466-get-live-vreg.\nTest: 543-env-long-ref, 616-cha*.\nTest: test-art-target, +gc-stress.\n\nChange-Id: Idbad355770e30a30dcf14127642e03ee666878b8\n"
    },
    {
      "commit": "0d87f99907f01ced713bf2dff97ee6655da077f3",
      "tree": "7e015521b706acdcedf5404f8e2f936e12b74cc4",
      "parents": [
        "4146e064849cd566dfb5d9f851f95fb490ec0836"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 10 13:19:45 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 11 23:12:52 2019 +0000"
      },
      "message": "ART: Remove VERIFY_ERROR_UNRESOLVED_CATCH\n\nReplace with a more generic SKIP_COMPILER, mark the Fail() calls as not\nthrowing, and replace the standard occurrence with NO_CLASS.\n\nBug: 121245951\nTest: m test-art-host\nTest: art/test/testrunner/testrunner.py -b --host -t 800 --jit-on-first-use\nChange-Id: I9f601702f27d815840538c04b332a52bf1c58c54\n"
    },
    {
      "commit": "4146e064849cd566dfb5d9f851f95fb490ec0836",
      "tree": "fdf0e0cd034f93fb78b1ac59a656022eb8c76b76",
      "parents": [
        "50037df21707c34beda776263536276fd9fbbe20"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 10 13:18:04 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 11 23:12:52 2019 +0000"
      },
      "message": "ART: Prepare to remove VERIFY_ERROR_UNRESOLVED_CATCH\n\nAdd a parameter to Fail() that defines whether a runtime exception\nis expected at that point.\n\nBug: 121245951\nTest: m test-art-host\nChange-Id: Iff98ae24ef095df411804150d41c80493d42c09f\n"
    },
    {
      "commit": "bb5b4f35e7d4cfddb9aedb4f2ea35b017650cd58",
      "tree": "c62934250a5e74f1d194eeefa9bc8c7c9ee03131",
      "parents": [
        "4a30f89d65efa9b85c34bbd7aa23ea4cd38b920d"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 09 02:31:48 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 10 15:54:45 2019 +0000"
      },
      "message": "Revert \"Disable opaque JNI Ids for now.\"\n\nWe were incorrectly using a potentially out-of-date pointer to access\nclass object fields. This could cause segvs if the class object moves\nduring certain allocations relating to JNI id allocation.\n\nThis reverts commit 1be9c72dd49e7620dd76a8b9cef23d7cde0a6b01.\n\nReason for revert: Fixed issue with gcstress\nTest: ./test.py --host --debuggable --gcstress\nBug: 134162467\n\nChange-Id: I6ee7fc4485bbae6f0f1d4f4af0e8c2bc88bf4075\n"
    },
    {
      "commit": "4a30f89d65efa9b85c34bbd7aa23ea4cd38b920d",
      "tree": "95ad8586ef841a3a5750c24a7780b58bf12cac3c",
      "parents": [
        "7a82acc7ee79b198f7b4638a15cb1c3d1625ab6c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 10 04:57:58 2019 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 10 04:57:58 2019 +0000"
      },
      "message": "Revert \"ART: Remove VERIFY_ERROR_UNRESOLVED_CATCH\"\n\nThis reverts commit 7a82acc7ee79b198f7b4638a15cb1c3d1625ab6c.\n\nReason for revert: NO_CLASS doesn\u0027t have the right semantics for the compiler\n\nBug: 121245951\nChange-Id: I8dbeb7fbd6a697fe536535f1c696187041d7fcab\nTest: m test-art-host\n"
    },
    {
      "commit": "7a82acc7ee79b198f7b4638a15cb1c3d1625ab6c",
      "tree": "1b534443e584be4bcccddfa533d7d94305d37645",
      "parents": [
        "11410de860d4e6bd6d3cc90aa604575430882302"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 01 13:54:21 2019 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 08 14:52:45 2019 -0700"
      },
      "message": "ART: Remove VERIFY_ERROR_UNRESOLVED_CATCH\n\nInstead add a parameter to Fail() that defines whether a runtime\nexception is expected at that point.\n\nBug: 121245951\nTest: m test-art-host\nChange-Id: Id9132eabc26b71a305ccb87f2182b4ae2e5b8c35\n"
    },
    {
      "commit": "8d6651d8cc83d028cefc24153f4543a82dea4574",
      "tree": "cc18f2d7800bc8dc87c27de53b62e35aa632ff6d",
      "parents": [
        "6623594e6c65035c3096c8edcbf6374d22f6d4e0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 08 10:03:16 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 08 12:02:47 2019 +0100"
      },
      "message": "Disable jit_memory_region_test tests on buggy kernels.\n\nTest: jit_memory_region_test\nChange-Id: I5339071ab1fcb9765a91015e33024d05774ac2b1\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": "d17eac6b037f67494e31671d1a1d9d233ba3f237",
      "tree": "75a285db021569d1f10c800ed185144ad457cefb",
      "parents": [
        "e81f10a3f672a8bcc421cab812e6435749181566"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jul 03 17:39:12 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 05 09:28:56 2019 +0000"
      },
      "message": "Fix for 689-zygote-jit-deopt on kernels before 3.11rc2\n\nNo JIT for zygote if cache flushes can signal faults. JIT for zygote\nneeds dual code mappings by design and the old kernel behaviour is\nincompatible with this. The new test 689-zygote-jit-deopt was running\nup against this issue on Nexus 6P test devices.\n\nTest: art/test/testrunner/testrunner.py --target --64 -t 689\nBug: 136584457\nChange-Id: Ibdafca270962d9e4a22ce1d9ba04f15771144899\n"
    },
    {
      "commit": "e81f10a3f672a8bcc421cab812e6435749181566",
      "tree": "076df5318e4bfdb6148fd6bb0faf5ea8de1d3336",
      "parents": [
        "9690542a9ed7740110459d3167708e6edc1a2686"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jul 04 10:00:12 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 05 00:20:19 2019 +0000"
      },
      "message": "Revert \"Remove ShadowFrame::dex_pc_ (but keep dex_pc_ptr_)\"\n\nThis reverts commit 50bc8fb89c79874e731f245abda3b9e48a541cfe.\n\nReason for revert: Performance regression\n\nChange-Id: Ib39ceb9e1f2753c518dd24fd193a824211fd5795\n"
    },
    {
      "commit": "ab682a78d9e61a37cc87d751a0c4d80856a44b7f",
      "tree": "b38c97bbc41ec9aae03f68eace058fa1338037d6",
      "parents": [
        "e6cb9710affda5e1560aa81b32ad93caf40de32a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 04 10:11:55 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 04 15:26:23 2019 +0000"
      },
      "message": "Blind fix for fixing 689-zygote-jit-deopt on host bionic.\n\nBug: 136724968\nChange-Id: Icfab0233407955b7a859f7e5c2c59ce36e97af46\n"
    },
    {
      "commit": "d5fd5c3bbb44880e440c6920ce5ed56b5383c788",
      "tree": "2cf8a6354e5509c5a5e0bc2937c24fe7e03a12b1",
      "parents": [
        "1a6f9fcce199f437a5945dfe0163188b923adb28"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 02 14:46:32 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 04 08:17:30 2019 +0000"
      },
      "message": "Make .bss stores atomic release operations.\n\nAnd rely on architecture-dependent behavior for the .bss\nentry loads.\n\nThis fixes theoretical races when one thread updates the\n.bss entry and another uses it immediately thereafter;\npreviously we did not ensure correct memory visibility.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nTest: run-gtests.sh\nTest: testrunner.py --target --optimizing\nChange-Id: Ie7b7969eb355025b9c9205f8c936e702861943f4\n"
    },
    {
      "commit": "5e33ccdacefe363a5d9b488a09cef69fe7dd3637",
      "tree": "7fd7f9306a7900655ac972903fa683d41d643bfa",
      "parents": [
        "4b3946a55516b9218063171d827009a1ffde7ba3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 03 10:53:08 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 03 14:27:49 2019 +0000"
      },
      "message": "Don\u0027t force-allocate a profiling info when we cannot.\n\nShared memory cannot allocate profiling infos.\n\nTest: art/test/run-test --always-clean --dex2oat-jobs 4 --host --prebuild --compact-dex-level fast --jit --runtime-option -Xjitthreshold:0 --no-relocate --runtime-option -Xcheck:jni 689-zygote-jit-deopt\nChange-Id: Ib09b9989fb398a12af29501e72b9acd22c3e51ec\n"
    },
    {
      "commit": "50bc8fb89c79874e731f245abda3b9e48a541cfe",
      "tree": "c4dd3d8291ceac4b1d9b7dbca9886842c33967f2",
      "parents": [
        "8c344524e5251535e49cbe8e68ab5dc1cd7d1591"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jun 26 15:05:43 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jul 03 14:21:47 2019 +0000"
      },
      "message": "Remove ShadowFrame::dex_pc_ (but keep dex_pc_ptr_)\n\nThey store the same information which is redundant and error prone.\n\nTest: ./art/test.py --interpreter\nChange-Id: I379c20973b90645e3c1016c253d9a6db9a2417dc\n"
    },
    {
      "commit": "1aff1efe67be9238792704c6758028d12239e337",
      "tree": "aad969e51d79b2cff50170c01d933b783260218b",
      "parents": [
        "c1b34d49a0790db878685258dc46c0bfd37e4f37"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 02 15:12:50 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jul 03 08:24:36 2019 +0000"
      },
      "message": "Clean up retrieving boot image address range.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I8f36ae59399e4fa97576bbb8d71e29f9f40c0c91\n"
    },
    {
      "commit": "c1b34d49a0790db878685258dc46c0bfd37e4f37",
      "tree": "8844cb9822036de01c5ff5b712e1dad2cb3d09dd",
      "parents": [
        "f5e3c66d63437ff1cc088b6a58e566fb7b5a3482"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Jul 02 20:37:51 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 03 06:53:58 2019 +0000"
      },
      "message": "Disable JNI native whitelist check\n\nStack walking technique to be revisited as it breaks with recent LLVM.\n\nBug: 136276414\nTest: m\nChange-Id: I69d49bd5b0696a37bc82f7197243e361f4c6ce6e\n"
    },
    {
      "commit": "4d6ca2e01e5e9b0006b94039f53e552dd0236d02",
      "tree": "1731d3dd4df7790ab21532a8d2bd3be04baef0df",
      "parents": [
        "af213ccb19231a4f46340bf8a791b4f498b8bda4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jul 01 17:18:37 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 02 16:00:57 2019 +0000"
      },
      "message": "Deterministic VerifierDeps::Dump().\n\nThis makes is easier to diff oatdump output.\n\nTest: m dump-oat-boot \u0026\u0026 \\\n      grep \u0027Dependencies of \u0027 out/soong/boot.arm.oatdump.txt\n      (framework.jar dex files are ordered properly.)\n\nChange-Id: I55f14950f00e4c3cbdda53ec513837d11ade026e\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": "4d71e55eb7616b2f2dc6f39377be72fdfbf01b2a",
      "tree": "26ca50a97736ef59b2ad3a867c0ae377209f092c",
      "parents": [
        "e2d24beb1a9d9b718b0443b1eec63090c6fc19a4"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jul 01 16:06:14 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 02 11:19:22 2019 +0000"
      },
      "message": "Remove ShadowFrame::HasReferenceArray()\n\nIt is always true.\n\nChange-Id: I96ddeeb87b8166d0fc08edafd1800b539eec3a7d\n"
    },
    {
      "commit": "714fad657516f43f96ab45bd1e8853edd3662d6a",
      "tree": "910937741b7d5b30a830765436d0029c86648e5f",
      "parents": [
        "21c489870a2de5db4f4e9c97979676bf39c933a9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 27 15:32:00 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jul 02 06:59:01 2019 +0000"
      },
      "message": "Delete tasks when deleting a thread pool.\n\nFixes memory leak.\n\nTest: test.py --jit\nChange-Id: If339015f1629b42c2ff17c80e97f1303843ef878\n"
    },
    {
      "commit": "05b41c40c62078664fa3bcfbe5fc935d20a6e92c",
      "tree": "de80d697ee6781439162a06891956ca64b6db896",
      "parents": [
        "3a614eaa58542169f2047ea6efeb5d6ece867be6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 28 12:46:33 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 01 12:07:09 2019 +0000"
      },
      "message": "Prepare for sharing JIT code after fork.\n\nOnly encode classes/strings/methods that are in a boot image.\n\nBug: 119800099\nTest: boot\nChange-Id: I7ed8ce2ce876ad1c6c1678939cafe4808a67bef4\n"
    },
    {
      "commit": "3a614eaa58542169f2047ea6efeb5d6ece867be6",
      "tree": "149bdbbd1cf0d8d6db7570db6edb1accff728ed8",
      "parents": [
        "1be9c72dd49e7620dd76a8b9cef23d7cde0a6b01"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 27 15:47:09 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 01 12:06:39 2019 +0000"
      },
      "message": "Add more tests around JitMemoryRegion.\n\n- Test that dropping the writable mapping and keeping the readable one works.\n- Test using MADV_DONTFORK.\n- Test behavior of memfd when mapping MAP_PRIVATE.\n\nAlso move IsSealFutureWriteSupported to libartbase/mem_fd.\n\nTest: jit_memory_region_test\nChange-Id: If6392780595d968588041762a72d7fa46a7b0429\n"
    },
    {
      "commit": "0d4567f26701abae84b02389c379843c1dc851a8",
      "tree": "f665e6d5db5af79a4afa3b97cd7cdb7a2069da3f",
      "parents": [
        "cc08c50948d8b2a93b53a327717c7b2a146ac754"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu May 30 22:45:40 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Jun 30 18:04:44 2019 +0000"
      },
      "message": "Stack maps: Refactor constructors.\n\nCreate dedicated static methods instead of passing flags.\nThis creates dedicated methods for the purpose and merges\nconstructor and decoding into single optimized method.\n\nThis speeds up CodeInfo by 10%, and maps startup by 0.1%.\n\nTest: ./art/test.py -b --host\nChange-Id: Ic7d43e22bca0be9fb13bc2c7544ebfdf46798cfe\n"
    },
    {
      "commit": "cc08c50948d8b2a93b53a327717c7b2a146ac754",
      "tree": "e84f5bd858d841d4a485f3578b8fe5514b48b7d4",
      "parents": [
        "b839fbb52a3180bbac16a8f984cb11954a2a1837"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 27 16:28:09 2019 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Jun 29 00:58:23 2019 +0000"
      },
      "message": "ART: Restyle VerifyError\n\nUse shift expressions that are now allowed in enums that auto-generate\noperator\u003c\u003c.\n\nCleanup, and in preparation for additional entries.\n\nBug: 121245951\nTest: m test-art-host\nChange-Id: I7ea68e5671dd2e2afd77beed056ec5919d807942\n"
    },
    {
      "commit": "43884b23d61dd9c2754ef4e716458f8306b07b94",
      "tree": "5466067e89d3d3d81e069abb43b93118ca5a48bf",
      "parents": [
        "f68b698e4774275e87bc73fa916faca4c6b11744"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 27 14:05:52 2019 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Jun 29 00:58:23 2019 +0000"
      },
      "message": "ART: Coalesce verifier flags into bit struct\n\nMakes it easier to add flags without increasing size or changing\npadding.\n\nBug: 121245951\nTest: m test-art-host\nChange-Id: I26d0491fb7eb26e441874188a8db9f276ce1aaf8\n"
    },
    {
      "commit": "79d6c800cd8aa1da335ea0523c391852780ac02a",
      "tree": "a77faf41d7b658709113c72d7eaaaa1ce2ded6b5",
      "parents": [
        "01fbfbebceb00b94cc54738ebf425b6c4a79211a"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jun 27 15:50:11 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 28 14:58:17 2019 +0000"
      },
      "message": "Revert^2 \"Support using opaque JNI ids\"\n\nWe weren\u0027t handing the fact that encoding jmethodIDs could cause OOM\nexceptions in some places in reflection.cc. This could lead to\nattempting to use a null jmethodID as if it were a real id. This issue\nis fixed by the parent CL.\n\nThis reverts commit b476a29a2c.\nThis reverts commit 3b2905366c.\nThis Unreverts commit d5d645ffec.\nThis Unreverts commit 21d5994583.\n\nReason for revert: Fixed issue causing 004 debuggable flakes\nTest: ./test.py --host --jit --debuggable\nBug: 134162467\n\nChange-Id: Iece08ab299cd8a20f8382be7be6c3796858e70eb\n"
    },
    {
      "commit": "01fbfbebceb00b94cc54738ebf425b6c4a79211a",
      "tree": "9061436a555042c12ea6d4fe4cd35df971e0ce37",
      "parents": [
        "88f3fd910cb0fbc1c2233fc65d2a30542cc62921"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jun 27 10:47:04 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 28 14:58:17 2019 +0000"
      },
      "message": "Avoid useless EncodeArtMethod followed by DecodeArtMethod\n\nIn a handful of places we would perform an EncodeArtMethod to call a\nreflection invoke function which would immediately Decode the method.\nThis could cause issues when using opaque-jni-ids:true since the\nEncode can cause an OOM exception.\n\nTo avoid this (and because Encode and Decode are perfect inverses) we\nchanged the Invoke* reflection functions to also accept ArtMethod*s\ndirectly and changed callers to use these functions when appropriate.\n\nTest: (with child CL) ./test.py --host --jit --debuggable\nBug: 134162467\nChange-Id: Id2f5b0f49a99405e238ce5b61a22ef9245e523a5\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": "ac933eddeacefe7ad81ca271a37550ae5f0ea695",
      "tree": "195c04fb2fbb8a8d0799cc51c6080107885a4c68",
      "parents": [
        "a48c3dfcebece7ee4b893757b715319f0b5b1fa7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 26 13:36:37 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 28 07:09:08 2019 +0000"
      },
      "message": "Create a dual view for zygote data cache.\n\nTest: boots.\nBug: 119800099\nChange-Id: I61a6e578554e4630990d94500f36a91279f8e382\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": "31c3daa15da0599b0f916202c49ef4d35e77213b",
      "tree": "3966159700b54af8a39a8b426ab06c8c4b6960f1",
      "parents": [
        "b476a29a2cda22b86fc1d96e4cc65ce36fb878af"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 13 12:18:37 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 27 08:25:24 2019 +0000"
      },
      "message": "GC-independent image layout.\n\nMake sure we visit objects in a defined order, independent\nof their order in the heap. The new order depends only on\ndex file contents and contents of initialized classes,\nthus any non-determinism would have to be contributed by\nthe class initialization itself rather than GC.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nTest: run-gtests.sh\nTest: testrunner.py --target --optimizing\nBug: 26687569\nChange-Id: I62521322289a22eb13faae526ba2c3589e6ab381\n"
    },
    {
      "commit": "b476a29a2cda22b86fc1d96e4cc65ce36fb878af",
      "tree": "039eaee2edf5495275088d1c467e522977c6bcd6",
      "parents": [
        "3b2905366c6ee1eaba2d6477078e505e377343ec"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 27 07:54:48 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 27 08:16:04 2019 +0000"
      },
      "message": "Revert \"Support using opaque JNI ids\"\n\nThis reverts commit 21d5994583c679cd5d8573b5d35dbd659bdca2c7.\n\nBug: 134162467\n\nReason for revert: Breaks debuggable\n\nChange-Id: I9510a6ac208d392ff25ee196a1a519fecd151445\n"
    },
    {
      "commit": "3b2905366c6ee1eaba2d6477078e505e377343ec",
      "tree": "b8be2002932d4fb589c90769d4548310688f9d98",
      "parents": [
        "814a80f77ac542019cfa479bde12b9a25b06060c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 27 08:13:58 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 27 08:15:20 2019 +0000"
      },
      "message": "Revert \"Make sure to delete jni_id_manager_ on shutdown.\"\n\nThis reverts commit d5d645ffec60deedae9d1382db599e3331319cdc.\n\nBug: 136111027\nBug: 134162467\n\nReason for revert: Breaks debuggable\n\nChange-Id: I1fa774769b9c79a0ed4f3de5f800b6545c2e859d\n"
    },
    {
      "commit": "d5d645ffec60deedae9d1382db599e3331319cdc",
      "tree": "6f855c3059d6ea6024da8b8062e145a85f3987e1",
      "parents": [
        "2fef66b294417d447630f9d98de68227eef476d3"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jun 26 15:21:43 2019 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jun 26 22:25:25 2019 +0000"
      },
      "message": "Make sure to delete jni_id_manager_ on shutdown.\n\nWe were leaking the jni_id_manager_ on shutdown. Make the field a\nunique_ptr to fix this issue.\n\nTest: ./test.py --host\nBug: 136111027\nBug: 134162467\nChange-Id: I2a65753d136195a2e2ff47d9a8eb6c37ec3918f6\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": "21d5994583c679cd5d8573b5d35dbd659bdca2c7",
      "tree": "521906398a2f04048cc51b4f409b6a3ebc0c6ffa",
      "parents": [
        "5dfbe7ae9ed9a1a82446d32118190105a211a2d2"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jun 19 12:58:22 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 26 20:22:39 2019 +0000"
      },
      "message": "Support using opaque JNI ids\n\nCurrently JNI ids (jmethodID \u0026  jfieldID) are created by simply\ncasting the corresponding ART structure pointer. This is great for\nsimplicity but means we are prevented from performing operations that\ncould change these pointer values. To support these use-cases add\nsupport for loading the runtime with a layer of indirection between\nthese ids and the internal art data types.\n\nCurrently the JNI id type can be toggled only by passing the new\n\u0027-Xopaque-jni-ids:{true,false}\u0027 flag during startup.\n\nThis changes the --debuggable test configuration to pass\n\u0027-Xopaque-jni-ids:true\u0027 in order to get test coverage of this feature\nusing the \u0027art-jit\u0027 configuration.\n\nTest: ./test.py --host --debuggable\nTest: ./test.py --host --debuggable --jit-on-first-use\nTest: ./test/testrunnner/run_build_test_target.py art-jit\nBug: 134162467\nChange-Id: Id8c8cb9a5b8ff18dc2f40892fae2d344a7214f44\n"
    },
    {
      "commit": "5dfbe7ae9ed9a1a82446d32118190105a211a2d2",
      "tree": "9ea2b6ab4dd2c75b63087c9431326f592763ad8a",
      "parents": [
        "591b1d26297fff3177a529adf0833d8a5eb2c463"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 25 12:33:29 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 26 18:43:37 2019 +0000"
      },
      "message": "ART: Refactor ClassJoin code\n\nRemove function from header and move to anonymous namespace.\nMake the function smaller by factoring out a larger case.\n\nBug: 69826014\nTest: m test-art-host\nChange-Id: Ida4c11448c13700e9a3412a306a244561fd9f60e\n"
    },
    {
      "commit": "591b1d26297fff3177a529adf0833d8a5eb2c463",
      "tree": "61d459d1e1cb23e9f3364b33f1cd735fd4004a3d",
      "parents": [
        "5254d6f23d6a3c8cde1634ce144a417d1cee3832"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 25 13:08:16 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 26 18:15:49 2019 +0000"
      },
      "message": "ART: Ensure SlowDebug is enabled in all gtests\n\nThis was missed when moving to common_art_test.\n\nTest: m test-art-gtest\nChange-Id: I0ff50983cf71bd86b32350222caac2a36a72ad4b\n"
    },
    {
      "commit": "03625446dd614ce9262015caca89161b50e2812d",
      "tree": "7d095f411af6787258f24483825b7b929d6aa2ef",
      "parents": [
        "9b41e9514daed1f7f17edf0af20aeb5f33485b74"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 24 17:29:23 2019 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jun 26 15:51:09 2019 +0000"
      },
      "message": "Add a stress test for notifyStartupCompleted\n\nCall notifyStartupCompleted to stress test the freeing logic for\nrace conditions. This is done while dex files and app images are\nbeing loaded from another thread.\n\nTest: test/run-test --host 1002\nBug: 135486422\n\nChange-Id: I138586d83db7bc2f8d75f223170f9bf4af5e71eb\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": "8d335b61d637fa9b040eb9d559dbac98067467f1",
      "tree": "732fe4de2a4784493b4affb1b96aa018ce729c98",
      "parents": [
        "41249cd548d60d72b94532b00a261332451fd6f2"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jun 06 14:25:42 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jun 26 09:27:15 2019 +0000"
      },
      "message": "Switch-interpreter: Refactor exception handling.\n\nMove exception handling code to the main loop.\n\nThe byte-code handlers must return false if there is an exception,\nand the main loop will then handle it in the common slow-path.\n\nThis allows us to remove the remaining helper macros,\nand it shrinks the interpreter uber-function by ~10%.\n\nTest: test.py -b -r --host --64 --interpreter\nTest: run-libjdwp-tests.sh --mode\u003dhost --variant\u003dX64 --debug --no-jit\nChange-Id: I38e9b31e33c609db800065c16df77023bea7c2e5\n"
    },
    {
      "commit": "1e52a07b4de0f000028e55c332aa46495f60879c",
      "tree": "1eb7dfdce749461c5a8997cbde49ed6d0fea2aa0",
      "parents": [
        "e0ce8bf743b7fc5816bc4045716d75378ce3b654"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jun 25 09:12:04 2019 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jun 25 16:25:13 2019 +0000"
      },
      "message": "Correct Indicies -\u003e Indices\n\nThis is a misspelling that is somewhat common in art/.\nFix up all the instances I could find.\n\nTest: ./test.py --host\nChange-Id: I0a5def6e4126cf4e61efb0619bd59eb45ba7f324\n"
    },
    {
      "commit": "145a18a3771e8a3ba5105a759d274efab3685431",
      "tree": "9fdbf8746b465e6c34be07573bfc7b90f149c475",
      "parents": [
        "89867bf1273fd76c6421b4f663076be08d6b51c0"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jun 03 14:35:22 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jun 25 11:03:34 2019 +0000"
      },
      "message": "Stack walk: Cache CodeInfo and StackMap for current PC.\n\nThis speeds maps startup by 0.15%.\n\nTest: test.py -b --host --64 --optimizing\nChange-Id: Ic37eeba727148b877f21fdfacfa9f55558db88a7\n"
    },
    {
      "commit": "f284a2d185ef4b45e3e794fa29eb78707f398bf1",
      "tree": "585e212811af634d44082ae5eaee845f85fd1596",
      "parents": [
        "00a37fff76278cd19cf59568df87495f6663c4b6"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jun 24 13:30:42 2019 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jun 24 13:46:30 2019 -0700"
      },
      "message": "Add InvocationTargetException to Wellknownclasses\n\nTo simplify reflection code and eliminate a possible infinite loop\nissue if encoding a jmethodID takes memory I added\nj.l.r.InvocationTargetException and its constructor to\nWellKnownClasses.\n\nTest: ./test.py --host\nBug: 134162467\n\nChange-Id: I77d3905e8e738820c9451decb88ac39df6fcefa7\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": "fd4a79c5660a315e30ac1999a0f57fa1dd79e510",
      "tree": "0ea5fddcaeb2894db62baacae6f872b1da568850",
      "parents": [
        "d2f8ce109db25b59d4495e02e9386eee95e23814"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jun 21 08:45:16 2019 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Sat Jun 22 16:01:51 2019 +0000"
      },
      "message": "GetCanonicalMethod should handle miranda methods.\n\nThe ArtMethod::GetCanonicalMethod function would only work on default\nmethods. Miranda methods also have different owning-class and\ndeclaring class and so should be treated in the same way.\n\nTest: ./test.py --host -j80\nChange-Id: I4d91a53448b344b1587835cbb3d5b07f235a57f3\n"
    },
    {
      "commit": "64b56033c5c396937d52497b3f7e41b6f0f56afb",
      "tree": "89eef4f2f459fd4bc46f04c8ed34f52a55aa731f",
      "parents": [
        "f5a07ae078cb14bd58053a883633f235352275f3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 20 15:52:39 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 21 08:37:49 2019 +0000"
      },
      "message": "Abort transaction before finalizable allocation...\n\n... instead of aborting after the allocation.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nTest: run-gtests.sh\nTest: testrunner.py --target --optimizing\nBug: 26687569\nChange-Id: I933b3b940bbd2125f4b5316db8dcf78cb5c8c8fc\n"
    },
    {
      "commit": "f5a07ae078cb14bd58053a883633f235352275f3",
      "tree": "2f0d800be2dccffbfe0827c1ab2506b5171e4c09",
      "parents": [
        "a61dbc078a17ffc470d6714270dd303370aaebd6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 20 14:59:07 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 21 08:11:19 2019 +0000"
      },
      "message": "Delete global ref created for the JitProfileTask.\n\nWe don\u0027t need it once the JitProfileTask is done.\n\nTest: test.py \u0026\u0026 jitzygote boot\nChange-Id: Ida75aeafa85a3f24dd22166aa8b2b296d7ae197a\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": "9b7f8b5e6dd3af8ce105ef40aedd2fbbc83b419a",
      "tree": "5ad276e74c57a2506992f35d1557112fb7101c39",
      "parents": [
        "9c87c02437339e08cb99cf7572820001799cdfa0"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jun 07 08:59:29 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 20 16:41:46 2019 +0000"
      },
      "message": "ART: Dump class initialization stats durig SIGQUIT\n\nAdd class initialization metrics to the dump code.\n\nTest: mmma art\nTest: manual\nChange-Id: Ib086662f7506bf7de403130fb2b7d3591d95f882\n"
    },
    {
      "commit": "9c87c02437339e08cb99cf7572820001799cdfa0",
      "tree": "ed3102f554d31d0408a7c4adafc1f9815ad000ad",
      "parents": [
        "c0ce3d520ea11318ac2698ad081edd65841b42d6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 18 13:45:52 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 20 16:41:46 2019 +0000"
      },
      "message": "ART: Reset stats after fork\n\nReset stats counters after fork to remove zygote influence.\n\nTest: m\nChange-Id: Id0be1fe50d10b3caff57e3af7f162d295d772ba8\n"
    },
    {
      "commit": "6c4ec5c1555aaeddd254750c15554a3c47bfc722",
      "tree": "d0ef0588f0e625bfeb0f9b86305f45b6fd37260a",
      "parents": [
        "349845ae9c820484973959e1f3d366099d2fa0c2"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jun 20 07:23:19 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 20 11:16:38 2019 +0000"
      },
      "message": "Revert^2 \"Stack maps: Interleave consecutive varints.\"\n\nReorder the layout of consecutive varints.  Store all the \u0027headers\u0027\nwhich define the varint size first and then store any large values.\n\nThe size is unchanged, but it makes the reading from memory faster.\n\nThis speeds up CodeInfo by 10%, and maps startup by 0.1%.\nChange in size is negligible (the bits mostly just move).\n\nThis reverts commit 1b2a49b7aba39ed6663a69dfdf63d0df069f0d42.\n\nTest: test.py -b --host --64 --optimizing\nChange-Id: Ica7b42180ef2bae637445c0ce44fd3833ec0ecfc\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": "1b2a49b7aba39ed6663a69dfdf63d0df069f0d42",
      "tree": "15a22f6390135758cb9eeaa1ef816f4634cc70f9",
      "parents": [
        "a2b34561a7faca95d0a4f8194ad155798e238e37"
      ],
      "author": {
        "name": "Raylin Hsu",
        "email": "raylinhsu@google.com",
        "time": "Thu Jun 20 01:41:31 2019 +0000"
      },
      "committer": {
        "name": "Raylin Hsu",
        "email": "raylinhsu@google.com",
        "time": "Thu Jun 20 01:43:54 2019 +0000"
      },
      "message": "Revert \"Stack maps: Interleave consecutive varints.\"\n\nThis reverts commit a2b34561a7faca95d0a4f8194ad155798e238e37.\n\nReason for revert: \u003cINSERT REASONING HERE\u003e\n\nChange-Id: Ie5b220e429e101bb5fa2606665a9c8cb64308ad3\n\nBug: 135638469\n"
    },
    {
      "commit": "a2b34561a7faca95d0a4f8194ad155798e238e37",
      "tree": "2da4501b3fdd20e3d227869a4ce44eab03b79434",
      "parents": [
        "34087c1047b79b7ec83eb2f45cf4f70524e0f6f5"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Jun 16 21:53:51 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jun 19 18:24:04 2019 +0000"
      },
      "message": "Stack maps: Interleave consecutive varints.\n\nReorder the layout of consecutive varints.  Store all the \u0027headers\u0027\nwhich define the varint size first and then store any large values.\nThe size is unchanged, but it makes the reading from memory faster.\n\nThis speeds up CodeInfo by 10%, and maps startup by 0.1%.\nChange in size is negligible (the bits mostly just move).\n\nTest: test.py -b --host --64 --optimizing\nChange-Id: I16f702389d4ba94a407b1586cae5f82b8ef60e7b\n"
    },
    {
      "commit": "34087c1047b79b7ec83eb2f45cf4f70524e0f6f5",
      "tree": "15a22f6390135758cb9eeaa1ef816f4634cc70f9",
      "parents": [
        "f8528fae3ce1a8971ab6e06a9f28b5c557a8114f"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Mon Jun 17 22:59:25 2019 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Jun 19 17:26:23 2019 +0000"
      },
      "message": "Document all logging tags.\n\nAlso a few formatting fixes.\n\nTest: adb shell dalvikvm -h\nChange-Id: If12613f0af14c12ea3b2f55462587c342cbd337b\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": "697c47a7ffd4489c4bc4edc229c8123309526286",
      "tree": "04cf832df533fd529cc598ecff9be8c2763d61b8",
      "parents": [
        "8ac3dc5ec31569630a99caed2a69f64d84a6c0b6"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Jun 16 21:53:07 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jun 18 11:35:05 2019 +0000"
      },
      "message": "Stack maps: Handle special cases using flags.\n\nKeep the BitTable decoder simple (1+NumColumns varints).\nMove special case handling up to CodeInfo (empty/dedup).\n\nThis speeds up CodeInfo by 5%, and maps startup by 0.05%.\nChange in size is negligible (the bits mostly just move).\n\nTest: test.py -b --host --64 --optimizing\nChange-Id: Ib6abe52f04384de9ffd7cfba04a3124b62f713ff\n"
    },
    {
      "commit": "2411f49e8e3e9efb92958d689a9bab9fe9635638",
      "tree": "04f3bb5e048f15d244ae2637cc8bc4f001f3b7b0",
      "parents": [
        "77f84fcc257bba0b40cb123a748ecbd0a96726b2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 14 08:54:46 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jun 18 06:53:39 2019 +0000"
      },
      "message": "Add helpers to allocate JIT memory in zygote.\n\nThese helpers will seal the fd and prevent any new writable\nmappings from being made.\n\nUsing memfd when available, and falling back to ashmem if not.\nashmem being scheduled for removal, have that implemented in palette.\n\nBug: 119800099\nTest: jit_memory_region_test.cc\nChange-Id: Id32b6c52a2ec681295ea7eca5b77ab342c78b469\n"
    },
    {
      "commit": "77f84fcc257bba0b40cb123a748ecbd0a96726b2",
      "tree": "f1029d8f5213fd989cd6319eaf4f5a12c36af459",
      "parents": [
        "d91f84166ad642bbd135acb8aadd05919ff41d85"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 14 12:49:54 2019 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 17 09:10:26 2019 -0700"
      },
      "message": "Handle cleared preresolved strings\n\nThe profile saver can theoretically result in the preresolved strings\nbeing cleared before they are updated. Since the clearing process\nnulls the array, it was causing a null pointer dereference in some\ncases.\n\nBug: 134698657\nTest: test-art-host\nChange-Id: I9c260bbfded26e9481381e9978596907e48c3307\n"
    },
    {
      "commit": "d91f84166ad642bbd135acb8aadd05919ff41d85",
      "tree": "3aeab5845897abbcab5827b2c27e684f6e157219",
      "parents": [
        "90b3457f9c64efba370c51b216dabb164a40b1ff"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 13 10:11:14 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jun 17 15:21:00 2019 +0000"
      },
      "message": "ART: Log approximate arena usage for slow verifier runs\n\nAdd ArenaStack::ApproximatePeakBytes and ScopedArenaAllocator::ApproximatePeakBytes\nto get an approximate use when arena tracking is not enabled.\n\nPrint the approximate use for slow verifications.\n\nBug: 110852609\nTest: m test-art-host\nTest: manual\nChange-Id: I529838410cdf4fe8247ddf4a6196a8186b0c4f3a\n"
    },
    {
      "commit": "024d69fb9936ca5a0031d35c9f248853cbc25d3f",
      "tree": "c1eeddf91ea15eda5d139d4592ac7f0df80e9be0",
      "parents": [
        "43ae4acf219fe25a56e2055ebcebc4d08020a25d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 13 10:52:32 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jun 17 09:30:53 2019 +0000"
      },
      "message": "Use cleared JNI weak sentinel from boot image.\n\nWe were already adding the sentinel to the boot image,\nso we may as well reuse the boot image copy.\n\nAlso move pre-allocated objects from class roots to the\nboot image live objects.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nChange-Id: I635dcdd146ca2c6b55d187e9a545a9990b0b35ca\n"
    },
    {
      "commit": "8764860dcd6e80512885e41717af9d45c574054a",
      "tree": "4bae7374e5b216fa95600d9ba7f8e251fe269d4c",
      "parents": [
        "3e2446bbe9326786a970c88bbfac80b8ed8e5cdd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 12 12:34:26 2019 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jun 14 18:18:53 2019 +0000"
      },
      "message": "ART: Flag Runtime::Abort to the UnexpectedSignal handler\n\nDo not trigger unexpected signal handling for runtime aborts.\n\nBug: 135056249\nTest: m test-art-host\nTest: manual\nChange-Id: I062c862eb11bb6465c33215a98a74874be0bbf59\n"
    },
    {
      "commit": "3e2446bbe9326786a970c88bbfac80b8ed8e5cdd",
      "tree": "3495f831cb926030c57901152a939718ff12886e",
      "parents": [
        "1adb04fd1ab7a44b5bf0e0d8deb522b68849a2f6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 12 10:00:57 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 14 17:58:19 2019 +0000"
      },
      "message": "ART: Correctly handle an abort from an unattached thread\n\nLibbase may be shared with other platform components. In that case,\nif the aborting thread is attached to the runtime, ART will print\nits usual dump to be helpful.\n\nIf the thread is unattached, this must not be done as it would\nviolate mutex invariants.\n\nBug: 135056249\nTest: m test-art-host-gtest-runtime_test\nChange-Id: I61c3df5fdbc8ddaf279f39dc653738016986dcd9\n"
    },
    {
      "commit": "c56a23e12039d846a899d8b2ff535019480912e5",
      "tree": "3951a1164c0a523a570a1956fa6ec6e9930d3273",
      "parents": [
        "4444f1b38aa9269365c4a5d506b6d92a3222841a"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jun 05 17:45:49 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jun 14 08:51:05 2019 +0000"
      },
      "message": "Switch-interpreter: Make the instruction field constant.\n\nThe field is always set to the currently handled instruction.\n\nThe \u0027next\u0027 field stores the instruction to be executed next,\nwhich defaults to fallthrough unless overwritten by handler.\n\nTest: test.py -b -r --host --64 --interpreter\nTest: run-libjdwp-tests.sh --mode\u003dhost --variant\u003dX64 --debug --no-jit\nChange-Id: Iadae51ead3e2f657717f190d07b04f4c28890f43\n"
    },
    {
      "commit": "4444f1b38aa9269365c4a5d506b6d92a3222841a",
      "tree": "4e3d413021983ae39e52cd5fa8f1c0732db62992",
      "parents": [
        "44b9b5876f64c6e868d9b13c4fa3a5f5cb773742"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 10 14:09:19 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 14 08:14:22 2019 +0000"
      },
      "message": "Add option to identify primary zygote.\n\nThis will be used to customize when to start pre-jitting in\njitzygote mode.\n\nTest: boots\nBug: 119800099\nChange-Id: I1b5c1c454455d336f22e3328deead4ced1742239\n"
    },
    {
      "commit": "ec232913bf832abf8bb5ca036724308194dee826",
      "tree": "1264df0440c7e2d549f8acba2f0df95b9f18a4b5",
      "parents": [
        "8e05f09ca712c33bf2090cf03a3a8db858a23314"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue May 28 16:18:18 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Jun 12 16:10:08 2019 +0000"
      },
      "message": "Use public unwindstack function.\n\nTest: Boot taimen device.\nTest: Ran 137-cfi test.\nChange-Id: Ic61356ba8da89fa5622bd3d40f4999f1497580ea\n"
    },
    {
      "commit": "8e05f09ca712c33bf2090cf03a3a8db858a23314",
      "tree": "c78491d8a9ef33f4073d0053dfbd6417bbaa13a9",
      "parents": [
        "23df24822ee70fe255e6c02fb130112e28fdf63a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jun 10 11:10:38 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 12 08:44:25 2019 +0000"
      },
      "message": "Do not force-intern Strings in images.\n\nInterning all image Strings breaks the reference equality\nsemantics. See android.net.Uri.NOT_CACHED for an example\nwhere it goes against the intent of the Java code.\n\nInstead, only put interned strings (weakly and strongly) to\nthe image intern tables. Since image interns are referenced\nas long as the image is memory, we can promote weak interns\nto strong interns. Doing this before the image layout helps\nImageWriter::CalculateNewObjectOffsets() which would not\nhave previously found weak interns.\n\nAdded a regression test that relies on better initialization\nof app image classes, so it shall be \"active\" only after an\nimprovement in that area. (This can be checked by commenting\nout the NoClinitInDependency() check in CompilerDriver\u0027s\nInitializeClassVisitor::TryInitializeClass().)\n\nBug: 134746125\nTest: 176-app-image-string\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nTest: run-gtests.sh\nTest: testrunner.py --target --optimizing\nChange-Id: I51fa1edf953c9060c41f39812f3ba27f12b02801\n"
    },
    {
      "commit": "23df24822ee70fe255e6c02fb130112e28fdf63a",
      "tree": "a780057f9b617a8962bad929030a8130a0542253",
      "parents": [
        "0df2aba868ca2f808f73e75e248a036b161088f6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 11 15:24:39 2019 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jun 12 03:52:33 2019 +0000"
      },
      "message": "Sweep malloc spaces before clearing from space\n\nSweep the malloc spaces before clearing the from space since the\nmemory tool mode might access the object classes in the from space\nfor dead objects.\n\nFixes an occasional crash during sweeping for ASAN.\n\nBug: 134727798\nTest: test-art-host\nTest: art/test/testrunner/run_build_test_target.py -j50 art-asan\n\nChange-Id: Ib1db6ca0ab5ebc6408afbd68e8b1937210aecd3d\n"
    },
    {
      "commit": "d09504f585abe9fa28c9adb342e251733870952f",
      "tree": "bb86e8edd0098fd12641229463ef870013ada9e8",
      "parents": [
        "380f0d8db56b5fcf6e7181184fdae9f303ad7ba5"
      ],
      "author": {
        "name": "Flash Liu",
        "email": "flash.liu@mediatek.com",
        "time": "Mon Jun 10 20:13:54 2019 +0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 11 20:23:28 2019 +0000"
      },
      "message": "Check and expand GC mark stack\n\nGC mark stack could be full,\ncheck and expand before pushing onto it.\nBug: 134981304\nTest: MTBF auto stress test for 72 hours\n\nChange-Id: I8676e1a1bf19f04f06664d77cea5d5b885c1278c\n"
    },
    {
      "commit": "380f0d8db56b5fcf6e7181184fdae9f303ad7ba5",
      "tree": "4ad13aff6c3742787f6f6487844305af065070e9",
      "parents": [
        "3fae12960c2d411dff450fce95c096af0e8d74de"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jun 10 11:01:43 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 11 17:44:40 2019 +0000"
      },
      "message": "ART: Conditionally install Dbg class callbacks\n\nTemporary allocations in the dispatch code are unnecessary when they\nend up in disabled code. Instead follow the example of the method\ninspection callback and only add the callback when the debugger is\nactually active.\n\nTest: m test-art-host\nTest: atest CtsJdwpTestCases\nChange-Id: I750f2df475400147b1d569f463228d436aa3ae5a\n"
    },
    {
      "commit": "b7c640d364d32b79cb52d04750b063667a9a0c86",
      "tree": "9caafc96879f83f8e5dd3cd45b9005be6e2b7deb",
      "parents": [
        "3ffb5b1576f8af0c361284ebd8d2d54c70ede3ff"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Mar 20 15:52:13 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jun 10 18:33:25 2019 +0000"
      },
      "message": "JVMTI Force early return\n\nAdd support for can_force_early_return jvmti capability. This allows\none to force java frames to exit early. Exited frames have all of\ntheir normal locks released.\n\nWe implement this by modifying the existing method exit events to\nallow one to modify the exit value during the callback. This is used\nto implement ForceEarlyReturn by adding internal-only events that will\nchange the return value of methods once they return (using\nkForcePopFrame) avoiding the need to modify the actual interpreter\nvery deeply. This also makes it simple to continue to use the standard\ndeoptimization functions to force the actual return.\n\nIn order to simplify book-keeping the internal event is refcounted,\nnot associated with any specific jvmtiEnv, and only settable on\nspecific threads. The internal event is added by the ForceEarlyReturn\nfunction and then removed by the MethodExit event when we update the\nreturn value.\n\nBug: 130028055\nTest: ./test.py --host\nChange-Id: Ifa44605b4e8032605f503a654ddf4bd2fc6b60bf\n"
    },
    {
      "commit": "3ffb5b1576f8af0c361284ebd8d2d54c70ede3ff",
      "tree": "b1a58a51787768ff0af12a2ee1662ceeae78fdf1",
      "parents": [
        "63ab3e1fb635f346241ee5519bf52be8deb6ca60"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 06 14:23:03 2019 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 10 17:37:57 2019 +0000"
      },
      "message": "Handle allocation failure in AddPreResolvedStringsArray\n\nMight fail on 32 bits if the address space is fragmented.\n\nRegression test is infeasible to add.\n\nBug: 134652205\nTest: test-art-host\nChange-Id: I8a254a27275be4e0ff39fdb72715771f4f77cf36\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": "93adcb53c77f4f04dfebd30b94e8ea9936aa8abb",
      "tree": "bdf638b78c045eed106ace99fbdc64506712d8ea",
      "parents": [
        "01f2e3a488fa06d98e2efbaf3ea8066d8457f216"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 06 20:16:07 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 07 23:05:24 2019 +0000"
      },
      "message": "ART: Remove some compile-time info points\n\nRemove no longer needed compile-time info points in the verifier. Only\ncheck-casts are still reliant on support for elision.\n\nThis reduces the number of pre-populated register lines in a large\napp by 70%, and the number of instructions executed during verification\nby about 2%.\n\nBug: 110852609\nTest: m test-art-host\nChange-Id: Iefa8253749b1a2750f57360e08ddfb502d0478b1\n"
    },
    {
      "commit": "8867f3b017546ff187a99ac57bc91ac2bcf1f4f9",
      "tree": "29dbf68255584d48694bd8a50b23d8758987278c",
      "parents": [
        "d3b6664f454e7ea61597c0235b4a9df95056f4cd"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri May 31 20:01:46 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jun 07 17:01:44 2019 +0000"
      },
      "message": "Switch-interpreter: Add new \u0027next\u0027 instruction field.\n\nThis field is set by handlers to the next instruction to execute.\nIt is initialized to fall-through and can be overwritten as needed.\n\nAs the first step, only DCHECK its value against the \u0027inst\u0027 field.\nThe next step will be to remove all the inst-\u003eNext_xxx() calls.\n\nTest: test.py -b -r --host --64 --interpreter\nTest: run-libjdwp-tests.sh --mode\u003dhost --variant\u003dX64 --debug --no-jit\nChange-Id: I92740d21871cf3a5b34d9d1615ad2a71ba021339\n"
    },
    {
      "commit": "0a7d0b10d2d2dd802f32c5df4026bafc12537625",
      "tree": "6746f6c13be8419e95ab959267a0b93dfadb1468",
      "parents": [
        "6087bc210f5b246476045ca21568f446ad79222a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jun 04 10:42:29 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 06 20:43:26 2019 +0000"
      },
      "message": "ART: Mark unreachable catch handler code in verifier\n\nArtificially block the method from being compiled as the compiler does not\ntrack unreachable code correctly.\n\nBug: 134061982\nBug: 134429168\nTest: art/test/testrunner/testrunner.py -b --host -t 800\nTest: art/test/testrunner/testrunner.py -b --host -t 800 --jit-on-first-use\nChange-Id: Iaa6abdd8b61e69a8feb74dcd8f47ded27fb4a353\n"
    },
    {
      "commit": "6087bc210f5b246476045ca21568f446ad79222a",
      "tree": "f11b8e4ea6d6015290dceb52de126e39d2e4d76f",
      "parents": [
        "9a45d01b40692d9b9568f5e80d21fc7f51bcac5c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jun 03 15:52:08 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 06 20:43:26 2019 +0000"
      },
      "message": "ART: Handle unresolved catch handler types differently in the verifier\n\nThe move-exception should not trigger a synthetic throw, as that\nmay be caught by another catch handler, while the code is unreachable.\nUse a specific flag and failure instead.\n\nBug: 134061982\nTest: art/test/testrunner/testrunner.py -b --host -t 800\nChange-Id: Ie6859e3a1910171b34882889ebece6cadc9dd508\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": "29bb803f2d41ea48e9f255dadd22b4c291e0a036",
      "tree": "ef191c823ce46eb469b889872d27a2f42b5f8190",
      "parents": [
        "d2f13ba7153aa7b77e4662844233c848535f8aac"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 06 10:32:24 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 06 11:36:00 2019 +0000"
      },
      "message": "Don\u0027t use prejit for jit-at-first-use.\n\nIt conflicts with an optimization for jitzygote.\nLeft a TODO as I intend that optimization to be removed in the near future.\n\nTest: test.py 676-proxy-jit-at-first-use\nBug: 119800099\nChange-Id: I465ae63b6ecd0068ae3e4786a544e23126a65f53\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": "e7d7e9dd01b6ce5a079ebc7e369f4a8d4e42f7d8",
      "tree": "b3b177fdf2a5e820f03df350c2c43943a2c32466",
      "parents": [
        "e1de95c9928f9e468850e88fadaf3f0ad8165017"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Mon Jun 03 18:36:06 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 06 02:50:27 2019 +0000"
      },
      "message": "Revert \"Remove skipped blocks reuse mechanism\"\n\nThis reverts commit dbb57f3f8e3bc895ddc0dd1cd80cfa16bb1283db.\n\nReason for revert: Seems to cause 004-ThreadStress failure?\n\nChange-Id: I4b40084c82d90cf8b7578f8aa681fba0d7756e1e\n"
    }
  ],
  "next": "1332c26c69a0910a7d32232261c30b197348e603"
}
