)]}'
{
  "log": [
    {
      "commit": "6e03d19e638ea64260f2be4890944b40409d6afa",
      "tree": "e723b0b96c379d991e5cecb32686decf1353704f",
      "parents": [
        "9495e0c56b25349220aed7adb997d81f9b0c86cc"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Tue Aug 23 14:32:21 2016 +0100"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Tue Aug 30 10:21:46 2016 +0100"
      },
      "message": "Track addition of Class.toGenericString() method\n\nIncreasing the vtable size for class by one.\n\nBug: 28666126\nChange-Id: I89019d5f1b65725180b409decbd5b2570e24f5fe\nTest: cts ran for libcore (libcore, harmony_java_lang, org) and host art tests.\n"
    },
    {
      "commit": "16b21cd4874be8550f43987b0bd2e4ba8ba3ca42",
      "tree": "475aeec7476e039442009ca36c1ddde1c9cdbd47",
      "parents": [
        "ca11dc008457e1596554eb9b1b77c823ae9dcf54"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Fri Aug 12 09:37:02 2016 +0100"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Fri Aug 26 14:31:26 2016 +0100"
      },
      "message": "Tracking java.lang.reflect.Executable changes\n\nAdded a method to Class: total vtable entries increases\nby one.\n\nHandling knock-ons of introducing Executable into the\nclass hierarchy above AbstractMethod.\n\nRearranging java_lang_reflect_*.cc code to track libcore\nchanges that reduce duplication between Constructor / Method\n/ Executable and AbstractMethod and track the OpenJDK 8\nmore closely.\n\nBug: 28666126\nChange-Id: I6b5c476a14b8ea25556c35448431de744519b6c2\n"
    },
    {
      "commit": "770e31af962a8ec64bccf0121d1463fa19f5364c",
      "tree": "19953e360a392c5574b3caf1f37fd37f6364cdf8",
      "parents": [
        "897b8f5da90b38b030826273f4c9bd8fbc32759e",
        "c381c36aacf977f7e314e6a91e47b31b04639f62"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 24 21:53:50 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 24 21:53:51 2016 +0000"
      },
      "message": "Merge \"Avoid CAS for marking region space bitmap for baker\""
    },
    {
      "commit": "c381c36aacf977f7e314e6a91e47b31b04639f62",
      "tree": "15d70c007bf5523c47337a4ca7f0af0a1100b03e",
      "parents": [
        "47ec97259fefc03978517814a14e07ea4c09d472"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 23 13:27:53 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 24 13:34:32 2016 -0700"
      },
      "message": "Avoid CAS for marking region space bitmap for baker\n\nOnly have the GC thread mark it. This occurs when popping from the\nmark stack. The race where an object may be pushed to the mark\nstack twice is handled by not scanning if it is already marked.\n\nAlso avoid checking is_active when marking from the GC.\n\nEAAC: 1263 -\u003e 1253 (average of 30 runs)\nGC time: 7.21s -\u003e 6.83s (average of 18 runs)\n\nTimings on 960 mhz N6P.\n\nBug: 12687968\n\nChange-Id: I47e98c3e258829d2ba0babd803a219c82a36168c\nTest: test-art-host, debug N6P booting with baker CC.\n"
    },
    {
      "commit": "c31ba109d50eeb676a0d14bbb6d699e450771d8d",
      "tree": "2afa02071d63e353d0d28dd126ccc857ca14fd32",
      "parents": [
        "c67d22ac6db73aaa9540294c86344bf8021495b3",
        "b2223931188bf129abc0701c401c7f3452505131"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 24 09:58:59 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 24 09:58:59 2016 +0000"
      },
      "message": "Merge \"ART: unblock compiler tests on MIPS\""
    },
    {
      "commit": "b2223931188bf129abc0701c401c7f3452505131",
      "tree": "5c5e32b619f3c36585004a8914a9d592b8f9ed1e",
      "parents": [
        "38daddf297d2ce570b92144f168804513c35569f"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Tue Aug 23 23:42:54 2016 -0700"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Tue Aug 23 23:48:34 2016 -0700"
      },
      "message": "ART: unblock compiler tests on MIPS\n\nThe DCHECK() that\u0027s removed here causes most of compiler tests to\nfail on MIPS. The issue is introduced with the recent changes in\nthe string dex cache.\n\nTest: booted MIPS32 in QEMU\nTest: test-art-target-run-test-optimizing on CI20\n\nChange-Id: I7fd45fa0b6d64fbc553f6aeaa6dac7345c885fe4\n"
    },
    {
      "commit": "3aaa37bba53d6df0265793de48b4b0b57327e57a",
      "tree": "ce795803f0f10003eb3d96d9348da620937675b3",
      "parents": [
        "792c98bb773c8c2390f9cbf774f85be9d9a75332"
      ],
      "author": {
        "name": "jessicahandojo",
        "email": "jessicahandojo@google.com",
        "time": "Fri Jul 29 14:46:37 2016 -0700"
      },
      "committer": {
        "name": "jessicahandojo",
        "email": "jessicahandojo@google.com",
        "time": "Tue Aug 23 15:12:26 2016 -0700"
      },
      "message": "creating workflow for mirror::String compression\n\nAll-ASCII String characters are stored in 8-bit blocks\ninstead of 16-bit. The compression has not taken place, but all\nworkflow are in the code already (changing kUseStringCompression in\nstring.h file to TRUE will enable the feature)\n\nNotes: Feature works on interpreter only without optimizing\n\nTest art: m ART_TEST_INTERPRETER\u003dtrue ART_TEST_OPTIMIZING\u003dfalse\n          test-art-host\n\nAlso tested with String tests from libcore/:\n1. libcore.java.lang.StringTest\n2. libcore.java.lang.StringBufferTest\n3. libcore.java.lang.StringBuilderTest\n4. libcore.java.lang.OldStringTest\n5. libcore.java.lang.OldStringBufferTest\n\nMemory improvement is 33% (from 6.03% to 4.03%, total String memory\nfrom all apps per total memory of all apps) measured on Angler\nwith Hprof tools\n\nBug: 31040547\nChange-Id: I9cc92c265ebf1305fc06b5fc33efd83797660cce\n"
    },
    {
      "commit": "679e38bad57c70a47ededd4dfcde178c7b3969ff",
      "tree": "5f5a219959e1cef0df8f99ea7f75df2c70ac197d",
      "parents": [
        "75214833572bcdebd498f566212b9240cdd66fcf",
        "9210ce973ea180f6c5109f262068d433b1da5bc0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 19 21:53:20 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 19 21:53:20 2016 +0000"
      },
      "message": "Merge \"ART: Fixing build breakage.\""
    },
    {
      "commit": "9210ce973ea180f6c5109f262068d433b1da5bc0",
      "tree": "1e2b15cf790cab2de795df5f7bbc189992a0b9ca",
      "parents": [
        "bf44e0e5281de91f2e38a9378b94ef8c50ad9b23"
      ],
      "author": {
        "name": "Christina Wadsworth",
        "email": "cwadsworth@google.com",
        "time": "Fri Aug 19 13:28:19 2016 -0700"
      },
      "committer": {
        "name": "Christina Wadsworth",
        "email": "cwadsworth@google.com",
        "time": "Fri Aug 19 13:28:19 2016 -0700"
      },
      "message": "ART: Fixing build breakage.\n\nCaused by Ic654a1fb9c1ae127dde59290bf36a23edb55ca8e.\n\nChange-Id: Ia0c0fbcb6c8b141c5ee30a89ab6bc1c653916698\n"
    },
    {
      "commit": "9c07ab332b8ebbcb1586c311bfcb75e19b8a35b4",
      "tree": "26a300b803f77e64c17e3d239a1880a4c5960666",
      "parents": [
        "6670bd2098264d4c4e19750ab4741121da7ee54b",
        "bf44e0e5281de91f2e38a9378b94ef8c50ad9b23"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 19 17:33:03 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 19 17:33:03 2016 +0000"
      },
      "message": "Merge \"ART: Implement a fixed size string dex cache\""
    },
    {
      "commit": "bf44e0e5281de91f2e38a9378b94ef8c50ad9b23",
      "tree": "bb6e65a3434806dc58f286ee75ad3b78ba9d6c36",
      "parents": [
        "d99565069c64fefc069005286de04599dc2619b8"
      ],
      "author": {
        "name": "Christina Wadsworth",
        "email": "cwadsworth@google.com",
        "time": "Thu Aug 18 10:37:42 2016 -0700"
      },
      "committer": {
        "name": "Christina Wadsworth",
        "email": "cwadsworth@google.com",
        "time": "Thu Aug 18 16:18:36 2016 -0700"
      },
      "message": "ART: Implement a fixed size string dex cache\n\nPreviously, the string dex cache was dex_file-\u003eNumStringIds() size, and\n@ruhler found that only ~1% of that cache was ever getting filled. Since\nmany of these string dex caches were previously 100,000+ indices in\nlength, we\u0027re wasting a few hundred KB per app by storing null pointers.\nThe intent of this project was to reduce the space the string dex cache\nis using, while not regressing on time that much. This is the first of a\nfew CLs, which implements the new fixed size array and disables the\ncompiled code so it always goes slow path. In four other CLs, I\nimplemented a \"medium path\" that regresses from the previous \"fast path\"\nonly a bit in assembly in the entrypoints. @vmarko will introduce new\ncompiled code in the future so that we ultimately won\u0027t be regressing on\ntime at all. Overall, space savings have been confirmed as on the order\nof 100 KB per application.\n\nA 4-5% slow down in art-opt on Golem, and no noticeable slow down in the\ninterpreter. The opt slow down should be diminished once the new\ncompiled code is introduced.\n\nTest: m test-art-host\n\nBug: 20323084\n\nChange-Id: Ic654a1fb9c1ae127dde59290bf36a23edb55ca8e\n"
    },
    {
      "commit": "c6efcaa17319e9f81def246c277fec523f5b85e0",
      "tree": "ee1d26910f2995e2e73f58f0b0a26cf8d3a096f3",
      "parents": [
        "d99565069c64fefc069005286de04599dc2619b8",
        "5bb4b0b4fcf230d8e4e45cd3fdec820f0b44141a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 17 23:58:47 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 17 23:58:47 2016 +0000"
      },
      "message": "Merge \"Revert \"Logging improvements for C++ / Java structure issues\"\""
    },
    {
      "commit": "5bb4b0b4fcf230d8e4e45cd3fdec820f0b44141a",
      "tree": "eba2ca0cc99b74bd909cfa9a35dcf83f086c9009",
      "parents": [
        "d833525cfe3ac2086e3156a8b3193c05974d6316"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 17 22:43:52 2016 +0000"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 17 22:43:52 2016 +0000"
      },
      "message": "Revert \"Logging improvements for C++ / Java structure issues\"\n\nBug: 30913672\n\nThis reverts commit d833525cfe3ac2086e3156a8b3193c05974d6316.\n\nChange-Id: I4e51591b49d54b8bb3e920fbc221c21aca0084fb\n"
    },
    {
      "commit": "d1272553516e6595dea310d07d7b974dcd0a421f",
      "tree": "a9314e5e1cd4481a02c220f218cb654a1be6b818",
      "parents": [
        "1d36e2c312216528ad721a70e8a29db321e4fdd6",
        "d833525cfe3ac2086e3156a8b3193c05974d6316"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Aug 17 13:19:28 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 17 13:19:28 2016 +0000"
      },
      "message": "Merge \"Logging improvements for C++ / Java structure issues\""
    },
    {
      "commit": "d833525cfe3ac2086e3156a8b3193c05974d6316",
      "tree": "aac45dd6a27a305f1c49cb8a74488be29eda747c",
      "parents": [
        "95afcbcc25bb17c9c34e8b7708013b612a3bb581"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Aug 17 11:39:26 2016 +0100"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Aug 17 11:39:26 2016 +0100"
      },
      "message": "Logging improvements for C++ / Java structure issues\n\nWhen C++ and Java structures are different sizes or arranged\ndifferently some log statements are useful but are hard to\npick out because they merge with other log lines. Adding\n\"\\n\" to the end of them makes it easier to read.\n\nChange-Id: Ia6d78e0832c7814bf1fef42bb3d8c056f83766bd\nTest: make build-art-host\n"
    },
    {
      "commit": "3d0aa88808052436981f589b7af4f1706c365187",
      "tree": "6a6d232b20d5b275dac7ee849ba2fc81d9256afd",
      "parents": [
        "95afcbcc25bb17c9c34e8b7708013b612a3bb581"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Tue Aug 16 19:53:07 2016 +0100"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Aug 17 10:27:36 2016 +0100"
      },
      "message": "Adjustments for changes made to java.lang.Class\n\nFix up the runtime after removal of the annotationType field\nfrom java.lang.Class.\n\nTest: make test-art-host / boot a device\nChange-Id: I5f37567d2b5ec381b35e66fef29287abe307b840\n"
    },
    {
      "commit": "8261d02f9523b95013108f271b82bb157ef6f71d",
      "tree": "026969c0ee61c0deae7a625fba81a711acd218aa",
      "parents": [
        "9cff32df754c428ef69ddb61e7600abfd4c75266"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Aug 08 09:41:04 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 09 09:57:01 2016 -0700"
      },
      "message": "Revert \"Revert \"ARM64 asm for region space array allocation\"\"\n\nAlso added missing large object check. No regression from the check\nN6P CC EAAC time at 1313 for 10 samples vs 1314 before reverts.\n\nBug: 30162165\nBug: 12687968\n\nTest: test-art-target with CC + heap poisoning\n\nThis reverts commit 6ae7f3a4541e70f04243a6fe469aa3bd51e16d79.\n\nChange-Id: Ie28f652f619898d7d37eeebf3f31a88af8fac949\n"
    },
    {
      "commit": "6ae7f3a4541e70f04243a6fe469aa3bd51e16d79",
      "tree": "db05e699a9929d11ff47a2b19845a921e360b5ff",
      "parents": [
        "f686c3feabe3519bedd1f3001e5dd598f46946ef"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Aug 08 14:41:32 2016 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Aug 08 14:41:32 2016 +0000"
      },
      "message": "Revert \"ARM64 asm for region space array allocation\"\n\nThis change breaks many tests on the ARM64 concurrent\ncollector configuration.\n\nBug: 30162165\nBug: 12687968\n\nThis reverts commit f686c3feabe3519bedd1f3001e5dd598f46946ef.\n\nChange-Id: I5d7ef5fa2ffb6a8d9a4d3adbcc14854efa257313\n"
    },
    {
      "commit": "f686c3feabe3519bedd1f3001e5dd598f46946ef",
      "tree": "234494fbb4fcf640df4676659d6cf6f987e0d3ab",
      "parents": [
        "20b975cc5c5a1f4e6f0a8e525b5d2e63abc413df"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 04 11:08:26 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 05 10:42:03 2016 -0700"
      },
      "message": "ARM64 asm for region space array allocation\n\nWrote region space tlab array and array resolved allocators in\nassembly code. The speedup is a combined increase from checking the\nmark bit and having an assembly fast path.\n\nAdded resolved, initialized entrypoints for object region TLAB\nallocator.\n\nN6P (960000 mhz) EEAC benchmark (average of 50 samples):\nCC 1442.309524 -\u003e 1314 (10% improvement)\nCMS: 1382.32\n\nRead barrier slow paths reaching C++ code go from 5M to 2.5M.\n\nBug: 30162165\nBug: 12687968\n\nTest: With CC: N6P boot, run EAAC, test-art-target\n\nChange-Id: I51515b11ef3f795f57eb72fe0f5759618fef5084\n"
    },
    {
      "commit": "d6a595baf0f389a7eb29fa3d94390c18a29c28da",
      "tree": "573ff358268737523f47f3cc3f6fcba42d1b4d0c",
      "parents": [
        "2c6cd5b9b906fc97b383eb6f7bbc5b7d4da9596d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 03 18:51:34 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 03 19:44:10 2016 -0700"
      },
      "message": "Fix CC table lookup tests\n\nOnly set the mark bits for baker barrier, not sure why this\ndoesn\u0027t work for table lookup barrier yet.\n\nBug: 30162165\n\nTest: test-art-host with CC table lookup\n\nChange-Id: I4309ac22bfc0f8a5c9bf081365e3e38da43eee30\n"
    },
    {
      "commit": "36a270ae4f288e49493432b7128f899ad579849e",
      "tree": "99f134bbfe111b1c42b1b0c19d8b65175a3e6fc8",
      "parents": [
        "89bd8358c0a69e8cd6456d81d88ef366e261f732"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 28 18:08:51 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 03 15:46:18 2016 -0700"
      },
      "message": "Change one read barrier bit to mark bit\n\nOptimization to help slow path performance. When the GC marks an\nobject through the read barrier slow path. The GC sets the mark bit\nin the lock word of that reference. This bit is checked from the\nassembly entrypoint the common case is that it is set. If the bit is\nset, the read barrier knows the object is already marked and there is\nno work to do.\n\nTo prevent dirty pages in zygote and image, the bit is set by the\nimage writer and zygote space creation.\n\nEAAC score (lower is better):\nN9: 777 -\u003e 700 (average 31 of runs)\nN6P (960000 mhz): 1737.48 -\u003e 1442.31 (average of 25 runs)\n\nBug: 30162165\nBug: 12687968\n\nTest: N9, N6P booting, test-art-host, test-art-target all with CC\n\nChange-Id: Iae0cacfae221e33151d3c0ab65338d1c822ab63d\n"
    },
    {
      "commit": "ba65cc4a71273904294245cb37ce70e5bce797e3",
      "tree": "d53a7a816ec4c8e5bdbf80729ac945787b27bf2c",
      "parents": [
        "1a827a05afbffd5bee241f245f9aa3c40b4dbae4",
        "542451cc546779f5c67840e105c51205a1b0a8fd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 02 03:47:35 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 02 03:47:35 2016 +0000"
      },
      "message": "Merge \"ART: Convert pointer size to enum\""
    },
    {
      "commit": "542451cc546779f5c67840e105c51205a1b0a8fd",
      "tree": "11e09bb5abaee12dddffefbe7e425291076dfa7a",
      "parents": [
        "85c4a4b8c9eabfe16e4e49f9b4aa78c1bf4be023"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 26 09:02:02 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Aug 01 18:54:48 2016 -0700"
      },
      "message": "ART: Convert pointer size to enum\n\nMove away from size_t to dedicated enum (class).\n\nBug: 30373134\nBug: 30419309\nTest: m test-art-host\nChange-Id: Id453c330f1065012e7d4f9fc24ac477cc9bb9269\n"
    },
    {
      "commit": "4b0ef1c980a1f3b0201d77e33bdb2f7df12c9114",
      "tree": "4b8891beab013872144d69f97e918f9914aaf8c8",
      "parents": [
        "7707777f064e9e0aa53c40c189045ab2ea4301ee"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jul 29 16:26:01 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jul 29 17:54:09 2016 -0700"
      },
      "message": "Revert \"Revert \"Use try lock to fix class resolution race\"\"\n\nFix possible deadlock in EnsureResolved caused by interaction with\nGC. Since we were sleeping while holding the mutator lock, it could\nblock thread suspension. This would deadlock if the thread that\nhad locked h_class is already suspended since we would spin forever\nand not make progress.\n\nBug: 27417671\nBug: 30500547\n\nTest: test-art-host ART_TEST_GC_STRESS\u003dtrue\n\nThis reverts commit 69bf969c055c31a75d17ea92aeee756042678114.\n\nChange-Id: Id8750df065dc3b9ef7dc874f2eb2cc2c58e5d1eb\n"
    },
    {
      "commit": "7707777f064e9e0aa53c40c189045ab2ea4301ee",
      "tree": "6544d649172931dd9d419693cf760700323d1799",
      "parents": [
        "ea159431cd5ed83c4bf4571c834aa9bcf9cc3901",
        "69bf969c055c31a75d17ea92aeee756042678114"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 29 21:23:49 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 29 21:23:49 2016 +0000"
      },
      "message": "Merge \"Revert \"Use try lock to fix class resolution race\"\""
    },
    {
      "commit": "69bf969c055c31a75d17ea92aeee756042678114",
      "tree": "3132e2e1e5b1f1af558652d9b39eeb6c994ec256",
      "parents": [
        "a704eda0078989a73cac111ed309aca50d2e289b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jul 29 20:06:45 2016 +0000"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jul 29 20:12:48 2016 +0000"
      },
      "message": "Revert \"Use try lock to fix class resolution race\"\n\nThis reverts commit a704eda0078989a73cac111ed309aca50d2e289b.\n\nBug: 27417671\nBug: 30500547\nChange-Id: Ieea05236b9e61c722660cd9497c9d55d13ccd010\n"
    },
    {
      "commit": "533d684038a72fc5bd3ed352384fc2200bc79c76",
      "tree": "7c99d89632dffe416e7aaee45b5c66d41dbf4c27",
      "parents": [
        "85c4a4b8c9eabfe16e4e49f9b4aa78c1bf4be023",
        "d6636d3440efc68e1fa43f437ffbe77581096399"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 28 22:27:34 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 28 22:27:34 2016 +0000"
      },
      "message": "Merge \"Avoid read barrier for IntArray::GetArrayClass\""
    },
    {
      "commit": "d6636d3440efc68e1fa43f437ffbe77581096399",
      "tree": "8215236fcbd96189e3686366f352fd1936ad9e2d",
      "parents": [
        "ccee3363e385863de49e1b48a0ab191c94a7b433"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 28 11:02:38 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 28 13:54:46 2016 -0700"
      },
      "message": "Avoid read barrier for IntArray::GetArrayClass\n\nChanged the code use Mark instead of read barrier, this showed an\nexisting lock violation and possible deadlock which was fixed.\nPrevent DCHECK failure from the assert.\n\nBug: 30469265\nTest: test-art-host with CC\n\nChange-Id: I275f953f06f6d13262043fc62eb88dca0356465a\n"
    },
    {
      "commit": "85c4a4b8c9eabfe16e4e49f9b4aa78c1bf4be023",
      "tree": "6da6eb26a1a5683473967f4b11dce6e14e1010d0",
      "parents": [
        "ccee3363e385863de49e1b48a0ab191c94a7b433",
        "a704eda0078989a73cac111ed309aca50d2e289b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 28 18:12:56 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 28 18:12:56 2016 +0000"
      },
      "message": "Merge \"Use try lock to fix class resolution race\""
    },
    {
      "commit": "a704eda0078989a73cac111ed309aca50d2e289b",
      "tree": "07fd076b3ea6f86bfea71e4c6707fd301f108db5",
      "parents": [
        "9755c262df1be7f5d5b98d038c8fd3734e974f9d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 13 09:53:35 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 27 14:37:42 2016 -0700"
      },
      "message": "Use try lock to fix class resolution race\n\nThere was some possible deadlocks related to EnsureResolved caused by\nacquiring an object lock.\n\nScenario:\nThread 1 acquires lock on obj1\nThread 1 begins to resolve / initialize class1\nThread 1 blocks since it sees that class1 is already being resolved and\ngets preempted before it can acquire the object lock on class1\nThread 2 finishes resolving and initializing class1 and locks class1\nThread 2 blocks attempting to lock obj1\nThread 1 blocks attempting to lock class1\nDeadlock\n\nFixed the deadlock by changing EnsureResolved to use a try lock for the\nunresolved case.\n\nAdded a test.\n\nTest: Device boot, test-art-host, monitor_test\n\nBug: 27417671\nChange-Id: Ic6e1c3ca6f45490cf8a7bf8e137dee71ac83ff64\n"
    },
    {
      "commit": "5ffa0780a2738eed1f86efb967ea99badcbd5d9c",
      "tree": "ee3a4bde21aa03ad564c84877b3cbab3048e6cfd",
      "parents": [
        "93afc5f20a23ece78d6d6e506ed75775b8ef2113"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 27 10:45:47 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 27 13:57:01 2016 -0700"
      },
      "message": "Reduce unnecessary read barriers in GC\n\nRemoved read barrier from IsUnprocessed, DequeuePendingReference,\nEnqueueReference, and a few other places.\n\nHard to tell if GC time goes down.\n\nEAAC:\nBefore GC slow path count: 254857\nAfter GC slow path count: 1005\n\nBug: 30162165\nBug: 12687968\n\nTest: test-art-host, volantis boot with CC\n\nChange-Id: Ic2add3a9b1e1d7561b0b167f2218b10f8dbff76c\n"
    },
    {
      "commit": "3023890d949d8278ffc2c9023217a43108c9e3c2",
      "tree": "354254bf902ae6c9e5996133f4be229d0f29b2d1",
      "parents": [
        "659ad8fe6b657488ad7347113228cc5c431cccbb",
        "e01e3644205c3644546889237c20185391a0092e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 25 22:24:42 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 25 22:24:42 2016 +0000"
      },
      "message": "Merge \"ART: Add pointer-size template to some reflection functions\""
    },
    {
      "commit": "e01e3644205c3644546889237c20185391a0092e",
      "tree": "413fcf279b415a305605a601297e3856f13a2948",
      "parents": [
        "de4cf16f467b531373560ca6eb785f0f36606aae"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 25 13:06:04 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 25 13:09:41 2016 -0700"
      },
      "message": "ART: Add pointer-size template to some reflection functions\n\nThe unstarted runtime may run code for a different pointer size,\neven when no transaction is active (e.g., during startup). To\nretain performance when the runtime is up and executing under\nnormal conditions, add a template parameter and use sizeof(void*)\nin places where it is adequate.\n\nFor maintainability, it is necessary to drop the default for\nthe transaction template parameter. Implicit conversions from\nbool to size_t may lead to incorrect code and hard to diagnose\nproblems. So instead ensure that all callers must give all\ntemplate parameter values.\n\nTest: m test-art-host\nChange-Id: I3076883422c8553ede4de5642409c5684a5a9aa8\n"
    },
    {
      "commit": "0f7e8f59698265d416d40844233bb09d02e7fc33",
      "tree": "b701bdd854fe1e0a518c789be32e9c3f01bc9279",
      "parents": [
        "de4cf16f467b531373560ca6eb785f0f36606aae"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 19 11:21:32 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jul 25 10:53:50 2016 -0700"
      },
      "message": "Fix stream-tracing with default methods\n\nTest: Ran mma ART_TEST_TRACE\u003dtrue ART_TEST_TRACE_STREAM\u003dtrue -j40 test-art-host\n\nBug: 30102284\nBug: 30286605\n\nChange-Id: I12f2534bc2d42a7504e6c1972c4cfdda2f77286f\n"
    },
    {
      "commit": "65ad9b3516c4f4bc4e7abf5c6e065a675cf024d8",
      "tree": "7650ae342ce201d498526609d506df7f52783d3a",
      "parents": [
        "a92938a17b75eed3213030faaff9cfb321d47f37",
        "bb268b14da040c5df27a413426aa2baab602ed15"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 21 10:33:13 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 21 10:33:13 2016 +0000"
      },
      "message": "Merge \"Clean up Class::FindStaticField().\""
    },
    {
      "commit": "a62cb9bb6cb2278cb41ab0664191623e178c6a4f",
      "tree": "62263dac644e2d80a34a04f2649e4741a1bed6f4",
      "parents": [
        "bb8d501c9bb882a8927c6ceda07bf9577e06c3e1"
      ],
      "author": {
        "name": "Artem Udovichenko",
        "email": "artem.u@samsung.com",
        "time": "Thu Jun 30 09:18:25 2016 +0000"
      },
      "committer": {
        "name": "Artem Udovichenko",
        "email": "artem.u@samsung.com",
        "time": "Thu Jul 07 10:01:04 2016 +0000"
      },
      "message": "Revert \"Revert \"Optimize IMT\"\"\n\nThis reverts commit 88f288e3564d79d87c0cd8bb831ec5a791ba4861.\n\nChange-Id: I49605d53692cbec1e2622e23ff2893fc51ed4115\n"
    },
    {
      "commit": "bb268b14da040c5df27a413426aa2baab602ed15",
      "tree": "04e2fbfa54bc278170d361f97781b066b4abe46a",
      "parents": [
        "d80c5d2368b4455c452e8b4fe2d8511fe1c0430c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 30 15:52:56 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jul 04 17:44:17 2016 +0100"
      },
      "message": "Clean up Class::FindStaticField().\n\nPreviously we have wrapped the class pointer in a Handle\nfor the GetDirectInterface() call but we didn\u0027t wrap the\nDexCache pointer. Since GetDirectInferface() call from\nthis function cannot cause thread suspension anyway, fix\nthe inconsistency by using raw pointers where possible\nand asserting that no thread suspension takes place.\n\nTest: Run standard ART test suite in gcstress mode.\nChange-Id: Ie4c6101aabd6fa68733e4920db277f835793d943\n"
    },
    {
      "commit": "88f288e3564d79d87c0cd8bb831ec5a791ba4861",
      "tree": "dd051a7b2985d1af3fea91ad6000de4bdc701a19",
      "parents": [
        "e36389f20c83083c0aaba2dcac0888951e55cae1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 29 08:17:52 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 29 08:41:25 2016 +0000"
      },
      "message": "Revert \"Optimize IMT\"\n\nBug: 29188168 (for initial CL)\nBug: 29778499 (reason for revert)\n\nThis reverts commit badee9820fcf5dca5f8c46c3215ae1779ee7736e.\n\nChange-Id: I32b8463122c3521e233c34ca95c96a5078e88848\n"
    },
    {
      "commit": "abf64415cf99a9a7ee048ae26c76f7bbe972a6b9",
      "tree": "10adbf659101ecf973e40ce69fe20949f2aa515e",
      "parents": [
        "4dd9d82d6c1260b3da908a0d1a22b7d209b87496",
        "fb7a0b4e898a88079ddd335b2d864fe04a32766a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 29 08:20:29 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 29 08:20:30 2016 +0000"
      },
      "message": "Merge \"Revert \"Propagate flags to ShouldHaveEmbeddedVTable\"\""
    },
    {
      "commit": "fb7a0b4e898a88079ddd335b2d864fe04a32766a",
      "tree": "e183af7d3312f365a04997a43692c9f8bfcfe647",
      "parents": [
        "efeb9f01308c5c4b723ff905cf5bea1636f7a549"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 29 08:19:04 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 29 08:19:04 2016 +0000"
      },
      "message": "Revert \"Propagate flags to ShouldHaveEmbeddedVTable\"\n\nBug: 29188168 (for initial CL)\nBug: 29778499 (reason for revert)\n\nThis reverts commit efeb9f01308c5c4b723ff905cf5bea1636f7a549.\n\nChange-Id: I21bc32fa07014bbce2eedba3686f09d3d45aec65\n"
    },
    {
      "commit": "bad21cb538d76105712c967b62d1cf677777a956",
      "tree": "49af03501c6149d9e03c1fddbb73afd95fc346af",
      "parents": [
        "79fb0a294c2a98c6456484207368a31a86b8e085",
        "a4fa2e7000a97133f2f0773bc3413e4f0b79318e"
      ],
      "author": {
        "name": "Przemyslaw Szczepaniak",
        "email": "pszczepaniak@google.com",
        "time": "Fri Jun 24 11:16:20 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 24 11:16:20 2016 +0000"
      },
      "message": "Merge \"Track libcore change 694e617f54a7bfbdad24913ce96f5d56f1a1960a\""
    },
    {
      "commit": "a4fa2e7000a97133f2f0773bc3413e4f0b79318e",
      "tree": "f4487e57460331b5c82b229960f24e5b183ecd66",
      "parents": [
        "f6d4f6e0e61977777b7a9ca18b75bcd26e98e9f9"
      ],
      "author": {
        "name": "Przemyslaw Szczepaniak",
        "email": "pszczepaniak@google.com",
        "time": "Wed Jun 22 13:30:36 2016 +0100"
      },
      "committer": {
        "name": "Przemyslaw Szczepaniak",
        "email": "pszczepaniak@google.com",
        "time": "Wed Jun 22 13:30:36 2016 +0100"
      },
      "message": "Track libcore change 694e617f54a7bfbdad24913ce96f5d56f1a1960a\n\nAdded new method to string class, resized the mirror object.\n\nBug: 28666126\nChange-Id: Ibed4e134c16512bde5183e73e130534f08256888\n"
    },
    {
      "commit": "87f3fcbd0db352157fc59148e94647ef21b73bce",
      "tree": "5bdeabb246f5de86704333b3fcbccc6e9146d246",
      "parents": [
        "b94b5706f0b8e2e1c7e1db22274f9f4bae0c4b5a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Apr 28 15:52:11 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jun 21 15:17:38 2016 +0100"
      },
      "message": "Replace String.charAt() with HIR.\n\nReplace String.charAt() with HArrayLength, HBoundsCheck and\nHArrayGet. This allows GVN on the HArrayLength and BCE on\nthe HBoundsCheck as well as using the infrastructure for\nHArrayGet, i.e. better handling of constant indexes than\nthe old intrinsic and using the HArm64IntermediateAddress.\n\nBug: 28330359\nChange-Id: I32bf1da7eeafe82537a60416abf6ac412baa80dc\n"
    },
    {
      "commit": "efeb9f01308c5c4b723ff905cf5bea1636f7a549",
      "tree": "66b6436c16249dd85625e438f131876615bd7496",
      "parents": [
        "edbcf54199cab8557f93ef3d136e4c2f335b915e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jun 15 15:07:03 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jun 15 17:55:27 2016 -0700"
      },
      "message": "Propagate flags to ShouldHaveEmbeddedVTable\n\nPass kVerifyFlags and kReadBarrierrOption to ShouldHaveEmbeddedVTable\nfrom ShouldHaveImt.\n\nBug: 29188168\n\nChange-Id: Ibddd6e744a2f313b4048719987c41f2da04a4e0a\n"
    },
    {
      "commit": "abdda2fb52eb7e9a6916899a913f78251d8ed277",
      "tree": "165a31831ae077827b1e7b973bd5602125b5b142",
      "parents": [
        "2b87a47c09823031c4fe336dcef0867605debfd7",
        "badee9820fcf5dca5f8c46c3215ae1779ee7736e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jun 15 17:44:14 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 15 17:44:14 2016 +0000"
      },
      "message": "Merge \"Optimize IMT\""
    },
    {
      "commit": "badee9820fcf5dca5f8c46c3215ae1779ee7736e",
      "tree": "982948a67a88a1f9a734c935f919f8d307969f48",
      "parents": [
        "614968198625a6693666bdc1e5609e2f663f5638"
      ],
      "author": {
        "name": "Nelli Kim",
        "email": "nelli.kim@samsung.com",
        "time": "Fri May 13 13:08:53 2016 +0300"
      },
      "committer": {
        "name": "Matthew Gharrity",
        "email": "gharrma@google.com",
        "time": "Tue Jun 14 10:05:47 2016 -0700"
      },
      "message": "Optimize IMT\n\n* Remove IMT for classes which do not implement interfaces\n* Remove IMT for array classes\n* Share same IMT\n\nSaved memory (measured on hammerhead):\nboot.art:\nTotal number of classes: 3854\nNumber of affected classes: 1637\nSaved memory: 409kB\n\nChrome (excluding classes in boot.art):\nTotal number of classes: 2409\nNumber of affected classes: 1259\nSaved memory: 314kB\n\nGoogle Maps (excluding classes in boot.art):\nTotal number of classes: 6988\nNumber of affected classes: 2574\nSaved memory: 643kB\n\nPerformance regression on benchmarks/InvokeInterface.java benchmark\n(measured timeCall10Interface)\n1st launch: 9.6%\n2nd launch: 6.8%\n\nChange-Id: If07e45390014a6ee8f3c1c4ca095b43046f0871f\n"
    },
    {
      "commit": "ece5386eeb30aa6be663af2416b68a7ebf9bd42e",
      "tree": "6a951fc8c1a2358591327d107828d7d48ee47ea4",
      "parents": [
        "614968198625a6693666bdc1e5609e2f663f5638",
        "7a62e6728463237684d3d9834d81bd7bba7ab197"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Jun 13 23:11:33 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 13 23:11:33 2016 +0000"
      },
      "message": "Merge \"Propagate the read barrier option to Class::VisitNativeRoots.\""
    },
    {
      "commit": "7a62e6728463237684d3d9834d81bd7bba7ab197",
      "tree": "7f53e92a3303475cb8c164d98274d465bd32ef00",
      "parents": [
        "1e5dda549c11d02aff51f132760dd693e351ce85"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Jun 10 17:22:48 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Jun 13 13:57:34 2016 -0700"
      },
      "message": "Propagate the read barrier option to Class::VisitNativeRoots.\n\nPropagate the read barrier option from Object::VisitReferences to\nClass::VisitNativeRoots.\n\nThis is a step toward the GC thread avoiding graying objects (and\nreducing dirty pages) in the immune spaces.\n\nBug: 12687968\n\nChange-Id: I29c4126a4ad4c40e63a934e62451fb3fb36aad43\n"
    },
    {
      "commit": "206fbf51ccd2dbbcf106e480cc6c5bb96fc7befb",
      "tree": "38c57afab97083c1d805a381c1dfa0764605fec6",
      "parents": [
        "834f4445e70543bfdbcdd6435ccceb7a6dd82c4d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jun 10 16:06:34 2016 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Jun 13 14:14:43 2016 +0100"
      },
      "message": "Remove too aggressive DCHECKs.\n\nA class can move from a state greater or equal than resolved\nto erroneous concurrently to the verifier or the compiler.\n\nbug:29239283\nChange-Id: I89f3fe1c1d9556c6c99b8e005b3ec02de7f01b85\n(cherry picked from commit f7d994622aabcc689f62253a9253e0c67d9e787e)\n"
    },
    {
      "commit": "0950abe82f86a9943feb7719876ec291c6581037",
      "tree": "825692a547fccead5f2c95718904fcab5c8b4876",
      "parents": [
        "09da219c802df3bc362a71582e73fd42e98e7b89"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 25 14:52:37 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 25 14:52:37 2016 +0100"
      },
      "message": "Remove bogus DCHECK.\n\nbug:28771056\nChange-Id: I43a1d99623adc2393d7004927ef1651654ef137c\n"
    },
    {
      "commit": "d0668f2071610b9390779550ba926c81d53bd7a0",
      "tree": "977b5378f803dc9bf6a4ddfb3c97c3b45daf9e6e",
      "parents": [
        "68b6380096581019c5a0067bafb879f4481cf3dd"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Apr 26 18:30:31 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 25 13:11:48 2016 +0100"
      },
      "message": "Put boot class loader classes and strings in dex cache of app images.\n\nThe reason for b/28295348 was that an ArtMethod of the boot image was\nin the app image dex cache, but the declaring class of that\nboot image method was not.\n\nSince objects of boot images don\u0027t need fixups, the comparisons for\nFixupStrings and FixupResolvedTypes was always false for them.\n\nbug:28295348\n\n(cherry picked from commit 1df3b55abea375671b79e3f4e6851be757a2d8a7)\n\nChange-Id: I257b68089878ac9ab9f6fc78f726f9fb322dd884\n"
    },
    {
      "commit": "ab880f4371e1ae5239c1b887911bd88f0c216a3d",
      "tree": "2e13093b2255369257844865db39c56816dfb054",
      "parents": [
        "2273f678ea3a55ec0f6b3b8c29c1e5100d6fc846"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu May 12 16:24:36 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon May 16 15:56:23 2016 +0100"
      },
      "message": "Typos and stylistic fixes.\n\nChange-Id: I1c88af9bd1d2cac6c803c8c61088c569a3847e01\n"
    },
    {
      "commit": "715fdc2c99f688f97c684978632f311a284ba43c",
      "tree": "a45838f4788a04ec18332bf386e8eaf2daa07632",
      "parents": [
        "a584db5460a31198bf621cdacf5bc304a984efa4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 18 17:07:30 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 20 10:20:45 2016 -0700"
      },
      "message": "ART: Add some reflection cutouts\n\nAdd Class.getInnerClassFlags and Method.invoke to unstarted runtime.\n\nAllows to compile-time initialize:\n* android.net.NetworkInfo\n* android.net.wifi.WifiInfo\n\nBug: 27265238\n\n(cherry picked from commit b3ffbe32b78c18739736fc998d65430b46c510e5)\n\nChange-Id: I3e267519acf14b08c687f1e831e2027d37158767\n"
    },
    {
      "commit": "478078a8f9375ec53a3c77c19c0cdb82a9917c88",
      "tree": "f180a6d28f29e59c56f60f791894aa94178e137c",
      "parents": [
        "8fc44d668240d69b31bd5140ae3b67fa948245c3"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Tue Apr 12 22:38:06 2016 +0100"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Fri Apr 15 23:18:41 2016 +0000"
      },
      "message": "Increase vtable size for String class\n\nTracks libcore change 5458546631c65f6d375b6a1780d36d0abb5b95af which\nincreases vtable size for String by four.\n\nBug: 28108421\nChange-Id: I3f7b373ffc08a0f5351f04b5045866ea040f8e6e\n"
    },
    {
      "commit": "5d8fa8bbcb9411015c92d687cb1f3cb785146bf7",
      "tree": "8ca5140a37f955b50806b2567a65454f0eeab5ec",
      "parents": [
        "0108f3d945cd5483217d7bf1df75ab5108d4555c"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Apr 13 14:17:44 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Apr 15 15:26:45 2016 +0100"
      },
      "message": "Track removal of String hash functions.\n\nThe number of virtual methods dropped by one. The change to the\nfield counting merits some explanation, with the change to OpenJDK\nwe got rid of two 16 bit fields and added a 32 bit field (which the\ncompanion change removed), so things continued to work happily.\nThis change brings the number of 16 bit fields down to zero.\n\nAlso fixes 100-reflect2, which iterates over all methods in j.l.String.\n\nbug: 28082128\nChange-Id: If402a372c010b673ef54949e13815b4ae9d3fb99\n"
    },
    {
      "commit": "6039e5662507e42896084e561fa546b432698ee6",
      "tree": "d8a4b6260cc134fcdf7f4a24d89d062dae7f7a61",
      "parents": [
        "dc148d24cc11845036063a2876c9bfef03d00ce5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Apr 05 18:18:43 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 06 13:43:54 2016 -0700"
      },
      "message": "ART: Add getDeclaredConstructor cutout for unstarted runtime\n\nIn the vein of getDeclaredMethod and getDeclaredField. Refactor\ncode from java_lang_Class to share code.\n\nAllows to compile-time initialize:\n* sun.security.x509.AVAKeyword\n* sun.security.x509.X500Name\n\nBug: 27265238\n\n(cherry picked from commit f72f19fac0016499d33fd75b0463d0128a58a9f4)\n\nChange-Id: I075c1b11f3408f5b31e4f84140a24fd8d3eaa17e\n"
    },
    {
      "commit": "b8aa1e4c10dcdc7fef96634f87e259dfee83a1cf",
      "tree": "807e112893a06d0742f5d595493ec5efa5c72a4e",
      "parents": [
        "163388162bde0012dc13a59fb8974723af881e58"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Apr 05 14:36:57 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Apr 06 12:22:42 2016 -0700"
      },
      "message": "Shard classloader classes lock\n\nUsed to guard adding and removing classes.\n\nPreviously we used the class linker classes lock, but this had\na deadlock issue since the reference processor may need to acquire\nthe lock to mark the classes of a class loader. Another thread could\nbe blocked trying to access weak globals while also holding the\nclass linker classes lock.\n\nBug: 27946564\n\n(cherry picked from commit 1609e3a42051769f4a8be3b6731e7bb2f828b3bb)\n\nChange-Id: Ic5cfe573c4e6822d49ad0862ffdd9d036e439a96\n"
    },
    {
      "commit": "a07be75830af60ce50aba357e8de066e849aa21c",
      "tree": "d8420354402492999ad4da594d0a073eab2475c1",
      "parents": [
        "03bea09898e81078e3d116f580e74d5b1911ea39",
        "22deed092ff53e4e11e09dd9bd24a220a566190f"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Apr 04 22:08:30 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 04 22:08:30 2016 +0000"
      },
      "message": "Merge \"Move DCHECK into loop.\""
    },
    {
      "commit": "22deed092ff53e4e11e09dd9bd24a220a566190f",
      "tree": "13354a8868ca70c5e12e032c7a0714de76ae6a03",
      "parents": [
        "7d9a5b0fbceef5806f059060d47533b9e699ec28"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Apr 04 14:19:01 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Apr 04 14:19:01 2016 -0700"
      },
      "message": "Move DCHECK into loop.\n\nRationale:\nSince pointer is non-null on loop entry, moving the check\ninto the while loop (rather than after) gives a more friendly\nerror message in debug mode when something goes wrong.\n\nBUG\u003d27825731\nBUG\u003d27627004\n\nChange-Id: I2ea67b3ab6c4edc6815fea38a436e5c3c194e540\n"
    },
    {
      "commit": "085a072b209ac24ab4cb6b565a1570b485ec2fa3",
      "tree": "4dcbb7c502d72bfb4b29fa0ad4c14f7e6e77d7ab",
      "parents": [
        "7d9a5b0fbceef5806f059060d47533b9e699ec28"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Apr 01 17:33:31 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Apr 04 11:36:13 2016 -0700"
      },
      "message": "Mark array classes as verification attempted\n\nWe now initialize all array classes in the compiler driver. This in\nturn will ensure they are marked verified in the image. This\nprevents dirty pages in the image since we would otherwise set the\nflags in the zygote.\n\nOn BusinessCard:\nReduces shared dirty from 636k -\u003e 432k for boot.art, and dirty pages\nfrom 183 to 132.\n\n(cherry picked from commit 3b674098bef6eaf7d3fb731878293ef715fe1080)\n\nChange-Id: If3093e4e3242e4ee3ea120abe5be7db028290260\n"
    },
    {
      "commit": "85a098af5fc8d2dd0e39d61c9f93fc6257d631c5",
      "tree": "20e81103cbc6043aa99b876fc358b7bab95ce4dc",
      "parents": [
        "19a4784ce1b9c6a0b3d3cdb91a182baa7adbb946"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Mar 31 13:30:53 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Apr 01 09:37:05 2016 -0700"
      },
      "message": "ART: Better support for arraycopy in unstarted runtime\n\nExtend the System.arraycopy() cutout in the unstarted runtime\nto support arrays with differing component types.\n\nAdd tests.\n\nBug: 27805718\nChange-Id: Iaacd95a372e9bfa26e9055a06b0d8f0335b8d6d1\n"
    },
    {
      "commit": "db8e62dca9232634daecb548bd51f3186004535c",
      "tree": "68c6b8efc5a23b5544acae7ef00b6e15b61d7f4a",
      "parents": [
        "085055f933d76579c32586488951a4497ffcf10e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 30 16:30:21 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 30 17:47:15 2016 +0100"
      },
      "message": "Optimizing: Clean up after const-string sharpening.\n\nDo not look up the String for JIT, just check if it\u0027s in the\ndex cache. Strings on hot paths should already be resolved\nand we don\u0027t want to unnecessarily increase JIT compile time\nto have a chance of improving a cold path.\n\nAlso, change the enum LinkerPatchType to be an inner enum\nclass of LinkerPatch and clean up casts between pointers and\nuint64_t.\n\nChange-Id: Ia6e0513af1a84ce94a3b30edac0c592157d374ec\n"
    },
    {
      "commit": "e1e5a864476847a86a816545f8cd7beb1818c133",
      "tree": "e7aa8a5daa5c166a0c39b995a2eab068111c44f4",
      "parents": [
        "162629ee8ac0fee2df0c0cdec27dff34bc6f0062"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 21 17:58:51 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 21 18:01:07 2016 +0000"
      },
      "message": "Remove bogus DCHECK().\n\nBug: 27684368\nChange-Id: Ic3653280b32a471fbfdb5459ea382bc15c86cdbc\n"
    },
    {
      "commit": "5120923295ba161bad1dd459747eb6a6d2b18c7e",
      "tree": "3d3f92b7870f7bd965f734cfe4aeff0553032ceb",
      "parents": [
        "fa3857ee61e193471ad3547e02bafccdc712b556"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Mar 11 16:27:27 2016 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Mar 11 17:01:04 2016 +0000"
      },
      "message": "Typo in comment in art::mirror::Object::IdentityHashCode.\n\nChange-Id: I5380d1c34deda32c668e48ed5f80e96b29f5b0b5\n"
    },
    {
      "commit": "b79eb75ba5671b787ac0622ded2de970f8f0d2c1",
      "tree": "b09c4b3653a691f00e6b46c0e4fda5785b27321d",
      "parents": [
        "ebd5fc6a55f535cfdc1043878dd5366032d72fba"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Mar 07 13:56:33 2016 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Mar 07 13:56:33 2016 -0800"
      },
      "message": "Revert \"ProfilingInfo roots should be visited by the declaring class.\"\n\nThis reverts commit 9a3be989d0aee1a6998e33813c7f70906d27f89a.\n\nSuperceded by CL 206308.\n\nBug: 27435111\n"
    },
    {
      "commit": "ebd5fc6a55f535cfdc1043878dd5366032d72fba",
      "tree": "852b5f691308204320e0509e7bd45a4830218c59",
      "parents": [
        "810ef3768021b5fc7b47e663e037e49c46f8c916"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Mar 07 13:55:31 2016 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Mar 07 13:55:31 2016 -0800"
      },
      "message": "Revert \"Query declaring class before querying IsNative.\"\n\nThis reverts commit 26329cd578efe9cd7e60c46fef1bfb549062a283.\n\nSuperceded by CL 206308.\n\nBug: 27435111\n"
    },
    {
      "commit": "26329cd578efe9cd7e60c46fef1bfb549062a283",
      "tree": "c64d3f457588c917bc86e57fdc3682ca57ab2693",
      "parents": [
        "03f9e6bbdaf3cd6367176afe373ec6aab27b7c46"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 04 16:43:27 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 04 16:43:27 2016 +0000"
      },
      "message": "Query declaring class before querying IsNative.\n\nIsNative checks that the declaring class is not null.\n\nChange-Id: I9b775858cdb685eb633b3d8a8a271a3d451bb8a9\n"
    },
    {
      "commit": "9a3be989d0aee1a6998e33813c7f70906d27f89a",
      "tree": "7609cc5f7604816dede6dedad17b192ddc3355b5",
      "parents": [
        "3d4770c4577107caab23ba40547124c993e21c38"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 03 23:14:49 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 03 23:19:10 2016 +0000"
      },
      "message": "ProfilingInfo roots should be visited by the declaring class.\n\nThere seems to be an implicit assumption that only classes can\nvisit native roots (ie kVisitNativeRoots in Class::VisitReferences).\nHowever, some places like Dbg::VisitRoots and\nAllocRecordObjectMap::VisitRoots visit ArtMethod::VisitRoot\ndirectly, and that breaks the assumptions.\n\nbug:27435111\nChange-Id: I5b476e614ba820394635d946cb562bf872a50e7e\n"
    },
    {
      "commit": "bc4d218ce2ceef0c4f308d4ff42f7ec1ec43c40e",
      "tree": "a583db9be377183508653607a724dcb8742f4ca2",
      "parents": [
        "01c30e8dbc45bdc5d922cef6e5a404be7bed0e8c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Feb 22 10:03:12 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Feb 26 15:43:14 2016 -0800"
      },
      "message": "ART: Add unstarted-runtime functions\n\nAdd more functions to allow compile-time initialization of\ncode.\n\nBug: 27248115\n\n(cherry picked from commit 0866f4ed6338faa4a193b7e819fc7cd72bd7b0ae)\n\nChange-Id: Iaf8d92deb73547ccd31c0d6dde68da3bc14c3985\n"
    },
    {
      "commit": "3612149aee482ab7a17da68b0ef5fef3879729a2",
      "tree": "42180a35266333cbf37163a12185cf8824255a71",
      "parents": [
        "a5502e31cb558c6e257d1dd1889c073a793e3d9d"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Feb 22 13:43:29 2016 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Feb 23 13:24:05 2016 -0800"
      },
      "message": "Make JNI work correctly with default methods.\n\nAlso adds some tests for JNI and DefaultMethods.\n\nBug: 27259142\nBug: 24618811\n\nChange-Id: I31222e3e41059d803be1dbb0f40e1144ac4bf457\n"
    },
    {
      "commit": "6a6a75305dcc3344eb51e342e84f32fce9421522",
      "tree": "28cdf18594dd89e4ac215baeb706171ed1d18843",
      "parents": [
        "70e2d7e52ad1ed3226fdfcd3a2439c837f39c334",
        "5496f69c0a4c2cc357a065f57b7f4ff5d9ad2fa9"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Feb 19 00:17:37 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 19 00:17:37 2016 +0000"
      },
      "message": "Merge \"Disable read barriers in GC VisitReferences calls.\""
    },
    {
      "commit": "5496f69c0a4c2cc357a065f57b7f4ff5d9ad2fa9",
      "tree": "f87b5ff024b8f9124dfcdda3bd4ab32726d66b61",
      "parents": [
        "88f38e9b4e9ba0aca3d6fd4823be3a7226c87f33"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Feb 17 13:29:59 2016 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Feb 18 16:07:54 2016 -0800"
      },
      "message": "Disable read barriers in GC VisitReferences calls.\n\nIt\u0027s safe to disable read barriers in the CC collector\u0027s\nVisitReferences calls. It speeds up the collector by some amount,\neg. Ritzperf EAAC GC time on N5 decreases by ~4.2%.\n\nThis is based on Mathieu Chartier\u0027s idea.\n\nBug: 12687968\n\nChange-Id: I884dee7018f92761fad54269f4cd01db4fa82f2a\n"
    },
    {
      "commit": "e4084a5eb46dc6b99c0e0b74bcdecccaceb28fe7",
      "tree": "d47f5a4ff9faae1736fc065e82d39110b9261e61",
      "parents": [
        "a1f65135cd2315159ac302f904ba0c5ba0d7fd0e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 18 14:43:42 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 18 15:14:30 2016 +0000"
      },
      "message": "Small inlining improvements.\n\n- Use the type_index in the current dex file for classes not\n  defined in the current dex file.\n- Make the loading of the vtable field of a class have no side effects\n  to enable gvn\u0027ing it.\n\nNote that those improvements only affect the JIT, where we don\u0027t have\nchecker support.\n\nChange-Id: I519f52bd8270f2b828f0920a1214da33cf788f41\n"
    },
    {
      "commit": "bd707ab60fa33ec1ba921ee0c7d3b24d70f00a54",
      "tree": "445bb30d2a2dfeede4653d10bbec8017e203cb5b",
      "parents": [
        "a4e981265dd57adbe755e12a814c0f30ae073c2f",
        "8d1da85822f254f102dfec2903ca7aa0064444af"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Feb 04 23:30:13 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 04 23:30:13 2016 +0000"
      },
      "message": "Merge \"runtime: Cleanup comments for kAccSkipAccessChecks\""
    },
    {
      "commit": "8d1da85822f254f102dfec2903ca7aa0064444af",
      "tree": "7fbd3507bbf243f48a2f5cc11f74aa0ca806ecc2",
      "parents": [
        "df707e406877e9c0426dd051c00933ebb331673e"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Feb 04 11:01:21 2016 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Feb 04 11:01:21 2016 -0800"
      },
      "message": "runtime: Cleanup comments for kAccSkipAccessChecks\n\nBug: 22414682\nChange-Id: I5a19cba0fb1d6b55639c173582d547f85bc26779\n"
    },
    {
      "commit": "867d63b65f653d27dc7ea87e924f47148cec22a7",
      "tree": "2038bbb25fe121bdcf3653cc32211c6e2cb88936",
      "parents": [
        "6006e2ce92fd86fdf028cd7b3afe972815b0e0f3",
        "df707e406877e9c0426dd051c00933ebb331673e"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Feb 04 00:34:43 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 04 00:34:43 2016 +0000"
      },
      "message": "Merge \"runtime: Don\u0027t skip verification for -Xverify:soft-fail\""
    },
    {
      "commit": "df707e406877e9c0426dd051c00933ebb331673e",
      "tree": "db9c96c96d373935a83dda2fafbf3c7e1aef3377",
      "parents": [
        "e3d4ff566f9545114bf9ed72421e49eaf9d37953"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Feb 02 16:56:50 2016 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Feb 03 13:39:19 2016 -0800"
      },
      "message": "runtime: Don\u0027t skip verification for -Xverify:soft-fail\n\nWhen forcing the interpreter into access checks mode,\nmake sure that the regular verification is still run,\ngiving the verifier an opportunity to throw a VerifyError.\n\nIf verification would\u0027ve succeeded (without -Xverify:soft-fail flag),\noverride this and soft-fail, to force the interpreter-with-access-checks to be run\ninstead of the normal faster interpreter.\n\nThis fixes the following run-tests under the interpeter-access-checks:\n* 135\n* 412\n* 471\n* 506\n* 800\n\nBug: 22414682\nChange-Id: I5cb86a8bba71c7af9361a63c0802786c852b857b\n"
    },
    {
      "commit": "071b933eb6e937ca6b9efa24e0e3a70a50eca975",
      "tree": "276d412a8c23d8292dfa6108f639e4534a910c28",
      "parents": [
        "c5b76b9328d77b83c80afed14a5b6e7009136e15",
        "df187e4cc8b1b2dc6cb0043eb91d1dfd72cb490b"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Feb 03 20:13:59 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 03 20:13:59 2016 +0000"
      },
      "message": "Merge changes from topic \u0027reflection_1_8\u0027\n\n* changes:\n  Revert \"Revert \"reflection: Add new 1.8 AnnotatedElement methods and tests\"\"\n  interpreter: Fix proxy method invocation with access checks enabled.\n"
    },
    {
      "commit": "12d0e0e3d87a6f73618d6ceeeea8533b06c44643",
      "tree": "0f52d24799e51481549d19eb3bb9bab040425287",
      "parents": [
        "b328291eff12b5a44b026962c17befcf3170c37b",
        "dfe02f6aafee264478d510b9742ee266ea52e8a8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Feb 03 00:08:44 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 03 00:08:44 2016 +0000"
      },
      "message": "Merge \"Fix remaining read barrier issues in image relocation\""
    },
    {
      "commit": "dfe02f6aafee264478d510b9742ee266ea52e8a8",
      "tree": "d56729901410de2b5cea9395c4686b49c38b245d",
      "parents": [
        "85fdcda926fbab0e5a7b3e8b3541f5d225b2bcdb"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 01 20:15:11 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Feb 02 15:43:05 2016 -0800"
      },
      "message": "Fix remaining read barrier issues in image relocation\n\nAdded a way to disallow read barriers, this makes it easy to find\nthe issues.\n\nBug: 26786304\nChange-Id: I7ebb50832686d03e096a979aae9741239371683f\n"
    },
    {
      "commit": "a89d6d630b6fdb591d3dce536f8bca35deae307e",
      "tree": "dbc55a834cbc60e5251884bc0901cd285b536561",
      "parents": [
        "1ef02af31d5936a59ddeb762cb3cf767b599787a",
        "c4695dfdab80c280c98a89c20e027a3804191585"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Feb 02 20:22:47 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 02 20:22:47 2016 +0000"
      },
      "message": "Merge \"Always use pendingNext to test enqueability of references.\""
    },
    {
      "commit": "df187e4cc8b1b2dc6cb0043eb91d1dfd72cb490b",
      "tree": "a2fbb7ec726c57311238eae04a395936b8709cbd",
      "parents": [
        "9f95ba750583735cff1f2921b8014099dd801734"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Feb 01 11:43:26 2016 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Feb 02 10:56:01 2016 -0800"
      },
      "message": "Revert \"Revert \"reflection: Add new 1.8 AnnotatedElement methods and tests\"\"\n\nThis reverts commit 28a2a186537db9fc5a8492e36d9603b48854c04f.\n\nRuntest failure has been fixed in I28c3707e38c1f69ea9d3660f68136f688122ac4e\n\nChange-Id: I1749dc89b790d44b5e40bc8b20aa62885bda792b\n"
    },
    {
      "commit": "10cd5eec804167dd67b4fd1096108f0837e151c6",
      "tree": "6683982758286cf7b1b83aa39bca26fdca47f28e",
      "parents": [
        "ed1d318eccd3d7e9bc7bdbdf6dbb64e1d0bf6dba",
        "28a2a186537db9fc5a8492e36d9603b48854c04f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 29 10:25:28 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 29 10:25:28 2016 +0000"
      },
      "message": "Merge \"Revert \"reflection: Add new 1.8 AnnotatedElement methods and tests\"\""
    },
    {
      "commit": "28a2a186537db9fc5a8492e36d9603b48854c04f",
      "tree": "31fc65e44fac0d24b53c61df322624fe381a75d8",
      "parents": [
        "c167ee9b65f05f7c6f007d587fd1655388edaee9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 29 10:25:01 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 29 10:25:01 2016 +0000"
      },
      "message": "Revert \"reflection: Add new 1.8 AnnotatedElement methods and tests\"\n\nBreaks interpreter access checks:\n\n+Exception in thread \"main\" java.lang.InternalError: java.lang.IllegalAccessError: Method \u0027void java.lang.reflect.Proxy.doNewInstanceCheck()\u0027 is inaccessible to class \u0027$Proxy0\u0027 (declaration of \u0027$Proxy0\u0027 appears in generated class)\n\n\nThis reverts commit c167ee9b65f05f7c6f007d587fd1655388edaee9.\n\nChange-Id: I6c9429cb6f298e89a2da22f7ded0728251321446\n"
    },
    {
      "commit": "c4695dfdab80c280c98a89c20e027a3804191585",
      "tree": "b78f388ac75edd9f02abfcae68aad7d445af75d1",
      "parents": [
        "97f4bc04b61d5cf78b0820dbf18e999b20d7a108"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Jan 15 14:08:05 2016 -0800"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Jan 28 15:34:19 2016 -0800"
      },
      "message": "Always use pendingNext to test enqueability of references.\n\nAlso clean up a misleading comment in a reference queue test.\n\nBug: 24404957\nChange-Id: Ieea4788039ecef73cba1871fb480a439bf65b499\n"
    },
    {
      "commit": "60bc39c8eb0e5d7328bf59a96e9eedfc6f0a4aeb",
      "tree": "ad759876aa1732cced4a026c01c02806b8355ec0",
      "parents": [
        "c43a8fc5640aea17785e47d52fc198d2952f9639"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 27 18:37:48 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 28 11:01:18 2016 -0800"
      },
      "message": "Remove some more read barriers in image relocation\n\nBug: 26786304\nBug: 22858531\nChange-Id: I70dacae7657ebf6dac2b3dad7726eebe5a2b2649\n"
    },
    {
      "commit": "26a04e1e319d47de3e88fae8df53a85013e05f22",
      "tree": "fc4e9de58e880aef5289236eaa8d68633905227e",
      "parents": [
        "1aa9c118107695155cf68f8b2460a49fc9ba066e",
        "522d51b088c63d757e487d07d769f8f09e042f2a"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Jan 28 18:01:12 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 28 18:01:12 2016 +0000"
      },
      "message": "Merge \"Factor out common code for SetPendingNext.\""
    },
    {
      "commit": "9ff1de06d6ed1da36f7e976224a2d13e5e9882bf",
      "tree": "9121c384f3e0375fccfa4ca9f71c7d86baf38904",
      "parents": [
        "bee600ff66e3e233274faa1391890ff424a8244e",
        "a42363f79832a6e14f348514664dc6dc3edf9da2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 28 16:09:16 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 28 16:09:16 2016 +0000"
      },
      "message": "Merge \"Implement first kind of polymorphic inlining.\""
    },
    {
      "commit": "a42363f79832a6e14f348514664dc6dc3edf9da2",
      "tree": "bcd43acdf9903a704b566af00b5c740786284b7b",
      "parents": [
        "9cea9139033a4d04437ebc5542e9466fd67137fe"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 17 14:57:09 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 28 15:55:46 2016 +0000"
      },
      "message": "Implement first kind of polymorphic inlining.\n\nAdd HClassTableGet to fetch an ArtMethod from the vtable or imt,\nand compare it to the only method the profiling saw.\n\nChange-Id: I76afd3689178f10e3be048aa3ac9a97c6f63295d\n"
    },
    {
      "commit": "1bbfab6feed9c03bde3118bd7dab689a3b808dc0",
      "tree": "44242d724fc1ec7f3e0fbd792d10a7da9d84966e",
      "parents": [
        "d329a3b6a77148839171132eb779577fe4b16cdd"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 27 16:37:19 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 27 16:39:19 2016 -0800"
      },
      "message": "Pass template args down\n\nFixes failing DCHECK in dex2oatd\n\n(cherry picked from commit 3df47c1c675e62cf0e5853699149c1181a48b28f)\n\nChange-Id: I96a3b582705e4bffa39ee8e24ec43ff0d7a57ccd\n"
    },
    {
      "commit": "d329a3b6a77148839171132eb779577fe4b16cdd",
      "tree": "24b422aa499e8b95d8b750c4c3b8d3382917c9ca",
      "parents": [
        "78e90155b249588cb800e7f6e5993ebcbd465292"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 27 15:30:10 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 27 16:22:14 2016 -0800"
      },
      "message": "Fix pointer conversion error in SetElementPtrSize\n\nSetElementPtrSize used to cast from pointer to uint64_t which\ncould sign extend with 32 bit dex2oat for 64 bit app image.\nAlso removed C style casts and added more logging.\n\nBug: 22858531\n\n(cherry picked from commit d22886357d4c53f74ca298faa7ad2555794e17e0)\n\nChange-Id: I479124328fbc497cfcae20c43b4b55827e446527\n"
    },
    {
      "commit": "c167ee9b65f05f7c6f007d587fd1655388edaee9",
      "tree": "57e846f6aaad969020972f55a082e3e22884592e",
      "parents": [
        "2aaf58e90c9229610b2a16644e9866b6741ce9ca"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Jan 14 16:05:47 2016 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Jan 27 13:14:10 2016 -0800"
      },
      "message": "reflection: Add new 1.8 AnnotatedElement methods and tests\n\nAlso:\n* Bump the size of the Class vtable size since 3 new virtuals were\nadded to java.lang.Class\n* Refactor Method#isDefault test into a separate file within 048 test.\n\nChange-Id: I8420a4d208bb60874a9cf996766313c7d5058c45\n"
    },
    {
      "commit": "f4b3dbad413023795b92a842aad1c3f2fe4a57e9",
      "tree": "f2d440185d04789f81550db6cbe7e4d7e4e97519",
      "parents": [
        "902838d865eaed9fa4df6414c706e5f6787d02ea"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 26 20:11:06 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 26 20:17:11 2016 -0800"
      },
      "message": "Cast method pointer to uintptr_t before uint64_t\n\nPreviously we were casting a pointer to uint64_t. This sign extends.\nThis change fixes 64 bit app image crashes on angler.\n\nBug: 22858531\nChange-Id: I03e973a0c5a1d74db7e8db0f13f5b1825d8d8ab5\n"
    },
    {
      "commit": "76172164667d565c1d3316935a24b0d9712bb2f6",
      "tree": "ce6e40574623d297a13cfe92ade6cea31b27ebbc",
      "parents": [
        "227e627c513ced3c6b515b6e5836c6e832c0eeaa"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 26 14:54:06 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 26 17:19:37 2016 -0800"
      },
      "message": "Convert to UTF8 before doing dex file location comparison\n\nNeed to have strings in the same format or else the lengths\nmight not match due to UTF8 conversion.\n\nAdded regression test.\n\nBug: 26799552\n\n(cherry picked from commit 3776db4e51ab61a6e535772417c2adf95920b569)\n\nChange-Id: Ifbc8c38418c9da307a0ff4446d18cea4fb5e71bc\n"
    },
    {
      "commit": "522d51b088c63d757e487d07d769f8f09e042f2a",
      "tree": "f1b5a1646ef0fa68f7b51e68caaf1f82624099e2",
      "parents": [
        "c31fb58453ec1eba82390c3313623d37314c5490"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Jan 22 14:18:57 2016 -0800"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Jan 26 15:19:36 2016 -0800"
      },
      "message": "Factor out common code for SetPendingNext.\n\nChange-Id: I6c1f9cd6da7b2c21714175455e61479273d3669f\n"
    },
    {
      "commit": "fbc31087932a65e036a153afab3049dc5298656a",
      "tree": "c728b9039a71db3be9cae888ad5e1afc31f34a13",
      "parents": [
        "c7f4e3a5aeaa23342b4e03b0d751f60ac5c5815c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Jan 24 11:59:56 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jan 25 14:22:15 2016 -0800"
      },
      "message": "Revert \"Revert \"Load app images\"\"\n\nThis reverts commit 1bc977cf2f8199311a97f2ba9431a184540e3e9c.\n\nBug: 22858531\n\nChange-Id: Ide00bf3a73a02cba3bb364177204ad1b13f70295\n"
    },
    {
      "commit": "1bc977cf2f8199311a97f2ba9431a184540e3e9c",
      "tree": "580a02752d8e447f6dce7cce01386c7e2a9a87f4",
      "parents": [
        "f7fd970244f143b1abb956e29794c446e4d57f46"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Jan 23 14:15:49 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Jan 23 14:15:49 2016 +0000"
      },
      "message": "Revert \"Load app images\"\n\nFails when a method is duplicated (see test 097-duplicate-method)\n\nBug: 22858531\n\nThis reverts commit f7fd970244f143b1abb956e29794c446e4d57f46.\n\nChange-Id: Ib30ae5be00cc568e799290be6b3c8f29cbbe4c20\n"
    },
    {
      "commit": "f7fd970244f143b1abb956e29794c446e4d57f46",
      "tree": "aac1f57ac70747957f609bb46305dfeca87645a1",
      "parents": [
        "95005291d8ebdd1d2ac58ffc5181fef4fbbf2383"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 09 11:16:49 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jan 22 15:01:55 2016 -0800"
      },
      "message": "Load app images\n\nSupport in-place patching of the app image based on boot image\nlocation and app oat location. Only loads for art run test so far\nsince we do not automatically generate app images for app installs.\n\nN5 maps launch time (~200 runs):\nBefore: 930ms\nAfter: 878.18ms\nAfter + image class table: 864.57ms\n\nTODO:\nOatdump support.\nStore class loaders as class roots in image.\n\nBug: 22858531\n\nChange-Id: I9cbc645645e62ea2ed1ad8e139e91af7d88514c1\n"
    },
    {
      "commit": "9b3607dc2076d6a6eb2fbe8c45f82b8b02475423",
      "tree": "fdcd724a816a4edacd44ccc41322424c4bd32af5",
      "parents": [
        "e8df33e879f37de56c05a54812bf8bf8a08ecb9c"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Jan 14 18:15:54 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jan 22 15:03:14 2016 +0000"
      },
      "message": "Generate unique ID for each type during native debugging.\n\nThis allows the native debugger to find dynamic types of variables.\n\nChange-Id: I901022b7db7d3c1db9f4b678ebafcb4eefed4ba7\n"
    },
    {
      "commit": "7b4199a5fa9f151fbf3af2a34f26d04215a1016c",
      "tree": "111493b5fee26087dcc8abc1a1f56a140d549c8d",
      "parents": [
        "15db4dcfcc17dfe6c41d3c7b26355ccfa2504f4e",
        "705ad49f353d3f90d8b63625aca2c2035bacdbef"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jan 14 18:43:36 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 14 18:43:36 2016 +0000"
      },
      "message": "Merge \"Support directly invoking interface default methods\""
    }
  ],
  "next": "705ad49f353d3f90d8b63625aca2c2035bacdbef"
}
