)]}'
{
  "log": [
    {
      "commit": "93adcb53c77f4f04dfebd30b94e8ea9936aa8abb",
      "tree": "bdf638b78c045eed106ace99fbdc64506712d8ea",
      "parents": [
        "01f2e3a488fa06d98e2efbaf3ea8066d8457f216"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 06 20:16:07 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 07 23:05:24 2019 +0000"
      },
      "message": "ART: Remove some compile-time info points\n\nRemove no longer needed compile-time info points in the verifier. Only\ncheck-casts are still reliant on support for elision.\n\nThis reduces the number of pre-populated register lines in a large\napp by 70%, and the number of instructions executed during verification\nby about 2%.\n\nBug: 110852609\nTest: m test-art-host\nChange-Id: Iefa8253749b1a2750f57360e08ddfb502d0478b1\n"
    },
    {
      "commit": "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": "0dc93b1ba94460b0ae126dd4db335261165c74b7",
      "tree": "78b3afa099dce52a1eb39d6a9788d610b14a1f6b",
      "parents": [
        "9b81ac36e161fd993eab17b43b93a96e8c63b5cc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 15 10:30:22 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 17 20:40:21 2019 +0000"
      },
      "message": "ART: Run bpfmt over ART\u0027s blueprint files\n\nTest: mmma art\nChange-Id: Ic85df4770c12ec02836c877b243d4aec234aaada\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": "d4f8afb4d8bc7bb5cbaf217c2f0734b880b62689",
      "tree": "687c2b9bef9f370bbb1547c0d801fb0bc9dae3d2",
      "parents": [
        "354ddc52e3e08a7b17cd5b28686119407d2bcdc3"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri May 10 16:44:38 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue May 14 13:15:23 2019 +0000"
      },
      "message": "Revert \"Add binary search table for .debug_frame\"\n\nThis reverts commit 5f1465ff689eccbb1b6d15160d1a3700793956da.\n\nReason for revert: Reclaim space for now as I didn\u0027t manage\nto implement the libunwindstack side yet.\n\nTest: test.py --host -b -r -t 137-cfi\nChange-Id: Iffeed63e54f38a905324d03b148daac4bb37f6cf\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": "1b3561a157653a3d0f8025ddd65fe6ffeb289a8b",
      "tree": "f107fe594b9b474f6883de1170314b688e9e209b",
      "parents": [
        "439d12691964780784a67f178384c0175780f665"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 08 11:50:58 2019 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 08 13:41:14 2019 +0100"
      },
      "message": "x86: Add assembler tests and clean up style.\n\nThis is a follow-up after\n    https://android-review.googlesource.com/923493\n\nTest: m test-art-host-gtest\nChange-Id: Id287815c8ffc001d7cf7a4838c744620a553f662\n"
    },
    {
      "commit": "c5e3a52473772a6aba3a8407b0151f6046c5e21b",
      "tree": "3f28b8774ebe74eabe73407c52edb5dcec697a97",
      "parents": [
        "498019ab91ea40352ea1e54a8425e1689dc1317d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Apr 30 09:47:55 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Apr 30 20:32:36 2019 +0000"
      },
      "message": "Make compiling an apex image explicit.\n\nAnd when compiling an apex image, discard dex files not present\nin an apex.\n\nTest: m\nBug: 119800099\nChange-Id: Ie91c5b8d271783f04e4c1501f315a3ec59137475\n"
    },
    {
      "commit": "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": "fc8e7598fe013bebff210b48347daf80316ac0a4",
      "tree": "37b6594c1f4e7e40bbdfcee88560a688db868620",
      "parents": [
        "8f88207206fe39f6dcb4e76e24716c81566f26cc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 09 11:46:11 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Apr 09 20:42:19 2019 +0000"
      },
      "message": "art: remove unnecessary references to external/zlib.\n\nBug: https://issuetracker.google.com/115695768\nTest: builds\nChange-Id: If28672497d5702e084ac033eceaeb31a18eb292e\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": "76b9c695a7cee0772cb9ee7e472bbf8ce3030a73",
      "tree": "cfc3d1642688a93b2ef1b7d0660bfb2a333d8be9",
      "parents": [
        "e18588381b34a5ed24417c826dc389a91f8d2b7f"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Apr 01 19:36:33 2019 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Apr 07 21:27:36 2019 +0000"
      },
      "message": "Split JIT mini-debug-info packing and compression to two phases.\n\nEvery JIT compilation creates a mini-debug-info entry (~800 bytes).\n\nAfter every 64 compilations, pack the data so that we have multiple\nmethods per mini-debug-info entry (amortized ~200 bytes per method).\n\nCompress the entries after code GC (amortized ~60 bytes per method).\n\nSplitting packing and compression means we can cheaply claim most\nof the memory savings by packing recent methods and older methods\nstill benefit from the compression.\n\nTest: test.py -b --host -r -t 137-cfi\nChange-Id: Ic2c677ada09983e49d96623a48f4d4ad1fa5bfbc\n"
    },
    {
      "commit": "f59bc11bc0bd6c443d5350f24e4569f841e0beea",
      "tree": "6a78bf1a1db9ef2becbb7bb9f3313d27630dd97f",
      "parents": [
        "30167d24077495f7d4e701fbbbcfd458537f6a6e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 03 10:29:29 2019 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 03 15:15:15 2019 +0000"
      },
      "message": "Couple of improvements in the jit zygote pass.\n\n- Handle the resolution stub.\n- In verbose mode, log the time to JIT compile.\n- Handle the case jit is disabled.\n- Don\u0027t look at methods that are in the jars located in the runtime module.\n\nBug: 119800099\nTest: m\nChange-Id: Ib12586cc65b3791e066e96ce7e36985cfb612059\n"
    },
    {
      "commit": "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": "bdc93b47e2e7e8f17413669e03bc461d259d16f6",
      "tree": "bd1c632196a437e90d012475afa83adf614be538",
      "parents": [
        "f52d92fce224c86491d9b0fd6fca805564119426"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Mar 29 16:12:04 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 01 09:37:59 2019 +0000"
      },
      "message": "ObjPtr\u003c\u003e-ify StackTraceElement and ClassLoader.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 31113334\nChange-Id: I457eeda55bbfb905dd2de0abd68451ab42ef9c1f\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": "179b7c61ea6769b99f70c80a7a89cbb212423ec2",
      "tree": "06130898bfb2d8c3f71f4fe181277f20e1942726",
      "parents": [
        "c8b7d445e02b752a68d824e2bc69658dfb76288a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Mar 22 13:38:57 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 25 16:54:37 2019 +0000"
      },
      "message": "ObjPtr\u003c\u003e-ify String allocations, fix stale refs.\n\nObjPtr\u003c\u003e-ify String allocation functions and related code\nand remove some unnecessary calls to ObjPtr\u003c\u003e::Ptr(). Fix\nstale reference uses in reference_table_test and stub_test.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 31113334\nChange-Id: I42927fb8b7240e5132188f73318b2ccb218748fd\n"
    },
    {
      "commit": "50928116be503deed341fbc84c0647d5687b12a1",
      "tree": "2ab09470c05eff72860eb8df14dfcc1fba002ec4",
      "parents": [
        "b9c29f625bc27968d80f9eafa988dc14af0a1c28"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Mar 22 17:06:28 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Mar 25 10:59:19 2019 +0000"
      },
      "message": "Move elf_utils.h to libelffile library as well.\n\nAlso move some of our ART-specific utils form elf.h.\n\nBug: 73344075\nTest: generated oat files on host are identical.\nChange-Id: I587afc30875b9ddb57220fb3d4e764f9bb7a0e25\n"
    },
    {
      "commit": "b9c29f625bc27968d80f9eafa988dc14af0a1c28",
      "tree": "10276cd3fa756646b41cb50cf396476f2f8df1d3",
      "parents": [
        "bcd99bed472d228a1a0a65adc606346d7daf6b93"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 20 14:22:51 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 25 10:27:28 2019 +0000"
      },
      "message": "Hide conscrypt package classes for app AOT compilation.\n\nSince app AOT compilation is usually done without conscrypt\non the boot class path, classes defined by app class loader\nin conscrypt packages could be resolved differently, i.e.\nfrom conscrypt, at runtime. Reject such definitions during\nAOT compilation to ensure correct runtime behavior.\n\nAdd a test that when compiling the conscrypt module as an\napp, we cannot resolve any class defined in its dex files.\n\nTest: module_exclusion_test\nBug: 122937705\nChange-Id: I1fcb4c21937f59772206ee50b688a75053231bc0\n"
    },
    {
      "commit": "e5d93b58a530be39c9a067cdd7f491e4626ec51d",
      "tree": "30becd07985c4c2f7b2a339f7d6783220255f08e",
      "parents": [
        "336245d020ce5d1595c56a2953bf7b3103b54984"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Feb 27 15:10:52 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Mar 22 18:22:34 2019 +0000"
      },
      "message": "Compare the oat version of runtime, dex2oat and the compiler.\n\nEnsure they match, otherwise we might get confusing crashes.\n\nBug: 125318570\nTest: running ahat-test-dump after oat version bump triggers the check.\nChange-Id: If4bc832af50c2cb851054be03c9887f9a3d4d04b\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": "5f1465ff689eccbb1b6d15160d1a3700793956da",
      "tree": "44b11b483eb169ff652d2545d2731551ee484cc8",
      "parents": [
        "21b656872c27b8d174293cf37975d769c8554b22"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 12 17:34:39 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Mar 20 11:34:46 2019 +0000"
      },
      "message": "Add binary search table for .debug_frame\n\nAdd ELF section somewhat similar to .eh_frame_hdr,\nwhich can be used in libunwind to do binary search.\n\nThis increases .oat file size by 0.1%.\n\nBug: 110133331\nTest: ./art/test.py -b --host -r -t 137-cfi\nChange-Id: Ief47d15eb3f3d302438b713af4cfbcddd0c5078a\n"
    },
    {
      "commit": "3dacdd6343ea9a6471692914c7a9dff66d6453c7",
      "tree": "5e0a3b8f99e914a7fbd49822e5c8fb1bd4709f5c",
      "parents": [
        "939798e6a565a92e597136c589428e89c28bffd5"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Mar 12 15:45:47 2019 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Mar 12 09:52:59 2019 -0700"
      },
      "message": "Revert^4 \"Remove Global deopt requirement for several jvmti events\"\n\nIt was possible for the top frame of a thread to enter the\nartQuickToInterpreterBridge during runtime shutdown. This could be\ncaused by the libjdwp agent. If this happens the caller of the frame\nwill be \u0027null\u0027, which could cause a segv if not detected correctly.\n\nThis reverts commit 939798e6a565a92e597136c589428e89c28bffd5.\n\nReason for revert: Fixed issue that could cause crash during process\n                   shutdown.\nTest: ./art/tools/run-libjdwp-tests.sh --mode\u003dhost\nTest: ./test.py --host\n\nChange-Id: I2aad1705c761edb4ed788cec4fc8a3068d67aee5\n"
    },
    {
      "commit": "939798e6a565a92e597136c589428e89c28bffd5",
      "tree": "3274ff355163df18cd2d7343ce0d34214f9d09c9",
      "parents": [
        "a55e8b5c9827cc4dc4e7f7c7ee07ef1fdafc35e0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 12 14:26:22 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 12 14:26:42 2019 +0000"
      },
      "message": "Revert \"Revert^2 \"Remove Global deopt requirement for several jvmti events\"\"\n\nThis reverts commit a75e5892fba6d0208f33e9ab8e19e732daf94996.\n\nReason for revert: Fails jdwp tests.\n\nChange-Id: Ic883f4f0108b07f1609c6c6a9565eae5903bfd2c\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": "a75e5892fba6d0208f33e9ab8e19e732daf94996",
      "tree": "3daff8c3ce1608bacba7358711ccf9bd61c0bb05",
      "parents": [
        "dd83a40a3c4fea0d917577de96742900a61ab548"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Mar 11 15:49:40 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 11 21:59:44 2019 +0000"
      },
      "message": "Revert^2 \"Remove Global deopt requirement for several jvmti events\"\n\nThis reverts commit ad344b6a14feba90a06a205760e9bc766c56cab0.\n\nJit-on-first-use would cause the runtime to skip sending FramePop\nevents for exceptions in some circumstances due to longjmp-ing over\nthe frames. This requires forcing jit off from the first instant a\nthread can get frame popped events, which is unfortunate.\n\nReason for revert: Fixed issue causing 1925 to fail on\n                   jit-on-first-use and redefine-stress\nTest: ./test.py --host\nTest: ./art/test/testrunner/run_build_test_target.py -j50 art-jit-on-first-use\n\nChange-Id: I6ec2a799db1041262a055be10e1af1faece6f2fc\n"
    },
    {
      "commit": "327497e303903f300b01f77f2259fd5b61238ee3",
      "tree": "3f714d2d2ee7d9b6c0ecf71a10c157d4952e5758",
      "parents": [
        "ef764ad3e6d7f07ea9e32642dc3e163bb4eb44fb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 04 12:53:20 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 11 06:59:41 2019 +0000"
      },
      "message": "Move CompilerDriver to dex2oat/.\n\nAlso DexToDexCompiler, QuickCompilerCallbacks and tests.\n\naosp_taimen-userdebug:\n - before:\n   lib64/libart-compiler.so: 3112344\n   lib/libart-compiler.so: 2312908\n   bin/dex2oat: 563176\n - after:\n   lib64/libart-compiler.so: 2986720 (-123KiB)\n   lib/libart-compiler.so: 2219852 (-91KiB)\n   bin/dex2oat: 635832 (+71KiB)\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing --jit\nChange-Id: I36e63b83dff1d5c731d05de27d3663cfc81de6ad\n"
    },
    {
      "commit": "ad344b6a14feba90a06a205760e9bc766c56cab0",
      "tree": "47801fc5b432b0baf544bb8fd522a9fd3b567a7e",
      "parents": [
        "739383c80684eeb41d380ca5d18e1e9a1fe9fd7f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Mar 09 17:49:52 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Mar 09 21:13:15 2019 +0000"
      },
      "message": "Revert \"Remove Global deopt requirement for several jvmti events\"\n\nThis reverts commit 334630ee9dffdd1932c1ee641d938f25362a4c1a.\n\nReason for revert: 1924-frame-pop-toggle fails on some configs.\n\nChange-Id: I5ed3846e0dfff09c67a468f319ff516e14c44e61\n"
    },
    {
      "commit": "334630ee9dffdd1932c1ee641d938f25362a4c1a",
      "tree": "81957d634aa76967d97c89014eb69158682b0128",
      "parents": [
        "5b76c16cca1984209e838ada4d79e370d7fda431"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Mar 04 15:08:04 2019 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 08 04:07:45 2019 +0000"
      },
      "message": "Remove Global deopt requirement for several jvmti events\n\nThe JVMTI_EVENT_SINGLE_STEP, JVMTI_EVENT_FIELD_MODIFICATION,\nJVMTI_EVENT_METHOD_EXIT, JVMTI_EVENT_SINGLE_FIELD_ACCESS, and\nJVMTI_EVENT_FRAME_POP events would all deoptimize all threads in all\ncases when enabled. This changes the behavior to instead only\ndeoptimize individual threads when possible. This should make some\ndebugger interactions faster.\n\nTest: ./test.py --host -j72\nTest: ./art/tools/run-libjdwp-tests.sh --mode\u003dhost\n\nChange-Id: I42513cb17fd1144aeb03ca11afd3e3b05e918ce2\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": "4b2d1c56cfd540e477a297abb70a18b72ef1ebfc",
      "tree": "496ac062658644e3efa90fbde37acdb34032e1d8",
      "parents": [
        "bf5f0f3f1eea2e712e7269ff1e1f9b1bcc4cbaee"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 06 11:21:11 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 06 14:46:36 2019 +0000"
      },
      "message": "Fix memory leak in CommonCompilerTest::CompileMethod().\n\nAnd enforce that we successfully compile the method.\n\nThis fixes ASAN tests broken by\n    https://android-review.googlesource.com/919053\n\nTest: run_build_test_target.py art-gtest-heap-poisoning\nChange-Id: I98b6c11e097bd9aea6605f3b77b1bcbb2206dbd0\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": "5708376183c4e2d4456a191955c5060e404a9f0a",
      "tree": "4afed897b6e71c45b4f51ae9536d5bb6da7ec024",
      "parents": [
        "3c83921510c849cd43b90ab6094abce232c8c088"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 05 09:24:45 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 05 15:40:35 2019 +0000"
      },
      "message": "Revert \"Remove code size from OatQuickMethodHeader\"\n\nThis reverts commit 131f23a4c2c34b689c07e6efd05cea74190f0113.\n\nBug: 123510633\nBug: 127305289\n\nReason for revert: b/127305289\n\nChange-Id: I59905779fe8c7d7551c0fa6c8693fb64eb6760b2\n"
    },
    {
      "commit": "815d5e5304a5b57db64d6829813a14e464d5c55f",
      "tree": "7fac4adffcda366f4ee252e233828ebf2361f2b0",
      "parents": [
        "b1b2ca97651b1993e0a00a4543209419afbc6e64"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 04 10:18:31 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 05 12:37:30 2019 +0000"
      },
      "message": "Refactor compiler tests around CompilerDriver.\n\nIntroduce CommonCompilerDriverTest and inherit that in tests\nthat need to use CompilerDriver. This is in preparation for\nmoving the CompilerDriver to dex2oat/.\n\nTest: m test-art-host-gtest\nChange-Id: I46cf0bc1df4327569eef5526eeab0781473173a1\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": "de3e70ff45450a54f02ff6f11c39ea9e45d6decc",
      "tree": "fefb3c7d5799667ab49237273147fed76ffed3cb",
      "parents": [
        "77182cd0f4527538df832eddbc775391c283cffb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 22 12:07:29 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 22 16:17:05 2019 +0000"
      },
      "message": "Move to new glibc in the tree.\n\nBug: 125632645\nBug: 125778437\nTest: prebuilt_tools_test\nChange-Id: Id4c7eca4e8c976e2b23c4d489805abfff694ac13\n"
    },
    {
      "commit": "e57087025bb462f875c1fb0574eefba92f29ff20",
      "tree": "15278f603ea9508869dcc9ab9b26a97617e3fc1a",
      "parents": [
        "c55a1a260e34144d294640d84d09f5c1d77636ca",
        "131f23a4c2c34b689c07e6efd05cea74190f0113"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Feb 21 12:41:53 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 21 12:41:53 2019 +0000"
      },
      "message": "Merge \"Remove code size from OatQuickMethodHeader\""
    },
    {
      "commit": "ec956e8866e4ee9fe59bb99b4db6a3b6017937f1",
      "tree": "ff9721ecf2ee2d41d115d5bdeabd226bc33b565d",
      "parents": [
        "c82259085bceb7e4f0e19f60039d6667f6907dcd",
        "eda46e9cad4271af7188fe0f542cbe88679f4c6e"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Feb 21 09:37:46 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 21 09:37:46 2019 +0000"
      },
      "message": "Merge changes Ifd690cda,I7bcbe947\n\n* changes:\n  Fix vdex fast-verify performance regression\n  Improve `verified`, add `redefined` class status in VerifierDeps\n"
    },
    {
      "commit": "eda46e9cad4271af7188fe0f542cbe88679f4c6e",
      "tree": "9632daf7b7c0600bd9200da65e43f6640c4cfc27",
      "parents": [
        "feb228244619237d110d8817865d7647f37b9b4f"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Feb 18 12:38:19 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Feb 20 18:32:10 2019 +0000"
      },
      "message": "Fix vdex fast-verify performance regression\n\nRecent CL I0d06b82e31088c58d4493723a5435309740f1d0c generalized the\nfast-verify class redefinition check by checking that all vdex-verified\nclasses resolve to dex files covered by the vdex and are not duplicates\nof classes in parent class loaders. This introduced a performance and\nallocated memory regression for dex2oat invoked with\ncompiler-filter\u003dverify(-profile).\n\nThis patch removes the regression by acquiring a list of classpath dex\nfiles from the compiler driver and boot classpath dex files from the\nclass linker, avoiding class resolution altogether.\n\nA small performance overhead remains as previously only boot classpath\nwas being searched.\n\nTest: run `dex2oat filter\u003dinterpret-only; dex2oat filter\u003dverify`\n      compare time and allocated memory numbers before CL and after\nChange-Id: Ifd690cdafdc99d3eafb9847d67775fc11a5b5023\n"
    },
    {
      "commit": "feb228244619237d110d8817865d7647f37b9b4f",
      "tree": "5f30c01597761e6552ea5f770443bc12785a9562",
      "parents": [
        "9dcc0733afe9c512e93317291de0b0a7124ef465"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Feb 13 21:25:57 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Feb 20 18:32:10 2019 +0000"
      },
      "message": "Improve `verified`, add `redefined` class status in VerifierDeps\n\nChanges implementation of `unverified_classes_` in VerifierDeps from\nstd::set\u003cdex::TypeIndex\u003e to `verified_classes_` of type std::vector\u003cbool\u003e\nindexed by class def indices. This cleans up the implementation and speeds\nup access during fast-verify. Encoding remains the same - a set of indices\nof unverified classes - only these are now class def indices.\n\nA second bit vector `redefined_classes_` is added, also indexed by class\ndef indices. It records classes that were not verified because they were\neclipsed by classes that took precedence during resolution. This allows\nVerifierDeps::VerifyInternalClasses to succeed when a class redefined\nnow was also redefined when the deps were being created because the\nclass was treated as external and dependencies on it were recorded.\n\nTest: m test-art-gtest-verifier_deps_test\nChange-Id: I7bcbe947c3c74535306e6dbb5b288076f320a7bc\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": "03c6b174a4e412e9bb62935c4ee15b5445e517f2",
      "tree": "1deaa160bde1a6f6089fdce8e1d2c8797422b5a9",
      "parents": [
        "03fc50104cb5225542de33cdafaff1613ec05cf9",
        "53eb07f0858795b7487eddc23b95ac38336696a7"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 19 14:49:20 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 19 14:49:20 2019 +0000"
      },
      "message": "Merge \"Refactor ElfDebugReader.\""
    },
    {
      "commit": "03fc50104cb5225542de33cdafaff1613ec05cf9",
      "tree": "d6a340b885f8459d8c9b94a156199f2a539c4578",
      "parents": [
        "ad9be8055466c49d64ace2cc5f8377ab4217a812",
        "82b9560f28a7528d3a0dd3337db236d28e460374"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 19 12:29:38 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 19 12:29:38 2019 +0000"
      },
      "message": "Merge \"Simplify XZ compression.\""
    },
    {
      "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": "53eb07f0858795b7487eddc23b95ac38336696a7",
      "tree": "8b5710abea53fdf95aac2c582d58b465e9fd46e7",
      "parents": [
        "e39765cd311f31653137a2efede6c0eb7903e434"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 12 16:34:55 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Feb 18 14:06:22 2019 +0000"
      },
      "message": "Refactor ElfDebugReader.\n\nMake the code more flexible, which I will need for\nfuture mini-debug-info work.\n\nBug: 110133331\nTest: ./art/test.py -b -r -t 137\nChange-Id: I8b0fe3c43537f546f2ff103bff3c63a59a0f940a\n"
    },
    {
      "commit": "82b9560f28a7528d3a0dd3337db236d28e460374",
      "tree": "0ae54e8530ceee417bd2cbd776abe2abbb18fad4",
      "parents": [
        "e39765cd311f31653137a2efede6c0eb7903e434"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Feb 15 18:52:47 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Feb 18 12:59:51 2019 +0000"
      },
      "message": "Simplify XZ compression.\n\nIt turns there is configuration option to split the data into blocks.\n\nTest: ./art/test.py -b -r -t 137 --host\nChange-Id: I33c8722e300951a14abc3a759a06eff4e7c00fd4\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": "131f23a4c2c34b689c07e6efd05cea74190f0113",
      "tree": "c0c1927bd770f0224c6aed5eaccb13765a7cc57d",
      "parents": [
        "438cc2b34be2a5d114a50ba6cdef22f9045d863a"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jan 29 18:52:12 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Feb 14 09:44:47 2019 +0000"
      },
      "message": "Remove code size from OatQuickMethodHeader\n\nThis saves from 0.75% from oat file size.\n\nBug: 123510633\nChange-Id: Ibf0d45d5d84057ee45a3584a4b69a7c0487443bf\n"
    },
    {
      "commit": "438cc2b34be2a5d114a50ba6cdef22f9045d863a",
      "tree": "68af43b712b3fb25f570e4b12ab895126eb47bcd",
      "parents": [
        "cf23c5d8e558657e1a0eea15b8ec6a54ece9b677",
        "e1412dacbf1d2a809bd1fca658cc8cb8f61f8ee6"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Feb 14 09:44:24 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 14 09:44:24 2019 +0000"
      },
      "message": "Merge \"Revert^2 \"Add code size to CodeInfo\"\""
    },
    {
      "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": "7370d92da01ad07c649e3f988aaf55ee7585a803",
      "tree": "961717b2838d923b87b2ecf1ebac55a8c5ecaa8d",
      "parents": [
        "91b290038cbd00a48028922a5e76c0c39d6ebcb6"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 12 14:00:30 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 12 14:44:44 2019 +0000"
      },
      "message": "Remove oat_patches from the DWARF writer.\n\nWe no longer use them.\n\nTest: test-art-host-gtest-dwarf_test\nChange-Id: Ie018d2314f028584edb398b6310a7284a0ec2069\n"
    },
    {
      "commit": "91b290038cbd00a48028922a5e76c0c39d6ebcb6",
      "tree": "0b05e3a20da9ae131b9299554b4c7efa7e156f7d",
      "parents": [
        "794350fd0e21aa9e259b6c45394494871e7fdb13"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Feb 08 15:51:31 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 12 13:51:16 2019 +0000"
      },
      "message": "Remove support for generating .eh_frame ELF section.\n\nThe eh_frame support was originally added because the\nold libunwind library didn\u0027t support debug_frame.\nThe new libunwind supports debug_frame well, and since\nwe have switched to it, we can remove the legacy code.\n\nThe main advantage of debug_frame is that it can be\ncompressed as part of mini-debug-info.\n\nI am somewhat preserving the .eh_frame_hdr binary\nsearch table (renamed as .debug_frame_hdr.android).\n\nBug: 123621350\nTest: Generated framework oat files are identical.\nChange-Id: I35b18895482f2176e02df07b086af7a1d40f90d5\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": "1e70b89afe0e022ec51210ea0da1e0706e194fd0",
      "tree": "1c2b9d0c52e008795ec122b4b904c85c103b3e31",
      "parents": [
        "61a9328e807426636d3e29699cd978d4a7a345c0",
        "6c70224ebd667b52a862f850893f6528af63f3e8"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 11 10:27:11 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 11 10:27:11 2019 +0000"
      },
      "message": "Merge changes Id4ffa9f9,I1bb5d05d\n\n* changes:\n  Replace MergeSets() with std::set::merge().\n  Replace StringPiece with std::string_view.\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": "6c70224ebd667b52a862f850893f6528af63f3e8",
      "tree": "43e1ed17ee7fdfd7081cb07e11700b77c38a5a52",
      "parents": [
        "8581e2a234b562880c1d6c6b5ad14d23f7b597ed"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 07 16:17:33 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 08 17:19:20 2019 +0000"
      },
      "message": "Replace MergeSets() with std::set::merge().\n\nAnd clear up ownership of the VerifierDeps being merged\nby using std::unique_ptr\u003c\u003e.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nBug: 123750182\nChange-Id: Id4ffa9f9fa1968fa762b9e825f25827240f6d45d\n"
    },
    {
      "commit": "8581e2a234b562880c1d6c6b5ad14d23f7b597ed",
      "tree": "460059a1717d7507fa2854c3d458ce0250ba2bbd",
      "parents": [
        "e512556ab85987c52e4be1fcd6d7a1d15a1b0fb6"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 06 15:54:55 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 07 14:13:58 2019 +0000"
      },
      "message": "Replace StringPiece with std::string_view.\n\nThis replaces the last few StringPiece uses and removes\nthe stringpiece.h.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 123750182\nChange-Id: I1bb5d05df47319b6ca386db01e14ce048ae54daf\n"
    },
    {
      "commit": "8e1ca6103de597cec698b2337d19a94d17ae8338",
      "tree": "c485c00a7a74406670b36b937a150f72468a0565",
      "parents": [
        "3a8761f8451276300350bcfa50910105e88505df",
        "8fd6722f5840385462a31bd701426b3749ac1031"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Feb 07 09:50:53 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 07 09:50:53 2019 +0000"
      },
      "message": "Merge \"Generalize vdex class redefinition check\""
    },
    {
      "commit": "2f34e59c10c30ea24fa5f4bc4e3d5a9dc6469c34",
      "tree": "9360a99feb7a1aa6fe7b2685429ddb49b17a5e7c",
      "parents": [
        "c66d6a7569ef72d9e9eb115bb7b663ccc8df5179",
        "7210108e6d930f9b8bcf5eac6b7a03ea29f92f84"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 06 18:00:50 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 06 18:00:50 2019 +0000"
      },
      "message": "Merge changes I14c7cddd,I4a39d0e8,I3f24c8f4,I9699f138\n\n* changes:\n  Replace StringPiece with std::string_view in art/runtime/.\n  Replace StringPiece with std::string_view in HashSet.\n  Replace StringPiece with std::string_view in Signature.\n  Replace StringPiece with std::string_view in class.h.\n"
    },
    {
      "commit": "8fd6722f5840385462a31bd701426b3749ac1031",
      "tree": "7e5f202ed5596815c3638173273ab7d490c25636",
      "parents": [
        "ac52000e86077b3c45c192ec259d72413599ff11"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Feb 05 18:13:44 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Feb 06 17:34:57 2019 +0000"
      },
      "message": "Generalize vdex class redefinition check\n\nThe check introduced in CL If0c56b1970d8ebe701d198ffccec52f586aea9e6\nskips fast verification if an apk\u0027s class is overshadowed by a class in\nboot classpath because the vdex dependencies do not contain intra-apk\ndependencies.\n\nHowever, the change only checks for presence of a duplicate class in the\nboot classloader, while a duplicate class could be in any of the parent\nclassloaders. Fix this and move the check into VerifierDeps to make it\na proper part of the verification process.\n\nThe CL also refactors VerifierDeps::ValidateDependencies to output\nan error string for better logging.\n\nBug: 122968669\nTest: test/testrunner/testrunner.py -t 719\nTest: m test-art-gtest-verifier_deps_test\nChange-Id: I0d06b82e31088c58d4493723a5435309740f1d0c\n"
    },
    {
      "commit": "b7abcaff75e824af8fd5104981404ce1b97b86e9",
      "tree": "2263ada8cae4f1464700614c3e0cad9a392fc491",
      "parents": [
        "8197e77c9b330c56662f66636dafca1bcbc9afcf",
        "22e22236cc12c977c01a8d10d4cc0906fc5ead2e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 06 15:10:46 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 06 15:10:46 2019 +0000"
      },
      "message": "Merge \"ART: Use C++17 extract/modify/insert pattern.\""
    },
    {
      "commit": "2ef01100bb56b3f8ab5fbc886a7066d721290d74",
      "tree": "a60e1265e2b1e733832047417e93a9c3ae1e6165",
      "parents": [
        "eb37ba594146338bf7e7e2bf3769d08046fb263f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 05 15:05:10 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 06 14:05:12 2019 +0000"
      },
      "message": "Replace StringPiece with std::string_view in HashSet.\n\nUpdate HashSet comment and related code. Also remove dead\nCompilerOptions declarations with StringPiece parameters.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 123750182\nChange-Id: I4a39d0e8e0392a414129369c5b304ec4813e9ed5\n"
    },
    {
      "commit": "22e22236cc12c977c01a8d10d4cc0906fc5ead2e",
      "tree": "1df2e62e339e51b58e682df9a668ff5f3099dfe5",
      "parents": [
        "7909e1e4cc741b38b25328e2f9077beb7ecd018b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 05 16:35:01 2019 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 05 16:35:01 2019 +0000"
      },
      "message": "ART: Use C++17 extract/modify/insert pattern.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 123750182\nChange-Id: I2721948a566cc11d351324d173b4e1c8e5e54f53\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": "7909e1e4cc741b38b25328e2f9077beb7ecd018b",
      "tree": "b59583aa7e9d865d46c5bc8dec00729c649d4756",
      "parents": [
        "ca3c6d9231aa8e4a9ca7c9040398d57f130441a0",
        "7f88c1a269754001bfcaf311b378cf1cc71acf84"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Feb 05 12:50:51 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 05 12:50:51 2019 +0000"
      },
      "message": "Merge \"ART: Enable ISA features run-time detection for ARM64\""
    },
    {
      "commit": "49b2b2050d970384bf70c3a3bc526ac62d299b2c",
      "tree": "35ba4cbd6f008e2152e3683eac70cfb7ce031088",
      "parents": [
        "5fe64d84822bf86d72d941c271c93ecbb0ff0742"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Feb 01 13:35:48 2019 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Feb 01 15:37:49 2019 +0000"
      },
      "message": "Allow empty mini-debug-info ELF section.\n\nGenerate mini-debug-info ELF section even if it is empty\n(if we generate oat file with no compiled methods).\n\nThe intention is to make it easier to distinguish ELF files\nmiss the section unintentionally due to build configuration.\n\nThe overhead of the empty section is 140 bytes per oat file.\n\nBug: 37724669\nTest: test.py -b -r -t 137\nChange-Id: I521da6bb1a04d099465a3ffd9e05b7c836165208\n"
    },
    {
      "commit": "9b596c0a1e0c26cb0b0bf180f12a830c9c870458",
      "tree": "6c1f05e652815a20d1792f7654c1792acdba7721",
      "parents": [
        "c76f9b723997cdf796c937637473731da63e34b7",
        "5ffefaa41de9b9e711f6e8bc7ed9ff9e9d844fe7"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Feb 01 00:31:51 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 01 00:31:51 2019 +0000"
      },
      "message": "Merge \"Ensure the correctness of fast verify\""
    },
    {
      "commit": "5ffefaa41de9b9e711f6e8bc7ed9ff9e9d844fe7",
      "tree": "359584429e9ef94c848551180d2ad73fa61d618a",
      "parents": [
        "b8f88f33b5ad0a593e5c63beab45d05f4c791bf4"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Jan 25 01:04:54 2019 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Jan 31 14:24:04 2019 -0800"
      },
      "message": "Ensure the correctness of fast verify\n\nWe cannot guarantee that the resolution recorded in the vdex file is\ncorrect when the boot classes are redefined. For example we might be doing\nonly sdk verification and not have the entire context available - as such,\nif an app redefines a class that is in the boot classpath but not the sdk\nwe might record the wrong resolution. Another example is OTA time, when\nthe boot classpath may change.\n\nThe CL discards the vdex file when the app redefines classes from boot\nclasspath.\n\nTest: test/testrunner/testrunner.py -t 719\nBug: 122968669\nChange-Id: If0c56b1970d8ebe701d198ffccec52f586aea9e6\n"
    },
    {
      "commit": "119733d87242414100df7b9eedb6d1672a03ead6",
      "tree": "19ba75bd42d3c94a4de0684ae66f4078da1546a6",
      "parents": [
        "8a64e773d4d1221166c6a8206315b450e448705a"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jan 30 15:14:41 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Jan 31 15:39:55 2019 +0000"
      },
      "message": "Revert \"Revert \"ART: introduce PALette abstraction layer\"\"\n\nThis reverts commit e6e01a0a00de80704ccb21c48d5d8bdee4470b77.\n\nBug:  122824298\nTest: art/test/testrunner/run_build_test_target.py -j50 art-test-javac\nTest: m out/target/common/obj/PACKAGING/hiddenapi-stub-flags.txt\nTest: frameworks/rs/build_rs.py\nChange-Id: If7b9ddca3daa80b75b3541abd283bf47d5b81118\n"
    },
    {
      "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": "7f88c1a269754001bfcaf311b378cf1cc71acf84",
      "tree": "147bb988929e8bd8827c4b148f28da4c28c0ea70",
      "parents": [
        "5247113f3277fd679e3e1beeb6fbfb30797aa481"
      ],
      "author": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Tue Nov 06 11:42:41 2018 +0000"
      },
      "committer": {
        "name": "Evgeny Astigeevich",
        "email": "evgeny.astigeevich@linaro.org",
        "time": "Wed Jan 30 14:09:25 2019 +0000"
      },
      "message": "ART: Enable ISA features run-time detection for ARM64\n\nOn a target run-time detected ISA features can be more accurate than\ninstruction set features based on a build-time information such as an\ninstruction set variant or C++ defines. Build-time based features can\nbe too generic and do not include all features a target CPU supports.\n\nThis CL enables instruction feature run-time detection in the JIT/AOT\ncompilers:\n\n- The value \"runtime\" to the option \"--instruction-set-features\" to try\nto detect CPU features at run time. If a target does not support run-time\ndetection it has the same effect as the value \"default\".\n- Runtime uses \"--instruction-set-features\u003druntime\" if run-time detection is\nsupported.\n\nThe CL also cleans up how an instruction set feature string is processed\nby InstructionSetFeatures::AddFeaturesFromString. It used to make redundant\nuses of Trim in subclasses. The calls are replaced with DCHECKs\nverifying that feature names are already trimmed.\n\nTest: m test-art-target-gtest\nTest: m test-art-host-gtest\nTest: art/test.py --target --optimizing --interpreter --jit\nTest: art/test.py --host --optimizing --interpreter --jit\nTest: Pixel 3 UI booted\n\nChange-Id: I223d5bc968d589dba5c09f6b03ee8c25987610b0\n"
    },
    {
      "commit": "4b9d00aca9b025b545c9633b4605334c22fc4d2d",
      "tree": "7984bf247f908d145b7c6b48df99f3f0a80ae148",
      "parents": [
        "4ee4561f2153f3b0bc3be2e781488a97c73ca58e"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Jan 03 17:04:02 2019 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Jan 30 09:00:27 2019 +0000"
      },
      "message": "ART: introduce PALette abstraction layer\n\nThis change decouples direct dependencies on system libraries.\n\nBug: 122824298\nTest: art/test.py --host --64\nTest: art/test.py --target -j8\nTest: m -j100 \u0026 flashall -w \u0026 device boots\nTest: art/build/apex/runtests.sh\nChange-Id: Iae927ed9aaa228a941cd444cef04e6ec53955299\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"
    }
  ],
  "next": "96259f1f2f37d222ce321fd223655d1134a8ba01"
}
