)]}'
{
  "log": [
    {
      "commit": "8cf9cb386cd9286d67e879f1ee501ec00d72a4e1",
      "tree": "88e86e214b425e444760fe4e0ffeee677e1558a2",
      "parents": [
        "914b7b6a6c9f399b26b41e9160e9871ef749e0db"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 19 09:28:38 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 24 16:07:10 2017 -0700"
      },
      "message": "ART: Include cleanup\n\nLet clang-format reorder the header includes.\n\nDerived with:\n\n* .clang-format:\n BasedOnStyle: Google\n IncludeIsMainRegex: \u0027(_test|-inl)?$\u0027\n\n* Steps:\n find . -name \u0027*.cc\u0027 -o -name \u0027*.h\u0027 | xargs sed -i.bak -e \u0027s/^#include/ #include/\u0027 ; git commit -a -m \u0027ART: Include cleanup\u0027\n git-clang-format -style\u003dfile HEAD^\n manual inspection\n git commit -a --amend\n\nTest: mmma art\nChange-Id: Ia963a8ce3ce5f96b5e78acd587e26908c7a70d02\n"
    },
    {
      "commit": "bbe3a5efcdfb2fb15a4e5f724cc323ae0ada5111",
      "tree": "65fd149e1159674681d866e47e485d85b8464334",
      "parents": [
        "d58932f98a673c9d687863a7efafb2da168063a2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 13 16:36:17 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 15 11:45:06 2017 -0700"
      },
      "message": "Refactor some profiling info functions\n\nDeleted profile_compilation_info-inl.h\n\nAdded a new helper class MethodHotness to reduce the number of\nrequired getters for reading method hotness, startup, and post\nstartup booleans.\n\nTest: test-art-host\nBug: 62040831\n\nChange-Id: I799a38e2bea6177ba5816c54524f4ccacedba772\n"
    },
    {
      "commit": "ea650f3bc4f54eb2c647cf0f7134398ef5038792",
      "tree": "cdddde74424cf9fbeb2ef62e6bebca619c5ed989",
      "parents": [
        "6559ba1cfb9d24fdca4b1b1ec9e0b8dc31679982"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed May 24 12:04:13 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 02 18:25:09 2017 +0000"
      },
      "message": "Move profiles to use bitmaps for startup methods\n\nThis CL enables changes like compiling only hot methods while still\ndoing layout for hot and startup methods.  The bitmaps are also a\nbit smaller for post-launch use cases.\n\nNo change in compilation strategy yet.\n\nFixed some bugs in dexlayout test like using a profile with the wrong\ndex location. This meant the second invocation of dexlayout didn\u0027t\nhave any profile data.\n\nAdded profman support for dump-classes-and-methods,\ncreate-profile-from, and related test.\n\nProfile sizes (bytes) post launch:\nGmail: 7290 -\u003e 6136\nMaps: 22896 -\u003e 18984\nMusic: 8582 -\u003e 7050\nYouTube: 16733 -\u003e 14592\n\nTest: test-art-host\n\nBug: 62040831\n\nChange-Id: I9915b81a2ff2c47464acbbdeb55ce30a33d5483f\n"
    },
    {
      "commit": "d00e02b7614e8edc2e1fd8426ec249747881ccee",
      "tree": "eefbab768f128bdde43d2396f02e3e1fcf2039d3",
      "parents": [
        "0a5ace58e973da278049f837bf2cdbaf7b44849c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed May 24 12:04:13 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun May 28 17:59:07 2017 -0700"
      },
      "message": "Fix dexlayout fixed point test\n\nPreviously, the dex location did not match the one in the profile.\nThis caused the second dexlayout to not match the checksum and not\nuse the profile.\n\nAlso added a generic function to generate a profile based on an input\ndex.\n\nTest: test-art-host\n\nBug: 62040831\n\nChange-Id: I2b4fb383ec7a46b158f763de13ecbcd8a8c6180d\n"
    },
    {
      "commit": "02ef6403398bb7a2304c321bb37cc916af7e6261",
      "tree": "a519f5785a84f3901209f8521b3b0a5b4f53ff6f",
      "parents": [
        "76e9b6152f3c1fd137cb0686f728ab59299c33d4"
      ],
      "author": {
        "name": "Bharadwaj Kalandhabhatta",
        "email": "bharadwajsk@google.com",
        "time": "Wed May 17 17:13:39 2017 -0700"
      },
      "committer": {
        "name": "Bharadwaj Kalandhabhatta",
        "email": "bharadwajsk@google.com",
        "time": "Thu May 18 17:47:52 2017 -0700"
      },
      "message": "Added a fixed point test in dexlayout\n\nBug: 36107940\nTest: mm test-art-host-gtest-dexlayout_test\nChange-Id: Ied99aa41fbf49b97e3a3421cb78c92c25d9375da\n"
    },
    {
      "commit": "4b8a96be815a921926f2712287ac7bea26131754",
      "tree": "d98e0c6f45c47b7a8c2bc9312b32834e1173b5c7",
      "parents": [
        "4d198e08d2f67c1f63489e3bb1c6c9f71d398917"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Fri May 12 18:00:14 2017 +0000"
      },
      "committer": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Fri May 12 18:00:42 2017 +0000"
      },
      "message": "Revert \"Revert \"Profile compression: Replace method index with difference with the last method_index\"\"\n\nThis reverts commit 509d4240279c09aa755ebbd399fd333380ba40f2.\n\nChange-Id: I9bc1b461b7a34c2016b5a3027011434e1025f7b6\n"
    },
    {
      "commit": "4d198e08d2f67c1f63489e3bb1c6c9f71d398917",
      "tree": "05655c2cccfa668105725afab42715d46a9d7b68",
      "parents": [
        "13b392640f95c1153524096435f939b2908cfb2f"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Fri May 12 17:45:29 2017 +0000"
      },
      "committer": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Fri May 12 10:56:58 2017 -0700"
      },
      "message": "Revert \"Revert \"Compress profile files\"\"\n\nThis reverts commit 1cf1fe29533e63858f094e4b6595b0d8a03aa7cd.\n\nReason for revert: Fixed the test\n\nTest: ART_HEAP_POISONING\u003dtrue \\\n     make -j64 valgrind-test-art-host-gtest-profile_compilation_info_test64\nBug: 36281963\nChange-Id: I5ae8003436d4d2140cd3512aedfc2bf5982ba277\n"
    },
    {
      "commit": "1cf1fe29533e63858f094e4b6595b0d8a03aa7cd",
      "tree": "70520486d9746dbae04345b600bf95858a7c0ff7",
      "parents": [
        "509d4240279c09aa755ebbd399fd333380ba40f2"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Fri May 12 02:43:23 2017 +0000"
      },
      "committer": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Fri May 12 02:46:20 2017 +0000"
      },
      "message": "Revert \"Compress profile files\"\n\nThis reverts commit 4f0a15a85eaa0a7665f703d435a9b61059eed536.\n\nReason for revert: art-test gtest-heap-poisoning is broken with this change.\n\nChange-Id: I736374766b216122cae4e7e97451951cda1551f9\n"
    },
    {
      "commit": "509d4240279c09aa755ebbd399fd333380ba40f2",
      "tree": "830bea8dd99157a92bdefdee061781fcb23282de",
      "parents": [
        "d59f564f9bb9301855a3613912e287c4eba49655"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Fri May 12 02:42:45 2017 +0000"
      },
      "committer": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Fri May 12 02:44:31 2017 +0000"
      },
      "message": "Revert \"Profile compression: Replace method index with difference with the last method_index\"\n\nThis reverts commit d59f564f9bb9301855a3613912e287c4eba49655.\n\nReason for revert: git_master-art-host - art-gtest-heap-poisoning is broken with this change.\n\nChange-Id: I5a94be6c4609defcee1c0d374009b16e70310a0d\n"
    },
    {
      "commit": "d59f564f9bb9301855a3613912e287c4eba49655",
      "tree": "19c46a2191b1a363ea95cc90cbfb8129e1df5093",
      "parents": [
        "4f0a15a85eaa0a7665f703d435a9b61059eed536"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Mon May 08 17:01:48 2017 -0700"
      },
      "committer": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Thu May 11 12:53:45 2017 -0700"
      },
      "message": "Profile compression: Replace method index with difference with the last method_index\n\nStore the difference with the last method index in the profile rather than\nputting the actual method index. Leveraging the common difference values,\ncompressing the profile will reduce the size further.\n\nResults:\n\nApp1\n    Without - 74K\n    With - 58K\nApp2\n    Without - 54K\n    With - 30K\nApp3\n    Without 40K,\n    With - 24K\n\nBug: 36281963\n\nTest: dexlayout_test, profile_assistant_test, \\\n     profman_test, profile_compilation_info_test\n\nChange-Id: I96bcadac250c08aaf23ade7465c5ac6ba9ea75dc\n"
    },
    {
      "commit": "4f0a15a85eaa0a7665f703d435a9b61059eed536",
      "tree": "830bea8dd99157a92bdefdee061781fcb23282de",
      "parents": [
        "b75e66e7636b3100432c7459130f55e12c12e0ab"
      ],
      "author": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Wed Apr 26 19:26:46 2017 -0700"
      },
      "committer": {
        "name": "Shubham Ajmera",
        "email": "shubhamajmera@google.com",
        "time": "Thu May 11 10:31:40 2017 -0700"
      },
      "message": "Compress profile files\n\nThe change brings in new serialization format:\nmagic,version,number_of_dex_files,uncompressed_size_of_zipped_data,\n    compressed_data_size\nzipped[dex_location1,number_of_classes1,methods_region_size,dex_location_checksum1, \\\n        method_encoding_11,method_encoding_12...,class_id1,class_id2...\n    dex_location2,number_of_classes2,methods_region_size,dex_location_checksum2, \\\n        method_encoding_21,method_encoding_22...,,class_id1,class_id2...\n .....]\n\nThe data is compressed using zlib level 1 compression.\n\nSample app profile statistics on host with and without the change:\n\nApp1\n    Without - 10ms, 160K\n    With - 15ms, 74K\nApp2\n    Without - 4ms, 106K\n    With - 7ms, 54K\nApp3\n    Without 3ms, 74K,\n    With - 7ms, 54K\n\nBug: 36281963\nTest: dexlayout_test, profile_assistant_test, \\\n     profman_test, profile_compilation_info_test\nChange-Id: Iefa51a5a76adb33eef22aa76cdf85c3fe0a59a2a\n"
    },
    {
      "commit": "d212d5b4dcd8ebee9858d863062d7f827ea3a9ea",
      "tree": "e3fca5360949b125347647db204dbcc86dcb628b",
      "parents": [
        "b66ca57ecadc494f1b257f890fef6e1d84005841"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Apr 26 12:09:06 2017 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Apr 26 12:09:06 2017 -0700"
      },
      "message": "Allow dexlayout to handle duplicate code items.\n\nDexlayout now checks to see if a code item already exists at a\nparticular offset before trying to construct a new one. If so, the\nexisting one is returned instead.\n\nBug: 37287151\nTest: mm test-art-host-gtest-dexlayout_test\nChange-Id: I9d89912fa6f00b80ce0e1c866b7800c02d36ee8c\n"
    },
    {
      "commit": "d9be768f6e7f6787bce27b2ec4e1c3736218495a",
      "tree": "caf57ded21afcaac2489977d45041dfbb6bd982d",
      "parents": [
        "207f9bac6f87e652e9ffb6d49ea8b058378b4bb3"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Apr 05 09:29:43 2017 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Apr 05 10:53:32 2017 -0700"
      },
      "message": "Check LocalInfo descriptor for nullptr in dexlayout.\n\nBug: 36966414\nTest: mm test-art-host-gtest-dexlayout_test\nChange-Id: Iff289e4b877354d6ae7922a55ded961072aa0186\n"
    },
    {
      "commit": "4f0250ca952cb3d489604c0de4f318bbc1bb12ba",
      "tree": "81a8e73d4505515b2c0d38bed93cff61dfab7086",
      "parents": [
        "f62940eab11f6d8fa6f07a3976245939c3db7ab7",
        "16d7ec4bf7483bb1b3d2317c8c5f03cf3cc6d208"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Mar 30 23:17:19 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 30 23:17:20 2017 +0000"
      },
      "message": "Merge \"Update profile version\""
    },
    {
      "commit": "16d7ec4bf7483bb1b3d2317c8c5f03cf3cc6d208",
      "tree": "3ff8295a8f0ae3b15c8b9ee9cf6e5cbf1695a0da",
      "parents": [
        "d07f2ba2c60cb8aa920d2b428e414628078e233e"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 29 16:50:25 2017 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Mar 30 13:54:39 2017 -0700"
      },
      "message": "Update profile version\n\nI forgot to do it in cea9e9d26c32372ec8c75e6c89b1bfc08c5e1911. This will\nforce regeneration of possibly faulty profiles.\n\nTest: m test-art-host\nBug: 36371709\nChange-Id: I476c97005b6c17a22c57117c06028a2371276326\n"
    },
    {
      "commit": "fa0aa0953875427d7381ac44a6427bd5b1d5020a",
      "tree": "ffffbc915c05b8a5d0a830618364261dedfa3948",
      "parents": [
        "8b71f086ade1f48f3780cc81706669abbfe9c184"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Mar 27 15:43:54 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 29 10:42:47 2017 -0700"
      },
      "message": "Layout string data\n\nInspect dex code in class initializers and hot methods to find out\nwhat const strings are likely to be resolved. Along with these,\nlook at static field accesses and group the field name and type with\nother hot strings.\n\nGroup method shorties together.\n\nMaps vdex PSS: 7478k -\u003e 6900k\nNo change in odex PSS.\n\nChanged dexlayout_test to use -v instead of comparing to a hex\noutput.\n\nBug: 36457259\nBug: 35800981\n\nTest: test-art-host\n\nChange-Id: Iaa5de649c5b2b1d9f178525d2f42fe00e3fb879f\n"
    },
    {
      "commit": "a64a64cfae5c6dd7c2bdb039a92e9313dfd1e315",
      "tree": "173b22c4293d00b1f50dcbf19edb991fedd6be70",
      "parents": [
        "ef81e988d0eb4db390e576aac346701b2d820916"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Mar 06 15:05:38 2017 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Mar 06 16:24:05 2017 -0800"
      },
      "message": "Fix dexlayout calculation of code item size.\n\nCalculation of code item size was based on looking for the latest catch\nhandler referenced by a try block, but there can be handlers that aren\u0027t\nreferenced by any try blocks. This fix manually reads all handlers to\nensure the end is actually reached.\n\nBug: 35978524\nTest: mm test-art-host-gtest-dexlayout_test\nChange-Id: I33b30087845f806cd34b888f1ec457ee692f2af4\n"
    },
    {
      "commit": "e0ac1151b360be7147fa20320c0b427688b1424f",
      "tree": "c33419b00c47b731075bcfd7b75b81f366beda91",
      "parents": [
        "425b5d23e2c60d295471817a75b1b554481c5334"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 13 19:03:47 2017 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Mar 03 13:12:31 2017 -0800"
      },
      "message": "Extend profman to generate profiles with inline caches\n\nExtend profman logic to generate profiles based on a simple textual\nrespresentation. This will help writing tests for profile guided\ncompilation.\n\nBefore this CL, profman was able to generate profiles based on a list of\nclasses like:\njava.lang.Comparable\njava.lang.Math\njava.lang.Object\n\nThis CL, enables profman to understand methods and classes alike. The\nnew format is:\n\n# Classes\nLjava/lang/Comparable;\nLjava/lang/Math;\n# Methods with inline caches\nLTestInline;-\u003einlinePolymorhic(LSuper;)I+LSubA;,LSubB;,LSubC;\nLTestInline;-\u003enoInlineCache(LSuper;)I\n\n\"LTestInline;-\u003einlinePolymorhic(LSuper;)I+LSubA;,LSubB;,LSubC;\"\nmeans that method `int inlineMonomorphicSubA(Super)` from class Main\nwill be added to the profile with the inline cache (SubA,SubB) for its\none and only invoke virtual.\n\n@Main#noInlineCache:(LSuper;)I+;\nmeaning that method `int noInlineCache\u0027 from class Main will be added\nto the profile with no inline cache.\n\nNote that the methods are allowed to have a single invoke virtual in\ntheir dex bytecode. That is to keep the parsing the file format\nsimple and easy to use.\n\nAlso, add a few more tests for profiles and fix an issue caused by\nwriting the dex files in a possibly wrong order.\n\nTest: m run-test-host-gtest-profile_assistant_test\nBug: 32434870\nChange-Id: I6b7340cf613007117d9818be206ccb3a27b815bf\n"
    },
    {
      "commit": "3d0485493eabbaf01799de4576384cc57dfe66f8",
      "tree": "b2da9d706afc6a321c219b73073494df49af7f4e",
      "parents": [
        "ec78cc266a5ec7fdbaeb41eb645fa1a431eaa61d",
        "ac4627157871734db2864ab44a284bd28229d055"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 03 01:56:38 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 03 01:56:39 2017 +0000"
      },
      "message": "Merge \"Fix dexlayout manual walking of 0 length catch handler.\""
    },
    {
      "commit": "ac4627157871734db2864ab44a284bd28229d055",
      "tree": "97477285975ddb52ed0e7c0d5e421b52362c9562",
      "parents": [
        "f040eca7329382d48dc2b8bfc228ee3f27c9f13d"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Mar 02 10:59:43 2017 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Mar 02 10:59:43 2017 -0800"
      },
      "message": "Fix dexlayout manual walking of 0 length catch handler.\n\nThis fails for 0 length handlers that are unreferenced by any try\nblocks. Unreferenced handlers are handled differently and walked\nmanually, and there was an error in the 0 size case, when there is only\na single catch all handler.\n\nBug: 35874292\nTest: mm test-art-host-gtest-dexlayout_test\nChange-Id: Ie061b4fd0e7e8be7e3e382b11d2606f5ffc0817a\n"
    },
    {
      "commit": "32a60ab077e83f49df78caf2dd8a6f16e8b716a8",
      "tree": "d11dee2c27eed8ec76f852f8b1343c0cf2fd34eb",
      "parents": [
        "106173ac9530faffdc8ca649dd787e6dad3098ab"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Mar 01 16:44:50 2017 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Mar 01 16:54:51 2017 -0800"
      },
      "message": "Add dexlayout test where class data section precedes code items.\n\nBug: 35855748\nTest: mm test-art-host-gtest-dexlayout_test\nChange-Id: I8365cb5699014d04dd7561758255802d811d58c6\n"
    },
    {
      "commit": "e17f589d8fa46d0d0179499354b7967801f9582c",
      "tree": "ab0d1d2c46c8016c0f13a7469333d895ad3fab0d",
      "parents": [
        "06f658ab309a5f1930b8a6bc306ef79d0ef0616e"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Feb 23 16:14:04 2017 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Feb 24 10:47:43 2017 -0800"
      },
      "message": "Dexlayout fix for duplicate class data and preserving last code item.\n\nThis change fixes a dexlayout issue when multiple class defs reference\nthe same class data. A set is used to tell what class data has already\nbeen visited.\n\nThis change also makes dexlayout preserve the offset of the last code\nitem in the dex file if the following section is not 4-byte aligned.\nDue to limitations in dexlayout, it is difficult to adjust the offsets\nof sections if more space is needed. An overhaul of dexlayout should\nbe done to properly fix this.\n\nBug: 35451910\nTest: mm test-art-host-gtest-dexlayout_test\nChange-Id: I8d066c2151a1a57c382ce35f12bf53a519da89f6\n"
    },
    {
      "commit": "44652a3c27ffd2236abe82ec0479aa13035bc7e7",
      "tree": "508ba49bfb013394fa88335086cd90730583d940",
      "parents": [
        "f773e851c620d253d02e81a3e2ae115c5862d73c"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Feb 22 14:20:41 2017 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Feb 22 16:19:23 2017 -0800"
      },
      "message": "Make dexlayout parse exception handlers not referenced by try blocks.\n\nBug: 35451910\nTest: mm test-art-host-gtest-dexlayout_test\nChange-Id: If278d16747cfb4a88f7d7312931b3f4b5ee5e058\n"
    },
    {
      "commit": "f914f8e1cc12cd321aa818ebedb1328268b6aec9",
      "tree": "17dcc77b59fe90dd842ceed5a231780a01682a0b",
      "parents": [
        "2fee212df6f688295475f3b2ddee4f2db8db27a2"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Feb 21 16:14:23 2017 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Feb 21 17:06:11 2017 -0800"
      },
      "message": "Add test for null set ref list item in dex layout.\n\nBug: 35408418\nTest: mm test-art-host-gtest-dexlayout_test\nChange-Id: Ia9ac897a27dac27405f6838aaab625257c150e07\n"
    },
    {
      "commit": "6b0dbefb4a1eb770ead704bce2fbe46eead4e103",
      "tree": "349afd0f87422e29b1e960ec564b5f39f7aac15a",
      "parents": [
        "30e015c442c8033390c30d2f293604723c29bc75"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 21 12:45:30 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 21 13:15:46 2017 -0800"
      },
      "message": "Add regression test for b/35305951\n\nEnsure that dexlayout can handle a dex file that has the same\ndebug_info_off_ for multiple methods.\n\nTest: test-art-host-gtest-dexlayout_test\n\nBug: 35305951\nChange-Id: I1283910009fec07095c99ea2288167da3766329f\n"
    },
    {
      "commit": "940eb0c00ef531dd9a0a68dbd61e377832e81eb4",
      "tree": "c65e43a702bb781b7a2f4ebedfb6b3d131fd8312",
      "parents": [
        "9fb10fb39bcb3d9a4dc7e16f8c1d38dcc112639c"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Jan 30 19:30:44 2017 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Feb 16 13:52:56 2017 -0800"
      },
      "message": "Add inline caches to offline profiles\n\nAdd support for inline caches in profiles:\n- extract inline caches from the jit cache when the profile saver\nqueries the hot methods\n- bump profile version to support the new data\n- add new tests\n- inline caches are only supported for same-apk calls (including\nmultidex)\n\nTest: m art-test-host-gtest-profile_compilation_info_test\nBug: 32434870\nChange-Id: I38b4ca0a54568d2224765ff76023baef1b8fd1a2\n"
    },
    {
      "commit": "97c381e3ce34cd327c2ec35fa850bd0eaa9b697f",
      "tree": "4a21b2db89c578cdb2908547547e0546748eec7f",
      "parents": [
        "3cb871ab1af47576959fd24a99d370381b8f193e"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Feb 01 15:09:58 2017 -0800"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Feb 01 15:51:42 2017 -0800"
      },
      "message": "Separate art::Exec from utils\n\nThe rest of utils.cc does not depend on art::Runtime. This separates\nthe part dependent on that class, so that including utils.cc in the\nbuild does not require the entire Runtime. Another preparatory cleanup\nto getting tools to build on Windows.\n\nBug: 22322814\nTest: test-art\nChange-Id: I194ff363fc2ab87e5311ecea6973a2d0fad2621d\n"
    },
    {
      "commit": "46ee31b67d7ee1bd085fbc240502053caa3cf8fa",
      "tree": "83e870f293cd60d533207e389d7b094acd87b31f",
      "parents": [
        "9538f9e2a5d03f1b1bc07ebfbd93b61dcf8ad604"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 14 10:11:49 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 15 09:50:39 2016 -0800"
      },
      "message": "ART: Move to libbase StringPrintf\n\nRemove ART\u0027s StringPrintf implementation. Fix up clients. Add\nmissing includes where necessary.\n\nTest: m test-art-host\nChange-Id: I564038d5868595ac3bb88d641af1000cea940e5a\n"
    },
    {
      "commit": "042e898f18767ed326980e3b07d39adbf98f6222",
      "tree": "e2ea81bc5ddbab51cb3d5c0d5b7812cf9f85562e",
      "parents": [
        "608f2ce4b9870354079b9d63d40363914889f01a"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Oct 19 11:17:11 2016 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Nov 22 13:33:09 2016 -0800"
      },
      "message": "Add layout scheme to dexlayout for dex file reordering.\n\nCurrently takes startup classes from profile and groups them together\nwith the lowest class indexes. Moves the ClassDef, ClassData, and\nCodeItem sections.\n\nResults gathered from 5 second systrace of app startup (no other input):\nMaps\nbase.vdex - 24.70MB -\u003e 19.35MB (30.50MB file size)\nbase.odex - 13.22MB -\u003e 12.82MB (13.22MB file size)\nRunning time of dex2oat: 27.5s -\u003e 37.1s\n\nPhotos\nbase.vdex - 12.98MB -\u003e  9.77MB (15.10MB file size)\nbase.odex -  6.84MB -\u003e  6.24MB ( 6.84MB file size)\nRunning time of dex2oat: 15.6s -\u003e 19.9s\n\nPlus\nbase.vdex - 14.09MB -\u003e 13.29MB (16.72MB file size)\nbase.odex -  2.47MB -\u003e  2.47MB ( 2.47MB file size)\nRunning time of dex2oat: 14.1s -\u003e 18.5s\n\nPerformance and memory tracking bug: b/33017139\n\nTest: mm test-art-host-gtest-dexlayout_test\nBug: 29921113\nChange-Id: Ib500ed353d71a606e2db0dd80378750c5f7b8e33\n"
    },
    {
      "commit": "ca620d7bc03b23a0bcf0ef58df58603ee000dca0",
      "tree": "07cb026075b70a958d14ae84b4e213178a6ba0b4",
      "parents": [
        "b02b8d7df48ea3314cfcb3c08d84ac9556363833"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 08 08:09:33 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 08 15:04:48 2016 -0800"
      },
      "message": "ART: Fix tidy warnings\n\nSwitch to char versions of find variants.\n\nAdd \"explicit\" constructor variants or refactor and\nremove defaults.\n\nUse const references.\n\nBug: 32619234\nTest: m test-art-host\nChange-Id: I970cc2f47d6cf8f0c74104b994b075b2fafb3d45\n"
    },
    {
      "commit": "a86210038524cecd0d96d6ba6f8f116da348a25c",
      "tree": "3c5c243a9530f3cd64ca12b94ea2e2a4ada34260",
      "parents": [
        "b4f0076e7faca1382e0b2f68557b71b11ac34a9d"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Oct 04 18:13:44 2016 +0000"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Oct 04 14:21:13 2016 -0700"
      },
      "message": "Revert \"Revert \"Add dex file writer to dexlayout tool.\"\"\n\nThis reverts commit fd1a6c2a08ca3e2476b7424b9b0fa58e73b29e87.\n\nFixed output being clobbered during DexLayoutTest.DexFileOutput.\nOption added to put dex output file in scratch directory.\n\nBug: 29921113\nTest: mm test-art-host-gtest-dexlayout_test\n\nChange-Id: I9e6b139cf06aaa39c83ad1e74329db266464a8e4\n"
    },
    {
      "commit": "fd1a6c2a08ca3e2476b7424b9b0fa58e73b29e87",
      "tree": "1f3e846a8cf6eef30683dcad63c4dc3ce39c7058",
      "parents": [
        "69b58cf399c3507ca3debf9ec9b2db3c5a0fe7f2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 04 11:01:17 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 04 11:01:17 2016 +0000"
      },
      "message": "Revert \"Add dex file writer to dexlayout tool.\"\n\nBug: 29921113\n\nThis reverts commit 69b58cf399c3507ca3debf9ec9b2db3c5a0fe7f2.\n\nChange-Id: I8bf9b1222d99489059e45f47d220396a853170a4\n"
    },
    {
      "commit": "69b58cf399c3507ca3debf9ec9b2db3c5a0fe7f2",
      "tree": "eeea96181b252426bc7d9363c62cf22c9aac100a",
      "parents": [
        "d295618ac764b334424b0bc7a592337edef19783"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Sep 22 18:02:49 2016 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Oct 03 14:33:25 2016 -0700"
      },
      "message": "Add dex file writer to dexlayout tool.\n\nAll sections are being written out properly.\nThere is one small difference:\n  - unindexed string data is not written out\n\nBug: 29921113\nTest: mm test-art-host-gtest-dexlayout_test\nChange-Id: I3872327526a350f33f0f851516a389622c1a54ae\n"
    },
    {
      "commit": "0f7eaebb1622e08482c519fe5eaab9afa8f64df1",
      "tree": "7d1d44eb4a153ed738178abf8e3948a103ca3429",
      "parents": [
        "244d105f68159b13c55217dd6d883991ba4a7c20"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Aug 31 17:56:13 2016 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Sep 01 01:29:42 2016 +0000"
      },
      "message": "Disable dexlayout_test on target.\n\nTarget doesn\u0027t have diff to compare output files.\n\nBug: 29921113\nTest: mm test-art-target-gtest-dexlayout_test\nChange-Id: I244c0c74214b780676283de1b309978667ff58e3\n"
    },
    {
      "commit": "c3acfc5bed5d0cb22bee05e72cdbdec49a182224",
      "tree": "3f9e89e770efbea5dac6bd601d29b7707c609922",
      "parents": [
        "7629f60ffa7b8533ea0b50263d52cc1df72b2904"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Aug 29 14:18:26 2016 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Aug 31 11:09:41 2016 -0700"
      },
      "message": "Finish dexlayout dumping of dex files and added test.\n\nThe test runs dexdump and dexlayout over the first core library jar file\nand diffs the output, checking that they\u0027re the same. More dex files\nwill be added later for better coverage.\n\nBug: 29921113\nTest: mm test-art-host-gtest-dexlayout_test\n(cherry-picked from commit a378e88db648cf19e771714dd1059cf3d41d4753)\n\nChange-Id: Idfd8ac9f069885b675a4a2f0c70aef2cbef5a9b8\n"
    }
  ]
}
