)]}'
{
  "log": [
    {
      "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": "8cd54547cec8a4537db5682c2da8be22843b1310",
      "tree": "fb1158993bab2e027984cedab59b402c051a45a7",
      "parents": [
        "91f0fdb4372d3f2bcfcd9db67afcbe7ee1901048"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Jul 15 23:58:44 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Aug 01 14:49:40 2018 +0100"
      },
      "message": "Move MethodInfo to CodeInfo.\n\nThere is no need to treat it specially any more,\nbecause of the de-duplication at BitTable level.\n\nThis saves 0.6% of oat file size.\n\nTest: test-art-host-gtest\nChange-Id: Ife7927d736243879a41d6f325d49ebf6930a63f6\n"
    },
    {
      "commit": "8808756b8fba036a9c73a45c800a56be09872364",
      "tree": "9b28f314ff516d1d9b85d07f71bdc77fad465e48",
      "parents": [
        "dda4e8b5f2ffed24a2dcdb99d2301d9fc0eb91e2"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sat Jun 23 22:05:56 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jul 27 15:03:06 2018 +0100"
      },
      "message": "Remove frame info from OatQuickMethodHeader.\n\nThe information has been moved to CodeInfo,\nwhere it is stored in much more compact way.\n\nThe old CL which added the data to CodeInfo cost 0.7%.\nThis CL saves 2.5% of .oat file size so a win overall.\n\nTest: test-art-host-gtest\nChange-Id: I07fcf6f2776c96218f995ba3b57a1e6ccbf5e317\n"
    },
    {
      "commit": "79aa6242ba17a4aac20cc79179e094d9748b7c0c",
      "tree": "7b13a14f0ce6d6ca11de3957664c2a44c359e8a2",
      "parents": [
        "cba94faf17f9446f57e1ad2848703944970e51da"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jul 12 13:28:42 2018 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jul 12 13:28:42 2018 +0000"
      },
      "message": "Revert^2 \"Use frame info from CodeInfo.\"\n\nThis reverts commit cba94faf17f9446f57e1ad2848703944970e51da.\n\nChange-Id: I15eae55987a8c56400282da08b4ad282dddc8af9\n"
    },
    {
      "commit": "cba94faf17f9446f57e1ad2848703944970e51da",
      "tree": "a833bf651517419264cfa17a4c1bc61cf86c1800",
      "parents": [
        "691124fa1bbd0636225afda657712b649ab4d2ba"
      ],
      "author": {
        "name": "Yohei Yukawa",
        "email": "yukawa@google.com",
        "time": "Thu Jul 05 01:35:44 2018 +0000"
      },
      "committer": {
        "name": "Yohei Yukawa",
        "email": "yukawa@google.com",
        "time": "Thu Jul 05 01:35:44 2018 +0000"
      },
      "message": "Revert \"Use frame info from CodeInfo.\"\n\nThis reverts commit 691124fa1bbd0636225afda657712b649ab4d2ba.\n\nReason for revert:\nMultiple build failures due to check failure\n  oat_quick_method_header.h:162 Check failed: IsOptimized()\n\nChange-Id: I45f6f765a2067cbb13f28a2d0b783b020ac3432d\n"
    },
    {
      "commit": "691124fa1bbd0636225afda657712b649ab4d2ba",
      "tree": "7b13a14f0ce6d6ca11de3957664c2a44c359e8a2",
      "parents": [
        "64cdf56aeac47ab2dfd4f6437f976de9a9ad372d"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sat Jun 23 22:05:53 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jul 04 15:14:19 2018 +0000"
      },
      "message": "Use frame info from CodeInfo.\n\nStill keep the other copy around for verification.\n\nTest: test-art-host-gtest\nChange-Id: Iae4672e52d7ff3006d8f2b6238aecfac6101a1d8\n"
    },
    {
      "commit": "b68ed2c708a5a3fcc8c2cec944c1080a6fbb88f5",
      "tree": "dabb0134bd5f27ee99628a7eafe65b2b6212934c",
      "parents": [
        "2e639002351545a76b0dbb2fbcb33c988d2d786e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 20 10:39:31 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 20 10:40:56 2018 -0700"
      },
      "message": "ART: Ensure OatQuickMethodHeader is trivially copyable\n\nRemove empty constructor.\n\nTest: mmma art\nChange-Id: Ie58721299a6675797e9a525f4eb7e6df82abed50\n"
    },
    {
      "commit": "052f8ca1776ed7deb4f036498edd69eb6a1b942f",
      "tree": "ae993f1a634b258e124df12663a1d24859917b05",
      "parents": [
        "1c515f0b9d621869a2e67ce5e0f5532d0f2f323a"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Apr 26 15:42:54 2018 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon May 21 20:28:41 2018 +0100"
      },
      "message": "Rewrite stackmap encoding code.\n\nRemove most of the code related to handling of bit encodings.\nThe design is still same; the encodings are just more implicit.\nMost of the complexity is replaced with a single BitTable class,\nwhich is a generic purpose table of tightly bit-packed integers.\nIt has its own header which stores the bit-encoding of columns,\nand that removes the need to handle the encodings explicitly.\n\nOther classes, like StackMap, are accessors into the BitTable,\nwith named getter methods for the individual columns.\n\nThis CL saves ~1% of .oat file size (~4% of stackmap size).\n\nTest: test-art-host-gtest\nChange-Id: I7e92683753b0cc376300e3b23d892feac3670890\n"
    },
    {
      "commit": "c431b9dc4b23cc950eb313695258df5d89f53b22",
      "tree": "422273559c3ae52caff0c6b1cf1a62a8312f0e26",
      "parents": [
        "f46f46cf5bd32788d5252b7107628a66594a5e98"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Mar 02 12:01:51 2018 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Mar 05 13:58:20 2018 -0800"
      },
      "message": "Move most of runtime/base to libartbase/base\n\nEnforce the layering that code in runtime/base should not depend on\nruntime by separating it into libartbase.  Some of the code in\nruntime/base depends on the Runtime class, so it cannot be moved yet.\nAlso, some of the tests depend on CommonRuntimeTest, which itself needs\nto be factored (in a subsequent CL).\n\nBug: 22322814\nTest: make -j 50 checkbuild\n      make -j 50 test-art-host\n\nChange-Id: I8b096c1e2542f829eb456b4b057c71421b77d7e2\n"
    },
    {
      "commit": "33bff25bcd7a02d35c54f63740eadb1a4833fc92",
      "tree": "553db4f60878acf2a0fa7036a739d406df9a29b7",
      "parents": [
        "321b3ca9a36d769283c64d4bdee0798db80af524"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 01 14:35:42 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 02 10:11:02 2017 +0000"
      },
      "message": "ART: Make InstructionSet an enum class and add kLast.\n\nAdding InstructionSet::kLast shall make it easier to encode\nthe InstructionSet in fewer bits using BitField\u003c\u003e. However,\nintroducing `kLast` into the `art` namespace is not a good\nidea, so we change the InstructionSet to an enum class.\nThis also uncovered a case of InstructionSet::kNone being\nerroneously used instead of vixl32::Condition::None(), so\nit\u0027s good to remove `kNone` from the `art` namespace.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I6fa6168dfba4ed6da86d021a69c80224f09997a6\n"
    },
    {
      "commit": "8cf9cb386cd9286d67e879f1ee501ec00d72a4e1",
      "tree": "88e86e214b425e444760fe4e0ffeee677e1558a2",
      "parents": [
        "914b7b6a6c9f399b26b41e9160e9871ef749e0db"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 19 09:28:38 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 24 16:07:10 2017 -0700"
      },
      "message": "ART: Include cleanup\n\nLet clang-format reorder the header includes.\n\nDerived with:\n\n* .clang-format:\n BasedOnStyle: Google\n IncludeIsMainRegex: \u0027(_test|-inl)?$\u0027\n\n* Steps:\n find . -name \u0027*.cc\u0027 -o -name \u0027*.h\u0027 | xargs sed -i.bak -e \u0027s/^#include/ #include/\u0027 ; git commit -a -m \u0027ART: Include cleanup\u0027\n git-clang-format -style\u003dfile HEAD^\n manual inspection\n git commit -a --amend\n\nTest: mmma art\nChange-Id: Ia963a8ce3ce5f96b5e78acd587e26908c7a70d02\n"
    },
    {
      "commit": "2665bc8159698429f20a08f814e63c434910d608",
      "tree": "789342315c3cc1cd8d8dba9ac5a7f348e3ff4aab",
      "parents": [
        "d5580a920370920f107914869361e92f8da8e91d"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Tue May 09 15:55:57 2017 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Wed May 10 11:10:23 2017 -0700"
      },
      "message": "Add explicit default copy constructor\n\nDefinition of implicit copy constructor is deprecated if it has a\nuser-declared destructor. This triggers -Wdeprecated compiler warning\nand breaks the build in latest Clang update.\n\nTest: Build\nBug: 37752547\nChange-Id: I9827e09d0ef846369917192c50db2bb80a0bd0bb\n"
    },
    {
      "commit": "051071718085ce807a2e7c55278a8d723e238e86",
      "tree": "396c41b8b887544f2905c5f97055e2f123c67730",
      "parents": [
        "ed883a11b8cd7f3712bd30fca1e2b0fb641bff63"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 16 13:17:50 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 16 13:25:00 2017 -0700"
      },
      "message": "Delete SrcMap\n\nNo longer used. SrcMapElem is still used by elf_debug_line_writer.h.\n\nAddress previous comments from aog/351387.\n\nTest: make\n\nChange-Id: Ib1525168b14889abbdc78ba20c64f3223b140a51\n"
    },
    {
      "commit": "cbcedbf9382bc773713cd3552ed96f417bf1daeb",
      "tree": "58eed766a69ddddbc41d21624244e14547fa1dff",
      "parents": [
        "ef62210a1466c133056c4bfdae9f8f5417065eff"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Mar 12 22:24:50 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 16 10:20:34 2017 -0700"
      },
      "message": "Add method info to oat files\n\nThe method info data is stored separately from the code info to\nreduce oat size by improving deduplication of stack maps.\n\nTo reduce code size, this moves the invoke info and inline info\nmethod indices to this table.\n\nOat size for a large app (arm64): 77746816 -\u003e 74023552 (-4.8%)\nAverage oat size reduction for golem (arm64): 2%\n\nRepurposed unused SrcMapElem deduping to be for MethodInfo.\nTODO: Delete SrcMapElem in a follow up CL.\n\nBug: 36124906\n\nTest: clean-oat-host \u0026\u0026 test-art-host-run-test\n\nChange-Id: I2241362e728389030b959f42161ce817cf6e2009\n"
    },
    {
      "commit": "063fc772b5b8aed7d769cd7cccb6ddc7619326ee",
      "tree": "bc165781989087a998721991504e589a7d5b0926",
      "parents": [
        "48d08a4233ee4450b0d5073d41445f9dd1f17191"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Aug 02 11:02:54 2016 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Dec 01 11:15:47 2016 -0800"
      },
      "message": "Class Hierarchy Analysis (CHA)\n\nThe class linker now tracks whether a method has a single implementation\nand if so, the JIT compiler will try to devirtualize a virtual call for\nthe method into a direct call. If the single-implementation assumption\nis violated due to additional class linking, compiled code that makes the\nassumption is invalidated. Deoptimization is triggered for compiled code\nlive on stack. Instead of patching return pc\u0027s on stack, a CHA guard is\nadded which checks a hidden should_deoptimize flag for deoptimization.\nThis approach limits the number of deoptimization points.\n\nThis CL does not devirtualize abstract/interface method invocation.\n\nSlides on CHA:\nhttps://docs.google.com/a/google.com/presentation/d/1Ax6cabP1vM44aLOaJU3B26n5fTE9w5YU-1CRevIDsBc/edit?usp\u003dsharing\n\nChange-Id: I18bf716a601b6413b46312e925a6ad9e4008efa4\nTest: ART_TEST_JIT\u003dtrue m test-art-host/target-run-test test-art-host-gtest\n"
    },
    {
      "commit": "132d8363bf8cb043d910836672192ec8c36649b6",
      "tree": "42ee8b08f0323e9762675333b50a4c218ecdefc7",
      "parents": [
        "e89667815b9d0a1eacb91678fed2a7518bb07cc2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 16 09:19:42 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 18 14:31:30 2016 +0000"
      },
      "message": "Revert \"Revert \"Revert \"Revert \"JIT root tables.\"\"\"\"\n\nTest: 626-set-resolved-string, test-art-host, test-art-target\nTest: run-libcore-tests.sh\nTest: phone boots and runs\n\nThis reverts commit 3395fbc20bcd20948bec8958db91b304c17cacd8.\n\nChange-Id: I104b73d093e3eb6a271d564cfdb9ab09c1c8cf24\n"
    },
    {
      "commit": "3395fbc20bcd20948bec8958db91b304c17cacd8",
      "tree": "e0d00b412961e2aaa0dff91317a9f4168189e5fb",
      "parents": [
        "75afcdd3503a8a8518e5b23d21b6e73306ce39ce"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 14 12:40:52 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 14 12:40:52 2016 +0000"
      },
      "message": "Revert \"Revert \"Revert \"JIT root tables.\"\"\"\n\nlibcore failures:\ndalvikvm32 F 11-14 03:04:06 14870 14870 jit_code_cache.cc:310] Check failed: new_string !\u003d nullptr\n\nThis reverts commit 75afcdd3503a8a8518e5b23d21b6e73306ce39ce.\n\nChange-Id: I5a6b6b48aa79a763d1ff1ba4d85d63811254787d\n"
    },
    {
      "commit": "75afcdd3503a8a8518e5b23d21b6e73306ce39ce",
      "tree": "b49afc4772fa72319475f96ed66d744bb03e803c",
      "parents": [
        "ee48b0f11df812d98de5c989e1f6d95a21515564"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 10 10:38:11 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 11 13:18:24 2016 +0000"
      },
      "message": "Revert \"Revert \"JIT root tables.\"\"\n\nAlso  contains Revert \"Support kJitTableAddress in x86/arm/arm64.\"\n\nThis reverts commit 4acd03638fcdb4e5d1666f8eec7eb3bf6d6be035.\nThis reverts commit 997d1217830c0a18b70faeabd53c04700a87d7d9.\n\nTest: ART_USE_READ_BARRIER\u003dtrue/false test-art-host test-art-target\n\nChange-Id: I77cb1e9bf8f1b4c58b72d3cf5ca31ced2aaa1ea3\n"
    },
    {
      "commit": "4acd03638fcdb4e5d1666f8eec7eb3bf6d6be035",
      "tree": "1220262d0ed22d91777c68a8a568348cddf820cb",
      "parents": [
        "ac3ebc3150760425ed00abd56da48f9a6e0666bc"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 17:30:31 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 09 17:30:31 2016 +0000"
      },
      "message": "Revert \"JIT root tables.\"\n\nMay be the offender for jit-gcstress failure of 902.\n\nThis reverts commit ac3ebc3150760425ed00abd56da48f9a6e0666bc.\n\nChange-Id: I9ea6c9236fd1729fed7d1868dd8a111172932308\n"
    },
    {
      "commit": "ac3ebc3150760425ed00abd56da48f9a6e0666bc",
      "tree": "3c5c923bb00a898e035c0e7c4b8a6a684a578419",
      "parents": [
        "76ad2405b40547e0ab4fc401fb8303189ff783eb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 05 13:13:50 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 08 17:21:30 2016 +0000"
      },
      "message": "JIT root tables.\n\nImplement root tables for the JIT. Each JIT compiled method\ngets a table allocated before the stack maps.\n\nThe table gets visited through Runtime::SweepSystemWeaks.\n\nImplement String roots for x86_64 as an example.\n\nTest: test-art-host test-art-target\n\nChange-Id: Id3d5bc67479e08b52dd4b253e970201203a0f0d2\n"
    },
    {
      "commit": "a5931185c97c7b17981a9fc5016834a0bdd9480b",
      "tree": "22f1a57647d7113c7c5aa5e0f0db5937380f2739",
      "parents": [
        "fce42f486d9a607fb4fb472ec142a82ceccb6b5f"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Sep 01 15:08:13 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Sep 15 09:09:35 2016 -0700"
      },
      "message": "Fix google-explicit-constructor warnings in art.\n\n* Add explicit keyword to conversion constructors,\n  or NOLINT for implicit converters.\nBug: 28341362\nTest: build with WITH_TIDY\u003d1\n\nChange-Id: I1e1ee2661812944904fedadeff97b620506db47d\n"
    },
    {
      "commit": "9d07e3d128ccfa0ef7670feadd424a825e447d1d",
      "tree": "dfb677fd75f0f297fef9bc49311cf1d22c770f56",
      "parents": [
        "eb98c0ded592cfca8187c744393c82efd1020b2a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Mar 31 12:02:28 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 04 17:50:20 2016 +0100"
      },
      "message": "Clean up OatQuickMethodHeader after Quick removal.\n\nThis reduces the size of the pre-header by 8 bytes, reducing\noat file size and mmapped .text section size. The memory\nneeded to store a CompiledMethod by dex2oat is also reduced,\nfor 32-bit dex2oat by 8B and for 64-bit dex2oat by 16B. The\naosp_flounder-userdebug 32-bit and 64-bit boot.oat are each\nabout 1.1MiB smaller.\n\nDisable the broken StubTest.IMT, b/27991555 .\n\nChange-Id: I05fe45c28c8ffb7a0fa8b1117b969786748b1039\n"
    },
    {
      "commit": "6832fbe366dd4fc79daa8976f8edbe78d4591649",
      "tree": "31f4e846bc6a97c59fda0617bdea298588313680",
      "parents": [
        "2de1e8a52ef8d4b2e033f3404ca9cc970bb5149c"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Mar 11 18:48:55 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Mar 11 19:05:54 2016 +0000"
      },
      "message": "Fix DCHECK in OatQuickMethodHeader::GetFrameSizeInBytes()\n\nWe should check whether the frame is divisible by kStackAlignment.\n\nChange-Id: I5936a6e90b38c09775b4c3a8212641e639c4181c\n"
    },
    {
      "commit": "5d950769b607b4f76413212db640a32d796911de",
      "tree": "959ef6ac8fc67330243268a95cd990f805aebfca",
      "parents": [
        "b2359d4fb2c9de12830301faede59f4d5fa46278"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Mar 07 20:47:29 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Mar 11 17:39:01 2016 +0000"
      },
      "message": "Symbolize native debug information for AOTed methods in boot.oat.\n\nThe oatdump symbolizer will produce all DWARF information now,\nnot just the symtab. This allows us to recover almost all native\ndebug information after the fact, even for non-debuggable oat files.\n\nThe main drawback is that non-debuggable oat files do not have\nenough stackmaps to provide reasonable line stepping experience.\nWe might also be missing inlined methods from backtraces.\n\nChange-Id: I73ff6f43a3a0e5a0907af353f74f04e9b0129590\n"
    },
    {
      "commit": "b331febbab8e916680faba722cc84b66b84218a3",
      "tree": "35f985b021e476914bfe91492da23fee218014a7",
      "parents": [
        "586996afc905518ed926e4680aab67bedabec9b7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 05 16:51:53 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 05 17:11:54 2016 +0000"
      },
      "message": "Revert \"Revert \"Implement on-stack replacement for arm/arm64/x86/x86_64.\"\"\n\nThis reverts commit bd89a5c556324062b7d841843b039392e84cfaf4.\n\nChange-Id: I08d190431520baa7fcec8fbdb444519f25ac8d44\n"
    },
    {
      "commit": "dcdc85bbd569f0ee66c331b4219c19304a616214",
      "tree": "b5ab789248e279318f6c1e3f6c511703d7294476",
      "parents": [
        "48944c760b196188b968b7af81439466cf987a75"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Dec 04 14:06:18 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 23 21:14:23 2015 -0800"
      },
      "message": "Dex2oat support for multiple oat file and image file outputs.\n\nMultiple changes to dex2oat and the runtime to support a --multi-image\noption. This generates a separate oat file and image file output for\neach dex file input.\n\nChange-Id: Ie1d6f0b8afa8aed5790065b8c2eb177990c60129\n"
    },
    {
      "commit": "562ff44698fc75f82e1f6cb0b71ce21df4328959",
      "tree": "fd7b7b17bdc7c99c229a52c892c9d478de67172d",
      "parents": [
        "3aa2895fe9d2cb8c7fb04154463d296c5eab4fee"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 27 18:51:20 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 27 18:52:35 2015 +0000"
      },
      "message": "Revert \"Remove DCHECK that does not work for gtests.\"\n\nAnd fix the code alignment in gtests.\n\nThis reverts commit 7d32dbc02beac2cb0217d52b61f2b3ef9974ffa6.\n\nChange-Id: I68813c36d1493f2746ceb129b30a649350d6bc13\n"
    },
    {
      "commit": "7d32dbc02beac2cb0217d52b61f2b3ef9974ffa6",
      "tree": "186ab83ebb5feac28a78c33bb80d68c8110b42a2",
      "parents": [
        "903ef50ed03444b28899088f977d5c2d0ff67d49"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 27 18:18:39 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 27 18:18:39 2015 +0000"
      },
      "message": "Remove DCHECK that does not work for gtests.\n\nChange-Id: I12e11fd2faffa2e53771a0dd988447f9d72b554b\n"
    },
    {
      "commit": "1dad3f68b7f5a4a4cb2b281413357adc2309a8fd",
      "tree": "df482d1f65e55a9a228c925e96532942fb25eb47",
      "parents": [
        "fe97bfeabcf99d470e7d974a68ec6b6641648396"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 23 14:59:54 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Oct 26 19:10:55 2015 +0000"
      },
      "message": "Support garbage collection of JITted code.\n\nChange-Id: I9afc544460ae4fb31149644b6196ac7f5182c784\n"
    },
    {
      "commit": "524e7ea8cd17bad17bd9f3e0ccbb19ad0d4d9c02",
      "tree": "ad07cc96f633bdae839ff2f1553d84b9c864a930",
      "parents": [
        "b697c447eb61c2e14315166ec3b0d16375ae403c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 16 17:13:34 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 20 11:52:11 2015 +0100"
      },
      "message": "Remove ArtCode.\n\n- Instead use OatQuickMethodHeader.\n- Various cleanups now that we don\u0027t have all those\n  ArtMethod -\u003e ArtCode -\u003e OatQuickMethodHeader indirections.\n\nAs a consequence of this cleanup, exception handling got a bit\nfaster.\n\nParserCombinators benchmark (exception intensive) on x64: (lower is better)\nBefore:\nParserCombinators(RunTime): 1062500.0 us.\nAfter:\nParserCombinators(RunTime): 833000.0 us.\n\nChange-Id: Idac917b6f1b0dc254ad68fb3781cd61bccadb0f3\n"
    }
  ]
}
