)]}'
{
  "log": [
    {
      "commit": "9df8931359953803441accaa124ca454a33917dc",
      "tree": "8cd904585a4cdc10e64f8419b651e7c9be5ce521",
      "parents": [
        "424c03aac25835febbf5c695b943206bc40ef335"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 23 13:28:16 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 30 19:07:20 2016 +0000"
      },
      "message": "Add atomic method reference map\n\nLess RAM usage and faster than using a normal map with\nMethodReference. Speed is faster by avoiding locking and tree\ntraversal. RAM usage is lower since the map usually had a value\nfor most method references.\n\nPlan on using for marking methods for dex2dex, storing compiled\nmethods. Also use the new map for VerifiedMethods (refactoring).\n\nAdded test.\n\nBug: 32641252\n\nTest: test-art-host-run-test\n\nChange-Id: I46268031b8e0daf9be3597145cf6ecf579a039e2\n"
    },
    {
      "commit": "03bc659b04fefab6e1c9e08c5bd28fe8168c863f",
      "tree": "1e27d6e28fd18479bd812f2abf4a88dbd36092e0",
      "parents": [
        "88bc673b146cb5fda01b4139b6e8ceec5221f106"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Nov 22 09:42:04 2016 +0000"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Nov 24 16:49:27 2016 +0000"
      },
      "message": "Refine OatStatus enum.\n\nReplace Exists() with a separate OatStatus code, and distinguish\nbetween the oat file being out of date due to the dex being out of\ndate or the image being out of date.\n\nBug: 30937355\nTest: oat_file_assistant_test\nChange-Id: Ia3853e461beb07f0b417276b9277b9c562b20865\n"
    },
    {
      "commit": "01b70e8bca5e824ee3958ffbdd7727334e81eb0a",
      "tree": "3e23fef88de183fd0c7945a6198a68050640b656",
      "parents": [
        "81cae78d1853893ff9c3ecea4b5100002a538eb7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 17 10:58:36 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 18 10:44:15 2016 +0000"
      },
      "message": "Add dequickening support.\n\nBoth vdex and BCI require full dequickening support. This\nchange implements dequickening by using the existing encoded\nquickening, and adds the checkcast quickening to that encoding.\n\nbug: 30937355\nbug: 32369913\nTest: dex_to_dex_decompiler_test.cc test-art-host\n\nChange-Id: Ie95f46946d59b28157d6e47dcf4a859be032d1c3\n"
    },
    {
      "commit": "d01f60cbed4ba360b84f1310d2e0d422d6a16534",
      "tree": "d9511ce632d9ae32a0447a9bfd50c1cb8821fcbf",
      "parents": [
        "b9b8cab87a275fad382fefbddd18daf495a58772"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 28 14:45:48 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Oct 29 22:09:28 2016 +0100"
      },
      "message": "Add a VerifierDeps::Dump method.\n\nAlso, fix the Encode/Decode logic around dex file order:\niterating over a std::map doesn\u0027t guarantee insertion order.\n\ntest: verifier_deps_test\nbug: 30937355\n\nChange-Id: Id3efd703b3c8ca21ab49c2600c612c132fb021cd\n"
    },
    {
      "commit": "a1ff30fcb3c23b855872ef83b87e6ee19f03cb8e",
      "tree": "43d6533d594bc898ffeb016bc8895bd8da3efe1e",
      "parents": [
        "5065b09332328477d489b8ce26c3a1381e6f8d49"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 27 12:19:45 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 10 14:29:26 2016 -0700"
      },
      "message": "ART: Switch to name-based IMT hashing\n\nUse a hash scheme based on the name. This keeps IMT slots stable\nwhen dex tables change.\n\nThis incurs a severe performance penalty for computing the slot.\nMeasurements on host degraded from 30ns to an average of 85mus.\nHowever, calls in compiled code will not incur this overhead.\n\nAdded a test comparing similar interfaces in similar dex files.\n\nBug: 31594153\nTest: test-art-host\nChange-Id: Ibb86679ee94bec561984ea25826e56b1a7964cd0\n"
    },
    {
      "commit": "25352fc06c84cdab8a2ab6d173b0514066ade2b9",
      "tree": "bb8a6be0c9a144ccf33b07b3158409769a32daa2",
      "parents": [
        "51cbe84ca33800c57fef9c96f1155f60bcc70bba"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Aug 03 12:46:58 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Oct 03 09:48:50 2016 +0100"
      },
      "message": "class_linker: Add support for resolving method types.\n\n- Add a new fixed size dex cache array for resolved method types.\n  The size of this array is set to 1024.\n- Also introduces a new runtime flag that controls this feature.\n\nTest: make test-art-host\nBug: 30550796\n\nChange-Id: I147b33398d71ee21f2e91b418d3700d4630801ff\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": "71a155f17923925e351a294920ad10076028864b",
      "tree": "3be7c7983ab503e9a2db559b2d2b50097d8b266c",
      "parents": [
        "48d10ee126838f060aa6dcd304fc161b57bc14af"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Sep 20 09:54:58 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Sep 20 16:00:05 2016 -0700"
      },
      "message": "Remove unused build code\n\nAll of the native code in art that used the custom build logic is built\nwith soong now, remove the make build code, leaving the definitions that\nare still used by the test runner.\n\nTest: m -j test-art-host\nTest: m -j test-art-target\nChange-Id: Iaba34a5c52be007bea153401375f4d0ae3ffce06\n"
    },
    {
      "commit": "b20be21233c63b44fab51a63ac724b9c13ef333d",
      "tree": "46f27f60a1ea78195c5946f595fb69f741135ac6",
      "parents": [
        "d2c20805396fa6f424ed85546602bb84659fcca8"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Sep 19 13:02:47 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Sep 19 15:04:12 2016 -0700"
      },
      "message": "Always run oatdumps tests\n\nART_BUILD_HOST_STATIC is meaningless now, the static tools are always\navailable.  Add oatdumpds as a dependency of the host oatdump tests, and\nalways enable the oatdump static tests.\n\nTest: m -j test-art-host-gtest-oatdump_test\nChange-Id: Id749f453f82489dc81a2c9042d3cc3120ea3d308\n"
    },
    {
      "commit": "8d0e6c5c189d3c839c0397f1242e5153095b7ca3",
      "tree": "b166a12a567c22815e01b0baaab4fffeaca10881",
      "parents": [
        "47c22ff721503c0eb325508450663adacf0bd377",
        "6bbea4c09a6f9cd85382891baefe87e4378c62be"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Sep 17 13:39:09 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Sep 17 13:39:10 2016 +0000"
      },
      "message": "Merge \"Fix 2ND arch gtest testing.\""
    },
    {
      "commit": "6bbea4c09a6f9cd85382891baefe87e4378c62be",
      "tree": "975b85db0d1c6c68c45f82ccb10baa61a6dc599d",
      "parents": [
        "31eb450500ae9d46e1cb253defd35c8d06539d4a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 16 16:41:43 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 16 20:41:35 2016 +0100"
      },
      "message": "Fix 2ND arch gtest testing.\n\nChange-Id: I944feac324c49a95904f69d7b03b072e7150c134\n"
    },
    {
      "commit": "f906f1219511936f8a66d091d813437a2507ebba",
      "tree": "4c1497b5f1afbb556d30402175c2a95dfb884ce8",
      "parents": [
        "bbefcb3c8f10ce5567980b6f9905d92a90d18360"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Sep 16 16:33:31 2016 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Sep 16 16:33:31 2016 +0100"
      },
      "message": "Fix build for VerifierDeps gtest on target\n\nForgot to specify the target for the .jar file.\n\nBug: 30937355\nChange-Id: Id44bdeb91474d8acfdf9e9144da9a4c9f4c6cf55\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": "124f8813856f13033dc2efd50c65562cd2f95816",
      "tree": "2bd22fd9d75ad99d0f6f44a77eb3e09f7fc5b7ed",
      "parents": [
        "6e95dd56e43b3a29fb8360bd94e31cd2eaab1d3d"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 15 20:57:47 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 15 20:57:47 2016 -0700"
      },
      "message": "Fix HOST_PREFER_32_BITS tests\n\nWhen HOST_PREFER_32_BITS is set, HOST_ARCH is still x86_64 but art tests\nare only built for x86.  Use ART_HOST_ARCH, which will be set to x86,\nto find the list of host tests.\n\nTest: m -j HOST_PREFER_32_BITS\u003dtrue test-art-host-gtest32\nChange-Id: I11a9e1b5111c3c06139b44e364fdcd04bb8db4c6\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": "fce42f486d9a607fb4fb472ec142a82ceccb6b5f",
      "tree": "393cd58ff2c57f136abf245f2c1d10e6421ba2e0",
      "parents": [
        "6f41ec68d3a3fae7bcd9ebd70b39b60e954449f3",
        "b76bc78ed20629966f4358b2031e75897d616d53"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 15 11:42:30 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 15 11:42:30 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Re-apply \"Cleanup run-test and Makefile around boot image and PIC.\"\"\"\""
    },
    {
      "commit": "b76bc78ed20629966f4358b2031e75897d616d53",
      "tree": "7d78d94551dfb83f2d5c0aaca5f451392892c7a4",
      "parents": [
        "e305eaf2c08a203e3e046c3a8608b90b9dc5a080"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 14 12:33:34 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 15 10:55:08 2016 +0100"
      },
      "message": "Revert \"Revert \"Re-apply \"Cleanup run-test and Makefile around boot image and PIC.\"\"\"\n\nThis reverts commit 8522758c5ef6050e355613630ff81c2b49373b44.\n\nChange-Id: Ie18417bd3d528673e3da39d92f43f20b853facda\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": "2048da5f03a62c87660d981861ce393b8e9ab3c8",
      "tree": "9a72a783b74c4b7c31c90e48064d078483659eb6",
      "parents": [
        "54ec35e4295b83939d7213d8fc73b065c6a2c1d1",
        "8522758c5ef6050e355613630ff81c2b49373b44"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 13 21:20:21 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 13 21:20:21 2016 +0000"
      },
      "message": "Merge \"Revert \"Re-apply \"Cleanup run-test and Makefile around boot image and PIC.\"\"\""
    },
    {
      "commit": "8522758c5ef6050e355613630ff81c2b49373b44",
      "tree": "a172ffb897d996006381a40b8e01d4251eacd22c",
      "parents": [
        "9b5515ebb4502119c44e898b05c69312a45c5f49"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Sep 13 19:37:22 2016 +0000"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Sep 13 19:37:22 2016 +0000"
      },
      "message": "Revert \"Re-apply \"Cleanup run-test and Makefile around boot image and PIC.\"\"\n\nThis reverts commit 9b5515ebb4502119c44e898b05c69312a45c5f49.\n\nBreaks some gtests.\n\nChange-Id: Ic9c9061b05219f19d5c7713ce0239e60c9d6e287\n"
    },
    {
      "commit": "1f43979c43458abab928310ecb510a08b5bd54c7",
      "tree": "9496e5a4d929745674f113f20d531d170def0c2f",
      "parents": [
        "dc0c7e10741c15f76930a4c4084145b337920b0f",
        "9b5515ebb4502119c44e898b05c69312a45c5f49"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 13 15:36:26 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 13 15:36:27 2016 +0000"
      },
      "message": "Merge \"Re-apply \"Cleanup run-test and Makefile around boot image and PIC.\"\""
    },
    {
      "commit": "9b5515ebb4502119c44e898b05c69312a45c5f49",
      "tree": "555f994681a4f27c6e3dd83b97b1bdff9119adec",
      "parents": [
        "f029fb6dbcff10384e32c1bcd5c9e70691c22f34"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 12 16:08:02 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 13 14:30:47 2016 +0100"
      },
      "message": "Re-apply \"Cleanup run-test and Makefile around boot image and PIC.\"\n\nThis reverts commit 1ba223b2e6dab206b02613bc8b523553477fc4a0.\n\nChange-Id: I0048afcefc5b654b62ddaf3c0d45ab201e4d3027\n"
    },
    {
      "commit": "9ef68a3ad02eb7e2242a6d7f6a208c7a9b8ac407",
      "tree": "e5424f2d755404a76e07a0316dc4bfa66fc8fe94",
      "parents": [
        "5e49b5058917194de8871d673ca2a414d5dc5359",
        "eeb436f36a2d58be927b4f0f09f9d9078db6c1c2"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Sep 13 03:47:01 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 13 03:47:02 2016 +0000"
      },
      "message": "Merge \"Rename libicuuc-host/libicui18n-host to libicuuc/libicui18n\""
    },
    {
      "commit": "f9decf915f6fa5b33fceba7c10c119e4cad481e5",
      "tree": "80a2268fa79c4096d9ebddf8ffd66f68f89fcbb2",
      "parents": [
        "e204051d3cc3b1be2e91f26621966c79c82fa74c",
        "fda5714edb368270b7ef639054f4cba1d5f4874c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 12 23:18:38 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 12 23:18:39 2016 +0000"
      },
      "message": "Merge \"ART: Add generic system-weak holder infrastructure\""
    },
    {
      "commit": "eeb436f36a2d58be927b4f0f09f9d9078db6c1c2",
      "tree": "8072b440f4b9504c4b56b69c6a9054dc53d51c1c",
      "parents": [
        "47b451546d1a5c0fbb5e3816373395762a736515"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Sep 12 14:33:43 2016 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Sep 12 14:33:51 2016 -0700"
      },
      "message": "Rename libicuuc-host/libicui18n-host to libicuuc/libicui18n\n\nThese modules can be named the same between the target and host\nlibraries, which simplifies references to them, particularly in\nSoong.\n\nTo prevent accidentally loading the system copy of the library,\nwe still rename the installed name to be libicu*-host.so. But\nmodules do not need to know that in order to build against them.\n\nChange-Id: Iede535d884a4b230ac511bae0d1687133f5801fe\n"
    },
    {
      "commit": "fda5714edb368270b7ef639054f4cba1d5f4874c",
      "tree": "154e3575910441f76ba121c72b47b04f2069f3dc",
      "parents": [
        "97750797e1195651228698877724ae8599eb1e44"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 08 20:29:18 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 12 12:52:22 2016 -0700"
      },
      "message": "ART: Add generic system-weak holder infrastructure\n\nAdd an \"interface\" for a generic system-weak holder that is\nintegrated with the well-known instances in Runtime. Add a\nsimple implementation handling synchronization.\n\nAdd a test.\n\nBug: 31385027\nTest: m test-art-host-gtest-system_weak_test\nTest: m ART_USE_READ_BARRIER\u003dtrue test-art-host-gtest-system_weak_test\nTest: m ART_DEFAULT_GC_TYPE\u003dSS test-art-host-gtest-system_weak_test\nTest: m ART_DEFAULT_GC_TYPE\u003dGSS test-art-host-gtest-system_weak_test\nChange-Id: I1100e2cbd9ee57860993d0039de73d197681c542\n"
    },
    {
      "commit": "1ba223b2e6dab206b02613bc8b523553477fc4a0",
      "tree": "1816c620ba73357ecdbad8175a3de6b9f751232f",
      "parents": [
        "87068b4782c184d1d2e5b99a640a0328ca1198f2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 12 14:24:36 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 12 14:24:36 2016 +0100"
      },
      "message": "Squashed commit of the following:\n\ncommit 487bc26b726a839b2e46424ee3779ac3bb2033f6\nAuthor: Nicolas Geoffray \u003cngeoffray@google.com\u003e\nDate:   Mon Sep 12 14:24:12 2016 +0100\n\n    Revert \"Cleanup run-test and Makefile around boot image and PIC.\"\n\n    This reverts commit 8c9ccac080e98fc5f33ba940a1216e9c2cc079db.\n\ncommit cefadb4b835390b508ae1d2b899f39f3769a593a\nAuthor: Nicolas Geoffray \u003cngeoffray@google.com\u003e\nDate:   Mon Sep 12 14:23:47 2016 +0100\n\n    Revert \"Update test and dependencies after boot image changes.\"\n\n    This reverts commit 2a1a8d7fa450a8196a63afb3bf647b2bec723497.\n\nChange-Id: I58731d845c1166406039a9b74c833d72a82c88fb\n"
    },
    {
      "commit": "2a1a8d7fa450a8196a63afb3bf647b2bec723497",
      "tree": "0104cefbf38dbd97bad659cbcba28fe13aa58f93",
      "parents": [
        "cfe0703329c2bf9f88cc53683d13d14a7cd176ca"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 12 09:53:53 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 12 09:53:53 2016 +0100"
      },
      "message": "Update test and dependencies after boot image changes.\n\nChange-Id: Ia7862e0f8b551c9a98bef8fbc350761c6d931f0c\n"
    },
    {
      "commit": "bd2b49b0e1501b47c1acb3a7eef762cb0b032b32",
      "tree": "c757318e5b28ce85c68b32286c9a301b822ca842",
      "parents": [
        "03008e464f521ad80255dae27959e0bbb31275e4",
        "199fbe5594fc4f5c0caa215af555973238865887"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Sep 10 08:28:15 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Sep 10 08:28:16 2016 +0000"
      },
      "message": "Merge \"Get libgtest from libart-gtest.\""
    },
    {
      "commit": "199fbe5594fc4f5c0caa215af555973238865887",
      "tree": "a8c40dbdb075917d5ec6b023a66b8bd7771a3a06",
      "parents": [
        "30a6a8830f6bec346de3e9ad046c8576283e36d8"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Sep 09 15:32:19 2016 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Sep 09 15:37:54 2016 -0700"
      },
      "message": "Get libgtest from libart-gtest.\n\nWe can\u0027t link libgtest into both the tests and libart-gtest because\ngtest has global data that causes ODR issues. Instead, link libgtest\n*whole* into libart-gtest to be sure that we actually have enough to\ngtest. Headers from LOCAL_WHOLE_STATIC_LIBRARIES are re-exported\nautomatically, which solves the initial problem I was here for.\n\nTest: mma test-art-host-gtest\nBug: None\nChange-Id: Icb985e070d8afb3e614b4e94714c61bc95e4e7fc\n"
    },
    {
      "commit": "279ac5c060a1a642c786730e3f2b05d556c00839",
      "tree": "2c7a4faea98f43828f465f46d77e9b12d6f2f09a",
      "parents": [
        "30a6a8830f6bec346de3e9ad046c8576283e36d8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 08 17:34:25 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 09 14:16:13 2016 -0700"
      },
      "message": "Don\u0027t assume resolved classes are filled in for ResolvedFieldAccessTest\n\nThe assumption that the dex cache type for class of the field is\nresolved is not correct since FindClass does not fill in the\nresolved type array. This resulted in crashes if dex_access_to \u003d\u003d\nnullptr.\n\nAlso implemented for ResolvedMethodAccessTest\n\nBug: 31277064\n\nTest: test-art-host CC baker, launch ZeroTouch with PGO.\n\n(cherry picked from commit c90450a201707111e33d6b6f37d431b201849a8b)\n\nChange-Id: Id5e71ea0eced1b631a3bd7d297229a66cb190954\n"
    },
    {
      "commit": "728b27abf3c17cea3350a969d818b3d13d4604d4",
      "tree": "380e7fba942f2d309af901f0ba97413824bc86ee",
      "parents": [
        "3bac5443975cd6312e7c6282b94014db25f369d7"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Sep 08 23:01:12 2016 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Sep 09 00:40:57 2016 -0700"
      },
      "message": "Stop manually including gtest headers.\n\nlibgtest exports these.\n\nTest: mm\nBug: http://b/16574165\nChange-Id: I4f6220c6d3fe67f4a21451d2f7e790705519d935\n"
    },
    {
      "commit": "bf13e80755663cecdb72cac18c90e0698eab9d30",
      "tree": "faf99dbbec9833fa5c8b65488c71102d17478520",
      "parents": [
        "f94a4cf18946bda4a4f19378436d2bf131a492ca"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 02 19:43:09 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 02 19:43:09 2016 -0700"
      },
      "message": "ART: Use a 50-deep call-stack in valgrind\n\nNecessary to diagnose issues. Required for deep suppressions.\n\nTest: m valgrind-test-art-host\nChange-Id: I08a3379d4763d66a2ae7db1f2f500c93b0a93e90\n"
    },
    {
      "commit": "c3acfc5bed5d0cb22bee05e72cdbdec49a182224",
      "tree": "3f9e89e770efbea5dac6bd601d29b7707c609922",
      "parents": [
        "7629f60ffa7b8533ea0b50263d52cc1df72b2904"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Aug 29 14:18:26 2016 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Aug 31 11:09:41 2016 -0700"
      },
      "message": "Finish dexlayout dumping of dex files and added test.\n\nThe test runs dexdump and dexlayout over the first core library jar file\nand diffs the output, checking that they\u0027re the same. More dex files\nwill be added later for better coverage.\n\nBug: 29921113\nTest: mm test-art-host-gtest-dexlayout_test\n(cherry-picked from commit a378e88db648cf19e771714dd1059cf3d41d4753)\n\nChange-Id: Idfd8ac9f069885b675a4a2f0c70aef2cbef5a9b8\n"
    },
    {
      "commit": "de7b49ac521d3d4eeff05f09f84a256565a9cdef",
      "tree": "dba045fad162808da8e6f4befb591a04f014d478",
      "parents": [
        "19f28f1216a03ba65369636851e54b6b5a6651e6"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Aug 26 09:59:03 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Aug 26 09:59:03 2016 -0700"
      },
      "message": "Fix ODR violation\n\nSwitch everything to libziparchive instead of libziparchive-host to\nprevent ODR violations.\n\nChange-Id: Iadbe6bd22d5560621a5119d0bcc5bb829f476f6f\n"
    },
    {
      "commit": "e7c85ad018185713f8a9baa7fe17619975f76723",
      "tree": "0b6da921b4419986de50974ee7b2513837216647",
      "parents": [
        "a518c150add36b71aaaf9b904d9f5b4ad61b8c8c",
        "12e097c84cef710fa4f254b1811ff70b876e9e9a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 25 15:11:52 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 25 15:11:53 2016 +0000"
      },
      "message": "Merge \"ARM: VIXL32: Implement VIXL-based assembler.\""
    },
    {
      "commit": "a518c150add36b71aaaf9b904d9f5b4ad61b8c8c",
      "tree": "7daa4cc425a5e29179e310646f9c99ce2ebf84b1",
      "parents": [
        "c8cbbf518d8a23fecaedb22c71e44ef3736b08e2",
        "ba6b679bd34449ec56508966706ca1b8d5e7cb17"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Aug 25 12:19:36 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 25 12:19:36 2016 +0000"
      },
      "message": "Merge \"ARM: Purge Arm32Assembler.\""
    },
    {
      "commit": "a75b01a549f0c86669dd24e53c9e3e74f0bf5b40",
      "tree": "fbca55a54871421db00709e6bbb51e48c851069f",
      "parents": [
        "3049b2a54b5b55d094fea603236f492c31b842e1"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Aug 18 13:45:24 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Aug 19 10:47:35 2016 -0700"
      },
      "message": "Fix building tests with partial arch codegen support\n\nAdd conditionals around more code that is only used for codegen for\nspecific architectures, and move a few more files into the\narchitecture-specific codegen lists.\n\nTests: ART_HOST_CODEGEN_ARCHS\u003d\"x86_64 mips\" m -j ART_TARGET_CODEGEN_ARCHS\u003dsvelte test-art-host\nBug: 30928847\nChange-Id: I0444d15e1cafe4c9b13ff78718c3b13b544270e7\n"
    },
    {
      "commit": "12e097c84cef710fa4f254b1811ff70b876e9e9a",
      "tree": "d8044470b0006a5ff22207ae589a8b05829dfdfa",
      "parents": [
        "ba6b679bd34449ec56508966706ca1b8d5e7cb17"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Mon Aug 08 15:13:26 2016 +0100"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Aug 19 15:52:58 2016 +0100"
      },
      "message": "ARM: VIXL32: Implement VIXL-based assembler.\n\nThis patch introduces new ARM assembler (Thumb2) based on VIXL and\nARM VIXL JNI Macro Assembler. Both are turned off by default (JNI\none will be turned on in the following patch).\n\nChange-Id: I5f7eb35da5318d7170b3c7e8553364ebe29cc991\n"
    },
    {
      "commit": "ba6b679bd34449ec56508966706ca1b8d5e7cb17",
      "tree": "ec5985cc0f9e8a75c717513954d25d69e526065e",
      "parents": [
        "f606c3a687e3eae94296ba74d2d820b6e37692ff"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Mon Aug 15 14:22:07 2016 +0100"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Aug 19 10:39:23 2016 +0100"
      },
      "message": "ARM: Purge Arm32Assembler.\n\nUse Thumb2Assembler always. This originated from finding out that\nthe JNI tests are run using the Arm32Assembler however in real\nworld Thumb2Assembler is used for JNI. Therefore Arm32Assembler\ncode is dead except its own tests and the illegitimate use in\nJNI tests.\n\nChange-Id: I9ca6b83582bf97149a46690518ccb9312b1a3b68\n"
    },
    {
      "commit": "2ea915326b0ff9e07f0b3ecb68b78f7d3200d200",
      "tree": "c7ac53f09bb71eb6da19b0a71435774637765942",
      "parents": [
        "33699c9529add1c1ec4bb5dcb0807942709de224"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Thu Aug 11 17:04:14 2016 +0100"
      },
      "committer": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Thu Aug 11 17:04:14 2016 +0100"
      },
      "message": "ARM64: Use libvixld when compiling for debug mode.\n\nVIXL debug mode checks are valuable to catch dangerous code that can\nlead to bugs.\n\nThis patch includes a couple of fixes for issues spotted by VIXL in debug mode.\n\nChange-Id: I388ae1ffd9256ad74d0b6ce06f79cc7927a5f28a\n"
    },
    {
      "commit": "14832efeb92334c562ebedef34e920d30e3cee69",
      "tree": "57d10c24966a46ae1c01861ee579ac6000326c45",
      "parents": [
        "c984725d0035e1925371757c38fed339b409e525"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Aug 05 11:44:32 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Aug 09 13:47:49 2016 +0100"
      },
      "message": "Revert experimental lambda feature.\n\nThis is a revert of the following changes :\n\n30c475a2046951a81769c2db0b2dad66cd71e189.\nlambda: Minor capture-variable/liberate-variable clean-up after post-merge reviews.\n\n6918bf13eb855b3aa8ccdddda2d27ae8c60cec56.\nlambda: Experimental support for capture-variable and liberate-variable\n\nfc1ccd740b7c8e96dfac675cfc580122cd1b40a6.\nlambda: Infrastructure to support capture/liberate-variable dex opcodes\n\ne2facc5b18cd756a8b5500fb3d90da69c9ee0fb7.\nruntime: Add lambda box/unbox object equality\n\n2ee54e249ad21c74f29a161e248bebe7d22fddf1.\nruntime: Partially implement box-lambda and unbox-lambda experimental opcodes\n\n158f35c98e2ec0d40d2c032b8cdce5fb60944a7f.\ninterpreter: Add experimental lambda opcodes for invoke/create-lambda\n\na3bb72036f5454e410467f7151dc89f725ae1151.\nAdded format 25x to dexdump(2).\n\nPlus surrounding cleanups.\n\nTest: make test-art\nChange-Id: Ic6f999ad17385ef933f763641049cf721510b202\n"
    },
    {
      "commit": "ecf75a6a9396475759c5f8b47cdc1929614b9542",
      "tree": "c2816628ca0229ca2da6dde0699eb22f48de3f65",
      "parents": [
        "998bf2b4de04f1664a8ca0085740e266b9e7c4ff"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jul 28 16:01:42 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jul 28 17:12:54 2016 -0700"
      },
      "message": "ART: remove gcc cruft from the makefiles\n\nART only builds with clang now, delete all logic to determine gcc\nvs. clang, and move all LOCAL_CLANG_CFLAGS into LOCAL_CFLAGS.\n\nTest: mma, make test-art-host, make test-art-target\nChange-Id: I578615233ad3e71af18afb47bb11f3be8417216c\n"
    },
    {
      "commit": "7adeda8592f44039ea475dda778ac20d2ed72a0a",
      "tree": "67d7a515b911df1bc26e1c698939397538fbfdc7",
      "parents": [
        "de4cf16f467b531373560ca6eb785f0f36606aae"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 25 08:27:35 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 25 09:10:52 2016 -0700"
      },
      "message": "Revert \"Revert \"ART: Add dex2oat swap usage test\"\"\n\nNow correctly ignores the target (but with enough infrastructure\nto introduce this some day).\n\nThis reverts commit ec743ffd47ac9d3c10a449926d78c2eb51e5208e.\n\nBug: 29259363\nTest: m test-art-host-gtest-dex2oat_test\nTest: m test-art-target-gtest-dex2oat_test (shamu)\nChange-Id: I11b4e755bc8cb1e2eea29cd006e8df67df632c00\n"
    },
    {
      "commit": "ec743ffd47ac9d3c10a449926d78c2eb51e5208e",
      "tree": "467894f22785b3cdaaf5218008674b22fbc2ae02",
      "parents": [
        "ab2a54093386c85756fe78daedd11ff4408a5988"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Jul 23 05:17:18 2016 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Jul 23 05:17:18 2016 +0000"
      },
      "message": "Revert \"ART: Add dex2oat swap usage test\"\n\nThe test doesn\u0027t correctly exclude the target, as it will only work\non the host.\n\nThis reverts commit ab2a54093386c85756fe78daedd11ff4408a5988.\n\nBug: 29259363\nChange-Id: Ie50df2e6f0c63cb10359c3862ad44ee3c03d4e3b\n"
    },
    {
      "commit": "ab2a54093386c85756fe78daedd11ff4408a5988",
      "tree": "0e93457be616ed6ae64721356d0c019478c6881a",
      "parents": [
        "a8f4e9061ad2f35904f6bcabbff624e8b498cef3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 21 15:36:22 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 21 15:37:31 2016 -0700"
      },
      "message": "ART: Add dex2oat swap usage test\n\nAdd a test that checks that native alloc size goes down when using\nswap, as an indication that we\u0027re actually effectively using swap.\n\nBug: 29259363\nTest: m test-art-host-gtest-dex2oat_test\nChange-Id: Ifa5aef1b97696309283de78be08699a6399a4d1d\n"
    },
    {
      "commit": "97c72b76cf776228196c6abd33973ef751de61ad",
      "tree": "7a78a2b19b0847281f8cf69af735b30b15732fa8",
      "parents": [
        "1fd347303275a424d114c9833f954e8e27812554"
      ],
      "author": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Fri Jun 24 16:19:36 2016 +0100"
      },
      "committer": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Fri Jul 15 09:48:07 2016 +0100"
      },
      "message": "Fixes to build against new VIXL interface.\n\n- Fix namespace usage and use of deprecated functions.\n- Link all dependants to new libvixl-arm64 target for now.\n\nChange-Id: Iee6f299784fd663fc2a759f3ee816fdbc511e509\n"
    },
    {
      "commit": "dedde3f10d7801ad862d1ca1de89135decff6a60",
      "tree": "da68a5a4d91875628c528be3556f5a681d53625f",
      "parents": [
        "a14893e4a95eb4d17759173daf8ebf78fcc28086",
        "b5390f71940f2188da9e093d4130753bfb88e25a"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jul 11 09:24:43 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 11 09:24:44 2016 +0000"
      },
      "message": "Merge \"Have LOCAL_ASFLAGS honor debug/non-debug configuration.\""
    },
    {
      "commit": "f51ac42256a840434997c9cabd41dfe6cafaa49f",
      "tree": "f8069ec577b4d0cacf487c63a3dead803af0f63b",
      "parents": [
        "4a7a7d267987928a20af65b07563ad719cb2bb61"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Jul 08 09:22:33 2016 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Jul 08 09:22:33 2016 -0700"
      },
      "message": "Fix missing patchoat dependency for dex2oat test.\n\nChange-Id: I7d00e676b895da805a1e476214cb4c92d7581e2b\nTest: rm -r out \u0026\u0026 m test-art-host-gtest-dex2oat_test\nTest: rm -r out \u0026\u0026 m test-art-host-gtest-oat_file_assistant_test\n"
    },
    {
      "commit": "b5390f71940f2188da9e093d4130753bfb88e25a",
      "tree": "548e378c7776cf535cbe8850a391c33553397d6a",
      "parents": [
        "a7821bffd3aba0705144059c30ba0fef4a400e3d"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jul 04 16:59:53 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jul 04 16:59:53 2016 +0100"
      },
      "message": "Have LOCAL_ASFLAGS honor debug/non-debug configuration.\n\nWith this change the NDEBUG macro can be used in assembly\nfiles.\n\nChange-Id: I640594a20d5654de62cd4116087040b565eef0ce\nTest: ART host tests.\n"
    },
    {
      "commit": "e3fb245fbdb5e91cf8a9750504df40bd629e0080",
      "tree": "a3882db92b7942b2edd6add3090b5c875fef2d09",
      "parents": [
        "1fdb340de4e608a88e8683c857cad5d0da2c16de"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Tue May 10 16:08:05 2016 -0700"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Fri Jul 01 14:10:14 2016 -0700"
      },
      "message": "MIPS32: Improve method invocation\n\nImprovements include:\n- CodeGeneratorMIPS::GenerateStaticOrDirectCall() supports:\n  - MethodLoadKind::kDirectAddressWithFixup (via literals)\n  - CodePtrLocation::kCallDirectWithFixup (via literals)\n  - MethodLoadKind::kDexCachePcRelative\n- 32-bit literals to support the above (not ready for general-\n  purpose applications yet because RA is not saved in leaf\n  methods, but is clobbered on MIPS32R2 when simulating\n  PC-relative addressing (MIPS32R6 is OK because it has\n  PC-relative addressing with the lwpc instruction))\n- shorter instruction sequences for recursive static/direct\n  calls\n\nTested:\n- test-art-host-gtest\n- test-art-target-gtest and test-art-target-run-test-optimizing on:\n  - MIPS32R2 QEMU\n  - CI20 board\n  - MIPS32R6 (2nd arch) QEMU\n\nChange-Id: Id5b137ad32d5590487fd154c9a01d3b3e7e044ff\n"
    },
    {
      "commit": "e1459ae21f1eb6ed779bf9d049e4f41f1edf89e7",
      "tree": "1d324f4b3cb885ff657a84158221c74618f67bcd",
      "parents": [
        "04a23d7e10fa42c5047b6f08048dbaacd1e74fcd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 29 09:36:30 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 29 16:58:53 2016 -0700"
      },
      "message": "ART: Add dex2oat swap-usage parameters\n\nMake the dex2oat swap usage decision dependent on parameters that\ncan be changed on the command line. Both the dex file size and dex\nfile count can be modified through the following to new parameters:\n\n  --swap-dex-size-threshold\n  --swap-dex-count-threshold\n\nThe defaults remain the same (20MB and 2).\n\nFactor out some dex2oat setup code from oat_file_assistant_test\nand use it in a new dex2oat test.\n\nBug: 29557002\nChange-Id: I8863224f0304c98afe251572ffda8c5b3ead735b\nTest: m test-art-host-gtest-dex2oat_test\nTest: m test-art-host-gtest-oat_file_assistant_test\nTest: m test-art-host\n"
    },
    {
      "commit": "4d2bb1bc0a31e52910d2dcac60c685f5ef89ffbf",
      "tree": "1eb3bc323ffe117449212e21110fd8e781a9b3dd",
      "parents": [
        "ee2d222cc5a2e498540b7f767e76d602efc27178"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 24 11:56:59 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 24 15:42:36 2016 +0100"
      },
      "message": "Fix StringReferenceValueComparator.\n\nTest: Added a regression test in string_reference_test.cc,\nrun the standard ART test suite on host and Nexus 5.\n\nBug: 29602109\nChange-Id: Idcc059a07df048a0e3ece257b16b6556f242243e\n"
    },
    {
      "commit": "3add9cb5e94202e65ec3c80f0b70b670d4fa63a1",
      "tree": "8a6b6def3ead8480bdd401534d0f148b4bbbfa13",
      "parents": [
        "63e0a7d057adbe17ba0d34624d83f1120cb1162f"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Thu Apr 14 14:01:33 2016 -0700"
      },
      "committer": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Tue Jun 14 10:31:31 2016 -0700"
      },
      "message": "MIPS32: Assembler tests for MIPS32R6\n\nChange-Id: Iee3f4447a6182a769490b3235abeea9551111193\n"
    },
    {
      "commit": "e5e76f440ebdc30e9dc88fab4909523510efd6b4",
      "tree": "94b4ebab1e7457ef885d5affa7c1617d0bdb7d15",
      "parents": [
        "9969153d38ae9bf9329c852ced0ffe84f7661b13"
      ],
      "author": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Tue May 03 16:15:36 2016 +0100"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 09 18:20:20 2016 -0700"
      },
      "message": "Add Valgrind target tests\n\nChange-Id: I1251ac2122c60ed5fcabf184704bc439243ee85b\n"
    },
    {
      "commit": "372f10e5b0b34e2bb6e2b79aeba6c441e14afd1f",
      "tree": "1f29c2467c8909ef0e0147f37f176caa1bcd2ccc",
      "parents": [
        "1b66fdf3f33c72dfdda4d31f6f17b6a0d8607402"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 17 16:30:10 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jun 02 19:04:20 2016 +0100"
      },
      "message": "Refactor handling of input records.\n\nIntroduce HInstruction::GetInputRecords(), a new virtual\nfunction that returns an ArrayRef\u003c\u003e to all input records.\nImplement all other functions dealing with input records as\nwrappers around GetInputRecords(). Rewrite functions that\npreviously used multiple virtual calls to deal with input\nrecords, especially in loops, to prefetch the ArrayRef\u003c\u003e\nonly once for each instruction.  Besides avoiding all the\nextra calls, this also allows the compiler (clang++) to\nperform additional optimizations.\n\nThis speeds up the Nexus 5 boot image compilation by ~0.5s\n(4% of \"Compile Dex File\", 2% of dex2oat time) on AOSP ToT.\n\nChange-Id: Id8ebe0fb9405e38d918972a11bd724146e4ca578\n"
    },
    {
      "commit": "5edb063fc050bad66fe4ae41c93f6d08b0ccccfe",
      "tree": "89c840f95751667139256587f55b222537cf62c8",
      "parents": [
        "457bc24d2a6842ec43451387276629d1288eb195"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Apr 29 11:14:25 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Mon May 02 13:43:36 2016 -0700"
      },
      "message": "Fix check_jni_compiler tests\n\nTest needs to initialize nativeloader on runtime-\u003eStart(),\nand reset it when runtime is stopped.\n\nBug: http://b/28449304\nChange-Id: I0ba946fe5fc2817dff73154e3191444106dfcb08\n"
    },
    {
      "commit": "3e0e7173c0cdfc57dba39fe781e30d187d50fa9c",
      "tree": "8552d3f59307098dca69bfbcf64228c2c70c2496",
      "parents": [
        "4f4a6c47ef269c68bc136f0805e5e99512d970b7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Apr 22 18:07:13 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 25 13:57:56 2016 +0100"
      },
      "message": "Reduce memory lost by ArenaAllocator for large allocations.\n\nWhen allocating from a new arena, check if the old arena has\nmore remaining space than the new one after the current\nallocation. If so, keep using the old arena to reduce the\namount of \"lost\" arena memory. This can happen when we try\nto allocate more than half the default arena size. If the\nallocation exceeds the default arena size, it\u0027s very likely\nto happen even though the ArenaPool could still provide some\nmuch larger previously allocated arena.\n\nAlso avoid artithmetic overflow when checking if the\nrequest can be satisfied from the current arena.\nAnd abort immediately if calloc() fails.\n\nBug: 28173563\nBug: 28256882\nChange-Id: I1b4bda5d3f32ecd95fbd11addd1f0ca6dcc33e45\n"
    },
    {
      "commit": "6435910a65067fb38477232b2620cc53978b13c7",
      "tree": "d607c9103f46242bce5ed75297c20087c0e3f8cd",
      "parents": [
        "814ae9448d7a620a1855d53c7b69b1b377944a67",
        "46817b876ab00d6b78905b80ed12b4344c522b6c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 19 18:26:22 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 19 18:26:22 2016 +0000"
      },
      "message": "Merge \"Use iterators \"before\" the use node in HUserRecord\u003c\u003e.\""
    },
    {
      "commit": "46817b876ab00d6b78905b80ed12b4344c522b6c",
      "tree": "6715bee60b0682a10437866c9617cb442146aa2f",
      "parents": [
        "f59149a151ee694484e21da7b3b207920dead5a6"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 29 12:21:58 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Apr 19 18:33:06 2016 +0100"
      },
      "message": "Use iterators \"before\" the use node in HUserRecord\u003c\u003e.\n\nCreate a new template class IntrusiveForwardList\u003c\u003e that\nmimicks std::forward_list\u003c\u003e except that all allocations\nare handled externally. This is essentially the same as\nboost::intrusive::slist\u003c\u003e but since we\u0027re not using Boost\nwe have to reinvent the wheel.\n\nUse the new container to replace the HUseList and use the\niterators to \"before\" use nodes in HUserRecord\u003c\u003e to avoid\nthe extra pointer to the previous node which was used\nexclusively for removing nodes from the list. This reduces\nthe size of the HUseListNode by 25%, 32B to 24B in 64-bit\ncompiler, 16B to 12B in 32-bit compiler. This translates\ndirectly to overall memory savings for the 64-bit compiler\nbut due to rounding up of the arena allocations to 8B, we\ndo not get any improvement in the 32-bit compiler.\n\nCompiling the Nexus 5 boot image with the 64-bit dex2oat\non host this CL reduces the memory used for compiling the\nmost hungry method, BatteryStats.dumpLocked(), by ~3.3MiB:\n\nBefore:\n  MEM: used: 47829200, allocated: 48769120, lost: 939920\n  Number of arenas allocated: 345,\n  Number of allocations: 815492, avg size: 58\n  ...\n  UseListNode    13744640\n  ...\nAfter:\n  MEM: used: 44393040, allocated: 45361248, lost: 968208\n  Number of arenas allocated: 319,\n  Number of allocations: 815492, avg size: 54\n  ...\n  UseListNode    10308480\n  ...\n\nNote that while we do not ship the 64-bit dex2oat to the\ndevice, the JIT compilation for 64-bit processes is using\nthe 64-bit libart-compiler.\n\nBug: 28173563\nChange-Id: I985eabd4816f845372d8aaa825a1489cf9569208\n"
    },
    {
      "commit": "8b3f9b246d5bdbf67faeb2b872b75b8d72777bc0",
      "tree": "6cceffd4ee15b9c67f67083851769980cc8988a7",
      "parents": [
        "c4d445a40bf00ab497b5e4d43a6b43eaafb5fa50"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Apr 06 11:22:12 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Apr 18 20:29:08 2016 -0700"
      },
      "message": "Avoid constructing types with errors.\n\nBUG\u003d27626735\n\nRationale:\nDo not construct classes with a link error. Without this,\nthe error type thought it was Object (mirror\u0027s method\nIsObjectClass() returns true if there is no superclass).\n\nChange-Id: I55ca8cc8cfc042210edf748aab10da4c6e345980\n"
    },
    {
      "commit": "9d07e3d128ccfa0ef7670feadd424a825e447d1d",
      "tree": "dfb677fd75f0f297fef9bc49311cf1d22c770f56",
      "parents": [
        "eb98c0ded592cfca8187c744393c82efd1020b2a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Mar 31 12:02:28 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Apr 04 17:50:20 2016 +0100"
      },
      "message": "Clean up OatQuickMethodHeader after Quick removal.\n\nThis reduces the size of the pre-header by 8 bytes, reducing\noat file size and mmapped .text section size. The memory\nneeded to store a CompiledMethod by dex2oat is also reduced,\nfor 32-bit dex2oat by 8B and for 64-bit dex2oat by 16B. The\naosp_flounder-userdebug 32-bit and 64-bit boot.oat are each\nabout 1.1MiB smaller.\n\nDisable the broken StubTest.IMT, b/27991555 .\n\nChange-Id: I05fe45c28c8ffb7a0fa8b1117b969786748b1039\n"
    },
    {
      "commit": "29d38e77c553c6cf71fc4dafe2d22b4e3f814872",
      "tree": "92f34f589af205af56189d221ded293234935c26",
      "parents": [
        "2e89e901b9f303549f3ba64e45d87292e9c986c8"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Mar 23 15:31:51 2016 +0000"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Mar 23 11:30:29 2016 -0700"
      },
      "message": "Revert \"Revert \"Use compiler filter to determine oat file status.\"\"\n\nThis reverts commit 845e5064580bd37ad5014f7aa0d078be7265464d.\n\nAdd an option to change what OatFileManager considers up-to-date.\nIn our tests we\u0027re allowed to write to the dalvik-cache, so it\ncannot be kSpeed.\n\nBug: 27689078\nChange-Id: I0c578705a9921114ed1fb00d360cc7448addc93a\n"
    },
    {
      "commit": "845e5064580bd37ad5014f7aa0d078be7265464d",
      "tree": "1e621756ba6a1fd345f2fb468eed88cdc81886e7",
      "parents": [
        "a62d2f04a6ecf804f8a78e722a6ca8ccb2dfa931"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 23 06:42:05 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 23 06:42:05 2016 +0000"
      },
      "message": "Revert \"Use compiler filter to determine oat file status.\"\n\nBots are red. Tentative reverting as this is likely the offender.\n\nBug: 27689078\n\nThis reverts commit a62d2f04a6ecf804f8a78e722a6ca8ccb2dfa931.\n\nChange-Id: I3ec6947a5a4be878ff81f26f17dc36a209734e2a\n"
    },
    {
      "commit": "a62d2f04a6ecf804f8a78e722a6ca8ccb2dfa931",
      "tree": "d8624bb85016a3301b473b6503324db4d4cf24a3",
      "parents": [
        "48e722432bb6e19df7bba02427e4a707e671af06"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Mar 18 15:05:30 2016 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Mar 22 15:38:36 2016 -0700"
      },
      "message": "Use compiler filter to determine oat file status.\n\nRecord the compiler filter in the oat header. Use that to determine\nwhen the oat file is up-to-date with respect to a target compiler\nfilter level.\n\nNew xxx-profile filter levels are added to specify if a profile should\nbe used instead of testing for the presence of a profile file.\n\nThis change should allow for different compiler-filters to be set for\ndifferent package manager use cases.\n\nBug: 27689078\nChange-Id: Id6706d0ed91b45f307142692ea4316aa9713b023\n"
    },
    {
      "commit": "3c94f0945ed596ceee39783fa075f013b65e80a1",
      "tree": "c10b5808a5d7157371c2750823e6a168c73aa231",
      "parents": [
        "162629ee8ac0fee2df0c0cdec27dff34bc6f0062"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 21 17:10:24 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 21 17:39:20 2016 +0000"
      },
      "message": "Remove Quick from tree.\n\nSo long, old friend.\n\nChange-Id: I0241c798a34b92bf994fed83888da67d6e7f1891\n"
    },
    {
      "commit": "dc15e8919c152357f3fcb40afcf3412d9b155c8a",
      "tree": "18646509125f3b812ce65f06061c623d9c41b68d",
      "parents": [
        "3d63118460dbcff330cb188ea86bd5ad5cda5f99"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Mar 10 13:49:14 2016 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Mar 11 10:21:15 2016 -0800"
      },
      "message": "Suppress a valgrind libc issue.\n\nTo prevent our valgrind tests from failing.\n\nBug: 27596582\nBug: 27156726\nChange-Id: Ic55256bd09fdffcf2a0c8fa4fa7951bc648b86a8\n"
    },
    {
      "commit": "07f6818ef68046d4749963b3bd59f7e93cf43fa9",
      "tree": "f92c036b6340bba99208ca2810f1453ed45d35d7",
      "parents": [
        "8411aa3d88f4baf583ec4ecd62bb619cacd28acb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Mar 10 17:25:50 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Mar 10 17:30:25 2016 +0000"
      },
      "message": "ART: Do not use vixld - workaround to fix dex2oatds.\n\nThis is a quick workaround for ODR violations caused\nby linking libvixl.a compiled without VIXL_DEBUG with\nthe libartd-compiler.a compiled with VIXL_DEBUG.\n\nBug: 27588884\nChange-Id: Ib1af165f177f125f03cdd99777dff4c2912f6405\n"
    },
    {
      "commit": "970e19164326d93947441f9f0c2c754225dfb6e8",
      "tree": "2829252b919888076014bf727d396722b1c5a9dd",
      "parents": [
        "d15ede2df7d157ea5480614fd18c2bf0d37a6c2a"
      ],
      "author": {
        "name": "Bilyan Borisov",
        "email": "bilyan.borisov@linaro.org",
        "time": "Wed Feb 10 11:51:17 2016 +0000"
      },
      "committer": {
        "name": "Bilyan Borisov",
        "email": "bilyan.borisov@linaro.org",
        "time": "Wed Feb 24 14:49:55 2016 +0000"
      },
      "message": "Made art/runtime/arch/stub_test.cc compile with -O2 again.\n\nThe test file art/runtime/arch/stub_test.cc wasn\u0027t compiling with -O2\nas the optimisations interacted with -fstack-protector-strong. The\naarch64 _asm_ block in the Invoke3WithReferrerAndHidden function was\nclobbering all possible registers, and clang requires at least one\nregister to be live across an _asm_ block to do the checking.\n\nThe fix was to remove a callee-saved register, x20, from the clobber\nlist of the aarch64 asm block of Invoke3WithReferrerAndHidden. The\nblock was also modified to save and restore x20 to ensure that it\nwon\u0027t be clobbered by the stubs invoked by the blr instruction. Also\nadded some comments above the clobber list.\n\nChange-Id: I03597fd2d14cf2d6e32edf02835aee2eb68bab17\n"
    },
    {
      "commit": "bf63303f8a98c88fb8f0a726ab9431660f26df5a",
      "tree": "c31615ac4c02b2f9a0b56cf843d211729e3846fb",
      "parents": [
        "9baccdc75ee01dd96ac4e57e17965635f96def27",
        "944da603cde59a4277f3bbc31d860a90842a1a2a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 24 11:52:14 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 24 11:52:14 2016 +0000"
      },
      "message": "Merge \"ART: Allow method references across oat files for multi-image, 2nd attempt.\""
    },
    {
      "commit": "944da603cde59a4277f3bbc31d860a90842a1a2a",
      "tree": "733bc38a905822097a6a601a1de20b49f54440d3",
      "parents": [
        "52d9c2f0c584877e9c7f9e859d8068b3a2ccb12f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 19 12:27:55 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 24 11:19:23 2016 +0000"
      },
      "message": "ART: Allow method references across oat files for multi-image, 2nd attempt.\n\nThese were disabled because we didn\u0027t have sufficient\ninformation about the multi-image layout when processing\nlink-time patches in OatWriter. This CL refactors the\nELF file creation so that the information is available.\n\nAlso clean up ImageWriter to use oat file indexes instead\nof filenames and avoid reopening the oat file to retrieve\nthe checksum.\n\nChange-Id: Icc7b528deca29da1e473c8f079521a36d6c4892f\n"
    },
    {
      "commit": "2e2db786b8fbaa4dceb37603a4296b0b2aea4e9e",
      "tree": "7fef29d5fcdb997950fd1a2524ae853b4dcfac3d",
      "parents": [
        "3da74687e42de7d33a8e75df9bd64374e650f75e"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Feb 23 12:00:03 2016 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Feb 23 12:00:03 2016 +0000"
      },
      "message": "Revert \"Revert \"Add profman tool: responsible to process profiles\"\"\n\nThis reverts commit 3da74687e42de7d33a8e75df9bd64374e650f75e.\n\nChange-Id: Id005096bd8063c6c602744d4476d5eb7e0d34e90\n"
    },
    {
      "commit": "3da74687e42de7d33a8e75df9bd64374e650f75e",
      "tree": "f3bf62678200380dc672647af1da136c562f60b3",
      "parents": [
        "6caefd983a800a063b219f1d3ed71b1416cecd70"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 22 22:37:52 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 22 22:37:52 2016 +0000"
      },
      "message": "Revert \"Add profman tool: responsible to process profiles\"\n\nNeeds a profile_assistant_test fix.\n\nBug: 26719109\nBug: 26563023\n\nThis reverts commit 6caefd983a800a063b219f1d3ed71b1416cecd70.\n\nChange-Id: Ibdeb7385737dd7846ed861e0a95f083abb9aa974\n"
    },
    {
      "commit": "6caefd983a800a063b219f1d3ed71b1416cecd70",
      "tree": "7fef29d5fcdb997950fd1a2524ae853b4dcfac3d",
      "parents": [
        "c017318a7c5a9142b1fff9f57eb4105b1d397bbd"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 01 12:06:18 2016 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 22 13:55:18 2016 +0000"
      },
      "message": "Add profman tool: responsible to process profiles\n\nThis pulls out profile parsing from dex2oat into a separate tool.\nSome additional refactoring:\n- better return codes\n- dex2oat now accepts only one profile file\n\nThis is the first step towards support secondary dex files and\nextracting profiles out of the code_cache directory.\n\nBug: 26719109\nBug: 26563023\n\n(cherry picked from commit d81c289e58f4ced8ec7674fd377c356669f97227)\n\nChange-Id: I34d408faa318e866e1a23d4d04c369131ee5012b\n"
    },
    {
      "commit": "4fda4eb799c95be266f52aaf3461a440ea86b841",
      "tree": "54a7e56b5633caf2b868f6028010b488eb1923ce",
      "parents": [
        "3c258f4d7a6492af733a9351ba430d876a3e5ccf"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Feb 05 13:34:46 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Feb 08 11:33:50 2016 +0000"
      },
      "message": "Move code related to debug info generation to its own directory.\n\ndebug/dwarf/ contains helper classes which hide the details\nof the DWARF file format. It acts as independent DWARF library.\n\ndebug/ contains ART-specific code which generates ELF debug\nsections (which includes non-DWARF sections like .symtab).\n\nChange-Id: Id351f604e4e64be2ca395a78324ea02e30481497\n"
    },
    {
      "commit": "28b1cf779b8c438b01b28a4adfeb22a4a8ebdb12",
      "tree": "f0b99c5f28ebc07523b932b5c2b31f20ab539fbb",
      "parents": [
        "f74388daf23522dd4e9ebe6640030f4fd52c52ea"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jan 15 16:44:57 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 19 13:41:26 2016 -0800"
      },
      "message": "Change space base test to use parameters\n\nStill need to convert remaining space tests to use gtest value\nparameters.\n\nBug: 10245322\nChange-Id: Iad3183d46f2fff1ec2aee6923c989433885adf81\n"
    },
    {
      "commit": "f74388daf23522dd4e9ebe6640030f4fd52c52ea",
      "tree": "fe07a7150fbe132bdc7d78f62dbe039daf3eaae3",
      "parents": [
        "ecfd0df971c538456887866307c007c8b0a25470",
        "877fd963548a3175665bfef25b0d24bc0e5a0135"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jan 19 19:34:40 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 19 19:34:40 2016 +0000"
      },
      "message": "Merge \"Improve profile processing\""
    },
    {
      "commit": "877fd963548a3175665bfef25b0d24bc0e5a0135",
      "tree": "db4cae18266f7cd9415a362c21d50fef93a8488f",
      "parents": [
        "37a5abcf5e7644ae1fd1a85e865c8a71e38a9af2"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jan 05 14:29:29 2016 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jan 19 11:17:24 2016 -0800"
      },
      "message": "Improve profile processing\n\n- allow file descriptors in addition to file names for profiles\n- fix some minor issues (wrong comparison signs, unhandled errors)\n- added gtests for profile_compilation_info, profile_assistant\nand compiler_driver\n\nBug: 26080105\nChange-Id: I136039fa1f25858399000049e48b01eafae54eb1\n"
    },
    {
      "commit": "10edbb159afae232817c86fc06a6801349f05bae",
      "tree": "ab487114d0f5e906471fa5459a075b3648b72a8e",
      "parents": [
        "fcad0099eeceb6f2c09a6de28d8e8f05dab69ed5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 06 17:59:49 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jan 08 09:48:43 2016 -0800"
      },
      "message": "ART: Use libopenjdkd\n\nLoad libopenjdkd in debug mode. Add dependencies for libopenjdkd\nin the Makefiles.\n\nBug: 26421792\nChange-Id: Ie64cd56f73901b9c7645e46384d753752bbd5351\n"
    },
    {
      "commit": "c7d4a5889085de271130c1ebeb83f96881195124",
      "tree": "2fa8b2afeb5e1621627cfa7732f7fa1db6fbd969",
      "parents": [
        "c09b13f0cfc86243a594893b38cdd7cf725ae371"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 30 11:52:02 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 05 08:33:47 2016 -0800"
      },
      "message": "ART: Use non-stripped core jars in gtests\n\nTo support emulators and other preopted device configurations, use\na special core-libart and core-oj version that will never be stripped.\n\nBug: 24535627\nChange-Id: Ie632bc382bbc753e9c100039f2ecc4ac1f2ab249\n"
    },
    {
      "commit": "aa0fab302b762c776ecda4a5dd80625ccd64bde3",
      "tree": "961904396907d5ae7bab13f64f9eae35044e3446",
      "parents": [
        "df0de0459ccd661c1c79aec3035dc64d4997ad3d",
        "453f41e99570adeeda6fd79eccc9d8b4ce55b722"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Dec 18 18:01:35 2015 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Dec 18 18:01:35 2015 -0800"
      },
      "message": "Merge \"art: use -O1 to compile tests with clang for arm64\" am: 2f125e3c7a\nam: 453f41e995\n\n* commit \u0027453f41e99570adeeda6fd79eccc9d8b4ce55b722\u0027:\n  art: use -O1 to compile tests with clang for arm64\n"
    },
    {
      "commit": "ba257bc268f4f7ae4bb59d79c20bf0110dcb81fb",
      "tree": "7f2000acd5eff80d65086956860aa999ec754b7f",
      "parents": [
        "2cd15c35df125955e02d9c3c5178d90c6bb9a3bc"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Dec 18 17:48:50 2015 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Dec 18 17:48:50 2015 -0800"
      },
      "message": "art: use -O1 to compile tests with clang for arm64\n\narm64 clang fails to compile art/runtime/arch/stub_test.cc with:\nart/runtime/arch/stub_test.cc:178:9: error: inline assembly requires\nmore registers than available\n        \"sub sp, sp, #64\\n\\t\"\n        ^\n\nPass -O1 to all art tests compiled with clang for arm64.\n\nBug: 26275713\nChange-Id: Ib1a1c309aef73a2d33d37d720e5e11b8fe7a248e\n"
    },
    {
      "commit": "8701fc20130939b9a11f801992607daee7f70871",
      "tree": "e998ab6d3aab4e8dfd36f999ca216b07eecb609e",
      "parents": [
        "7c21c7cb329990fed53e9878ef2479e3009bf286",
        "0b81f1715d6af9f98f982d6511e48973aa5a836a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Dec 08 16:25:47 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Dec 08 16:25:47 2015 +0000"
      },
      "message": "Merge \"Allow initializing runtime with parsed options.\" am: e0d25b156e am: 2433d4e17c\nam: 0b81f1715d\n\n* commit \u00270b81f1715d6af9f98f982d6511e48973aa5a836a\u0027:\n  Allow initializing runtime with parsed options.\n"
    },
    {
      "commit": "88b2b80aed15bb1f931cddd40e44ca525ef10018",
      "tree": "04b2f9d27863cd469dae8050335f197496f24ff2",
      "parents": [
        "cf6bd55863ded11e0533966657871aca444505a5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 04 14:19:04 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 07 12:38:21 2015 +0000"
      },
      "message": "Allow initializing runtime with parsed options.\n\nNeeded by upcoming refactoring of dex2oat to allow\nearly writing of dex files to the oat file.\n\nChange-Id: Ia13c26132846801522f181f51f64035d625e8416\n"
    },
    {
      "commit": "22ad8def99d0ee0f6d072e630c5414f8033446bf",
      "tree": "1107a9dc834d36ba7868246cec03b9631af97fff",
      "parents": [
        "248108e2d897a30ad328a8b05a0ab0e1e2788385",
        "4d7bd605663a01daea6a68bfe09dadc575ba95fc"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 04 18:10:15 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Dec 04 18:10:15 2015 +0000"
      },
      "message": "Merge \"Add ElfWriter::GetStream().\" am: cf6bd55863 am: e3ce7c04c7\nam: 4d7bd60566\n\n* commit \u00274d7bd605663a01daea6a68bfe09dadc575ba95fc\u0027:\n  Add ElfWriter::GetStream().\n"
    },
    {
      "commit": "131980fc9aeb2b4d03480443e0fb494c76ce03a2",
      "tree": "a071f8a706146ed4279c3cbe933d9a46910f480d",
      "parents": [
        "68cebffee2f44f0345bd7be7e4cbad0f10e64082"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 03 18:29:23 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 04 15:58:02 2015 +0000"
      },
      "message": "Add ElfWriter::GetStream().\n\nThis will be used for writing the OatHeader which is\ncurrently oddly written through the .text stream.\n\nAlso move the error delaying output stream out of the\nElfBuilder\u003c\u003e to its own file and move all output stream\nfiles to compiler/linker/.\n\nChange-Id: I00db4e33ed80ac4757ec459946c7b5ae014a3a2e\n"
    },
    {
      "commit": "a7a4759946d9f11c88dc108b2b6a9518ce9c1e18",
      "tree": "f5522eb632ff53b4c285ff76a3966d37a995777a",
      "parents": [
        "099ab4d06857ccbe642d98ba25df1eb02aee99c7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 24 09:17:30 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 24 10:54:16 2015 +0000"
      },
      "message": "Revert \"lambda: Add support for invoke-interface for boxed innate lambdas\"\n\n955-lambda is flaky\n\nBug: 24618608\nBug: 25107649\n\nThis reverts commit 457e874459ae638145cab6d572e34d48480e39d2.\n\n(cherry picked from commit 3a0909248e04b22c3981cbf617bc2502ed5b6380)\n\nChange-Id: I24884344d21d7a4262e53e3f5dba57032687ddb7\n"
    },
    {
      "commit": "3a0909248e04b22c3981cbf617bc2502ed5b6380",
      "tree": "b0b7013ea78b10f23fae75ef145e53a696ff797c",
      "parents": [
        "457e874459ae638145cab6d572e34d48480e39d2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 24 09:17:30 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 24 09:17:30 2015 +0000"
      },
      "message": "Revert \"lambda: Add support for invoke-interface for boxed innate lambdas\"\n\n955-lambda is flaky\n\nBug: 24618608\nBug: 25107649\n\nThis reverts commit 457e874459ae638145cab6d572e34d48480e39d2.\n\nChange-Id: I24884344d21d7a4262e53e3f5dba57032687ddb7\n"
    },
    {
      "commit": "121b25e246b7012cfd895f205855c6102da48305",
      "tree": "8d7e4dae58b59e9a554db03a06c800f3caf5b6b9",
      "parents": [
        "31f7afcd651ca5836892d1c24010933fa40c29e4",
        "13ca74fed068a6a49221b5213ce0b1bebeda3ed6"
      ],
      "author": {
        "name": "Przemyslaw Szczepaniak",
        "email": "pszczepaniak@google.com",
        "time": "Fri Nov 20 11:24:33 2015 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Sat Nov 21 16:28:15 2015 +0000"
      },
      "message": "Merge mnc-dr-enso-dev into goog/master\n\nBug: 25758743\nChange-Id: I19d433934f01856e7b5a7392a58b759c3ac386e7\n"
    },
    {
      "commit": "457e874459ae638145cab6d572e34d48480e39d2",
      "tree": "b192c4698c4889ae90db6abe2652199802213fe6",
      "parents": [
        "3944f7175dcf60316ba58a42698ccf23c65ac57c"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Oct 22 17:37:50 2015 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Nov 20 16:33:06 2015 -0800"
      },
      "message": "lambda: Add support for invoke-interface for boxed innate lambdas\n\nLambda closures created with the \u0027create-lambda\u0027 instruction\n(termed \"innate lambdas\") can be turned into an object with \u0027box-lambda\u0027.\n\nThis CL enables support for those kinds of lambdas to work with\n\u0027invoke-interface\u0027 by generating a proxy class for the lambda.\n\nNote: MIPS32/64 support not included.\n\nBug: 24618608\nBug: 25107649\nChange-Id: Ic8f1bb66ebeaed4097e758a50becf1cff6ccaefb\n"
    },
    {
      "commit": "763a31ed7a2bfad22a9cb07f5301a71c0f97ca49",
      "tree": "c90399f680cdd60be823692f9431ebd816f5d336",
      "parents": [
        "2f99a1c5b70852533a1c7406c1965d753efc810c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 16 16:05:55 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 18 17:03:50 2015 -0800"
      },
      "message": "Add immune spaces abstraction\n\nImmuneSpaces is a set of spaces which are not reclaimable by the GC in\nthe current collection. This set of spaces does not have requirements\nabout space adjacency like the old ImmuneRegion. ImmuneSpaces generates\nthe largest immune region for the GC. Since there is no requirement on\nadjacency, it is possible to have multiple non-adjacent applicaton\nimage files.\n\nFor image spaces, we also look at the oat code which is normally after\nthe application image. In this case, we add the code as part of the\nimmune region. This is required to have both the boot image and the\nzygote space be in the same immune region (for performance reasons).\n\nBug: 22858531\n\nChange-Id: I5103b31c0e39ad63c594f5557fc848a3b288b43e\n"
    },
    {
      "commit": "d7b3c7f0044bc5d120cd6d516866ab399489b4e7",
      "tree": "14e6a0444b3b50094971afcee7cecc483b5b95f2",
      "parents": [
        "472cb6bc8ae71db56558c5ab42c4bbde2cbd6daf"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Nov 18 09:49:10 2015 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Nov 18 12:45:39 2015 +0000"
      },
      "message": "Rename native library.\n\nChange-Id: I3b89059a91ebb70ee5007a03d5dd237f6bff1251\n"
    },
    {
      "commit": "d50687efe56a0516e0df17f65e8fce43681b3c42",
      "tree": "94047e789847c4ae717bdc235db9c5e21c8327e4",
      "parents": [
        "51147f2188e96be9260170452d7c624c4fa81727"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Nov 17 12:37:27 2015 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Nov 17 12:37:27 2015 +0000"
      },
      "message": "Fix a few art-test related issues.\n\n- Add core-oj to the list of sync targets.\n- Fix --no-image by setting the boot classpath properly.\n- Demonstrate T7-9 vision.\n\nChange-Id: I84b6afbbcf09a70c7afe6a35cb9782c86137db84\n"
    },
    {
      "commit": "bc36a0f4d8194f9e3e79dde3b7d01098894535ee",
      "tree": "9a9a1b42881b98103536ea87b798c4af17425e00",
      "parents": [
        "4678b6bb31123076c2d921b20b52e52459d8b650"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Wed Nov 11 12:04:04 2015 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Nov 13 16:08:01 2015 +0000"
      },
      "message": "Build libxxavacore library for gtests\n\nIt is a dependency for exception_test, jni_compiler_test,\nreflection_test and stub_test.\n\nChange-Id: I0a4ed85762091617842901f9bd590d24fe39ec7b\n"
    },
    {
      "commit": "07ddb6f713f8c919e6da7c4b473cfb3bacb7cf10",
      "tree": "9b79188b4cb4a10a62a22f9e384a1ad01c13f421",
      "parents": [
        "3f96f42b3788f9b9b243822212ec686e599279ef"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 05 11:16:34 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 05 15:23:24 2015 -0800"
      },
      "message": "Fix elf writer to properly handle empty text sections\n\nPreviously, empty text sections caused an underflow in the oat file\nsize.\n\nAdded regression test.\n\nBug: 22858531\nChange-Id: I9391a3666ab04e32472a9776d5217fe1743417a9\n"
    },
    {
      "commit": "d9786b0e5be23ea0258405165098b4216579209c",
      "tree": "88641c107d29d0848ce8219652b8d0b1cdd3755c",
      "parents": [
        "57bee8dc2206404164606d4f5cabde272505f5fa"
      ],
      "author": {
        "name": "Artem Udovichenko",
        "email": "artem.u@samsung.com",
        "time": "Wed Oct 14 16:36:55 2015 +0300"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 29 09:38:06 2015 -0700"
      },
      "message": "Implementation of fast lookup table to search class_def by descriptor\n\nLookup table is a hash table which built at compile time and stored\ninto oat file. At runtime the table is restored and used in the\nmethod DexFile::FindClassDef(const char*) to perform fast search of\nthe class_def_idx by class descriptor. Advantages of the lookup table\nover the HashSet (runtime/base/hash_set.h) are:\n1. Lookup table is built at compile time and uses read-only memory at\nruntime\n2. Lookup table uses less memory then DexFile::Index (less by 80% for\n/system/framework/framework.jar on Nexus5)\n3. Lookup table does less string comparisons compared with HashSet\n(less by 70% for zygote process on Nexus5)\nThe disadvantage of the lookup table is it increased boot.oat size by\n0.2% on Nexus5 and application .oat file by 0.3% in average on Nexus5.\n\nmathieuc changes:\nCreate lookup table in dex2oat to speed up compilation. Clean up code\nto follow style guide and use less static functions. Added\nperformance measurements.\n\nCompile ~100 APKs 5 times with filter interpret-only:\nBefore:\nreal  1m8.989s\nuser  0m59.318s\nsys 0m7.773s\n\nAfter:\nreal  1m1.493s\nuser  0m52.055s\nsys 0m7.581s\n\nApp launch (AOSP N5 maps, average of 45 runs):\nBefore: 966.84ms\nAfter: 923.733ms\nLaunch speedup is 4.7%\n\nMemory usage compared to HashSet index on 50 various APK:\n32 bit: HashSet ~625694b vs TypeLookupTable ~404268b\n64 bit: HashSet ~1251390b vs TypeLookupTable ~404268b\n\nBug: 10921004\nBug: 20269715\n\nChange-Id: I7246c1d9ad9fe81fe5c5907a4bf70396d8f9242a\n"
    },
    {
      "commit": "35831e8bfa1c0944d4c978d99c4c5b9577945170",
      "tree": "a347ecaf4265a1713c86d528392e162d5edfaebc",
      "parents": [
        "171b12e8060f63cf900ffc43d6db35125f6b8c83"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 11 11:59:18 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 27 15:13:37 2015 +0000"
      },
      "message": "Reduce memory used by CompiledMethods.\n\nUse LengthPrefixedArray\u003c\u003es instead of SwapVector\u003c\u003es to store\nCompiledMethod data and get rid of the unnecessary members\nof CompiledMethod to reduce dex2oat memory usage. Refactor\nthe deduplication from CompilerDriver to a new class.\n\nUse HashSet\u003c\u003e instead of std::set\u003c\u003e for the DedupeSet\u003c\u003e to\nfurther decrease the memory usage and improve performance.\n\nThis reduces the dex2oat memory usage when compiling boot\nimage on Nexus 5 (with Optimizing, -j1) by ~6.75MiB (5%).\nThis also reduces the compile time by ~2.2% (~1.6% dex2oat\ntime; with Optimizing, without -j).\n\nChange-Id: I974f1f5e58350de2bf487a2bca3907fa05fb80ea\n"
    },
    {
      "commit": "66e33f1906be899f140d5fe2a657db4e3993106e",
      "tree": "eaef317e550fb4aa0612ba5d7a56ea42bc32f227",
      "parents": [
        "31e913fbea3d669b2067248f2163332940d8ec45",
        "0c3c2668ef44fdbd18d97f9134a85d1a7d561aa4"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 21 10:00:34 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 21 10:00:34 2015 +0000"
      },
      "message": "Merge \"Use DlMallocSpace for the JIT code cache.\""
    },
    {
      "commit": "0c3c2668ef44fdbd18d97f9134a85d1a7d561aa4",
      "tree": "92e8e49ed1b4d5442f20721858c476ed5769d0ea",
      "parents": [
        "7edef7441d28db1403fbc5641b56a26ecf355879"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Oct 15 13:53:04 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 21 10:59:27 2015 +0100"
      },
      "message": "Use DlMallocSpace for the JIT code cache.\n\n- Also tidy up some code in the JIT compiler.\n- And mprotect code space to be writable only when allocating.\n\nChange-Id: I46ea5c029aec489f2af63452de31db3736aebc20\n"
    }
  ],
  "next": "d57d454a11ac6f49eaa397ec14d6231e3a2727b7"
}
