)]}'
{
  "log": [
    {
      "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": "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": "0a4c75f41adc193a55a1cdada87af987373a13fb",
      "tree": "2015203b65da9065aece7bdc9c514479c3262b7c",
      "parents": [
        "26ead4975e1752e8ae2f5ed6fda73876c4f9ff59"
      ],
      "author": {
        "name": "Wojciech Staszkiewicz",
        "email": "staszkiewicz@google.com",
        "time": "Tue Sep 13 12:06:36 2016 -0700"
      },
      "committer": {
        "name": "Wojciech Staszkiewicz",
        "email": "staszkiewicz@google.com",
        "time": "Wed Sep 14 16:34:37 2016 -0700"
      },
      "message": "Log PPID when running dex2oat\n\nLog parent\u0027s pid in dex2oat. Logging happens only in verbose\ncompiler mode.\n\nThis can be used to find out which process executed a dex2oat\ninstance.\n\nTest: m test-art-host\nChange-Id: I49a139ed39a2454649f21275d6be860cbab96f55\n"
    },
    {
      "commit": "afa7e456388994ebbb9debd9dd89af3fbe964826",
      "tree": "69c31579f4440d9e8cffbe63b9975bff8a8c8ea2",
      "parents": [
        "b180b893b5acb5c55251522465f9d20ed45c3b5a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 14 10:26:56 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 14 10:29:40 2016 +0100"
      },
      "message": "Make dex2oat art_cc_binary instead of just cc_binary.\n\nThis to get customized properties like CUSTOM_TARGET_LINKER.\n\nChange-Id: Ifa25c52faa40fa6da40b614f664ab24ac1b7356a\n"
    },
    {
      "commit": "2cfc4ba357f227c81ed8c091212e7e083a72c2dc",
      "tree": "bd5cc608b4a19b72ea20ebc04fab169821a7b2d5",
      "parents": [
        "aa63aa2a2159236cdd4199161a1644b993a81a11"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Sep 13 16:55:55 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Sep 13 16:58:02 2016 -0700"
      },
      "message": "Fix mac build\n\n-z muldefs doesn\u0027t exist on mac.  It is only necessary for dex2oats,\nwhich doesn\u0027t build on mac, move it from the defaults to the dex2oats\ntargets.\n\nChange-Id: I47f35d159fc0602f54412e12ef44798ca4afa4de\n"
    },
    {
      "commit": "aa63aa2a2159236cdd4199161a1644b993a81a11",
      "tree": "58e8c69661f5b7b98c8aae73973c2ad59e8107a7",
      "parents": [
        "54ec35e4295b83939d7213d8fc73b065c6a2c1d1"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Sep 13 14:07:00 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Sep 13 14:07:00 2016 -0700"
      },
      "message": "Fix mac build\n\nChange-Id: Ic3e74f96645384c0cec3aa5156f4ead8912f3be2\n"
    },
    {
      "commit": "c7376e0f8002d7838c3d69569028fbc9b91a38f3",
      "tree": "c325af4f653255d5957cd16463afbe880d5cdb0d",
      "parents": [
        "47b451546d1a5c0fbb5e3816373395762a736515"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Sep 08 12:52:18 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Sep 12 16:29:02 2016 -0700"
      },
      "message": "Convert more of art to Android.bp\n\nConvert dex2oat, imgdiag, patchoat, and profman to Android.bp.\n\nTest: m -j test-art-host\nTest: mmma -j art\nChange-Id: If2acd47189e5a944732c2c00c2bf31265f887161\n"
    },
    {
      "commit": "7b49e6cade09bc65b3b5f22d45fc9d0a7184e4f2",
      "tree": "36bb77d376708ba0f054c9820f4b7ed51437fbb2",
      "parents": [
        "3bac5443975cd6312e7c6282b94014db25f369d7"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Sep 01 11:06:18 2016 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Sep 12 14:39:07 2016 +0100"
      },
      "message": "Introduce VDEX file, use it for DEX files\n\nThis patch introduces a new output file called VDEX. In the future,\nVDEX files will store pre-validated DEX files which do not need to be\nre-extracted and re-verified when recompiling, e.g. due to new\nprofiling information or after a system update.\n\nWith this CL, the OatWriter writes DEX files into the VDEX and the\nrest of its output into OAT. The OatFile class and related classes\nare updated to load the VDEX at runtime and mmap the DEX file section\nfrom it. Patchoat creates symlinks to the source VDEX files in the\ntarget directory or copies the files if passed in as file descriptors.\n\nThe feature can be disabled by setting the environment variable\nART_ENABLE_VDEX to false.\n\nTest: m test-art-host\nBug: 30937355\nChange-Id: I54dcaececf6814c258c80524ec15e2e2ef69c8dd\n"
    },
    {
      "commit": "04147efc0621ce09fb4548cc482d42da2ff4e088",
      "tree": "284a0e9736c69690ff33264730af8ebe6308ebed",
      "parents": [
        "af54785797b2c2358de417780adf6bdd513f29f3"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Sep 06 11:09:41 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Sep 06 11:09:41 2016 +0100"
      },
      "message": "Add build rules for statically linked oatdump on host.\n\nAlso extend oatdump_test to exercise oatdump(d)s.\n\nTest: ART_BUILD_HOST_STATIC\u003dtrue m test-art-host-gtest-oatdump_test\nBug: 29530992\nChange-Id: I6eb6c96f385832733d18d0400abd9974a6d8e45c\n"
    },
    {
      "commit": "3e318825748197e728618fedc56a156e2981e78c",
      "tree": "33503c4e144417f5e8fca39ce6b1115c9b49395c",
      "parents": [
        "cc55a7ce2aa0f10c2da9efaa89855cf075e56e20",
        "de7b49ac521d3d4eeff05f09f84a256565a9cdef"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Aug 26 18:32:23 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 26 18:32:23 2016 +0000"
      },
      "message": "Merge \"Fix ODR violation\""
    },
    {
      "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": "90c06dbc664002a22b877268384f1b2b678ae61b",
      "tree": "815e1575f6ac9935e94df8a142ae9ec3f567b410",
      "parents": [
        "1f7f3bd26ecad4366c904b7e7d05587fc7a83ea2"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Aug 25 15:29:25 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Aug 25 15:36:03 2016 -0700"
      },
      "message": "Remove libLLVM* from art\n\nThe functionality in libbacktrace that depended on libLLVM* has been\nsplit out into libbacktrace_offline.  Remove the unnecessary\ndependencies from dex2oats.\n\nTest: m -j dex2oats ART_BUILD_HOST_STATIC\u003dtrue\nChange-Id: I79b99c4d420caefbdf6aa81541120ddedd2149c5\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": "8be74495acc802d63c0bee8defb60a8b906b3128",
      "tree": "fc67384f4e53afd28267b32f65d57b7da8a8af20",
      "parents": [
        "592c9bd2ad30480ba058e689be976e7a2107595a",
        "625347902b97672a0a8a4260d6d161741243032d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Aug 12 06:16:40 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 12 06:16:40 2016 +0000"
      },
      "message": "Merge \"Enable compiled-methods\u003d dex2oat switch\""
    },
    {
      "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": "625347902b97672a0a8a4260d6d161741243032d",
      "tree": "7532ce3e47f373015a1c6ad1448fc4f15d383e46",
      "parents": [
        "5c6233c00f1f50e8539fdfffd06c31359eac8b89"
      ],
      "author": {
        "name": "Wojciech Staszkiewicz",
        "email": "staszkiewicz@google.com",
        "time": "Tue Aug 09 14:30:55 2016 -0700"
      },
      "committer": {
        "name": "Wojciech Staszkiewicz",
        "email": "staszkiewicz@google.com",
        "time": "Tue Aug 09 16:52:37 2016 -0700"
      },
      "message": "Enable compiled-methods\u003d dex2oat switch\n\nPass compiled_methods instead of nullptr from dex2oat to\ncompiler driver.\n\nTest: Run dex2oat with compiled-methods and dump-passes\nset. Look at the dump-passes output and verify that only\nmethods provided in compiled-methods are compiled.\n\nChange-Id: Ic7249878f7bde5fdb18f9cc348b7ba82de486df8\n"
    },
    {
      "commit": "5319d3cca5a9b8e9e3f59421818272b966575172",
      "tree": "a90bd83b7e69bbff0be601088bb1c764125d8cf6",
      "parents": [
        "9cff32df754c428ef69ddb61e7600abfd4c75266"
      ],
      "author": {
        "name": "Wojciech Staszkiewicz",
        "email": "staszkiewicz@google.com",
        "time": "Mon Aug 01 17:48:59 2016 -0700"
      },
      "committer": {
        "name": "Wojciech Staszkiewicz",
        "email": "staszkiewicz@google.com",
        "time": "Mon Aug 08 11:24:26 2016 -0700"
      },
      "message": "Implement running user defined list of passes\n\nThis change introduces new dex2oat switch --run-passes\u003d. This switch\naccepts path to a text file with names of passes to run.\nCompiler will run optimization passes specified in the file rather\nthen the default ones.\n\nThere is no verification implemented on the compiler side. It is user\u0027s\nresponsibility to provide a list of passes that leads to successful\ngeneration of correct code. Care should be taken to prepare a list\nthat satisfies all dependencies between optimizations.\n\nWe only take control of the optional optimizations. Codegen (builder),\nand all passes required for register allocation will run unaffected\nby this mechanism.\n\nChange-Id: Ic3694e53515fefcc5ce6f28d9371776b5afcbb4f\n"
    },
    {
      "commit": "63b6eb400c9d9052447b213471f90dfa4e6f242c",
      "tree": "e9ede70e0725c85da30c4e87cf00ebe0a0567254",
      "parents": [
        "93afc5f20a23ece78d6d6e506ed75775b8ef2113"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jul 28 16:37:28 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jul 28 16:37:28 2016 +0100"
      },
      "message": "Disable CheckSwapUsage test with read barriers on x86.\n\nThis test does not produce the expected results on\nsome x86 systems when read barriers are enabled.\n\nAlso remove unused TEST_DISABLED_FOR_READ_BARRIER macro\ndefinition.\n\nTest: m test-art-host-gtest\nBug: 29259363\nBug: 12687968\nChange-Id: If7c124226b32c10425725e62bb684150aba108ab\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": "5668e58daf0f54d6cc8a6919033acc3506fc86ee",
      "tree": "de19460ff3c2f940ce5b0f7036a4bf756b59ed4e",
      "parents": [
        "24670a7aac24c7a9b661220ab76b36c75f1494c5",
        "97c72b76cf776228196c6abd33973ef751de61ad"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jul 18 14:28:05 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 18 14:28:06 2016 +0000"
      },
      "message": "Merge \"Fixes to build against new VIXL interface.\""
    },
    {
      "commit": "43e10b031e3bb42df54adf8f0525a29d2b308a4e",
      "tree": "ea914f7c0061817f51449d15b900e6c1878e5cc8",
      "parents": [
        "edec0eb18d9a45d994acec9e8e509a1dc05bd5b3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jul 15 17:17:34 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jul 15 20:54:09 2016 -0700"
      },
      "message": "ART: Replace ScopedFd with FdFile\n\nFdFile can now be used like ScopedFd. Remove ScopedFd.\n\nBug: 21192156\nTest: m test-art-host\nTest: m test-art-target (shamu)\nChange-Id: I32115fa8b2b8bb5aa5d1886eae63522f80ce836b\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": "d1472a27e856ec68ab5a27abaaebe9c61d91d343",
      "tree": "7a3aa99465a6b1f5563bdced3af009bd628bfacd",
      "parents": [
        "4c7f1933cb5d5cdd43741a5e352d662187f81ca4"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Apr 15 15:18:56 2016 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Jul 07 16:13:00 2016 -0700"
      },
      "message": "profile_changed should not effect GetBestOatFile.\n\nThis change moves the check for whether a profile changed from\nGetBestOatFile to GetDexOptStatus, because profile_changed should not\neffect what oat files are loaded.\n\nTest: OatFileAssistantTest.ProfileOatUpToDate\nChange-Id: Iafd12677f20d2844809337d1d83b688f17461cc0\n"
    },
    {
      "commit": "56fe0f0c9cedcad1df873df59b7e78382e766db8",
      "tree": "97ad7f80c6a447b3d2a685c5deeaaf38b6ddc241",
      "parents": [
        "e4305391dab34a6ea117c261e5602e9a7457b312"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jun 30 15:07:46 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 01 09:41:12 2016 +0100"
      },
      "message": "Do not use popen, it uses a hardcoded path for \"sh\".\n\nInstead, do the fork/exec/pipe ourselves.\n\nBug: 29557002\nChange-Id: Iee81b0a7e8818706fd97890f97c1e86f37e42995\nTest: test-art-host-gtest-dex2oat_test\n"
    },
    {
      "commit": "67f02829d08c2045090a9061c08c15f162fb72f0",
      "tree": "73de29d2c7094033da293fa0ee4622537c1be93e",
      "parents": [
        "0d38e26dad942e51bd540a28c7fbd526f663b0ff"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jun 24 21:05:23 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 29 20:03:40 2016 -0700"
      },
      "message": "ART: Add very-large threshold to dex2oat\n\nAdd a variable threshold to dex2oat. If the total dex file size for\nan app reaches this threshold, dex2oat will punt all compilation and\ncompile the app with verify-at-runtime. This ensures smaller compile\ntime and memory thrashing, while still extracting the dex files and\nthus helping with dirty memory later.\n\nAdded tests.\n\nBug: 29557002\nBug: 29790079\nTest: m test-art-host-gtest-dex2oat_test\nChange-Id: I78870e4a80ccaafcbbe56839e61ced0acd2ca05e\n(cherry picked from commit 338a1d206c16427cf61bd42171fa0c8b9cea8165)\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": "37d6a3bbf5826abb73f872ed0bc4c6ae9553e274",
      "tree": "0fbe5fda78e251597f909f654014f2c25efa62e5",
      "parents": [
        "739dc72773c5dee583a1d322f91b5abd61f9889d"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Jun 21 18:30:10 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Jun 22 15:39:07 2016 -0700"
      },
      "message": "Support the -i flag in the new dexdump.\n\nRationale:\nThe old dexdump supported the -i feature (ignore checksum failures).\nThis CL adds the same functionality to the new dexdump. Note that\nthis feature is, for example, useful to inspect DEX files that are\nextracted from images (with quickened instructions), since the\nchecksum is not always valid in those cases.\n\nBUG\u003d29548017\n\nChange-Id: I6017b2f3d789f450560b568297f43c62bf9453b1\n"
    },
    {
      "commit": "7386da49c9bf4c58b3a0c9a8ef6989aac785577d",
      "tree": "35ec79a509db54563735c4fff757ddb778d17987",
      "parents": [
        "ca7399a1d7b3c92d73322adf54187fde31eee1bd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 08 18:18:47 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jun 10 10:09:48 2016 -0700"
      },
      "message": "ART: Fix swap usage determination in dex2oat\n\nThe decision needs to be postponed until we have access to the\ndex files.\n\nBug: 27878043\n\n(cherry picked from commit ce55f0d4da1db20676273032b3c79624f665b35b)\n\nChange-Id: I55833c6ea827ec7a322711bd182fc723d1727f08\n"
    },
    {
      "commit": "b6b05aef09494da46411c8885e88fbb9cd03a1e2",
      "tree": "6bc6c33f03bfde94963609dd9f3d44a6abf6380b",
      "parents": [
        "776a802be39cb4a2267b6371764d46ce1fc23e74",
        "f284d448e3edd428b6ade473d0993028638b2064"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jun 03 17:53:09 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 03 17:53:09 2016 +0000"
      },
      "message": "Merge \"Hold dex caches live in class table\""
    },
    {
      "commit": "d0f0281176916b0ec513ac95edbd0b3040398bb9",
      "tree": "41da202b904eec7388f94582f19ff2a52bf8d756",
      "parents": [
        "cc98f634847914d306d9c1ae16c46b95e0645270"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 03 13:08:23 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jun 03 13:08:23 2016 +0000"
      },
      "message": "Revert \"Revert \"Make the boot image non-debuggable.\"\"\n\nThe fix for b/29043547 has been submitted.\n\nBug: 28769520\n\nThis reverts commit cc98f634847914d306d9c1ae16c46b95e0645270.\n\nChange-Id: I6ed511c0024ecaee75740e2847d1be20c4fb07dd\n"
    },
    {
      "commit": "f284d448e3edd428b6ade473d0993028638b2064",
      "tree": "e24f57f952f4e6c850ec910de3361aef6340727a",
      "parents": [
        "3f432d5a7c184b7580bd5aba27158c1455c328ff"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 02 11:48:30 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jun 02 18:03:41 2016 -0700"
      },
      "message": "Hold dex caches live in class table\n\nPrevents temporary dex caches being unloaded for the same dex file.\nUsually this is OK, but if someone resolved a string in that dex\ncache, it could leave stale pointers in BSS. Also it can use extra\nmemory in linear alloc if we allocate dex cache arrays multiple\ntimes.\n\nBug: 29083330\nChange-Id: Ia44668f013ceef1f5eb80f653a48d0f8004548c9\n"
    },
    {
      "commit": "cc98f634847914d306d9c1ae16c46b95e0645270",
      "tree": "2712109d35b5c91542af4c2b72af9c0e69395462",
      "parents": [
        "279ee76a8a972741d423f8f340939fb272bb8f0c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 01 15:14:12 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 01 15:14:12 2016 +0000"
      },
      "message": "Revert \"Make the boot image non-debuggable.\"\n\nWe\u0027re hitting b/29043547.\n\nbug:28769520\n\nThis reverts commit 279ee76a8a972741d423f8f340939fb272bb8f0c.\n\nChange-Id: Ic971e3db1048668bb48d47b1efc2977a4fff533c\n"
    },
    {
      "commit": "279ee76a8a972741d423f8f340939fb272bb8f0c",
      "tree": "41da202b904eec7388f94582f19ff2a52bf8d756",
      "parents": [
        "1d5287ccb5eade2fcb94e75676d422c498b26139"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 01 11:23:53 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jun 01 11:23:53 2016 +0100"
      },
      "message": "Make the boot image non-debuggable.\n\nWe now support partial fragment deoptimization.\n\nbug:28769520\nChange-Id: Ib730f62b6c03882d5e7ae4ce74645eeb7d906ff6\n"
    },
    {
      "commit": "0b49084e0c80239d891a1a74eb866419ea7d5ebe",
      "tree": "aa4e222b604389cef781ea9d8046b8a81762a96b",
      "parents": [
        "1b0b6bfb87d915facbf081c8a6855b6336a36ac6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed May 25 15:05:59 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu May 26 09:12:06 2016 -0700"
      },
      "message": "Prune class path classes from profile\n\nFixes a theoretical case where classes not in the app, but in the in\nthe class path could have been included in the image. The dex caches\nfor these classes are not properly handled and need to be pruned.\nNot including the classes in the image classes makes sure the that\nclass linker automatically prunes them and frees the dex cache with\nthe explicit garbage collection.\n\nBug: 28452385\n\n(cherry picked from commit 8d26c5967674d2eab21f65eeac9f1adcf88fce38)\n\nChange-Id: Ic33076f0a76cf1ae727c61a340ceaadf9e7e7d08\n"
    },
    {
      "commit": "f6d1e0f6196cb3669dfb4eed8ceef679b0588c0f",
      "tree": "fa9ade37af2b3c5736aa3431e393be348f21532c",
      "parents": [
        "84f00fe695a7a78551d7f2e8d7bc2bed1ce86a67"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon May 23 15:32:42 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 24 17:33:07 2016 +0100"
      },
      "message": "Compile JNI stubs for verify-profile and interpret-only.\n\nThis is the intended behavior to have a good JNI transition\nperformance.\n\nBug: 28902384\n\n(cherry picked from commit 8c185bf0c6f18a5349bc87a7e3751ba06d90f461)\n\nChange-Id: I52767909b916ada3c619206c8838b85bff5ac316\n"
    },
    {
      "commit": "fbeb132d96b5957bd61620c35b0eb64f7a9a992b",
      "tree": "dfbdfdc9ac1c52ad2e49af8c681b00a5fb3d9b3a",
      "parents": [
        "8f2ea28b2504dcd86dc3bbcea4a5a800eede9f5b"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Apr 26 14:27:31 2016 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue May 17 14:10:46 2016 -0700"
      },
      "message": "Keep oat file unique pointers until they are no longer used.\n\nBefore, the unique pointer would be deleted before we were finished\nusing the dex file we opened from the oat file.\n\nBug: 28359191\n\n(cherry-picked from commit a6d46161aea07ebd1cbd6ab78b2b323f940e9c1e)\n\nChange-Id: I737d17536967af48d8748bde2b266a82410830b7\n"
    },
    {
      "commit": "f0192c86a58b2f43378c9a2113007538dd38ddbf",
      "tree": "df3fef8e9ccd30152819e893e6212ce45b5f51a5",
      "parents": [
        "783d02e527107e91880f12bddf41afd313919132"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Mar 28 20:39:50 2016 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue May 17 11:08:41 2016 -0700"
      },
      "message": "Support to pass \u003cuses-library\u003e option through to dex2oat.\n\nThis change takes an app\u0027s shared libraries specified by \u003cuses-library\u003e\nand passes it through to dex2oat to be used during compilation.\n\nPart of a multi-project change.\n\nBug: 26880306\n\n(cherry-picked from commit 26e8a2f150cd7f7195a10650ab8a5b6fa5014bc8)\n\nChange-Id: I72a352abdfc37eacd8bedfa6c218e3809ca8e39c\n"
    },
    {
      "commit": "91288d8f03b9aab28b61a4a76e552ad7e0c15c8b",
      "tree": "f4d7265c8e96375905da749f858672b37580e596",
      "parents": [
        "d23d7d145c86975acbcc75505b8a323337066ac0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 28 09:44:54 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Apr 28 15:18:24 2016 -0700"
      },
      "message": "Revert \"Revert \"Write conflict tables in image\"\"\n\nAdded test.\n\nBug: 27906566\n\nThis reverts commit 8e2478d23e89a7022c93ddc608dcbba7b29b91e6.\n\n(cherry picked from commit cdca476bf3394ce9d97a369e84e701b427009318)\n\nChange-Id: Ia94fc7acc7ae3879921c4e8d0a02b156037ac286\n"
    },
    {
      "commit": "b11ffb7f33d70da0eb2caf891bbfdab9129fe5b4",
      "tree": "2188e06f226b7ff07c3aacd8c181c85e256a6f66",
      "parents": [
        "dc8092521b50b108607ed54afde94d20a22468df"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Apr 07 15:40:54 2016 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Apr 07 19:51:49 2016 -0700"
      },
      "message": "Combine checksum of all boot images.\n\nAllows a change to be detected in more than just the first image.\nCombines checksums of all boot images using xor. A better hash is left\nas TODO.\n\nBug: 28054110\n\n(cherry-picked from commit 4f351aae00f43dd4e3290976f249d3664cc47091)\n\nChange-Id: Ia557e2460ca582082368ef93508c04ce32c3036a\n"
    },
    {
      "commit": "d1537b569b6cd18297c5e02d13cdd588c4366c51",
      "tree": "a52961e7dbd098c0649e18123d2ad16fa6f69145",
      "parents": [
        "e28ad4b91591c226ed404a2b01104bb99bfeb28f"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Mar 29 13:27:41 2016 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Mar 29 14:25:35 2016 -0700"
      },
      "message": "Don\u0027t return kPatchOatNeeded if there is no patch info.\n\nBug: 27693977\nChange-Id: Ie1f27cc45f3cb434108a375136480cb92fd95e26\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": "73d8c65f7eef74549f9d7599567da7265521eecc",
      "tree": "fbf27170cf9cf06db29640ff775797cb9b273878",
      "parents": [
        "a807780b1d8ee01dfb03923c673621b4c81ac858"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 18 15:29:16 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 18 15:44:05 2016 -0700"
      },
      "message": "Fix incorrect dex2oat check\n\nShould have been VerifyOnlyProfile.\n\nBug: 27688727\n\n(cherry picked from commit 821dad8f384f8c520f062a317b3b66c78aa12b47)\n\nChange-Id: I451ce8264115283132bc9e34708331a5c62817bf\n"
    },
    {
      "commit": "a807780b1d8ee01dfb03923c673621b4c81ac858",
      "tree": "ef7485dca9ad8375559524d74b7c4971d6f088fa",
      "parents": [
        "895375bb30716a488bf7b8234e900d1e15de1d21"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 16 19:08:31 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 18 15:21:08 2016 -0700"
      },
      "message": "Add verify-profile compiler filter\n\nOnly verifies and dex2dex compiles classes in the profile. Goal\nis to reduce application launch time.\n\n~2x faster than interpret-only for Facebook.\n\nBug: 27688727\n\n(cherry picked from commit a079e3aa62cceb76c1c1811e6e09bcaf75e20289)\n\nChange-Id: Iad5aa1adee3aa6c2408820e8cbbab2d4412021b8\n"
    },
    {
      "commit": "1cc7e8b024ad800320ea8d94a10ee9965904fe93",
      "tree": "a26fd52af962949685da6a359dc6dc36df9aa4d5",
      "parents": [
        "6f1b7ecf61a7be88bcbb259726e99a78a7235d15"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 16 14:29:17 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Mar 16 14:51:22 2016 -0700"
      },
      "message": "Add verify-art-runtime usage to dex2oat\n\nBug: 27688793\n\n(cherry picked from commit c6068709a482065d6f5426640f1c9316797508e3)\n\nChange-Id: Idcf6b8023a15c816168ce42456d2bd7b463d0951\n"
    },
    {
      "commit": "346dc993615487e9c645a515dfcbf9a6488f36fe",
      "tree": "adf8006d2786c31cae282161491ab7c8f2cc3b2b",
      "parents": [
        "fbc61e19578d281d05728bcd120e1ace57c2fbd8"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Sun Mar 13 22:00:07 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Mar 16 17:24:17 2016 +0000"
      },
      "message": "Remove --native-debuggable compiler option.\n\nCheck if both --debuggable and --generate-debug-info are set instead.\n\nHistory: I have recently added the --native-debuggable flag to control\nwhether extra stack maps are generated in order to produce accurate\nnative line number mapping of all generated code. I didn\u0027t want to\ninclude it into --debuggable since we compile boot.oat as debuggable\nand so it would be affected.\n\nOn second thought, it would have been reasonable to generate the extra\nstackmaps only if both --debuggable and --generate-debug-info are set,\ninstead of introducing another compiler flag. This means we do not\naffect boot.oat but we still get the extra stack maps if DWARF debug\ninformation is explicitly requested.\n\nChange-Id: I7e5e557e4850a88b3b6f86178d2cb645fb1e1110\n"
    },
    {
      "commit": "5d950769b607b4f76413212db640a32d796911de",
      "tree": "959ef6ac8fc67330243268a95cd990f805aebfca",
      "parents": [
        "b2359d4fb2c9de12830301faede59f4d5fa46278"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Mar 07 20:47:29 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Mar 11 17:39:01 2016 +0000"
      },
      "message": "Symbolize native debug information for AOTed methods in boot.oat.\n\nThe oatdump symbolizer will produce all DWARF information now,\nnot just the symtab. This allows us to recover almost all native\ndebug information after the fact, even for non-debuggable oat files.\n\nThe main drawback is that non-debuggable oat files do not have\nenough stackmaps to provide reasonable line stepping experience.\nWe might also be missing inlined methods from backtraces.\n\nChange-Id: I73ff6f43a3a0e5a0907af353f74f04e9b0129590\n"
    },
    {
      "commit": "09c2a6be63337ee060e2d54bd01cf18be7301d29",
      "tree": "c623c5352bc908410f03b20b772c3dad47df207c",
      "parents": [
        "fdaa583e785383cca68df63c7ef53fcaf667b8e2"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Mar 11 17:11:44 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Mar 11 17:35:19 2016 +0000"
      },
      "message": "Add trampoline symbols to native debug info.\n\nThe debugger needs them to unwind through the trampolines and to\nunderstand what is happening in the call stack.\n\nChange-Id: Ia554058c3796788adcd7336d620a7734eb366905\n"
    },
    {
      "commit": "c421907d0df229e96390932503fda4bfbaf3e4d4",
      "tree": "fe8fb6f16eb0c53af51c670dfded97dd7ca8d316",
      "parents": [
        "87aa99c261a7921e28fbe6136197bb640ddef4a4",
        "b077e15d2d11b7c81aacbcd4a46c2b1e9c9ba20d"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Mar 09 11:57:36 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 09 11:57:36 2016 +0000"
      },
      "message": "Merge \"Update GetDexOptNeeded to handle different levels of compilation\""
    },
    {
      "commit": "b077e15d2d11b7c81aacbcd4a46c2b1e9c9ba20d",
      "tree": "148a47a1aace48313cdfdeede48902563d89c7ee",
      "parents": [
        "c90bc92bc577020ff4d3caced4cee1cdf41fa5de"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Feb 18 18:47:37 2016 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Mar 08 15:53:30 2016 +0000"
      },
      "message": "Update GetDexOptNeeded to handle different levels of compilation\n\nextract-only or profile-guide oat files are considered up to date from\nruntime perspective as they don\u0027t necessary need (re)compilation or\nrelocation. However, it is useful to return a more refined code to the\ncaller so that they can decide whether or not that\u0027s good enough.\n\nFor example, the package manager might decide to still compile a\nprevious extract-only and during profile guide compilation we should\nalways recompile even if we have an oat file.\n\nNote that dex files compiled via ClassLoaders will still be fully\ncompiled.\n\nThis change introduces:\n- a new key in the oat header kCompilationType to capture what type of\ncompilation has been made. Note tha the key might be missing. The\ndistinction is needed in order to avoid recompilation of a previous\nfully compiled file during profile guide compilation analysis.\n- a new argument to GetDexOptNeeded which tells the runtime to cast its\nopinion whether or not the oat file is up to date relative to the\ndesired target type of compilation.\n\nBug: 27189430\n\n(cherry picked from commit d91b8a2464b99625efe03caf7d30c8372bc378ed)\n\nChange-Id: I6ce450350f388451f7bab7d285c1846d539a4b13\n"
    },
    {
      "commit": "5d8112029d0e085c5a0099257daa4c7e29c12310",
      "tree": "b98a1b83095ebd34feb3140e6910ec7e830bce0a",
      "parents": [
        "8a8c84114b16b8971bc2d3c5c7e0e31470d1a68b"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Mar 08 13:21:22 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Mar 08 13:46:37 2016 +0000"
      },
      "message": "Propagate InstructionSetFeatures to ElfBuilder.\n\nThis is subset of CL171665 and it separates it into two.\nIt will be needed to generate .MIPS.abiflags ELF section.\n\nChange-Id: I5557e7cb98d0fa1dc57c85cf6161e119c6d50a1a\n"
    },
    {
      "commit": "32ce2adefb8a3d0eda59a29f5e87c1eb43eef796",
      "tree": "50aaa40b31ede355359765259edc7989485cc7d5",
      "parents": [
        "c71dc3852edfa8e0cd2083d12845ff8607e189ff"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 04 14:58:03 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Mar 04 18:37:19 2016 -0800"
      },
      "message": "Add more systracing everywhere\n\nAdded to:\nJIT\nDexFile functions\nOat file manager\n\nAdded helper ScopedTrace to prevent errors and reduce excess code.\n\nBug: 27502458\n\n(cherry picked from commit dabdc0fe183d4684f3cf4d70cb09d318cff81b42)\n\nChange-Id: Ifaeff8913d79eefc797380987d13cc00456266f8\n"
    },
    {
      "commit": "0c6e3342dfc5e234f05c0bf783af6cc469dbb160",
      "tree": "82a60bf56950f25f8efa6943fecbe5c31adecac0",
      "parents": [
        "b138a6ee7f1c1c172d9646547ad5def80db048e1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 04 11:38:14 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 04 11:38:14 2016 +0000"
      },
      "message": "Move back the boot image to debuggable.\n\nFull frame deoptimization is broken with it.\n\nPartial revert of https://android-review.googlesource.com/#/c/201383/\n\nChange-Id: I7a402d79b0882f81987e56869551840da7d553e0\n"
    },
    {
      "commit": "c5dd319c574f67d11a71f1b60ac6c34bfe93b750",
      "tree": "51de8bdd7a891478e6d22a6f53781d53290c2d20",
      "parents": [
        "01c30e8dbc45bdc5d922cef6e5a404be7bed0e8c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 09 16:38:30 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Feb 26 13:07:39 2016 -0800"
      },
      "message": "Add and use loaded class profiling\n\nClass profiling is a way to keep track of which classes are resolved.\nFrom here the compiler can use this information to generate a smaller\napp image.\n\nTODO: Add tests for profile stuff.\n\nBug: 22858531\n\n(cherry picked from commit 8913fc1a27df8cf3b37fd99e94d87f290591328e)\n\nChange-Id: Ifcd09230cbdc266305bc1247e0d31e7920eb353e\n"
    },
    {
      "commit": "a6e81ed4c185b7362cd5199ebe5507d00883a9b0",
      "tree": "851f18eeb8b6401793051d5f52dfad1f7e69f965",
      "parents": [
        "eea36cb923b078b86c7b5033ce75fe1b8ea4e522"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Feb 25 13:52:10 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Feb 25 14:55:55 2016 -0800"
      },
      "message": "Add lz4hc image compression format\n\nSmaller than lz4 and decompresses at the same speed. Compression is\na bit slower.\n\nExample saves on old FB APK:\nUncompressed: 44748800 bytes\nLZ4: 12443648 bytes\nLZ4HC: 11055104 bytes\n\nGenerating the image slows down by ~1s per 20MB of image due to\nslower compression. Decompression is about the same speed but there\nshould be a slight speedup since less data needs to be read from\nflash.\n\nAdded test.\n\nBug: 22858531\n\nChange-Id: Ib2704305b9bec5b0ba3b1e871f59f4eedff330b7\n"
    },
    {
      "commit": "9ed87a8f69c3a8fbd47950ccc02a95c223bae5af",
      "tree": "1b157a4cbd2c2a9ff75fc33a242e3ff9945e2f6d",
      "parents": [
        "6d174eebe711d52d59df04890375d3f67bc5682e",
        "6ea1a0e2168c8d9b6d97c075c73a72d84080f45b"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Feb 25 20:55:22 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 25 20:55:23 2016 +0000"
      },
      "message": "Merge \"AOT compile framework code as non-debuggable\""
    },
    {
      "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": "6ea1a0e2168c8d9b6d97c075c73a72d84080f45b",
      "tree": "7a75b6191dc6539823c174e06256dd09ae50c637",
      "parents": [
        "b4982aab07ae4cdaba13b4cb99306459d92e52d5"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Jan 29 12:12:49 2016 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Feb 23 13:44:50 2016 -0800"
      },
      "message": "AOT compile framework code as non-debuggable\n\nWhen a debugger attaches, we patch method entry points in framework\ncode to interpreter bridge. The code will later be jitted as debuggable.\n\nChange-Id: Id148069ccad95e2339ba214742ae3ef4f084f495\n"
    },
    {
      "commit": "5c7e2606d1246460a8a4b227d894110e89d0a842",
      "tree": "1db9faeecfea88021d785e6bac40ad5857413f3c",
      "parents": [
        "6406b521bed1a1cc465edc6be083ce57ba0f524e"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Feb 23 18:08:53 2016 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Feb 23 18:08:53 2016 +0000"
      },
      "message": "Please Clang with respect to stack frame limits in dex2oat.\n\nThis change enables Clang to compile dex2oat on MIPS64\nwithout complaining about stack frames larger than what\n`-Wframe-larger-than` allows.\n\nBug: 27310199\nChange-Id: I441a4be499959a089d3c2eae1135eb0273c1e80b\n"
    },
    {
      "commit": "6406b521bed1a1cc465edc6be083ce57ba0f524e",
      "tree": "2c7382eb15e33470da65238908f67904ca868f97",
      "parents": [
        "a016ba5614054e27eada7f4815df7d4bac7ba8d8",
        "2e2db786b8fbaa4dceb37603a4296b0b2aea4e9e"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Feb 23 14:07:40 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 23 14:07:40 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Add profman tool: responsible to process profiles\"\"\""
    },
    {
      "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": "dccd6753b42b73d75f7b5e51ad3515009873c9ff",
      "tree": "a04861f6421effe399b48db7fbcdbd0378cf9821",
      "parents": [
        "c017318a7c5a9142b1fff9f57eb4105b1d397bbd"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 22 18:20:49 2016 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 22 18:20:49 2016 +0000"
      },
      "message": "Fix static dex2oat  build\n\nChange-Id: I1a5fb726fa72d9ccd083f90a818e245f075fc89c\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": "45724f9a0cc38dbb3071beb3eeab96499868b49c",
      "tree": "ecbe2d8109125de2031af7ac4e0f4fc03a3b6d12",
      "parents": [
        "6065402316da2b51eed5fc34cffbd991766bd408"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 17 17:46:10 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 17 17:46:10 2016 +0000"
      },
      "message": "Revert \"Allow method references across oat files for multi-image.\"\n\nBreaks Quick tests.\n\nThis reverts commit 6065402316da2b51eed5fc34cffbd991766bd408.\n\nChange-Id: I8a5469ba7cea5f46b85cb489b3e0ef06ed548f03\n"
    },
    {
      "commit": "6065402316da2b51eed5fc34cffbd991766bd408",
      "tree": "cb93e32b978ea03a70baf980c470a03263c084c0",
      "parents": [
        "442643920a6c539e98aad76594e99b932b5631ba"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 16 12:50:23 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 17 16:38:46 2016 +0000"
      },
      "message": "Allow method references across oat files for multi-image.\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\nChange-Id: I6f2e8dc8572d143c72cc2693bb0ba4fd76f889ab\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": "0c4572e8c874de279463af22268d588471f40d3e",
      "tree": "2f6e691f9764ad5d0b08a7b4043ef8a70e47bb2e",
      "parents": [
        "ae5d2738a2b941b543c3fd478af910d4cd16f2ba"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jan 22 19:19:25 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Feb 05 11:31:11 2016 +0000"
      },
      "message": "Generate mini-debug-info on separate thread.\n\nThe generation and compression of mini-debug-info is a lot of work.\nHowever, we can do it on background thread when the main thread is\nbusy with .rodata and .text related I/O.\n\nChange-Id: I514f1db3cb50aa250639f3ef697faa9bc9976d12\n"
    },
    {
      "commit": "97590ccb357eb7429063e15597e75f2692108789",
      "tree": "3df62852718af2a960efa9d99bf30f11cbc25c78",
      "parents": [
        "c5b76b9328d77b83c80afed14a5b6e7009136e15"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Feb 03 15:50:29 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Feb 03 15:50:29 2016 -0800"
      },
      "message": "Strip image-format arg in dex2oat\n\nAvoids printing it out to prevent spam.\n\nBug: 22858531\n\nChange-Id: I9d0b35b8fa317bc39ab27946baa88812a32381e2\n"
    },
    {
      "commit": "390f5b377af63bc22f0925cc0da9f67ae1eecec2",
      "tree": "a8d558509cd6c2732f8388fcd55b8b92ce13dc37",
      "parents": [
        "24c11dcde9e8ed53813129b40f82a1af42b880b9",
        "6af5348449ccb86203d93dfbd0e5df318917721f"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Feb 02 21:55:04 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 02 21:55:04 2016 +0000"
      },
      "message": "Merge \"Use SS/GSS collectors in dex2oat if they are the default.\""
    },
    {
      "commit": "6af5348449ccb86203d93dfbd0e5df318917721f",
      "tree": "c043f3790e5c9ff80dd5790bfe956c50ed4fa52d",
      "parents": [
        "97f4bc04b61d5cf78b0820dbf18e999b20d7a108"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Jan 29 15:38:58 2016 -0800"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Feb 02 13:52:41 2016 -0800"
      },
      "message": "Use SS/GSS collectors in dex2oat if they are the default.\n\nWith CL 198466, we stopped exercising the SS/GSS collectors in dex2oat,\nwhich could bit-rot. We now turn on the force deterministic compilation\nonly if the default GC is CMS or MS and allow the SS/GSS collectors to\nbe exercised in dex2oat if they are the default.\n\nBug: 26687569\nChange-Id: I049f8d0a9b4ebf3f31d0953cf71dd0e4ba6aa651\n"
    },
    {
      "commit": "ce4b0ba4d762775a86b3529ac76cb89199c0cc1e",
      "tree": "1904ccccb00244a3f948ccf3f95fc40c95b9ff3e",
      "parents": [
        "99b4d43c7b2c81a0a4712578016efdfc65cdc21b"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jan 28 15:05:49 2016 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Feb 01 15:09:56 2016 +0000"
      },
      "message": "Ignore image checksum for ExtractOnly oat files\n\nOat files compiled with --compiler-filter\u003dverify-at-runtime contain\nno compiled code and therefore are independent of the boot image.\nThis patch stores an ExtractOnly flag in the oat header and skips\nthe image checksum test if the flag is set, rendering the oat file\nup to date even after OTAs.\n\nBug: 26813999\n\nChange-Id: I25291d5b49d9e9d0018844e957a2dc88ef6bdc27\n"
    },
    {
      "commit": "d8904a555ec801af9b99a8912fdb9e615729db7b",
      "tree": "f1e704987e0caf11689596cc7fdf7aa61f746eda",
      "parents": [
        "ba5ea7003f071f85936ee351aff46f64a56ee096"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 29 16:27:27 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 29 16:30:43 2016 +0000"
      },
      "message": "ART: Do not reopen oat file in ImageWriter::UpdateOatFile().\n\nInstead, pass the already opened file from Dex2Oat.\n\nBug: 26831001\nChange-Id: I2341259499067f43ce620b590c5482d28f140e9f\n"
    },
    {
      "commit": "eb2c741c70c3ee117ff35ad682f18b90349590b8",
      "tree": "b4fb473f8dc634b8777dc5c723083d64d3e1bfc7",
      "parents": [
        "8bfdf83aa73a19233f62b7a8d4761e84b1713db4"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jan 28 14:37:01 2016 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jan 28 14:37:01 2016 +0000"
      },
      "message": "Do not enforce deterministic compilation with read barriers.\n\nForcing determinism of the boot image compilation (on host)\ndoes not work when read barriers are enabled, as the former\nswitches the GC to a non-concurrent one by passing the\noption `-Xgc:nonconcurrent`.\n\nAlso make dex2oat abort when invoked with\n`--force-determinism` while read barriers are enabled.\n\nBug: 12687968\nBug: 26687569\nChange-Id: I37b388fccbe4502a90def8031a898f1a40df6a9f\n"
    },
    {
      "commit": "78e90155b249588cb800e7f6e5993ebcbd465292",
      "tree": "468ea16de8948f6c53fb99488cb17809932575fa",
      "parents": [
        "a3abcb5250ccb89695049a69d3fb0bd0300ae190",
        "ace0dc1dd5480ad458e622085e51583653853fb9"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 28 00:17:21 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 28 00:17:21 2016 +0000"
      },
      "message": "Merge \"ART: Add option to ensure deterministic compilation\""
    },
    {
      "commit": "ace0dc1dd5480ad458e622085e51583653853fb9",
      "tree": "de095794b5c92933ad667bff353045458bb1c633",
      "parents": [
        "8feb2cc26420f31e1805e57acddbb4ae303a2994"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 20 13:33:13 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 27 15:39:30 2016 -0800"
      },
      "message": "ART: Add option to ensure deterministic compilation\n\nTo ensure reliable stable generation of a boot image, add a flag\nfor forced determinism, trading compile time for a deterministic\noutput.\n\nWe have to run certain passes in the compiler-driver single-threaded.\nIt is also necessary to try to make the heap layout deterministic.\nSwitch to nonconcurrent GC, use the free-list implementation for LOS,\nand try to allocate the main space at a known location. This is best\neffort at the moment.\n\nTo allow the compiler phase to be parallelized, const-strings need\nto be created beforehand.\n\nThe identity hashcode seed needs to be pinned.\n\nBesides the Dex object we also need to null the DexFile pointer in\ndex caches.\n\nFor classes, we need to remove the clinit thread ID.\n\nFix oatdump alignment padding accounting.\n\nBug: 26687569\nChange-Id: Ia82120e8f715bb3691d861817b12778ac677355a\n"
    },
    {
      "commit": "c801425e18520281d440dbf6e29c8c93b31de371",
      "tree": "2bf4ed9c05af89e18b0faa4742b5edf92bcf6074",
      "parents": [
        "2aaf58e90c9229610b2a16644e9866b6741ce9ca",
        "3a2bd29d274f60fdcfabebb052078edef0190164"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 27 21:14:50 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 27 21:14:50 2016 +0000"
      },
      "message": "Merge \"ART: Make sure dex files are verified in the compiler\""
    },
    {
      "commit": "3a2bd29d274f60fdcfabebb052078edef0190164",
      "tree": "1e98b0b4ccdfc60c2a3f13abd4b0141b0c8be75f",
      "parents": [
        "6a507f3bef2c970b29bada165269d2764d260fc8"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 26 17:23:47 2016 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 27 11:46:00 2016 -0800"
      },
      "message": "ART: Make sure dex files are verified in the compiler\n\nFollow-up to 9bdf108885a27ba05fae8501725649574d7c491b. Make sure\nthat dex files from the oat writer are verified with the dex file\nverifier.\n\nBug: 26793137\nBug: 26808512\nChange-Id: I1a5f51751491eead21d8f9f1b31e37c7374c72a5\n"
    },
    {
      "commit": "ca5050538cbb0260c50530055f1ea880015327b7",
      "tree": "20520a5b5838b3251fd755584645d8ae85908b17",
      "parents": [
        "1be9e27239dc63bb4d8134df50be60f65a9d5da3",
        "47496c293b2b79c9747eeebafe444715202e7fc6"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 27 18:33:38 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 27 18:33:38 2016 +0000"
      },
      "message": "Merge \"ART: Allow --no-inline-from to specify multiple dex files.\""
    },
    {
      "commit": "47496c293b2b79c9747eeebafe444715202e7fc6",
      "tree": "803ae4a82452031db43e219b687864241e6e66d3",
      "parents": [
        "f032f3afe513093c508434b17ff1921a114c4424"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 27 16:15:08 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 27 18:23:01 2016 +0000"
      },
      "message": "ART: Allow --no-inline-from to specify multiple dex files.\n\nThis will allow tests to specify arbitrary dex files from\nwhich we should not inline, in addition to core-oj, so that\nwe can test the related functionality. Additionally, should\nthe core-oj.jar core grow beyond a single classes.dex and\nrequire a multi-dex .jar, this change makes sure that we\nprevent inlining also from the extra classes\u003cN\u003e.dex files.\n\nChange-Id: I74da4839bf9bb405dd62ad80563bf646a7a65dd9\n"
    },
    {
      "commit": "5b1c2ca30dad519be285f0a1e839c23cc4e3a51d",
      "tree": "330ebac2bd2592ccced6a17b069516afd45fa220",
      "parents": [
        "d112827911122ba6412fd90b8d8b9a9d6db9d513"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jan 25 17:32:41 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jan 26 12:50:23 2016 +0000"
      },
      "message": "Revert \"Revert \"Add option to generate compressed backtrace info.\"\"\n\nThis reverts commit 8546cc9aeb05e866e1fb6a9e4130d53ea330baa8.\n\nChange-Id: I676fdf9af27fa3b16fa8921778ff8832ab8c437d\n"
    },
    {
      "commit": "fbc31087932a65e036a153afab3049dc5298656a",
      "tree": "c728b9039a71db3be9cae888ad5e1afc31f34a13",
      "parents": [
        "c7f4e3a5aeaa23342b4e03b0d751f60ac5c5815c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Jan 24 11:59:56 2016 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jan 25 14:22:15 2016 -0800"
      },
      "message": "Revert \"Revert \"Load app images\"\"\n\nThis reverts commit 1bc977cf2f8199311a97f2ba9431a184540e3e9c.\n\nBug: 22858531\n\nChange-Id: Ide00bf3a73a02cba3bb364177204ad1b13f70295\n"
    },
    {
      "commit": "8546cc9aeb05e866e1fb6a9e4130d53ea330baa8",
      "tree": "580a02752d8e447f6dce7cce01386c7e2a9a87f4",
      "parents": [
        "5fdcc3c931b70204fd8c491afa66f57f8428490f"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jan 25 17:31:49 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Jan 25 17:31:49 2016 +0000"
      },
      "message": "Revert \"Add option to generate compressed backtrace info.\"\n\nThis reverts commit 5fdcc3c931b70204fd8c491afa66f57f8428490f.\n\nChange-Id: I9c1f5aad6933a46af6717e3a90a51f76111f9c8a\n"
    },
    {
      "commit": "5fdcc3c931b70204fd8c491afa66f57f8428490f",
      "tree": "729f1433c75dda8a1f0e578a1c5297eed31f7852",
      "parents": [
        "95005291d8ebdd1d2ac58ffc5181fef4fbbf2383"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Jan 19 14:33:43 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Jan 22 18:10:37 2016 +0000"
      },
      "message": "Add option to generate compressed backtrace info.\n\nAdd flag --generate-mini-debug-info which generates\nLZMA compressed .symtab and .debug_frame, which are\nsufficient to print java backtraces in libunwind.\n\nIf enabled, it increases the size of boot.oat by about 3.5%.\n\nChange-Id: Ic3c2ef7704c05fa328720c6781ca2a9b8e3935a3\n"
    },
    {
      "commit": "48dfaba75f564c58af1d29b676a5fe1b52a536dd",
      "tree": "d92f05f902ef13330c893bd941527a083d9f1d8f",
      "parents": [
        "58e87aca238ff2ed0c68f2a1d4d94f321c8d90ea",
        "97f3f7d29a88a14b081770af8c464859c8e77f42"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 21 22:35:05 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 21 22:35:05 2016 +0000"
      },
      "message": "Merge \"Disable Homogeneous space for dex2oat\""
    },
    {
      "commit": "9bdf108885a27ba05fae8501725649574d7c491b",
      "tree": "a4ddf98b6cf10b343f15164f18e7089bc54c29ca",
      "parents": [
        "a92ee11b9b0ed4033efc5982269e3c0a075315e0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jan 21 12:15:52 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jan 21 12:19:08 2016 +0000"
      },
      "message": "Revert \"Revert \"Write dex files to oat file early.\"\"\n\nThis reverts commit 919f5536182890d2e03f59b961acf8f7c836ff61.\n\nFix linker error (Mac build):\nReplace inline definition of art::ZipArchive::~ZipArchive()\nwith an out-of-line definition in zip_archive.cc to avoid\ndirect reference to CloseArchive() from libart-compiler due\nto inlining. Note that libart is linked against -lziparchive\nbut libart-compiler is not.\n\nChange-Id: I92620ea0200282ca7ba9b7f61a592cb6468d90d8\n"
    },
    {
      "commit": "1ee101ac001561a40a3b654bab9c62f9369f0350",
      "tree": "13a4b03ad1465349184b932d32af7a4cfb500773",
      "parents": [
        "7997bafd29c483583bcaa3135d958403caef94e3",
        "919f5536182890d2e03f59b961acf8f7c836ff61"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 20 19:13:25 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 20 19:13:25 2016 +0000"
      },
      "message": "Merge \"Revert \"Write dex files to oat file early.\"\""
    },
    {
      "commit": "919f5536182890d2e03f59b961acf8f7c836ff61",
      "tree": "8e8b9c330ae9c886611c6e5ae598e21d9b3ea17a",
      "parents": [
        "625a64aad13905d8a2454bf3cc0e874487b110d5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 20 19:13:01 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 20 19:13:01 2016 +0000"
      },
      "message": "Revert \"Write dex files to oat file early.\"\n\nThis reverts commit 625a64aad13905d8a2454bf3cc0e874487b110d5.\n\nBreaks the Mac build:\n\nUndefined symbols for architecture i386:\n  \"_CloseArchive\", referenced from:\n      ... in oat_writer.o\nld: symbol(s) not found for architecture i386\n\nChange-Id: I21608bc51437834e1e6abde9bcbe5e7d9998197e\n"
    },
    {
      "commit": "a8108303b31f76b7cd0292942885585d0f9d9391",
      "tree": "4b24fde686f2fd948212122c0b1e3d1282545f39",
      "parents": [
        "440ef2cbc76d7e2bc76cf5f15b69fc0478d7e853",
        "625a64aad13905d8a2454bf3cc0e874487b110d5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 20 17:40:37 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 20 17:40:37 2016 +0000"
      },
      "message": "Merge \"Write dex files to oat file early.\""
    },
    {
      "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": "c903b6af634927479915eaa9516d493eea23f911",
      "tree": "d14d0e2f323516ffac38baba7be4dce320fd772b",
      "parents": [
        "b8bb9f6d0b59be125066f604f134155f8998f5ae"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 18 12:56:06 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 18 12:56:06 2016 +0000"
      },
      "message": "Move --dump-cfg and dump-cfg-append to CompilerOptions.\n\nIt simplifies passing the option to the JIT.\n\nChange-Id: Iee1b722362899e5809ef97be90961e3dda1e16cc\n"
    },
    {
      "commit": "625a64aad13905d8a2454bf3cc0e874487b110d5",
      "tree": "49035d031166ce9fe0c5dd2f4b34157100e1703f",
      "parents": [
        "e1b0f475e851072d0083faf6e07d274e9f1fe6a5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 26 14:44:16 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 15 12:28:06 2016 +0000"
      },
      "message": "Write dex files to oat file early.\n\nWrite dex files to oat file before we actually open and\nverify them. Instead, open and verify the copies from the\noat file and use these. This way, in the most common case\nof zipped dex files, we have mmapped dex files instead of\ninflated dex files. That reduces the number of dirty pages\nused by dex2oat.\n\nReading /proc/self/statm after we write the oat file for\na compilation of a certain large app on Nexus 5 AOSP build\nwith -j1, three attempts before and after this CL gave\n    before: 346061 189462 6269 26 0 140723 0\n            346189 189450 6269 26 0 140851 0\n            346061 189463 6269 26 0 140723 0\n    after:  346186 185808 23040 27 0 140468 0\n            346186 185819 23040 27 0 140468 0\n            346186 185822 23040 27 0 140468 0\nThese values are in pages (4KiB), so while the \"size\"\n(\u003dVmSize) is essentially unchanged, the \"resident\" (\u003dVmRSS)\nis over 14MiB less and the \"shared\" (i.e. backed by a file)\nis 65.5MiB more. That is, the amount of dirty non-pageable\nmemory used is reduced by about 80MiB.\n\nThe oat file format has changed slightly, the class offset\ntable has been moved from the OatDexFile to its own section.\nThis actually fixes the alignment of these offsets as they\ncould have been unaligned previously, yet accessed as normal\nwith significant performance impact if the kernel has to\nemulate the unaligned access (say, mips).\n\nChange-Id: I0f4799bb1f1ca28e3533156a3494f55345c3e10a\n"
    },
    {
      "commit": "97f3f7d29a88a14b081770af8c464859c8e77f42",
      "tree": "920384fb2bde6088fbc700f9349315fa5b3cc6b8",
      "parents": [
        "68c56ae9ccdb6e348501456e374ae65e74f6270c"
      ],
      "author": {
        "name": "Lin Zang",
        "email": "lin.zang@intel.com",
        "time": "Wed Jan 13 10:25:00 2016 +0800"
      },
      "committer": {
        "name": "lzang1",
        "email": "lin.zang@intel.com",
        "time": "Fri Jan 15 15:28:59 2016 +0800"
      },
      "message": "Disable Homogeneous space for dex2oat\n\nDisable the Hspace compact can help reduce the virtual memory space\nfor dex2oat by not mmap the main_space_2.\nThis can avoid some mmap fail when dex2oat create heap.\n\nChange-Id: I4573bd80b807f40337d40d95a8e098da94946692\nSigned-off-by: Lin Zang \u003clin.zang@intel.com\u003e\n"
    }
  ],
  "next": "bce0590465d03b3eb3737521c651bacbadb62087"
}
