)]}'
{
  "log": [
    {
      "commit": "5c93af3cc8894deefbc9cba69ea69526c45842aa",
      "tree": "6f79a408832449163fcb2e320ad992393a2e8f32",
      "parents": [
        "8f70b9672c13a5ca19cf2c54ace3cb2f342f743a"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Sep 09 10:51:16 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Sep 09 20:49:04 2019 +0000"
      },
      "message": "Loosen verifier around interface-invoke-super\n\nWe were being overly strict with interface-invoke-super and not\nallowing an interface to invoke-super into its own methods without\ngoing to the interpreter. This causes some scala programs to run\nmostly in the interpreter. Our compiler is able to handle this\ncorrectly so we should allow it without any soft-verification\nfailures.\n\nTest: ./test.py --host\nBug: 140589303\nChange-Id: I40d9510add5bbfd41d2e38b68973fce77880f7e6\n"
    },
    {
      "commit": "8f70b9672c13a5ca19cf2c54ace3cb2f342f743a",
      "tree": "6f7c3bfddf1a8beaa6f4e406cfe59929fce60ed2",
      "parents": [
        "7f8678ec4d2abec1f540fb441be60604bec86b6e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 06 22:25:34 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Sep 07 02:00:29 2019 +0000"
      },
      "message": "Revert \"Java Heap Profiler for Perfetto.\"\n\nThis reverts commit adf49d4bb3870b73e79982f75bacd917d3ec3bb2.\n\nReason for revert: Breaks tests.\n\nBug: 136210868\nChange-Id: If79f47e3151f1d1cb359b79b388b8aac9ee09074\n"
    },
    {
      "commit": "7f8678ec4d2abec1f540fb441be60604bec86b6e",
      "tree": "e36b4d32dfc47fcebadf0ee5c7e4d1e3d51412a6",
      "parents": [
        "84e5bb990d48263849bab132d80d753495bc7204"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 30 16:22:28 2019 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 06 18:40:59 2019 +0000"
      },
      "message": "Revert^2 \"Prevent overflow for AOT hotness counters\"\n\nFixed bug where sbc usage was incorrect. sbc does -1 + carry.\n\nTest: test/run-test --always-clean --runtime-option -Xcheck:jni --64 674-hotness-compiled\nTest: test/run-test --always-clean --runtime-option -Xcheck:jni 674-hotness-compiled\nBug: 139883463\n\nThis reverts commit 7ab07777b08db86dda2891f3e7ae15df8f25a599.\n\nChange-Id: I6f8ac0320592a94314386b04cdb0c7e0e6da6994\n"
    },
    {
      "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": "adf49d4bb3870b73e79982f75bacd917d3ec3bb2",
      "tree": "d318b68d4840140f9c1e78f324becb5db0c142fa",
      "parents": [
        "7ed5e6002fc493984b3a4887a867ef751a139b4d"
      ],
      "author": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Tue Jul 09 17:57:16 2019 +0100"
      },
      "committer": {
        "name": "Florian Mayer",
        "email": "fmayer@google.com",
        "time": "Fri Sep 06 10:05:17 2019 +0000"
      },
      "message": "Java Heap Profiler for Perfetto.\n\nThis adds a new ART plugin that waits for a signal (number 38), when\nreceived forks the process (so that the app stays responsive to the\nuser), then connects to Perfetto and writes out a proto describing the\ngraph of currently live ART objects.\n\nThis has several advantages over `am dumpheap`:\n* Because it forks, it has less impact on the user.\n* It only writes out the ownership graph, rather than also dumping the\n  contents of the heap.\n* As this is streamed into Perfetto, it can be correlated to other data\n  sources in the same trace file.\n\nTest: Flash; start data source; send signal 38; get heap dump\nBug: 136210868\n\nChange-Id: I1f75bc532fd0a6b8d5f7f474ac7154180677dedd\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": "7ab07777b08db86dda2891f3e7ae15df8f25a599",
      "tree": "1b0b2fa585e49e4a7913c09d67794763197c6490",
      "parents": [
        "154445799432cb53d23cd011485132be07c39b5a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Aug 30 08:26:59 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Aug 30 08:57:20 2019 +0000"
      },
      "message": "Revert \"Prevent overflow for AOT hotness counters\"\n\nThis reverts commit 79e6eb8b79be6249358b7801bc511290dacf10d0.\n\nBug: 139883463\n\nReason for revert: 674-hotness-compiled fails on target.\n\nChange-Id: I02fce74d70a4ae69dd5b4ae3924aa11728d9e16f\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": "79e6eb8b79be6249358b7801bc511290dacf10d0",
      "tree": "1a04d214dd6223423abd442d8d9b0b61a3db2336",
      "parents": [
        "bae88c0759d48acf29b58d960ad2665e3462dfda"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Aug 26 12:33:46 2019 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 29 16:05:52 2019 +0000"
      },
      "message": "Prevent overflow for AOT hotness counters\n\nPrevious, the addition did not have a check for overflow and might wrap\naround since the counter is only 16 bits.\n\nModified the test to exercise this.\n\nThe slowdown from fixing the overflow is 2% average on golem arm32/64.\nOverall this brings the slowdown from the counter to ~15% from ~13%.\n\nThe benchmarks that regress the most are loopy ones that I would\nconsider non-representative. Code size increases by 0.6%.\n\nBug: 139883463\nTest: test/run-test --host --64 --prebuild 674-hotness-compiled\nTest: test/run-test --host --prebuild 674-hotness-compiled\nTest: test/run-test --64 --prebuild 674-hotness-compiled\nTest: test/run-test ---prebuild 674-hotness-compiled\n\nChange-Id: Icf0ab2aedbc40ab10c9d952ce0f9c7b5e5feaf15\n"
    },
    {
      "commit": "bae88c0759d48acf29b58d960ad2665e3462dfda",
      "tree": "bcb16cb53ef55171875730b27f562fa893cb88f6",
      "parents": [
        "4e8e0a5a2a6b0404a5ecd118e647adcb50c464af"
      ],
      "author": {
        "name": "jaishank",
        "email": "jaishankar.rajendran@intel.com",
        "time": "Tue Jun 11 16:47:45 2019 +0530"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 29 15:45:39 2019 +0000"
      },
      "message": "Supported AVX/AVX2 in art-interpreter\n\nPerformance Impact:\n10-12% Warm Launch Time Performance Improvement in YouTube App\n\nTest: run-test gtest\n\nChange-Id: I103147982a89dd6fc1ef1a271310de5c1804de21\nSigned-off-by: jaishank \u003cjaishankar.rajendran@intel.com\u003e\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": "c88c1d0fbbc4bc230f08fd1e0fe7b652519c9236",
      "tree": "7295e7e39530096cfe42a24326c28e22f7d4efdc",
      "parents": [
        "4ec4d48940696de077f88f9f8e9abdb178772301"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Aug 27 08:18:46 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 27 18:09:57 2019 +0000"
      },
      "message": "Fully remove DumpKernelStack.\n\nAs explained in the previous commit touching this code, these days only\nroot can get the kernel stack trace anyway.\n\nTest: treehugger\nChange-Id: I9924951afa1f8511720c479598c3bd74f5a55c66\n"
    },
    {
      "commit": "4ec4d48940696de077f88f9f8e9abdb178772301",
      "tree": "b43474eded81a67650795b1b0b0fc35e2a12afc7",
      "parents": [
        "7263abc75f8d139f1efcae887870a2f537e45735"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Aug 01 10:00:23 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 27 17:09:27 2019 +0000"
      },
      "message": "ART: Verifier cleanup\n\nStart making the method verifier more independent of externalities.\nThis will be implemented as incremental changes.\n\nIncorporate suggestions from previous changes: some C++ cleanup.\n\nTest: m test-art-host\nChange-Id: If903239bee58858427f0eb3e3e37a1ca767529c5\n"
    },
    {
      "commit": "efd55b5b5837912c737eb0a9fa09954c8085e055",
      "tree": "43917185ef67c94326e1b27325dc617b92abb5bf",
      "parents": [
        "1ec82e562a31fbd7383555b610743d85b7b4a7d4"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Aug 26 09:25:20 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 27 05:13:38 2019 +0000"
      },
      "message": "Don\u0027t complain if we can\u0027t read /proc/self/task/pid/stack.\n\nWhy do we see the warning on every stack in an ANR? Because normally on\nAndroid you either won\u0027t have CONFIG_STACKTRACE, or you won\u0027t have\nPTRACE_MODE_ATTACH_FSCREDS. I\u0027m assuming this code still has some value\non the host, so I\u0027m just silencing the warning rather than deleting the\ncode.\n\nTest: treehugger\nChange-Id: I2f203bde87a6613d1b300a0020290c62bea4ac48\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": "82e347bd4e0afa7ab3895c197cc36242cf169db1",
      "tree": "dfd5647804f63cb790957b7ee2a10646e10ee1c9",
      "parents": [
        "05b0086ea31f281d61fdecd99921328b2dbf9f21"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Aug 15 17:45:05 2019 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Mon Aug 19 22:08:01 2019 +0000"
      },
      "message": "Increase kNotifyNativeInterval on host\n\nWe were still spending way too much time in mallinfo on some tests.\n\nBug: 136887041\nTest: Treehugger\nChange-Id: Ib60f19db1b526ae1567d35ce600c15afbbb49303\n"
    },
    {
      "commit": "c6175610512141a7d70e3a50e09ffac1606c3097",
      "tree": "50484eaf702569bcd636cad0f61fec080a8b4f66",
      "parents": [
        "e9455f61f7e45963c7056b51dbaf8bb42c47454a"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Jul 05 19:50:52 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Aug 16 19:05:23 2019 +0000"
      },
      "message": "ART: Add support for SVE feature for ARM64.\n\nImplement basic ISA feature configuration for SVE.\n\nTest: instruction_set_features_test\nTest: instruction_set_features_arm64_test\nChange-Id: I84963c6f896c435ecfb898f7f251039dfed8878a\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": "9ce340f829f836560278ecd078fbefcf19c9d629",
      "tree": "3327d6d7dd3c0ff86861cdab67791ee7c8dbe3b8",
      "parents": [
        "d4fc62c66328c0944348a314e3770b4f2b8006ce"
      ],
      "author": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Tue Jan 22 17:46:09 2019 +0000"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Aug 15 20:35:11 2019 +0000"
      },
      "message": "ARM64: toFloat() intrinsics with ARMv8 FP16.\n\nThis CL intrinsifies toFloat() method with ARMv8.2 FP16 instructions.\n\nThis CL depends on the android framework and libcore changes:\nmoving FP16 implementations into libcore.\n\nTested with local micro benchmark on Pixel 3, compared to original\nandroid.util.Half.toFloat() Java implementation, this intrinsic is\n50% faster.\n\nIn real-life case, the FP16 toFloat() intrinsic can help\naccelerate ColorLong ARGB decoding in Android framework.\n\nThis intrinsic implementation archieves bit-level compatibility with the\noriginal Java implementation android.util.Half.toFloat().\n\nTest: 580-fp16\nTest: art/test/testrunner/run_build_test_target.py -j80 art-test-javac\nTest: test-art-host, test-art-target\n\nChange-Id: I059c69747067b84f2c532465e32a1dcd3c25269f\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": "ea5b4297d7748bb87a6f1133103df834ea16f227",
      "tree": "779cbded6a35f9af09a263293b254f5004785b71",
      "parents": [
        "7ab5c0068017af31b417643f887930bd91715bce"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu Aug 08 16:27:21 2019 -0700"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Wed Aug 14 16:56:16 2019 +0000"
      },
      "message": "Include evacuated bytes in heap size trace\n\nSince ConcurrentCopying collector creates copies of objects that are in\nthe evac from-space, we need to report this during GC cycle using\nTraceHeapSize().\n\nTest: Flash device, run and analyse perfetto trace.\nBug: 139020078\nChange-Id: Iff0da1de4c77da199c1c3b44ea488883e7fa4261\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": "fa595885339140c3507f26d93cdc6b99081e23c5",
      "tree": "19d6240afee048aa37a778f09996c6ecad5266a6",
      "parents": [
        "918e9af6a7259e7178ec10257f568a60e832a962"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Aug 06 17:40:09 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Aug 09 07:36:39 2019 +0000"
      },
      "message": "Fix setting/getting the native priority of a thread.\n\nBug: 138415922\nTest: 720-thread-priority\nChange-Id: I6e1f34fce3838b7904281be00f315e5b7ade0c78\n"
    },
    {
      "commit": "918e9af6a7259e7178ec10257f568a60e832a962",
      "tree": "1f56177ca84debc27f942db38821d7eae10a4985",
      "parents": [
        "c94b44cee8376b86da85c2452e74edfe5ad4b2cf"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Wed Aug 07 17:15:24 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Aug 09 02:25:29 2019 +0000"
      },
      "message": "Add assembly support for -fsanitize\u003dhwaddress tagged globals.\n\nAs of LLVM r368102, Clang will set a pointer tag in bits 56-63 of the\naddress of a global when compiling with -fsanitize\u003dhwaddress. This requires\nan adjustment to assembly code that takes the address of such globals: the\ncode cannot use the regular R_AARCH64_ADR_PREL_PG_HI21 relocation to refer\nto the global, since the tag would take the address out of range. Instead,\nthe code must use the non-checking (_NC) variant of the relocation (the\nlink-time check is substituted by a runtime check).\n\nThis change makes the necessary adjustment in all of the places where it is\nneeded when compiling with -fsanitize\u003dhwaddress. The __clang_major__ \u003e\u003d 10\nis temporary (required because prebuilt Clang doesn\u0027t support :pg_hi21_nc:)\nand we should be able to remove it once we update Clang past r368102.\n\nTest: walleye_hwasan-userdebug boots\nChange-Id: Ide7f513baac42fdeb637e95a7f7c1c083441884d\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": "f56393cc933f01327e0a3a1455f38b1b3ff550d0",
      "tree": "70ec4475db963e89bac26081a07399699916c461",
      "parents": [
        "084fc289b4c0a1355e2c38076933bd80834a44d7"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Aug 02 15:49:27 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 07 16:43:35 2019 +0000"
      },
      "message": "Switch-interpreter: Inline field getters and setters.\n\nThis makes the interpreter 5% faster and code 1% smaller.\n\nTest: test.py -b --host --64 --interpreter\nChange-Id: If4c16ea84e9a975d7ccae5ef88200d54cf62e27f\n"
    },
    {
      "commit": "635967b5d16e25630276c23aa47daf52ec493ea1",
      "tree": "4f9cba20e58ae2997b4d693d4e1e76ccd684637f",
      "parents": [
        "8d5a215a7e879d8aa9c7d9d2791ed107ecc41f59"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Aug 07 10:15:39 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Aug 07 14:11:21 2019 +0000"
      },
      "message": "Remove \tmessage ART creates for \"throw null\".\n\nThe new version of R8 transforms:\n  throw new NullPointerException()\n\nInto:\n  throw null\n\nART used to create a message for the pattern \"throw null\", which is\nsomething that now breaks ObjectsTest.requireNonNull.\n\nTest: libcore.java.util.ObjectsTest#test_requireNonNull_T\nChange-Id: I142ddc74a9c0cfc76d2479eb92078b7a7d077b27\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": "baa81b5f25e10dd054e3562688802468512f8f67",
      "tree": "3833d8d83baf6988e995b2dd757353f7925ba939",
      "parents": [
        "38a062eb7390f07ee0a318517f71d9b56491a5f7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 02 10:14:04 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Aug 05 20:35:53 2019 +0000"
      },
      "message": "Use ClassStatus::kVisiblyInitialized in interpreter.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --interpreter --interp-ac\nTest: aosp_taimen-userdebug boots.\nTest: run-gtests.sh\nTest: testrunner.py --target --interpreter --interp-ac\nBug: 36692143\nChange-Id: Ic081c3fab8fb98ba2667bc851fb2b7dd746e7020\n"
    },
    {
      "commit": "38a062eb7390f07ee0a318517f71d9b56491a5f7",
      "tree": "67204f1fbc785b888f9d5718e31cf22de6b2d727",
      "parents": [
        "e80ecf31e0d58a90d6b2a1d65ec090c03abc86dc"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 02 13:59:27 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 05 19:27:58 2019 +0000"
      },
      "message": "Weaken 2 DCHECK()s in reflection.\n\nReflection can be used on classes that are being initialized\nrather than just classes that are already initialized as we\nwere previously asserting.\n\nTest: Additional tests in 100-reflect2.\nChange-Id: I072c28533e9248856b49fddb4bc46109448ee8a9\n"
    },
    {
      "commit": "e80ecf31e0d58a90d6b2a1d65ec090c03abc86dc",
      "tree": "25eb1f6319f3194c79dfcec77753628e424cc476",
      "parents": [
        "d4d6fb50b5e1552c114529854e29c3af5c4eb9c1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 01 15:20:58 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 05 16:12:41 2019 +0000"
      },
      "message": "Rewrite the .data.bimg.rel.ro check in OatFile::Setup().\n\nIn preparation for loading boot image extensions before\nRuntime::Current()-\u003eGetClassLinker() has been initialized,\nchange the check to not rely on Runtime::Current() at all.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: Ica37c294a19e36e615186a0331d4d18c40c7fe2e\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": "7c502740ba2b3b8560b8d02af276b010392de5bb",
      "tree": "693d1abb0d04f197a11ecddb8ccbc39ce942a1dc",
      "parents": [
        "c14ec8facf0ea51e7531fa0acbed3410468b0356"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 01 12:47:18 2019 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 01 20:21:52 2019 +0000"
      },
      "message": "Fix Heap::UnBindBitmaps for spaces without bitmaps\n\nSpaces that don\u0027t have a bitmap can\u0027t have their bitmaps unbound.\n\nTest: test/testrunner/run_build_test_target.py -j50 art-debug-gc\nBug: 116052292\nChange-Id: Icbd9fab5bdec5fbc7f23bd02d45d600201387d6d\n"
    },
    {
      "commit": "c14ec8facf0ea51e7531fa0acbed3410468b0356",
      "tree": "a70bc3cffcaf763e4951c96918bc6f8b25a472b3",
      "parents": [
        "147a911636402f2658ce60bd3ad62eb197b00f74"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jul 18 16:08:41 2019 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Aug 01 17:50:27 2019 +0000"
      },
      "message": "Add resize arrays JVMTI extension\n\nAs a prototype for more general object replacement functionality add a\nnew JVMTI extension that allows one to change the size of arrays. This\nextension is \u0027com.android.art.heap.change_array_size\u0027. As far as any\nJVMTI agent, JNI or Java Language code can observer this extension\natomically replaces every reference (strong and weak, global and\nlocal, etc.) with a newly allocated array with the same contents but a\ndifferent length. Internally a whole new array will be created then\nthe old array will have its contents (including lock-word) copied and\nall references to the old array will be replaced with the new array.\n\nTest: ./test.py --host\nBug: 134162467\n\nChange-Id: I92a0beabb02e0c92c8c8f9639836014ff1266878\n"
    },
    {
      "commit": "147a911636402f2658ce60bd3ad62eb197b00f74",
      "tree": "2fb507267d7bad2e906be49c4b18e709e4d706a2",
      "parents": [
        "b90cad58077cd44411c2a1617aec7b6798e6a295"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 31 16:17:10 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 01 17:01:19 2019 +0000"
      },
      "message": "ART: Remove FailOrAbort for unnecessary cases\n\nThe dex file verifier now correctly checks that the instruction array is\nnot empty. As such, index zero is always an instruction.\n\nSlightly refactor code for readability.\n\nTest: m test-art-host\nChange-Id: I3141944beef58a409c5ae52ba27fb5ce5945f9d1\n"
    },
    {
      "commit": "b90cad58077cd44411c2a1617aec7b6798e6a295",
      "tree": "fdebb5c0c8e93d8680cb14bca5925483371ca153",
      "parents": [
        "d1abab7110101d65774f9d090850d20aaa07b661"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 31 16:15:41 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 01 17:01:19 2019 +0000"
      },
      "message": "ART: Move find-locks code up in the callchain\n\nMove the code into the caller and templatize the caller to save some\ninstructions and branches for the common case.\n\nTest: m test-art-host\nChange-Id: I6eee7b60e3f17db778ab98a49126b206c8547a2c\n"
    },
    {
      "commit": "0134a28ec42f5c96a3dffcf496bf1af05d0942dc",
      "tree": "0b8857236fe1aab89718daee8219c4eb9408ad21",
      "parents": [
        "86bf068459252f58686c71bd24dadd76aba45c8b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 29 11:34:55 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 01 17:01:19 2019 +0000"
      },
      "message": "ART: Verifier cleanup\n\nStart making the method verifier more independent of externalities.\nThis will be implemented as incremental changes.\n\nReorder impl::MethodVerifier\u0027s constructor arguments to have all\nsuperclass arguments first. In an effort to simplify additions.\n\nTest: m test-art-host\nChange-Id: Iba119d74b0dd2dc8c4831efa823c191df6975d9d\n"
    },
    {
      "commit": "86bf068459252f58686c71bd24dadd76aba45c8b",
      "tree": "837520d122851c85c2be2297ffe439735ebc00a4",
      "parents": [
        "422a9ebc5b9d780a3201243f02b58652b44d9896"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 29 11:22:44 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 01 17:01:19 2019 +0000"
      },
      "message": "ART: Verifier cleanup\n\nStart making the method verifier more independent of externalities.\nThis will be implemented as incremental changes.\n\nSome cleanup moving small function definitionss into their\ndeclaration.\n\nTest: m test-art-host\nChange-Id: I0b109572e0f892844966e0c25478d6306b2a5d6f\n"
    },
    {
      "commit": "422a9ebc5b9d780a3201243f02b58652b44d9896",
      "tree": "4fcd6abe72d70358d7bf6235266ab685b61678a1",
      "parents": [
        "9f18fbc433bba51a5b81249989a8726558135528"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 01 12:54:07 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 01 16:54:29 2019 +0000"
      },
      "message": "Do not hold lock when making class visibly initialized.\n\nDoing so can lead to deadlocks.\n\nBug: 138561860\nBug: 36692143\nTest: New test 177-visibly-initialized-deadlock\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: I6195a4a5a7d865f90c529da684697b9a3e23ff30\n"
    },
    {
      "commit": "9f18fbc433bba51a5b81249989a8726558135528",
      "tree": "5a293f961924edf35f6ad4be9935a71c5ba69761",
      "parents": [
        "6f382013399fc8ba8b2717e4d24d91978d2bc0f7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jul 31 15:06:12 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 01 16:36:41 2019 +0000"
      },
      "message": "Make classes visibly initialized faster.\n\nReduce the batch size from 32 to 16 and the trigger count\nfrom 1024 to 128.\n\nThis may help system health micro-benchmarks (b/138601570)\nbut I\u0027m unable to run the forrest tests locally to verify.\n\nBug: 138601570\nBug: 36692143\nTest: m\nChange-Id: I4d938ddbd284ebe624d146eca9ad59ceefeba4d4\n"
    },
    {
      "commit": "6f382013399fc8ba8b2717e4d24d91978d2bc0f7",
      "tree": "53b6bca63d5a1c34b2a60e5d8ef39f7cb22d4fe9",
      "parents": [
        "2b9c8c94fc92c6f2c7c1703efc1793d17ffde297"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jul 30 09:47:35 2019 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 01 16:17:17 2019 +0000"
      },
      "message": "Refactor space bitmap to be a value object\n\nRemove the need for pointer indirections at many places, reduce the\namount of code.\n\nBug: 116052292\nTest: test-art-host\nChange-Id: I4b1040d29f9ba99ea23c51f70a06af2ffbe496d4\n"
    },
    {
      "commit": "8e1106587f0273116302afe06956129b5d82784a",
      "tree": "e1869e8da9ab9a6bfdf89a34f4e8cedd44045005",
      "parents": [
        "5a11036542fbd2c00de1896c0ae2477f655e8ed3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 30 10:14:41 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 01 08:35:08 2019 +0000"
      },
      "message": "Use ClassStatus::kVisiblyInitialized for allocations.\n\nAnd move the \"intialized but not visibly initialized\" check\nto ClassLinker::EnsureIntialized().\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: 36692143\nChange-Id: Ib5e19326b1149b2aef586b905ce89470c3a8e405\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": "f3677471a58c2738a3d9dd05f07f01c18a5e61be",
      "tree": "21b4279c1077e051b84aad12da29240672f54913",
      "parents": [
        "f1468b53d0427a45011fe6446d189babe0acd6e0"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jun 26 16:31:53 2019 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jul 29 22:22:53 2019 +0000"
      },
      "message": "Add ability to switch to index ids late.\n\nIn order to support some debugging features we need to have JNI code\nmostly running with jmethodIDs and jfieldIDs as opaque indexes\ndisconnected from any underlying art data-structure pointers. For\nperformance though we want to continue to use data-structure pointers\nas these IDs when debugging is not needed. To support both\npossibilities this adds support for changing from a \u0027swapablePointer\u0027\nto either \u0027pointer\u0027 or \u0027indicies\u0027 regime at runtime.\n\nThe SwapablePointer regime still uses pointers as the ids but creates\nthe data-structures needed to ensure that we can (1) detect that the\nmethods have pointer-type IDs and (2) we can change some\nWellKnownClass internal IDs from one to the other.\n\nCurrently one must select this mode explicitly using\n\u0027-Xopaque-jni-ids:swapable\u0027. Depending on when the final jni-id-type\nis selected a small amount of extra memory is used. Currently manual\ntesting of turning the default id-type to swapable and changing to\npointer immediately after zygote-fork shows a additional 40-90 kb of\nshared zygote-heap memory.\n\nTest: ./test.py --host\nTest: m libfieldcounts; \\\n      ./tools/jvmti-agents/field-counts/count-fields.py \u0027Ljava/lang/Class;.extData:Ldalvik/system/ClassExt;\u0027 \u0027Ldalvik/system/ClassExt;.jmethodIDs:Ljava/lang/Object;\u0027 \u0027Ldalvik/system/ClassExt;.staticJfieldIDs:Ljava/lang/Object;\u0027 \u0027Ldalvik/system/ClassExt;.instanceJfieldIDs:Ljava/lang/Object;\u0027 -p `adb shell pidof com.android.deskclock`;\n      Examine output\nBug: 134162467\n\nChange-Id: I1885b10056d5dcc65dad5ae4f858ddc12ba79403\n"
    },
    {
      "commit": "f1468b53d0427a45011fe6446d189babe0acd6e0",
      "tree": "d6be3e1ed2a56f30d8ae8593655db6d5e4826507",
      "parents": [
        "fef91cc973f193d5b3a5a554b4910f0c548c08ad"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jul 26 09:22:39 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 29 20:10:20 2019 +0000"
      },
      "message": "ART: Verifier cleanup\n\nStart making the method verifier more independent of externalities.\nThis will be implemented as incremental changes.\n\nIn this CL, require an ArenaPool in the constructor instead of\nexplicitly using the Runtime one.\n\nTest: m test-art-host\nChange-Id: I2a526d869532da732202198fdac68c426008b09a\n"
    },
    {
      "commit": "fef91cc973f193d5b3a5a554b4910f0c548c08ad",
      "tree": "6aa735be1e7ff51073eeb15b70a67a2f1c4037d8",
      "parents": [
        "e0bbab9fe1b073fecae78ca5d269bd0b2a177b4f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 25 14:13:23 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 29 20:10:20 2019 +0000"
      },
      "message": "ART: Verifier cleanup\n\nStart making the method verifier more independent of externalities.\nThis will be implemented as incremental changes.\n\nIn this CL, replace querrying Runtime::Current() for AoT status\nwith a flag.\n\nTest: m test-art-host\nChange-Id: I91a3ad0208b544f47bb83db96edca6b4f86e5ce5\n"
    },
    {
      "commit": "e0bbab9fe1b073fecae78ca5d269bd0b2a177b4f",
      "tree": "a6152ee32301ac78084be69fc73c8d54134da8b2",
      "parents": [
        "52c468a765f0427dfb5a6627e8087e7b8acc3b8b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 25 12:28:22 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 29 20:10:20 2019 +0000"
      },
      "message": "ART: Verifier cleanup\n\nStart making the method verifier more independent of externalities.\nThis will be implemented as incremental changes.\n\nIn this CL, replace querrying Runtime::Current() for the classlinker\nwith requiring the classlinker to use at construction time.\n\nTest: m test-art-host\nChange-Id: Id0a6a1f01c77bfe4cc9adfb490fc6ebc7bbf6392\n"
    },
    {
      "commit": "52c468a765f0427dfb5a6627e8087e7b8acc3b8b",
      "tree": "305790c70dbdf13a8fbafe7cdf1f0ba664860ad8",
      "parents": [
        "c0b30c9cd2553f58035853919a9820b0b54db783"
      ],
      "author": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Thu Jul 18 18:16:04 2019 -0700"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Mon Jul 29 17:52:24 2019 +0000"
      },
      "message": "Refactor mark-bit set logic in PreZygoteFork()\n\nTest: art/test/testrunner/testrunner.py --target\nBug: 37254935\nChange-Id: I3cb592e793fee47509590c66697c06a8e3bd6fab\n"
    },
    {
      "commit": "c0b30c9cd2553f58035853919a9820b0b54db783",
      "tree": "7aa919f061ae4f30f55bc908cd234c3876dd6942",
      "parents": [
        "672c08092a7d95bb504bceb712812f72524d90da"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 23 14:58:25 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jul 29 12:37:41 2019 +0000"
      },
      "message": "Implement boot image extension relocation.\n\nThe creation of boot image extensions and other aspects\nof loading them shall be implemented in separate CLs.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nChange-Id: I1630d6cc44550bc0db72cb5c4a8e08573cf3b92c\n"
    },
    {
      "commit": "672c08092a7d95bb504bceb712812f72524d90da",
      "tree": "e539c269d8733b13e43c41f9784d0c6c8200a9d6",
      "parents": [
        "e91d787c2de859789ec6e467bd04ee28b22a8c4e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jul 26 13:03:13 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jul 29 12:33:14 2019 +0000"
      },
      "message": "Update Transaction for boot image extension.\n\nAnd clean up transaction-related code to keep test code\nout of the production binaries.\n\nTest: Add TransactionTest#Constraints to transaction_test.\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: aosp_taimen-userdebug boots.\nChange-Id: Iefe5f1cfde95f564069249148f9e7d71564d7a10\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": "bf12191214c0d6215a98dfe846a51230d995dad9",
      "tree": "085c1059014ce66fdb7eceb6e8502d906f0eacbd",
      "parents": [
        "78342419743cb6d0f17dc2d4c0cd99d18d9c83d6"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jun 04 13:49:05 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jul 26 11:10:26 2019 +0000"
      },
      "message": "Implement ClassStatus::kVisiblyInitialized.\n\nPreviously all class initialization checks involved a memory\nbarrier to ensure appropriate memory visibility. We change\nthat by introducing the kVisiblyInitialized status which can\nbe checked without a memory barrier. Before we mark a class\nas visibly initialized, we run a checkpoint on all threads\nto ensure memory visibility. This is done in batches for up\nto 32 classes to reduce the overhead.\n\nAvoiding memory barriers in the compiled code reduces code\nsize and improves performance. This is also the first step\ntoward fixing a long-standing synchronization bug 18161648.\n\nPrebuilt sizes for aosp_taimen-userdebug:\n - before:\n   arm/boot*.oat: 19150696\n   arm64/boot*.oat: 22574336\n   oat/arm64/services.odex: 21929800\n - after:\n   arm/boot*.oat: 19134508 (-16KiB)\n   arm64/boot*.oat: 22553664 (-20KiB)\n   oat/arm64/services.odex: 21888760 (-40KiB)\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots\nTest: run-gtests.sh -j4\nTest: testrunner.py --target --optimizing\nTest: Manually diff `m dump-oat-boot` output from before\n      with output after this CL without codegen changes,\n      with `sed` replacements for class status. Check that\n      only checksums and the oatdump runtime values of\n      DexCache.dexFile differ.\nBug: 18161648\nBug: 36692143\nChange-Id: Ida10439d347e680a0abf4674546923374ffaa957\n"
    },
    {
      "commit": "9e0099f1c74236bd3f46955ec03856be089529b5",
      "tree": "96024b92afb8998a4eb1efab0094236269af0acd",
      "parents": [
        "01ecfa1c31282e12b18df5b2f555898a0c3a2e35"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Jul 23 15:51:37 2019 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Jul 26 08:41:54 2019 +0000"
      },
      "message": "Drop Core Platform API checks when JNI table updated\n\nBug: 136493688\nTest: manual\nChange-Id: I1168a794e0cebea1e8ef9a68092c2616a6503a17\n"
    },
    {
      "commit": "01ecfa1c31282e12b18df5b2f555898a0c3a2e35",
      "tree": "f3f71be061fb0b411ec9434fb23e0b2a8b787075",
      "parents": [
        "2be4306b7669a5aca3e936c531c5ec370ae98e92"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Jul 18 12:57:47 2019 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Jul 26 08:41:54 2019 +0000"
      },
      "message": "Refactor Core Plaform API checking\n\nMove Core Platform API check logic to hidden_api_jni.{h,cc}.\n\nUse libunwindstack for walking stack as builtin isn\u0027t robust without\nframe pointers. This is moderately expensive so we currently walk a\nmaximum of 3 frames.\n\nChecks are now performed by placing ScopedCorePlatformApiCheck\ninstances at potential points of entry via JNI. Specifically, where\nJNI interfaces implement methods for getting field and method ids. The\ncheck is only performed on the outermost instance of the\nScopedCorePlatformApiCheck since only the outer caller is of interest.\n\nState for the checks is stored in the current Thread instance since\nthe JNI interface signatures are fixed and we need a way to be able to\ndetermine whether a ScopedCorePlatformApiCheck is the outermost\ninstance and whether the outmost instance was approved.\n\nTest: build eng build (has checkjni), boot, grep logcat nio/Buffer\nTest: build user build (regular jni), boot, grep logcat nio/Buffer\nBug: 130336799\nBug: 136276414\nChange-Id: If1261046dd57c007bc77b213daaa5f733151123e\n"
    },
    {
      "commit": "2be4306b7669a5aca3e936c531c5ec370ae98e92",
      "tree": "e20868e4e3303463dbe9eba507b89165f2985a06",
      "parents": [
        "82372004427646e048b47ca507e7409d8edfeaf5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 24 16:52:33 2019 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 25 22:18:20 2019 +0000"
      },
      "message": "ART: Use initial-exec TLS mode for Thread TLS\n\nAvoid unnecessary overhead. This works as on the host we do not\nrun complicated workloads with other libraries etc, so glibc\u0027s\npreallocated storage is large enough to fit this.\n\nBug: 138329277\nTest: m test-art-host\nChange-Id: Ibd013521b7fc043b62ed79a72e94c0c002c7c402\n"
    },
    {
      "commit": "82372004427646e048b47ca507e7409d8edfeaf5",
      "tree": "6f109e4b2428b2a2340bf4ed93d8fc9f30b0f0dc",
      "parents": [
        "a47a6e89407fa9f0234d44c2be8451f4838c0780"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 24 15:42:09 2019 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 25 21:38:53 2019 +0000"
      },
      "message": "ART: Use thread_local on the host for ART Thread*\n\nUse thread_local instead of a pthread key for Thread::Current().\nRetain the pthread key as we are still using it for some sanity\nchecks in ThreadExitCallback.\n\nBug: 138329277\nTest: m test-art-host\nChange-Id: Idfe43bc279459e307e2165d3a3762af09230bdfd\n"
    },
    {
      "commit": "a47a6e89407fa9f0234d44c2be8451f4838c0780",
      "tree": "8977c4976486381c4f63aa602a98fac611898a95",
      "parents": [
        "a0fc13a97a22604c5587a30d3b92cf22e68079a7"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 24 09:46:16 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 25 16:56:41 2019 +0000"
      },
      "message": "ART: Extend bionic TLS use to host bionic\n\nUse __BIONIC__ instead of ART_TARGET_ANDROID for bionic TLS usage.\n\nBug: 138329277\nTest: m test-art-host\nTest: art/test/testrunner/run_build_test_target.py art-linux-bionic-x64\nChange-Id: I7dc605c6700323303d9c9503d3aecc4fddef8d45\n"
    },
    {
      "commit": "92db59bdb2c0154a1bec0c1e70c50f5f13d462a7",
      "tree": "d4709c1bfe4e5f6a8bf15ec6c8b97e72a0200dc5",
      "parents": [
        "1b0fcf495e652cabaa8e65b8bf67284ca15f6485"
      ],
      "author": {
        "name": "Ziang Wan",
        "email": "ziangwan@google.com",
        "time": "Mon Jul 22 21:19:24 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 24 21:51:32 2019 +0000"
      },
      "message": "Revert \"Workaround bogus Thread Safety Analysis warning\"\n\nAlter the thread safety analysis attribute of ReaderWriterLock::AssertNotHeld\nso that it accurately expresses \"lock not held either exclusively or shared\".\n\nRe-enable Locks::mutator_lock_-\u003eAssertNotHeld runtime checks in heap.cc\nand adbconnection.cc.\n\nThis reverts commit e11d50f23dc1256ad933d209f2db8f58138f02c0.\n\nBug: 71769596\nChange-Id: I94488ad5f977b0de13a5141c54f67272a41f8b53\n"
    },
    {
      "commit": "1b0fcf495e652cabaa8e65b8bf67284ca15f6485",
      "tree": "5f67feca58ca2bd390ac8aa18eca17b99889186a",
      "parents": [
        "1cbac5c38ca1cb9bbdf3bc1489701a9c841764fe"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 23 16:39:21 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 24 19:06:29 2019 +0000"
      },
      "message": "ART: Fix ScopedThreadStateChange assert\n\nEnsure that an early abort will not trigger a nested (infinite)\nfailure.\n\nAlso move the check into the body to avoid polluting the header\nwith a very uncommon case.\n\nTest: mmma art\nTest: manual (run-test with 1.5GB heap)\nChange-Id: I85e7a5ba2e01d1762ffc5c264eee20a0c81c0b7f\n"
    },
    {
      "commit": "1cbac5c38ca1cb9bbdf3bc1489701a9c841764fe",
      "tree": "0d98c44d61c3c47e54f906e70ded54c1aa9e8f09",
      "parents": [
        "af8647023ea8e90fd37814f2da7aa3a901de8484"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jul 18 20:05:32 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jul 24 13:13:48 2019 +0000"
      },
      "message": "Try to avoid expensive stack walk in QuickDeliverException\n\nStack popping is a debug feature. We can skip the\nstack walk if no stack pops have been requested.\nThis makes PMD benchmark about 10% faster.\n\nBug: 136438735\nTest: test.py -b --host --64 --interpreter\nTest: run-libjdwp-tests.sh \u0027--mode\u003dhost\u0027 \u0027--variant\u003dX64\u0027\nChange-Id: I09b9a444c110434d9bb7253776128bd3fe9c28ab\n"
    },
    {
      "commit": "af8647023ea8e90fd37814f2da7aa3a901de8484",
      "tree": "c6d8a0210175028360d1f0f02eebb35cf336af31",
      "parents": [
        "7ee607e39cfbfc59616dbf4c063cd1169dc4350f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 23 14:05:35 2019 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 23 14:05:35 2019 -0700"
      },
      "message": "ART: Correctly exclude super-init times in classlinker\n\nSubtract the times for initializing superclass and interfaces to\nnot double-count.\n\nTest: m\nTest: manual\nChange-Id: Ibf4409f8390107c20a1c1b812aa6ea6567ca0a4b\n"
    },
    {
      "commit": "7ee607e39cfbfc59616dbf4c063cd1169dc4350f",
      "tree": "7529abbedcb31c8a8093a58c2c25fb0831691de1",
      "parents": [
        "dd20d0006ff51a3aaaee8e8cb33cbbbd859b41f6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 23 12:22:04 2019 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 23 12:37:53 2019 -0700"
      },
      "message": "ART: Fix Runtime::GetStat\n\nReturn uint64_t, as data is actually stored as such. Remove ns\nto us conversion. Fix sensitive callers.\n\nTest: m test-art-host\nChange-Id: I506c90dbb179ffe010bb9cd6cc795edc280a9bc8\n"
    },
    {
      "commit": "70e2a7694b1d9aa926e1ff05c541574d1d89a28c",
      "tree": "aefc1b15d28cacd17f61d18a4bcbe341b043effa",
      "parents": [
        "da40acad8760aacd4bc3b636fbdb5f8107d3e00f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jul 12 16:49:00 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 23 08:35:23 2019 +0000"
      },
      "message": "Initialize array classes in pre-fence visitor.\n\nRewrite array class initialization to make it easier to\nreason about memory visibility. Initialize all members in\nthe pre-fence visitor for the normal use case. Refactor\ninitialization of core array classes without boot image to\navoid special-casing in ClassLinker::CreateArrayClass().\n\nNote that the Class::object_size_alloc_fast_path_ field\nof primitive classes (instances of which cannot be\nallocated) will be kept at numeric_limits\u003cuint32_t\u003e::max().\nThe boot image before and after is otherwise identical.\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: I570e3af011c8d3383ce46c81eb6f2fa60c5a4b0f\n"
    },
    {
      "commit": "da40acad8760aacd4bc3b636fbdb5f8107d3e00f",
      "tree": "7663bb38d7535ca66c6775e6de17958ff797ff90",
      "parents": [
        "a83a88996c5a1850f9914ded138c671ef391bf91"
      ],
      "author": {
        "name": "Travis Tynes",
        "email": "travistynes@gmail.com",
        "time": "Mon Jul 22 19:24:35 2019 -0400"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 23 03:04:34 2019 +0000"
      },
      "message": "Typo fix.\n\nTest: art/test/testrunner/testrunner.py -b --host -j64 --optimizing\nChange-Id: I1a7d90ac6784151639f51a3e0e213e86c493389b\n"
    },
    {
      "commit": "a83a88996c5a1850f9914ded138c671ef391bf91",
      "tree": "d17ea91c2345a6356d21518b5eb0562bbfd77a04",
      "parents": [
        "ae95ce3c6e5ac0ca96bd6e8d7a3dc36b6ffadbab"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 18 13:43:15 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 22 19:12:38 2019 +0000"
      },
      "message": "ART: Switch verifier kThrow fatal to default-on\n\nBug: 121245951\nTest: m test-art-host\nTest: m\nChange-Id: I6eeb4f5cfe28c6c386e652db24d42099a413c079\n"
    },
    {
      "commit": "ae95ce3c6e5ac0ca96bd6e8d7a3dc36b6ffadbab",
      "tree": "dfeb4c507ee9d9b9cf99a629b25b7a7599a67958",
      "parents": [
        "f2dcba05ca76e0609687cf1e8013bbe983c73b2e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jul 19 10:04:03 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 22 17:39:02 2019 +0000"
      },
      "message": "ART: Do not handle RETURN monitor-stack issue as throwing\n\nThe IllegalMonitorStateException on mismatch cannot be caught in\nthe method itself, as it logically happens after the RETURN.\n\nBug: 121245951\nBug: 137030260\nTest: m test-art-host\nTest: m\nChange-Id: I981398bb7d235dfcef408b864e281df08eacc835\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": "27351be1c1b7cabf714872b9fa40c7ccbefe9b76",
      "tree": "9dd463a7b490265ff143a98b15578394f1944077",
      "parents": [
        "cffa254b3b7c307b557ba2250fc822db352d3293"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jul 12 13:39:34 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jul 22 13:11:55 2019 +0000"
      },
      "message": "Switch-interpreter: Add flatten attribute to handlers.\n\nEncourage the compiler to inline the methods a bit more.\nThis speeds up the switch interpreter by about 1.5%.\nIt adds 7k of code (arm64).\n\nTest: test.py -b -r --host --64 --interpreter\nChange-Id: I59729d73fc39d486ba988d6685b166fbdd9fe6dd\n"
    },
    {
      "commit": "cffa254b3b7c307b557ba2250fc822db352d3293",
      "tree": "ef49730b09bd0f4ebb26387311ed4501db3e29bf",
      "parents": [
        "9a8634a7bc4f69e6c89933f906ddd0a45dd05aa7"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jul 01 15:31:41 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jul 22 13:11:49 2019 +0000"
      },
      "message": "Add fast path for exception vreg copying.\n\nIt is not necessary to decode CodeInfo in GetVReg\nsince the caller already did it.\n\nTest: ./art/test.py -b --host --64 --interpreter\nChange-Id: I0f8941f43acdc0f2c43b78ef87d3e796e320c959\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": "4345aacf582a5206976d5bed98ab4abd7b9a8c40",
      "tree": "594191df77d214fac994b63761ac25bba257bb40",
      "parents": [
        "6b689ceb63b4fffaf0e617f7d363c841dd29e458"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jul 17 15:51:54 2019 +0100"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 19 17:07:13 2019 +0000"
      },
      "message": "Cleanup some usages of include_dirs\n\nThe include_dirs property causes problems when unbundling as they can\ndirectly reference directories inside the runtime module repositories\nwhich will break the unbundled build as those repositories will not be\npresent. While these usages do not cause problems as they are\nreferences within the runtime module repository they need removing so\nthat the build can enforce no usage of runtime module repository paths\nin the include_dirs property.\n\nThis change:\n* Replaces include_dirs with local_include_dirs where possible.\n* Uses libnativehelper provided header libs, this is possible as they\n  have been updated to build against the NDK.\n* Adds headers for disassembler, libdexfile\n* Makes libart_runtime_headers build against NDK.\n\nTest: m checkbuild\nBug: 134379140\nChange-Id: Iaf065caf4b6a2fcf252f6d5da8fff5be97a242ea\n"
    },
    {
      "commit": "d84794d235df588814533d96f6e459b72f3a19b1",
      "tree": "be63139f9d94678c6c1f01e2012545580b2d1078",
      "parents": [
        "16a08f6d70e64a1c88ea4a6da1b0cfe1bd4196f2"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 18 13:40:03 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 19 15:12:19 2019 +0000"
      },
      "message": "ART: Add option to behave fatally on unmarked kThrow\n\nAdd a runtime option that makes the verifier abort when a runtime\nexception is signaled for an instruction that isn\u0027t marked as such.\n\nBug: 121245951\nTest: m test-art-host\nChange-Id: Id953fa25fbcc12c1e6a7d74b30b28b81df57e427\n"
    },
    {
      "commit": "16a08f6d70e64a1c88ea4a6da1b0cfe1bd4196f2",
      "tree": "ab9ef002d1cffc3a589281047d5e1da232504994",
      "parents": [
        "22940241f945710613c2657f9d6161302bed935d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 18 10:59:08 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 19 15:12:19 2019 +0000"
      },
      "message": "ART: Factor out runtime-exception saved_line fallback\n\nDo the same for AoT and runtime. This is a minimal regression for\nthe compiler, but allows unified handling, including market scans.\n\nBug: 121245951\nTest: m test-art-host\nChange-Id: I82087935b1ad08280ab9da3f41d346b73314986a\n"
    },
    {
      "commit": "0c2c222733f3bb1dc9848f4f127a47046fda6221",
      "tree": "bf46d1a9d1bf38dcbd01947b5ffcc28e659fbdef",
      "parents": [
        "1a225a76ee6bc29833aee048b6cfae20242bdc8b"
      ],
      "author": {
        "name": "Chang Xing",
        "email": "chxing@google.com",
        "time": "Fri Aug 04 14:36:17 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 18 17:13:59 2019 +0000"
      },
      "message": "Revert^2 \"Support clinit for app image during compilation\"\n\nAdd some spot fixes for app image class initialization and re-enable\ntest 660 features.\n\nBug: 70735003\nTest: test-art-host\n\nThis reverts commit abadf024efdc632f663d7fb503cd277b3f65fca2.\n\nChange-Id: Id16fd3ada3eb1bd57ea60c3cdc4a0cf9835950d7\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": "297a0533d2e3f1d49f0b73c5d1e3b09ce0418de2",
      "tree": "2132956989f93226d47bbd4324740c3dbdb927a2",
      "parents": [
        "74f89afefe21aba666700a1bb2651c58b25e6988"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jul 17 16:01:14 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 18 08:33:22 2019 +0000"
      },
      "message": "Stronger alignment check in ArtField::SetOffset().\n\nDo not restrict the DCHECK() to boot image compilation.\nCheck the alignment for all field types.\n\nTest: m test-art-host-gtest\nTest: testruner.py --host --optimizing\nChange-Id: I18439615016ac77b47e672f8c0788d3b082d280a\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": "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"
    }
  ],
  "next": "4146e064849cd566dfb5d9f851f95fb490ec0836"
}
