)]}'
{
  "log": [
    {
      "commit": "aee2156e308f3f346ac4df76ba1d33ee9b11be84",
      "tree": "15873ce5421d8a3856a6049c715d61a5136cae20",
      "parents": [
        "3b0ec017185a6d694f5041e79cc7a85d51943cff"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 15 16:39:44 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 15 16:50:27 2015 +0000"
      },
      "message": "Add some dumping when SIGQUIT for the JIT.\n\nChange-Id: Iad68bdc8a4ab53e810feb3bc8507b7f42e79b1f7\n"
    },
    {
      "commit": "8cf97d729592774afa495717626ac4e4525a499f",
      "tree": "0f00febf35d851fdd63a51c4ef7786f4f26c9f9b",
      "parents": [
        "84c3d48a6ce4d2c9396364973b3d7f43893ab468",
        "226501b317e148aa8a8983355e85acb59c1eee83"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Dec 14 14:38:38 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 14 14:38:38 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Enable profiled guided compilation in dex2oat\"\"\""
    },
    {
      "commit": "98d46d2d287c8081995517770392a21b4d59d2e9",
      "tree": "ed8a1ce97cca924207da598fe7333c4ae7083f77",
      "parents": [
        "277da370dd517af0d6a27bef3b86d5f259feda62",
        "f5a3099c509cf9b8a4ce9c3073a4db47e14a23bc"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Dec 11 20:30:30 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 11 20:30:30 2015 +0000"
      },
      "message": "Merge \"Use isolated namespaces for app native libs\""
    },
    {
      "commit": "226501b317e148aa8a8983355e85acb59c1eee83",
      "tree": "e580485b79123403b7436793e1fdea40cdb585ea",
      "parents": [
        "66278646b5b332142d1474703ac7d945dfbf7c78"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Dec 11 14:41:31 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Dec 11 18:41:35 2015 +0000"
      },
      "message": "Revert \"Revert \"Enable profiled guided compilation in dex2oat\"\"\n\nThis reverts commit 2306ae0d412cc53cbf64877e4a8c37292dd907d8.\n\nChange-Id: I50640009c2fac88ea703812b76549a0e8a6d7584\n"
    },
    {
      "commit": "66278646b5b332142d1474703ac7d945dfbf7c78",
      "tree": "eedcbf057dabe78c46e63c645ff833a657a7187d",
      "parents": [
        "919b6d5fc9b18dd7c00f5fa8eb90411b2ca8998b",
        "2306ae0d412cc53cbf64877e4a8c37292dd907d8"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Dec 11 14:01:12 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 11 14:01:12 2015 +0000"
      },
      "message": "Merge \"Revert \"Enable profiled guided compilation in dex2oat\"\""
    },
    {
      "commit": "2306ae0d412cc53cbf64877e4a8c37292dd907d8",
      "tree": "fcda284846a6a468e39aec2783812d2d1129a35e",
      "parents": [
        "500c9be1f261a8a95ae7a25f4f8084f43207f313"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Dec 11 14:00:52 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Dec 11 14:00:52 2015 +0000"
      },
      "message": "Revert \"Enable profiled guided compilation in dex2oat\"\n\nThe test still have some flakiness in it which didn\u0027t reproduce locally.\n\nThis reverts commit 500c9be1f261a8a95ae7a25f4f8084f43207f313.\n\nChange-Id: I132aff62bf03c2f926aafde6869707573bae9b36\n"
    },
    {
      "commit": "a79c717fd4de0d7361a51bee1e3cf4f2ff5f085a",
      "tree": "7a2a08b0be2a350c612d3afc23835a10580c80f6",
      "parents": [
        "bf479be3a9b25b2126d2c73a3267f18ee52811fb",
        "500c9be1f261a8a95ae7a25f4f8084f43207f313"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Dec 11 11:35:23 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 11 11:35:23 2015 +0000"
      },
      "message": "Merge \"Enable profiled guided compilation in dex2oat\""
    },
    {
      "commit": "7d2b04c227b73257d7c282ca9f7147418091e9f6",
      "tree": "3dd88f5b7def624238d06e21c751581650ce0410",
      "parents": [
        "748047de833061466e230baf374480a147568f73"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 10 17:11:07 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Dec 10 20:00:26 2015 -0800"
      },
      "message": "Skip DumpForSigQuit if debugger is active\n\nOtherwise, the SIGQUIT dumping may get blocked on the mutator lock\nand freeze the debugger.\n\nFuture work: Ideally we want to dump what we can instead of nothing.\n\nBug: 26118154\n\n(cherry picked from commit 0b8f1bfdfc721a41d98d13e12c4c67f62f698dfc)\n\nChange-Id: I28e5352dab3b8abce0b39850e3e58282ae454b51\n"
    },
    {
      "commit": "f5a3099c509cf9b8a4ce9c3073a4db47e14a23bc",
      "tree": "5f07f3ea531240643f4f637c9d3abbad6feafa52",
      "parents": [
        "748047de833061466e230baf374480a147568f73"
      ],
      "author": {
        "name": "Dmitriy Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Nov 11 14:18:55 2015 -0800"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Thu Dec 10 17:25:14 2015 -0800"
      },
      "message": "Use isolated namespaces for app native libs\n\nLinker namespaces provide necessary level\nof isolation for application native libraries.\n\nThe native libraries will no longer be able to\nmistakenly depend on platform private libraries\nlike /system/lib/libssl.so\n\nThis change creates one namespace for each instance\nof class-loader and uses it when loading native libraries.\n\nFor backwards compatibility with older apps we keep\nusing default namespace and LD_LIBRARY_PATH if target\nsdk version is \u003c\u003d 23. (currently set to 0 for testing)\n\nBug: http://b/22548808\nChange-Id: I64e97af7450fbf7e3740ccddda96bb2f7c52e03b\n"
    },
    {
      "commit": "500c9be1f261a8a95ae7a25f4f8084f43207f313",
      "tree": "e36173ca0ea9dfa88e6e605f156c3992414d7d1b",
      "parents": [
        "836ee764c86892aff1dca6b0f8b27e32c7374cc7"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Nov 25 15:59:14 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Dec 10 17:34:06 2015 +0000"
      },
      "message": "Enable profiled guided compilation in dex2oat\n\n- add parsing of the profile info saved during JIT.\n- don\u0027t compile methods which are not part of the profile info.\n- delete old profile hooks.\n- add test for reading/writing profile. The test is disable in:\n   * interpreter modes: the test needs JIT.\n   * no-dex2oat/no-prebuild: we only save profiling info for the primary\n     oat file. In these modes we don\u0027t create oat files and thus nothing\n     is saved.\n\nBug:26080105\n\nChange-Id: Ifdc63dc9d4b537fc79e54c3edc3ae3a462bc30fb\n"
    },
    {
      "commit": "88b2b80aed15bb1f931cddd40e44ca525ef10018",
      "tree": "04b2f9d27863cd469dae8050335f197496f24ff2",
      "parents": [
        "cf6bd55863ded11e0533966657871aca444505a5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 04 14:19:04 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 07 12:38:21 2015 +0000"
      },
      "message": "Allow initializing runtime with parsed options.\n\nNeeded by upcoming refactoring of dex2oat to allow\nearly writing of dex files to the oat file.\n\nChange-Id: Ia13c26132846801522f181f51f64035d625e8416\n"
    },
    {
      "commit": "9fdb129b90c9a985f606f9d95627b4852171dc11",
      "tree": "c7b1e1da1450f61a504cdf6e21cda62541e93ee7",
      "parents": [
        "57989d6f7292155f4d91ce423cede17d04dd9343"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 02 22:44:52 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Dec 02 23:00:53 2015 +0000"
      },
      "message": "Revert \"Enable profiled guided compilation in dex2oat\"\n\nTest has flakes:\n\n+art F 30865 30865 art/runtime/java_vm_ext.cc:466] JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8: illegal start byte 0x80\n+art F 30865 30865 art/runtime/java_vm_ext.cc:466]     string: \u0027��gy�\u0027\n+art F 30865 30865 art/runtime/java_vm_ext.cc:466]     input: \u0027\u003c0x80\u003e 0xd8 0x67 0x79 0x8e 0x7f\u0027\n+art F 30865 30865 art/runtime/java_vm_ext.cc:466]     in call to NewStringUTF\n+art F 30865 30865 art/runtime/java_vm_ext.cc:466]     from java.lang.String Main.getProfileInfoDump(java.lang.String, java.lang.Class, java.lang.Class)\n\nThis reverts commit 27e17fd81cc30e16e86c9c15498cae7f920c9dfe.\n\nChange-Id: Id224b5970c3620c4c71fc0d39ed4a2e4755e5f29\n"
    },
    {
      "commit": "dbec5e71e0108cff373dce9e315a95a0187bc14f",
      "tree": "abd562c94736c487034ebd89d7cdd3a3fcf776cf",
      "parents": [
        "c1c2ce460b30940a4f4ce39c688f7b3d080d90f8",
        "049cff0ed5e28aa17a17e456efe3121b6d58910f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 02 19:01:46 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 02 19:01:46 2015 +0000"
      },
      "message": "Merge \"ART: Refactor oat_file.h/cc for better maintainability\""
    },
    {
      "commit": "049cff0ed5e28aa17a17e456efe3121b6d58910f",
      "tree": "995c2cf8359f9638c6a5832482e4e5365a8f25c6",
      "parents": [
        "f4c539395244ccfc14aebaf53fdc1122287f65a6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Dec 01 23:27:12 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Dec 02 10:30:28 2015 -0800"
      },
      "message": "ART: Refactor oat_file.h/cc for better maintainability\n\nRefactor the code so that generic oat file initialization (checking\nART symbols etc) is common between dlopen and ART\u0027s ElfFile\nimplementation. Reduce methods and fields exposed in the oat_file\nheader.\n\nChange-Id: I5bf65dd8b7047a007c6bf435b55bdde306595e8d\n"
    },
    {
      "commit": "27e17fd81cc30e16e86c9c15498cae7f920c9dfe",
      "tree": "96b03ed3671236b696e25e0671e3d6f27604c035",
      "parents": [
        "47229aa5848df7d45578dbdd9285f57dfa9399a8"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Nov 25 15:59:14 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Dec 02 16:17:21 2015 +0000"
      },
      "message": "Enable profiled guided compilation in dex2oat\n\n- add parsing of the profile info saved during JIT\n- don\u0027t compile methods which are not part of the profile info.\n- delete old profile hooks\n\nChange-Id: I45a13c3aeb36265d335e57cd160b9ea0fab3cbb5\n"
    },
    {
      "commit": "31f2c155975c5794d481df03eb0947cb48d2c6b5",
      "tree": "b0ed3a2235fc115f73060ab4b51bda31e3ada596",
      "parents": [
        "22c20ef131812a6e7ff01f8c57ffe1eb0942fc39"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Oct 23 17:56:15 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Nov 24 19:31:16 2015 +0000"
      },
      "message": "Save jit profiling info to file.\n\nCurrently saves only the hot method references and omits the inline\ncache.\n\nChange-Id: I79e91f855f6b52dc19a9a86662604f2eee16613c\n"
    },
    {
      "commit": "0f0d5f370dca8bbdb97c61ea30e1b0476ee7749a",
      "tree": "d61c266ca2f296d560fa5a02f45554f29faaf45f",
      "parents": [
        "31c0d484c1f492909c4843c29c08c701f5b6eae9",
        "3db9c5da2925ca5ca82cc37b60a8e9fc39e88d1d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 19 06:27:53 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 19 06:27:53 2015 +0000"
      },
      "message": "Merge \"ART: Change Init{From,Without}Image to return bool\""
    },
    {
      "commit": "3db9c5da2925ca5ca82cc37b60a8e9fc39e88d1d",
      "tree": "eb963403d06cad9ff2569f669ef714425d40c893",
      "parents": [
        "3ce45f4e6abd725407a539521f69959a6ac5a9c1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 17 11:52:46 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 18 22:26:39 2015 -0800"
      },
      "message": "ART: Change Init{From,Without}Image to return bool\n\nRewrite some CHECKs to return false. For a common failure (missing)\nimage, this improves the abort (as it\u0027s not a runtime abort with\nlots of stack traces anymore).\n\nChange-Id: I717b1db74950267ced0ad3bafa1aed1693680062\n"
    },
    {
      "commit": "ba69a51724d33444064443e456ce78b71db2fd16",
      "tree": "a7e1b95026fb455077a4faeffebb76c4ff8d0d7e",
      "parents": [
        "f5dd91e0461b5bb0f401a51dee39f92d52b375e7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 17 13:50:21 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 18 10:50:47 2015 +0000"
      },
      "message": "Fix bogus DCHECK and rename DidForkFromZygote.\n\nThe method can also be called for non-zygote forked processes.\n\n(cherry picked from commit 9d157e48e0abc48f08fd98e4c5e918d029c1b84c)\n\nChange-Id: Id4f57b77c1a7f802f80e066afcf30afecc198bfc\n"
    },
    {
      "commit": "787ae8eb018d46b4b464e3a7c8de37d9262deb61",
      "tree": "afcc49dca1996bddf9d63640cc0b208ca8ca2bf5",
      "parents": [
        "a04f57badca0a9211d45eb7bde44c1d1e8f159ff"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 05 11:32:24 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 18 10:11:50 2015 +0000"
      },
      "message": "Remove DEBUG_JIT from Zygote flags.\n\nThe flag is being obsolete by the move to JIT.\n\n(cherry picked from commit 0f042e04efba887557e40f981bd9c41b121c4652)\n\nChange-Id: I32c3183e791690964c00fab02a6ee7bbacf6b665\n"
    },
    {
      "commit": "04302dbb106d590ff72c0dfecda23d85b6565059",
      "tree": "2fe66e258de36bcebc913d48e04468b7c639578f",
      "parents": [
        "0e06a0989f4fc53e0d281a5a2cb5b5a17feaea0c"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Nov 11 23:45:34 2015 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Nov 13 15:21:29 2015 -0800"
      },
      "message": "Fix class unloading with the CC collector.\n\nAvoid unnecessarily decoding dex cache and class loader weak roots,\nwhich would trigger read barriers.\n\nRe-enable 141-class-unload with the CC collector.\n\nBug: 12687968\nBug: 24468364\nChange-Id: Ib4c19f25000873cab0e06047040442d135285745\n"
    },
    {
      "commit": "073b16c8429d302d5413e8ffc488b03b8f770780",
      "tree": "a417fd8042df8c0a9621f9097643ecaede4deeab",
      "parents": [
        "5165b6ba1fda85d769c5092a65f07bcfffb0b3e7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 10 14:13:23 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 11 19:22:33 2015 -0800"
      },
      "message": "Image space cleanup for app images\n\nRemoved Heap::GetImageSpace, added Heap::GetBootImageSpace.\n\nGeneralized some logic in the class linker for image spaces.\n\nBug: 22858531\n\nChange-Id: Ib3e12bb061a247e232d3dc93b0d6b35eb3a34d25\n"
    },
    {
      "commit": "6cff48f05894a60aa4742472983a75504536ca15",
      "tree": "bd399d46ef08cd836010f3119c8c5db054561267",
      "parents": [
        "823e693aa946ba75cd047429e1290011a2ed8729"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Sun Jan 26 21:36:13 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 23 11:16:11 2015 -0700"
      },
      "message": "ART: Speed up thread stack tracing for ANRs\n\nShare a BacktraceMap for all threads being dumped, which speeds up\nANR dumping. Results from Nexus 9 (average of five):\n\nBefore: 0.587s\nAfter:  0.206s\n\nChange-Id: Ia70e0dbd39049318c02de561e7b95258d4849467\n"
    },
    {
      "commit": "32cc9ee0cdffecb0ec8d80a7fd55d7dccae3a7ee",
      "tree": "e394d05cb35fd8a89ae4be0d57635d7fee219ede",
      "parents": [
        "114873103db3d4d6e0da42ca02bad1ea8826443b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 15 09:19:15 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 16 08:46:12 2015 -0700"
      },
      "message": "Change hash table load factors\n\nChanged class table and intern table load factors to query the\nruntime. The runtime returns load factors based on whether or not we\nare a low ram device.\n\nDescriptorEquals time for class linking goes from 10% -\u003e 1.2% for\ncompiling GmsCore with interpret only.\n\nAdded test.\n\nBug: 24917584\n\nChange-Id: Iaaf5d2eab1b0c2d188d299e4bc1852cdb3801173\n"
    },
    {
      "commit": "85506c2ff34e930b4589568f78ee30f60d49d456",
      "tree": "c7e4b30a54046ed90a212e298f871a5df257c648",
      "parents": [
        "7598f145d4fd4219c14c6e2c8a03b34ce7943ffe",
        "eb7c144a6aff7da673ba53d501c46f00311d4d7f"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Oct 13 21:02:28 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 13 21:02:28 2015 +0000"
      },
      "message": "Merge \"Add initial default method support to Art\""
    },
    {
      "commit": "e58991b3b2282b5761f1a6023a16c803e1c4eb45",
      "tree": "5a6fac6c5d3cb6a463463b83b8a34a53b07a8ede",
      "parents": [
        "fb11bab9bc96ff05dcb12f43abf58df256b7c7aa"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 13 07:59:34 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 13 13:17:50 2015 -0700"
      },
      "message": "Revert \"Revert \"Unload oat files\"\"\n\nFixed a race where two threads calling OatFile::Open could both use\ndlopen on the host.\n\nBug: 22720414\n\nThis reverts commit 72da5e7461fec3b1e116050f2e6f233efb9c54f3.\n\nChange-Id: I1636045b724944d2a09417527280784967957095\n"
    },
    {
      "commit": "eb7c144a6aff7da673ba53d501c46f00311d4d7f",
      "tree": "feec33dd2e711800305477b092970500991a3993",
      "parents": [
        "98ae42010a6e6a0e4c5bcc4d6a357805eef3f4ff"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Aug 31 13:17:42 2015 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Oct 13 13:09:37 2015 -0700"
      },
      "message": "Add initial default method support to Art\n\nThis commit starts the process of adding default methods and their\nassociated pieces to ART.\n\nThis adds full support for calling default methods using\ninvoke-interface and invoke-virtual on objects implementing the\ninterfaces. Verifier is changed to allow this when the runtime is\nstarted with -Xexperimental:default-methods.\n\nThis also adds support for defining and calling static methods on\ninterface classes with invoke-static.\n\nDirectly calling overridden default methods using invoke-super is not\nyet supported.\n\nThis adds 5 new run-tests for this functionality.\n\nBug: 24618811\n\nChange-Id: I35ca800d99d3329348b277789b70ceeeba6e7f03\n"
    },
    {
      "commit": "f9c6fc610b27887f832e453a0da1789187293408",
      "tree": "3f45a15327e5bc7cb71e6c238ba75e87ae2e6058",
      "parents": [
        "793e6fbdefb092d1dab50bca5618aed110c7e037"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 07 11:44:05 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Oct 09 12:57:53 2015 -0700"
      },
      "message": "Add OatFileManager\n\nTakes over a large amount of functionality from the class linker.\n\nChanged OatFile to loading the same OatFile multiple times. This is\nrequired for unloading OatFiles and moving dex caches to BSS since\nthese require a different OatFile for each dex cache and class\nloader.\n\nBug: 22720414\n\nChange-Id: I0321096723a294dc72949f21e66da82727b512fc\n"
    },
    {
      "commit": "a6b1ead81603513fd40b77fd72f06d8cb1f35276",
      "tree": "3ba5add50b6b0034024e65c6de3aea1004ec5161",
      "parents": [
        "bcb71a2ce5bcb516f76fc9fe838b61b0c48e1210"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 06 10:32:38 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 06 13:24:20 2015 -0700"
      },
      "message": "Mark breakpoint roots\n\nUsed to prevent class unloading on methods that have breakpoints.\n\nBug: 22720414\nChange-Id: I9aee8bcbfdf253607e89dfc55a50ba3f11d99206\n"
    },
    {
      "commit": "c3fcd41f15dffbb5f28c9900f421471a3d2dd420",
      "tree": "df1bb755238684ab5a01a79959c063a88801e218",
      "parents": [
        "ac87001cbbd44b436cc7866f7a41037ca83b17f1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 25 16:54:59 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 28 18:01:30 2015 -0700"
      },
      "message": "Address some code comments\n\nChange-Id: I0a38a387c4328d45bbc04d095bf3388c27495c12\n"
    },
    {
      "commit": "017ed0b936539dba1bb6f1d9b2bd81798b471966",
      "tree": "24cee7c2bafe0d931081d3869cfc7ca78f748e47",
      "parents": [
        "b64d5832879f462ed146f0b012ea0bf62255b643"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 22 11:04:26 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 22 11:04:26 2015 -0700"
      },
      "message": "Fix CreateLinearAlloc bug\n\nShould have been using IsAotCompiler since the JIT has IsCompiler\nas true but no low 4 GB arena pool.\n\nFixes 64 bit JIT tests.\n\nChange-Id: Idc4d3e66c573eacd31ae85c66f8493b418d221d7\n"
    },
    {
      "commit": "951ec2c93c79c5539cbcc669566f0808d4460338",
      "tree": "ce3505be2fc526afafaf6135e9d15d831860502d",
      "parents": [
        "6a6916b378c413c2692782e901393607c47f0005"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 22 08:50:05 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 22 16:25:09 2015 +0000"
      },
      "message": "Revert \"Revert \"Add one LinearAlloc per ClassLoader\"\"\n\nIssue was fixed by:\nhttps://android-review.googlesource.com/#/c/171945/\n\nBug: 22720414\n\nThis reverts commit 7de5dfe37f3cf24e1166412b589f6f67dcd1f1c0.\n"
    },
    {
      "commit": "6a6916b378c413c2692782e901393607c47f0005",
      "tree": "b492954ac5c25d99c967798174355736a934344a",
      "parents": [
        "3f4b39dec9ec6b8948ed18b9d65ba49db2465004",
        "37cf51fb00bbe4bb82e713228b460cafbbf79b43"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 22 14:23:04 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 22 14:23:04 2015 +0000"
      },
      "message": "Merge \"ART: Fix destruction order in Runtime.\""
    },
    {
      "commit": "37cf51fb00bbe4bb82e713228b460cafbbf79b43",
      "tree": "7329488024609e91d6683734c889b0cc0998f3aa",
      "parents": [
        "a28cae4d38020ea5c42c203414eaa667743ffd1e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 22 11:43:46 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 22 12:09:59 2015 +0100"
      },
      "message": "ART: Fix destruction order in Runtime.\n\nDestroy arena allocators as late as possible.\n\nWith https://android-review.googlesource.com/172057 , the\nArenaPool was indirectly used by ClassLinker\u0027s destructor\n(via ~LinearAlloc) after it has already been destroyed.\nThese allocators were being destroyed way too early anyway,\nthey should be orderly destroyed when the unique_ptr\u003c\u003e\nmembers of Runtime have their destructors executed. However,\ndue to the potential dependence on MemMap, we destroy them\njust before the MemMap::ShutDown().\n\nChange-Id: Ifc3e5a24a29536d5767c82353901e2d22b13d643\n"
    },
    {
      "commit": "7de5dfe37f3cf24e1166412b589f6f67dcd1f1c0",
      "tree": "a87eeac15fd485bb14ea8ace2b2bc839c4c253be",
      "parents": [
        "356412e2b7ba3fde164bc08a44fee0ddc19c54e1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 22 09:48:02 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 22 09:48:02 2015 +0000"
      },
      "message": "Revert \"Add one LinearAlloc per ClassLoader\"\n\nTimes out on 32bit target/host for 132-daemon-locks-shutdown test.\n\nBug: 22720414\n\nThis reverts commit 356412e2b7ba3fde164bc08a44fee0ddc19c54e1.\n\nChange-Id: I5ab3a09e88a5ad8c306a27d2606ecbecc80b9326\n"
    },
    {
      "commit": "356412e2b7ba3fde164bc08a44fee0ddc19c54e1",
      "tree": "9e07c960e67b3627ced80fa9a0dcd0c9fd8b5951",
      "parents": [
        "d0d11f20811f260453f6dfe2e26d7dbd6ed55f01"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 21 09:07:37 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 21 12:48:12 2015 -0700"
      },
      "message": "Add one LinearAlloc per ClassLoader\n\nAlso added freeing linear alloc and class table when the\ncorresponding class loader is no longer reachable.\n\nBug: 22720414\n\nChange-Id: Icb32c3a4c865f240e147bc87ed080a6b1d8a5795\n"
    },
    {
      "commit": "1147b9bd68323c753ed1a0b6106b205fd640c820",
      "tree": "d14f8a47c66b78716d23b6cdcbc6e3e6da498361",
      "parents": [
        "b505997b2176bd29a108cb6c33d06d4ef29ba001"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 14 18:50:08 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 15 10:02:40 2015 -0700"
      },
      "message": "Use image pointer size for profile info\n\nMay fix some random crashes in dex2oat due to cross compilation.\n\nChange-Id: I633652500e8c7dfec38044dffd07eb467973d82a\n"
    },
    {
      "commit": "35717f8cfb6c1de5c89b2f9b990a050b2cbab66f",
      "tree": "468d9275ebb774de9c373aea6387e5c55c4336e6",
      "parents": [
        "b6f7dd330f115fc977d1d5a10122c41c9dd7c210",
        "637ee0b9c10ab7732a7ee7b8335f3fff4ac1549c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 14 10:42:01 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 14 10:42:01 2015 +0000"
      },
      "message": "Merge \"ART: Add some utilities for working with containers.\""
    },
    {
      "commit": "5550ca8bcc742b109d77e62f3a0877c667d894d3",
      "tree": "522c873c59b56fff0244e754dd869f18ccf485f4",
      "parents": [
        "dbd357086fdb7fce619d745fda4efd52377becdd"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Aug 21 18:38:30 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 11 15:08:37 2015 +0100"
      },
      "message": "Record profiling information before Jitting.\n\n- Add a new instrumentation kind to record dynamic invokes.\n- Use the JNI entry point field to store the profiling data.\n- Record seen receivers for every dynamic invoke.\n\nChange-Id: I2c1738ab2a72052d45964d055dc16b44b906e54c\n"
    },
    {
      "commit": "637ee0b9c10ab7732a7ee7b8335f3fff4ac1549c",
      "tree": "21cf63333abcc07ed1e3138ec3c9e690e0abc227",
      "parents": [
        "68ffda887e35f35e978f2f607b7a91e44a5e1969"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 04 12:47:41 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 08 18:09:20 2015 +0100"
      },
      "message": "ART: Add some utilities for working with containers.\n\nAdd utility functions for searching, removing and replacing\nexisting values in a container, to be used with std::vector\n(including the ArenaVector alias) and other containers.\n\nAlso move UniqueCPtr\u003c\u003e and MakeUnique() to base/stl_utils.h\nand clean up related includes.\n\nChange-Id: I1e61762df91c046866591bda167d42bf8b67a692\n"
    },
    {
      "commit": "fdbd13c7af91a042eda753e436eeebf0e1937250",
      "tree": "c1fb370c9a4a30b9e589802c9c75dcc4919fc6e9",
      "parents": [
        "fe3879e6011f629d0dd6b04fab00b9496bd4ea08"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Sep 02 16:16:58 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Sep 03 10:45:21 2015 -0700"
      },
      "message": "Some fixes for the CC collector.\n\n- Remove a DCHECK in DisableMarkingCheckpoint, which caused\n  occasional (false) failures.\n- Check the thread-local GetWeakRefAccessEnabled in boxed lambdas weak\n  access.\n- Add missing BroadcastForNewAllocationRecords and\n  BroadcastForNewWeakBoxedLambdas. The lack of the former caused\n  occasional deadlocks in the ddmc test.\n- Remove the \u0027ensure system weaks disallowed\u0027 calls, which weren\u0027t\n  useful and dead.\n\nBug: 12687968\nChange-Id: I33850c8d12e6e1a3aed1c2bb18eba263cbab76e8\n"
    },
    {
      "commit": "c823effac6455affd40bedbc9f620f9275919e73",
      "tree": "eeff9d8571f165054b09cbffeadb86db7852c761",
      "parents": [
        "4bc27eb21222cd9d0fd680442d34185e42ae4373"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Sep 01 16:21:35 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Sep 01 16:21:35 2015 -0700"
      },
      "message": "Disable the GDB-based test timeout dump in 32 bit.\n\nBug: 23485091\nChange-Id: I46b8ae8d0a37439ca6f2d1030dec8e513b82745f\n"
    },
    {
      "commit": "4bc27eb21222cd9d0fd680442d34185e42ae4373",
      "tree": "6b3038af36bb1f9041e2f749e1da44167c7d2d6f",
      "parents": [
        "2c23471c9051e117d8df31f80488e24e3a524d00",
        "6ffb9ccfec7ec2149c4a3d403ca81c48585857e0"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Sep 01 19:54:23 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 01 19:54:23 2015 +0000"
      },
      "message": "Merge \"Use GDB to dump threads in test timeouts, if available.\""
    },
    {
      "commit": "6ffb9ccfec7ec2149c4a3d403ca81c48585857e0",
      "tree": "7efc7e462a8d45da83a9602ff9242422e043dfe2",
      "parents": [
        "c38fd0dc9c2d046555dbca41e3d27afb25f2e206"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Aug 31 15:14:17 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Sep 01 12:46:42 2015 -0700"
      },
      "message": "Use GDB to dump threads in test timeouts, if available.\n\nGDB is able to dump threads which may not be responding to the SIGQUIT\nthread dump.\n\nBug: 23485091\nChange-Id: Ib80db4e63258887f3b7c313ed5e6eb9e6300ac4c\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": "02f0771bba69edd34b0b112902bb9132ed099c75",
      "tree": "669634d6447ee626e306665ebf3881c17be4ffec",
      "parents": [
        "94800f46da0aded5152545322ad842f89e8a21d8",
        "b1d8c314b55bb2df2b2bb72a3daaf5db65b7ebc7"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Aug 05 18:18:59 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 05 18:18:59 2015 +0000"
      },
      "message": "Merge \"Revert \"cleanup: Replace pointers with out-parameters and fix-up formatting\"\""
    },
    {
      "commit": "90ef3db4bd1d4865f5f9cb95c8e7d9afb46994f9",
      "tree": "3c6f8989e0c6e027382a3c08d221ba97afd72291",
      "parents": [
        "1cf85515600d298a2c9e4de137c0926949205097"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 04 15:19:41 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 04 18:56:54 2015 -0700"
      },
      "message": "Address some comments and clean up\n\nChange-Id: I538cf204f1c89d5fc81f8fc5e5800fcf1cf87359\n"
    },
    {
      "commit": "b1d8c314b55bb2df2b2bb72a3daaf5db65b7ebc7",
      "tree": "87e8252ee6ca23138f867989a098b7c4338c21a5",
      "parents": [
        "1d558db0bcd841140f6fe1c6ba2e9a6de131649d"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Aug 04 11:18:43 2015 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Aug 04 11:19:56 2015 -0700"
      },
      "message": "Revert \"cleanup: Replace pointers with out-parameters and fix-up formatting\"\n\nThis reverts commit a315f5c546b796f55f4872bb6efc15eb858d9639.\n\n--\n\nRevert \"runtime: cleanup class_linker out-parameters and formatting\"\n\nThis reverts commit bc1d78daa463572c5a770cdca858a3b51d8e1b7b.\n\n--\n\nRevert \"base: replace raw pointers for out-parameters with safer out\u003cT\u003e\"\n\nThis reverts commit fb326cffc679cab8eb873b9e44795706f023cb3c.\n"
    },
    {
      "commit": "a315f5c546b796f55f4872bb6efc15eb858d9639",
      "tree": "188bcbab728423d79147fd9d9da45c2539371ac5",
      "parents": [
        "bc1d78daa463572c5a770cdca858a3b51d8e1b7b"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Jul 31 17:35:52 2015 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Jul 31 17:35:52 2015 -0700"
      },
      "message": "cleanup: Replace pointers with out-parameters and fix-up formatting\n\nCleans all of oat_file.h/.cc, parsed_options.h./cc, runtime.h/.cc\n\nOther files are touched only incidentally to use outof(x) instead of \u0026x.\n\nChange-Id: I0bb15111149d53bb21aac2199ef33bd35333b0ca\n"
    },
    {
      "commit": "695a2732ae19649b3331673747177fcc57afb012",
      "tree": "af55112f9989919d3ddae3e69501ecc352929c54",
      "parents": [
        "e3ab2a7dc3ff7ef0da6a82de7387470fb67695d0"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jul 24 15:41:20 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jul 24 15:41:20 2015 -0700"
      },
      "message": "ART: Make warnings into errors in InitZygote\n\nThese warnings are actual errors and lead to failure to start the\nruntime. Print them accordingly.\n\nChange-Id: I907e32a3c5da5364ecc9678bb9a11604234d669c\n"
    },
    {
      "commit": "dd6712578b6aa8a292bc6249295b6d2a7b182717",
      "tree": "28e428fc2b4fd2a1a78b1ffb8659611f2ad45df0",
      "parents": [
        "bd76db36abc1026cdc3f737ec0f2be6174a131a1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 23 14:37:18 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jul 24 15:10:22 2015 -0700"
      },
      "message": "ART: Change the stack dump format to be in line with debuggerd\n\nMake offsets 16 digits on 64-bit platforms.\n\nAdd the ability to provide the build fingerprint, and print it in\nthe traces output.\n\nBug: 22693991\n\n(cherry picked from commit 242ae94dc39be53e519a6163ea1db494ceb75954)\n\nChange-Id: Ibd3d3b3bd65dce84acfb97a487807d6f280a9508\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": "e2facc5b18cd756a8b5500fb3d90da69c9ee0fb7",
      "tree": "595a3c807e1cbaa4b8c22b93685d70faa4ff0f5a",
      "parents": [
        "e07300b712f44397ecbfed1ef7f880686e46274a"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Jul 10 13:49:08 2015 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Jul 20 15:11:59 2015 -0700"
      },
      "message": "runtime: Add lambda box/unbox object equality\n\nA lambda that is boxed with box-lambda is now stored as a weak reference\nin a global runtime table (lambda::BoxTable). Repeatedly boxing the same\nlambda closure value will always return the same java.lang.Object back.\n\nSince there is no way to observe the address of an object, a GC can\nhappen and clean up the table of any dead boxed lambdas, which can also\nshrink the table to prevent the memory use from growing too much.\n\n(Note that a lambda closure is immutable, so hashing over it is\nguaranteed safe.)\n\nChange-Id: I786c1323ff14eed937936b303d511875f9642524\n"
    },
    {
      "commit": "11237947eefd3ec3167d9df41f2f3a041e717b6f",
      "tree": "654ebf6650c65abf0d602509321336f729170edd",
      "parents": [
        "7745dc34f0b40c8c2ef2ef1a540c84c305cd987a",
        "14c3bf91b2ec434295ec84d6446f495fb7de6d5c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Jul 18 01:49:00 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jul 18 01:49:02 2015 +0000"
      },
      "message": "Merge \"Change intern table to not use WaitHoldingLocks\""
    },
    {
      "commit": "7617abdb402fd0419daa3eefb2ad059ccbb8b6db",
      "tree": "85ca02f6446cd50523156ea916d5524eaf3bf2dc",
      "parents": [
        "479ebe076561e4a48129ab0c78cf8ca93c44baf6"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Jul 10 18:27:47 2015 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Jul 17 17:38:46 2015 -0700"
      },
      "message": "runtime: Add -Xverify:softfail and ART_TEST_INTERPRETER_ACCESS_CHECKS\n\nUse ART_TEST_INTERPRETER_ACCESS_CHECKS\u003dtrue to run all the tests through\nthe interpreter with access checks enabled. The normal interpreter tests\ndo not currently enable access checks, which means that a large part of\nthe interpreter codebase is untested.\n\nThe verifier will force every class into a soft fail mode if\n-Xverify:softfail is used, thereby ensuring that if used along with the\ninterpreter (-Xint) that the interpret is always in access checks mode.\n\nThis is used alongside with --compile-filter\u003dverify-at-runtime to\nprevent the AOT compiler from putting down any code.\n\nChange-Id: I35a10ed8c43d76fa96133cf01fdad497da387200\n"
    },
    {
      "commit": "14c3bf91b2ec434295ec84d6446f495fb7de6d5c",
      "tree": "6eaa51c263b84b7a11f40f21be993987cdca80f3",
      "parents": [
        "6d3d1e3d866a880b4df95ba96ed126c1723e3dd6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jul 13 14:35:43 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jul 17 15:34:40 2015 -0700"
      },
      "message": "Change intern table to not use WaitHoldingLocks\n\nBug: 22423014\nChange-Id: I9e16b8cb4def72fff73f1783a182877105feb7aa\n"
    },
    {
      "commit": "97509954404d031594b2ecbda607314d169d512e",
      "tree": "bb5371ba90d52e2f561b1dc6959584857cb84683",
      "parents": [
        "c6f3439b67962584cfb764133e192c3317f0e1fc"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jul 13 14:35:43 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jul 14 16:45:27 2015 -0700"
      },
      "message": "Clean up GC callbacks to be virtual methods\n\nChange-Id: Ia08034a4e5931c4fcb329c3bd3c4b1f301135735\n"
    },
    {
      "commit": "0541502e6d9d0efa50aa333db32898a0664512c3",
      "tree": "1c8c2adc8e70bee2c2e972ac84f0726e19d5a348",
      "parents": [
        "5b1eea0a6c90e6e82393cdb7337f0c2bb05637d9",
        "1e13374baf7dfaf442ffbf9809c37c131d681eaf"
      ],
      "author": {
        "name": "Evgenii Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Jul 14 00:47:06 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 14 00:48:54 2015 +0000"
      },
      "message": "Merge \"Generalize Valgrind annotations in ART to support ASan.\""
    },
    {
      "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": "5b1eea0a6c90e6e82393cdb7337f0c2bb05637d9",
      "tree": "3b8bddd878f07ee418a83a09f229ea44f2a20a05",
      "parents": [
        "24db1bc55bf8fb3240690436a229352453ae75e1",
        "0b71357fb52be9bb06d35396a3042b4381b01041"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Jul 13 22:51:39 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 13 22:51:40 2015 +0000"
      },
      "message": "Merge \"Thread-local mark stacks for the CC collector.\""
    },
    {
      "commit": "0b71357fb52be9bb06d35396a3042b4381b01041",
      "tree": "44b8d6b0ca4a71f33cda55068fa9e14864c55625",
      "parents": [
        "0e87d1809443d41b431ce3a686b4e074df2d7b8b"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Jun 16 18:29:23 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Jul 13 15:50:20 2015 -0700"
      },
      "message": "Thread-local mark stacks for the CC collector.\n\nThread-local mark stacks are assigned to mutators where they push\nreferences in read barriers to reduce the (CAS) synchronization cost\nin a global mark stack/queue.\n\nWe step through three mark stack modes (thread-local, shared,\nGC-exclusive) and use per-thread flags to disable/enable system weak\naccesses (only for the CC collector) instead of the existing global\none to safely perform the marking phase. The reasons are 1)\nthread-local mark stacks for mutators need to be revoked using a\ncheckpoint to avoid races (incorrectly leaving a reference on mark\nstacks) when terminating marking, and 2) we can’t use a checkpoint\nwhile system weak accesses are disabled (or a deadlock would\nhappen). More details are described in the code comments.\n\nPerformance improvements in Ritzperf EAAC: a ~2.8% improvement\n(13290-\u003e12918) in run time and a ~23% improvement (51.6s-\u003e39.8s) in\nthe total GC time on N5.\n\nBug: 12687968\nChange-Id: I5d234d7e48bf115cd773d38bdb62ad24ce9116c7\n"
    },
    {
      "commit": "7a4d0157eb690266928902a67922f346e290f4c6",
      "tree": "945e8d0cccf009a332f4550017e0ea3f567cc389",
      "parents": [
        "f40002163fed58215df569e89f0a0b9661e16273"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 10 17:29:39 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 10 18:46:17 2015 +0100"
      },
      "message": "Change JIT code to use optimizing.\n\nObviously, will fall back to quick for most methods currently,\ndue to lack of -QUICK opcodes support.\n\nChange-Id: I28882fbe805cd907275b6047437d9639a475964a\n"
    },
    {
      "commit": "41656de4b6440bcd1bea5fb785f0710153b2bc68",
      "tree": "394de0c87c3dd3ddc3e6c88919187a077ab609b4",
      "parents": [
        "a100332ee0f4b842c28ec2448f97e40a882cd837"
      ],
      "author": {
        "name": "Man Cao",
        "email": "manc@google.com",
        "time": "Mon Jul 06 18:53:15 2015 -0700"
      },
      "committer": {
        "name": "Man Cao",
        "email": "manc@google.com",
        "time": "Wed Jul 08 20:02:54 2015 +0000"
      },
      "message": "Fix potential bugs in allocation tracker\n\nAdd a missing visit allocation records call in concurrent copying collecter.\nHandle null class objects if we support class unloading, and issues\nwith disallow and allow new allocation records.\n\nBug: 20037135\nChange-Id: I59b7321c281e0d79a620501b2f43e36d2a576203\n"
    },
    {
      "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": "01aaf6ef3e3e35cc8e41cf3fe899a7bf337042f4",
      "tree": "d19b35a078536b6190d861810aa443ccd7e2fcdb",
      "parents": [
        "2b252dc15995a708aead33aab6d307205d860a88"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Jun 19 22:05:39 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Jul 01 12:32:13 2015 +0100"
      },
      "message": "Allow for sig chain to be disabled.\n\nTools like dex2oat or patchoat don\u0027t need the sig chain or the fault\nmanager. This also enables building a statically link version of\ndex2oat.\n\nChange-Id: I9897728cac48acade854bb027bfde860628ebf84\n"
    },
    {
      "commit": "42c3c33df8b6eefc4ba532f1981282510f109928",
      "tree": "4526fe0a718f2e8ead36907aa9984c402d5a1888",
      "parents": [
        "bb3dabaf804e0d0bd2bf34e69091b2f86fd4e78b"
      ],
      "author": {
        "name": "Man Cao",
        "email": "manc@google.com",
        "time": "Tue Jun 23 16:38:25 2015 -0700"
      },
      "committer": {
        "name": "Man Cao",
        "email": "manc@google.com",
        "time": "Thu Jun 25 14:10:48 2015 -0700"
      },
      "message": "Make allocation tracker use less memory\n\nThe allocation tracker no longer keeps recently allocated objects live.\nInstead it just keeps their class objects live as strong roots. This fixed\nthe gc-stress test failure for 098-ddmc.\n\nAlso fixed the issue in DisableNewSystemWeak() for allocation tracker,\nby making new allocation to wait until GC\u0027s sweeping to complete. I didn\u0027t\nfeel any significant slowdown with this wait.\n\nBug: 20037135\nChange-Id: I6a98188832cf7ee478007e3788e742dc6e18f7b8\n"
    },
    {
      "commit": "da0e224d79262b11fbac9e7b1fdc11c4df31b77f",
      "tree": "1394e3cf8839eae01fb0d5ed3573bf6399f0220a",
      "parents": [
        "3355963cee00fe97cc7aaeaab2c6e31c5657ff6a",
        "1ed11b9ad5512cf464cb1686640df53201fa5297"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 23 03:27:44 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 23 03:27:45 2015 +0000"
      },
      "message": "Merge \"Restore DDMS recent allocation tracking\u0027s behavior\""
    },
    {
      "commit": "1ed11b9ad5512cf464cb1686640df53201fa5297",
      "tree": "7466c110f74fb736a8f00e60a24ac841d1c0213a",
      "parents": [
        "5aa39bb7f93cf2e8f73d06980b588519825c0ebe"
      ],
      "author": {
        "name": "Man Cao",
        "email": "manc@google.com",
        "time": "Thu Jun 11 22:47:35 2015 -0700"
      },
      "committer": {
        "name": "Man Cao",
        "email": "manc@google.com",
        "time": "Mon Jun 22 16:52:08 2015 -0700"
      },
      "message": "Restore DDMS recent allocation tracking\u0027s behavior\n\nMake the allocation tracker mark recently allocated objects as roots,\nso the allocation records are not swept. Because DDMS needs recent\nallocation tracking records even for dead objects. This should fix\nthe flaky failures for 098-ddmc test, but it cannot pass GC stress\ntest (OOM). Re-enabled 098-ddmc for other tests.\n\nThere should be an option to not mark them as roots, when user only\nneeds HPROF dump with traces but not DDMS\u0027s recent allocation tracking.\nProbably need to add a new JNI API function for this option.\n\nThere could be another way to keep a second list of recent allocation\nrecords and maintain a type cache for them, so not to make the objects\nroots. But it\u0027s more complex, and not sure which is better.\n\nAlso reduce memory usage for AllocRecordStackTrace objects, and change\ndefault stack depth to 16. Rename the property that controls the stack\ndepth to \"debug.allocTracker.maxStackDepth\" so developer can change it.\n\nBug:20037135\nChange-Id: Ic6b9ae87bdcda558be6f14ded8057e763439881c\n"
    },
    {
      "commit": "310008008c90fea246efd00cb99ee7ded97c5209",
      "tree": "93ef04470ec9c883e003b0a8043b370b8f05718f",
      "parents": [
        "f7012291ed9c984e2b50d83d7a2d5758cd64c99a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Jun 14 14:14:37 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jun 22 15:45:13 2015 -0700"
      },
      "message": "New experimental GC stress mode\n\nTries to do a GC for every unique call stack (up to 16 frames).\nThe goal is to catch moving GC bugs and lock violations without being\nrediculously slow. Some tests fail on 64 bits, 32 bit host doesn\u0027t\nwork. N5 is booting.\n\nAdded runtime -Xgc options: gcstress and nogcstress.\n\nBug: 21664466\n\nChange-Id: Icb8e420f2048e8ee83bcca7937563166a2638f5c\n"
    },
    {
      "commit": "247e97746016b49183b52f4c386bedf7cd53e590",
      "tree": "758c0a7c60c2099fb6a8cf2d4ea68ffc8c9459ac",
      "parents": [
        "2b696ab55e817b583d7b3b3ffd39e48c38db6989",
        "158f35c98e2ec0d40d2c032b8cdce5fb60944a7f"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Jun 18 19:56:57 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 18 19:56:58 2015 +0000"
      },
      "message": "Merge \"interpreter: Add experimental lambda opcodes for invoke/create-lambda\""
    },
    {
      "commit": "158f35c98e2ec0d40d2c032b8cdce5fb60944a7f",
      "tree": "63bb3bbed85b0add42c7fdc714cd611424d8af2e",
      "parents": [
        "c449e8b79aaaf156ce055524c41474cc1200ed5a"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Jun 10 15:55:30 2015 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Jun 18 10:22:27 2015 -0700"
      },
      "message": "interpreter: Add experimental lambda opcodes for invoke/create-lambda\n\nThese opcodes are not yet fully specified, and *will* change before they become shippable.\nDo not write production code against experimental opcodes.\n\n--\n\nImplement partial interpreter support for new dex instructions invoke/create-lambda, and a\nnew opcode format 25x.\n\n* Does not verify, in fact verification will soft fail when we see those opcodes.\n* Compilers will punt to interpreter since they don\u0027t support new opcodes.\n* As there is no way to capture/liberate variables yet, the \"closure\" is just\n  an ArtMethod for the time being.\n\nAll new opcodes are disabled by default, use runtime option -Xexperimental-lambdas to enable them.\n\nFor example:\n  dalvikvm ... -Xexperimental-lambdas ...\n  dex2oat --runtime-arg -Xexperimental-lambdas ...\n\nChange-Id: I6c996ca32a9b54ec45ec21d7a959b84dfb8a24eb\n"
    },
    {
      "commit": "37670178497df18ae6b2a97a2ea9bf365621f16e",
      "tree": "c6d446642f25ec3c065a9d86303fbccb25bb5455",
      "parents": [
        "79b08e69b71a53beb3f053b304c34ea88bfb9a47"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Jun 10 17:20:54 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Jun 11 13:47:23 2015 -0700"
      },
      "message": "Reset GC performance stats at zygote fork.\n\nSo GCs before a zygote fork won\u0027t be attributed to an app.\n\n(cherry pick commit  Ib37bc587e0f039ef8faeabe63dec19de49501863)\n\nBug: 21491908\nChange-Id: Ib37bc587e0f039ef8faeabe63dec19de49501863\n"
    },
    {
      "commit": "8c2ff641294715864013737fdec57cdfd410270c",
      "tree": "2dd302323b4711d1a9391b8c1a8dce3de3e76e91",
      "parents": [
        "6dbf5a5a075a371cb2ff3659058e93a985485baa"
      ],
      "author": {
        "name": "Man Cao",
        "email": "manc@google.com",
        "time": "Wed May 27 17:25:30 2015 -0700"
      },
      "committer": {
        "name": "Man Cao",
        "email": "manc@google.com",
        "time": "Wed Jun 10 15:03:01 2015 -0700"
      },
      "message": "Add allocation stack traces for HPROF dump.\n\nThis feature is currently only enabled when DDMS\u0027s allocation tracking\nis enabled. In the future there should be a way to enable this feature\nbefore an application starts.\n\nAlso updates DDMS\u0027s recent allocation tracking to use a new backend\ndata structure that is shared with this feature.\n\nThe following system properties controls customizable parameters:\ndalvik.vm.allocTrackerMax: max number of objects that have allocation\n                           records, default 512K;\n\ndalvik.vm.recentAllocMax:  max number of records that are sent to DDMS\n                           when clicking \"Get allocation\" button,\n                           default 64K-1 (limit of the protocol);\n\ndalvik.vm.allocStackDepth: max number of stack frames in an allocation\n                           record, default 4.\n\nBug: 20037135\nChange-Id: I26ed378a5613678bd3c43e846025f90470a8e059\n"
    },
    {
      "commit": "054a078ecebfb84b5003f2d0239c472de53267e2",
      "tree": "bb1fe30d8e74e8204e93ad9db0a1c775f5be42fe",
      "parents": [
        "da2fd5aa2cbdab371f9a1c29ff4e4dfd09305fdc"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Apr 07 10:56:50 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 04 16:17:21 2015 -0700"
      },
      "message": "Add atrace calls to runtime start and heap create\n\n(cherry picked from commit 7fabaa6ba1927d21a317c03499b705cbde4f6a47)\n\nBug: 20727525\n\nChange-Id: I91a74b793fb9eda8ed580244a6a5fd313ef2eb27\n"
    },
    {
      "commit": "e3b034a6f6f0d80d519ab08bdd18be4de2a4a2db",
      "tree": "660cc713e0ad2d71ccd1e0af1399c92665b626c7",
      "parents": [
        "119a8025bbc1c6f4a2d537e9a6d22f33ef31e552"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun May 31 14:29:23 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun May 31 17:36:10 2015 -0700"
      },
      "message": "Fix some ArtMethod related bugs\n\nAdded root visiting for runtime methods, not currently required\nsince the GcRoots in these methods are null.\n\nAdded missing GetInterfaceMethodIfProxy in GetMethodLine, fixes\n--trace run-tests 005, 044.\n\nFixed optimizing compiler bug where we used a normal stack location\ninstead of double on ARM64, this fixes the debuggable tests.\n\nTODO: Fix JDWP tests.\n\nBug: 19264997\n\nChange-Id: I7c55f69c61d1b45351fd0dc7185ffe5efad82bd3\n"
    },
    {
      "commit": "e401d146407d61eeb99f8d6176b2ac13c4df1e33",
      "tree": "17927f9bfe7d2041b5942c89832d55f9dedb24c5",
      "parents": [
        "2006b7b9b8e32722bd0d640c62549d8a0ac624b6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 22 13:56:20 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri May 29 18:45:49 2015 -0700"
      },
      "message": "Move mirror::ArtMethod to native\n\nOptimizing + quick tests are passing, devices boot.\n\nTODO: Test and fix bugs in mips64.\n\nSaves 16 bytes per most ArtMethod, 7.5MB reduction in system PSS.\nSome of the savings are from removal of virtual methods and direct\nmethods object arrays.\n\nBug: 19264997\nChange-Id: I622469a0cfa0e7082a2119f3d6a9491eb61e3f3d\n"
    },
    {
      "commit": "0de1133ba600f299b3d67938f650720d9f859eb2",
      "tree": "575781fecb928641714801e24af128c68e108448",
      "parents": [
        "03e4351df62ade9fa0e9139ece28f23ba85c49c2"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed May 13 12:14:05 2015 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue May 19 14:31:54 2015 +0200"
      },
      "message": "Fix debuggable compiler flag detection for secondary dex files\n\nCompiles secondary dex files like the primary dex file: if it has\nbeen compiled with the --debuggable flag, compile secondary dex files\nwith the --debuggable flag too.\n\nTherefore, dex files loaded at runtime are compiled the same way as\ndex files compiled at install time on the classpath (excluding the\nboot image that is not compiled debuggable).\n\nAlso adds debuggable key in the oat header and bump the oat version.\n\nBug: 20944228\nChange-Id: I59119f3468adb27ab1d6026f2cefbebbd814224c\n"
    },
    {
      "commit": "b81e1cddd6a8ccccb9fe86e3bfae12b2657b8085",
      "tree": "d247ef138c2304c2ac7c5a0147ad06200e58de07",
      "parents": [
        "b6829c2ee05124d64a19c7a52ada4a23f624fb91"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Apr 28 12:31:41 2015 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Apr 29 15:50:03 2015 +0200"
      },
      "message": "Fix missing transaction abort error message\n\nChange-Id: I5157def06d385c082f9fdd4714e20bead9e707e8\n"
    },
    {
      "commit": "848f70a3d73833fc1bf3032a9ff6812e429661d9",
      "tree": "b0349b3a40aab5a915af491b100659a5ca9fbbf6",
      "parents": [
        "d14438f0c5071962be7fab572b54687d32d9d087"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Jan 15 13:49:50 2014 -0800"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Apr 27 18:54:52 2015 -0700"
      },
      "message": "Replace String CharArray with internal uint16_t array.\n\nSummary of high level changes:\n  - Adds compiler inliner support to identify string init methods\n  - Adds compiler support (quick \u0026 optimizing) with new invoke code path\n    that calls method off the thread pointer\n  - Adds thread entrypoints for all string init methods\n  - Adds map to verifier to log when receiver of string init has been\n    copied to other registers. used by compiler and interpreter\n\nChange-Id: I797b992a8feb566f9ad73060011ab6f51eb7ce01\n"
    },
    {
      "commit": "2cebb24bfc3247d3e9be138a3350106737455918",
      "tree": "d04d27d21b3c7733d784e303f01f873bb99e7770",
      "parents": [
        "1f02f1a7b3073b8fef07770a67fbf94afad317f0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 21 16:50:40 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 22 12:44:27 2015 -0700"
      },
      "message": "Replace NULL with nullptr\n\nAlso fixed some lines that were too long, and a few other minor\ndetails.\n\nChange-Id: I6efba5fb6e03eb5d0a300fddb2a75bf8e2f175cb\n"
    },
    {
      "commit": "fc58af45e342ba9e18bbdf597f205a58ec731658",
      "tree": "3f93906235cb4d2462d237223b72ccf4eedef645",
      "parents": [
        "bbf02afc641a393d33342976e269218668c07386"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 16 18:00:39 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 21 15:51:29 2015 -0700"
      },
      "message": "Add AbstractMethod, Constructor, Method\n\nMoves functionality to ART from libcore. Precursor to moving\nArtMethods to native. Mostly performance improvements.\n\nN5 perf before (irrelevant results removed):\n            Class_getConstructor  962.87 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n         Class_getDeclaredMethod 2394.37 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                 Class_getMethod 2509.20 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n               Class_newInstance 1999.81 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                  Method_invokeI 1439.02 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n          Method_invokePreBoxedI 1415.82 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n            Method_invokeStaticI 1456.24 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n    Method_invokeStaticPreBoxedI 1427.32 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n            Method_invokeStaticV  814.47 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                  Method_invokeV  816.56 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nAfter:\n                       benchmark      ns linear runtime\n            Class_getConstructor 1302.04 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n         Class_getDeclaredMethod 1459.01 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                 Class_getMethod 1560.40 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n               Class_newInstance 2029.94 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                  Method_invokeI 1312.89 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n          Method_invokePreBoxedI 1255.01 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n            Method_invokeStaticI 1289.13 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n    Method_invokeStaticPreBoxedI 1196.52 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n            Method_invokeStaticV  790.82 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                  Method_invokeV  791.73 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nPerformance improvements are more than just fixing regressions introduced\nin: http://android-review.googlesource.com/#/c/146069/\n\nBug: 19264997\n\nChange-Id: Ife79c469fdb09f30e3aefcfc3e0ce5ed32303fce\n"
    },
    {
      "commit": "40da286d3207d88ed8ff3f5caac4873874603428",
      "tree": "3f9720425b2a024a5a54a0a71447dcea107229a8",
      "parents": [
        "6508158f8388847f4cc3693e2cc1dbee6c2c7d18"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 27 12:49:04 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 15 20:45:35 2015 -0700"
      },
      "message": "ART: Streaming trace mode\n\nAdd a streaming mode for tracing. Streaming uses a buffer of 16KB\nand writes to the output when that buffer gets full. Streaming mode\ncan be enabled with -Xmethod-trace-stream and is currently not\nexposed otherwise.\n\nAdd a python script that can parse the streaming format, which\nsimply contains strings for newly encountered threads and methods\ninline, and create output that can be used with traceview.\n\nAdd Trace::Pause and Trace::Abort, which can pause and abort tracing.\nAbort is different from Stop in that it does not write the data.\n\nAdd code to the zygote hooks JNI implementation that pauses tracing\nbefore the fork, making sure that a child cannot clobber the parent\u0027s\ndata.\n\nAdd code to the zygote hooks JNI implementation that aborts old\ntracing and starts new tracing in the child after the fork. Currently\nbase the output on the pid. This will not work on an unmodified\ndevice, as the profiles directory is not generally writable, but\nwe do not have enough information at that point. Consider a scheme\nthat restarts tracing later.\n\nChange-Id: I93c7bf87e35af582bdfdd3ecc7c52454514220dd\n"
    },
    {
      "commit": "3481ba2c4e4f3aa80d8c6d50a9f85dacb56b508b",
      "tree": "77551c0a6d060e5a3723ad35d2ab101038f9328a",
      "parents": [
        "095d209342420563becfec6676b46a6c6b839107"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 13 12:22:36 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 13 16:30:13 2015 +0100"
      },
      "message": "ART: Clean up includes.\n\nReduce dependencies to improve incremental build times.\nBreak up circular dependency involving class_linker-inl.h.\n\nChange-Id: I4be742c5c2b5cd9855beea86630fd68aab76b0db\n"
    },
    {
      "commit": "c785344b87221f5e4e6473e5b762e4e61fe65dcf",
      "tree": "cd32ad2c2604596a18926f04d4c313dab255ecfd",
      "parents": [
        "a29d93b380c9aeb8270e281aefbdd0c77a430d43"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 27 14:35:38 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 10 12:57:27 2015 -0700"
      },
      "message": "Move ArtField to native\n\nAdd linear alloc. Moved ArtField to be native object. Changed image\nwriter to put ArtFields after the mirror section.\n\nSavings:\n2MB on low ram devices\n4MB on normal devices\n\nTotal PSS measurements before (normal N5, 95s after shell start):\nImage size: 7729152 bytes\n23112 kB: .NonMoving\n23212 kB: .NonMoving\n22868 kB: .NonMoving\n23072 kB: .NonMoving\n22836 kB: .NonMoving\n19618 kB: .Zygote\n19850 kB: .Zygote\n19623 kB: .Zygote\n19924 kB: .Zygote\n19612 kB: .Zygote\nAvg: 42745.4 kB\n\nAfter:\nImage size: 7462912 bytes\n17440 kB: .NonMoving\n16776 kB: .NonMoving\n16804 kB: .NonMoving\n17812 kB: .NonMoving\n16820 kB: .NonMoving\n18788 kB: .Zygote\n18856 kB: .Zygote\n19064 kB: .Zygote\n18841 kB: .Zygote\n18629 kB: .Zygote\n3499 kB: .LinearAlloc\n3408 kB: .LinearAlloc\n3424 kB: .LinearAlloc\n3600 kB: .LinearAlloc\n3436 kB: .LinearAlloc\nAvg: 39439.4 kB\n\nNo reflection performance changes.\n\nBug: 19264997\nBug: 17643507\n\nChange-Id: I10c73a37913332080aeb978c7c94713bdfe4fe1c\n"
    },
    {
      "commit": "bb87e0f1a52de656bc77cb01cb887e51a0e5198b",
      "tree": "113f014c6e20fab3e936a3ac05f9f738639541f6",
      "parents": [
        "e57fc0f0260fcb1d08cbb720ec95c04c0f394b91"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 03 11:21:55 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Apr 06 10:44:37 2015 -0700"
      },
      "message": "Refactor and improve GC root handling\n\nChanged GcRoot to use compressed references. Changed root visiting to\nuse virtual functions instead of function pointers. Changed root visting\ninterface to be an array of roots instead of a single root at a time.\nAdded buffered root marking helper to avoid dispatch overhead.\n\nRoot marking seems a bit faster on EvaluateAndApplyChanges due to batch\nmarking. Pause times unaffected.\n\nMips64 is untested but might work, maybe.\n\nBefore:\nMarkConcurrentRoots: Sum: 67.678ms 99% C.I. 2us-664.999us Avg: 161.138us Max: 671us\n\nAfter:\nMarkConcurrentRoots: Sum: 54.806ms 99% C.I. 2us-499.986us Avg: 136.333us Max: 602us\n\nBug: 19264997\n\nChange-Id: I0a71ebb5928f205b9b3f7945b25db6489d5657ca\n"
    },
    {
      "commit": "9ba48cef58e71f6a61b346d83c69c6372ede6b77",
      "tree": "aa81defca9c6cc2c736e9b19e477240d18867225",
      "parents": [
        "425587d25832145a45a0b76beaa93996b0226f0d",
        "02d2f290380c6aeff5f5a089ee38fa5d55e46130"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Apr 03 21:06:51 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 03 21:06:51 2015 +0000"
      },
      "message": "Merge \"Fix the read barrier builds.\""
    },
    {
      "commit": "02d2f290380c6aeff5f5a089ee38fa5d55e46130",
      "tree": "7a1e2bd74768db29f25b087e2120fb4c61897da5",
      "parents": [
        "1f940310658cd5a15e12305463fb6d2d508bbd26"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Apr 03 13:35:16 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Apr 03 13:35:16 2015 -0700"
      },
      "message": "Fix the read barrier builds.\n\nA check failure (!UseJit() in ArtMethod::Invoke()) in forced interpret\nonly mode in the eng build with JIT enabled by default on target.\n\nA build failure (inl header file issues) in the USE_BAKER_READ_BARRIER\nbuild.\n\nChange-Id: Ib13632b10864ad8b4691b66971c0ab5d2ae1e675\n"
    },
    {
      "commit": "ae36b4a8d05525c977af831f1b31126d84159e4f",
      "tree": "1b474b0bdec9db773cab0a2bca70dce1452f7cd1",
      "parents": [
        "a68a7cf8f3a6fef22d71a14350176115cb13857f",
        "2fd7e69505195cda4caaa3161aaf37315552a698"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Apr 03 07:49:44 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 03 07:49:46 2015 +0000"
      },
      "message": "Merge \"Use specific exception class to abort transaction\""
    },
    {
      "commit": "2fd7e69505195cda4caaa3161aaf37315552a698",
      "tree": "2bd681443ad36a8616f237a12e56ecbdb7054f8e",
      "parents": [
        "c6e949a6d93fae2351fc59ed825657adee8185dc"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Apr 02 11:11:19 2015 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Fri Apr 03 09:31:59 2015 +0200"
      },
      "message": "Use specific exception class to abort transaction\n\nWe used to throw a java.lang.InternalError when aborting a\ntransaction (when preinitializing image classes at compilation time).\n\nWe now use dedicated class dalvik.system.TransactionAbortError that\nis only thrown by the compiler to abort a transaction. This class has\nconstructors taking a java.lang.Throwable \"cause\" so we can wrap\nexceptions causing the transaction to abort (for instance class\njava.lang.ClassNotFoundException) and give more information about the\ncause of the transaction abort.\n\nBug: 20019689\nChange-Id: I019a72a1c754d8bba6a7ad6bb0f02e4fd6668622\n"
    },
    {
      "commit": "f6a780abeaed4bf745720e8f836a3064d3ffbec4",
      "tree": "0850cde8f2200f893a374610090be5b8326ecf83",
      "parents": [
        "93c65adb3d7bd1d3815715df433d185219045230"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 02 18:51:05 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Apr 02 18:51:05 2015 -0700"
      },
      "message": "ART: Move trace options to a struct\n\nBundles the different options and moves them to a struct in the\nimplementation file. Will allow for easier change for streaming.\n\nChange-Id: I486e0942614e714964eb233e2d6b4e3e12aa704f\n"
    },
    {
      "commit": "461687d898dfd91253f242072849a9fe43e5f523",
      "tree": "452e3e11cb5746f487920f87fcaf1b238d2a8957",
      "parents": [
        "e33d0cb5b88703302e3912ca96dabcb06fea4340"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 31 12:05:24 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 31 15:57:27 2015 -0700"
      },
      "message": "Visit image roots for hprof\n\nBug: 19995360\n\n(cherry picked from commit 0cab5e68f14ee403380664146db6dc7ddfc32064)\n\nChange-Id: I17868bff2a701dc25291d41b9732c6b86f92be08\n"
    },
    {
      "commit": "af38d89634edbef394b3ef2cb3390d08dfb8d939",
      "tree": "d201eb23ef8bdef663a7580289cece348903adba",
      "parents": [
        "f381645a336f7092ab6f5900c0a2cf183a9dbdf7",
        "7e7e0f47628fb358da70c5e2766545c4f0596235"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Mar 30 01:04:12 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 30 01:04:12 2015 +0000"
      },
      "message": "Merge \"ART: Use enums in Trace\""
    },
    {
      "commit": "7e7e0f47628fb358da70c5e2766545c4f0596235",
      "tree": "5f1473cb0aa149fee476966ffb23ec8f8941b208",
      "parents": [
        "68e22f3b982ff9ccbdfb3b65b7cfc16fcae907ba"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sun Mar 29 15:26:23 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sun Mar 29 15:26:23 2015 -0700"
      },
      "message": "ART: Use enums in Trace\n\nMove away from booleans. Will make introduction of streaming mode\na bit easier / obvious.\n\nChange-Id: Id7ae92f6b97f627e848510d473931537d7db0db8\n"
    },
    {
      "commit": "daaf3265806eb2eadb2e03302bd68022fab5ca28",
      "tree": "aff5d6d53d6d2b65995aa204839f88ee66400989",
      "parents": [
        "68e22f3b982ff9ccbdfb3b65b7cfc16fcae907ba"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Mar 24 13:30:28 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Mar 29 14:13:08 2015 -0700"
      },
      "message": "Add AccessibleObject and Field to mirror\n\nMain motivation is to remove all the functionality / field access on\njava side to ArtField. Also comes with some reflection speedups /\nslowdowns.\n\nSummary results:\ngetDeclaredField/getField are slower mostly due to JNI overhead.\nHowever, there is a large speedup in getInt, setInt,\nGetInstanceField, and GetStaticField.\n\nBefore timings (N5 --compiler-filter\u003deverything):\n\n                       benchmark      ns linear runtime\n          Class_getDeclaredField  782.86 \u003d\u003d\u003d\n                  Class_getField  832.77 \u003d\u003d\u003d\n                    Field_getInt  160.17 \u003d\n                    Field_setInt  195.88 \u003d\n                GetInstanceField 3214.38 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                  GetStaticField 6809.49 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nAfter:\n          Class_getDeclaredField 1068.15 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                  Class_getField 1180.00 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                    Field_getInt  121.85 \u003d\n                    Field_setInt  139.98 \u003d\n                GetInstanceField 1986.15 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n                  GetStaticField 2523.63 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nBug: 19264997\n\nChange-Id: Ic0d0fc1b56b95cd6d60f8e76f19caeaa23045c77\n"
    },
    {
      "commit": "4585f876eb5dfb936bd0d6cb6acd78a1f2182ba6",
      "tree": "e9dfed086f56245e74862caa813c708bc4f500f9",
      "parents": [
        "e2c29f4a2717923f190c944a06e02f7d8c3ddcb6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 27 23:45:15 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 27 23:46:09 2015 -0700"
      },
      "message": "ART: Some runtime cleanup\n\nUse an enum for the compiler-callback mode.\n\nRefactor and remove some unnecessary includes in runtime.h.\n\nChange-Id: If2245fa470171311b8e05b677cf6bb28f209585a\n"
    },
    {
      "commit": "81c6f8db12b203878a7d72444ead2bc7cf5c47ad",
      "tree": "11caae30b75b700ac648356fd30759a6154be997",
      "parents": [
        "cac51526bbd03947676a8d49700425b19a57e447"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 25 17:19:53 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Mar 27 21:43:21 2015 -0700"
      },
      "message": "ART: PathClassLoader for compiler\n\nUse an actual PathClassLoader when compiling apps, instead of a\nside structure and cutout.\n\nThis CL sets up a minimal object \u0027cluster\u0027 that recreates the Java\nside of a regular ClassLoader such that the Class-Linker will\nrecognize it and use the internal native fast-path.\n\nThis CL removes the now unnecessary compile-time-classpath and\nreplaces it with a single \u0027compiling-the-boot-image\u0027 flag in the\ncompiler callbacks.\n\nNote: This functionality is *only* intended for the compiler, as\nthe objects have not been completely initialized.\n\nBug: 19781184\n\nChange-Id: I7f36af12dd7852d21281110a25c119e8c0669c1d\n"
    },
    {
      "commit": "3679a47027b40290018d0ccc50b996a15645dfef",
      "tree": "92c6fcbb8fe5c647eb06bb63277c90f36c319101",
      "parents": [
        "139cec015abd195727d5410dc313b483babeda10",
        "e5fed03772144595c0904faf3d6974cc55214c8c"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Mar 25 17:10:11 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 25 17:10:12 2015 +0000"
      },
      "message": "Merge \"Support relative encoded dex locations in oat files.\""
    },
    {
      "commit": "e5fed03772144595c0904faf3d6974cc55214c8c",
      "tree": "27c242e48cabd2543f472930d1ad7e2ab86557fe",
      "parents": [
        "b93581f857e36a62f690e26e78167f2abea0f033"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Mar 18 08:21:11 2015 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Mar 24 12:48:09 2015 -0700"
      },
      "message": "Support relative encoded dex locations in oat files.\n\nNow when opening an oat file, the caller can pass an absolute dex\nlocation used to resolve the absolute path for any relative\nencoded dex locations in the oat file.\n\nBug: 19550105\nChange-Id: I6e9559afe4d86ac12cf0b90176b5ea696a83d0e7\n"
    }
  ],
  "next": "785049f8083e56e88dfeab5ff74fb3817f9854e3"
}
