)]}'
{
  "log": [
    {
      "commit": "bf63303f8a98c88fb8f0a726ab9431660f26df5a",
      "tree": "c31615ac4c02b2f9a0b56cf843d211729e3846fb",
      "parents": [
        "9baccdc75ee01dd96ac4e57e17965635f96def27",
        "944da603cde59a4277f3bbc31d860a90842a1a2a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 24 11:52:14 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 24 11:52:14 2016 +0000"
      },
      "message": "Merge \"ART: Allow method references across oat files for multi-image, 2nd attempt.\""
    },
    {
      "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": "5c7e2606d1246460a8a4b227d894110e89d0a842",
      "tree": "1db9faeecfea88021d785e6bac40ad5857413f3c",
      "parents": [
        "6406b521bed1a1cc465edc6be083ce57ba0f524e"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Feb 23 18:08:53 2016 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Feb 23 18:08:53 2016 +0000"
      },
      "message": "Please Clang with respect to stack frame limits in dex2oat.\n\nThis change enables Clang to compile dex2oat on MIPS64\nwithout complaining about stack frames larger than what\n`-Wframe-larger-than` allows.\n\nBug: 27310199\nChange-Id: I441a4be499959a089d3c2eae1135eb0273c1e80b\n"
    },
    {
      "commit": "6406b521bed1a1cc465edc6be083ce57ba0f524e",
      "tree": "2c7382eb15e33470da65238908f67904ca868f97",
      "parents": [
        "a016ba5614054e27eada7f4815df7d4bac7ba8d8",
        "2e2db786b8fbaa4dceb37603a4296b0b2aea4e9e"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Feb 23 14:07:40 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 23 14:07:40 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Add profman tool: responsible to process profiles\"\"\""
    },
    {
      "commit": "2e2db786b8fbaa4dceb37603a4296b0b2aea4e9e",
      "tree": "7fef29d5fcdb997950fd1a2524ae853b4dcfac3d",
      "parents": [
        "3da74687e42de7d33a8e75df9bd64374e650f75e"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Feb 23 12:00:03 2016 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Feb 23 12:00:03 2016 +0000"
      },
      "message": "Revert \"Revert \"Add profman tool: responsible to process profiles\"\"\n\nThis reverts commit 3da74687e42de7d33a8e75df9bd64374e650f75e.\n\nChange-Id: Id005096bd8063c6c602744d4476d5eb7e0d34e90\n"
    },
    {
      "commit": "3da74687e42de7d33a8e75df9bd64374e650f75e",
      "tree": "f3bf62678200380dc672647af1da136c562f60b3",
      "parents": [
        "6caefd983a800a063b219f1d3ed71b1416cecd70"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 22 22:37:52 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 22 22:37:52 2016 +0000"
      },
      "message": "Revert \"Add profman tool: responsible to process profiles\"\n\nNeeds a profile_assistant_test fix.\n\nBug: 26719109\nBug: 26563023\n\nThis reverts commit 6caefd983a800a063b219f1d3ed71b1416cecd70.\n\nChange-Id: Ibdeb7385737dd7846ed861e0a95f083abb9aa974\n"
    },
    {
      "commit": "dccd6753b42b73d75f7b5e51ad3515009873c9ff",
      "tree": "a04861f6421effe399b48db7fbcdbd0378cf9821",
      "parents": [
        "c017318a7c5a9142b1fff9f57eb4105b1d397bbd"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 22 18:20:49 2016 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 22 18:20:49 2016 +0000"
      },
      "message": "Fix static dex2oat  build\n\nChange-Id: I1a5fb726fa72d9ccd083f90a818e245f075fc89c\n"
    },
    {
      "commit": "6caefd983a800a063b219f1d3ed71b1416cecd70",
      "tree": "7fef29d5fcdb997950fd1a2524ae853b4dcfac3d",
      "parents": [
        "c017318a7c5a9142b1fff9f57eb4105b1d397bbd"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 01 12:06:18 2016 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 22 13:55:18 2016 +0000"
      },
      "message": "Add profman tool: responsible to process profiles\n\nThis pulls out profile parsing from dex2oat into a separate tool.\nSome additional refactoring:\n- better return codes\n- dex2oat now accepts only one profile file\n\nThis is the first step towards support secondary dex files and\nextracting profiles out of the code_cache directory.\n\nBug: 26719109\nBug: 26563023\n\n(cherry picked from commit d81c289e58f4ced8ec7674fd377c356669f97227)\n\nChange-Id: I34d408faa318e866e1a23d4d04c369131ee5012b\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": "4fda4eb799c95be266f52aaf3461a440ea86b841",
      "tree": "54a7e56b5633caf2b868f6028010b488eb1923ce",
      "parents": [
        "3c258f4d7a6492af733a9351ba430d876a3e5ccf"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Feb 05 13:34:46 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Feb 08 11:33:50 2016 +0000"
      },
      "message": "Move code related to debug info generation to its own directory.\n\ndebug/dwarf/ contains helper classes which hide the details\nof the DWARF file format. It acts as independent DWARF library.\n\ndebug/ contains ART-specific code which generates ELF debug\nsections (which includes non-DWARF sections like .symtab).\n\nChange-Id: Id351f604e4e64be2ca395a78324ea02e30481497\n"
    },
    {
      "commit": "0c4572e8c874de279463af22268d588471f40d3e",
      "tree": "2f6e691f9764ad5d0b08a7b4043ef8a70e47bb2e",
      "parents": [
        "ae5d2738a2b941b543c3fd478af910d4cd16f2ba"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jan 22 19:19:25 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Feb 05 11:31:11 2016 +0000"
      },
      "message": "Generate mini-debug-info on separate thread.\n\nThe generation and compression of mini-debug-info is a lot of work.\nHowever, we can do it on background thread when the main thread is\nbusy with .rodata and .text related I/O.\n\nChange-Id: I514f1db3cb50aa250639f3ef697faa9bc9976d12\n"
    },
    {
      "commit": "97590ccb357eb7429063e15597e75f2692108789",
      "tree": "3df62852718af2a960efa9d99bf30f11cbc25c78",
      "parents": [
        "c5b76b9328d77b83c80afed14a5b6e7009136e15"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Feb 03 15:50:29 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Feb 03 15:50:29 2016 -0800"
      },
      "message": "Strip image-format arg in dex2oat\n\nAvoids printing it out to prevent spam.\n\nBug: 22858531\n\nChange-Id: I9d0b35b8fa317bc39ab27946baa88812a32381e2\n"
    },
    {
      "commit": "390f5b377af63bc22f0925cc0da9f67ae1eecec2",
      "tree": "a8d558509cd6c2732f8388fcd55b8b92ce13dc37",
      "parents": [
        "24c11dcde9e8ed53813129b40f82a1af42b880b9",
        "6af5348449ccb86203d93dfbd0e5df318917721f"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Feb 02 21:55:04 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 02 21:55:04 2016 +0000"
      },
      "message": "Merge \"Use SS/GSS collectors in dex2oat if they are the default.\""
    },
    {
      "commit": "6af5348449ccb86203d93dfbd0e5df318917721f",
      "tree": "c043f3790e5c9ff80dd5790bfe956c50ed4fa52d",
      "parents": [
        "97f4bc04b61d5cf78b0820dbf18e999b20d7a108"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Jan 29 15:38:58 2016 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Feb 02 13:52:41 2016 -0800"
      },
      "message": "Use SS/GSS collectors in dex2oat if they are the default.\n\nWith CL 198466, we stopped exercising the SS/GSS collectors in dex2oat,\nwhich could bit-rot. We now turn on the force deterministic compilation\nonly if the default GC is CMS or MS and allow the SS/GSS collectors to\nbe exercised in dex2oat if they are the default.\n\nBug: 26687569\nChange-Id: I049f8d0a9b4ebf3f31d0953cf71dd0e4ba6aa651\n"
    },
    {
      "commit": "ce4b0ba4d762775a86b3529ac76cb89199c0cc1e",
      "tree": "1904ccccb00244a3f948ccf3f95fc40c95b9ff3e",
      "parents": [
        "99b4d43c7b2c81a0a4712578016efdfc65cdc21b"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jan 28 15:05:49 2016 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Feb 01 15:09:56 2016 +0000"
      },
      "message": "Ignore image checksum for ExtractOnly oat files\n\nOat files compiled with --compiler-filter\u003dverify-at-runtime contain\nno compiled code and therefore are independent of the boot image.\nThis patch stores an ExtractOnly flag in the oat header and skips\nthe image checksum test if the flag is set, rendering the oat file\nup to date even after OTAs.\n\nBug: 26813999\n\nChange-Id: I25291d5b49d9e9d0018844e957a2dc88ef6bdc27\n"
    },
    {
      "commit": "d8904a555ec801af9b99a8912fdb9e615729db7b",
      "tree": "f1e704987e0caf11689596cc7fdf7aa61f746eda",
      "parents": [
        "ba5ea7003f071f85936ee351aff46f64a56ee096"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 29 16:27:27 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 29 16:30:43 2016 +0000"
      },
      "message": "ART: Do not reopen oat file in ImageWriter::UpdateOatFile().\n\nInstead, pass the already opened file from Dex2Oat.\n\nBug: 26831001\nChange-Id: I2341259499067f43ce620b590c5482d28f140e9f\n"
    },
    {
      "commit": "eb2c741c70c3ee117ff35ad682f18b90349590b8",
      "tree": "b4fb473f8dc634b8777dc5c723083d64d3e1bfc7",
      "parents": [
        "8bfdf83aa73a19233f62b7a8d4761e84b1713db4"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jan 28 14:37:01 2016 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jan 28 14:37:01 2016 +0000"
      },
      "message": "Do not enforce deterministic compilation with read barriers.\n\nForcing determinism of the boot image compilation (on host)\ndoes not work when read barriers are enabled, as the former\nswitches the GC to a non-concurrent one by passing the\noption `-Xgc:nonconcurrent`.\n\nAlso make dex2oat abort when invoked with\n`--force-determinism` while read barriers are enabled.\n\nBug: 12687968\nBug: 26687569\nChange-Id: I37b388fccbe4502a90def8031a898f1a40df6a9f\n"
    },
    {
      "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": "c801425e18520281d440dbf6e29c8c93b31de371",
      "tree": "2bf4ed9c05af89e18b0faa4742b5edf92bcf6074",
      "parents": [
        "2aaf58e90c9229610b2a16644e9866b6741ce9ca",
        "3a2bd29d274f60fdcfabebb052078edef0190164"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 27 21:14:50 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 27 21:14:50 2016 +0000"
      },
      "message": "Merge \"ART: Make sure dex files are verified in the compiler\""
    },
    {
      "commit": "3a2bd29d274f60fdcfabebb052078edef0190164",
      "tree": "1e98b0b4ccdfc60c2a3f13abd4b0141b0c8be75f",
      "parents": [
        "6a507f3bef2c970b29bada165269d2764d260fc8"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 26 17:23:47 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 27 11:46:00 2016 -0800"
      },
      "message": "ART: Make sure dex files are verified in the compiler\n\nFollow-up to 9bdf108885a27ba05fae8501725649574d7c491b. Make sure\nthat dex files from the oat writer are verified with the dex file\nverifier.\n\nBug: 26793137\nBug: 26808512\nChange-Id: I1a5f51751491eead21d8f9f1b31e37c7374c72a5\n"
    },
    {
      "commit": "ca5050538cbb0260c50530055f1ea880015327b7",
      "tree": "20520a5b5838b3251fd755584645d8ae85908b17",
      "parents": [
        "1be9e27239dc63bb4d8134df50be60f65a9d5da3",
        "47496c293b2b79c9747eeebafe444715202e7fc6"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 27 18:33:38 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 27 18:33:38 2016 +0000"
      },
      "message": "Merge \"ART: Allow --no-inline-from to specify multiple dex files.\""
    },
    {
      "commit": "47496c293b2b79c9747eeebafe444715202e7fc6",
      "tree": "803ae4a82452031db43e219b687864241e6e66d3",
      "parents": [
        "f032f3afe513093c508434b17ff1921a114c4424"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 27 16:15:08 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 27 18:23:01 2016 +0000"
      },
      "message": "ART: Allow --no-inline-from to specify multiple dex files.\n\nThis will allow tests to specify arbitrary dex files from\nwhich we should not inline, in addition to core-oj, so that\nwe can test the related functionality. Additionally, should\nthe core-oj.jar core grow beyond a single classes.dex and\nrequire a multi-dex .jar, this change makes sure that we\nprevent inlining also from the extra classes\u003cN\u003e.dex files.\n\nChange-Id: I74da4839bf9bb405dd62ad80563bf646a7a65dd9\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": "fbc31087932a65e036a153afab3049dc5298656a",
      "tree": "c728b9039a71db3be9cae888ad5e1afc31f34a13",
      "parents": [
        "c7f4e3a5aeaa23342b4e03b0d751f60ac5c5815c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Jan 24 11:59:56 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jan 25 14:22:15 2016 -0800"
      },
      "message": "Revert \"Revert \"Load app images\"\"\n\nThis reverts commit 1bc977cf2f8199311a97f2ba9431a184540e3e9c.\n\nBug: 22858531\n\nChange-Id: Ide00bf3a73a02cba3bb364177204ad1b13f70295\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": "48dfaba75f564c58af1d29b676a5fe1b52a536dd",
      "tree": "d92f05f902ef13330c893bd941527a083d9f1d8f",
      "parents": [
        "58e87aca238ff2ed0c68f2a1d4d94f321c8d90ea",
        "97f3f7d29a88a14b081770af8c464859c8e77f42"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 21 22:35:05 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 21 22:35:05 2016 +0000"
      },
      "message": "Merge \"Disable Homogeneous space for dex2oat\""
    },
    {
      "commit": "9bdf108885a27ba05fae8501725649574d7c491b",
      "tree": "a4ddf98b6cf10b343f15164f18e7089bc54c29ca",
      "parents": [
        "a92ee11b9b0ed4033efc5982269e3c0a075315e0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jan 21 12:15:52 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jan 21 12:19:08 2016 +0000"
      },
      "message": "Revert \"Revert \"Write dex files to oat file early.\"\"\n\nThis reverts commit 919f5536182890d2e03f59b961acf8f7c836ff61.\n\nFix linker error (Mac build):\nReplace inline definition of art::ZipArchive::~ZipArchive()\nwith an out-of-line definition in zip_archive.cc to avoid\ndirect reference to CloseArchive() from libart-compiler due\nto inlining. Note that libart is linked against -lziparchive\nbut libart-compiler is not.\n\nChange-Id: I92620ea0200282ca7ba9b7f61a592cb6468d90d8\n"
    },
    {
      "commit": "1ee101ac001561a40a3b654bab9c62f9369f0350",
      "tree": "13a4b03ad1465349184b932d32af7a4cfb500773",
      "parents": [
        "7997bafd29c483583bcaa3135d958403caef94e3",
        "919f5536182890d2e03f59b961acf8f7c836ff61"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 20 19:13:25 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 20 19:13:25 2016 +0000"
      },
      "message": "Merge \"Revert \"Write dex files to oat file early.\"\""
    },
    {
      "commit": "919f5536182890d2e03f59b961acf8f7c836ff61",
      "tree": "8e8b9c330ae9c886611c6e5ae598e21d9b3ea17a",
      "parents": [
        "625a64aad13905d8a2454bf3cc0e874487b110d5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 20 19:13:01 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 20 19:13:01 2016 +0000"
      },
      "message": "Revert \"Write dex files to oat file early.\"\n\nThis reverts commit 625a64aad13905d8a2454bf3cc0e874487b110d5.\n\nBreaks the Mac build:\n\nUndefined symbols for architecture i386:\n  \"_CloseArchive\", referenced from:\n      ... in oat_writer.o\nld: symbol(s) not found for architecture i386\n\nChange-Id: I21608bc51437834e1e6abde9bcbe5e7d9998197e\n"
    },
    {
      "commit": "a8108303b31f76b7cd0292942885585d0f9d9391",
      "tree": "4b24fde686f2fd948212122c0b1e3d1282545f39",
      "parents": [
        "440ef2cbc76d7e2bc76cf5f15b69fc0478d7e853",
        "625a64aad13905d8a2454bf3cc0e874487b110d5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 20 17:40:37 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 20 17:40:37 2016 +0000"
      },
      "message": "Merge \"Write dex files to oat file early.\""
    },
    {
      "commit": "f74388daf23522dd4e9ebe6640030f4fd52c52ea",
      "tree": "fe07a7150fbe132bdc7d78f62dbe039daf3eaae3",
      "parents": [
        "ecfd0df971c538456887866307c007c8b0a25470",
        "877fd963548a3175665bfef25b0d24bc0e5a0135"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jan 19 19:34:40 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 19 19:34:40 2016 +0000"
      },
      "message": "Merge \"Improve profile processing\""
    },
    {
      "commit": "877fd963548a3175665bfef25b0d24bc0e5a0135",
      "tree": "db4cae18266f7cd9415a362c21d50fef93a8488f",
      "parents": [
        "37a5abcf5e7644ae1fd1a85e865c8a71e38a9af2"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jan 05 14:29:29 2016 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jan 19 11:17:24 2016 -0800"
      },
      "message": "Improve profile processing\n\n- allow file descriptors in addition to file names for profiles\n- fix some minor issues (wrong comparison signs, unhandled errors)\n- added gtests for profile_compilation_info, profile_assistant\nand compiler_driver\n\nBug: 26080105\nChange-Id: I136039fa1f25858399000049e48b01eafae54eb1\n"
    },
    {
      "commit": "c903b6af634927479915eaa9516d493eea23f911",
      "tree": "d14d0e2f323516ffac38baba7be4dce320fd772b",
      "parents": [
        "b8bb9f6d0b59be125066f604f134155f8998f5ae"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 18 12:56:06 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 18 12:56:06 2016 +0000"
      },
      "message": "Move --dump-cfg and dump-cfg-append to CompilerOptions.\n\nIt simplifies passing the option to the JIT.\n\nChange-Id: Iee1b722362899e5809ef97be90961e3dda1e16cc\n"
    },
    {
      "commit": "625a64aad13905d8a2454bf3cc0e874487b110d5",
      "tree": "49035d031166ce9fe0c5dd2f4b34157100e1703f",
      "parents": [
        "e1b0f475e851072d0083faf6e07d274e9f1fe6a5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 26 14:44:16 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 15 12:28:06 2016 +0000"
      },
      "message": "Write dex files to oat file early.\n\nWrite dex files to oat file before we actually open and\nverify them. Instead, open and verify the copies from the\noat file and use these. This way, in the most common case\nof zipped dex files, we have mmapped dex files instead of\ninflated dex files. That reduces the number of dirty pages\nused by dex2oat.\n\nReading /proc/self/statm after we write the oat file for\na compilation of a certain large app on Nexus 5 AOSP build\nwith -j1, three attempts before and after this CL gave\n    before: 346061 189462 6269 26 0 140723 0\n            346189 189450 6269 26 0 140851 0\n            346061 189463 6269 26 0 140723 0\n    after:  346186 185808 23040 27 0 140468 0\n            346186 185819 23040 27 0 140468 0\n            346186 185822 23040 27 0 140468 0\nThese values are in pages (4KiB), so while the \"size\"\n(\u003dVmSize) is essentially unchanged, the \"resident\" (\u003dVmRSS)\nis over 14MiB less and the \"shared\" (i.e. backed by a file)\nis 65.5MiB more. That is, the amount of dirty non-pageable\nmemory used is reduced by about 80MiB.\n\nThe oat file format has changed slightly, the class offset\ntable has been moved from the OatDexFile to its own section.\nThis actually fixes the alignment of these offsets as they\ncould have been unaligned previously, yet accessed as normal\nwith significant performance impact if the kernel has to\nemulate the unaligned access (say, mips).\n\nChange-Id: I0f4799bb1f1ca28e3533156a3494f55345c3e10a\n"
    },
    {
      "commit": "97f3f7d29a88a14b081770af8c464859c8e77f42",
      "tree": "920384fb2bde6088fbc700f9349315fa5b3cc6b8",
      "parents": [
        "68c56ae9ccdb6e348501456e374ae65e74f6270c"
      ],
      "author": {
        "name": "Lin Zang",
        "email": "lin.zang@intel.com",
        "time": "Wed Jan 13 10:25:00 2016 +0800"
      },
      "committer": {
        "name": "lzang1",
        "email": "lin.zang@intel.com",
        "time": "Fri Jan 15 15:28:59 2016 +0800"
      },
      "message": "Disable Homogeneous space for dex2oat\n\nDisable the Hspace compact can help reduce the virtual memory space\nfor dex2oat by not mmap the main_space_2.\nThis can avoid some mmap fail when dex2oat create heap.\n\nChange-Id: I4573bd80b807f40337d40d95a8e098da94946692\nSigned-off-by: Lin Zang \u003clin.zang@intel.com\u003e\n"
    },
    {
      "commit": "bce0590465d03b3eb3737521c651bacbadb62087",
      "tree": "fda8561f03e41635d437c1e9ec845482c5bd981b",
      "parents": [
        "f7504cd4606988b50754d84845ff1fa83c65df57",
        "436183f5156067ed97ac2cd44808fe5de9d02e56"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Jan 14 23:07:11 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 14 23:07:11 2016 +0000"
      },
      "message": "Merge \"Allow multi-image dex2oat to tolerate missing dex files.\""
    },
    {
      "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": "436183f5156067ed97ac2cd44808fe5de9d02e56",
      "tree": "356f9ed89e504c32fb7289a279b5aee841cab3b4",
      "parents": [
        "be55805f72329732fefeca72c596452912ab6722"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Jan 12 16:36:50 2016 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Jan 14 14:32:53 2016 -0800"
      },
      "message": "Allow multi-image dex2oat to tolerate missing dex files.\n\nBug: 26317072\n\n(cherry-picked from commit 9c25dfafaf479b2f3593a6b51b85ab21fb9c45c9)\n\nChange-Id: I786dae69b0680cf619368894842b21d39d64ab97\n"
    },
    {
      "commit": "3e09eebe1ffd38b12d67c90cfe609d27453469ff",
      "tree": "edda0916af3220d049f9ec5e7930a29e47ee955c",
      "parents": [
        "c3ba07ef76549129705af28173070b88a1c39531"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jan 12 14:54:03 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jan 12 14:54:03 2016 +0000"
      },
      "message": "Disable --generate-debug-info by default in all cases.\n\nThe option is disabled by default unless explicitly enabled.\nIn particular, it is no longer enabled in debug builds,\nand the --debuggable option does not affect it.\n\nI want to use this flag to control the debug data generated\nby the JIT as well.  Since this takes run-time memory,\nI want to avoid enabling it unless explicitly requested.\n\nChange-Id: I2e2afa2f56bb0a113e92cc2e26e00dceac1689ca\n"
    },
    {
      "commit": "acd7a6ac4bb5b43b07362f5c83ab0259514370d6",
      "tree": "41e36d03276cb6f0cf949afd3f05d971cfd406ac",
      "parents": [
        "97f2ca08c3d9a2b1694419aea07cd64f477c0af2"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Jan 08 10:44:20 2016 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Jan 08 14:20:23 2016 -0800"
      },
      "message": "Fix general multi-image TODOs.\n\n- Removed some unnecessary comments.\n\nBug: 26317072\n\n(cherry-picked from commit 509f2ab308032534f14d8f4f374f60da8a615fa2)\n\nChange-Id: Id542262ca1182fb77f029f2136266e470bde9473\n"
    },
    {
      "commit": "998c21661b5074c293cae818d0ab7c44dcda3a66",
      "tree": "c9abd63c18abc18f9d9206ca8c22c318523d0544",
      "parents": [
        "5e2b971e468ca73a8e10a120730b3b6f17fad408"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Dec 21 15:39:33 2015 +0200"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Jan 07 16:23:18 2016 +0000"
      },
      "message": "Perform profile file analysis in dex2oat\n\nDex2oat can accept now multiple profile files to drive a profile based\ncompilation. --profile-file and --reference-profile-file speficy a pair\nof profile files which will be evaluated for significant differences\nbefore starting the compilation. If the difference is insignificant\n(according to some internal metric) the compilation is skipped and a\nmessage is logged.\n\nMultiple pairs of --profile-file and --reference-profile-file can be\nspecified. This effectively enables multi user support since profiles\nfor different users will be kept separately.\n\n--reference-profile-file can be left out, case in which the decision is\nsolely based on --profile-file. If both flags are present, then their\nrepetition should form unique pairs.\n\nIf the compilation is performed and --reference-profile-file is given\nthen its data is merged with the data from the corresponding --profile-\nfile and saved back to the file.\n\nIf no profile flags are given, dex2oat proceeds as before and compiles\nthe dex files unconditionally.\n\nAs part of this change\n- merge ProfileCompilationInfo and OfflineProfilingInfo under the same\nobject. There was no use to keep them separate anymore.\n- SaveProfilingInfo now merges the data with what was in\nthe file before instead of overwriting it.\n\nBug: 26080105\n\nChange-Id: Ia8c8b55587d468bca5179f78941854285426234d\n"
    },
    {
      "commit": "8994a04162a92759f8ec531d18ee8901145dfda0",
      "tree": "802550252d5ad02060abf66fbbbc43530b09cfcb",
      "parents": [
        "1e65a78577ed71f5e3d79edaa0e6735ea4a3371b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 30 19:03:17 2015 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 30 12:41:29 2015 -0800"
      },
      "message": "Revert \"Revert \"ART: Fix up some multi-image cases\"\"\n\nThis reverts commit de38b797c3e5ba3ee44c480db7093386975c51eb.\n\nFix up imgdiag for std::string and multi-image.\n\nBug: 26317072\nBug: 26320300\n\nChange-Id: I94ce9528e9fea6fb3231a70c32db02d567143db9\n"
    },
    {
      "commit": "de38b797c3e5ba3ee44c480db7093386975c51eb",
      "tree": "66fdb4f09ffe5d62f491f53b9d311ea3e7349f71",
      "parents": [
        "288b1e9a0dddfb91e85067fe81de55174f313c7c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 30 14:50:12 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 30 14:50:12 2015 +0000"
      },
      "message": "Revert \"ART: Fix up some multi-image cases\"\n\nFails imgdiag_test on device.\n\nBug: 26317072\nBug: 26320300\n\nThis reverts commit 288b1e9a0dddfb91e85067fe81de55174f313c7c.\n\nChange-Id: Iccd05827b0630281b6f959331eaa4202526df78e\n"
    },
    {
      "commit": "288b1e9a0dddfb91e85067fe81de55174f313c7c",
      "tree": "3b8926db8ed6a575975540694c2bc81b4197b7de",
      "parents": [
        "6147f7520a1279b58d58c5d73a707dea2fbdd376"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 28 10:41:49 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Dec 28 19:21:26 2015 -0800"
      },
      "message": "ART: Fix up some multi-image cases\n\nChange the auto-generated multi-image names to include the path\ncomponents from the first image, as well as prefix them with the\nfirst image\u0027s name to disambiguate. This fixes vogar-style usage.\n\nFix an out-of-bounds issue in dex2oat when dex files are missing.\n\nForbid generating or patching multi-image parts when loading images.\nInstead just fail loading them.\n\nRemember ImageSpace instances that have been added while trying to\nload a multi-image set. Remove all loaded instances when the overall\nloading process fails.\n\nRefactor the dex location adaptation into ImageSpace. Reuse the code\nin the Runtime path for fallback, so that all dex files can be found\ncorrectly.\n\nFix an out-of-bounds access in OatFileAssistant in fallback mode.\n\nPartially reverts d895961d07a1d320b29f2045a48bc5a1944a4d3c. Push an\nactual image name, that is, something with an art extension, to\nthe vogar scripts.\n\nPartially reverts c525604b313bb77a2077e1fec43dfab76cb1b9b1. Test\n119-noimage-patchoat works again.\n\nBug: 26317072\nBug: 26320300\nChange-Id: I3f05fa77f22a2b9ca54c3105ffc53646c1928604\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": "0cf4493166ff28518c8eafa2d0463f6e817cce75",
      "tree": "6d207db3fb655bbd692f2b01fa963c603619bd0e",
      "parents": [
        "d674bf7ba2a209790cea8ef8d935480ef515c9e1"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Dec 09 14:09:59 2015 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Dec 23 13:19:16 2015 +0000"
      },
      "message": "Generate more stack maps during native debugging.\n\nGenerate extra stack map at the start of each java statement.\nThe stack maps are later translated to DWARF which allows\nLLDB to set breakpoints and view local variables.\n\nChange-Id: If00ab875513308e4a1399d1e12e0fe8934a6f0c3\n"
    },
    {
      "commit": "a1b21219dbed80f8812611968b624ba8644781e3",
      "tree": "9c95ed16adc5695caf8150839b760b154873c328",
      "parents": [
        "840d22928c09bf373c8f559171fdba3f7448345e",
        "49b0f45d5a9023653ab00c355735910aa51ee0ba"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 10 20:29:25 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 10 20:29:25 2015 +0000"
      },
      "message": "Merge \"Refactor and clean up OatWriter and Dex2Oat.\""
    },
    {
      "commit": "49b0f45d5a9023653ab00c355735910aa51ee0ba",
      "tree": "655a013ab75ff1acbeae1e9113b1339f0fd14f2f",
      "parents": [
        "6d0aefdc1f536e093305e29770cf749acb3247e2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 10 13:49:19 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 10 19:42:52 2015 +0000"
      },
      "message": "Refactor and clean up OatWriter and Dex2Oat.\n\nThis is in preparation for early writing of dex files\nto oat file.\n\nChange-Id: I31195f3c94eb8ff676c600c60bd35ae531f457b4\n"
    },
    {
      "commit": "ceb07b3285eaab350a8cd12f7d74be3e40a255dd",
      "tree": "4d5f7c1ab47ea6b8399d2112b69a818a0519b2de",
      "parents": [
        "836ee764c86892aff1dca6b0f8b27e32c7374cc7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 10 09:33:21 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 10 10:28:19 2015 -0800"
      },
      "message": "Revert \"Revert \"Add support for LZ4 compressed image files\"\"\n\nNeeded to call compiler_driver_-\u003eSetSupportBootImageFixup(false).\n\nBug: 22858531\n\nThis reverts commit 83d4d72aa0e4170209ab50c67ba22e46b71352c1.\n\nChange-Id: Iaed6a810a0c088f1f2c57cf2f12087f3978a3de1\n"
    },
    {
      "commit": "6247556fb980c5122fc2dd5c431c2b2c0281606d",
      "tree": "558560aa7383e5bb926a99b49bced36844881a46",
      "parents": [
        "70a33905e90c655cb17303b238bace2a2f4d5bf9",
        "3045cfe0ae439aa94cf7b770a9e329c7edc1fc8a"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Dec 10 10:24:10 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 10 10:24:10 2015 +0000"
      },
      "message": "Merge \"Fix imgdiag build rules.\""
    },
    {
      "commit": "3045cfe0ae439aa94cf7b770a9e329c7edc1fc8a",
      "tree": "dbb441af8d6c012c98d45d356373ff5f3cdadc2c",
      "parents": [
        "2433d4e17c3006b8262a0d9421e201fc84777208"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Dec 10 10:17:43 2015 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Dec 10 10:17:43 2015 +0000"
      },
      "message": "Fix imgdiag build rules.\n\nAdjust build rules to avoid building a 64-bit imgdiag\nexecutable on host when HOST_PREFER_32_BIT is true.\n\nThis CL addresses an imgdiag related build issue that\nappeared on the ART Buildbot after system/core was unpinned\nfrom the master-art manifest\n(https://android-review.googlesource.com/#/c/185580), used\nby some of our Buildbot configurations:\n\n  ninja: error: \u0027out/host/linux-x86/obj/SHARED_LIBRARIES/libbacktrace_intermediates/export_includes\u0027, needed by \u0027out/host/linux-x86/obj/EXECUTABLES/imgdiag_intermediates/import_includes\u0027, missing and no known rule to make it\n\nBug: 26051370\nChange-Id: I8f3b3c89fb8da0c37a1ffb21b6d835e7ede1e71a\n"
    },
    {
      "commit": "83d4d72aa0e4170209ab50c67ba22e46b71352c1",
      "tree": "5444d2ba3e49c4bc8f7997ed0886264f53902ca6",
      "parents": [
        "c6f41b5b3ca3d7ac3c12ad3995ffef4e831973a0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 10 08:26:32 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 10 08:26:32 2015 +0000"
      },
      "message": "Revert \"Add support for LZ4 compressed image files\"\n\nTentative. Looks like it breaks image_test for hammerhead:\nart/compiler/linker/arm/relative_patcher_thumb2.cc:36] Check failed: target_offset \u0026 1u \u003d\u003d 1u (target_offset \u0026 1u\u003d0, 1u\u003d1) \n\nBug: 22858531\n\nThis reverts commit c6f41b5b3ca3d7ac3c12ad3995ffef4e831973a0.\n\nChange-Id: I9bc5738a8b5c8f8bc8b73309f9420fd691bc79a9\n"
    },
    {
      "commit": "c6f41b5b3ca3d7ac3c12ad3995ffef4e831973a0",
      "tree": "c32c87552120021c091540e010722eb317d04441",
      "parents": [
        "d7d23eec777a8b84909f3364700fc1e8a075e5a2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Dec 04 15:38:50 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 09 11:40:19 2015 -0800"
      },
      "message": "Add support for LZ4 compressed image files\n\nAdded dex2oat option --image-format\u003d(store|lz4). Using lz4 means\nthat the main image section (all data other than header and bitmap)\nare stored in a compressed state.\n\nN5 results:\nBoot image size: 8067128 -\u003e 2827605\nDecompression time 18.93ms\nDecompression rate: 426MB/s\n\nPatchoat is not currently supported since it maps the source image\ndirectly. In order to support compressed images we would need to\nrecompress the output image and then write it back out to a file.\nAlso there are not many cases where we would want to patch a\ncompressed image since they are going to be dirty memory when\nuncompressed anyways. Might as well just patch as we are loading.\n\nBug: 22858531\n\nChange-Id: I8c54ccf73408273011161a61bb891736735074d9\n"
    },
    {
      "commit": "64fff41f639a7b85b2e172977175b3c79151634e",
      "tree": "67bcdff6c0d4c92d4e3f023927c0891447d35854",
      "parents": [
        "533ffe5369cdaeb8ab7986b1fefece32351c0366"
      ],
      "author": {
        "name": "Kevin Brodsky",
        "email": "kevin.brodsky@linaro.org",
        "time": "Tue Nov 24 14:24:34 2015 +0000"
      },
      "committer": {
        "name": "Kevin Brodsky",
        "email": "kevin.brodsky@linaro.org",
        "time": "Wed Dec 09 11:42:12 2015 +0000"
      },
      "message": "Clarify --boot-image help message\n\nMake dex2oat print the same help as e.g. oatdump regarding\n--boot-image and clarify the example, this is particularly important\nas the automatic addition of the arch to the path is quite\ncounterintuitive.\n\nChange-Id: I234b498d5deca99bb988a9c24ff9febc6349eb9e\n"
    },
    {
      "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": "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": "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": "da5b28adf5ba013f0784578a8b97577782e23d95",
      "tree": "938c87fd4eabebed7a41fc373e18ac08111d9b49",
      "parents": [
        "51c1b63fc71bea1b22b9719bc24ffd130aa2e420"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 05 08:03:47 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 05 15:53:49 2015 -0800"
      },
      "message": "Revert \"Revert \"Add basic image writer support for app images\"\"\n\nNo changes, bug fixed in:\nhttps://android-review.googlesource.com/#/c/180886/\n\nBug: 22858531\n\nThis reverts commit 4b018565e57c3349a3c1b5ec8ac9dae261c5e00b.\n\nChange-Id: I86d9c2b55d535d803c6e1b3b8b4836bf6ff077e5\n"
    },
    {
      "commit": "4b018565e57c3349a3c1b5ec8ac9dae261c5e00b",
      "tree": "ee1ea3271d41b9a647a7ce7e4d1a0ed94eff9fcf",
      "parents": [
        "c033474cfbfe1e963c07fa5c38aed02e35ed6f91"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 05 08:47:52 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 05 08:48:36 2015 +0000"
      },
      "message": "Revert \"Add basic image writer support for app images\"\n\ninterpreter and jit tests fail.\n\nBug: 22858531\n\nThis reverts commit c033474cfbfe1e963c07fa5c38aed02e35ed6f91.\n\nChange-Id: Ic12a3e2a1908ac0db52d21a0b44b2508c88b2585\n"
    },
    {
      "commit": "c033474cfbfe1e963c07fa5c38aed02e35ed6f91",
      "tree": "7b5532969edb6036525cfa36973f52dcd5f6f566",
      "parents": [
        "c8894ab5021aecd0fa5eba94af47f732914af33b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 02 10:30:20 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 04 16:30:51 2015 -0800"
      },
      "message": "Add basic image writer support for app images\n\nNeeded to handle references from app image -\u003e boot image.\n\nGenerate app images for tests to enable some testing.\n\nBug: 22858531\n\nChange-Id: I1af98b6c4dfcb3a147fb5b0dea64aa4946c7ce57\n"
    },
    {
      "commit": "a90c772bf5c0ae1f0d88659bfeba0c93d3af7ade",
      "tree": "6ac0a1698ef53c7bb7258d471816b4edf6fb9212",
      "parents": [
        "e00197d60579838974c02853fd3371ac761922ae"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 29 15:41:36 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 02 08:40:32 2015 -0800"
      },
      "message": "Add application image dex2oat options\n\nBug: 22858531\nChange-Id: Ia6a2a832b20b5bb70672521cd06f679335efbd92\n"
    },
    {
      "commit": "469e9c4515cb68509f02def2fe6c0465ffb55628",
      "tree": "d71e88ac9b0862dc04a25325ff950ea91179ae93",
      "parents": [
        "289c4e3a10acb6d0250dc25dd42465ca4d08c762",
        "d1eaf0dc9abc42dbcbbd9c4b98bf930ae5f394f3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Oct 30 16:26:49 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 30 16:26:49 2015 +0000"
      },
      "message": "Merge \"Keep list of dex files for oat file in CompilerDriver.\""
    },
    {
      "commit": "d1eaf0dc9abc42dbcbbd9c4b98bf930ae5f394f3",
      "tree": "335509fbc92becce5cb08e23361e2cae86756729",
      "parents": [
        "594c0612519e96bcc1bd42ff4dcbfa2c53b09c5a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 29 12:18:29 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Oct 30 15:38:39 2015 +0000"
      },
      "message": "Keep list of dex files for oat file in CompilerDriver.\n\nUse this list to improve invoke-static/-direct dispatch for\nintra-oat calls.\n\nAlso fix a latent ArmBaseRelativePatcher::ReserveSpaceEnd()\nbug exposed by a buggy early version of this CL: when we\nhave unresolved patches at the end of all code, we need to\nemit a final thunk. Though the OatWriter will try to patch\nthe unresolved call to a trampoline at the beginning of the\noat file, that trampoline may be too far and the relative\npatcher doesn\u0027t know about it anyway, so it needs to assume\nthat a thunk is needed.\n\nThis reduces the overall size of oat files present in dalvik\ncache on Nexus 9 after first boot by over 1MiB, AOSP ToT,\naosp_flounder-userdebug build.\n\nChange-Id: I98604b70cb17377eed057c1c23971865cf344e43\n"
    },
    {
      "commit": "f31f9739e6cb06298604f5fb723db2ab9a8f2962",
      "tree": "2fda8cbe8767c71a11e1830f0b335ce957d077d4",
      "parents": [
        "70d95b4cabcabff7eda37e9e8348744891008e65",
        "abbb0f76b07417f13f712f54d5afddb72e3b9931"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 30 11:48:08 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 30 11:48:08 2015 +0000"
      },
      "message": "Merge \"Refactor code so that JIT can parse compiler options.\""
    },
    {
      "commit": "abbb0f76b07417f13f712f54d5afddb72e3b9931",
      "tree": "bb26eeb28b58aed669ad16af30aa35771eb02be4",
      "parents": [
        "594c0612519e96bcc1bd42ff4dcbfa2c53b09c5a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Oct 29 18:55:58 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 30 11:17:00 2015 +0000"
      },
      "message": "Refactor code so that JIT can parse compiler options.\n\nCurrently only the CompilerOptions class. We should also\ndo it for the CompilerDriver options.\n\nThis will fix the flakiness seen on jdwp testing, as the\ndebuggable flag was not passed to the compiler.\n\nChange-Id: I4218dd5928c9f4fe2d6191ab11e5598e7cf84bcf\n"
    },
    {
      "commit": "d9786b0e5be23ea0258405165098b4216579209c",
      "tree": "88641c107d29d0848ce8219652b8d0b1cdd3755c",
      "parents": [
        "57bee8dc2206404164606d4f5cabde272505f5fa"
      ],
      "author": {
        "name": "Artem Udovichenko",
        "email": "artem.u@samsung.com",
        "time": "Wed Oct 14 16:36:55 2015 +0300"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 29 09:38:06 2015 -0700"
      },
      "message": "Implementation of fast lookup table to search class_def by descriptor\n\nLookup table is a hash table which built at compile time and stored\ninto oat file. At runtime the table is restored and used in the\nmethod DexFile::FindClassDef(const char*) to perform fast search of\nthe class_def_idx by class descriptor. Advantages of the lookup table\nover the HashSet (runtime/base/hash_set.h) are:\n1. Lookup table is built at compile time and uses read-only memory at\nruntime\n2. Lookup table uses less memory then DexFile::Index (less by 80% for\n/system/framework/framework.jar on Nexus5)\n3. Lookup table does less string comparisons compared with HashSet\n(less by 70% for zygote process on Nexus5)\nThe disadvantage of the lookup table is it increased boot.oat size by\n0.2% on Nexus5 and application .oat file by 0.3% in average on Nexus5.\n\nmathieuc changes:\nCreate lookup table in dex2oat to speed up compilation. Clean up code\nto follow style guide and use less static functions. Added\nperformance measurements.\n\nCompile ~100 APKs 5 times with filter interpret-only:\nBefore:\nreal  1m8.989s\nuser  0m59.318s\nsys 0m7.773s\n\nAfter:\nreal  1m1.493s\nuser  0m52.055s\nsys 0m7.581s\n\nApp launch (AOSP N5 maps, average of 45 runs):\nBefore: 966.84ms\nAfter: 923.733ms\nLaunch speedup is 4.7%\n\nMemory usage compared to HashSet index on 50 various APK:\n32 bit: HashSet ~625694b vs TypeLookupTable ~404268b\n64 bit: HashSet ~1251390b vs TypeLookupTable ~404268b\n\nBug: 10921004\nBug: 20269715\n\nChange-Id: I7246c1d9ad9fe81fe5c5907a4bf70396d8f9242a\n"
    },
    {
      "commit": "307dac9ac366ebb454d5e68d5681189b15035854",
      "tree": "e92df14bd45b3aed4f158bf562a8c0b0b0e8f48f",
      "parents": [
        "620021e643518dc93dc618d3e9df1c33ff8a491c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 20 11:20:09 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 20 14:25:21 2015 +0100"
      },
      "message": "Fix destruction order in Dex2Oat.\n\nIn case of a failure (say, --image\u003d pointing to non-existent\ndirectory), the image_writer_ may not be destroyed in\nCreateImageFile() and it will be destroyed in Dex2Oat\u0027s\ndestructor instead. However, ImageWriter owns a MemMap, so\nit must be destroyed before MemMap::Shutdown() called from\nRuntime\u0027s destructor. In release builds without leak checks,\nwe intentionally leak the runtime, so we don\u0027t hit the\ndestruction order issue. However, debug build was crashing\non the DCHECK(maps_ !\u003d nullptr) in MemMap destructor.\n\nThis change cleans up the destruction order and deliberately\nleaks even more owned data in release builds without leak\nchecks.\n\nChange-Id: Ib7f305bb676589d0379ecaafe6a53eeae208beaa\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": "409e80901468f6c746eeae5c6e93ceedf1d8c711",
      "tree": "5b91b35e0c28299f96136a9f714f3f8b767cfa85",
      "parents": [
        "dc2ce636d6a98118a5998b93da161ef7840ec645"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Oct 01 10:32:19 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Oct 01 10:42:36 2015 +0100"
      },
      "message": "Don\u0027t force the boot image to using quick.\n\nInstead, put the debuggable flag.\n\nAlso, remove obsolete ART_USE_OPTIMIZING_COMPILER environment\nvariable.\n\nChange-Id: Idde00da0d063aa461faa0308134f3b420de9fe0a\n"
    },
    {
      "commit": "f6010eca09e943616b069e5bb38ee3589134e7bb",
      "tree": "c966d720e4e272b5db2876068afb606b4aba4165",
      "parents": [
        "a28cae4d38020ea5c42c203414eaa667743ffd1e"
      ],
      "author": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Sep 21 20:28:36 2015 -0700"
      },
      "committer": {
        "name": "Yabin Cui",
        "email": "yabinc@google.com",
        "time": "Mon Sep 21 21:43:04 2015 -0700"
      },
      "message": "Fix static build when libbacktrace links llvm libraries.\n\nBug: 22229391\n\nChange-Id: I8a2f3471cc1915e1e4e1eea0898219614e289ef3\n"
    },
    {
      "commit": "1b1eb050a0ea0016558cccbb029f7255284bd54f",
      "tree": "7126657535b912f6f6dc4aafb57530cfcbb738d7",
      "parents": [
        "63c8be99c025eafb9241d5b2b3c86749f4e79e11",
        "540138ae55ac1909606a436d7f52e20146c56657"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 18 18:07:49 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 18 18:07:49 2015 +0000"
      },
      "message": "Merge \"ART: Decrease dex2oat watchdog timeout\""
    },
    {
      "commit": "63c8be99c025eafb9241d5b2b3c86749f4e79e11",
      "tree": "26bcd983e197934056b62af32fcf01a1c0599bc1",
      "parents": [
        "10da8717e5e909556c7e7610d212db6c65fefbe2",
        "3f30e1219dd76f78bb9b6504e696a04a3dfae564"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 18 17:55:28 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 18 17:55:28 2015 +0000"
      },
      "message": "Merge \"ART: Clean up less in dex2oat\""
    },
    {
      "commit": "3f30e1219dd76f78bb9b6504e696a04a3dfae564",
      "tree": "72e36563f506fbbd5ea98dee64b44fbf1e3ca782",
      "parents": [
        "930761fb7a4db70fbd5e75faa1fca07e5b494ae9"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 17 14:03:21 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 18 17:53:29 2015 +0000"
      },
      "message": "ART: Clean up less in dex2oat\n\nIn non-debug builds, clean up even less. We already did not shut\ndown the runtime. Also skipping the compiler driver and the\nverification results removes all major points of destructor\nperformance.\n\nTested with a common large app on Nexus 9. Time between dex2oat timing\nmessage and executable exit (log from immediately-after log echo)\n[w/o swap, w/ swap].\nBefore:  2.409s / 48.774s\nAfter:   0.132s /  0.188s\n\nBug: 24199200\nChange-Id: I5d8c17f8e28796545cfbb3887c07c92905f9b48d\n"
    },
    {
      "commit": "540138ae55ac1909606a436d7f52e20146c56657",
      "tree": "06b056d510b3f4b82740941a85ca9ccf2c80bebe",
      "parents": [
        "dc25b96abb09f292cf6e580e49d4cea4c968c106"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 14 15:34:38 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 17 19:45:35 2015 -0700"
      },
      "message": "ART: Decrease dex2oat watchdog timeout\n\nKeep the dex2oat watchdog timeout lower than the package manager\ntimeout, so that dex2oat kills itself before the system server\nwatchdog kills the system because of the long installation.\n\nBug: 23629410\nChange-Id: I5faa23a1715736a1c2ba3f302a6ee41130d3fbae\n"
    },
    {
      "commit": "33ddb742a1bd7ec3ec4148b4ead026e63e338f4c",
      "tree": "0c4b012168efcf65cfaead1d794b68aef8f7c4ff",
      "parents": [
        "6766eae2d91e894b4ceab9f29cc983900e7bc0c7"
      ],
      "author": {
        "name": "Ivan Krasin",
        "email": "krasin@google.com",
        "time": "Thu Sep 17 13:40:19 2015 -0700"
      },
      "committer": {
        "name": "Ivan Krasin",
        "email": "krasin@google.com",
        "time": "Thu Sep 17 13:51:37 2015 -0700"
      },
      "message": "asan: update condition to work with multiple SANITIZE_TARGET values.\n\nThe goal is to enable SANITIZE_TARGET\u003d\u0027address coverage\u0027, which\nwill be used by LLVMFuzzer.\n\nBug: 22850550\nBug: 22233158\nChange-Id: I909c6268e5c3d2da0361f2a2216cac080afbee64\n"
    },
    {
      "commit": "4919c34ead9a10d6cbdaba9967952c344b32e5b9",
      "tree": "fcf92065ee03d391c1120b3b85cbe2c3e12bf69b",
      "parents": [
        "831904f6fb678354bdf8e7736723a9d87a2cde31",
        "c7ae55d1753c1a684dd5c39e2f0c7b11dc0a0fdd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 16 15:30:56 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 16 15:30:56 2015 +0000"
      },
      "message": "Merge \"ART: Make dex2oat timing a bit more granular\""
    },
    {
      "commit": "c7ae55d1753c1a684dd5c39e2f0c7b11dc0a0fdd",
      "tree": "f33eae042d4c11c5fc06984aa0a045de25dcf716",
      "parents": [
        "1a1d77f7f8cdc892a59b1618b5bd8fea269354cb"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 15 20:04:54 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 15 20:04:54 2015 -0700"
      },
      "message": "ART: Make dex2oat timing a bit more granular\n\nAdd scoped timing for runtime creation and dex file opening. Allows\ncomparing (JIT) compile time to specific overhead inherent to all\ncompilations.\n\nBug: 24103765\nChange-Id: I1f83daa7015745bffa0cec3a3357b045c8493d6a\n"
    },
    {
      "commit": "87000a948524cba7538ccc5438f6a9ecbd4e347e",
      "tree": "3cf06ec6a939c31540ed5d7028aa0c0838329cc2",
      "parents": [
        "b505997b2176bd29a108cb6c33d06d4ef29ba001"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Aug 24 15:34:44 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Sep 15 15:02:18 2015 +0100"
      },
      "message": "Add option to append to the cfg dump.\n\nThis makes life easier when verifying tests with unresolved classes\n(which call dex2oat at rutime).\n\nChange-Id: I7985b2b7c0f343462e03a26b8395297c810b1d95\n"
    },
    {
      "commit": "b2872dac9979e10dd6e2ad62712f560503393b68",
      "tree": "aa5f10e70928c3ba79a32c5272f9fada7ff754c3",
      "parents": [
        "df6cfbbd9c7bff805ead548ba8c042a9efe8dccd"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Sep 02 09:35:25 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Sep 02 09:37:25 2015 +0100"
      },
      "message": "Document the `--debuggable` option in dex2oat\u0027s usage.\n\nChange-Id: I88accd4c4b6340b67407d948c72b595349b2eede\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": "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": "581550137ee3a068a14224870e71aeee924a0646",
      "tree": "f62dd0d07c66a8ce4d7d994ee0e9c27bd8014bb1",
      "parents": [
        "32f264e67afa8654a5570d38b627515fb73fc333"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 19 12:49:41 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 19 18:54:36 2015 +0100"
      },
      "message": "Revert \"Revert \"Optimizing: Better invoke-static/-direct dispatch.\"\"\n\nFixed kCallArtMethod to use correct callee location for\nkRecursive. This combination is used when compiling with\ndebuggable flag set.\n\nThis reverts commit b2c431e80e92eb6437788cc544cee6c88c3156df.\n\nChange-Id: Idee0f2a794199ebdf24892c60f8a5dcf057db01c\n"
    },
    {
      "commit": "b2c431e80e92eb6437788cc544cee6c88c3156df",
      "tree": "6c0ac5f843845e4b09829eb0fd9f1b3013cf4494",
      "parents": [
        "9b688a095afbae21112df5d495487ac5231b12d0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 19 12:45:42 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 19 12:45:42 2015 +0000"
      },
      "message": "Revert \"Optimizing: Better invoke-static/-direct dispatch.\"\n\nReverting due to failing ndebug tests.\n\nThis reverts commit 9b688a095afbae21112df5d495487ac5231b12d0.\n\nChange-Id: Ie4f69da6609df3b7c8443412b6cf7f5c43c2c5d9\n"
    },
    {
      "commit": "9b688a095afbae21112df5d495487ac5231b12d0",
      "tree": "e5e881d4d124803e66f1e90c1e0a0e4c90d22e13",
      "parents": [
        "009c34cba875885d9540696f33255a9b355d6e15"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 06 14:12:42 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 19 12:23:37 2015 +0100"
      },
      "message": "Optimizing: Better invoke-static/-direct dispatch.\n\nAdd framework for different types of loading ArtMethod*\nand code pointer retrieval. Implement invoke-static and\ninvoke-direct calls the same way as Quick. Document the\ndispatch kinds in HInvokeStaticOrDirect\u0027s new enumerations\nMethodLoadKind and CodePtrLocation.\n\nPC-relative loads from dex cache arrays are used only for\nx86-64 and arm64. The implementation for other architectures\nwill be done in separate CLs.\n\nChange-Id: I468ca4d422dbd14748e1ba6b45289f0d31734d94\n"
    },
    {
      "commit": "99e7df6cab07a17e8d5dc6bc2421f9890e34734f",
      "tree": "d3d5835fa9304a11f422380d0aa43d160ca34c4c",
      "parents": [
        "18d54cda7d9a0e6846a1c7b9b72c07598f3d1855"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Aug 17 14:14:25 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Aug 17 14:14:25 2015 -0700"
      },
      "message": "ART: Dex2oat lint fix\n\nLint fix.\n\nChange-Id: Id45bc246645715afaca58c145a70c3b319e5d673\n"
    },
    {
      "commit": "9ec5e2217b0130b448013796255d803c7d1052c9",
      "tree": "a7422f4f6c1a621bebf865966f55a3a3bbe21499",
      "parents": [
        "8ecc1357e2c682165467ca8e10c7a748f7554df2"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Aug 17 20:18:41 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Aug 17 20:18:41 2015 +0100"
      },
      "message": "Refactor art::Dex2Oat::ParseArg.\n\nSplit up art::Dex2Oat::ParseArg to allow\n`clang++ -01 -Werror -Wframe-larger-than\u003d1728` to compile\ndex2oat.cc.\n\nChange-Id: I0b45f394568765ccd849c87a7cf910507291e65d\n"
    },
    {
      "commit": "a215b95d03cfe713018a245553b74d7eeee813df",
      "tree": "59e45e77430ab4df2067dd758a113c07eddeee51",
      "parents": [
        "33407564904d2186f536107e1ca8d88f2c760c83"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Aug 07 11:38:32 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Aug 07 11:38:32 2015 +0100"
      },
      "message": "Tighten default inlining settings when using the space filter.\n\nBug: 21868508\nChange-Id: Ic83813a966cef18e59447083926bf033aa587154\n"
    },
    {
      "commit": "ec74835a7e4f2660250a2f3f9508cbbe5269e49a",
      "tree": "4171854ca234b8f76e82baad7263878dd834b720",
      "parents": [
        "8c4113b81eda9b2eab3761583f0d9e678b0e6bdd"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jul 29 13:52:12 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jul 29 18:29:39 2015 +0100"
      },
      "message": "Allow for fine tuning the inliner.\n\nBug: 21868508\n\nChange-Id: Ice7f1604ed65e3d4ed2a010ee431272b7d000cdb\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": "1e13374baf7dfaf442ffbf9809c37c131d681eaf",
      "tree": "9a8a53295a8389d7ec10accf3efb8785a97a3599",
      "parents": [
        "f68c8545382925062da2b87169ca2b5314f0b431"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed May 20 12:30:59 2015 -0700"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Mon Jul 13 17:38:40 2015 -0700"
      },
      "message": "Generalize Valgrind annotations in ART to support ASan.\n\nAlso add redzones around non-fixed mem_map(s).\nAlso extend -Wframe-larger-than limit to enable arm64 ASan build.\n\nChange-Id: Ie572481a25fead59fc8978d2c317a33ac418516c\n"
    },
    {
      "commit": "bb5965c8891c748a30120ff20e873bbfe2dbf5d5",
      "tree": "c1bc19ef022cbd03ec0c1e98a771052e635595ef",
      "parents": [
        "288b30015d136a81e5899439c398ca476e332006",
        "c2f0474b90ee62fce1e538bfbfde4a609885b258"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Mon Jul 06 23:20:48 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 06 23:20:49 2015 +0000"
      },
      "message": "Merge \"Disable sanitization of dex2oat on device.\""
    },
    {
      "commit": "c2f0474b90ee62fce1e538bfbfde4a609885b258",
      "tree": "233905d2e87a2a390470552714db5101faaa5183",
      "parents": [
        "3b0667c1d68ba88c71b031757b757dca659afd69"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Mon Jul 06 14:01:25 2015 -0700"
      },
      "committer": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Mon Jul 06 16:16:43 2015 -0700"
      },
      "message": "Disable sanitization of dex2oat on device.\n\nBug: 22233158\nChange-Id: I54990bb167a65275ed28e0cbbab56b936eb70ca4\n"
    },
    {
      "commit": "d5c5ea39775276e38df8b5981a8423777254e098",
      "tree": "7d4c75fedfb697e7c6bd942e53c2fe8f192f5abd",
      "parents": [
        "f7aa6c05a1c7d70182d43abaf3ff43b6d463eec0",
        "49a17ec8427e2723bc8d36bb5eab52618bc3600a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 06 15:21:35 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 06 15:21:35 2015 +0000"
      },
      "message": "Merge \"Revert \"ART: Unlink target oat file before compiling\"\""
    },
    {
      "commit": "22bb5a2ebc1e2724179faf4660b2735dcb185f21",
      "tree": "74b5bec56238a9f4ee3ee9e52d2fd6da4ee2a806",
      "parents": [
        "b447598f6900f05f0b1940a0731ee374c57c3100"
      ],
      "author": {
        "name": "Douglas Leung",
        "email": "douglas.leung@imgtec.com",
        "time": "Thu Jul 02 16:42:08 2015 -0700"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jul 03 13:27:29 2015 +0100"
      },
      "message": "Add implicit null pointer and stack overflow checks for Mips.\n\nBug: 21555893\nChange-Id: I2a995be128a5603d08753c14956dd8c8240ac63c\n"
    },
    {
      "commit": "65e069df6f864102b062fc04de8877f8230034a8",
      "tree": "e9f156df149eac2c360e3d2974f3a80c726b751d",
      "parents": [
        "01aaf6ef3e3e35cc8e41cf3fe899a7bf337042f4"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Jun 08 10:35:24 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jul 01 13:48:23 2015 +0100"
      },
      "message": "Build statically linked version of dex2oat.\n\nChange-Id: Icde39b770781095af7bd87ae6b907ad97a8a05da\n"
    }
  ],
  "next": "01aaf6ef3e3e35cc8e41cf3fe899a7bf337042f4"
}
