)]}'
{
  "log": [
    {
      "commit": "ebe167422f6197b9df0698bbeb944a0e4eea5f2d",
      "tree": "60bb0084030cadfed694261c36c5722f4f945869",
      "parents": [
        "2a5c5160771ad528bc9b3ac36ac5785a184c956d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 05 09:55:42 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 05 09:55:42 2016 +0100"
      },
      "message": "Properly scope HLoopOptimization\u0027s allocator.\n\nHOptimization classes do not get their destructor called,\nas they are arena objects. So the scope for the optimization\nallocator needs to be the Run method.\n\nAlso anticipate bisection search breakage by adding\nHLoopOptimization to the list of recognized optimizations.\n\nChange-Id: I7770989c39d5700a3b6b0a20af5d4b874dfde111\n"
    },
    {
      "commit": "2a5c5160771ad528bc9b3ac36ac5785a184c956d",
      "tree": "339f4a8a4baf75720bedf6756a514d8a69652d32",
      "parents": [
        "3601e4a5c52fcf6197fe57498a28d66f3fac076c",
        "e919b074dbbc5feea4e68d9ee0bbd1a3e248c738"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 05 03:55:28 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 05 03:55:29 2016 +0000"
      },
      "message": "Merge \"MIPS32: Fix GenerateVirtualCall in the presence of intrinsics\""
    },
    {
      "commit": "b3ef69168ffa71cb101e0bd418e70c5816881db6",
      "tree": "8531ef73e7495c073d5780d8999952609f9e404c",
      "parents": [
        "556c9a2f182c4fcb9eba9dc4937095665f314a2b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 04 17:48:45 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 04 17:49:49 2016 -0700"
      },
      "message": "Fix build break from merge conflict\n\nBug: 31113334\n\nTest: mm -j32\n\nChange-Id: I5643a0ec22cf03a54671a5c7fa0ebda41cc9a8c3\n"
    },
    {
      "commit": "556c9a2f182c4fcb9eba9dc4937095665f314a2b",
      "tree": "ffe6d3711b565330fb883953144ddd7603356804",
      "parents": [
        "e793bbb4a8a832423e7d6150b6a8fad75d63d36e",
        "1cc62e4ea24828fdb3f3da0b8603f0b107d09a04"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 05 00:39:07 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 05 00:39:08 2016 +0000"
      },
      "message": "Merge \"Rename ObjPtr::Decode to ObjPtr::Ptr\""
    },
    {
      "commit": "5d9c6d6f654a3803269cee0c637c3385704bff93",
      "tree": "a675561b30bc77b910b99c66e9d469e00bc8ba58",
      "parents": [
        "091f6754c353f5825129deff74d860caf28f78de"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 04 22:56:35 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 04 22:56:35 2016 +0100"
      },
      "message": "Fix build breakage.\n\nRevert did not apply cleanly.\n\ntest: make test-art-host\nChange-Id: Id94d377d19dc80237951ad40fd5e01f8fec67a47\n"
    },
    {
      "commit": "091f6754c353f5825129deff74d860caf28f78de",
      "tree": "bc259b45bc292523e7a486569ac696e33204c10b",
      "parents": [
        "26705cca4643385931f3b3568b6b82525400b52b",
        "38f250fd3cb36fac27bad7cac8eefacdf8a6e41e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 04 21:45:24 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 04 21:45:24 2016 +0000"
      },
      "message": "Merge \"Revert \"Remove dead code from compiler driver.\"\""
    },
    {
      "commit": "38f250fd3cb36fac27bad7cac8eefacdf8a6e41e",
      "tree": "6a3a28dd28ceebdef5edb0bacdb8c4aad2c03a40",
      "parents": [
        "44b3da25191052acc18528d8ade9cf3038505180"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 04 21:44:45 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 04 21:44:45 2016 +0000"
      },
      "message": "Revert \"Remove dead code from compiler driver.\"\n\nThis reverts commit 44b3da25191052acc18528d8ade9cf3038505180.\n\nChange-Id: I0cf049ed967bcaf8dfd89fc88288d992c63a4939\n"
    },
    {
      "commit": "26705cca4643385931f3b3568b6b82525400b52b",
      "tree": "433a9e1189ffccc70291e08b51ecec36a59cfc87",
      "parents": [
        "d74bd3a9a48d34d7321f7de7a6f8e1d3467be58a",
        "281c681a0852c10f5ca99b351650b244e878aea3"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Oct 04 20:40:23 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 04 20:40:24 2016 +0000"
      },
      "message": "Merge \"A first implementation of a loop optimization framework.\""
    },
    {
      "commit": "1cc62e4ea24828fdb3f3da0b8603f0b107d09a04",
      "tree": "718e322f3d05ac095770d4dc2a68b824bf3974a7",
      "parents": [
        "82d4838d6bb3480cd25327cedc5179fb2d86881c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 03 18:01:28 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 04 10:46:16 2016 -0700"
      },
      "message": "Rename ObjPtr::Decode to ObjPtr::Ptr\n\nDone to prevent ambiguity with ScopedObjectAccess::Decode.\n\nBug: 31113334\n\nTest: test-art-host\nChange-Id: I07a2497cc9cf66386311798933547471987fc316\n"
    },
    {
      "commit": "aad75c6d5bfab2dc8e30fc99fafe8cd2dc8b74d8",
      "tree": "c1b9e1eabcf35c5cbb5b4f46313a4e062f2d5d51",
      "parents": [
        "82d4838d6bb3480cd25327cedc5179fb2d86881c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 03 08:46:48 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 04 17:51:46 2016 +0100"
      },
      "message": "Revert \"Revert \"Store resolved Strings for AOT code in .bss.\"\"\n\nFixed oat_test to keep dex files alive. Fixed mips build.\nRewritten the .bss GC root visiting and added write barrier\nto the artResolveStringFromCode().\n\nTest: build aosp_mips-eng\nTest: m ART_DEFAULT_GC_TYPE\u003dSS test-art-target-host-gtest-oat_test\nTest: Run ART test suite on host and Nexus 9.\nBug: 20323084\nBug: 30627598\n\nThis reverts commit 5f926055cb88089d8ca27243f35a9dfd89d981f0.\n\nChange-Id: I07fa2278d82b8eb64964c9a4b66cb93726ccda6b\n"
    },
    {
      "commit": "44b3da25191052acc18528d8ade9cf3038505180",
      "tree": "c79e234a4302a865ce6af3bdff73588d2ef286db",
      "parents": [
        "148768f51e01523f0cc2554eb5b2293945106a38"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Oct 03 15:09:25 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 04 13:28:15 2016 +0100"
      },
      "message": "Remove dead code from compiler driver.\n\ntest: m test-art-host\nChange-Id: Ie4b6a4c371fff6c9c213d8d6604eb09a5e71d595\n"
    },
    {
      "commit": "e919b074dbbc5feea4e68d9ee0bbd1a3e248c738",
      "tree": "f5eacb1d1dfa59c4b734ff297441e6aa8a4e9a18",
      "parents": [
        "f12831352ce7a697a7efed9ccecaf664acefe7af"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Tue Oct 04 10:17:34 2016 +0200"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Tue Oct 04 12:28:51 2016 +0200"
      },
      "message": "MIPS32: Fix GenerateVirtualCall in the presence of intrinsics\n\nFix GenerateVirtualCall like it is done in the\nI0ed88a48b313a8d28bc39fae40631123aadb13ef for all other architectures.\n\nTest: mma -j2 test-art-target-run-test-optimizing on CI20\nChange-Id: Ie55c62701b20c4f40badc95563b2aef9e83807de\n"
    },
    {
      "commit": "281c681a0852c10f5ca99b351650b244e878aea3",
      "tree": "33036cbfb76ee497eedf60e0e5785a2267c9dd02",
      "parents": [
        "a845d07bbd57f8beaea8b4fb47192a3382ef25b2"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Aug 26 11:31:48 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Oct 03 15:15:27 2016 -0700"
      },
      "message": "A first implementation of a loop optimization framework.\n\nRationale:\nWe are planning to add more and more loop related optimizations\nand this framework provides the basis to do so. For starters,\nthe framework optimizes dead induction, induction that can be\nreplaced with a simpler closed-form, and eliminates dead loops\ncompletely (either pre-existing or as a result of induction\nremoval).\n\nSpeedup on e.g. Benchpress Loop is 73x (17.5us. -\u003e 0.24us.)\n[with the potential for more exploiting outer loop too]\n\nTest: 618-checker-induction et al.\n\nChange-Id: If80a809acf943539bf6726b0030dcabd50c9babc\n"
    },
    {
      "commit": "3398c7874e002beaa6c2b2fadf183e7d1ddad23a",
      "tree": "7db754b5b0c3a6c68bc1f91d7cb2477f534d2ad3",
      "parents": [
        "462e21cc8d28a4d48342cf0f634bd1ecc63647d7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 30 10:27:43 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 03 14:06:27 2016 -0700"
      },
      "message": "Move ArtField to ObjPtr\n\nAdded EXPECT_OBJ_PTR_EQ and variants to gtests.\n\nFixed moving GC bugs in:\nClassLinker::CreatePathClassLoader\nClassLinkerTest: StaticFields\n\nObjPtr Decode call sites: 186 -\u003e 181.\n\nSome tests fail due to ResolvedFieldAccessTest, will fix in follow\nup CL.\n\nBug: 31113334\n\nTest: test-art-host CC baker\n\nChange-Id: I8b266ad00f3c20c8cbe7cfdf280d175083df0b88\n"
    },
    {
      "commit": "e89e1b5fa28c38e4bcb508ef2fff5e1ab6572df9",
      "tree": "a09441ed36a407ab0d5d552fdff531f94462df17",
      "parents": [
        "f2ebe98e32603a52d5e0b927d8a8171e47bac3cf",
        "0576575d075e97a227010b4adf74ad5c8a920bde"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Sep 30 22:52:13 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 30 22:52:13 2016 +0000"
      },
      "message": "Merge \"String Compression for ARM and ARM64\""
    },
    {
      "commit": "f2ebe98e32603a52d5e0b927d8a8171e47bac3cf",
      "tree": "6299d747f758840c0270ceb00f103ecdd03725f5",
      "parents": [
        "6fa67a0261ba920614b3b262b2fa6173a885e6ef",
        "4877b7986c9ba5c69be8f80692c260b4952f69be"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Sep 30 22:44:45 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 30 22:44:45 2016 +0000"
      },
      "message": "Merge \"String compression on intrinsics x86 and x86_64\""
    },
    {
      "commit": "0576575d075e97a227010b4adf74ad5c8a920bde",
      "tree": "c31eb030933e74d6d103979bcf0d1226e769eb5b",
      "parents": [
        "9e5739aaa690a8529c104f4c05035a657616c310"
      ],
      "author": {
        "name": "jessicahandojo",
        "email": "jessicahandojo@google.com",
        "time": "Fri Sep 09 19:01:32 2016 -0700"
      },
      "committer": {
        "name": "jessicahandojo",
        "email": "jessicahandojo@google.com",
        "time": "Fri Sep 30 10:51:50 2016 -0700"
      },
      "message": "String Compression for ARM and ARM64\n\nChanges on intrinsics and Code Generation on ARM and ARM64\nfor string compression feature. Currently the feature is off.\n\nThe size of boot.oat and boot.art for ARM before and after the\nchanges (feature OFF) are still. When the feature ON,\nboot.oat increased by 0.60% and boot.art decreased by 9.38%.\n\nMeanwhile for ARM64, size of boot.oat and boot.art before and\nafter changes (feature OFF) are still. When the feature ON,\nboot.oat increased by 0.48% and boot.art decreased by 6.58%.\n\nTurn feature on: runtime/mirror/string.h (kUseStringCompression \u003d true)\nruntime/asm_support.h (STRING_COMPRESSION_FEATURE 1)\n\nTest: m -j31 test-art-target\nAll tests passed both when the mirror::kUseStringCompression\nis ON and OFF.\n\nBug: 31040547\nChange-Id: I24e86b99391df33ba27df747779b648c5a820649\n"
    },
    {
      "commit": "4877b7986c9ba5c69be8f80692c260b4952f69be",
      "tree": "96b7076efea6d0d95322382a76b4759ff92ed8d5",
      "parents": [
        "d1224dce59eb0019507e41da5e10f12dda66bee4"
      ],
      "author": {
        "name": "jessicahandojo",
        "email": "jessicahandojo@google.com",
        "time": "Thu Sep 08 19:49:13 2016 -0700"
      },
      "committer": {
        "name": "Jessica Handojo",
        "email": "jessicahandojo@google.com",
        "time": "Fri Sep 30 17:10:48 2016 +0000"
      },
      "message": "String compression on intrinsics x86 and x86_64\n\nChanges on intrinsics and Code Generation (x86 and x86_64)\nfor string compression feature. Currently the feature is off.\n\nThe size of boot.oat and boot.art for x86 before and after the\nchanges (feature OFF) are still. When the feature ON,\nboot.oat increased by 0.83% and boot.art decreased by 19.32%.\n\nMeanwhile for x86_64, size of boot.oat and boot.art before and\nafter changes (feature OFF) are still. When the feature ON,\nboot.oat increased by 0.87% and boot.art decreased by 6.59%.\n\nTurn feature on: runtime/mirror/string.h (kUseStringCompression \u003d true)\nruntime/asm_support.h (STRING_COMPRESSION_FEATURE 1)\n\nTest: m -j31 test-art-host\nAll tests passed both when the mirror::kUseStringCompression\nis ON and OFF.\n\nThe jni_internal_test changed to assert an empty string length\nto be equal -(1 \u003c\u003c 31) as it is compressed.\n\nBug: 31040547\nChange-Id: Ia447c9b147cabb6a69e6ded86be1fe0c46d9638d\n"
    },
    {
      "commit": "5f926055cb88089d8ca27243f35a9dfd89d981f0",
      "tree": "8d87d400e36301eb648e19bcd225f13c469648ad",
      "parents": [
        "9e5739aaa690a8529c104f4c05035a657616c310"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 30 17:04:49 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 30 18:08:09 2016 +0100"
      },
      "message": "Revert \"Store resolved Strings for AOT code in .bss.\"\n\nThere are some issues with oat_test64 on host and aosp_mips-eng.\n\nAlso reverts \"compiler_driver: Fix build.\"\n\nBug: 20323084\nBug: 30627598\n\nThis reverts commit 63dccbbefef3014c99c22748d18befcc7bcb3b41.\nThis reverts commit 04a44135ace10123f059373691594ae0f270a8a4.\n\nChange-Id: I568ba3e58cf103987fdd63c8a21521010a9f27c4\n"
    },
    {
      "commit": "04a44135ace10123f059373691594ae0f270a8a4",
      "tree": "ecb5f2e4cd1bf29ad07d62a147619f49234de293",
      "parents": [
        "428792553e59452d0b6fdbf2460072d697c966db"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Sep 30 15:24:19 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Sep 30 15:24:19 2016 +0100"
      },
      "message": "compiler_driver: Fix build.\n\nTest: make-art-host\nChange-Id: I94e164ed245caea60fe26872a943ea5e14aa8860\n"
    },
    {
      "commit": "428792553e59452d0b6fdbf2460072d697c966db",
      "tree": "c4d3c14944e772cd98f2fd76e4f41c2fbc3f6acf",
      "parents": [
        "ce157a6864bd346152bef1b66d050cfb144f56b5",
        "63dccbbefef3014c99c22748d18befcc7bcb3b41"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 30 14:10:21 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 30 14:10:21 2016 +0000"
      },
      "message": "Merge \"Store resolved Strings for AOT code in .bss.\""
    },
    {
      "commit": "762869dee6e0eadab5be1c606792d6693bbabf4e",
      "tree": "8c986c621e8a5f3cf4e4e3b2cc13b400401ad89b",
      "parents": [
        "b4cf427734c6839b46d0d6037e3189a5e8aa1bdb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 15 15:28:35 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 30 10:44:31 2016 +0100"
      },
      "message": "Simplify our intrinsic recognizer.\n\n- Use the modifiers for storing the intrinsic kind.\n- Delete dex_file_method_inliner and its associated map.\n\nThis work was also motivated by the fact that the inline\nmethod analyzer leaks intrinsic tables, and even worse, might re-use\na table from one dex file to another unrelated dex file in the presence\nof class unloading and the unlikely event of the dex files getting\nthe same address.\n\ntest: m test-art-host m test-art-target\n\nChange-Id: Ia653d2c72df13889dc85dd8c84997582c034ea4b\n"
    },
    {
      "commit": "0795f23920ee9aabf28e45c63cd592dcccf00216",
      "tree": "ff3f880c5e84f3316532b47d0e9a7729ade848ac",
      "parents": [
        "d1224dce59eb0019507e41da5e10f12dda66bee4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 27 18:43:30 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 29 17:31:09 2016 -0700"
      },
      "message": "Clean up ScopedThreadStateChange to use ObjPtr\n\nAlso fixed inclusion of -inl.h files in .h files by adding\nscoped_object_access-inl.h and scoped_fast_natvie_object_access-inl.h\n\nChanged AddLocalReference / Decode to use ObjPtr.\n\nChanged libartbenchmark to be debug to avoid linkage errors.\n\nBug: 31113334\n\nTest: test-art-host\n\nChange-Id: I4d2e160483a29d21e1e0e440585ed328b9811483\n"
    },
    {
      "commit": "63dccbbefef3014c99c22748d18befcc7bcb3b41",
      "tree": "60a498041bebff43bc1f43d438e3bc34a30887f7",
      "parents": [
        "6bee25976782a063d6b44f7718a6302761bf6403"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 21 13:51:10 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 29 15:58:43 2016 +0100"
      },
      "message": "Store resolved Strings for AOT code in .bss.\n\nAnd do some related refactorings.\n\nBug: 20323084\nBug: 30627598\nTest: Run ART test suite including gcstress on host and Nexus 9.\nTest: Run ART test suite including gcstress with baker CC on host and Nexus 9.\nTest: Build aosp_mips64-eng.\nChange-Id: I1b12c1570fee8e5da490b47f231050142afcbd1e\n"
    },
    {
      "commit": "73dac6e3668e91ddd3123a8c5ddb08c76b178fca",
      "tree": "9292241a268315899d6fa72f3391c5df5eef8f20",
      "parents": [
        "0ba1ba25784dfd59af601c3bb049c36c1e7820a4",
        "294a9152688dfdf28cbb4c1d9b73d1605a7084d2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 28 23:15:04 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 28 23:15:05 2016 +0000"
      },
      "message": "Merge \"jni: test CriticalNative with generic jni\""
    },
    {
      "commit": "294a9152688dfdf28cbb4c1d9b73d1605a7084d2",
      "tree": "5dfc670296ca84b06fcf555d7face43be7b0a8fc",
      "parents": [
        "9aa9fa243198fc1f48eb7ae5e3f363b71915c36f"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Sep 28 13:23:19 2016 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Sep 28 20:26:55 2016 +0000"
      },
      "message": "jni: test CriticalNative with generic jni\n\nPreviously this combination was uncovered due to a missing\nline in the macro definition.\n\nBug: 31400248\nTest: make test-art-host\nChange-Id: I5407f46f2394edc028c9b74dc783899a3a2f6588\n"
    },
    {
      "commit": "75a7db67f0e56bc0ccc63df4a6a1bb04ab3e86b1",
      "tree": "2d426df6f2807606811c45ae22597e2098dd8a2f",
      "parents": [
        "fd8339e58e3c09097165feeed7a2d70482d40130"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 26 12:04:26 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 28 09:00:08 2016 -0700"
      },
      "message": "ART: Factor out IMT from ArtMethod\n\nMove IMT Conflict Table to its own file. Move IMT index computation to\nImTable.\n\nIn preparation for code using this independent of specific ArtMethods.\n\nBug: 31594153\nTest: m test-art-host\nChange-Id: Ifd6e304bb86724c5284984c4655c43d3af357f84\n"
    },
    {
      "commit": "adc4e8297c9659125ae2a3d1a4b089312c2e2dd8",
      "tree": "7b28b33461294ec46df64af8bdd7a648c4f5de0d",
      "parents": [
        "fc916a6c9a2c0d3b63005cf7ae26cbf08bd89c7d",
        "da079bba8403733cac9bb7415b038ffd77e62403"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 27 09:31:33 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 27 09:31:33 2016 +0000"
      },
      "message": "Merge \"Cleanup String.\u003cinit\u003e handling.\""
    },
    {
      "commit": "da079bba8403733cac9bb7415b038ffd77e62403",
      "tree": "3bfed6ea39483bda20c0059763c30aee2e6e5791",
      "parents": [
        "a1d66b9050aeecd7e698c51155f0dbc0198a6822"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 26 17:56:07 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 27 10:30:34 2016 +0100"
      },
      "message": "Cleanup String.\u003cinit\u003e handling.\n\nMove everything to one place (currently well_known_classes.cc, but\nno strong preference) and define a macro to easily handle the list\nof affected methods.\n\ntest: m test-art-host\ntest: m test-art-target\nChange-Id: Ib8372d130d5458516a1f1ae31014afc76037fc34\n"
    },
    {
      "commit": "525a58b2e4aaf1e9d34dbd21de0f9310670c0ff7",
      "tree": "3c7423d31ab3ef7946ba545e2f5809c40de53423",
      "parents": [
        "fdaa803ba323375fbbbddabb76acad0c09863987"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 26 18:09:47 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 26 18:09:47 2016 -0700"
      },
      "message": "ART: Fix dependencies\n\nAdd libbase to libart-compiler.\n\nBug: 31338270\nTest: m test-art-host\nChange-Id: I6398baaaee15063f4c275f40109d943c04af066f\n"
    },
    {
      "commit": "20426c34032286e28eb887a4ed7b471d850018a4",
      "tree": "ebf28aefbd1e766d005c01e3a07782d00cd365e3",
      "parents": [
        "a4850b0fa18c8b92dd5c20c166856cfe87aec72f",
        "9aa9fa243198fc1f48eb7ae5e3f363b71915c36f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Sep 26 19:53:37 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 26 19:53:38 2016 +0000"
      },
      "message": "Merge \"jni: Punt to generic JNI for mips\""
    },
    {
      "commit": "3fec9ac0d5af1358d216eb2fdc2000ec0205f3f0",
      "tree": "f38d8d8aae51f53e7ee6b474f47597b784fc2316",
      "parents": [
        "0cfe19af3b7395658210ea6044a65c9811962a7a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 13 10:47:28 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 26 10:59:22 2016 -0700"
      },
      "message": "ART: Use libbase logging\n\nMove most of our logging infrastructure over to system/core/base.\nRetain VLOG.\n\nUsing unified Android infrastructure has two main advantages. First,\nit reduces the complexity/maintenance burden in ART. Second, it\nallows to detach logging for the cases where we do not want or need\na runtime, e.g., dexdump, the disassembler, etc. As a part of the\nlatter, libbase is also supported for all hosts (including Windows).\n\nFrom a developer viewpoint, there are minor behavior changes for the\nLOG statements (see above), but otherwise usage is the same. Explicit\nseverity enum items are in the android::base namespace now.\n\nBug: 31338270\nTest: m test-art-host\nChange-Id: I5abcb2f45f5b03d49951874c48544f72a283a91b\n"
    },
    {
      "commit": "9aa9fa243198fc1f48eb7ae5e3f363b71915c36f",
      "tree": "23627222cdea1d3c213aa910e658773d06cb8bf5",
      "parents": [
        "06a04e0e776875303577c2d871b53a53c78da1b5"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Sep 26 10:10:17 2016 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Sep 26 10:48:40 2016 -0700"
      },
      "message": "jni: Punt to generic JNI for mips\n\nPreopting dex the bootclasspath causes dex2oat to crash for MIPS builds.\nDisable JNI compiler for MIPS until it supports @CriticalNative.\n\nTest: lunch aosp_mips-eng \u0026\u0026 make \u0026\u0026 make test-art-host\nBug: 31743474\nChange-Id: I802f1e61863c4bb54a1bd884a4c9ce9a75bab62b\n"
    },
    {
      "commit": "3cc69a894444ccd2450b100ae41fd2a932a38749",
      "tree": "d8bdddc6eed689d3eff138d3720211a0b541e18a",
      "parents": [
        "a1d66b9050aeecd7e698c51155f0dbc0198a6822",
        "50a9ed014e3b4dec67246ea07727d7bec89bfb17"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Sep 26 12:39:16 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 26 12:39:16 2016 +0000"
      },
      "message": "Merge \"Compensate in compiler for verifier shortcomings.\""
    },
    {
      "commit": "50a9ed014e3b4dec67246ea07727d7bec89bfb17",
      "tree": "1fcbf2173f8b7409c2feb94a372f9e8390c8bad7",
      "parents": [
        "cbb651fdf2c88052a4c556c96adac729176b61ea"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 23 15:40:41 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 26 11:49:24 2016 +0100"
      },
      "message": "Compensate in compiler for verifier shortcomings.\n\nThe verifier does not differentiate zero and null, so a move-object\nof zero can be used as a non-object later on.\n\nChange the compiler to ignore the object conversion when the input\nis zero or a phi (which might just hold zeros). The type propagation\nwill then do proper inferencing of the types.\n\nAlso remove some stalled comments in ssa_builder.cc.\n\nbug:31313170\ntest: dex2oat b31313170.apk\ntest: run-test 800\ntest: m test-art-host-run-test\nChange-Id: I579d667415a7decf8ff2c2238dae4c13eec5d0e0\n"
    },
    {
      "commit": "496577fb4d6d7baea9c093d35d17e208c831bbca",
      "tree": "1da9976883a8fea0dc05a58ec9bbd347b010fc19",
      "parents": [
        "304533ed8475e9438e6ca7ef5fa644fd5dab5e97"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 20 15:33:31 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 23 15:27:26 2016 -0700"
      },
      "message": "Smarter image layout\n\nPut strings in the dex file that resolves them.\n\nDepth first traversal with overrides for class and dex cache. The\nwork list keeps track of what oat_index with each pushed item. This\nmeans the static fields of a class will usually be in the same image.\n\nAdded layout test to image_test to make sure things are somewhat\nreasonably attributed.\n\nBug: 28640955\n\nTest: test-art-host\n\n(cherry picked from commit 4e9c4e746617bad6a012d799d2f5cf9e01d24ea2)\n\nChange-Id: I67a536c33aeed603b252d8e0f75622c9efbf2559\n"
    },
    {
      "commit": "b47d9c5e216be6c0c553edaa5b137f29905d605d",
      "tree": "34a0540ed80bed24630eaa3aded79bbe8649c74c",
      "parents": [
        "cbb651fdf2c88052a4c556c96adac729176b61ea"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 23 12:37:48 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 23 12:37:48 2016 +0100"
      },
      "message": "Fix mips build after sharpening change.\n\ntest: m build-art-target\nChange-Id: Ie1866a944be351878c7f860c640923bc0029f697\n"
    },
    {
      "commit": "5e4e11e171f90d9a3ea178fc8e72aac909de55d5",
      "tree": "53314d1139ac797d55258f39097ecfb5cef45920",
      "parents": [
        "ca8bad9136d1389deeebc8652fb17063388de6b2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 22 13:17:41 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 23 09:08:00 2016 +0100"
      },
      "message": "Clean-up sharpening and compiler driver.\n\nRemove dependency on compiler driver for sharpening\nand dex2dex (the methods called on the compiler driver were\ndoing unnecessary work), and remove the now unused methods\nin compiler driver.\n\nAlso remove test that is now invalid, as sharpening always\nsucceeds.\n\ntest: m test-art-host m test-art-target\nChange-Id: I54e91c6839bd5b0b86182f2f43ba5d2c112ef908\n"
    },
    {
      "commit": "9e5f321be43ad7d1e96ace55dc7e3f8b077f0038",
      "tree": "46b87174686782acd43f207509ca96f3458511fb",
      "parents": [
        "7e242e2972e62cc37780400c2971b32509c0ba46",
        "fe8854609898b5a148d2c4094aa9970af1a4ec59"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Sep 22 11:55:19 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 22 11:55:20 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"ARM: VIXL32: Add an initial code generator that passes codegen_tests.\"\"\""
    },
    {
      "commit": "fe8854609898b5a148d2c4094aa9970af1a4ec59",
      "tree": "702e576ecfedb88f84b47f6b112d227161709520",
      "parents": [
        "45026e4548641b1c0da0a030d563adb894bc5dd5"
      ],
      "author": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Thu Sep 22 10:24:38 2016 +0100"
      },
      "committer": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Thu Sep 22 10:44:29 2016 +0100"
      },
      "message": "Revert \"Revert \"ARM: VIXL32: Add an initial code generator that passes codegen_tests.\"\"\n\nThis VIXL32-based code generator is not enabled in the optimizing\ncompiler by default. Changes in codegen_test.cc test it in parallel with\nthe existing ARM backend.\n\nThis patch provides a base for further work, the new backend will not\nbe enabled in the optimizing compiler until parity is proven with the\ncurrent ARM backend and assembler.\n\nTest: gtest-codegen_test on host and target\n\nThis reverts commit 7863a2152865a12ad9593d8caad32698264153c1.\n\nChange-Id: Ia09627bac22e78732ca982d207dc0b00bda435bb\n"
    },
    {
      "commit": "4670b99a26dfc9730883d5803acce24e5d34f6ab",
      "tree": "8c37b094402bb4cd2d8fc4226b984eb037013df6",
      "parents": [
        "45026e4548641b1c0da0a030d563adb894bc5dd5",
        "9837caff9cbfb61e3dabc6fbecb398d4d659c017"
      ],
      "author": {
        "name": "Benoit Lamarche",
        "email": "benoitlamarche@google.com",
        "time": "Thu Sep 22 09:34:26 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 22 09:34:27 2016 +0000"
      },
      "message": "Merge \"Update art tests\""
    },
    {
      "commit": "764f38f9398ccb7748a5bf1378839a44ed72c071",
      "tree": "bdffcd0e4762f137b4331ed1b6b893e74f1b190e",
      "parents": [
        "4b55b4b39a09ffb6850ed8ba7c5782dea07b5b83",
        "866d874c4fca90385251a1df28eed0eb6e1b88e2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 22 03:43:55 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 22 03:43:56 2016 +0000"
      },
      "message": "Merge \"Make image test multi image\""
    },
    {
      "commit": "866d874c4fca90385251a1df28eed0eb6e1b88e2",
      "tree": "ae853738fe345523af56be0a021f46bc90e0d2ed",
      "parents": [
        "be0f728348139a9185b08d4d5c5adfa806bee00b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 21 15:24:18 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 21 18:43:45 2016 -0700"
      },
      "message": "Make image test multi image\n\nRequired for testing multi image layout in future CLs.\n\nBug: 28640955\n\nTest: clean-oat-host, test-art-host, device booting\n\n(cherry picked from commit 25adcfb7dc81131add3a0a681ae18bced6f7a0e0)\n\nChange-Id: I14809f56e711b4a87e01056c327eddbbd087f4ee\n"
    },
    {
      "commit": "524dfe8086e5e6ea86f5106bab800e5390a28aed",
      "tree": "5b0d1f99acd67d1d77896b879f0e65e4b3603a5e",
      "parents": [
        "16cb669007859ebc986c5459fc302f62b0aa89db",
        "06a04e0e776875303577c2d871b53a53c78da1b5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 22 00:37:06 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 22 00:37:07 2016 +0000"
      },
      "message": "Merge \"jni: Implement generic JNI support for @CriticalNative/@FastNative\""
    },
    {
      "commit": "06a04e0e776875303577c2d871b53a53c78da1b5",
      "tree": "6f8b38fa918f49cc502b573c96d9a6338ad343df",
      "parents": [
        "48d10ee126838f060aa6dcd304fc161b57bc14af"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Sep 13 15:57:37 2016 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Sep 21 13:32:00 2016 -0700"
      },
      "message": "jni: Implement generic JNI support for @CriticalNative/@FastNative\n\nAlso:\n* Extend existing test cases to check generic JNI for the above.\n* Re-enable previously blacklisted @CriticalNative JNI run-tests.\n\nBug: 31400248\nChange-Id: I436ed00c8b8880e936a0c3483bc0dc251f0c0ce2\n"
    },
    {
      "commit": "be0f728348139a9185b08d4d5c5adfa806bee00b",
      "tree": "64e30afc9e2951679c372f1e14f23b10002dabfe",
      "parents": [
        "ce092d0e374107fc7416416848d3f232233f84ee",
        "7863a2152865a12ad9593d8caad32698264153c1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 21 16:53:31 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 21 16:53:32 2016 +0000"
      },
      "message": "Merge \"Revert \"ARM: VIXL32: Add an initial code generator that passes codegen_tests.\"\""
    },
    {
      "commit": "7863a2152865a12ad9593d8caad32698264153c1",
      "tree": "69c31579f4440d9e8cffbe63b9975bff8a8c8ea2",
      "parents": [
        "b138dfbd76f9d8b64fb9dbaf1a7c25e2549b2a8c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 21 16:53:03 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 21 16:53:03 2016 +0000"
      },
      "message": "Revert \"ARM: VIXL32: Add an initial code generator that passes codegen_tests.\"\n\nFailing with:\nart/compiler/optimizing/code_generator_arm_vixl.cc:396:47: error: too few arguments to function call, expected 3, have 2\n  ValidateInvokeRuntime(instruction, slow_path);\n\nThis reverts commit b138dfbd76f9d8b64fb9dbaf1a7c25e2549b2a8c.\n\nChange-Id: Idccfe076f5905ea92ecbe3afbc7c8c64ecda94be\n"
    },
    {
      "commit": "85bf9def7f1711fa402cd1e5bf02a6566870f9a7",
      "tree": "cb411c9060ec40d0391d749f51b78bb0ca24c66f",
      "parents": [
        "d26a0a64d0e68746be74859aed520a590d79995f",
        "5d5a36bddbc008cd52a3207aa2b31177c47f9a49"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 21 16:51:57 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 21 16:51:58 2016 +0000"
      },
      "message": "Merge \"Write VerifierDeps into VDEX.\""
    },
    {
      "commit": "d26a0a64d0e68746be74859aed520a590d79995f",
      "tree": "74f2932a4975b99d6173a74ccc97ebaa6f038fff",
      "parents": [
        "7b0d9228e9fe77f73bfb6f8b8e74942b23873c0a",
        "b138dfbd76f9d8b64fb9dbaf1a7c25e2549b2a8c"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Sep 21 16:32:59 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 21 16:32:59 2016 +0000"
      },
      "message": "Merge \"ARM: VIXL32: Add an initial code generator that passes codegen_tests.\""
    },
    {
      "commit": "5d5a36bddbc008cd52a3207aa2b31177c47f9a49",
      "tree": "e847cf69c78cddb1d9a4bc273626827d170a524c",
      "parents": [
        "834582c4b023b5cea5775bef238ca1854a3425c4"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Sep 14 15:34:10 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 21 16:17:53 2016 +0100"
      },
      "message": "Write VerifierDeps into VDEX.\n\nThis patch serializes VerifierDeps data and writes them into VDEX.\nIt also extends the VDEX header with sizes of the DEX and verifier\ndependencies sections.\n\nBug: 30937355\nChange-Id: I5aa5fc5eb8678533117138e445b757fa771973fb\n"
    },
    {
      "commit": "9837caff9cbfb61e3dabc6fbecb398d4d659c017",
      "tree": "b8101227d3987cebbc1c9d13f5d5f23a037a9f9a",
      "parents": [
        "80eb0bc2757274816a014a2997848d288c9ee553"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Aug 01 11:09:50 2016 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Sep 21 13:45:08 2016 +0200"
      },
      "message": "Update art tests\n\nJack generates different code compared to the previous release so\nsome tests need to be updated. For instance, Jack transform \u0027!cond\u0027\ninto \u0027cond xor 1\u0027.\n\nThe test 463-checker-boolean-simplifier still tests the if/else\npattern using smali.\n\n(cherry picked from commit e4d28c502486afe58a0e156b8fefb621a622cec2)\n\nBug: 29493697\nTest: lunch aosp_bullhead-userdebug \u0026\u0026 make -j32\nTest: make -j32 test-art-host \u0026\u0026 make -j32 test-art-target\nTest: art/tools/run-jdwp-tests.sh --mode\u003dhost\nChange-Id: Ief8ac3e9a4bcaa35c99e57161961d630333d3b3c\n"
    },
    {
      "commit": "0e8443995af602bcc2e70dcef1d20ee48acec934",
      "tree": "2d81b8db23bea139e40e33e4e9b8c69027fb1e56",
      "parents": [
        "c4cb3d532db8a500c1a15e8a0052895960259209"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Thu Sep 08 13:43:31 2016 +0100"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Wed Sep 21 11:42:21 2016 +0100"
      },
      "message": "Collapse ART\u0027s AbstractMethod class into Executable\n\nAfter the OpenJDK 8 pull there is now a common base class\nfor Method and Constructor that can be used instead.\n\nMethods that are abstract on Executable but on Android\nwere implemented in AbstractMethod are now consistently\nrenamed to \"{method}Internal\", declared final and\ngiven package-protected access.\n\nFor consistency with all other private, natively\nimplemented methods, the method getDeclaredAnnotations()\nhas been renamed getDeclaredAnnotationsNative().\n\nBug: 28666126\nBug: 31052885\nTest: make test-art-host and cts run of CtsLibcoreTestCases\nChange-Id: Ibfe6af6a47fe0cfffd0859ffbe58980aeb84e053\n"
    },
    {
      "commit": "c4cb3d532db8a500c1a15e8a0052895960259209",
      "tree": "43ef2657e36ddf0de9ec20d581ce53e09f23b7fa",
      "parents": [
        "f6dc0819996cd2acc758012960a461ef6e805e4b",
        "96e640c1909d21081a2c342d160ed65ba536dae0"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Sep 20 23:15:18 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 20 23:15:18 2016 +0000"
      },
      "message": "Merge \"Fix the target art method address within a method object\""
    },
    {
      "commit": "96e640c1909d21081a2c342d160ed65ba536dae0",
      "tree": "714ab83dcc06fde5cf660a6c82769537b0fd29f2",
      "parents": [
        "48d10ee126838f060aa6dcd304fc161b57bc14af"
      ],
      "author": {
        "name": "Jing Ji",
        "email": "a5705c@motorola.com",
        "time": "Wed Aug 31 21:21:37 2016 -0500"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Sep 20 12:56:21 2016 -0700"
      },
      "message": "Fix the target art method address within a method object\n\nThe target offset of art method within a method object should\ntake account of the offset of the image which is declaring this\nmethod.\n\nBug: 31311504\nChange-Id: Id6670dd3436b4bf5fb943d8d6234851fb336a4dc\n(cherry picked from commit 1717159b07abefcf59d099bc81158644f0a0bffb)\nTest: test-art-{host,target}\n"
    },
    {
      "commit": "804b03ffb9b9dc6cc3153e004c2cd38667508b13",
      "tree": "91c7fd54b5000e041bf9d3d5b233dabce1fad614",
      "parents": [
        "80eb0bc2757274816a014a2997848d288c9ee553"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 14 16:26:36 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 20 14:55:44 2016 +0100"
      },
      "message": "Change remaining slow path throw entrypoints to save everything.\n\nChange DivZeroCheck, BoundsCheck and explicit NullCheck\nslow path entrypoints to conform to kSaveEverything.\n\nOn Nexus 9, AOSP ToT, the boot.oat size reduction is\n  prebuilt multi-part boot image:\n    - 32-bit boot.oat: -12KiB (-0.04%)\n    - 64-bit boot.oat: -24KiB (-0.06%)\n  on-device built single boot image:\n    - 32-bit boot.oat: -8KiB (-0.03%)\n    - 64-bit boot.oat: -16KiB (-0.04%)\n\nTest: Run ART test suite including gcstress on host and Nexus 9.\nTest: Manually disable implicit null checks and test as above.\nChange-Id: If82a8082ea9ae571c5d03b5e545e67fcefafb163\n"
    },
    {
      "commit": "d300d8fa3cf696c459eaf05ffd374c11eb3e9d78",
      "tree": "a234adc5e0e9695d35bf8396a693e9998979b85d",
      "parents": [
        "ae9ed26e8db9123a6a3542ea00767977531d4f1a"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Jul 15 14:00:56 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 20 12:05:36 2016 +0000"
      },
      "message": "ARM: Use vstm/vldm for live floating point registers save/restore in SlowPathCode.\n\nTest: m test-art-target; m test-art-host\n\nChange-Id: Id22271c572bb698728444bef90d5c7487ab84b1a\n"
    },
    {
      "commit": "9364383522de6aa996a42c6866354e7a402d1b33",
      "tree": "250008eebae9721b9cfe94e302db14d7ec7c4f3b",
      "parents": [
        "0186b64cfcf36d07cbdcb6eb1e8031086ab0dc1a",
        "f4d6aee7786176df65b093690686617725f08378"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 20 10:36:22 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 20 10:36:22 2016 +0000"
      },
      "message": "Merge \"ARM: Use stm/ldm for live registers save/restore in SlowPathCode.\""
    },
    {
      "commit": "2722620b24e400b5c0e645967352e9f5b349dd52",
      "tree": "1d8dbb8f4ebec23d49a38ae70103b8c1b3d584a9",
      "parents": [
        "c520f85302135d37d13028f6c94c37826c3d5ed2",
        "4a4a601e8a99d0a711720c8a0d9878b26498fb4c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Sep 19 20:04:19 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 19 20:04:20 2016 +0000"
      },
      "message": "Merge \"Improve sharpening for read barrier image HLoadClass\""
    },
    {
      "commit": "4a4a601e8a99d0a711720c8a0d9878b26498fb4c",
      "tree": "ae7cd8cfa7cc861a51d187118db8da46ef7f9f3f",
      "parents": [
        "c6eced06a8592e2077cf7c894c8e05702571bf4d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 16 14:16:42 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 19 10:46:03 2016 -0700"
      },
      "message": "Improve sharpening for read barrier image HLoadClass\n\nHandle MarkInBoot image for LoadKind::kReferrersClass. This reduces\nread barriers for the boot image if the referring class is in\nthe boot image.\n\nOnly really helps CC case, TODO avoid doing the work for non CC?\n\nARM64 CC baker boot.oat: 48006064 -\u003e 47916736\n\nBug: 29516974\n\nTest: test-art-host CC baker\n\nChange-Id: Ibfa0cf0a3b888ad0e53c2d95a38e330b79e7443c\n"
    },
    {
      "commit": "904614f008fa03b4443f1a0abdac1a1966805696",
      "tree": "4fb2578a78dcf514bccc6df9ad24674623bdf8c4",
      "parents": [
        "ec88abde5944eaa94e1299cc2ec040b51977b1f4",
        "afd3c9ea7f238afebd5073c1143d3c832ab10a71"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Sep 19 17:12:37 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 19 17:12:37 2016 +0000"
      },
      "message": "Merge \"Convert art runtests to Android.bp\""
    },
    {
      "commit": "afd3c9ea7f238afebd5073c1143d3c832ab10a71",
      "tree": "ea95e66ac119b6f86f637ebbeba22e956d3a4c4e",
      "parents": [
        "be3a3ee02f148345ba6e1a0361532a3f7e8c0002"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 16 13:47:21 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Sep 19 10:10:42 2016 -0700"
      },
      "message": "Convert art runtests to Android.bp\n\nBuild the art runtest libraries with Android.bp.  The host test\nlibraries move from out/host/linux-x86/lib[64] to\nout/host/linux-x86/nativetest[64], and the device test libraires from\n/data/artest/${TARGET_ARCH} to /data/nativetest[64]/art/${TARGET_ARCH},\nwhich requires adding nativetest to the library search path, and fixing\nsome tests to support multiple entries in library search paths.\n\nTest: m -j test-art-host\nTest: m -j test-art-target\nChange-Id: I2118a3292f22f275954ddd7cdd4e12287fe47808\n"
    },
    {
      "commit": "ec88abde5944eaa94e1299cc2ec040b51977b1f4",
      "tree": "c3692184a4999b97ee36decf88c688786640e598",
      "parents": [
        "8cb366a7ba8f02094c7c3bd21e217fff52f6ad17",
        "91a6516103b8bf8bb75c3a2840cbdec7521e74a7"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Sep 19 16:59:14 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 19 16:59:15 2016 +0000"
      },
      "message": "Merge \"Remove the `CanTriggerGC` side-effects on a few instructions.\""
    },
    {
      "commit": "8cb366a7ba8f02094c7c3bd21e217fff52f6ad17",
      "tree": "34cb69eb540d8f57f9a7826e8242ccfe3ef81a6d",
      "parents": [
        "28079d33e1712382e3d2cb63fb6d692247979ec0",
        "ebc3280a765f1fc0f8a7a7f4393ff20586aa7b08"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Sep 19 16:06:00 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 19 16:06:01 2016 +0000"
      },
      "message": "Merge \"Include `nodes.h` in `nodes_shared.h` to help editing tools.\""
    },
    {
      "commit": "28079d33e1712382e3d2cb63fb6d692247979ec0",
      "tree": "c5e8128545daaedd00705d58634f88f4a38797b5",
      "parents": [
        "932e7d89addd2620486410a628f6fc33f70f74a4",
        "009cace65f649000e46a33db26d14b2af8b5aee4"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Sep 19 15:11:36 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 19 15:11:36 2016 +0000"
      },
      "message": "Merge \"Minor induction variable analysis changes.\""
    },
    {
      "commit": "f4d6aee7786176df65b093690686617725f08378",
      "tree": "14aae464b9214c822736a61272da090fafd47512",
      "parents": [
        "f65366918e0cec5ca2c5214128f0a65a3f1bddd6"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Mon Jul 11 10:41:45 2016 +0100"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Mon Sep 19 15:03:45 2016 +0100"
      },
      "message": "ARM: Use stm/ldm for live registers save/restore in SlowPathCode.\n\nIn case when there is more than 4 register to save/restore in the\nSlowPathCode stm/ldm can save some code size.\n\nTest: m test-art-target; m test-art-host\n\nChange-Id: I2d5b44bab58b67207105302cd7d8ee3300b9040a\n"
    },
    {
      "commit": "ebc3280a765f1fc0f8a7a7f4393ff20586aa7b08",
      "tree": "0ffd99f28d0f186909ae289233ba92f3728dd24d",
      "parents": [
        "6a4abc633fa8580b06056ec6f80ced8ce7511277"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Mon Sep 19 13:56:18 2016 +0100"
      },
      "committer": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Mon Sep 19 14:08:18 2016 +0100"
      },
      "message": "Include `nodes.h` in `nodes_shared.h` to help editing tools.\n\nThis include does not change anything to compilation, but it helps\nediting tools (e.g. YouCompleteMe) to show proper error messages when\nediting that file.\n\nTest: mma -j40\n\nChange-Id: I5ebd03040cfc90daa41faf85f273a86525207f19\n"
    },
    {
      "commit": "91a6516103b8bf8bb75c3a2840cbdec7521e74a7",
      "tree": "d93043f578bfa5b8d76e8c175e6441b378c4a7b2",
      "parents": [
        "6a4abc633fa8580b06056ec6f80ced8ce7511277"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Mon Sep 19 13:54:30 2016 +0100"
      },
      "committer": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Mon Sep 19 13:54:30 2016 +0100"
      },
      "message": "Remove the `CanTriggerGC` side-effects on a few instructions.\n\nThe side-effect was specified for these instructions as they call\nruntime. We now have a list of entrypoints that we know cannot trigger\nGC. We can avoid requiring the side-effect for those.\n\nTest: Run ART test suite on Nexus 5X and host.\n\nChange-Id: I0e0e6a4d701ce6c75aff486cb0d1bc7fe2e8dda4\n"
    },
    {
      "commit": "f65366918e0cec5ca2c5214128f0a65a3f1bddd6",
      "tree": "d62660afe7dbf03899964694cc3dc30e560ce615",
      "parents": [
        "834582c4b023b5cea5775bef238ca1854a3425c4",
        "68db2a9514d67708a21bb0975aee4c5d1c2bf49e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 19 12:38:05 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 19 12:38:05 2016 +0000"
      },
      "message": "Merge \"MIPS64: Fix overlapping use of \"in\" \u0026 \"out\" registers.\""
    },
    {
      "commit": "855c7eb6b44461211448ed1a13482c69c2e17443",
      "tree": "44f6b166dada8d0e000752b1cc38991598b360a4",
      "parents": [
        "53c5337b0401e4a63cdfe1556030758a8b8b42cf",
        "f58b24831f7203e248798dce4c62bf61c51ba15d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Sep 19 09:20:18 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 19 09:20:19 2016 +0000"
      },
      "message": "Merge \"MIPS32: Improve storing of constants in fields and array elements\""
    },
    {
      "commit": "9aa352e92b6ca0f2250cb7f54dfbf4b1be714c19",
      "tree": "647b9274daa64b3497c202da4327be26fe4e494b",
      "parents": [
        "47c22ff721503c0eb325508450663adacf0bd377"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu Sep 15 18:13:52 2016 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Sep 16 16:31:19 2016 -0700"
      },
      "message": "Remove TypeLookupTable from DexFile.\n\nOne more step towards removing runtime dependencies from the DexFile\nAPI.  This severs the ties to OatFile.  Work remains to move MemMap out\nof DexFile.\n\nBug: 22322814\nChange-Id: I29e7ad8fd292c7919ed2689dc754b958b88d6819\nTest: test-art-host\n"
    },
    {
      "commit": "009cace65f649000e46a33db26d14b2af8b5aee4",
      "tree": "47d32693b615e35b3cb60ddd54a47e18cccf8200",
      "parents": [
        "be3a3ee02f148345ba6e1a0361532a3f7e8c0002"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Sep 16 10:15:19 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Sep 16 14:33:00 2016 -0700"
      },
      "message": "Minor induction variable analysis changes.\n\nRationale:\nFew extra comments, added replacement of loop control functionality.\nAll in preparation of bigger loop optimizations CL.\n\nChange-Id: Ie2243c3c8b57b2901654b05fb200e9d80a0cb641\nTest: test-art\n"
    },
    {
      "commit": "22a99ff1905718316e0615a60b1b5ab57a55bb02",
      "tree": "3da163a2fb0d4701129b6463bf82381bf2d51b0f",
      "parents": [
        "4613f533a885f27834fed6b0fdbdb32ba836f910",
        "56f4bdde45e978dd5873525f63d1cb562d42ffc0"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 16 17:07:31 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 16 17:07:32 2016 +0000"
      },
      "message": "Merge \"x86/x86-64: Simplify codegen using helper functions.\""
    },
    {
      "commit": "56f4bdde45e978dd5873525f63d1cb562d42ffc0",
      "tree": "e71b00f8b0214e0a750150df84ba5669be6e8b54",
      "parents": [
        "0764877e21f1230e718923d5b84b048cd4346afa"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 16 11:32:36 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 16 16:39:19 2016 +0100"
      },
      "message": "x86/x86-64: Simplify codegen using helper functions.\n\nSimplify comparisons and array element address calculations.\n\nTest: m test-art-host\nChange-Id: I2a3f54a3638cf4c24d9e3cac83daba47f0723f72\n"
    },
    {
      "commit": "ca3c8c33501bf199d6fd0a5db30a27d8e010cb23",
      "tree": "12a6c3a4266bd17c6b9fe7066fd0b25cb8d9b2d6",
      "parents": [
        "0764877e21f1230e718923d5b84b048cd4346afa"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Sep 06 14:04:48 2016 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Sep 16 10:08:18 2016 +0100"
      },
      "message": "Collect verifier dependencies\n\nMethodVerifier tests whether a DEX method is valid w.r.t. the classes\nin class path. Since the APK does not change across OTA updates, it\nis not necessary to analyze the bytecode again with MethodVerifier,\nas long as its dependencies on the class path (which may have changed)\nare satisfied.\n\nThis patch introduces VerifierDeps, a class path dependency collector,\nand adds hooks into MethodVerifier where classes/methods/fields are\nresolved and where assignability of types is tested.\n\nTest: m test-art-host-gtest-verifier_deps_test\nBug: 30937355\nChange-Id: Iee0b321d772a5c7d1cb471aaa6e13918310b7e2f\n"
    },
    {
      "commit": "f58b24831f7203e248798dce4c62bf61c51ba15d",
      "tree": "ab7c886781ba6328b350513352b763cd433627a3",
      "parents": [
        "7d26164308e9eab5c596a19b841e4ab1c27828a8"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Fri Sep 02 22:14:06 2016 -0700"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Thu Sep 15 19:11:14 2016 -0700"
      },
      "message": "MIPS32: Improve storing of constants in fields and array elements\n\nTest: booted MIPS32 in QEMU\nTest: test-art-target-run-test-optimizing on CI20\nTest: test-art-host-gtest\n\nChange-Id: Ifcf8c1e215e3768711c391e8da6f663bba71f8d9\n"
    },
    {
      "commit": "6e95dd56e43b3a29fb8360bd94e31cd2eaab1d3d",
      "tree": "c536c5588f8a96f4559ca00921c7852a82558ea5",
      "parents": [
        "6b22aa5106e60545119b9eeaceaa9f87ee597305"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Sep 12 15:37:10 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 15 12:27:06 2016 -0700"
      },
      "message": "Convert art gtests to Android.bp\n\nThis splits the compilation and running of the art gtests into two\nseparate locations.  The tests are now compiled in multiple Android.bp\nmodules in each directory.  art.go collects the installed locations of\neach test and exports it as make variables.  art/build/Android.gtest.mk\nconverts the list into the rules to run the tests.\n\nThis has a few changes in behavior:\n  - The rules to build tests are now always defined, and will build as\n    part of mmma art or make checkbuild.\n  - Host tests are no longer installed into out/host/linux-x86/bin, they\n    are in out/host/linux-x86/nativetest[64]/\u003cmodule name\u003e/\u003ctest name\u003e\n  - Target tests are now in\n    /data/nativetest[64]/art/\u003carch\u003e/\u003cmodule name\u003e/\u003ctest name\u003e\n\nTest: mmma -j art\nTest: m -j test-art-host\nTest: m -j test-art-target\nChange-Id: Iabcd99d43890e6b693688422b07a283c3226a496\n"
    },
    {
      "commit": "6b22aa5106e60545119b9eeaceaa9f87ee597305",
      "tree": "ab26f42ac9fb9fff52c6f0683561c0bcdebd9569",
      "parents": [
        "6b4d988feb18559204f7175914851baf28febd8c"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Sep 12 14:35:39 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 15 12:24:25 2016 -0700"
      },
      "message": "Convert libart-gtest to Android.bp\n\nChange-Id: Ibea17e3e002e6ad3f82158cd3c69d087fa9b15c9\n"
    },
    {
      "commit": "6b4d988feb18559204f7175914851baf28febd8c",
      "tree": "b8bb9bf3e2bcc3a2219ec5385aa003058cb717e9",
      "parents": [
        "5a7c611d7e9ab5d01eca58010b5dfc22d7ca720e",
        "a5931185c97c7b17981a9fc5016834a0bdd9480b"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Sep 15 18:16:43 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 15 18:16:44 2016 +0000"
      },
      "message": "Merge \"Fix google-explicit-constructor warnings in art.\""
    },
    {
      "commit": "68db2a9514d67708a21bb0975aee4c5d1c2bf49e",
      "tree": "ec1901f46ff8df800bb083edc5a2bb3d2a896d83",
      "parents": [
        "514e346dd7da0533e27f671ed1a1c0b1557ef7a5"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Wed Sep 14 15:41:29 2016 -0700"
      },
      "committer": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Thu Sep 15 10:46:02 2016 -0700"
      },
      "message": "MIPS64: Fix overlapping use of \"in\" \u0026 \"out\" registers.\n\nTest: Boot MIPS64 QEMU\nTest: 568-checker-onebit\n\nChange-Id: Ifc89fd8df674b1f3ffcdde52256a35b4a3562d45\n"
    },
    {
      "commit": "514e346dd7da0533e27f671ed1a1c0b1557ef7a5",
      "tree": "058ed1584525a637d71cc48071c900ae4c14535e",
      "parents": [
        "eb1aa7da786086bef8c22c76e1d68e8eae7300bf",
        "16d3a65a25f03a7e447cafc7ab8fbdb52807cae6"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 15 17:34:22 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 15 17:34:23 2016 +0000"
      },
      "message": "Merge \"Added ability to generate last-value of linear induction. Also added utility to update fetches in induction nodes.\""
    },
    {
      "commit": "fad6f4dbf914418e7b16fc78a77578edfa618b72",
      "tree": "187d5127417936d926a6e7830760090647509bd7",
      "parents": [
        "fce42f486d9a607fb4fb472ec142a82ceccb6b5f",
        "167bc0b5275038cbe86112e1df12c8988aa6612e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 15 16:25:58 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 15 16:25:58 2016 +0000"
      },
      "message": "Merge \"ARM: Try to emit branches early to save memory.\""
    },
    {
      "commit": "a5931185c97c7b17981a9fc5016834a0bdd9480b",
      "tree": "22f1a57647d7113c7c5aa5e0f0db5937380f2739",
      "parents": [
        "fce42f486d9a607fb4fb472ec142a82ceccb6b5f"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Sep 01 15:08:13 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Sep 15 09:09:35 2016 -0700"
      },
      "message": "Fix google-explicit-constructor warnings in art.\n\n* Add explicit keyword to conversion constructors,\n  or NOLINT for implicit converters.\nBug: 28341362\nTest: build with WITH_TIDY\u003d1\n\nChange-Id: I1e1ee2661812944904fedadeff97b620506db47d\n"
    },
    {
      "commit": "16d3a65a25f03a7e447cafc7ab8fbdb52807cae6",
      "tree": "cb22e0f7109b75dee3df0eb57939eb2a5004d854",
      "parents": [
        "32772cbdbcb35f5475b01f31314a3c7289bdb589"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Sep 09 10:33:50 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Sep 15 08:59:36 2016 -0700"
      },
      "message": "Added ability to generate last-value of linear induction.\nAlso added utility to update fetches in induction nodes.\n\nRationale:\nThis is a first step towards the larger CL that introduces\na new loop optimization framework in the optimizing compiler\n(see https://android-review.googlesource.com/#/c/271392/3).\n\nChange-Id: Ibecd674c8146d9665340e68718c498555646129a\nTests: induction_var_range_test\n"
    },
    {
      "commit": "b138dfbd76f9d8b64fb9dbaf1a7c25e2549b2a8c",
      "tree": "a3765fd2bd7e5ddd7ec81adab1ec36859f193d94",
      "parents": [
        "5cfaafbda5d2de57e311cfc9051f8d817091e950"
      ],
      "author": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Tue Jul 26 10:33:29 2016 +0100"
      },
      "committer": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Thu Sep 15 16:17:01 2016 +0100"
      },
      "message": "ARM: VIXL32: Add an initial code generator that passes codegen_tests.\n\nThis VIXL32-based code generator is not enabled in the optimizing\ncompiler by default. Changes in codegen_test.cc test it in parallel\nwith the existing ARM backend.\n\nThis patch provides a base for further work, the new backend will not\nbe enabled in the optimizing compiler until parity is proven with the\ncurrent ARM backend and assembler.\n\nTest: gtest-codegen_test on host and target\n\nChange-Id: Id556a975b2645bf1d98ab2984650e8435b2312c2\n"
    },
    {
      "commit": "167bc0b5275038cbe86112e1df12c8988aa6612e",
      "tree": "fb2080cd9686de6b926f2e5e4157c551a0405b9b",
      "parents": [
        "8fb627442ec7330939c920076714eb120363f95e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 13 15:11:50 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 15 15:35:01 2016 +0100"
      },
      "message": "ARM: Try to emit branches early to save memory.\n\nTry to emit unexpanded branches when binding a Label to\nreduce the memory needed for Fixup dependencies. We use\na simple heuristic to limit the time we spend trying\nbut this heuristic is enough to resolve all branches in\nthe emitted String.equals() intrinsic.\n\nTest: Run ART test suite on host and Nexus 6.\nTest: Manually check memory usage for a certain apk.\nBug: 28603175\nChange-Id: I362e07c2c1285ff609cf8df0a00b6b420729b9ce\n"
    },
    {
      "commit": "6f41ec68d3a3fae7bcd9ebd70b39b60e954449f3",
      "tree": "b5c61cceb4385592701ad6df437446f4961d34f5",
      "parents": [
        "37c38930c58454b22bcc32acea273694e2187f12",
        "63e211347678a7fbbabfce94ebf3ca04f0e90a1f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 15 10:46:43 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 15 10:46:44 2016 +0000"
      },
      "message": "Merge \"MIPS: Enable the ComparisonsLong test in the code generator test.\""
    },
    {
      "commit": "37c38930c58454b22bcc32acea273694e2187f12",
      "tree": "586fb00756c67817d037dd84319e4ba85ef6244c",
      "parents": [
        "755bebaa1922436e6a9568042e975cec8a23bf66",
        "f41f956558ceb5402d3b4499a44a15c42f1c0064"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Sep 15 09:21:20 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 15 09:21:20 2016 +0000"
      },
      "message": "Merge \"Add missing OVERRIDE qualifiers in code generators.\""
    },
    {
      "commit": "755bebaa1922436e6a9568042e975cec8a23bf66",
      "tree": "ea8e42919b9a99b2df19a7477dd182d2c6a1347b",
      "parents": [
        "602700c3051c0b7721b622b1c94772208cc598ea",
        "d9c90373d640a5e08072cf469c372e24a8c0fc35"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Sep 15 09:14:49 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 15 09:14:49 2016 +0000"
      },
      "message": "Merge \"Move ArrayRef to runtime/base\""
    },
    {
      "commit": "63e211347678a7fbbabfce94ebf3ca04f0e90a1f",
      "tree": "ca49521ba40332289b99c28ad6cea6115eda467c",
      "parents": [
        "26ead4975e1752e8ae2f5ed6fda73876c4f9ff59"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Wed Sep 14 15:52:03 2016 -0700"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Wed Sep 14 15:54:34 2016 -0700"
      },
      "message": "MIPS: Enable the ComparisonsLong test in the code generator test.\n\nTest: test-art-host-gtest-codegen_test\nTest: test-art-target-gtest-codegen_test (MIPS32R2 \u0026 R6, MIPS64)\n\nChange-Id: Ieae0fdb2ed30f262baac0eb7c6b658341c511a47\n"
    },
    {
      "commit": "32772cbdbcb35f5475b01f31314a3c7289bdb589",
      "tree": "8b6bdecd60683c14397ab637c361e77dc669f3d1",
      "parents": [
        "8dae910bb8c0a635ecf355d6471ea9a0ad6fed20",
        "20e9db6db787e007e7032878c9899b28ec43e93f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 14 22:46:56 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 14 22:46:57 2016 +0000"
      },
      "message": "Merge \"Make LinearizeGraph() public (and move it to nodes files)\""
    },
    {
      "commit": "20e9db6db787e007e7032878c9899b28ec43e93f",
      "tree": "9d2071fd7f286ccf408044b4366714a481351393",
      "parents": [
        "26ead4975e1752e8ae2f5ed6fda73876c4f9ff59"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Sep 14 10:52:13 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Sep 14 14:09:27 2016 -0700"
      },
      "message": "Make LinearizeGraph() public (and move it to nodes files)\n\nRationale:\nIt is strange that HLinearOrderIterator is defined (and visible)\nin nodes.h, but clients have no way to build this order. This CL\nmakes the building available at the usual place.\n\nChange-Id: Ib66f2edf6dfc8edd6b429bd4bea3ac7e37440b28\nTests: m test-art\n"
    },
    {
      "commit": "a3735f7ccb0dfeab639ac2faf34af752e1415cdf",
      "tree": "3faf461f77b41cb783b89a974e83b70c0bf13622",
      "parents": [
        "26ead4975e1752e8ae2f5ed6fda73876c4f9ff59"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Sep 14 13:36:16 2016 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Sep 14 20:46:34 2016 +0000"
      },
      "message": "jni: Update VIXL macro assembler to have vmovdrr/vmovsr support\n\nThis is sometimes used by @CriticalNative JNI compiler\nto avoid spilling the user native function pointer to the stack.\n\n(Also fixes the failing target jni_compiler_test32)\n\nTest: make -j test-art-target-gtest-jni_compiler_test32\nBug: 31469040\nChange-Id: I04a5ec20272fe89e613959a37da1cb472c4ebdf9\n"
    },
    {
      "commit": "d9c90373d640a5e08072cf469c372e24a8c0fc35",
      "tree": "35615699aa6c12b21d9c0de7d11ccf0f088ba0d8",
      "parents": [
        "b180b893b5acb5c55251522465f9d20ed45c3b5a"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Sep 14 16:53:55 2016 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Sep 14 19:57:21 2016 +0100"
      },
      "message": "Move ArrayRef to runtime/base\n\nWill be used in upcoming CLs regarding VDEX and VerifierDeps.\n\nTest: m test-art-host\nChange-Id: I68e611a4a52246c2bdf45eab7c61f3212908afd4\n"
    },
    {
      "commit": "f41f956558ceb5402d3b4499a44a15c42f1c0064",
      "tree": "50afd6f7509adca0c8ed8cbdc04398058b687b81",
      "parents": [
        "8850c73572215669efc893763791f7ec7f0b0667"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Sep 14 19:26:48 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Sep 14 19:26:48 2016 +0100"
      },
      "message": "Add missing OVERRIDE qualifiers in code generators.\n\nTest: mmma art\nChange-Id: I91d0a2dc23dc8d63a9bb3607eb1c1517eabaeb1f\n"
    },
    {
      "commit": "26ead4975e1752e8ae2f5ed6fda73876c4f9ff59",
      "tree": "2ce1b047f54bfb4287483de8eaf79cd12f6058b6",
      "parents": [
        "79f6d706185714dccf80aca20d9f3261337473ae",
        "268764da8022cafa5661c5b514eaa343c5257e57"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 14 16:55:56 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 14 16:55:56 2016 +0000"
      },
      "message": "Merge \"Make ScopedAssertNoThreadSuspension no overhead for non-debug\""
    },
    {
      "commit": "088efb4cf1d1d8a1c933668764217a6148e40fbc",
      "tree": "26e5ef1b06cd86b8f4a4a7f566bd8b887d58e6c3",
      "parents": [
        "8850c73572215669efc893763791f7ec7f0b0667",
        "9323e6e44060545d6c4f925139572868f65b7fe3"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Sep 14 15:55:07 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 14 15:55:07 2016 +0000"
      },
      "message": "Merge \"Separate annotations from dexfile reading.\""
    },
    {
      "commit": "9323e6e44060545d6c4f925139572868f65b7fe3",
      "tree": "65f3f380605d75f34d49aec49fca494bec26ef5b",
      "parents": [
        "58735fbfbb2da0c0a19b3239da07c2353c40767d"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Sep 13 08:58:35 2016 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed Sep 14 08:01:39 2016 -0700"
      },
      "message": "Separate annotations from dexfile reading.\n\nBug: 22322814\nChange-Id: I867d66da407dd80394a10d19903ebbc1ec3986ff\nTest: test-art\n"
    },
    {
      "commit": "8850c73572215669efc893763791f7ec7f0b0667",
      "tree": "96bd44cc3bcb1a1366268bb644a6cb9b5248b19d",
      "parents": [
        "58735fbfbb2da0c0a19b3239da07c2353c40767d",
        "96b6682d2d65f94c262590ef88bafdc70171ab8c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 14 15:01:23 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 14 15:01:23 2016 +0000"
      },
      "message": "Merge \"MIPS32: Implement table-based packed switch\""
    },
    {
      "commit": "05846475c8d48ce191dcd333c76d5ccc17aea9dd",
      "tree": "bfbcbba324eda45fae27b31ce0ce589c5f472474",
      "parents": [
        "e305eaf2c08a203e3e046c3a8608b90b9dc5a080"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 14 12:49:57 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 14 12:55:09 2016 +0100"
      },
      "message": "Remove ThrowNoSuchMethod entrypoint.\n\nRun ART test suite on host and Nexus 6.\nBug: 31464666\nChange-Id: I5aa737726031adae0b132f759cf802a93d581a7f\n"
    },
    {
      "commit": "e305eaf2c08a203e3e046c3a8608b90b9dc5a080",
      "tree": "3272622ab8e419ddb1aef3c01c89d0251a6c6c91",
      "parents": [
        "5cfaafbda5d2de57e311cfc9051f8d817091e950",
        "3b7537bfc5a6b7ccb18b3970d8edf14b72464af7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 14 11:16:24 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 14 11:16:25 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Use implicit null checks inside try blocks.\"\"\""
    }
  ],
  "next": "3b7537bfc5a6b7ccb18b3970d8edf14b72464af7"
}
