)]}'
{
  "log": [
    {
      "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": "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": "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": "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": "be53085e183be3edafdf03cac58624c87383e7e9",
      "tree": "7406d4ff01c6d01e82a9a5119e57968bd33fec1a",
      "parents": [
        "5a75277056c8d528b0f68b7dbbb11609d0c91528"
      ],
      "author": {
        "name": "Georgia Kouveli",
        "email": "georgia.kouveli@linaro.org",
        "time": "Thu Jan 17 10:46:41 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Aug 14 08:20:56 2019 +0000"
      },
      "message": "ARM64: Improve BoundsCheck for constant inputs.\n\nThis is a port of 2dd053d to ARM64.\n\nOriginal author: Georgia Kouveli \u003cgeorgia.kouveli@linaro.org\u003e\nCommitted by: David Horstmann \u003cdavid.horstmann@linaro.org\u003e\n\nTest: test-art-target, test-art-host\nTest: 1960-checker-bounds-codegen\nTest: 449-checker-bce\n\nChange-Id: I6564e4d147a0f40665b37c604487159a9d9aeae5\n"
    },
    {
      "commit": "bac080b0beec961671a7753c88780d8bf700fa40",
      "tree": "101965980dec12c1355077dd9699822211b265e4",
      "parents": [
        "44b977d9e2974cdbd8ef11f35919166dada92bda"
      ],
      "author": {
        "name": "Georgia Kouveli",
        "email": "georgia.kouveli@linaro.org",
        "time": "Thu Jan 31 16:12:16 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 13 00:43:36 2019 +0000"
      },
      "message": "Loop vectorizer should not remove instructions that can throw\n\nInstructions that are not used outside of the inner loop were\ninadvertently being removed. Make sure this does not happen.\n\nOriginal author: Georgia Kouveli \u003cgeorgia.kouveli@linaro.org\u003e\nCommitted by: David Horstmann \u003cdavid.horstmann@linaro.org\u003e\n\nTest: 1961-checker-loop-vectorizer\nTest: test-art-target\n\nChange-Id: I3af9e861e75669457e5925dd1d655db784a55287\n"
    },
    {
      "commit": "7cfc8f5b2a7c1af68de5f2e79652cf55954794dc",
      "tree": "bef388a5083ed2b9cf497cd6689489828f2ae13e",
      "parents": [
        "70b93ffca22d665db661a7f15f2f1b59dc60839a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Aug 07 10:41:09 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Aug 07 15:49:47 2019 +0000"
      },
      "message": "Don\u0027t compile OSR methods that have phi equivalents at loop entry.\n\nWe currently don\u0027t handle this in the stack map, where we only encode\none stack slot for a dex register.\n\nBug: 136698025\nTest: 721-osr\nChange-Id: Ib395ed1165387ad5446a463c307cc0a45e365885\n"
    },
    {
      "commit": "6a0b657a1875b4fbb020b806169e2f73fcb2578b",
      "tree": "955bb0e3413e18f2b13b7fee7fa3e6e48a214597",
      "parents": [
        "61f071630083775fe64d177455a056daa7071eca"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Jul 26 20:38:37 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 02 13:31:43 2019 +0000"
      },
      "message": "ART: ARM64: Optimize frame size for SIMD graphs.\n\nFor SIMD graphs allocate 64 bit instead of 128 bit on stack for\neach FP register to be preserved by the callee in the frame entry\nas ABI suggests (currently 64-bit registers are preserved but\nmore space on stack is allocated).\n\nNote: slow paths still require spilling full 128-bit Q-Registers\nfor SIMD graphs due to register allocator restrictions.\n\nTest: test-art-target.\nChange-Id: Ie0b12e4b769158445f3d0f4562c70d4fb0ea7744\n"
    },
    {
      "commit": "e65ade70584728c544c8db5a4e0a729750813380",
      "tree": "bf25c31f699f29a54f0e7dc976ab73925b12aa61",
      "parents": [
        "9df37b9f0fc2046ceabeea0d0638ac286bfc0f37"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Thu Jul 25 21:04:16 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jul 31 08:16:27 2019 +0000"
      },
      "message": "ART: Disable vectorization for debuggable graphs.\n\nSuspendCheck environment is incorrectly initialized with\na stale version of the loop induction variable (a pre-loop one)\nfor vectorized loops. The value can be retrieved from a\ncorresponding stack maps only in case of asynchronous\ndeoptimization in debuggable mode. Thus this workaround forbids\nloop optimizations on debuggable graphs so the bug is never\ntriggered.\n\nTest: test-art-target, test-art-host.\nBug: 138601207\nChange-Id: Ica9f61f471c024146b7823214ef952e1db2a4663\n"
    },
    {
      "commit": "9df37b9f0fc2046ceabeea0d0638ac286bfc0f37",
      "tree": "7f1bf36d2373c6666c24f8a35509f929c7e16944",
      "parents": [
        "92fc2c0241590e475a2a37c9864633b88f97b280"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Tue Jul 23 16:41:54 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jul 31 08:16:27 2019 +0000"
      },
      "message": "ART: ARM64: Fix saved fpu stack offsets for SIMD.\n\nFix the bug when a wrong stack offset was recorded for a FP\nsaved in a SlowPathCode: this happened when graph had SIMD\nloops and some regular FP registers live across a slow path.\n\nTest: test-art-target, test-art-host.\n\nChange-Id: I08b32c9877fcd468dafa6027c156e544d730f1f7\n"
    },
    {
      "commit": "44ca0754b3c6f11303bac876a9175bbfa95609ef",
      "tree": "6f669466e6b0e750a075108cc6f8fe0a67b66658",
      "parents": [
        "f3677471a58c2738a3d9dd05f07f01c18a5e61be"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jul 29 10:18:25 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 30 14:49:54 2019 +0000"
      },
      "message": "Compiler changes for boot image extension.\n\nTest: m test-art-host-gtest\nTest: testrunnner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nTest: run-gtest.sh\nTest: testrunner.py --target --optimizing\nChange-Id: I8e999c96ec908f26d8c529edc9d2a3be49a9379a\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": "1a225a76ee6bc29833aee048b6cfae20242bdc8b",
      "tree": "069bfc01d827fcbf9aa4415c4d63d354648f396c",
      "parents": [
        "323844002e54243e295497e7f829e46a533da621"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jul 05 13:37:42 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 18 13:37:15 2019 +0000"
      },
      "message": "ARM/ARM64: Improve frame entry/exit codegen.\n\nOn ARM64, use STP pre-index for the method and the lowest\nspilled core register for method entry if there\u0027s no gap or\nFP spills in between. On exit, use LDP post-index to restore\nin this case, ignoring the method by loading to XZR. Thus,\nwe save one instruction for both entry end exit for such\nmethods and the performance should be the same or better.\n\nOn ARM, use a single PUSH/POP for method entry and core\nspills if the gap between them is 2 words or less and and we\nhave one or no FP spill, spill args as filler if needed. On\nexit, load the FP spill if any and do a single POP for core\nregisters and return in this situation, clobbering as many\nregisters from r2-r4 as needed; these caller-save registers\nare not used to pass return values. If we cannot do this\nbecause of FP spills but the gap between the method and FP\nspills is 2 words or less, we adjust SP and save the method\nin one PUSH after spilling; there is no similar handling\nfor method exit as the method does not need to be restored.\nThis may improve or degrade performance a bit depending on\nthe particular situation; in the worst case we PUSH/POP\nthree additional registers as a cost for smaller code size.\n\naosp_taimen-userdebug prebuils:\n - before:\n   arm/boot*.oat: 19147484\n   arm64/boot*.oat: 22558344\n   oat/arm/services.odex: 21922256\n - after:\n   arm/boot*.oat: 19105436 (-41KiB, -0.2%)\n   arm64/boot*.oat: 22549624 (-9KiB, -0.04%)\n   oat/arm/services.odex: 21914128 (-8KiB, -0.04%)\n\nTest: aosp_taimen-userdebug boots.\nTest: run-gtests.sh\nTest: testrunner.py --target --optimizing\nBug: 136144107\nChange-Id: Id36c67b4e735418fb18bcd3269b72b25695fbaa2\n"
    },
    {
      "commit": "b45a435e25d69592f27084a615b351760f040875",
      "tree": "6920830856dbe3cceb648b365b0d057ea3ea93ec",
      "parents": [
        "5132e0d1433b0962f9609dbbd68427e1fb5a4b9d"
      ],
      "author": {
        "name": "Shalini Salomi Bodapati",
        "email": "shalini.salomi.bodapati@intel.com",
        "time": "Wed Jul 10 16:09:41 2019 +0530"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jul 17 11:12:22 2019 +0000"
      },
      "message": "Add AVX support for packed mul/div instructions.\n\nThis is a follow up for the below patch:\nhttps://android-review.googlesource.com/c/platform/build/+/830841\n\nTest: ./test.py --host --64, test-art-host-gtest\nChange-Id: Id2aa473035556ee230e66addeb69707df8530e75\nSigned-off-by: Shalini Salomi Bodapati \u003cshalini.salomi.bodapati@intel.com\u003e\n"
    },
    {
      "commit": "2d06e029b1c84916154b5960d2acd1c84706dc04",
      "tree": "31dca979adebd2ed3a058b23a12a3c91ce2874d1",
      "parents": [
        "7cde45800e21c270945b43a8989334ffc7422c32"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jul 08 15:45:19 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 16 08:22:46 2019 +0000"
      },
      "message": "Clean up linker patches in codegens.\n\nIn preparation for introducing boot image extension, make\nsure that we can use both kBootImageLinkTimePcRelative and\nkBootImageRelRo load kinds at the same time.\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: I340f2d7d19e1c20699b37b0304d2e487d497da98\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": "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": "460f05480379d5c75555d06c4938bc990ce6ff83",
      "tree": "ec76b6d19d7766dc1e57295748122c9352c1397e",
      "parents": [
        "dcd7b5188efb9a891ab8511c73e238bcab95432f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 04 14:02:08 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jul 15 09:18:25 2019 +0000"
      },
      "message": "ARM: Remove unnecessary kCoreAlwaysSpillRegister.\n\nThe old reasoning behind it is invalid as T32 supports\n16-bit instructions that can push/pop a single register.\n\nThis reduces the frame size of some methods.\n\nTest: m test-art-host-gtest\nTest: aosp_taimen-userdebug boots.\nTest: run-gtests.sh\nTest: testrunner.py --target --optimizing --32\nChange-Id: I35955e4394ca262c0b5d2713b2735ed1f5c99c4a\n"
    },
    {
      "commit": "d5fd5c3bbb44880e440c6920ce5ed56b5383c788",
      "tree": "2cf8a6354e5509c5a5e0bc2937c24fe7e03a12b1",
      "parents": [
        "1a6f9fcce199f437a5945dfe0163188b923adb28"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 02 14:46:32 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 04 08:17:30 2019 +0000"
      },
      "message": "Make .bss stores atomic release operations.\n\nAnd rely on architecture-dependent behavior for the .bss\nentry loads.\n\nThis fixes theoretical races when one thread updates the\n.bss entry and another uses it immediately thereafter;\npreviously we did not ensure correct memory visibility.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nTest: run-gtests.sh\nTest: testrunner.py --target --optimizing\nChange-Id: Ie7b7969eb355025b9c9205f8c936e702861943f4\n"
    },
    {
      "commit": "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": "0d4567f26701abae84b02389c379843c1dc851a8",
      "tree": "f665e6d5db5af79a4afa3b97cd7cdb7a2069da3f",
      "parents": [
        "cc08c50948d8b2a93b53a327717c7b2a146ac754"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu May 30 22:45:40 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Jun 30 18:04:44 2019 +0000"
      },
      "message": "Stack maps: Refactor constructors.\n\nCreate dedicated static methods instead of passing flags.\nThis creates dedicated methods for the purpose and merges\nconstructor and decoding into single optimized method.\n\nThis speeds up CodeInfo by 10%, and maps startup by 0.1%.\n\nTest: ./art/test.py -b --host\nChange-Id: Ic7d43e22bca0be9fb13bc2c7544ebfdf46798cfe\n"
    },
    {
      "commit": "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": "ee1f1264314303829f6dca288781ed114c65dd93",
      "tree": "ac042304d0cb4b978d1532cad704e8604236a897",
      "parents": [
        "da5e041d8cbd714e791974dbdd876c23141801cb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 26 14:37:17 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 27 14:37:54 2019 +0000"
      },
      "message": "Fix search for implicit null check.\n\nThere are additional instructions that can be emitted at use\nsite for x86/x86-64, such as ArrayLength, and the implicit\nnull check may therefore be emitted later than at the next\ninstruction. Search for the implicit null check until we\nreach an instruction that\u0027s not emitted at use site.\n\nThis also reverts the blacklisting of the test, i.e.\n    commit 5be5260cfec2fc0a8c21ef1a08e7144523a8bfcd.\n\nTest: testrunner.py --host \\\n      --jit-on-first-use --debuggable -t 122-npe\nTest: testrunner.py --host \\\n      --optimizing --jit --jit-on-first-use \\\n      --debuggable --ndebuggable\nBug: 136021898\nChange-Id: I768f55d8c8975dbd0376802c10ca8508df3fe3b0\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": "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": "1e52a07b4de0f000028e55c332aa46495f60879c",
      "tree": "1eb7dfdce749461c5a8997cbde49ed6d0fea2aa0",
      "parents": [
        "e0ce8bf743b7fc5816bc4045716d75378ce3b654"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jun 25 09:12:04 2019 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jun 25 16:25:13 2019 +0000"
      },
      "message": "Correct Indicies -\u003e Indices\n\nThis is a misspelling that is somewhat common in art/.\nFix up all the instances I could find.\n\nTest: ./test.py --host\nChange-Id: I0a5def6e4126cf4e61efb0619bd59eb45ba7f324\n"
    },
    {
      "commit": "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": "6c4ec5c1555aaeddd254750c15554a3c47bfc722",
      "tree": "d0ef0588f0e625bfeb0f9b86305f45b6fd37260a",
      "parents": [
        "349845ae9c820484973959e1f3d366099d2fa0c2"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jun 20 07:23:19 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jun 20 11:16:38 2019 +0000"
      },
      "message": "Revert^2 \"Stack maps: Interleave consecutive varints.\"\n\nReorder the layout of consecutive varints.  Store all the \u0027headers\u0027\nwhich define the varint size first and then store any large values.\n\nThe size is unchanged, but it makes the reading from memory faster.\n\nThis speeds up CodeInfo by 10%, and maps startup by 0.1%.\nChange in size is negligible (the bits mostly just move).\n\nThis reverts commit 1b2a49b7aba39ed6663a69dfdf63d0df069f0d42.\n\nTest: test.py -b --host --64 --optimizing\nChange-Id: Ica7b42180ef2bae637445c0ce44fd3833ec0ecfc\n"
    },
    {
      "commit": "1b2a49b7aba39ed6663a69dfdf63d0df069f0d42",
      "tree": "15a22f6390135758cb9eeaa1ef816f4634cc70f9",
      "parents": [
        "a2b34561a7faca95d0a4f8194ad155798e238e37"
      ],
      "author": {
        "name": "Raylin Hsu",
        "email": "raylinhsu@google.com",
        "time": "Thu Jun 20 01:41:31 2019 +0000"
      },
      "committer": {
        "name": "Raylin Hsu",
        "email": "raylinhsu@google.com",
        "time": "Thu Jun 20 01:43:54 2019 +0000"
      },
      "message": "Revert \"Stack maps: Interleave consecutive varints.\"\n\nThis reverts commit a2b34561a7faca95d0a4f8194ad155798e238e37.\n\nReason for revert: \u003cINSERT REASONING HERE\u003e\n\nChange-Id: Ie5b220e429e101bb5fa2606665a9c8cb64308ad3\n\nBug: 135638469\n"
    },
    {
      "commit": "a2b34561a7faca95d0a4f8194ad155798e238e37",
      "tree": "2da4501b3fdd20e3d227869a4ce44eab03b79434",
      "parents": [
        "34087c1047b79b7ec83eb2f45cf4f70524e0f6f5"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Jun 16 21:53:51 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jun 19 18:24:04 2019 +0000"
      },
      "message": "Stack maps: Interleave consecutive varints.\n\nReorder the layout of consecutive varints.  Store all the \u0027headers\u0027\nwhich define the varint size first and then store any large values.\nThe size is unchanged, but it makes the reading from memory faster.\n\nThis speeds up CodeInfo by 10%, and maps startup by 0.1%.\nChange in size is negligible (the bits mostly just move).\n\nTest: test.py -b --host --64 --optimizing\nChange-Id: I16f702389d4ba94a407b1586cae5f82b8ef60e7b\n"
    },
    {
      "commit": "697c47a7ffd4489c4bc4edc229c8123309526286",
      "tree": "04cf832df533fd529cc598ecff9be8c2763d61b8",
      "parents": [
        "8ac3dc5ec31569630a99caed2a69f64d84a6c0b6"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Jun 16 21:53:07 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jun 18 11:35:05 2019 +0000"
      },
      "message": "Stack maps: Handle special cases using flags.\n\nKeep the BitTable decoder simple (1+NumColumns varints).\nMove special case handling up to CodeInfo (empty/dedup).\n\nThis speeds up CodeInfo by 5%, and maps startup by 0.05%.\nChange in size is negligible (the bits mostly just move).\n\nTest: test.py -b --host --64 --optimizing\nChange-Id: Ib6abe52f04384de9ffd7cfba04a3124b62f713ff\n"
    },
    {
      "commit": "024d69fb9936ca5a0031d35c9f248853cbc25d3f",
      "tree": "c1eeddf91ea15eda5d139d4592ac7f0df80e9be0",
      "parents": [
        "43ae4acf219fe25a56e2055ebcebc4d08020a25d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 13 10:52:32 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jun 17 09:30:53 2019 +0000"
      },
      "message": "Use cleared JNI weak sentinel from boot image.\n\nWe were already adding the sentinel to the boot image,\nso we may as well reuse the boot image copy.\n\nAlso move pre-allocated objects from class roots to the\nboot image live objects.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nChange-Id: I635dcdd146ca2c6b55d187e9a545a9990b0b35ca\n"
    },
    {
      "commit": "3fae12960c2d411dff450fce95c096af0e8d74de",
      "tree": "5cc26dc33db8f391b3c7ab1fe24546b17f33d389",
      "parents": [
        "b7c640d364d32b79cb52d04750b063667a9a0c86"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 07 11:26:25 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jun 11 08:58:34 2019 +0000"
      },
      "message": "Move IntrusiveForwardList\u003c\u003e to libartbase.\n\nIt\u0027s generally useful, not just for the compiler.\n\nTest: m test-art-host-gtest\nChange-Id: I3ca742d93a0bca961d1b8b8209356747d2de08a0\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": "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": "81d15be76923ec23b86e72bbc2d3a2a6542a325e",
      "tree": "57bf31c2951cbeebddd72c94a415711423c88f88",
      "parents": [
        "5fd673488c25991ecc85d26c2dc54415773eb407"
      ],
      "author": {
        "name": "Shalini Salomi Bodapati",
        "email": "shalini.salomi.bodapati@intel.com",
        "time": "Thu May 30 11:00:42 2019 +0530"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jun 05 16:06:49 2019 +0000"
      },
      "message": "Add AVX support for packed add/sub instructions on x86\n\nTest: ./test.py --host, test-art-host-gtest\n\nChange-Id: I48d05e6f6befd54657d962119a543b27a8a51d71\nSigned-off-by: Shalini Salomi Bodapati \u003cshalini.salomi.bodapati@intel.com\u003e\n"
    },
    {
      "commit": "eb104c8f28a445b42946f142d6023f6b18908005",
      "tree": "71a636395ea4f0ef3069c9773d8e582779b09d28",
      "parents": [
        "dddb6dea9455950e0d79f7d697a00190e7387e66"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jun 03 17:58:34 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jun 04 08:44:21 2019 +0000"
      },
      "message": "Fix wrong assumption on boolean type.\n\nWe should not infer that the instruction:\nphi(value1, equal(value1, 1))\n\nIs of type boolean. The `equal` could have been a simplification\nover a select.\n\nPartial revert of:\nhttps://android-review.googlesource.com/c/platform/art/+/296777\n\nBug: 123166624\nBug: 134396269\nTest: 698-selects\nChange-Id: I8c97b17309d6e5b0eeed321d02eb83c96cc07768\n"
    },
    {
      "commit": "78da5e255d1281412e9f7e4f0c9b4e90ba7f02b5",
      "tree": "02cb6ed74963114aed467f0793c2f24cf9ef4fdb",
      "parents": [
        "49af704f0f824202e73a0928d76fca27b71cc598"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu May 30 14:14:34 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 31 08:42:02 2019 +0000"
      },
      "message": "Eliminate dead LoadClass when pruning ClinitCheck.\n\nPrebuilt sizes for aosp_taimen-userdebug:\n - before:\n   arm/boot*.oat: 19192012\n   arm64/boot*.oat: 22603096\n - after:\n   arm/boot*.oat: 19150692 (-40KiB, -0.22%)\n   arm64/boot*.oat: 22565976 (-36KiB, -0.16%)\n\nTest: Add checker statements to 478-checker-clinit-check-pruning\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 35772576\nChange-Id: I2485e832e77b68357f3bc0268afa8bd6a87083d5\n"
    },
    {
      "commit": "e42a4b95eed312e6f7019645f4c66b2d77254433",
      "tree": "dd150dd4651180c5fbba3a4fd90f8ca8a3f14e9d",
      "parents": [
        "67ba872df798271d2960be27c7f1e813259feabc"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun May 26 00:10:25 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun May 26 23:47:47 2019 +0000"
      },
      "message": "Optimize stack maps: add fast path for no inline info.\n\nConsumers of CodeInfo can skip significant chunks of work\nif they can quickly determine that method has no inlining.\n\nStore this fact as a flag bit at the start of code info.\nThis changes binary format and adds \u003c0.1% to oat size.\n\nI added the extra flag field as the simplest solution for now,\nalthough I would like to use it for more things in the future.\n(e.g. store the special cases of empty/deduped tables in it)\n\nThis improves app startup by 0.4% (maps,speed).\nPMD on golem seems to gets around 15% faster.\n\nBug: 133257467\nTest: ./art/test.py -b --host --64\nChange-Id: Ia498a31bafc74b51cc95b8c70cf1da4b0e3d894e\n"
    },
    {
      "commit": "67ba872df798271d2960be27c7f1e813259feabc",
      "tree": "93bb6a90a1e1810799faa0ab1e0d672ce041c0ed",
      "parents": [
        "436f6c1e53b735ace36fbfe48c337ece07d76e62"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu May 23 15:32:18 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sat May 25 10:30:57 2019 +0000"
      },
      "message": "Optimize stack map decoding.\n\nWe usually read several consecutive varints.\nAdd helper method optimized for that use case\n(ideally reading 8 varints from single load).\n\nThis improves app startup by 0.4% (maps,speed).\nPMD on golem seems to get around 5% faster.\nCodeInfo::Decode on its own is 25% faster.\n\nBug: 133257467\nTest: ./art/test.py -b --host --64\nChange-Id: Iaf7e8469ed6397b1d1d4102e409b5731f7229557\n"
    },
    {
      "commit": "f667508a2103cfafd1582df6aeea144490f1d11d",
      "tree": "7394cec1f1463a86deb75dcecca9f3eacd8ecb03",
      "parents": [
        "8fa839cfe6f72adabdf79f938c57300e589e0803"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 17 12:05:28 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu May 23 11:47:28 2019 +0000"
      },
      "message": "ARM/ARM64: Use trampolines for slow-path entrypoint calls.\n\nThis reduces the size of the generated code. We do this only\nfor AOT compilation where we get the most benefit.\n\nSizes of aosp_taimen-userdebug prebuilts:\n - before:\n   arm/boot*.oat: 19624804\n   arm64/boot*.oat: 23265752\n   oat/arm64/services.odex: 22417968\n - after:\n   arm/boot*.oat: 19460500 (-160KiB)\n   arm64/boot*.oat: 22957928 (-301KiB)\n   oat/arm64/services.odex: 21957864 (-449KiB)\n\nTest: m test-art-host-gtest\nTest: aosp_taimen-userdebug boots.\nTest: run-gtests.sh\nTest: testrunner.py --target --optimizing\nBug: 12607709\nChange-Id: Ie9dbd1ba256173e4e439e8bbb8832a791965cbe6\n"
    },
    {
      "commit": "8fa839cfe6f72adabdf79f938c57300e589e0803",
      "tree": "b940832441ef1b0c724c1383228225845e5d72d1",
      "parents": [
        "3cddf4538a8df429a6084f7176c07d55e1e0ec67"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu May 16 12:50:47 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu May 23 11:47:28 2019 +0000"
      },
      "message": "Revert^2 \"Improve ArraySet codegen.\"\n\nThis reverts commit 0dda8c84938d6bb4ce5a1707e5e109ea187fc33d.\n\nThe original change had two issues that have been fixed.\nFirst, for heap poisoning, the null branch skipped over the\nreference poisoning instructions which copy and poison the\nvalue, thus writing whatever was left in the register.\nSecond, the change erroneously assumed that the slow path\nperformed only the assignability check and bound the slow\npath exit label before the actual array store, unnecessarily\nre-doing the store.\n\nChange-Id: I9f380efa12aa807b4f566a932dbc9dae824fb25a\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nTest: testrunner.py --target --optimizing\nTest: Repeat the above with\n      ART_USE_READ_BARRIER\u003dfalse ART_HEAP_POISONING\u003dtrue\nBug: 32489401\n"
    },
    {
      "commit": "957c538a4d712066e6d7a309ee07f013c8d2e0cd",
      "tree": "82cd8631e707df89fcaf4acaabf9a258f474b702",
      "parents": [
        "552a13415573da19eafa46e1ac00fb0eb68f2b23"
      ],
      "author": {
        "name": "Evgeny Astigeevich",
        "email": "evgeny.astigeevich@linaro.org",
        "time": "Mon Mar 18 12:37:58 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu May 16 14:45:09 2019 +0000"
      },
      "message": "ART: Refactor SchedulingGraph for consistency and clarity\n\nThe CL moves functionality from SchedulingGraph to other classes,\ndeletes unused code and moves code used for testing to the tests source\nfile:\n1. SchedulingGraph::AddDependency: move checks whether a dependency has\nbeen added to SchedulingNode::Add*Predecessor as it is a SchedulingNode\nresponsibility to keep a unique set of predecessors.\n2. Create SideEffectDependencyAnalysis class. Code doing side effect dependency\nanalysis is moved from SchedulingGraph into the class.\n3. Remove SchedulingGraph::HasImmediate*Dependency methods as there are\nSchedulingNode::Has*Dependency methods for such kind of checks.\n4. SchedulingGraph::HasImmediate*Dependency(HInstruction,HInstruction) methods\nare only used by tests. Their code is moved to a new class TestSchedulingGraph in\nthe tests source file.\n\nTest: test.py --host --optimizing --jit --gtest\nTest: test.py --target --optimizing --jit\nTest: run-gtests.sh\n\nChange-Id: Id16eb6e9f8b9706e616dff0ccc1d0353ed968367\n"
    },
    {
      "commit": "552a13415573da19eafa46e1ac00fb0eb68f2b23",
      "tree": "8cae5f3602d8f8e65cd3cbc349af17d785128605",
      "parents": [
        "0dda8c84938d6bb4ce5a1707e5e109ea187fc33d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 31 10:56:47 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu May 16 14:44:09 2019 +0000"
      },
      "message": "ART: Optimize StringBuilder append pattern.\n\nRecognize appending with StringBuilder and replace the\nentire expression with a runtime call that perfoms the\nappend in a more efficient manner.\n\nFor now, require the entire pattern to be in a single block\nand be very strict about the StringBuilder environment uses.\nAlso, do not accept StringBuilder/char[]/Object/float/double\narguments as they throw non-OOME exceptions and/or require a\ncall from the entrypoint back to a helper function in Java;\nthese shall be implemented later.\n\nBoot image size for aosp_taimen-userdebug:\n - before:\n   arm/boot*.oat: 19653872\n   arm64/boot*.oat: 23292784\n   oat/arm64/services.odex: 22408664\n - after:\n   arm/boot*.oat: 19432184 (-216KiB)\n   arm64/boot*.oat: 22992488 (-293KiB)\n   oat/arm64/services.odex: 22376776 (-31KiB)\nNote that const-string in compiled boot image methods cannot\nthrow, but for apps it can and therefore its environment can\nprevent the optimization for apps. We could implement either\na simple carve-out for const-string or generic environment\npruning to allow this pattern to be applied more often.\n\nResults for the new StringBuilderAppendBenchmark on taimen:\n  timeAppendLongStrings: ~700ns -\u003e ~200ns\n  timeAppendStringAndInt: ~220ns -\u003e ~140ns\n  timeAppendStrings: ~200ns -\u003e 130ns\n\nBug: 19575890\nTest: 697-checker-string-append\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\nTest: vogar --benchmark art/benchmark/stringbuilder-append/src/StringBuilderAppendBenchmark.java\nChange-Id: I51789bf299f5219f68ada4c077b6a1d3fe083964\n"
    },
    {
      "commit": "0dda8c84938d6bb4ce5a1707e5e109ea187fc33d",
      "tree": "3d0b4f35ef4d00aa18eba0e417655d43bc44bf5a",
      "parents": [
        "0ece86491008837a9814f7a2e0d7961c74ef4195"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu May 16 12:47:40 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu May 16 12:47:40 2019 +0000"
      },
      "message": "Revert \"Improve ArraySet codegen.\"\n\nThis reverts commit 0ece86491008837a9814f7a2e0d7961c74ef4195.\n\nReason for revert: Breaks heap poisoning tests.\n\nBug: 32489401\nChange-Id: Ied4150829eea848d0f967866d87c6aa7dafd39a1\n"
    },
    {
      "commit": "0ece86491008837a9814f7a2e0d7961c74ef4195",
      "tree": "590aa02d76255d9e9c4c1329b4a7278c4c8ff018",
      "parents": [
        "3a8ab36cdfc9535bf79057cb9efe787ec8a491d2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon May 13 11:49:17 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu May 16 08:23:57 2019 +0000"
      },
      "message": "Improve ArraySet codegen.\n\nSimplify the reference case to emit fewer instructions and\ntake at most one branch in the main path.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: aosp_taimen-userdebug boots.\nTest: testrunner.py --target --optimizing\nBug: 32489401\nChange-Id: I9d76b7795ec01e6245ed3184cd8d384389e5070d\n"
    },
    {
      "commit": "d456117108c1efad790808698787868813b428e2",
      "tree": "d5785c40ad689dbd158fc52eed8b32c9ced967d5",
      "parents": [
        "ba2531826613a21736dd170d09877d3eb7990c5d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 30 17:48:25 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon May 13 15:36:23 2019 +0000"
      },
      "message": "ART: Mark StringBuilder.append()s as intrinsics.\n\nWe do not actually emit intrinsic implementations for these\nmethods but we use this designation to simplify their use\nknowing that they \"return this\". This also prepares for\nrecognizing and optimizing the StringBuilder append pattern.\n\nNote that intrinsics are never inlined but these methods are\ndefined in core-oj and therefore the rest of the boot image\nand prebuilts are not allowed to inline them anyway.\n\nBoot image sizes for aosp_taimen-userdebug:\n - before:\n   arm/boot*.oat: 19756400\n   arm64/boot*.oat: 23415656\n - after:\n   arm/boot*.oat: 19653872 (-100KiB)\n   arm64/boot*.oat: 23292784 (-120KiB)\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: 19575890\nChange-Id: I2f3bac17830ac1c51287b090a96facddd3d09f5c\n"
    },
    {
      "commit": "256c94b568f35f8f23feaaf9ea0d64ed1edab1d4",
      "tree": "1f03dfa6f05ee6d4fc2c0a534ff8b5d5031c80cc",
      "parents": [
        "7711c35fa603b86d520991c4e97ca297add81881"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Apr 29 10:55:09 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Apr 30 09:49:17 2019 +0000"
      },
      "message": "Update induction ranges in superblock cloner.\n\nBecause loop unrolling is part of a general loop optimization pass,\nit needs to update induction ranges as it will invalidate its\ninstruction cache with new instructions.\n\nBug: 131174583\nTest: 696-loop\nChange-Id: Id3628efe316b58f69abbd9ebd43e891a8e42529f\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": "2cc9d343550d22e08536e0077893e6d86647c91a",
      "tree": "d816a9d053620bf756dbc97cb3615a264568ae33",
      "parents": [
        "c45b5897e65d8713f008732277db2544b9af1e67"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 26 14:21:14 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 26 15:11:41 2019 +0000"
      },
      "message": "Fix wrong assumption in RemoveInstructionsAsUsersFromDeadBlocks.\n\nIt can be called in a situation where dead blocks can have phis:\nthe DCE pass would re-build the dominator tree and RemoveInstructionsAsUsersFromDeadBlocks\nused to assume there cannot be phis.\n\nTest: 695-simplify-throws\nBug: 131174581\nChange-Id: I853956482487a8c7c8fb99499aef318d099754e4\n"
    },
    {
      "commit": "20d1c942c0e841920eac92f68c6d3e7f2a2135b4",
      "tree": "931aed7f4639a4b0a6ab8e3cd7765295a1883be3",
      "parents": [
        "d32f8aadd37aab5b89ffccc86f7d8d07447a213a"
      ],
      "author": {
        "name": "jaishank",
        "email": "jaishankar.rajendran@intel.com",
        "time": "Fri Mar 08 15:08:17 2019 +0530"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Apr 25 09:05:09 2019 +0000"
      },
      "message": "Patch supports Intel(R) AVX/AVX2 MOV Instruction\n\nThis patch enhances the existing ART-Compiler\nto generate Intel(R) AVX/AVX2 MOV Instructions for\ndoing SIMD Operations on Intel(R) Architecture CPUs.\nIt also provides the framework for AVX/AVX2 Instruction\nencoding and dissassembly\n\nBUG: 127881558\nTest: run-test gtest\nChange-Id: I9386aecc134941a2d907f9ec6b2d5522ec5ff8b5\n"
    },
    {
      "commit": "89cbeb65ed1fe8bca331efc5d3c52d1db62aeffc",
      "tree": "ce93ff38a9bad57cf3a020f42774b97714c2e5af",
      "parents": [
        "93aa8b035fe17bee04d3271a3595e3c098d63937"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 09 10:51:05 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 09 10:51:05 2019 +0100"
      },
      "message": "Fix AssertNonMovableStringClass().\n\nUse standard thread state transition.\n\nTest: testrunner.py --host --jit --gcstress -t 157\nBug: 126246773\nChange-Id: I496ede614508f9c84692c4fa549153025c6ef9b4\n"
    },
    {
      "commit": "91038d67ce011456176411e8f74ed5d2e2440ed3",
      "tree": "0658f8c69b6e6d63b8a2ea66debaf2da79398df0",
      "parents": [
        "35a3f6a09931ee631a0377ee3ca98a7fb1f4f61d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Apr 02 17:34:33 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Apr 02 21:17:06 2019 +0000"
      },
      "message": "Don\u0027t abort for min/max/abs intrinsics, baseline use them.\n\nTest: test.py\nChange-Id: I7ba09ab8ca3848e03f34bc9fee708a1105d17dc4\n"
    },
    {
      "commit": "9b195cc7fc2bc81feb29fd8431a9f67204db1054",
      "tree": "a64255fe384de8ea6da67862aaf505cc495b92cf",
      "parents": [
        "58412b1f6c6c1fb1f212dd4e2cb442541fc91df5"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Apr 02 08:29:00 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Apr 02 11:38:05 2019 +0000"
      },
      "message": "Fix arm32 code generator when used with baseline compilation.\n\nA shift with zero can happen in baseline as we don\u0027t run\ninstruction simplification.\n\nAlso move baseline testing to AOT to catch such regressions.\n\nTest: test.py --baseline\nChange-Id: I9fa7af8e058135688ec44d907da7a6da27a6311e\n"
    },
    {
      "commit": "39402548017c99f9b33afaa851f412371013e911",
      "tree": "80c4d53cb7ae12ab9f4800cb358e53d5109593da",
      "parents": [
        "2fde9bdc252e209d722f83410f2ced42ab73e8a4"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Sun Mar 24 02:47:16 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 29 18:18:00 2019 +0000"
      },
      "message": "Modernise code to use override specifier\n\nGenerated by clang-tidy, with IgnoreDestructors option enabled.\n\nTest: m checkbuild\nBug: 116509795\nChange-Id: I5dafa10c2cf605165581b8cf7dd2633ed101ed65\n"
    },
    {
      "commit": "fe1d952a9912bf597174dc636d0f87db06a8d925",
      "tree": "db7f3fd5d0b5be8de106426f0bd9316b18594e3e",
      "parents": [
        "34857b5fd3be5ee8cf1935bd1fbaad37a8e42768"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Mar 25 17:19:11 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Mar 27 15:10:09 2019 +0000"
      },
      "message": "Use generic name for JNI trampolines.\n\nJNI trampolines tend to be deduplicated which seems to lead to confusion.\n\nBug: 32949969\nTest: test.py -b --host -r -t 137-cfi\nChange-Id: Ic39998448a05f98fc1e068c4f384f35085121911\n"
    },
    {
      "commit": "423bebb17f15c3867a52315f0ae421f08f14544f",
      "tree": "97bdf50c7144ae21e6abfe8bdc26858a6a10f94d",
      "parents": [
        "93d99f3665cbd890509f4c707e1a62c5f26d320e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 26 15:17:21 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 27 09:45:20 2019 +0000"
      },
      "message": "ObjPtr\u003c\u003e-ify mirror::ObjectArray.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 31113334\nChange-Id: I611b3e49d3feed306f6cd35d2b662a1e727e24c6\n"
    },
    {
      "commit": "e7e195db8eb04a58c4c467bbe357841fdf621347",
      "tree": "bbefb03122251b826c644e196519422449157f6a",
      "parents": [
        "557feceeb438946e4a005471bc80935e5c0af195"
      ],
      "author": {
        "name": "Greg Kaiser",
        "email": "gkaiser@google.com",
        "time": "Tue Mar 26 08:13:00 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 26 17:35:30 2019 +0000"
      },
      "message": "optimizing_compiler: Avoid extra std::string copy\n\nThe function OptimizationPassByName() takes a const std::string\nreference, so it\u0027s inefficient to pass it the result of\nstd::string::c_str().\n\nTest: TreeHugger\nChange-Id: I84fc717285b0278264cba3c9504290876025a01d\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": "2faab0064bccdf06a454ba5fc37f2cfeceab78bc",
      "tree": "bc51a211068019d77e7739164adf5be5c6333b7b",
      "parents": [
        "5f1465ff689eccbb1b6d15160d1a3700793956da"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 12 16:35:48 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Mar 20 15:20:54 2019 +0000"
      },
      "message": "Create libelffile library for ELF file manipulation.\n\nMove some of our tooling to library to make it reusable.\n\nRemove MIPS support from the ELF builder.  This is slightly\neasier than making it independent of the runtime.\n\nBug: 110133331\nTest: test.py -b --host\nChange-Id: I93343808d0e27ee8e1117e713a2503e8179fc245\n"
    },
    {
      "commit": "403aafa9f286e13ee2a64748514d33af39b55ab0",
      "tree": "fe9e5a5eed0081c2ac03dec0d616ed32d162b99c",
      "parents": [
        "8809c9cd8d7f477e0a74f68537c864e3b7a35db3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 06 18:04:14 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 12 14:11:25 2019 +0000"
      },
      "message": "Fix non-deterministic compilation for const-string...\n\n... in inlined methods that are not in the boot profile.\nIf such string is not in the boot image for other reasons,\ndo not resolve the string and use the kBssEntry load kind.\n\nBoot image sizes for aosp_taimen-userdebug:\n - before:\n   arm/boot*.art: 12349440\n   arm/boot*.oat: 19862024\n   arm64/boot*.art: 16609280\n   arm64/boot*.oat: 23568592\n - after:\n   arm/boot*.art: 12324864 (-24KiB)\n   arm/boot*.oat: 19936612 (+73KiB)\n   arm64/boot*.art: 16580608 (-28KiB)\n   arm64/boot*.oat: 23642120 (+72KiB)\n\nTest: aosp_taimen-userdebug boots.\nTest: m test-art-host-gtest\nBug: 26687569\nChange-Id: I3e0b72cd5e8c67904517856208f25a6c379ab601\n"
    },
    {
      "commit": "85dd9e35193a886d76734387d6764045bb4bb2d5",
      "tree": "6b773daa3c42aa5291d0421f2827c036fed209c7",
      "parents": [
        "20af92fd0b19632056025bfcfd380d42797b4e82"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Mon Jan 14 16:39:51 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 07 16:48:29 2019 +0000"
      },
      "message": "Revert^2 \"RFC: ART: ARM64: Support SDOT/UDOT instructions.\"\n\nThis reverts commit f65c7be257b9ec7453b9dc7ffd73e8901403e199.\n\nPixel 3 BoardConfig kryo385 issue is fixed now and no longer blocks\nthis patch.\n\nNOTE: The feature is TURNED OFF by default.\n\nTest: 684-checker-simd-dotprod.\nTest: test-art-target, test-art-host.\nChange-Id: Ib0fb8603b32004984ce8114447d56514d798111d\n"
    },
    {
      "commit": "bf5f0f3f1eea2e712e7269ff1e1f9b1bcc4cbaee",
      "tree": "030ef55b56ede3dbf42b6b5f19c59bfc0583636f",
      "parents": [
        "7e057ec0e023910f6bc42bc552a8463343cf346f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 05 15:41:50 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 06 14:21:51 2019 +0000"
      },
      "message": "Revert \"Revert^2 \"Add code size to CodeInfo\"\"\n\nThis reverts commit e1412dacbf1d2a809bd1fca658cc8cb8f61f8ee6.\n\nBug: 123510633\nBug: 127305289\n\nReason for revert: b/127305289\n\nChange-Id: I54557b05a44777f1fa2c15bde4fa648980f42eed\n"
    },
    {
      "commit": "b1b2ca97651b1993e0a00a4543209419afbc6e64",
      "tree": "64e58ebe9d4c77f1adf401bb4d9066c720a0c29c",
      "parents": [
        "37678283d1be77007e61bb0e811008aa89a27d14"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 05 09:23:37 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 05 11:36:19 2019 +0000"
      },
      "message": "Revert \"Don\u0027t pack code size in CodeInfo.\"\n\nThis reverts commit e35ac04a1a9a22b1c4386b27f3a30cd840aa17b1.\n\nBug: 123510633\nBug: 127305289\n\nReason for revert: b/127305289\n\nChange-Id: I18c2d9291411b31641333c14c47da8c4fdf317f7\n"
    },
    {
      "commit": "e35ac04a1a9a22b1c4386b27f3a30cd840aa17b1",
      "tree": "951fc00e6ef2a8576c9f6c0a6d7601cd93283199",
      "parents": [
        "8834699a05deb680a36dd3075afb85aee9208f37"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Feb 25 18:11:53 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Feb 27 23:20:07 2019 +0000"
      },
      "message": "Don\u0027t pack code size in CodeInfo.\n\nThe unpacking is tricky for host tooling as we need to propagate ISA.\n\nThis adds 0.05% to oat file size.\n\nBug: 123510633\nChange-Id: I5618db5e5dbe83d8a2bb89aef61cb0b10e336f40\n"
    },
    {
      "commit": "141b63c07e563ec0e40960b81e6ceb8c2e4b9749",
      "tree": "b9eca727af9bbe9522bcff197eb088ae6e228b0f",
      "parents": [
        "de1b2a2113b9e2c44b90c441177060142c7abbfd"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 27 14:28:46 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 27 14:30:03 2019 +0000"
      },
      "message": "Don\u0027t do CHA inlining in zygote.\n\nOtherwise, we deopt at app startup when using the apex.art image.\nNoticed while investigating systraces.\n\nTest: start dialer, look at systrace\nBug: 119800099\nChange-Id: I72d7881646da35f5b17f77cd453525cedc3d7356\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": "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": "038924b75f06b91c2a7e944196ca11f118ce182f",
      "tree": "fb3073918686ec6f54dce65d2697c0e46f05a272",
      "parents": [
        "03c6b174a4e412e9bb62935c4ee15b5445e517f2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 19 15:09:35 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 20 10:40:05 2019 +0000"
      },
      "message": "ART: Reduce dependencies on CompilerDriver.\n\nPreparation for moving CompilerDriver and other stuff\nfrom libart-compiler.so to dex2oat.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: Ic221ebca4b8c79dd1549316921ace655f2e3f0fe\n"
    },
    {
      "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": "a5359f7caabf418dc8b4978e789d908174324c46",
      "tree": "4b2557ac6aa243f47e7a031bb5709fcfbe0052d7",
      "parents": [
        "ae1d2c8a1b6cc36a079c429661b3c6195de48c92"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 18 16:29:43 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 18 16:31:06 2019 +0000"
      },
      "message": "ART: Delete obsolete comments in GVN.\n\nGVN is now using ScopedArenaAllocator and explicitly\nfilling allocated memory with zeros as needed.\n\nTest: Rely on TreeHugger.\nChange-Id: Ic2059014ee4ab9157a8cce64ba0206f9b276481e\n"
    },
    {
      "commit": "e39765cd311f31653137a2efede6c0eb7903e434",
      "tree": "83d299c1edbcfa10ee812437c21195afa4c3898c",
      "parents": [
        "18d70c19fd2122db62f867bcb73a53ed3331197e",
        "300218472729b91591bd39754684fb16ea56c4de"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Feb 15 15:08:00 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 15 15:08:00 2019 +0000"
      },
      "message": "Merge \"Generate CFI for stackless methods.\""
    },
    {
      "commit": "300218472729b91591bd39754684fb16ea56c4de",
      "tree": "e7f3b67ac3b39cea40d6be2d0ad5956ba81ad23e",
      "parents": [
        "d8c4a38b3fc37efdfe691c317b37e9808022f7a3"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Feb 13 14:19:36 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Feb 14 11:50:54 2019 +0000"
      },
      "message": "Generate CFI for stackless methods.\n\nGenerate at least a single no-op.\nOtherwise it seems like CFI is missing.\n\nBug: 122379755\nTest: ART_HEAP_POISONING\u003dtrue ART_USE_READ_BARRIER\u003dtrue ./art/test.py -r -t 137 --jit --32 --target\nChange-Id: Id9206cb49ce976a03e1d50e6801abcefff537f60\n"
    },
    {
      "commit": "e1412dacbf1d2a809bd1fca658cc8cb8f61f8ee6",
      "tree": "bb3f56ecefe08b66f7a330a02caef0b089a0c2af",
      "parents": [
        "8f20a23a35fa6fbe4dcb4ff70268a24dc7fb2a24"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Feb 13 17:27:17 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Feb 14 09:43:00 2019 +0000"
      },
      "message": "Revert^2 \"Add code size to CodeInfo\"\n\nThis temporarily adds 0.25% to oat file size.\nThe space will be reclaimed back in follow-up CL.\n\nThis reverts commit 8f20a23a35fa6fbe4dcb4ff70268a24dc7fb2a24.\n\nReason for revert: Reland as-is after CL/903819\n\nBug: 123510633\nTest: DCHECK compare the two stored code sizes.\nChange-Id: Ia3ab31c208948f4996188764fcdcba13d9977d19\n"
    },
    {
      "commit": "8f20a23a35fa6fbe4dcb4ff70268a24dc7fb2a24",
      "tree": "84dc682b40f38d0377639befe6f3d43e5655a43c",
      "parents": [
        "68efa7b1128486e08ae60cd27181645b27bbd2e4"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 12 19:42:54 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 12 19:42:54 2019 +0000"
      },
      "message": "Revert \"Add code size to CodeInfo\"\n\nThis reverts commit 68efa7b1128486e08ae60cd27181645b27bbd2e4.\n\nReason for revert: Breaks tests\n\nChange-Id: I28fb143990f58e0d5f0b106bea9d9a159f19297e\n"
    },
    {
      "commit": "68efa7b1128486e08ae60cd27181645b27bbd2e4",
      "tree": "bb3f56ecefe08b66f7a330a02caef0b089a0c2af",
      "parents": [
        "794350fd0e21aa9e259b6c45394494871e7fdb13"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jan 28 18:59:23 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Feb 11 13:23:53 2019 +0000"
      },
      "message": "Add code size to CodeInfo\n\nThis temporarily adds 0.25% to oat file size.\nThe space will be reclaimed back in follow-up CL.\n\nBug: 123510633\nTest: DCHECK compare the two stored code sizes.\nChange-Id: I15340824ca637fd075a4cef87771b06cb96bb9f4\n"
    },
    {
      "commit": "44a6f978d7989f368155480a2d75e52a7d663879",
      "tree": "cc7a55280ce9579c574bbbd6c5e30bdaab0f273b",
      "parents": [
        "a9c9e85ea1c77d9badf27aebd63d617ccdf70dc3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 08 18:07:49 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 08 18:08:31 2019 +0000"
      },
      "message": "ART: Remove obsolete comment.\n\nHInstruction::GetKind() no longer involves virtual dispatch.\n\nTest: Rely on TreeHugger\nChange-Id: Id0cc04ab5e4b30c69fb32367558405f9c11b30ff\n"
    },
    {
      "commit": "2860c19944b64c581a8af63339805409c0584d2f",
      "tree": "838afe42daa933ffc03b96873c67673e14b4da9f",
      "parents": [
        "7909e1e4cc741b38b25328e2f9077beb7ecd018b",
        "1d775d2ecfe847395e67310d588626962744c2d0"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Feb 05 14:19:51 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 05 14:19:51 2019 +0000"
      },
      "message": "Merge \"Check that the String class is not movable in String.equals intrinsics.\""
    },
    {
      "commit": "53a41ac9305f3c435cbb975d773bbdb5490d8321",
      "tree": "1b9645dee56837dc9566d2243f77e64d3d3824a3",
      "parents": [
        "cf2320d65b363fd082e5e61e15c46065ae6c95c5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jan 31 10:31:09 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jan 31 11:53:08 2019 +0000"
      },
      "message": "ART: Fix off-by-one error in BCE.\n\nBug: 123284765\nTest: Additional test in 622-checker-bce-regressions\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: Ic231434aacc9dba0ccd664a3f4b7b5d8c665ae2a\n"
    },
    {
      "commit": "206348cea8b086a484b8bde37b2e281e5f7db638",
      "tree": "1e83b6484dbd9218ace7c94d266dc90ed7e66505",
      "parents": [
        "58a268aa3569d8ad4f0e831de578620e1079ed59"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Dec 05 11:11:33 2018 -0800"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Mon Jan 28 09:37:57 2019 -0800"
      },
      "message": "Selectively allow dead reference elimination\n\nAllow dead reference elimination in methods not containing\n@ReachabilitySensitive accesses or calls, when the class is marked\n@DeadReferenceSafe.\n\nAdd 1339-dead-reference-safe to aggressively check that everything\nworks as intended.\n\nBug: 111453875\n\nTest: art/test/testrunner/testrunner.py --host --64 -t 1339-dead-reference-safe\n\nDetect ReachabilitySensitive annotations.\n\nChange-Id: I70c20431fdbcfcfd2692b2255d12ad59e37cb669\n"
    },
    {
      "commit": "43ae7791007d6e7bdc9dbf8cb7c9a3f3aec40efd",
      "tree": "a283f976c1d0a8f5596787313135cb341afd2b97",
      "parents": [
        "a966376ac9ea3bf3b52ae52d47985d4967a99c3d"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jan 09 17:34:01 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jan 22 14:01:41 2019 +0000"
      },
      "message": "Add timing logger for mini-debug-info generation.\n\nTest: Check ANR report.\nChange-Id: I7e1b67bf8e1b950d5f67937fd29645b570d0465a\n"
    },
    {
      "commit": "ebc3b25e187cb39a12dcb05ae1c44de23aa5696e",
      "tree": "589f80a876f899a14608ee657b10fd4b821f463f",
      "parents": [
        "458a948d4fc954d767103b5a95803a0a60be9f1c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 09 10:47:02 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 09 12:40:22 2019 +0000"
      },
      "message": "Fix compiler bug when typing exceptions.\n\nHandlers of different exception types can start at the same\nbytecode address, so we should update the type in the compiler\nto avoid wrongly typing the exception.\n\nbug: 119944057\nTest: 689-multi-catch\nChange-Id: I66e43890634965ee7790436c8e5a718564c6040f\n"
    },
    {
      "commit": "e36f5f6a2d6688734ed70118602010926f044891",
      "tree": "5de57aebc0fdfa281d44441c0a7d625ac45f5224",
      "parents": [
        "edad2aaa63d3db34960175a2f54b684dab2eb402"
      ],
      "author": {
        "name": "Evgeny Astigeevich",
        "email": "evgeny.astigeevich@linaro.org",
        "time": "Tue Jan 08 17:01:31 2019 +0000"
      },
      "committer": {
        "name": "Evgeny Astigeevich",
        "email": "evgeny.astigeevich@linaro.org",
        "time": "Tue Jan 08 17:01:31 2019 +0000"
      },
      "message": "ART: Replace \u0027auto\u0027 with actual types\n\nTest: m test-art-target-gtest\nTest: m test-art-host-gtest\nTest: art/test.py --target --optimizing --64\nTest: art/test.py --host --optimizing\nChange-Id: Ic5db365ffbdcd81997980c4c0cad271547e7af97\n"
    },
    {
      "commit": "3f1dcd39e134d994ac88dcc4f30ec8cabcd8decf",
      "tree": "365d20ad6b68ff1dbd4903764b63880324136e4d",
      "parents": [
        "0f0a4e40667c87fbd4ae5480eddbfd701bfabfa2"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Dec 28 09:39:56 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 02 10:32:25 2019 -0800"
      },
      "message": "ART: Move dex structs into own header\n\nSeparating out the structs from DexFile allows them to be forward-\ndeclared, which reduces the need to include the dex_file header.\n\nBug: 119869270\nTest: m\nChange-Id: I32dde5a632884bca7435cd584b4a81883de2e7b4\n"
    },
    {
      "commit": "3db70689e3e1c92344d436a8ea4265046bdef449",
      "tree": "3db08743e968062ed5bdc143233cdb3c4564696b",
      "parents": [
        "1650dafad62578a1766bd617d78458a4cf1e2a9a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 26 15:12:03 2018 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 27 12:56:39 2018 -0800"
      },
      "message": "ART: Refactor for bugprone-argument-comment\n\nHandles compiler.\n\nBug: 116054210\nTest: WITH_TIDY\u003d1 mmma art\nChange-Id: I5cdfe73c31ac39144838a2736146b71de037425e\n"
    },
    {
      "commit": "ca7027d30aa8b1abf4ef76dda156dd893234ddca",
      "tree": "def9167e4686b07da887e0a51afb7558195d26dd",
      "parents": [
        "7201ef48fb42cc36824126a26f758f02c9200bad",
        "776a7c294f6356b314505369679bffc73f4a345e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 21 16:12:17 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 21 16:12:17 2018 +0000"
      },
      "message": "Merge \"ART: Add CRC32.updateByteBuffer intrinsic for ARM64\""
    },
    {
      "commit": "776a7c294f6356b314505369679bffc73f4a345e",
      "tree": "ec1d678a0923d2c7ec869f806f5b4860e1a1a721",
      "parents": [
        "8ceeb2ede9a7280fab618dfcb55f424a79dc00ca"
      ],
      "author": {
        "name": "Evgeny Astigeevich",
        "email": "evgeny.astigeevich@linaro.org",
        "time": "Mon Dec 17 11:40:34 2018 +0000"
      },
      "committer": {
        "name": "Evgeny Astigeevich",
        "email": "evgeny.astigeevich@linaro.org",
        "time": "Wed Dec 19 23:01:02 2018 +0000"
      },
      "message": "ART: Add CRC32.updateByteBuffer intrinsic for ARM64\n\nUse crc32 instructions for\njava.util.zip.CRC32.updateByteBuffer(int, long, int, int).\n\nNote that CRC32 is an optional feature in ARMv8, this intrinsic\nis only enabled for devices supporting the CRC32 instructions.\n\nThe performance of the intrinsic is the same as the performance of the\nCRC32.updateBytes intrinsic. However the intrinsic does not have a\nrestriction on the size of the byte buffer. For big input data\nthe intrinsic will be faster than CRC32.updateBytes.\n\nTest: m test-art-target-gtest\nTest: m test-art-host-gtest\nTest: art/test.py --target --optimizing\nTest: art/test.py --host --optimizing\nTest: 580-crc32\n\nChange-Id: I6b6160b56e829731402bd5fc56bcac59664f634d\n"
    },
    {
      "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": "c01dc29b86784fc54619e7f8010daf109f0af5c5",
      "tree": "4a2b47201172a515c72b7e86524055b381cd1d13",
      "parents": [
        "ea1550c1722a283ce6b7f87027c51d5c078d202b"
      ],
      "author": {
        "name": "Evgeny Astigeevich",
        "email": "evgeny.astigeevich@linaro.org",
        "time": "Wed Dec 12 15:32:57 2018 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Dec 18 08:50:38 2018 +0000"
      },
      "message": "ART: Optimize use of registers for CRC32.update intrinsic\n\nUse a VIXL scratch register and specify the output register does not\noverlap with input registers.\n\nTest: m test-art-target-gtest\nTest: m test-art-host-gtest\nTest: art/test.py --target --optimizing\nTest: art/test.py --host --optimizing\nTest: 580-crc32\nChange-Id: If2f4b65eb1dfd5aace385dd3e571376a9867c662\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": "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"
    },
    {
      "commit": "344b0d18eb9f9f2f2ef704acadc510a6dd56a282",
      "tree": "5f0bc1ce634ad2e6e9a508b5f5478dd66590aff1",
      "parents": [
        "e734fe8d4aa5f70a5798363774a4ed63357ebe20"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 13 23:30:14 2018 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 13 23:30:14 2018 +0000"
      },
      "message": "Revert \"Add a baseline flag to JIT compile.\"\n\nThis reverts commit e734fe8d4aa5f70a5798363774a4ed63357ebe20.\n\nReason for revert: May be breaking tests.\n\nChange-Id: I6c0c04a60c1b4f329c472d28a3c2666526bd6383\n"
    },
    {
      "commit": "e734fe8d4aa5f70a5798363774a4ed63357ebe20",
      "tree": "9cc40d68cf2b053a2bcec7fc026e10bb12d5ee93",
      "parents": [
        "5af086c98d46d7833a064c5015c5503fc5dd29f3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 12 16:00:10 2018 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 12 16:29:52 2018 +0000"
      },
      "message": "Add a baseline flag to JIT compile.\n\nbug: 111397239\nbug: 119800099\nTest: m\nChange-Id: Id831b641e18a8497435839e2fbcfee1f6d60a56d\n"
    },
    {
      "commit": "afc60cd6ddcd15353698bb453716313dea241ef8",
      "tree": "708bbf11e425ddb7a75874f27d272fd5484d0bf1",
      "parents": [
        "58431a7cf863b2eb7fe25eff6a28ec376f2f151d"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Dec 05 11:59:31 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Dec 11 11:32:37 2018 +0000"
      },
      "message": "Cleanup native debug interface api.\n\nStrongly type the DEX file arguments.\n\nRemove the need for callers to worry about locks.\n\nUse std::map instead of std::unordered_map internally.\n\nTest: ./art/test.py -b -r -t 137\nChange-Id: I8bd79b796b5c7da265afc43a07ed227f550116c7\n"
    },
    {
      "commit": "a6dd280a61bdb09f608dd920d23394a5b6223ef4",
      "tree": "b1fad48bb4d4ed7ca39ec5c250d20d1238739028",
      "parents": [
        "17ed987eeebdebbd1b923c3c2a6887a233cb7517",
        "15c5b97d0093a804881acf3a53bda8b6b4c1521d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 07 10:19:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 07 10:19:34 2018 +0000"
      },
      "message": "Merge \"ART: Add CRC32.updateBytes intrinsic for ARM64\""
    },
    {
      "commit": "ed8b4ac3d7a78cc4976fa24a34bac92f4fd47a27",
      "tree": "8292de7f2a4e8b9c0526d05a604668da11e1980e",
      "parents": [
        "a9a0973ff03ce2c2d1ec65695ad0f4cd8ed170a7",
        "2afaff7e9171992b0e2e95d0f485782d28e1b9dc"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 07 08:11:24 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 07 08:11:24 2018 +0000"
      },
      "message": "Merge \"Refactor CompilerDriver::CompileAll().\""
    },
    {
      "commit": "15c5b97d0093a804881acf3a53bda8b6b4c1521d",
      "tree": "ad6befd10a3d6dee0f1667d254374e267ad89ce7",
      "parents": [
        "cfc4b3ac67b364d753d970d1adcf97668114e959"
      ],
      "author": {
        "name": "Evgeny Astigeevich",
        "email": "evgeny.astigeevich@linaro.org",
        "time": "Tue Nov 20 13:41:40 2018 +0000"
      },
      "committer": {
        "name": "Evgeny Astigeevich",
        "email": "evgeny.astigeevich@linaro.org",
        "time": "Thu Dec 06 22:19:23 2018 +0000"
      },
      "message": "ART: Add CRC32.updateBytes intrinsic for ARM64\n\nUse crc32 instructions for\njava.util.zip.CRC32.updateBytes(int,byte[],int,int).\n\nThe intrinsic is used if a number of processed bytes is less or equal to\nkCRC32UpdateBytesThreshold. If it exceeds kCRC32UpdateBytesThreshold the\ncore library provided function is used.\n\nNote that CRC32 is an optional feature in ARMv8, this intrinsic\nis only enabled for devices supporting the CRC32 instructions.\n\nThe CL is based on code from tim.zhang@linaro.org.\n\nPerformance improvements - speedup:\narray size | Cortex-A53 | Cortex-A57\n------------------------------------\n128        | 14x        | 20x\n256        | 10x        | 14x\n512        | 8x         | 11x\n1024       | 7x         | 9x\n2048       | 6x         | 8x\n4096       | 5x         | 7x\n8192       | 5x         | 7x\n16384      | 5x         | 7x\n32768      | 5x         | 7x\n65536      | 5x         | 7x\n\nTest: m test-art-target-gtest\nTest: m test-art-host-gtest\nTest: art/test/testrunner/testrunner.py --target --optimizing --interpreter\nTest: art/test/testrunner/testrunner.py --target --jit\nTest: art/test/testrunner/testrunner.py --host --optimizing --interpreter\nTest: art/test/testrunner/testrunner.py --host --jit\nTest: 580-crc32\n\nChange-Id: I0054cea41b5fc3e712e18b0afc7e3eacbf41feb6\n"
    }
  ],
  "next": "7fbc4a59ba2e60d869313d7961662430df83b2cb"
}
