)]}'
{
  "log": [
    {
      "commit": "acb12378f91cc96183b999721d2875e504bb8762",
      "tree": "7bb2f90e516f5d298cd971388310b683e22d3f95",
      "parents": [
        "adf49d4bb3870b73e79982f75bacd917d3ec3bb2"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Sep 06 10:04:01 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 06 13:16:57 2019 +0000"
      },
      "message": "Fix unhandled allocation failure\n\nAdd check in AllocateData before attempting to translate address.\n\nAdds hints that allocation failures are unlikely.\n\nBug: 140523064\nTest: TH\nChange-Id: I905557ce64f0a1aab7df4673859463ca27792f2b\n"
    },
    {
      "commit": "ccb0b5fffa4b6e0bf501db90c6351e1a1584c648",
      "tree": "5a307224eb021007954f67edf625ee28d272e741",
      "parents": [
        "b3b803b69d5db392ea7cf7a1fea443d4ba133134"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Aug 15 18:10:50 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 02 09:39:46 2019 +0000"
      },
      "message": "jitzyogte: madvise away dex files after compilation.\n\nTell the OS we don\u0027t need them anymore, as we now have compiled code\nfor it.\n\nBug: 119800099\nTest: business card\nChange-Id: Ib6f969dcc68adabad3327a3272147ee383416772\n"
    },
    {
      "commit": "b3b803b69d5db392ea7cf7a1fea443d4ba133134",
      "tree": "b88c5d20a8784cfbd967b74aca40fd7476e72931",
      "parents": [
        "87fb032ee1e7ae98df26c646c450ef44e23fc805"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Aug 20 17:29:12 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Sep 01 21:08:43 2019 +0000"
      },
      "message": "Enable JIT dual data mapping.\n\nWe use it for zygote.  Enable it other cases\nas well for consistency, security and testing.\n\nTest: test.py -b --host --jit\nTest: device boots\nChange-Id: I07ed849b355d7e7f124b6806af41b60fa10bcea4\n"
    },
    {
      "commit": "87fb032ee1e7ae98df26c646c450ef44e23fc805",
      "tree": "6754b2d2a0e38277885a691d1be6f0d796478cc7",
      "parents": [
        "a86a5d162e6b59a32e8ea7991e6c8a157aca5a0a"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Aug 20 10:34:02 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Sep 01 21:08:43 2019 +0000"
      },
      "message": "Fix JIT data dual mapping for apps.\n\nWe don\u0027t use it now, but it would be nice to make it functional.\n\nMark the read-only memory as const, and fix the compile errors.\n\nTest: test.py -b --host --jit\nBug: 119800099\nChange-Id: Ic1c45072f3c97f560e843f95fb87b95f754c6e03\n"
    },
    {
      "commit": "775d38d8492ba8c60dba968064d6e0ac44e0b372",
      "tree": "dba772e1f12be33fe128cfaeda375654b74b3501",
      "parents": [
        "86459c058c387d76f96d6644e8ec9fb1aa7f165d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Aug 30 08:28:01 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Aug 30 08:57:20 2019 +0000"
      },
      "message": "Revert \"Fix profile saver hotness for AOT code\"\n\nThis reverts commit 4cb48c1bd359bee98a1a4c0cff475d76a3b5483a.\n\nBug: 139883463\n\nReason for revert: Test fails on target.\n\nChange-Id: I1b3a7aec961b212d92e457d52da6ab921044f491\n"
    },
    {
      "commit": "4cb48c1bd359bee98a1a4c0cff475d76a3b5483a",
      "tree": "f017f7d687f94c4bd2f895a434a46185c03f0063",
      "parents": [
        "49484076e86b75b3449e18cc6827bd0a94ef1300"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 27 17:08:11 2019 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 29 01:37:05 2019 +0000"
      },
      "message": "Fix profile saver hotness for AOT code\n\nIf the counter is larger than the warm threshold, mark the method as\nhot. This fixes a bug for profiling arleady compiled methods where\nthey would not be marked as hot no matter what the counter was.\n\nAlso removed unused functions, and reverted HasSeenMethod to verify\nthat the method is hot.\n\nBug: 139883463\nTest: test-art-host\n\nChange-Id: I243e528e9f06da7223eed9b91ad613d4f1ad9524\n"
    },
    {
      "commit": "e09b87eb8d8c063ddaee53a70b4bc8dbf61ff66c",
      "tree": "df53a0996b9ae47422f4661edc2d7998cc57ba95",
      "parents": [
        "c88c1d0fbbc4bc230f08fd1e0fe7b652519c9236"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Aug 19 21:31:31 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Aug 28 10:24:35 2019 +0000"
      },
      "message": "JIT mini-debug-info: Support JIT data dual mapping.\n\nEnsure that we can add/remove mini-debug-info if the JIT data is\nread-only and we need to use the other mapping for writes.\n\nPointers into the read-only memory are marked as \"const\".\n\nTest: \"test.py -b --host --jit\" with data dual mapping\nTest: device boots with data dual mapping\nBug: 119800099\nChange-Id: I9399cffbe5ae13f08f698ab1598c30f13545a767\n"
    },
    {
      "commit": "9ac8e4327bd732e4b3b9b8dc6a29560013338d21",
      "tree": "b56840a0c7b0874f73e5db7259861c04f87df796",
      "parents": [
        "29e740fe64a8caeb04e0d686b4d1e290ba5ad1e6"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Aug 13 13:16:13 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Aug 22 20:00:55 2019 +0000"
      },
      "message": "JIT mini-debug-info: Allocate entries in the JIT data space.\n\nTest: test.py -b --host --jit\nTest: device boots\nBug: 119800099\nChange-Id: I7efa1e6e6660239cbd6438b829e08dd9cd079343\n"
    },
    {
      "commit": "e9455f61f7e45963c7056b51dbaf8bb42c47454a",
      "tree": "acc00224ae83a5b876cd92b45a5569d0e6232a98",
      "parents": [
        "8fc2f95291206806599d4f2a50da529da85155b6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Aug 15 20:57:04 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Aug 16 13:30:31 2019 +0000"
      },
      "message": "Clear the boot task at fork.\n\nBug: 119800099\nTest: boot, system server doesn\u0027t JIT boot classpath methods.\nChange-Id: I83ba0f8f1c48c810856d333b3b355cae0a11f20f\n"
    },
    {
      "commit": "8fc2f95291206806599d4f2a50da529da85155b6",
      "tree": "c3c9de9a9a925d6ab790f6db466d1f9c17ed1010",
      "parents": [
        "9ce340f829f836560278ecd078fbefcf19c9d629"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jul 31 18:40:09 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Aug 16 09:10:55 2019 +0000"
      },
      "message": "JIT mini-debug-info: Remove global maps.\n\nKeep the extra bookkeeping information in JITCodeEntry.\n\nAlso do the compression eagerly during GC rather then lazily.\n\nTest: test.py -b --host --jit\nBug: 119800099\nChange-Id: Ie6cc682033a32c01d4c2cac242d8a4201116f940\n"
    },
    {
      "commit": "ac8f9369967cff7f31aca5e46db3041a3eda3dce",
      "tree": "e4d6c296c424c68f64fb085c1290779acb7ab455",
      "parents": [
        "ea5b4297d7748bb87a6f1133103df834ea16f227"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Aug 13 16:59:25 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Aug 15 07:10:32 2019 +0000"
      },
      "message": "JIT code cache: Don\u0027t set footprint limit for data portion.\n\nWe use code footprint limit to trigger GCs,\nbut we don\u0027t need it for data.\n\nThe mspace algorithm still only uses as few pages as possible.\n(otherwise we would have been wasting memory as it is now)\n\nThis stops the AllocateData() from unexpectedly failing.\n\nTest: test.py -b --host --jit\nBug: 119800099\nChange-Id: I5e59c9acf335d39d733592d0666f5e987136d883\n"
    },
    {
      "commit": "a67daeba97fb1a469cb5764a7ced0d03fc206a38",
      "tree": "bc2c4f4bea8da9c2d7adb0bc3975edc775d4e2b7",
      "parents": [
        "d5a9587acd8fbc3aceddc51d436ebbec5633326c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Aug 12 10:41:25 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Aug 13 10:47:56 2019 +0000"
      },
      "message": "Fix race between post fork initialization and JIT.\n\nOnly start JIT threads after all zygote fork logic has been setup.\nFor robustness, also set the runtime state as the first thing post fork.\n\nTest: m\nChange-Id: Icf5db341275002599d0e89add4d9f6b2f799004d\n"
    },
    {
      "commit": "d5a9587acd8fbc3aceddc51d436ebbec5633326c",
      "tree": "3bad998c59ce8c7f76edb157d8b2a1a3a3d36698",
      "parents": [
        "bac080b0beec961671a7753c88780d8bf700fa40"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Aug 12 13:24:07 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Aug 13 06:18:54 2019 +0000"
      },
      "message": "Update the entrypoint with the code entrypoint, not the code pointer.\n\nThe entrypoint takes into account the \"| 1\" mask for thumb code.\n\nTest: boot and arm32 apps don\u0027t crash.\nChange-Id: I192e65d545e9934d73e4042d72da53e781ddf4a7\n"
    },
    {
      "commit": "44b977d9e2974cdbd8ef11f35919166dada92bda",
      "tree": "f9a883ca345ec204fb061364fef8c849d5d0d871",
      "parents": [
        "759845ff57929e26bfe922b30c814cb58e886bc1"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Aug 09 12:15:32 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Aug 12 17:54:47 2019 +0000"
      },
      "message": "Print more JIT memory use stats.\n\nAlso print the amount of resident(RSS) memory per category.\n\nTest: observe ANR log on device\nBug: 119800099\nChange-Id: Ic8a71de5c280fe42b656ed0e6383a45b0c185109\n"
    },
    {
      "commit": "a6f3583a027e6ef14eb7811f6a1c58e3eea1f5eb",
      "tree": "c9cd2efb0d06907ad3e17aa08cca655a196bc071",
      "parents": [
        "e47933ab3091a002806a3718cc626d2f8d84b620"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Aug 09 13:34:19 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Aug 12 09:51:39 2019 +0000"
      },
      "message": "Couple of small improvements in jitzygote config.\n\n- No need to lock the profile file (avoids having one of the zygote not\nprecompile methods).\n- Don\u0027t add to queue a method already marked as precompiled.\n- Don\u0027t JIT at boot for the secondary zygote.\n- Remove the ZygoteServer precompile workaround. We now have a boot\nprofile.\n\nBug: 119800099\nTest: boot\nChange-Id: Ifcc7d405a0bc8540796835a8fc6b65ea0a14b61e\n"
    },
    {
      "commit": "bfcea3dca82437ac6a0b824d6d2375629f7a0eaf",
      "tree": "e87d948f78c81f40217c5cd308097c788d39311c",
      "parents": [
        "6461124331de7707f3b109cec38337d851be997e"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Aug 05 15:44:00 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Aug 08 11:58:04 2019 +0000"
      },
      "message": "Jit-zygote: Postpone pre-compilation until boot is completed.\n\nCompile only needed (hot) methods during boot.\n\nThis saves about 1.5s from jit-zygote boot time.\n\nTest: device boots\nBug: 119800099\nChange-Id: If98540e42634bf1e9701231e5174d724e897ce67\n"
    },
    {
      "commit": "b41869adc0f69d38ca852aa8cce541ea1a2203d2",
      "tree": "57340ff0ca66c2c5e0bebad5141ef32e21638c50",
      "parents": [
        "f56393cc933f01327e0a3a1455f38b1b3ff550d0"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Aug 07 12:12:52 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Aug 07 16:50:15 2019 +0000"
      },
      "message": "Fix linker error in JitCompilerInterface\n\nBug: 139042560\nChange-Id: I592acbdbf5d739d61dffbe1e4688237a37db9e9b\n"
    },
    {
      "commit": "46b5353fa5e5c5080926c3faa1263e08aa97f323",
      "tree": "e2894de7517caee5c826c16b6f172dcb1f021569",
      "parents": [
        "baa81b5f25e10dd054e3562688802468512f8f67"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Aug 06 13:39:05 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Aug 06 16:56:27 2019 +0000"
      },
      "message": "Simplify JIT compiler interface usage from the runtime.\n\nAvoid the excessive use of externs and reinterpret_casts.\n\nTest: test.py -b --host --64 --jit\nChange-Id: I179656a3a7c4e59d12c8f6d189c937ce07e0f122\n"
    },
    {
      "commit": "81448a21dd3f2c4608496e6dc7a1f093dcccf1e0",
      "tree": "0b2bd5a6b9254a30d349fa2e72699a647219e2dc",
      "parents": [
        "5d93b8848c02c10001719be50c910cf6b156d233"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Aug 01 14:29:53 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Aug 02 09:35:12 2019 +0000"
      },
      "message": "Fix 638-checker-inline-cache-intrinsic\n\nFixes regression from CL/1092314\n\nTest: test.py -b -r -t 638 --host --ndebug\nChange-Id: I26397724a6cb7ee63d0e1536449f614ed36c14af\n"
    },
    {
      "commit": "2182147af64ac462635d212473c3ffab400a7831",
      "tree": "a529e9cc57c2b720f35f3a74407b8ec281e6c65d",
      "parents": [
        "e65ade70584728c544c8db5a4e0a729750813380"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jul 29 15:10:31 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jul 31 09:40:18 2019 +0000"
      },
      "message": "Call Jit::MaybeCompileMethod less frequently.\n\nWe have added more logic into the method (and may still add more).\n\nTest: test.py -b --host --64 --jit\nChange-Id: I8198db36b42a63c9e4ebf88651bea0e1ae70d5ae\n"
    },
    {
      "commit": "0f8950af0a13e0f7db291736a3042fb627064f47",
      "tree": "90cd8ebfb02faae3fe4b5fa425c97007aca5c70e",
      "parents": [
        "1fc4d42d99a5059545e33bd0ab36250d8cc72b50"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 24 13:22:11 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Jul 27 16:20:51 2019 +0000"
      },
      "message": "Pick up the boot profile in zygote and system server.\n\nAnd compile its list of methods.\n\nTest: methods in the boot profile get compiled first.\nBug: 119800099\nChange-Id: I088c27fc36daf9fc32e594add63a8d8aa7baba01\n"
    },
    {
      "commit": "1fc4d42d99a5059545e33bd0ab36250d8cc72b50",
      "tree": "fb7c5dae10cde80f709d2a1bd18191627ede28c0",
      "parents": [
        "450b27a534002f9bf1a940c2195688f673b2367d"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jul 23 16:55:19 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sat Jul 27 08:55:19 2019 +0000"
      },
      "message": "Check whether method is zygote-compiled less frequently.\n\nMove the check to MaybeCompileMethod which means\nit will do the look-up only once per 32 invokes.\n\nMore importantly, it means the interpreter can\nuse the invoke fast-path for pre-compiled methods.\n\nBug: 119800099\nChange-Id: Id10cdb7d3717807f60e3d3c71ca943ede8104f36\n"
    },
    {
      "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "9ac09eeb8bbd48a343213a96f6e7e0328fe30447",
      "tree": "6351289596083d20ca236715d451b0d47ceb5fdc",
      "parents": [
        "eab0248f8785f25241011a953940ea5a4c5e7467"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 08 23:38:27 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri May 10 22:46:00 2019 +0000"
      },
      "message": "jitzygote: compile system server methods at boot.\n\nTest: m \u0026\u0026 boots\nBug: 119800099\nChange-Id: Ia02a68bc3f152fe9a733577e66f327264518fe6b\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": "0d54cfb1a696bfe9795bdee3653c130747b97fcc",
      "tree": "c0212ffcbb33e92629267d5d78537e3519da6730",
      "parents": [
        "fe613a7f8dd25ffde533df248a1a89c91353e2be"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri May 03 09:13:52 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri May 03 11:28:50 2019 +0000"
      },
      "message": "jitzygote: Special case system server to keep the JIT queue at fork.\n\nTemporary measure until we have a system server specific profile.\n\nTest: m\nBug: 119800099\nChange-Id: I58da2d96ec355e26f872b67b021c3b3dba26e2b4\n"
    },
    {
      "commit": "c5e3a52473772a6aba3a8407b0151f6046c5e21b",
      "tree": "3f28b8774ebe74eabe73407c52edb5dcec697a97",
      "parents": [
        "498019ab91ea40352ea1e54a8425e1689dc1317d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Apr 30 09:47:55 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Apr 30 20:32:36 2019 +0000"
      },
      "message": "Make compiling an apex image explicit.\n\nAnd when compiling an apex image, discard dex files not present\nin an apex.\n\nTest: m\nBug: 119800099\nChange-Id: Ie91c5b8d271783f04e4c1501f315a3ec59137475\n"
    },
    {
      "commit": "36ec6c7314b824f03f955a5c0c2cbce56ef63412",
      "tree": "cb3b72b2eefc25dd6ce59219d4d685145566d48e",
      "parents": [
        "c36a8ccf44454f1a4b8b57420205faf11dec7046"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Apr 26 12:46:08 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Apr 29 16:33:51 2019 +0000"
      },
      "message": "Fix DWARF line-number generation for JITed methods.\n\nDon\u0027t strip, repack or compress debug-info if explicitly\nrequested by the developer (using the -g compiler flag).\n\nIf enabled, the DWARF debug info has about 1:1 size\noverhead relative to JIT code + data.\n\nBug: 131422204\nTest: Check that gdb shows line numbers for JITed method.\nTest: Hard-code always-enable generation and run maps.\nChange-Id: If06de8ae2317af4d57d84e8a8bfae86a597dd4e4\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": "b10f02828b869cf6505bbd6eef6d2ae332c4e91b",
      "tree": "cffcfdf749c1adc68468368135929e17d6b4fded",
      "parents": [
        "3b19de27a40924b60d456a3016d324e8328cad77"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 12 17:30:52 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Apr 14 20:15:38 2019 +0000"
      },
      "message": "Special case one class in jit zygote.\n\nAlso remove obsolete comments.\n\nBug: 119800099\nTest: ZygoteServer.runSelectLoop not compiled at app startup\nChange-Id: Ie5834f411fa039ec4b299cd7c47c2de975d3492a\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": "dc2fbb6d9834733214c6cdedbacd526603754a74",
      "tree": "8b63332d867506fdb09ac7721a8a84b7514131f3",
      "parents": [
        "307b2846c69506836390e15c56547b9b5d55290d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Apr 11 22:55:50 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 12 08:45:48 2019 +0000"
      },
      "message": "jitzygote: create a type lookup table at runtime for bootclasspath dex files.\n\nThe normal configuration has them in the oat files. Create them\nat boot in the jitzygote configuration.\n\nTest: m\nBug: 119800099\nChange-Id: I9ee1690d9541b70eba06818b91865bc603266bf6\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": "1ed4515facecea8dd5801eca752768043e4de01d",
      "tree": "3e16243e33dddbe1dd9ee7e918d8113b3855f4c1",
      "parents": [
        "51d5a30592d1e6f6129cf8628178b201d345ce36"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Apr 09 18:10:26 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Apr 10 09:28:44 2019 +0000"
      },
      "message": "Fix flaky 137-cfi test.\n\nAvoid modifying the native debug info while we are unwinding.\n\nBug: 111411286\nTest: test.py --host -b -r -t 137-cfi\nChange-Id: Ie5a173d0fb545011413fa0326135aa9c56006e8d\n"
    },
    {
      "commit": "d271809c58fa2c2d8021022b436f25e4d0b9acc1",
      "tree": "6a259808d9e62a7014ffc80241b831f9d1cc93d4",
      "parents": [
        "9ff900dbb1ea9a617a73924104890aad868d265a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Apr 08 13:40:33 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Apr 08 14:53:10 2019 +0000"
      },
      "message": "Don\u0027t JIT compile eagerly methods that have the resolution stub.\n\nWe need to keep the stub to do proper class initialization.\n\nBug: 119800099\nTest: m jitzygote \u0026\u0026 boot with no failing app\nChange-Id: Ie8189fe2009df76a02cd04759b807dc861bd8180\n"
    },
    {
      "commit": "76b9c695a7cee0772cb9ee7e472bbf8ce3030a73",
      "tree": "cfc3d1642688a93b2ef1b7d0660bfb2a333d8be9",
      "parents": [
        "e18588381b34a5ed24417c826dc389a91f8d2b7f"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Apr 01 19:36:33 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Apr 07 21:27:36 2019 +0000"
      },
      "message": "Split JIT mini-debug-info packing and compression to two phases.\n\nEvery JIT compilation creates a mini-debug-info entry (~800 bytes).\n\nAfter every 64 compilations, pack the data so that we have multiple\nmethods per mini-debug-info entry (amortized ~200 bytes per method).\n\nCompress the entries after code GC (amortized ~60 bytes per method).\n\nSplitting packing and compression means we can cheaply claim most\nof the memory savings by packing recent methods and older methods\nstill benefit from the compression.\n\nTest: test.py -b --host -r -t 137-cfi\nChange-Id: Ic2c677ada09983e49d96623a48f4d4ad1fa5bfbc\n"
    },
    {
      "commit": "f59bc11bc0bd6c443d5350f24e4569f841e0beea",
      "tree": "6a78bf1a1db9ef2becbb7bb9f3313d27630dd97f",
      "parents": [
        "30167d24077495f7d4e701fbbbcfd458537f6a6e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 03 10:29:29 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 03 15:15:15 2019 +0000"
      },
      "message": "Couple of improvements in the jit zygote pass.\n\n- Handle the resolution stub.\n- In verbose mode, log the time to JIT compile.\n- Handle the case jit is disabled.\n- Don\u0027t look at methods that are in the jars located in the runtime module.\n\nBug: 119800099\nTest: m\nChange-Id: Ib12586cc65b3791e066e96ce7e36985cfb612059\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": "175ce3dea89a40e68a685d7f873e8b9f082c45a6",
      "tree": "f4ba53dc33aca3ae71fd006b282a55dc926e53c9",
      "parents": [
        "cc292c611af7cdea6a2d9196fc347468b9233f71"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 06 16:54:24 2019 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 08 01:22:42 2019 +0000"
      },
      "message": "Add callback for notifying that startup is completed\n\nAdd a callback that can be called to denote that application startup\nis completed. This may affect how the profile is collected and how\nstartup related caches are managed.\n\nBug: 123377072\nBug: 120671223\nTest: test-art-host\nChange-Id: If7eb8909cc5e99082a2243b5029380244b46174d\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": "953da541353d874483480aece1f30c1f48a2e681",
      "tree": "d1bd1aa7f02c5504a8dc06f77d7ce4792ddc599a",
      "parents": [
        "6a1dab4184b8048209cdbebac5482393475e9b76"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 04 10:09:11 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 04 12:58:28 2019 +0000"
      },
      "message": "Clear the JIT task queue for child zygote.\n\nwebview_zygote doesn\u0027t need the boot classpath to be compiled.\n\nTest: boot and check webview_zygote doesn\u0027t JIT.\nBug: 119800099\nChange-Id: Iec7f967633b4df4c4524c876093a039a5ad04f9f\n"
    },
    {
      "commit": "1d077ac3ae194333978b503db021bc07413113e0",
      "tree": "a7076fa555dec16fa404243d9587bb87e6aaf3fd",
      "parents": [
        "141b63c07e563ec0e40960b81e6ceb8c2e4b9749"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 27 15:53:28 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 27 17:03:36 2019 +0000"
      },
      "message": "Also JIT non-startup methods in zygote.\n\nNoticed this while looking at systraces - the original code I\u0027ve put\nin was only adding startup methods.\n\nAlso don\u0027t create a JNI global reference for boot classpath classes which\nwill never get GCed.\n\nTest: startup dialer, look at systrace\nBug: 119800099\nChange-Id: I12c173a85f8a8bc393693432624c54d916161bf7\n"
    },
    {
      "commit": "de1b2a2113b9e2c44b90c441177060142c7abbfd",
      "tree": "1e710fb3c5fdf8c11858a6a2418a53a5ad1ab1d8",
      "parents": [
        "ffe26cc54fac4f1997e5dbf6991da9e95ce49e31"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 27 09:10:57 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 27 12:44:48 2019 +0000"
      },
      "message": "Revert \"Revert \"Add support for booting with a boot classpath not fully AOTed.\"\"\n\nThis reverts commit 14bfeddf2e434954f0ca36687ac0fc5dc6412bd3.\n\nReason for revert: Removes obsolete DCHECK\nBug: 119800099\n\nChange-Id: Ia984f95300c6b96165f0179bfc2f66b012bf5dbe\n"
    },
    {
      "commit": "14bfeddf2e434954f0ca36687ac0fc5dc6412bd3",
      "tree": "59b23768c4d886e99bd81968e0eaf26ff2160a37",
      "parents": [
        "e55ea985ab4f77ca9557e33a2d29dc1a1f0ac078"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 26 22:16:07 2019 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 26 23:59:26 2019 +0000"
      },
      "message": "Revert \"Add support for booting with a boot classpath not fully AOTed.\"\n\nThis reverts commit 7417ce97c4dcabbd7423d46ff9b7cdaf95c1e0f9.\n\nReason for revert: Breaks debug mode\n\nBug: 119800099\nBug: 126239181\nChange-Id: I2d4a79f957a020cc6404a130536a416daebc94e3\n"
    },
    {
      "commit": "e57087025bb462f875c1fb0574eefba92f29ff20",
      "tree": "15278f603ea9508869dcc9ab9b26a97617e3fc1a",
      "parents": [
        "c55a1a260e34144d294640d84d09f5c1d77636ca",
        "131f23a4c2c34b689c07e6efd05cea74190f0113"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Feb 21 12:41:53 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 21 12:41:53 2019 +0000"
      },
      "message": "Merge \"Remove code size from OatQuickMethodHeader\""
    },
    {
      "commit": "98b970dd7486fd8a5b039e1256584c20f60309bb",
      "tree": "59810fa35878c443711117bf90be161e4b676bee",
      "parents": [
        "c216c190c425d64c6b0485b4fb8513024a0c8d62",
        "7417ce97c4dcabbd7423d46ff9b7cdaf95c1e0f9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 20 16:38:58 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 20 16:38:58 2019 +0000"
      },
      "message": "Merge \"Add support for booting with a boot classpath not fully AOTed.\""
    },
    {
      "commit": "7417ce97c4dcabbd7423d46ff9b7cdaf95c1e0f9",
      "tree": "3e84a40b0da5f826cbfd5ff4fb93c0b3dd4355e3",
      "parents": [
        "794350fd0e21aa9e259b6c45394494871e7fdb13"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 01 10:52:42 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 19 17:59:31 2019 +0000"
      },
      "message": "Add support for booting with a boot classpath not fully AOTed.\n\nBug: 119800099\nTest: adb shell setprop dalvik.vm.boot-image \"/system/framework/nonexistent.art\"\n\nChange-Id: I6641399f43c24702f19f4d976c6054d77186799e\n"
    },
    {
      "commit": "53eb07f0858795b7487eddc23b95ac38336696a7",
      "tree": "8b5710abea53fdf95aac2c582d58b465e9fd46e7",
      "parents": [
        "e39765cd311f31653137a2efede6c0eb7903e434"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 12 16:34:55 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Feb 18 14:06:22 2019 +0000"
      },
      "message": "Refactor ElfDebugReader.\n\nMake the code more flexible, which I will need for\nfuture mini-debug-info work.\n\nBug: 110133331\nTest: ./art/test.py -b -r -t 137\nChange-Id: I8b0fe3c43537f546f2ff103bff3c63a59a0f940a\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": "876a2ab77ce27c23cfe5cdc7d28ea79aae958a12",
      "tree": "be2b6c64a184c4c76395d9d6e8ef9df397fa455f",
      "parents": [
        "548da10bd80ae0b1192b135192e914e10491217e"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jan 09 19:13:54 2019 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Jan 24 00:02:05 2019 -0800"
      },
      "message": "Allow the use of filenames when traking code paths for profiling\n\nThe dex location for an app can be set either to be its full path or just\nthe filename of its apk. Make sure we include all possible locations when\ntracking for profiling.\n\nApps + system server have filenames.\nBoot classpath elements have full paths.\n\nThis is a temporary workaround for using filanames as dex locations -\nneeded to prebuilt with a partial boot image (commit:\nc4a924d8c74241057d957d360bf31cd5cd0e4f9c). We should find a better way\nwhich allows us to do the tracking based on full paths.\n\nBug: 122360294\nTest: m test-art-host\nChange-Id: Ibcdbab032cd27dd610f41300a1bfc166ec0fa3e0\n"
    },
    {
      "commit": "fe2886de2a9f06f286fe905ce8417981b9089c5c",
      "tree": "060025813c4ab6d3bfd98aaafa54a97be342a0c0",
      "parents": [
        "d7d3f6fa1870b9e9b8f58ab7854e5eeee071ba2e",
        "226805d9b81ba442251d0e2c4baedc36fcda6592"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 10 14:22:23 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 10 14:22:23 2019 +0000"
      },
      "message": "Merge \"Deoptimize zygote compiled methods in DeoptimizeBootImage.\""
    },
    {
      "commit": "1a07435ec30ebc48f826939cc902f5ead919a0fa",
      "tree": "493175dcf3c9b61250f9bdf374aef642a738f14c",
      "parents": [
        "02f6c8d9219b27643073d7bde31a88a44ed69b8d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jan 04 15:08:29 2019 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jan 04 15:11:52 2019 -0800"
      },
      "message": "Add more verbose logging to profiler\n\nGet more insight as to what\u0027s going on.\n\nBug: 122360294\nTest: test-art-host\nChange-Id: I5ec21bbd82bd3777a523c10e369f681103e643db\n"
    },
    {
      "commit": "9383d692bc6ad206d0232f1d68f9c41585a2665c",
      "tree": "aef0ba1c52f9dd867e6b2adf2356b9ed1bad9073",
      "parents": [
        "fadea6bfadc3dccb8d28eb6a133fb8f27e2c4ec2"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Dec 21 10:27:46 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Dec 21 15:41:19 2018 +0000"
      },
      "message": "Allow multiple native debug entries with same address.\n\nWe create packed entries which hold multiple methods and have\naddress aligned to 64k block that contains those methods.\n\nIf there is no method at the start of the block, it is possible\nthe new method will be JITed at that 64k-aligned address.\n\nTest: test.py -b -r -t 137\nBug: 121363337\nChange-Id: I2561b207f99e91e03f4709df5f318879c884a829\n"
    },
    {
      "commit": "6c22540b2c21399285abd390fbef9f2ea1ea794f",
      "tree": "fd2d25c8d893aa2138280a2a0069b95aa4ebb4be",
      "parents": [
        "d88f3eba1a2c879b362ffdcb3ce0acfff4570db4",
        "e3fc2d1644fd788509b834b01b83a28595721c47"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Dec 20 23:23:13 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 20 23:23:13 2018 +0000"
      },
      "message": "Merge \"Revert^2 \"Reduce the number of calls to Jit::AddSamples.\"\""
    },
    {
      "commit": "30a8c4b28c8199418dd0a844992604274a7bc9cc",
      "tree": "41c74f53ceb4720805d3e9cde8b9aa4ee88e9649",
      "parents": [
        "2b979929d701ae26b80be6aa42ea4781f141c1d6",
        "0b21e41260bea6c078c18eba745d43e549230fd0"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Dec 19 18:45:35 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 19 18:45:35 2018 +0000"
      },
      "message": "Merge \"Pack JIT mini-debug-infos together.\""
    },
    {
      "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": "0b21e41260bea6c078c18eba745d43e549230fd0",
      "tree": "25e41920b8a38d01ec904a2d1a1498c1364c07fb",
      "parents": [
        "889e29aae6a7cbd3c6f8dae44f67e054e083a8b6"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Dec 05 13:24:06 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Dec 14 16:47:38 2018 +0000"
      },
      "message": "Pack JIT mini-debug-infos together.\n\nWe currently produce one in-memory ELF file per JITed method,\nwhich has significant overheads due to the ELF file headers.\n\nPack several of those files together regularly to save space.\nSimilarly, prune information about methods which were GCed.\n\nThis reduces the size of JIT mini-debug-info by factor of 10.\nThe final overhead is 5% to 10% relative to the JIT code size.\n\nTest: ./art/test.py -b -r -t 137\nChange-Id: Idfaff8ed9a209e871e815e527f24f36c63a57bbf\n"
    },
    {
      "commit": "e3fc2d1644fd788509b834b01b83a28595721c47",
      "tree": "ed18c7651b9968486ea91d7717f6e6bd1dbdb674",
      "parents": [
        "58431a7cf863b2eb7fe25eff6a28ec376f2f151d"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Nov 30 13:41:14 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Dec 14 16:32:47 2018 +0000"
      },
      "message": "Revert^2 \"Reduce the number of calls to Jit::AddSamples.\"\n\nThe method is called for every invoke which is expensive.\nAdd samples, but don\u0027t check the consequences every time.\n\nThis reduces its cost from 3.5% to 1% (maps on device).\n\nThis reverts commit 0402f4b019c1d6c567b1c56589f1ea9170ab5dcc\nand fixes 667-jit-jni-stub which relied on being able to set\nthe sample count to exactly one below the compilation threshold,\nand then expected the compilation to happen on the next sample.\n\nTest: ./art/test.py -b --host -r --ndebug\nTest: ./art/test.py -b -r -t 570\nChange-Id: I99c6d03f565f17fe6539ed89632d8f8bbda68107\n"
    },
    {
      "commit": "98a520c4700f566afddf12bab01885b6b3d2584e",
      "tree": "d0b291999e85e7d8a65ae1b6aa98d54b3726563c",
      "parents": [
        "d97e00c4f6e8735a854f4443b8bd08fc5a251ce5",
        "075456ea917f70cb729125c92e0b890a9f1207c6"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 14 13:13:14 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 14 13:13:14 2018 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Add a baseline flag to JIT compile.\"\"\""
    },
    {
      "commit": "075456ea917f70cb729125c92e0b890a9f1207c6",
      "tree": "9cc40d68cf2b053a2bcec7fc026e10bb12d5ee93",
      "parents": [
        "344b0d18eb9f9f2f2ef704acadc510a6dd56a282"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 14 08:54:21 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 14 08:54:28 2018 +0000"
      },
      "message": "Revert \"Revert \"Add a baseline flag to JIT compile.\"\"\n\nThis reverts commit 344b0d18eb9f9f2f2ef704acadc510a6dd56a282.\n\nReason for revert: Not the CL that broke the tests.\n\nChange-Id: I38221d1ac723e5ea71cb398401e2fda8dd2d7db9\n"
    }
  ],
  "next": "344b0d18eb9f9f2f2ef704acadc510a6dd56a282"
}
