)]}'
{
  "log": [
    {
      "commit": "372f3a374681ef11f003460e14249adb7bc8313d",
      "tree": "b6d2bd95975a0ce1096dc2aa761f8e6b30e42b18",
      "parents": [
        "9c07ab332b8ebbcb1586c311bfcb75e19b8a35b4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Aug 19 10:49:06 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Aug 19 16:46:56 2016 -0700"
      },
      "message": "ART: Add thread offset printing hook to disassembler\n\nTo prepare separation of disassembler from libart, add a function\nhook to the disassembler options for thread offset name printing.\n\nBug: 15436106\nChange-Id: I9e9b7e565ae923952c64026f675ac527b560f51b\n"
    },
    {
      "commit": "fd36f1f927c138575184a1f4c7ea4e7abb3e2dbf",
      "tree": "2debb35c9193ac019071e0625986698ccbcaabb8",
      "parents": [
        "c218427ab96e521e0c4e9a3ffeb87e6c57eea0a5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 03 18:49:58 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 10 14:19:49 2016 +0100"
      },
      "message": "Rename callee save enumerators.\n\nAnd related image method enumerators, macros, etc.\nClean up some entrypoint assembly comments.\n\nThis is a follow-up to\n    https://android-review.googlesource.com/252348\n\nTest: Run ART test suite on host and Nexus 9.\nBug: 30212852\nChange-Id: I2707342d4255c88c547655be83ed97a67e12ae9e\n"
    },
    {
      "commit": "da820e97bbe7f0a2f06060d8766bc03341904f40",
      "tree": "503af340d1550c84e36069a62e3af34262152907",
      "parents": [
        "965c0b9f98a4acbec7be148291196e30784bba2d"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Aug 04 09:41:55 2016 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Aug 04 12:13:00 2016 -0700"
      },
      "message": "Clean up use of art::Exec versus execv.\n\nBug: b/30143290\nChange-Id: I41dcaad39beea857bb606d39c1f15ba1da963e46\nTest: test-art-host-gtest-oatdump_test\n"
    },
    {
      "commit": "965c0b9f98a4acbec7be148291196e30784bba2d",
      "tree": "c9b53c36226535f2941d47a1ea222da114266680",
      "parents": [
        "2e98023165349ab91855555f63fed8dad3c471fe",
        "952dbb19cd094b8bfb01dbb33e0878db429e499a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 04 14:44:10 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 04 14:44:10 2016 +0000"
      },
      "message": "Merge \"Change suspend entrypoint to save all registers.\""
    },
    {
      "commit": "952dbb19cd094b8bfb01dbb33e0878db429e499a",
      "tree": "82932c2b00245042e2c129f3d4133f6431657da3",
      "parents": [
        "df638c66d1f385d4e217b2ab22c5e48a7eefdef4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 28 12:01:51 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 04 14:51:52 2016 +0100"
      },
      "message": "Change suspend entrypoint to save all registers.\n\nWe avoid the need to save/restore registers in slow paths\nand get significant code size savings. On Nexus 9, AOSP:\n  - 32-bit boot.oat: -1.4MiB (-1.9%)\n  - 64-bit boot.oat: -2.0MiB (-2.3%)\n  - other 32-bit oat files in dalvik-cache: -200KiB (-1.7%)\n  - other 64-bit oat files in dalvik-cache: -2.3MiB (-2.1%)\n\nTest: Run ART test suite on host and Nexus 9 with gc stress.\nBug: 30212852\nChange-Id: I7015afc1e7d30341618c9200a3dc9ae277afd134\n"
    },
    {
      "commit": "542451cc546779f5c67840e105c51205a1b0a8fd",
      "tree": "11e09bb5abaee12dddffefbe7e425291076dfa7a",
      "parents": [
        "85c4a4b8c9eabfe16e4e49f9b4aa78c1bf4be023"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 26 09:02:02 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Aug 01 18:54:48 2016 -0700"
      },
      "message": "ART: Convert pointer size to enum\n\nMove away from size_t to dedicated enum (class).\n\nBug: 30373134\nBug: 30419309\nTest: m test-art-host\nChange-Id: Id453c330f1065012e7d4f9fc24ac477cc9bb9269\n"
    },
    {
      "commit": "dc00f184b57086263587f1a1c1991336c07a8e4a",
      "tree": "3e4ad30844658b9ccc48f80def1b8de66e2e2622",
      "parents": [
        "2c30a373428b8d19bf97866d5d323c4ca2fbca72"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 14 10:10:44 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 14 13:09:51 2016 -0700"
      },
      "message": "Revert \"Revert \"Dump more dex file data in oatdump\"\"\n\nDelete runtime to fix leak before callin exit.\n\nBug: 29462018\n\nThis reverts commit 9c05578dd2306231437bd290c0f70abc2bb3b6d8.\n\nChange-Id: Ica23ba0f2d07496d0e4a3288329945f612ac3b20\n"
    },
    {
      "commit": "9c05578dd2306231437bd290c0f70abc2bb3b6d8",
      "tree": "0f9983cabba29de867051ea990221603f0ff765a",
      "parents": [
        "8e2c56252aa9527bd9a82bdd147fdc46cf5deb9c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 14 09:24:30 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 14 09:24:30 2016 +0000"
      },
      "message": "Revert \"Dump more dex file data in oatdump\"\n\nBreaks valgrind.\n\nBug: 29462018\n\nThis reverts commit 8e2c56252aa9527bd9a82bdd147fdc46cf5deb9c.\n\nChange-Id: If58cedcee75dd0eda8571e90d63e080a4709d773\n"
    },
    {
      "commit": "8e2c56252aa9527bd9a82bdd147fdc46cf5deb9c",
      "tree": "4b300a176d73caae6c63768e951976a4fde993ef",
      "parents": [
        "633c22de95fe6f80c0dd3176e15de4de3ee4bc79"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 21 15:14:20 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 13 13:20:55 2016 -0700"
      },
      "message": "Dump more dex file data in oatdump\n\nDump some statistics for each dex file along side with strings loaded\nfrom code and dex code bytes.\n\nSample output:\nCumulative dex file data\nNum string ids: 202809\nNum method ids: 320464\nNum field ids: 162822\nNum type ids: 68151\nNum class defs: 48061\nUnique strings loaded from dex code: 51049\nTotal strings loaded from dex code: 106651\nNumber of unique dex code items: 247929\nTotal number of dex code bytes: 11090574\n\nAdded content testing to oat dump test. No significant slowdown.\n\nTEST: test-art-host\nBug: 29462018\n\nChange-Id: I60effd3087d8c427eda4ee26431d5d77165b3939\n"
    },
    {
      "commit": "c6df1e3cbfa7313007ee5fd4a5a6657a28627313",
      "tree": "13042081c7e5a784a90422c759e9b73e5cc9b013",
      "parents": [
        "19c10147cd5f3270c8604d06c4a0e05cbc49e2f1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 04 10:15:47 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jul 04 16:40:51 2016 +0100"
      },
      "message": "Never go to resolution while inspecting inlined frames.\n\nInstead, do a manual inspection and decoding of the invoke\nwith the dex cache.\n\nAlso update oatdump to dump types in the dex cache.\n\nbug:27858645\nChange-Id: I7c0b612ee96e6865fa438c3a1d253686231337bd\ntest:run-test\n"
    },
    {
      "commit": "bc233ac730abb838d9e401d297d1583a037c8731",
      "tree": "3eab24d92c96642e450d4588082c466d9fecff2e",
      "parents": [
        "5f5560dbce6cd81e885c0d9351c1e6d732c2e0ca"
      ],
      "author": {
        "name": "Christina Wadsworth",
        "email": "cwadsworth@google.com",
        "time": "Mon Jun 20 15:01:32 2016 -0700"
      },
      "committer": {
        "name": "Christina Wadsworth",
        "email": "cwadsworth@google.com",
        "time": "Tue Jun 21 14:13:56 2016 -0700"
      },
      "message": "Number of unique strings loaded from dex code added to oatdump\n\nbug: 20323084\n\n(cherry picked from commit c0bf6a678fcf6c8aa230ea3401093ed162225f85)\n\nChange-Id: I8dfb6c8e8cae1a9eb7cc209390062ea84092a824\n"
    },
    {
      "commit": "1ebf8d3ebdffebe1a0f8233a0f813c0447f85c0c",
      "tree": "edcb15f21c873da20ddf952771445a0445926a96",
      "parents": [
        "9969153d38ae9bf9329c852ced0ffe84f7661b13"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 09 11:51:27 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 09 14:05:54 2016 -0700"
      },
      "message": "Fix some \"possible\" divide by 0\n\nBug: 28529431\nChange-Id: I61f638926b2ae63c5f883fc2cfdce19b00ce79c8\n"
    },
    {
      "commit": "f284d448e3edd428b6ade473d0993028638b2064",
      "tree": "e24f57f952f4e6c850ec910de3361aef6340727a",
      "parents": [
        "3f432d5a7c184b7580bd5aba27158c1455c328ff"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 02 11:48:30 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 02 18:03:41 2016 -0700"
      },
      "message": "Hold dex caches live in class table\n\nPrevents temporary dex caches being unloaded for the same dex file.\nUsually this is OK, but if someone resolved a string in that dex\ncache, it could leave stale pointers in BSS. Also it can use extra\nmemory in linear alloc if we allocate dex cache arrays multiple\ntimes.\n\nBug: 29083330\nChange-Id: Ia44668f013ceef1f5eb80f653a48d0f8004548c9\n"
    },
    {
      "commit": "d3059e77818a058513ed92557160bdb6d5102b67",
      "tree": "cff82528de3dd71104d9b3fa4e1a57f2c9fc81dc",
      "parents": [
        "b0fca360a081eff1a44c6f055c628e2dba44c003"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed May 11 10:30:47 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu May 12 10:01:08 2016 -0700"
      },
      "message": "Fix oatdump crash on arm64/arm code.\nAlso adds 16 bit literal information.\n\nRationale:\nWhen \"run-away\" instructions are disassembled, the literal\naddresses may go out of range, causing oatdump to crash.\nThis CL guards memory access against the full memory range\nallocated to assembly instructions and data (it is possible\nbut not really necessary to refine this a bit). Out of range\narguments are now displayed as (?) to denote the issue, which\nis a lot nicer than crashing.\n\nBUG\u003d28670871\n\nChange-Id: I51e9b6a6a99162546fe31059f14278e8980451c2\n"
    },
    {
      "commit": "2ba8895b4257d0e32a7b269bc2e7f6a3ec39a86a",
      "tree": "70f1c90b2344a67b58aa0b7f05ae66007e7b6e84",
      "parents": [
        "40d3061ea1a2a07a1aede662318257aa0fa5fe4b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 29 17:52:07 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue May 03 17:37:03 2016 -0700"
      },
      "message": "ART: Dump more OatDexFile data in oatdump\n\nAdd some stats about the enclosed dex file and type table when\ndumping an oat file.\n\nBug: 28251566\n\n(cherry picked from commit 00bb716039d23e02797a3858fcdb0380a9bb8855)\n\nChange-Id: I80c14e85d68cd1e3e4c64b7b9d86059d5ac8a6ad\n"
    },
    {
      "commit": "e42888f9df4163303244070c65d5229d3e201742",
      "tree": "c3c3e380ed16676186040f1da6042fc2cd58e041",
      "parents": [
        "7f98c9a6babe3a21d84ce1f1e1273c99975a47f5"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 14 10:49:19 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 27 12:45:30 2016 -0700"
      },
      "message": "Write conflict tables in image\n\nAdd image sections for runtime methods and conflict tables. This\nmakes it that we do not need to fake up a length prefixed array\nfor runtime methods.\n\nReduces .art private dirty and PSS.\n\nSystem wide .art PSS goes from 32.5MB to 30.5MB after system boot.\n\nBusiness card .art private dirty goes from 588K to 504K.\n\nIncreases image size by ~100K.\n\nBug: 27906566\n\n(cherry picked from commit cda9386add68d94697449c6cb08b356747e55c21)\n\nChange-Id: I38cbe3150c3eeb385b8cad7cf93614e3980f4162\n"
    },
    {
      "commit": "adbf93edb12dee174be3c5cad4d65ea97b40ffb5",
      "tree": "909cf46f3948a2a67d2daa75bc1cb01ff2ef744a",
      "parents": [
        "82a0229e949eb3ea209c2bd33fe2d60908f5dbc7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Apr 08 11:18:25 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 11 14:19:42 2016 +0100"
      },
      "message": "Oatdump: Smarter StackMap lookup to improve performance.\n\nShaves off roughly 10% from the oatdump_test time.\n\nBug: 27824283\nChange-Id: I6c2fd3b1db2723871641d43aeb543581d405cfcb\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": "85f5de08d02515b36e381834967d5d047d5bbcc4",
      "tree": "c7b472b07725bfb105da23e987c4e110d84be7b7",
      "parents": [
        "cf0f8560f41467331427418584687830932e66ed",
        "a1b4c5f562c67398e14756bd127ed806937ff35a"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Apr 01 16:46:32 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 01 16:46:33 2016 +0000"
      },
      "message": "Merge \"Fix thumb bit in the oatdump symbolizer.\""
    },
    {
      "commit": "fe2b13717879abae993603534a145372e3110aae",
      "tree": "5b499eb28af5e91e00ff86683f51df029a2b86b4",
      "parents": [
        "5c26e430fbeaf56e3a5da4e3f167ff35fbb71ef9",
        "09ed09866da6d8c7448ef297c148bfa577a247c2"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Apr 01 12:28:51 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 01 12:28:51 2016 +0000"
      },
      "message": "Merge \"Pack stack map entries on bit level to save space.\""
    },
    {
      "commit": "afc4829d593c173e8e9bdca90257a4cc8a104537",
      "tree": "de1adaf1a38bb94a2b7427f84d15ab193e2cb698",
      "parents": [
        "19a4784ce1b9c6a0b3d3cdb91a182baa7adbb946",
        "71f2e80e723dd5d7b9fe55e1ee70d196531921ad"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 01 01:13:17 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 01 01:13:17 2016 +0000"
      },
      "message": "Merge \"ART: Actually run tests cross arch for oatdump\""
    },
    {
      "commit": "09ed09866da6d8c7448ef297c148bfa577a247c2",
      "tree": "dad6a5dae6ca6131f1eba201eaa371edc6d9929d",
      "parents": [
        "e28ad4b91591c226ed404a2b01104bb99bfeb28f"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Feb 12 21:58:43 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Mar 31 22:12:07 2016 +0100"
      },
      "message": "Pack stack map entries on bit level to save space.\n\nUse only the minimum number of bits required to store stack map data.\nFor example, if native_pc needs 5 bits and dex_pc needs 3 bits, they\nwill share the first byte of the stack map entry.\n\nThe header is changed to store bit offsets of the fields rather than\nbyte sizes. Offsets also make it easier to access later fields without\ncalculating sum of all previous sizes.\n\nAll of the header fields are byte sized or encoded as ULEB128 instead\nof the previous fixed size encoding. This shrinks it by about half.\n\nIt saves 3.6 MB from non-debuggable boot.oat (AOSP).\nIt saves 3.1 MB from debuggable boot.oat (AOSP).\n\nIt saves 2.8 MB (of 99.4 MB) from /system/framework/arm/ (GOOG).\nIt saves 1.0 MB (of 27.8 MB) from /system/framework/oat/arm/ (GOOG).\n\nField loads from stackmaps seem to get around 10% faster.\n(based on the time it takes to load all stackmap entries from boot.oat)\n\nBug: 27640410\nChange-Id: I8bf0996b4eb24300c1b0dfc6e9d99fe85d04a1b7\n"
    },
    {
      "commit": "a1b4c5f562c67398e14756bd127ed806937ff35a",
      "tree": "0dbd94983374f0783d684c30808a72fd2761e00b",
      "parents": [
        "e28ad4b91591c226ed404a2b01104bb99bfeb28f"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Mar 31 18:17:59 2016 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Mar 31 19:11:43 2016 +0100"
      },
      "message": "Fix thumb bit in the oatdump symbolizer.\n\nMethodDebugInfo expects code address without the bit set.\nTherefore we need to clear it before passing it to the DWARF writer.\n\nChange-Id: I37586b19f2a3fc95107abb6204a34e95a3816936\n"
    },
    {
      "commit": "7da317019d386b9f0b06ae6473d21ed5d675100e",
      "tree": "6149fa478a9b4892f63acad508868ff789bcdca4",
      "parents": [
        "6f51d7756a9c66007fe7666b19399e1f60ff6092"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 29 18:42:21 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 29 18:45:05 2016 +0100"
      },
      "message": "Disable oatdump_test on mips due to timeouts.\n\nBug: 27824283\nChange-Id: I8014471385fdfe0e98760af04507cd81338f9952\n"
    },
    {
      "commit": "bf9611f821697b14bf9e170f503c3f47613b046b",
      "tree": "c5d6de40e988c1d92f51639243443b225e45808f",
      "parents": [
        "782d0464ddc92fd5d55a330068d2d255336c16ba"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 25 16:58:00 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 28 15:51:07 2016 -0700"
      },
      "message": "ART: Clean up verifier\n\nClean up verifier post-Quick.\n\nChange-Id: I0b05e10dd06edd228fe2068c8afffc4b7d7fdffa\n"
    },
    {
      "commit": "71f2e80e723dd5d7b9fe55e1ee70d196531921ad",
      "tree": "f3a68a33e9787531724498aa40486c31ffd1bb96",
      "parents": [
        "af8e71d59b0ab5e79f53a608b62b3618e36e6a98"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 24 18:57:48 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 24 18:57:48 2016 -0700"
      },
      "message": "ART: Actually run tests cross arch for oatdump\n\nTo test the \"other\" image, we need to give an --instruction-set\nparameter. Without one, the current runtime architecture is\nimplicitly used.\n\nBug: 27824283\nChange-Id: I9887fddee9f956ef40b40699cc6fe3378eb40808\n"
    },
    {
      "commit": "973ce7cc191295b8bcc3387dfe264586677507e0",
      "tree": "05a70c6f91422d7df652b187a918c524d6b691c7",
      "parents": [
        "d6026cde1ef7f2b0abb7a3561510fe83a7dd9de2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 24 09:23:04 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 24 09:23:04 2016 +0000"
      },
      "message": "Disable test on arm due to timeouts.\n\nbug:27824283\nChange-Id: I0e4d9b37dd3ac2d2390456a791ff28d9ea0b3510\n"
    },
    {
      "commit": "796d63050a18f263b93ea34951a61deaecab3422",
      "tree": "813865c31b25ac06006e4ee3932b4e918c708c9b",
      "parents": [
        "eecf60d51b481647c8508f22b3d6ce437773ea0c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Mar 13 22:22:31 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 22 15:17:58 2016 +0000"
      },
      "message": "Add an ImtConflictTable to better resolve IMT conflicts.\n\n- Attach a ImtConflictTable to conflict runtime ArtMethod.\n- Initially 0, a new one will be created at the first hit of\n  the conflict method.\n- If the assembly code does not find a target method in the table,\n  we will create a new one again, copying the data from the previous\n  table and adding the new mapping.\n\nImplemented for arm/arm64/x86/x64.\n\nbug:27556801\nbug:24769046\n\nChange-Id: Ie74d1c77cf73d451a1142bdc5e3683f9f84bb4e7\n"
    },
    {
      "commit": "0b4cbd0c2a75b47ae09d21e5d73d2b1709cb5b9e",
      "tree": "72572a01a181c12272a5570ae8b4d41e9ef553f8",
      "parents": [
        "c3214fbb66b5f4c436c44d027df5046c803f6432"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 08 16:49:58 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 14 17:07:11 2016 -0700"
      },
      "message": "Add oatdump support for app images\n\nExample usage on host:\noatdumpd --app-oat\u003dart/plus32.odex --app-image\u003dart/plus32.art\n--image\u003dart/oats/system@framework@boot.art --instruction-set\u003darm\n\nTODO: Add to oatdump test.\n\nBug: 27408512\nBug: 22858531\n\n(cherry picked from commit bcb6a72569a1401b36a3ad3b6aa4d13e29966cf0)\n\nChange-Id: I9d1aa7eaa16795e5fbabc6974d245849e16b1d03\n"
    },
    {
      "commit": "fbc61e19578d281d05728bcd120e1ace57c2fbd8",
      "tree": "50ac061fada6da7fe79ec7e5e8d2b65f079e30da",
      "parents": [
        "7f77eb485810a64cde897933677d9a0e44588647",
        "2fdd03c982386e1d13aed9f1b51e1f0eee237971"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Mar 14 14:19:40 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 14 14:19:40 2016 +0000"
      },
      "message": "Merge \"Add symbolizer option to generate debug information only.\""
    },
    {
      "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": "2fdd03c982386e1d13aed9f1b51e1f0eee237971",
      "tree": "9534c9538c7b63a62121719ba83ff1f436cf5f8a",
      "parents": [
        "60e10c8564f47de0b7f29b26d040c591d5a396b5"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Mar 10 15:32:37 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Mar 11 15:57:01 2016 +0000"
      },
      "message": "Add symbolizer option to generate debug information only.\n\nThere is no need to copy the .rodata and .text sections since the\nconsumers can get their data form the original ELF file. We mark\nthose section as SHT_NOBITS instead, which is the standard way to\ncreate ELF file with separate debug information only.\n\nThe new option is called --only-keep-debug and it essentially has\nthe same effect as --only-keep-debug option for \"strip\" command.\n\nChange-Id: I4f7488c04bbad86288beeda11c3bf295890e740d\n"
    },
    {
      "commit": "1a008a127730710f8f56c1ca66385e1b062a2dcb",
      "tree": "b3d33325c5e5ef2f34aa9a497c83863cf2481abb",
      "parents": [
        "2af7213a4e0d395fe22dcdce6ec10a3bd131023d",
        "197160d47f34238cb5e7444fa4c2de300db8e2c6"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Mar 11 14:25:40 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 11 14:25:41 2016 +0000"
      },
      "message": "Merge \"Refactor MethodDebugInfo (input of DWARF writer).\""
    },
    {
      "commit": "8411aa3d88f4baf583ec4ecd62bb619cacd28acb",
      "tree": "1aaa0c7d61743f512c941a5fc05d7740bfdef2d4",
      "parents": [
        "0555c78e5015ea4f9b1c064a5c77eb693f2edbe1",
        "316a2186b7fa9e03187d45ac0fa320f4dff1f3df"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Mar 10 17:11:44 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 10 17:11:44 2016 +0000"
      },
      "message": "Merge \"Add Mips abiflags section to the oatfile.\""
    },
    {
      "commit": "197160d47f34238cb5e7444fa4c2de300db8e2c6",
      "tree": "4c07b9e97e8ffaffb274d03b63701780baf0b72f",
      "parents": [
        "ef0119a0f329906ba1e8cbd8e53ce5a759fd4f99"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Mar 07 17:33:57 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Mar 10 10:11:31 2016 +0000"
      },
      "message": "Refactor MethodDebugInfo (input of DWARF writer).\n\nDo not pass CompiledMethod pointer through since it is only available\nduring AOT compile but not during JIT compile or at runtime. Creating\nmock CompiledMethod just pass data is proving increasingly tricky, so\ncopy the fields that we need to MethodDebugInfo instead.\n\nChange-Id: I820297b41e769fcac488c0ff2d2ea0492bb13ed8\n"
    },
    {
      "commit": "2d8614bf1ba44468c834d9d3d5562466637f63f2",
      "tree": "9de0c9a5a50dd945feff4e1c358d71e9b743897c",
      "parents": [
        "5d8112029d0e085c5a0099257daa4c7e29c12310"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 07 16:31:34 2016 -0800"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Mar 08 15:32:33 2016 +0000"
      },
      "message": "ART: Use the right ElfBuilder for oatdump symbolizer\n\nWe should not unconditionally output 32-bit ELF files.\n\nBug: 27293423\nChange-Id: Ibbb74a7807b24c46cb23d7b5867936569424e8fe\n"
    },
    {
      "commit": "316a2186b7fa9e03187d45ac0fa320f4dff1f3df",
      "tree": "ce6e7260d488a9f59eb96460ca6f4890267f7185",
      "parents": [
        "5d8112029d0e085c5a0099257daa4c7e29c12310"
      ],
      "author": {
        "name": "Douglas Leung",
        "email": "douglas.leung@imgtec.com",
        "time": "Thu Sep 17 15:26:25 2015 -0700"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Mar 08 13:46:50 2016 +0000"
      },
      "message": "Add Mips abiflags section to the oatfile.\n\nOnce this patch is merged, then the workaround patch:\n0acb15ead6a554a6879b29fd90726b9ea8fd98c4\nin bionic can be removed.\n\nChange-Id: Ie06a3c4e384a23a77db7d04a2508edbf3a6d3933\n"
    },
    {
      "commit": "5d8112029d0e085c5a0099257daa4c7e29c12310",
      "tree": "b98a1b83095ebd34feb3140e6910ec7e830bce0a",
      "parents": [
        "8a8c84114b16b8971bc2d3c5c7e0e31470d1a68b"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Mar 08 13:21:22 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Mar 08 13:46:37 2016 +0000"
      },
      "message": "Propagate InstructionSetFeatures to ElfBuilder.\n\nThis is subset of CL171665 and it separates it into two.\nIt will be needed to generate .MIPS.abiflags ELF section.\n\nChange-Id: I5557e7cb98d0fa1dc57c85cf6161e119c6d50a1a\n"
    },
    {
      "commit": "c03d7b6bcac15ce8f829fee654b91a7e4583769d",
      "tree": "cedca3540fab22bba163baac4b935b16b0e29409",
      "parents": [
        "8d468e351e42e8424f93746d9ee183f8cff01ec2"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Mar 02 12:18:03 2016 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Mar 02 13:47:45 2016 +0000"
      },
      "message": "oatdump: Add option to print just the header\n\nSometimes that\u0027s all one needs.\n\nChange-Id: I0c442ed32f1662ad0b37dc2fccedd964ed1b1466\n"
    },
    {
      "commit": "944da603cde59a4277f3bbc31d860a90842a1a2a",
      "tree": "733bc38a905822097a6a601a1de20b49f54440d3",
      "parents": [
        "52d9c2f0c584877e9c7f9e859d8068b3a2ccb12f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 19 12:27:55 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 24 11:19:23 2016 +0000"
      },
      "message": "ART: Allow method references across oat files for multi-image, 2nd attempt.\n\nThese were disabled because we didn\u0027t have sufficient\ninformation about the multi-image layout when processing\nlink-time patches in OatWriter. This CL refactors the\nELF file creation so that the information is available.\n\nAlso clean up ImageWriter to use oat file indexes instead\nof filenames and avoid reopening the oat file to retrieve\nthe checksum.\n\nChange-Id: Icc7b528deca29da1e473c8f079521a36d6c4892f\n"
    },
    {
      "commit": "45724f9a0cc38dbb3071beb3eeab96499868b49c",
      "tree": "ecbe2d8109125de2031af7ac4e0f4fc03a3b6d12",
      "parents": [
        "6065402316da2b51eed5fc34cffbd991766bd408"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 17 17:46:10 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 17 17:46:10 2016 +0000"
      },
      "message": "Revert \"Allow method references across oat files for multi-image.\"\n\nBreaks Quick tests.\n\nThis reverts commit 6065402316da2b51eed5fc34cffbd991766bd408.\n\nChange-Id: I8a5469ba7cea5f46b85cb489b3e0ef06ed548f03\n"
    },
    {
      "commit": "6065402316da2b51eed5fc34cffbd991766bd408",
      "tree": "cb93e32b978ea03a70baf980c470a03263c084c0",
      "parents": [
        "442643920a6c539e98aad76594e99b932b5631ba"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 16 12:50:23 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 17 16:38:46 2016 +0000"
      },
      "message": "Allow method references across oat files for multi-image.\n\nThese were disabled because we didn\u0027t have sufficient\ninformation about the multi-image layout when processing\nlink-time patches in OatWriter. This CL refactors the\nELF file creation so that the information is available.\n\nChange-Id: I6f2e8dc8572d143c72cc2693bb0ba4fd76f889ab\n"
    },
    {
      "commit": "9e49ab114a367203256f11545c42162a419ee880",
      "tree": "2e04fc7a344fbb1047cc8013fcc970f0b0d8e90b",
      "parents": [
        "9ff1de06d6ed1da36f7e976224a2d13e5e9882bf"
      ],
      "author": {
        "name": "Tamas Berghammer",
        "email": "tberghammer@google.com",
        "time": "Thu Jan 28 16:30:14 2016 +0000"
      },
      "committer": {
        "name": "Tamas Berghammer",
        "email": "tberghammer@google.com",
        "time": "Thu Jan 28 16:30:14 2016 +0000"
      },
      "message": "Add a comment to oatdump for 0 size symbols\n\nThe symbolizer inside oatdump generates 0 size symbols for the\ntrampoline symbols. Add a comment explaining why we emitting them with\n0 size.\n\nChange-Id: I16ed87554681ce57aafc26517a1e674647b5f9ac\n"
    },
    {
      "commit": "2d36c0ced12435e8dbc216c4ee4ebf32dbe19669",
      "tree": "a181cc2a104f17dec77bf7f7f81c7be67fe5fd31",
      "parents": [
        "9e485e66b50598a3978b8a010085063edb0feb85",
        "8f75c455ab41abe709e6e801cf360dbe079d5ffa"
      ],
      "author": {
        "name": "Tamas Berghammer",
        "email": "tberghammer@google.com",
        "time": "Thu Jan 28 15:37:54 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 28 15:37:54 2016 +0000"
      },
      "message": "Merge \"Emit symbol names for trampoline symbols in oatdump\""
    },
    {
      "commit": "78e90155b249588cb800e7f6e5993ebcbd465292",
      "tree": "468ea16de8948f6c53fb99488cb17809932575fa",
      "parents": [
        "a3abcb5250ccb89695049a69d3fb0bd0300ae190",
        "ace0dc1dd5480ad458e622085e51583653853fb9"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 28 00:17:21 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 28 00:17:21 2016 +0000"
      },
      "message": "Merge \"ART: Add option to ensure deterministic compilation\""
    },
    {
      "commit": "ace0dc1dd5480ad458e622085e51583653853fb9",
      "tree": "de095794b5c92933ad667bff353045458bb1c633",
      "parents": [
        "8feb2cc26420f31e1805e57acddbb4ae303a2994"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 20 13:33:13 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 27 15:39:30 2016 -0800"
      },
      "message": "ART: Add option to ensure deterministic compilation\n\nTo ensure reliable stable generation of a boot image, add a flag\nfor forced determinism, trading compile time for a deterministic\noutput.\n\nWe have to run certain passes in the compiler-driver single-threaded.\nIt is also necessary to try to make the heap layout deterministic.\nSwitch to nonconcurrent GC, use the free-list implementation for LOS,\nand try to allocate the main space at a known location. This is best\neffort at the moment.\n\nTo allow the compiler phase to be parallelized, const-strings need\nto be created beforehand.\n\nThe identity hashcode seed needs to be pinned.\n\nBesides the Dex object we also need to null the DexFile pointer in\ndex caches.\n\nFor classes, we need to remove the clinit thread ID.\n\nFix oatdump alignment padding accounting.\n\nBug: 26687569\nChange-Id: Ia82120e8f715bb3691d861817b12778ac677355a\n"
    },
    {
      "commit": "8f75c455ab41abe709e6e801cf360dbe079d5ffa",
      "tree": "7c98b45c4d3504a419748791de0f49a66f8a3848",
      "parents": [
        "c3a02d2e9a12d1cd085c91cc6c876ae44daee805"
      ],
      "author": {
        "name": "Tamas Berghammer",
        "email": "tberghammer@google.com",
        "time": "Tue Jan 26 18:03:43 2016 +0000"
      },
      "committer": {
        "name": "Tamas Berghammer",
        "email": "tberghammer@google.com",
        "time": "Wed Jan 27 17:58:10 2016 +0000"
      },
      "message": "Emit symbol names for trampoline symbols in oatdump\n\nModify the symbolizer functionality of oatdump to emit symbols for\nthe trampolines in the begining of each oat file.\n\nChange-Id: I083c160ff54784f904743f87bcc18881e6ce0603\n"
    },
    {
      "commit": "30202b2665adbb3c7b88b06adfe96d2f0e159099",
      "tree": "ff925840d3f46d8bfb895bf7fcaf19abd7517fde",
      "parents": [
        "c3a02d2e9a12d1cd085c91cc6c876ae44daee805",
        "5b1c2ca30dad519be285f0a1e839c23cc4e3a51d"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jan 27 16:31:02 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 27 16:31:02 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Add option to generate compressed backtrace info.\"\"\""
    },
    {
      "commit": "4a26f17b055cadc949c3e9fdfa637fe5656339d9",
      "tree": "d3cee26249b5ac72c57a7125ae2a73765bf77d96",
      "parents": [
        "caef579e906abc5c3174ba65e5205ea7fd5c44ad"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 26 14:26:18 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 26 17:49:12 2016 -0800"
      },
      "message": "Remove GetImageRoots read barrier for image relocation\n\nFixes CC assertion that failed if an app image was loaded when the GC\nwas running.\n\nBug: 26786304\nChange-Id: I47bea7b4b947332b57be2e2db604c2c25d92b7e2\n"
    },
    {
      "commit": "5b1c2ca30dad519be285f0a1e839c23cc4e3a51d",
      "tree": "330ebac2bd2592ccced6a17b069516afd45fa220",
      "parents": [
        "d112827911122ba6412fd90b8d8b9a9d6db9d513"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jan 25 17:32:41 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jan 26 12:50:23 2016 +0000"
      },
      "message": "Revert \"Revert \"Add option to generate compressed backtrace info.\"\"\n\nThis reverts commit 8546cc9aeb05e866e1fb6a9e4130d53ea330baa8.\n\nChange-Id: I676fdf9af27fa3b16fa8921778ff8832ab8c437d\n"
    },
    {
      "commit": "8546cc9aeb05e866e1fb6a9e4130d53ea330baa8",
      "tree": "580a02752d8e447f6dce7cce01386c7e2a9a87f4",
      "parents": [
        "5fdcc3c931b70204fd8c491afa66f57f8428490f"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jan 25 17:31:49 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jan 25 17:31:49 2016 +0000"
      },
      "message": "Revert \"Add option to generate compressed backtrace info.\"\n\nThis reverts commit 5fdcc3c931b70204fd8c491afa66f57f8428490f.\n\nChange-Id: I9c1f5aad6933a46af6717e3a90a51f76111f9c8a\n"
    },
    {
      "commit": "5fdcc3c931b70204fd8c491afa66f57f8428490f",
      "tree": "729f1433c75dda8a1f0e578a1c5297eed31f7852",
      "parents": [
        "95005291d8ebdd1d2ac58ffc5181fef4fbbf2383"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jan 19 14:33:43 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jan 22 18:10:37 2016 +0000"
      },
      "message": "Add option to generate compressed backtrace info.\n\nAdd flag --generate-mini-debug-info which generates\nLZMA compressed .symtab and .debug_frame, which are\nsufficient to print java backtraces in libunwind.\n\nIf enabled, it increases the size of boot.oat by about 3.5%.\n\nChange-Id: Ic3c2ef7704c05fa328720c6781ca2a9b8e3935a3\n"
    },
    {
      "commit": "4b07a6e518a42eac43f5746e646e90a7865beb83",
      "tree": "58a7bf80553a5bf9acaa872fb82ddf30de055899",
      "parents": [
        "40cfbff0686dde353680dbf585fb7da181a37948"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Jan 15 12:50:44 2016 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Jan 15 12:50:44 2016 -0800"
      },
      "message": "Add oat location to oatdump.\n\nChange-Id: Idc0da67e04048a00c4ce4b524103be0925f66e71\n"
    },
    {
      "commit": "966878d987cec1940fdfa8633fc79f8112320821",
      "tree": "e3449e703e74899a3f63b17c61ed391a3a8c003d",
      "parents": [
        "f8b122bda1c2cc4c9aff41f4a8f7c9a5758e1e97"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 14 14:33:29 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 14 14:44:57 2016 -0800"
      },
      "message": "Revert \"Create parent class loader for dex2oat\"\n\nBug: 22858531\n\nThis reverts commit d37d364c27e74a7b49970a8c970482e273aa7b1a.\n\nChange-Id: Id71a6f3bb9a29c04a5c13210633674e05d798114\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": "9865bde5d822f56c4732214c2005dfcaa41f94cf",
      "tree": "cd2eae058f4f4f13b5a82ff557b7eaaf13a1ecfb",
      "parents": [
        "115a02b737dd5f4d485b2f6c359e02988df66b83"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 21 09:58:16 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 21 09:58:16 2015 -0800"
      },
      "message": "Rename NullHandle to ScopedNullHandle\n\nThis makes it clearer that is invalid to do things like:\nHandle\u003cT\u003e h \u003d ScopedNullHandle\u003cT\u003e();\n\nBug: 26233305\nChange-Id: I6d8f54eae01ec2e901cb7043afa853ea77db79fe\n"
    },
    {
      "commit": "a616b4e086c93e609fb6ac160a4af39c3d0cdf07",
      "tree": "17f59747e664c00370710544f18a26f7ebe9c548",
      "parents": [
        "cf6bd55863ded11e0533966657871aca444505a5",
        "208a5cb383dd9dcd3461f89b74af5df67dc8d794"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Dec 04 21:53:40 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 04 21:53:40 2015 +0000"
      },
      "message": "Merge \"Store class tables in the image\""
    },
    {
      "commit": "131980fc9aeb2b4d03480443e0fb494c76ce03a2",
      "tree": "a071f8a706146ed4279c3cbe933d9a46910f480d",
      "parents": [
        "68cebffee2f44f0345bd7be7e4cbad0f10e64082"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 03 18:29:23 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 04 15:58:02 2015 +0000"
      },
      "message": "Add ElfWriter::GetStream().\n\nThis will be used for writing the OatHeader which is\ncurrently oddly written through the .text stream.\n\nAlso move the error delaying output stream out of the\nElfBuilder\u003c\u003e to its own file and move all output stream\nfiles to compiler/linker/.\n\nChange-Id: I00db4e33ed80ac4757ec459946c7b5ae014a3a2e\n"
    },
    {
      "commit": "208a5cb383dd9dcd3461f89b74af5df67dc8d794",
      "tree": "9ed531a445d24a7685e577b1c5822e50dc1c1b1d",
      "parents": [
        "5337bbfbd1cd502bb2842698a6b2a543ab6a6c32"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 02 15:44:07 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 03 16:29:03 2015 -0800"
      },
      "message": "Store class tables in the image\n\nReduces how long it takes to load an application image.\n\nN5 boot.art size\nBefore: 8007680\nAfter: 8122368\n\nAlso reduces boot time by how long AddImageClassesToClassTable\nused to take (~20ms).\n\nChanged class hashes to be uint32_t to fix cross compilation. We need\nserialized hash tables to be valid with different pointer sizes.\n\nBug: 22858531\n\nChange-Id: I463fc83f499ff75f509e80c253a55b9116ee5b89\n"
    },
    {
      "commit": "10c13565474de2786aad7c2e79757ea250747a15",
      "tree": "759bdf7aab97ab45e1a3e09f5d627e568f6e7084",
      "parents": [
        "e928dc587718d00d234768f76d1efb2ffe74e885"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 25 14:33:36 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 30 18:19:44 2015 +0000"
      },
      "message": "Refactor oat file writing to give Dex2Oat more control.\n\nThis is the first step towards writing dex files to oat file\nand mapping them from there for the actual AOT compilation.\n\nChange-Id: Icb0d27487eaf6ba3a66c157e695f9bdc5bb9cf9a\n"
    },
    {
      "commit": "d37d364c27e74a7b49970a8c970482e273aa7b1a",
      "tree": "ecf910556f7d6e4a0cdfa7dfc271f3894909e601",
      "parents": [
        "16cabc4acd14d5a61c73cef821162e1827f08788"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 19 16:05:58 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 19 16:11:03 2015 -0800"
      },
      "message": "Create parent class loader for dex2oat\n\nThis means we also put the class loader in the app image so that it\ncan be used for verifying the dex file order.\n\nBug: 22858531\nChange-Id: I30761b59421c8a24cffd62b469134b25d2929e2e\n"
    },
    {
      "commit": "04302dbb106d590ff72c0dfecda23d85b6565059",
      "tree": "2fe66e258de36bcebc913d48e04468b7c639578f",
      "parents": [
        "0e06a0989f4fc53e0d281a5a2cb5b5a17feaea0c"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Nov 11 23:45:34 2015 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Nov 13 15:21:29 2015 -0800"
      },
      "message": "Fix class unloading with the CC collector.\n\nAvoid unnecessarily decoding dex cache and class loader weak roots,\nwhich would trigger read barriers.\n\nRe-enable 141-class-unload with the CC collector.\n\nBug: 12687968\nBug: 24468364\nChange-Id: Ib4c19f25000873cab0e06047040442d135285745\n"
    },
    {
      "commit": "073b16c8429d302d5413e8ffc488b03b8f770780",
      "tree": "a417fd8042df8c0a9621f9097643ecaede4deeab",
      "parents": [
        "5165b6ba1fda85d769c5092a65f07bcfffb0b3e7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 10 14:13:23 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 11 19:22:33 2015 -0800"
      },
      "message": "Image space cleanup for app images\n\nRemoved Heap::GetImageSpace, added Heap::GetBootImageSpace.\n\nGeneralized some logic in the class linker for image spaces.\n\nBug: 22858531\n\nChange-Id: Ib3e12bb061a247e232d3dc93b0d6b35eb3a34d25\n"
    },
    {
      "commit": "6d8c8f0344a706df651567387ede683ab3ec1b5f",
      "tree": "2c2fe153db3dd59de6b175b040d1209e2e76728e",
      "parents": [
        "2264f624e41acf09b17c3961bd52966e43f2b58f"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Oct 26 10:57:09 2015 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Nov 08 20:17:13 2015 +0000"
      },
      "message": "Rewrite ElfBuilder to make streaming directly to file easier.\n\nThe previous design required knowing all the sections and their\nsizes before even the first byte of the file was written.\n\nThe new design allows sections to be written one by one without\nany knowledge of later sections.  Furthermore, as soon as\nsection is started, its virtual memory address is known,\nwhich removes the need for the various patching passes.\n\nThe new ElfBuilder essentially tries to be a thin wrapper\naround OutputStream which keeps track where the various\nsections start/end and then writes their ELF headers.\n\nChange-Id: I817e7f3b41882e4e4b9b442cfe56e4ef2e26babd\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"
    },
    {
      "commit": "d57d454a11ac6f49eaa397ec14d6231e3a2727b7",
      "tree": "ab8e705584702d73a6f943a02838a3225b1a5118",
      "parents": [
        "2248d278460f18db9bcdc5a1bdb2dcdfdde2d301"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 14 10:55:30 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 15 08:38:29 2015 -0700"
      },
      "message": "Allocate dex cache arrays in their class loader\u0027s linear alloc\n\nFixes memory leak for class unloading where the dex cache arrays\nused to be in the runtime linear alloc which never got freed.\n\nTODO: Some of the callers like the compiler just use the runtime\nlinear alloc. We could clean this up if we want to have class\nunloading during compilation for some reason.\n\nAdded regression test.\n\nBug: 22720414\n\nChange-Id: Ia50333a06a339efbdaedb5ad94b7a1ae841124ec\n"
    },
    {
      "commit": "6bc4374e3fa00e3ee5e832e1761c43e0b8a71558",
      "tree": "38118523aa6b9a92fbdcd7bf1d32ca6185a3d3f0",
      "parents": [
        "16065ce56394c73c87dcb78ead4164ddc80fddb3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Oct 12 18:11:10 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 13 12:05:27 2015 +0100"
      },
      "message": "Add an abstraction over a compiled code.\n\nThat\u0027s just step 1, moving code-related functions of ArtMethod to\nanother class. That class is only a wrapper on an ArtMethod, but will\nbe changed to be a wrapper around compiled code.\n\nChange-Id: I6f35fc06d37220558dff61691e51ae20066b0dd6\n"
    },
    {
      "commit": "f9c6fc610b27887f832e453a0da1789187293408",
      "tree": "3f45a15327e5bc7cb71e6c238ba75e87ae2e6058",
      "parents": [
        "793e6fbdefb092d1dab50bca5618aed110c7e037"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 07 11:44:05 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 09 12:57:53 2015 -0700"
      },
      "message": "Add OatFileManager\n\nTakes over a large amount of functionality from the class linker.\n\nChanged OatFile to loading the same OatFile multiple times. This is\nrequired for unloading OatFiles and moving dex caches to BSS since\nthese require a different OatFile for each dex cache and class\nloader.\n\nBug: 22720414\n\nChange-Id: I0321096723a294dc72949f21e66da82727b512fc\n"
    },
    {
      "commit": "4f55e22630d99ca0edd9e951e5ee96b57bb9b980",
      "tree": "84b7d55a6a7c31c09ed2865cc1bc2f4393476533",
      "parents": [
        "2d06e08d25bbf8eff1de945736a60810009e59ad"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 04 13:26:21 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 11 13:14:20 2015 -0700"
      },
      "message": "Add and use ScopedSuspendAll\n\nUsage replaces most SuspendAll and ResumeAll calls.\n\nChange-Id: I355683a5365876242cea85a656dcb58455f7a294\n"
    },
    {
      "commit": "957fb8930766ae422568e7b1b816159a9e9bc18c",
      "tree": "849a611f978656f1c85182402e1ef2c8ca50c5e6",
      "parents": [
        "68ffda887e35f35e978f2f607b7a91e44a5e1969",
        "05792b98980741111b4d0a24d68cff2a8e070a3a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 04 10:34:04 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 04 10:34:04 2015 +0000"
      },
      "message": "Merge \"ART: Move DexCache arrays to native.\""
    },
    {
      "commit": "f1d666e1b48f8070ef1177fce156c08827f08eb8",
      "tree": "772cbbe6652b32ea2be31532156295db27579390",
      "parents": [
        "897ce64153e4758663e464fb5fb339f9a7b496c8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 03 16:13:34 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 03 17:33:19 2015 -0700"
      },
      "message": "Add ScopedThreadSuspension\n\nFixes the TransitionFromRunnableToSuspended and\nTransitionFromSuspendedToRunnable pattern that was prone to errors.\n\nChange-Id: Ie6ae9c0357c83b4fc4899d05dfa0975553170267\n"
    },
    {
      "commit": "05792b98980741111b4d0a24d68cff2a8e070a3a",
      "tree": "bad79a387bcbdaefc87c07b388099960ca9caff3",
      "parents": [
        "c26b4512a01d46756683a4f5e186a0b7f397f251"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Aug 03 11:56:49 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 03 17:30:57 2015 +0100"
      },
      "message": "ART: Move DexCache arrays to native.\n\nThis CL has a companion CL in libcore/\n    https://android-review.googlesource.com/162985\n\nChange-Id: Icbc9e20ad1b565e603195b12714762bb446515fa\n"
    },
    {
      "commit": "673ed3d8aedc5462a47ded827c99f35d46525457",
      "tree": "83de4690228c9f7772c48c770c5e2e5ba2dac6fe",
      "parents": [
        "ce209462cc1a7ce235e5ac0d0e6db6b402f73441"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 28 14:56:43 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Aug 31 10:58:31 2015 -0700"
      },
      "message": "Revert \"Revert \"Change dex caches to be weak roots\"\"\n\nThis reverts commit 81a9087f0df0518c39405b7d18ba5858a6d8b77b.\n\nBoot.oat creation time goes from 4.7s to 4.9s on host due to extra\nlocking. Will try to improve this in another CL.\n\nBug: 23602225\nBug: 22720414\n\nChange-Id: I7e25b75cfb63faa196c7b0f60e46cce50bf12021\n"
    },
    {
      "commit": "81a9087f0df0518c39405b7d18ba5858a6d8b77b",
      "tree": "f4936654805b4d84540bd909095e8bbf69795bfd",
      "parents": [
        "f86a0859684c0f8964da4cbe75d49df8f832e85b"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Aug 28 09:07:14 2015 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Aug 28 09:07:14 2015 -0700"
      },
      "message": "Revert \"Change dex caches to be weak roots\"\n\nThis reverts commit 3ae6b1d42523bb2a0ddb5edff1aaf05b592f28f4.\n"
    },
    {
      "commit": "ac8f4397f6978484fad6769526e9e3b3f7e7bd19",
      "tree": "f06f1a16fbfce7e22ae71ee9afb9d0597dd87287",
      "parents": [
        "1aca34160dd0b0f3b326434c45d34e1d44797607"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 27 13:54:20 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 27 16:49:56 2015 -0700"
      },
      "message": "Keep dex files live for duration of oatdump\n\nNot keeping the dex file live caused a dex cache with a pointer to a\nstale dex file resulting in oatdump failing. This is required to\nremove the dex file location test that causes the class loader 068\ntest to fail.\n\nChange-Id: I5d532862ab998482c0d16d7a63c6bdc3752f031a\n"
    },
    {
      "commit": "3ae6b1d42523bb2a0ddb5edff1aaf05b592f28f4",
      "tree": "9ae990956db3d2d5970fb15bf264aeeb73e2bfe0",
      "parents": [
        "dcff51a0079c5e3abaf0335f7cb9a3dd44044456"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 14 14:03:10 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 25 18:00:47 2015 -0700"
      },
      "message": "Change dex caches to be weak roots\n\nChanged dex caches to be weak roots. This is necessary for class\nunloading since the resolved types arrays would keep classes live\nwhen they should be unloaded. Currently the dex caches still don\u0027t\nget freed due to the class loader roots.\n\nAlso deleted some unused functionality in image writer.\n\nBug: 22720414\nChange-Id: If22cb3cad7e3baabc8158a77d7f20799faf4c341\n"
    },
    {
      "commit": "14632857428b7e37761e6e811c19021715a400f8",
      "tree": "1774ef3ed5b973ce661b761814bd86bdbfa8fdbc",
      "parents": [
        "8ecc1357e2c682165467ca8e10c7a748f7554df2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Aug 17 12:07:23 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Aug 17 14:49:34 2015 +0100"
      },
      "message": "ART: Rename ArtMethod\u0027s size and alignment methods.\n\nRemove the historical prefix \"Object\" to avoid confusion\nwith Java objects.\n\nChange-Id: Ib36422c9a24878d8d4bd757977d99cbf66b3d567\n"
    },
    {
      "commit": "cf36d493124d8048efa0bd6f67d817ce3cd6b725",
      "tree": "fac1336f54ea477ce1afe2e99a04b68db38c7ac8",
      "parents": [
        "1cad8c7c63b600a3da83bf05fb645e08ac8fafc0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 12 19:27:26 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Aug 17 10:04:42 2015 +0100"
      },
      "message": "ART: Compress LengthPrefixedArray on 32-bit targets.\n\nPreviously, the LengthPrefixedArray\u003cArtMethod\u003e on 32-bit\ntargets contained a 64-bit length field followed by the\nArtMethod elements with size only a multiple of 4, not 8.\nConsequently, an odd-length array broke the alignment for\nthe following array which would have the 64-bit length\nplaced at an unaligned address.\n\nTo fix that, we make the length field 32-bit and explicitly\npass the alignment information to the LengthPrefixedArray.\nThis also makes the 32-bit boot image a bit smaller.\nOn Nexus 5, AOSP, ToT, the field section is 11528B smaller\nand the method section is 21036B smaller. 64-bit targets\nshould see the same savings for the field section but no\ndifference for the methods section.\n\nChange-Id: I3e03e7b94129025c8a1c117c27645a34dec516d2\n"
    },
    {
      "commit": "3887c468d731420e929e6ad3acf190d5431e94fc",
      "tree": "67dacb849e722e33e118b97714a48e467c06cbd5",
      "parents": [
        "6a5037eb3340e4c981fd7de3ff45167ee5b7fc82"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Aug 12 18:15:42 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Aug 12 18:15:42 2015 +0100"
      },
      "message": "Remove unnecessary `explicit` qualifiers on constructors.\n\nChange-Id: Id12e392ad50f66a6e2251a68662b7959315dc567\n"
    },
    {
      "commit": "54d220eb9cc51215d75b9e0fe921b94bebbb3fd6",
      "tree": "fe08749dea3ca6cad97bce48416beb37203efdf5",
      "parents": [
        "275bc5e5f318ba6ea1bad6c89c2924d1248b7523"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 30 16:20:06 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 05 18:15:22 2015 -0700"
      },
      "message": "Move ArtFields and ArtMethods to be a length prefixed array\n\nFixes race conditions between changing method and fields arrays\nbeing seen in the wrong order by the GC.\n\nBug: 22832610\nChange-Id: Ia21d6698f73ba207a6392c3d6b9be2658933073f\n"
    },
    {
      "commit": "b1d8c314b55bb2df2b2bb72a3daaf5db65b7ebc7",
      "tree": "87e8252ee6ca23138f867989a098b7c4338c21a5",
      "parents": [
        "1d558db0bcd841140f6fe1c6ba2e9a6de131649d"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Aug 04 11:18:43 2015 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Aug 04 11:19:56 2015 -0700"
      },
      "message": "Revert \"cleanup: Replace pointers with out-parameters and fix-up formatting\"\n\nThis reverts commit a315f5c546b796f55f4872bb6efc15eb858d9639.\n\n--\n\nRevert \"runtime: cleanup class_linker out-parameters and formatting\"\n\nThis reverts commit bc1d78daa463572c5a770cdca858a3b51d8e1b7b.\n\n--\n\nRevert \"base: replace raw pointers for out-parameters with safer out\u003cT\u003e\"\n\nThis reverts commit fb326cffc679cab8eb873b9e44795706f023cb3c.\n"
    },
    {
      "commit": "a315f5c546b796f55f4872bb6efc15eb858d9639",
      "tree": "188bcbab728423d79147fd9d9da45c2539371ac5",
      "parents": [
        "bc1d78daa463572c5a770cdca858a3b51d8e1b7b"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Jul 31 17:35:52 2015 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Jul 31 17:35:52 2015 -0700"
      },
      "message": "cleanup: Replace pointers with out-parameters and fix-up formatting\n\nCleans all of oat_file.h/.cc, parsed_options.h./cc, runtime.h/.cc\n\nOther files are touched only incidentally to use outof(x) instead of \u0026x.\n\nChange-Id: I0bb15111149d53bb21aac2199ef33bd35333b0ca\n"
    },
    {
      "commit": "90443477f9a0061581c420775ce3b7eeae7468bc",
      "tree": "8c74b81dfae162e0fd0ccf8d5ac50827ba815174",
      "parents": [
        "6078aec213dfaf111c29969706e8e5967cfc9bea"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 16 20:32:27 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 22 15:13:56 2015 -0700"
      },
      "message": "Move to newer clang annotations\n\nAlso enable -Wthread-safety-negative.\n\nChanges:\nSwitch to capabilities and negative capabilities.\n\nFuture work:\nUse capabilities to implement uninterruptible annotations to work\nwith AssertNoThreadSuspension.\n\nBug: 20072211\n\nChange-Id: I42fcbe0300d98a831c89d1eff3ecd5a7e99ebf33\n"
    },
    {
      "commit": "7617abdb402fd0419daa3eefb2ad059ccbb8b6db",
      "tree": "85ca02f6446cd50523156ea916d5524eaf3bf2dc",
      "parents": [
        "479ebe076561e4a48129ab0c78cf8ca93c44baf6"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Jul 10 18:27:47 2015 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Jul 17 17:38:46 2015 -0700"
      },
      "message": "runtime: Add -Xverify:softfail and ART_TEST_INTERPRETER_ACCESS_CHECKS\n\nUse ART_TEST_INTERPRETER_ACCESS_CHECKS\u003dtrue to run all the tests through\nthe interpreter with access checks enabled. The normal interpreter tests\ndo not currently enable access checks, which means that a large part of\nthe interpreter codebase is untested.\n\nThe verifier will force every class into a soft fail mode if\n-Xverify:softfail is used, thereby ensuring that if used along with the\ninterpreter (-Xint) that the interpret is always in access checks mode.\n\nThis is used alongside with --compile-filter\u003dverify-at-runtime to\nprevent the AOT compiler from putting down any code.\n\nChange-Id: I35a10ed8c43d76fa96133cf01fdad497da387200\n"
    },
    {
      "commit": "0a5cd12a30e1b02833bdd94f11b74ecf4835ecb3",
      "tree": "dfc1b2c5cebab0714475c2e2aadb73692116079a",
      "parents": [
        "fec9d09bf7d2d54048b1df8e3c24a210e58dbc84"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 16 14:15:05 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 16 14:17:37 2015 +0100"
      },
      "message": "Make oatdump see the new vmap table generated by dextodex.\n\nChange-Id: I48f3fb7320e39c864f8fbc478f970b18358408ec\n"
    },
    {
      "commit": "8f1e08af6172781f91a17fce0a5a4183a9f70aa9",
      "tree": "1481075eefed359fcb675379197290b53159e28e",
      "parents": [
        "404ea410c5c1566909ae741582046b7cae2bd681"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 26 12:06:30 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jul 13 13:30:13 2015 +0100"
      },
      "message": "ART: Don\u0027t nest indenters in oatdump.\n\nReduces the time taken by the oatdump_test by ~12s (15%)\non host and ~55s (9%) on N5.\n\nChange-Id: I99bb16ff5f3640389815f1fe54379ca64eac071b\n"
    },
    {
      "commit": "6fcaf3f7b5c4fca67b506c4a4233e8373be6d48e",
      "tree": "4e8893f5b4669e3c117ca146956be1f5c6bee6f4",
      "parents": [
        "30502f1fc8357bdaf11b70e6fc8f5311c6237194"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 08 15:55:28 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jul 08 15:55:28 2015 +0100"
      },
      "message": "Fix oatdump after ArtMethod change.\n\nArtMethod is now word aligned, and not necessarily 8 byte aligned.\n\nChange-Id: I8bd6b2f156d7f2ab191d6f2675b013713bbf258d\n"
    },
    {
      "commit": "6d7f1796f3afafaaae4bf71088f92184adcff858",
      "tree": "7b8f81a522811356245e0e15e323b8a3e6be10ba",
      "parents": [
        "c87c8939ea1bcfbddb954478d527cf1138f4f343"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jul 02 10:59:15 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jul 02 11:11:17 2015 +0100"
      },
      "message": "Make oatdump work with .art files and code generated by Optimizing.\n\nWhen inspecting an .art file with oatdump (using `--image\u0027),\ndo not try to compute size stats about the vmap table if the\nmethod has been compiled with Optimizing.\n\nChange-Id: I1204b53c91ac8bf98665ed357d8509a4a01a52f9\n"
    },
    {
      "commit": "eb7b7399dbdb5e471b8ae00a567bf4f19edd3907",
      "tree": "a0a488040883c14cc6cbec3186654137459d44ff",
      "parents": [
        "8ec0e20347e13592539a8c0786b1db1735149800"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Fri Jun 19 14:47:01 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Jun 22 11:57:36 2015 +0100"
      },
      "message": "Opt compiler: Add disassembly to the \u0027.cfg\u0027 output.\n\nThis is automatically added to the \u0027.cfg\u0027 output when using the usual\n`--dump-cfg` option.\n\nChange-Id: I864bfc3a8299c042e72e451cc7730ad8271e4deb\n"
    },
    {
      "commit": "ab00b7af209acd9aab4e577900fc55249b19bae4",
      "tree": "4458e9c5f4342f5de34c6101efc3489e35497f61",
      "parents": [
        "1e73a95d74848020fab512a95a7f9a7ada72497b"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jun 19 22:05:35 2015 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jun 19 22:05:59 2015 -0700"
      },
      "message": "Make dump-oat-target work with second architecture\n\nBug: 19909409\nChange-Id: Iff21c5d3ce0e6b057a677da6726ee42af64463e7\n"
    },
    {
      "commit": "d39645e22b8db1767cf64dc1200a9e4b2f939ed2",
      "tree": "fd6488a428600f222c5a411e91ed9f1f3a280b05",
      "parents": [
        "15306dcd03208f062737239753ab1eccfe91403f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 09 17:50:29 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 11 14:56:08 2015 -0700"
      },
      "message": "Move image intern table into image\n\nPreviously we recreated this intern table during runtime startup.\nThis added 50-100ms of boot time.\n\nFixed bug where we didn\u0027t copy over hashcodes into the image.\n\nDeleted some stale code.\n\n(cherry picked from commit fac3a390a247fe33d4873773d742aad4cc100118)\n\nBug: 20727525\nBug: 19569780\nChange-Id: I08959e9aa2a73cedb52f393033e2ffea3a26e76b\n"
    },
    {
      "commit": "f677ebfd832c9c614fea5e6735725fec2f7a3f2a",
      "tree": "051b3ba6343bdbca4929d728dd5c0341e4383a08",
      "parents": [
        "c47908e8c32fd58bc4dc75998a80f706954db1dc"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri May 29 16:29:43 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jun 04 17:25:02 2015 +0100"
      },
      "message": "Cache stack map encoding\n\nOperations on CodeInfo and StackMap objects repeatedly read encoding\ninformation from the MemoryRegion. Since these are 3-bit-loads of\nvalues that never change, caching them can measurably reduce compile\ntimes.\n\nAccording to benchmarks, this patch saves 1-3% on armv7, 2-4% on x86,\nand 0-1% on x64.\n\nChange-Id: I46b197513601325d8bab562cc80100c00ec28a3b\n"
    },
    {
      "commit": "7922d0f2ef6a9fa7adc3b9417246aabea2474732",
      "tree": "c5c9e9106287694c80d7b262e1d2dbf176d59ae9",
      "parents": [
        "99c2abcb085d254b17a870442ca188fa09ab58de",
        "f2650d1f957b158496de8016bc43fb575e81d6bc"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jun 03 11:00:37 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 03 11:00:37 2015 +0000"
      },
      "message": "Merge \"Show stack maps and Dex register maps in oatdump\u0027s assembly code.\""
    },
    {
      "commit": "e401d146407d61eeb99f8d6176b2ac13c4df1e33",
      "tree": "17927f9bfe7d2041b5942c89832d55f9dedb24c5",
      "parents": [
        "2006b7b9b8e32722bd0d640c62549d8a0ac624b6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 22 13:56:20 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 29 18:45:49 2015 -0700"
      },
      "message": "Move mirror::ArtMethod to native\n\nOptimizing + quick tests are passing, devices boot.\n\nTODO: Test and fix bugs in mips64.\n\nSaves 16 bytes per most ArtMethod, 7.5MB reduction in system PSS.\nSome of the savings are from removal of virtual methods and direct\nmethods object arrays.\n\nBug: 19264997\nChange-Id: I622469a0cfa0e7082a2119f3d6a9491eb61e3f3d\n"
    },
    {
      "commit": "f2650d1f957b158496de8016bc43fb575e81d6bc",
      "tree": "37bf1dff25dbd38f6cfdbaace07a50eb92f8c43d",
      "parents": [
        "0028b9d3b7d73ba0a045d50a0fe2797e51a4e6b6"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu May 28 14:53:28 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri May 29 16:39:18 2015 +0100"
      },
      "message": "Show stack maps and Dex register maps in oatdump\u0027s assembly code.\n\nStack maps and Dex register maps are not longer displayed\nin CodeInfo sections, unless `--dump:code_info_stack_maps\u0027\nis passed to oatdump.\n\nChange-Id: Id82adb406d7e56cda27df8e5a8bd328a88b9ee11\n"
    },
    {
      "commit": "0396ed7d3ad30778cb4af19e7086bea0deace9b9",
      "tree": "cab609c648e04f63bcd52dfa9510d4a88a761997",
      "parents": [
        "6c70104dc3ecd66b46f56cae068a14e12021c9f2"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed May 27 15:12:19 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed May 27 15:24:30 2015 +0100"
      },
      "message": "Improve art::CodeInfo dumping.\n\n- Refactor existing dumping code into a set of new routines.\n- Use art::Indenter to properly indent in the output.\n- Add an additional argument to art::CodeInfo::Dump to\n  enable or disable the dumping of stack maps and Dex\n  register maps.\n\nChange-Id: I52814095ff465522302d5d69d416726369ca5258\n"
    },
    {
      "commit": "19510f02b011e545665f6219e6144c8e47aed5f0",
      "tree": "0fc608e0fb269517efbbcb3edaec2233267088ff",
      "parents": [
        "dc31313c4577bb4c00d90774159c84e738ed348d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue May 26 14:44:35 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue May 26 18:26:45 2015 -0700"
      },
      "message": "Add oatdump test\n\nBug: 18000316\n\nChange-Id: Ic22d63dc64a9b7a492b5e6bfbd4c75f30c35dfd5\n"
    },
    {
      "commit": "df2bb1f36c0d755f0bdb2b1562e52669f3de4a09",
      "tree": "8b8c5adaedfaab14dd21a07ac80cc6afac798805",
      "parents": [
        "25dcb2594a21a565ef82faa66a79bcf595c3a780"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon May 04 18:25:23 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon May 04 18:25:23 2015 -0700"
      },
      "message": "ART: Fix double-free in oatdump\n\nThe ImageDumper doesn\u0027t own the OatDumperOptions.\n\nBug: 20818721\nChange-Id: Iea11ada8fb6418b226d39b33c252a834c42e655e\n"
    },
    {
      "commit": "bc90fd09e09a845ae6ea0d84ad67560575a94142",
      "tree": "400ccfd60a231ce9bf03fcbad025d724da63a48e",
      "parents": [
        "0c5bbc11a6af7b4f83b3929bc99de690635095c0"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Apr 22 19:40:27 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Apr 30 12:29:29 2015 +0100"
      },
      "message": "Major refactoring of ElfBuilder.\n\nSimplify ElfBuilder by removing duplicated or redundant code.\nMany of the repeated code patterns were replaced by just\nlooping over the list of all sections.\n\nMethods Init() and Write() have been merged into one.\nThe split between those was rather arbitrary, but it was there\nfor a reason.  It allowed creation of raw sections between\nthe calls which may have depended on layout decisions done in\nInit(), but not in Write() (e.g. knowing of offset of .text).\n\nThis has been replaced by more generic solution.\nAll sections are asked about their size first and complete\nfile layout is calculated.  Then the sections are asked to\nwrite their content (potentially using the layout information).\n\nThis should be pure refactoring CL - the compiler should\nproduce bit for bit identical output as before.\n\nChange-Id: I281d13d469801bd8288b36b360d200d98a3e92d7\n"
    },
    {
      "commit": "0c5bbc11a6af7b4f83b3929bc99de690635095c0",
      "tree": "4d72ed70efa866e94804e9a6fb210cad34a9abc4",
      "parents": [
        "1c5808c0fa83155565f5319808a2949e0a3f5789"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Apr 28 17:54:52 2015 +0100"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Apr 28 18:13:35 2015 +0100"
      },
      "message": "Minor refactoring of ElfBuilder.\n\n * Nest section builder classes within the main builder\n   class to reduce verbosity caused by templates.\n * Move .eh_frame and .eh_frame_hdr section headers earlier\n   so that the section headers are sorted by file offset.\n * Do not emit PT_NULL header if .eh_frame_hdr is missing.\n\nNone of these changes should have any material impact.\nThis CL just prepares ground for the following CL.\n\nChange-Id: I56f9825892adb01d413a18ca10cb5c805cb8cd78\n"
    }
  ],
  "next": "2cebb24bfc3247d3e9be138a3350106737455918"
}
