)]}'
{
  "log": [
    {
      "commit": "299958fc681f591fee7ff9ae0d81bd3adfebdd2b",
      "tree": "cb09ffa4dec7cd106e82fe630ed2941f49e8b566",
      "parents": [
        "463a67dd60ab0341e56713426a34c3c0a0749a35"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 05 13:48:41 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 05 15:59:57 2016 -0700"
      },
      "message": "Change java_lang_reflect_Field.cc to use ObjPtr\n\nAlso deleted some calls to ObjPtr::Ptr and fixed formatting.\n\nBug: 31113334\n\nTest: test-art-host\nChange-Id: I951b80886b723e1beff4783f28ee7c928cb10650\n"
    },
    {
      "commit": "463a67dd60ab0341e56713426a34c3c0a0749a35",
      "tree": "a6644661cffbd5ea89b7215eb37ef261ee9dcff8",
      "parents": [
        "78c6fefdb9008cb6dc9f0014d4616b457009c6c8",
        "8778c521de4f686118549ef7b20ae497e53b9e93"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 05 21:55:20 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 05 21:55:21 2016 +0000"
      },
      "message": "Merge \"Change indirect reference table to use ObjPtr\""
    },
    {
      "commit": "78c6fefdb9008cb6dc9f0014d4616b457009c6c8",
      "tree": "aecbe9fe31d94ffbad4166c92b8fe81cd4219b0d",
      "parents": [
        "7638651be29f117ef651841fbb9ffda76921ae1b",
        "9620230700d4b451097c2163faa70627c9d8088a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 05 20:29:58 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 05 20:29:58 2016 +0000"
      },
      "message": "Merge \"Refactoring of graph linearization and linear order.\""
    },
    {
      "commit": "8778c521de4f686118549ef7b20ae497e53b9e93",
      "tree": "18e82a5860cf7c7d388f314615ba66e9a3ac4521",
      "parents": [
        "2f61867045ffbd0c38a4ecec5f59632004f7efff"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 04 19:06:30 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 05 13:02:53 2016 -0700"
      },
      "message": "Change indirect reference table to use ObjPtr\n\nBug: 31113334\n\nTest: test-art-host\n\nChange-Id: I340fdf430897ebd790ea4e35f94bcee776e98445\n"
    },
    {
      "commit": "7638651be29f117ef651841fbb9ffda76921ae1b",
      "tree": "5354cc999cc64dd2bfe78d60bef994059fcca2ba",
      "parents": [
        "cf42ad62df2dda8b5a39cab50669a9446a880b41",
        "6c60d8420e51fda65ad247ae04b5a823c88c26b6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 05 19:59:08 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 05 19:59:09 2016 +0000"
      },
      "message": "Merge \"Initialize dex cache while holding dex_lock\""
    },
    {
      "commit": "9620230700d4b451097c2163faa70627c9d8088a",
      "tree": "695b96b9efeaa4c2cb3816e51904e19540fe3883",
      "parents": [
        "4aa6a93c46a959df1ab71ee7a68ad345338046ef"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Oct 04 17:33:56 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Oct 05 11:50:42 2016 -0700"
      },
      "message": "Refactoring of graph linearization and linear order.\n\nRationale:\nOwnership of graph\u0027s linear order and iterators was\na bit unclear now that other phases are using it.\nNew approach allows phases to compute their own\norder, while ssa_liveness is sole owner for graph\n(since it is not mutated afterwards).\n\nAlso shortens lifetime of loop\u0027s arena.\n\nTest: test-art-host\nChange-Id: Ib7137d1203a1e0a12db49868f4117d48a4277f30\n"
    },
    {
      "commit": "cf42ad62df2dda8b5a39cab50669a9446a880b41",
      "tree": "b3a31ce408e65ad5e47cd8d9b344f1a8e57920af",
      "parents": [
        "2f61867045ffbd0c38a4ecec5f59632004f7efff",
        "1432a5bb0608a920e7281b38ee5f6e8dfcfae5ef"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 05 18:19:36 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 05 18:19:37 2016 +0000"
      },
      "message": "Merge \"Don\u0027t push handle scope for critical native generic JNI\""
    },
    {
      "commit": "2f61867045ffbd0c38a4ecec5f59632004f7efff",
      "tree": "c7b4393d7cd7cbcd3272ff83d8424be02828251a",
      "parents": [
        "4aa6a93c46a959df1ab71ee7a68ad345338046ef",
        "97d7e1cd7f733cb33a0e238bec6d7ed525638cd1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 05 17:00:41 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 05 17:00:41 2016 +0000"
      },
      "message": "Merge \"Remove #include \"oat_file.h\" from class_linker.h .\""
    },
    {
      "commit": "1432a5bb0608a920e7281b38ee5f6e8dfcfae5ef",
      "tree": "804b9e78fa9d2705a1e58571944af7381858a5b0",
      "parents": [
        "4aa6a93c46a959df1ab71ee7a68ad345338046ef"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 04 15:41:42 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 05 09:43:15 2016 -0700"
      },
      "message": "Don\u0027t push handle scope for critical native generic JNI\n\nLeaving a stale handle scope causes problems for the GC the next\ntime roots are visited. At this point the stack will have other\ncontents and the GC will attempt to mark many invalid roots.\n\nBug: 31933313\n\nTest: non preopt eng build booting.\nTest: test-art-host\n\n(cherry picked from commit 92879f9bbcfc034660ed1ff5ef741d7f2bcb116f)\n\nChange-Id: I7d57964ccd2b59a05bb06f67062f646362ce1204\n"
    },
    {
      "commit": "6c60d8420e51fda65ad247ae04b5a823c88c26b6",
      "tree": "8c4222eadad97235b5f6d860fb63ab8a749d111a",
      "parents": [
        "c13fbeb2201dc0bf783670d4548a49f03b1cb33e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 15 10:24:43 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 05 09:39:07 2016 -0700"
      },
      "message": "Initialize dex cache while holding dex_lock\n\nFixes multiple threads calling RegisterDexFile occasionally getting\nDCHECK failures due to the arrays not being null since the BSS ones\nis per dex file.\n\nBug: 31369621\n\nTest: test-art-host, no DCHECK failure during debug booting\n\nChange-Id: I7b6e4cd03460dd1213eb4e044bdcf5f6103fd5f9\n"
    },
    {
      "commit": "4aa6a93c46a959df1ab71ee7a68ad345338046ef",
      "tree": "30fe24096f6c3dcf3e0eecfb56a9372be49fef72",
      "parents": [
        "99ce62c3475765821024616b1223d37576e327dc",
        "5ed20f90acd05e1f8697340f11113f0c61c22492"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 05 16:03:30 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 05 16:03:30 2016 +0000"
      },
      "message": "Merge \"Make it possible to pass an arena allocator to HLoopOptimization.\""
    },
    {
      "commit": "99ce62c3475765821024616b1223d37576e327dc",
      "tree": "bc74a75d6c307c98a7a4ff71f365c06bf95bec25",
      "parents": [
        "8ee0b085bed13105c2ecc9caeb025eb758bcb27d",
        "adc2ef25244645a650111560d252e32b3e22f463"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Oct 05 13:46:49 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 05 13:46:50 2016 +0000"
      },
      "message": "Merge \"Temporarily blacklist 955-method-handles-smali.\""
    },
    {
      "commit": "adc2ef25244645a650111560d252e32b3e22f463",
      "tree": "bc74a75d6c307c98a7a4ff71f365c06bf95bec25",
      "parents": [
        "8ee0b085bed13105c2ecc9caeb025eb758bcb27d"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Oct 05 14:15:01 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Oct 05 14:26:27 2016 +0100"
      },
      "message": "Temporarily blacklist 955-method-handles-smali.\n\nNeeds a companion smali change 7b348e4f323f44a7c44282.\n\nTest: make test-art-host\n\nChange-Id: Id245d9ead8467315c97cfe07103da2b406b08c49\n"
    },
    {
      "commit": "5ed20f90acd05e1f8697340f11113f0c61c22492",
      "tree": "470b26b33054a2398bdf115f6592777b1b7698bd",
      "parents": [
        "d3a9ce9d30a59587413310e66ea51c8f7adb0a1d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 05 13:49:44 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 05 13:49:44 2016 +0100"
      },
      "message": "Make it possible to pass an arena allocator to HLoopOptimization.\n\nloop_optimization_test uses memory from HLoopOptimization\u0027s\nallocator, which is scoped by the Run method.\n\nFix is to pass custom allocator.\n\ntest: m test-art-host-gtest\nChange-Id: I359330e22202519f400a26da5403eeb00f0b2db4\n"
    },
    {
      "commit": "97d7e1cd7f733cb33a0e238bec6d7ed525638cd1",
      "tree": "d2f02420f82d76d10dc0d80f431c9f4aba03ac82",
      "parents": [
        "eebe142e935e9444c7c947d02246e7fbe88b2cc4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 04 14:44:28 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 05 13:21:44 2016 +0100"
      },
      "message": "Remove #include \"oat_file.h\" from class_linker.h .\n\nRefactor the OatClass and OatMethod related functions from\nClassLinker to OatFile and ArtMethod, respectively. Refactor\nthe remaining ClassLinker dependencies on OatFile to break\nthe #include dependency and reduce incremental build times.\n\nTest: m test-art-host\nChange-Id: Iebc5b9f81b48fbcf79821cc827a5d7c4a0261bf6\n"
    },
    {
      "commit": "8ee0b085bed13105c2ecc9caeb025eb758bcb27d",
      "tree": "2e53573d42f50baa32fa63a23734ff4ed662023d",
      "parents": [
        "d3a9ce9d30a59587413310e66ea51c8f7adb0a1d",
        "9823e788ed3368ecf826c44bfa16ccabfcbe32f8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 05 12:19:30 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 05 12:19:30 2016 +0000"
      },
      "message": "Merge \"Basic implementation of invoke / invoke-polymorphic.\""
    },
    {
      "commit": "d3a9ce9d30a59587413310e66ea51c8f7adb0a1d",
      "tree": "60bb0084030cadfed694261c36c5722f4f945869",
      "parents": [
        "2a5c5160771ad528bc9b3ac36ac5785a184c956d",
        "ebe167422f6197b9df0698bbeb944a0e4eea5f2d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 05 10:30:14 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 05 10:30:15 2016 +0000"
      },
      "message": "Merge \"Properly scope HLoopOptimization\u0027s allocator.\""
    },
    {
      "commit": "9823e788ed3368ecf826c44bfa16ccabfcbe32f8",
      "tree": "59dee92dfd7518a98905c8313bdcb0a2ca2946cb",
      "parents": [
        "82d4838d6bb3480cd25327cedc5179fb2d86881c"
      ],
      "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": "Wed Oct 05 10:34:59 2016 +0100"
      },
      "message": "Basic implementation of invoke / invoke-polymorphic.\n\nBasic switch interpreter support for invoke-polymorphic. This change\nallows for virtual/interface and static invokes on method handles.\n\nSupport for direct invokes (including constructors) and field\ngetters and setters will be added in follow up changes.\n\nBug: 30550796\nTest: make test-art-host\n\nChange-Id: Ieb3a991d974060d930d56467908d5c7c11d0e38e\n"
    },
    {
      "commit": "ebe167422f6197b9df0698bbeb944a0e4eea5f2d",
      "tree": "60bb0084030cadfed694261c36c5722f4f945869",
      "parents": [
        "2a5c5160771ad528bc9b3ac36ac5785a184c956d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 05 09:55:42 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Oct 05 09:55:42 2016 +0100"
      },
      "message": "Properly scope HLoopOptimization\u0027s allocator.\n\nHOptimization classes do not get their destructor called,\nas they are arena objects. So the scope for the optimization\nallocator needs to be the Run method.\n\nAlso anticipate bisection search breakage by adding\nHLoopOptimization to the list of recognized optimizations.\n\nChange-Id: I7770989c39d5700a3b6b0a20af5d4b874dfde111\n"
    },
    {
      "commit": "2a5c5160771ad528bc9b3ac36ac5785a184c956d",
      "tree": "339f4a8a4baf75720bedf6756a514d8a69652d32",
      "parents": [
        "3601e4a5c52fcf6197fe57498a28d66f3fac076c",
        "e919b074dbbc5feea4e68d9ee0bbd1a3e248c738"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 05 03:55:28 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 05 03:55:29 2016 +0000"
      },
      "message": "Merge \"MIPS32: Fix GenerateVirtualCall in the presence of intrinsics\""
    },
    {
      "commit": "3601e4a5c52fcf6197fe57498a28d66f3fac076c",
      "tree": "c2eb87153d8af5342bac453fe1dbedb150d8485d",
      "parents": [
        "c13fbeb2201dc0bf783670d4548a49f03b1cb33e",
        "a82a1aca396cb9dca1f13aa284dbec5d428b82a1"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Oct 05 01:38:09 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 05 01:38:09 2016 +0000"
      },
      "message": "Merge \"Revert \"Compute PPID at ninja time\"\""
    },
    {
      "commit": "c13fbeb2201dc0bf783670d4548a49f03b1cb33e",
      "tree": "8531ef73e7495c073d5780d8999952609f9e404c",
      "parents": [
        "556c9a2f182c4fcb9eba9dc4937095665f314a2b",
        "b3ef69168ffa71cb101e0bd418e70c5816881db6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 05 00:54:38 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 05 00:54:39 2016 +0000"
      },
      "message": "Merge \"Fix build break from merge conflict\""
    },
    {
      "commit": "b3ef69168ffa71cb101e0bd418e70c5816881db6",
      "tree": "8531ef73e7495c073d5780d8999952609f9e404c",
      "parents": [
        "556c9a2f182c4fcb9eba9dc4937095665f314a2b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 04 17:48:45 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 04 17:49:49 2016 -0700"
      },
      "message": "Fix build break from merge conflict\n\nBug: 31113334\n\nTest: mm -j32\n\nChange-Id: I5643a0ec22cf03a54671a5c7fa0ebda41cc9a8c3\n"
    },
    {
      "commit": "556c9a2f182c4fcb9eba9dc4937095665f314a2b",
      "tree": "ffe6d3711b565330fb883953144ddd7603356804",
      "parents": [
        "e793bbb4a8a832423e7d6150b6a8fad75d63d36e",
        "1cc62e4ea24828fdb3f3da0b8603f0b107d09a04"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 05 00:39:07 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 05 00:39:08 2016 +0000"
      },
      "message": "Merge \"Rename ObjPtr::Decode to ObjPtr::Ptr\""
    },
    {
      "commit": "e793bbb4a8a832423e7d6150b6a8fad75d63d36e",
      "tree": "c7686f357164f9347a6fd424eef8ec8d21f58b47",
      "parents": [
        "29a7fd300a7d462ddf07987272383390c176a1c8",
        "7b08ae49a134458504367c3e9fa5fe080db3b89c"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Oct 05 00:27:46 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 05 00:27:46 2016 +0000"
      },
      "message": "Merge \"Fix a CC crash with ThreadStress.\""
    },
    {
      "commit": "a82a1aca396cb9dca1f13aa284dbec5d428b82a1",
      "tree": "fa3eb3207fc9116eed461b8462fbdf9628c7e267",
      "parents": [
        "b1c17bb080ccf41b30909c0401df59e6f3a1ebb1"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Oct 04 23:06:16 2016 +0000"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Oct 04 23:07:06 2016 +0000"
      },
      "message": "Revert \"Compute PPID at ninja time\"\n\nThis reverts commit b1c17bb080ccf41b30909c0401df59e6f3a1ebb1.\n\nIt breaks make test-art-host when /bin/sh is not bash, as \n/bin/sh -c /bin/bash -c echo $PPID \nreturns the pid of /bin/sh, not the pid of ninja.\n\nTest: none\nChange-Id: Ia4e5f76ea4c5f5b5c102ce54ae03c3fccb23a49f\n"
    },
    {
      "commit": "7b08ae49a134458504367c3e9fa5fe080db3b89c",
      "tree": "f8431c8cb026a66784c1d61d92a8e2fb1af9daea",
      "parents": [
        "d74bd3a9a48d34d7321f7de7a6f8e1d3467be58a"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Oct 04 15:20:36 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Oct 04 15:21:58 2016 -0700"
      },
      "message": "Fix a CC crash with ThreadStress.\n\nAdd a read barrier on the locked object in Monitor::DescribeWait().\n\nBug: 31848261\nBug: 12687968\nTest: test-art-host with CC and N9 libartd boot.\nChange-Id: I569e1499c2aadf54d9074a8a790e5d512c2dad4f\n"
    },
    {
      "commit": "29a7fd300a7d462ddf07987272383390c176a1c8",
      "tree": "a675561b30bc77b910b99c66e9d469e00bc8ba58",
      "parents": [
        "091f6754c353f5825129deff74d860caf28f78de",
        "5d9c6d6f654a3803269cee0c637c3385704bff93"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 04 21:59:14 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 04 21:59:14 2016 +0000"
      },
      "message": "Merge \"Fix build breakage.\""
    },
    {
      "commit": "5d9c6d6f654a3803269cee0c637c3385704bff93",
      "tree": "a675561b30bc77b910b99c66e9d469e00bc8ba58",
      "parents": [
        "091f6754c353f5825129deff74d860caf28f78de"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 04 22:56:35 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 04 22:56:35 2016 +0100"
      },
      "message": "Fix build breakage.\n\nRevert did not apply cleanly.\n\ntest: make test-art-host\nChange-Id: Id94d377d19dc80237951ad40fd5e01f8fec67a47\n"
    },
    {
      "commit": "091f6754c353f5825129deff74d860caf28f78de",
      "tree": "bc259b45bc292523e7a486569ac696e33204c10b",
      "parents": [
        "26705cca4643385931f3b3568b6b82525400b52b",
        "38f250fd3cb36fac27bad7cac8eefacdf8a6e41e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 04 21:45:24 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 04 21:45:24 2016 +0000"
      },
      "message": "Merge \"Revert \"Remove dead code from compiler driver.\"\""
    },
    {
      "commit": "38f250fd3cb36fac27bad7cac8eefacdf8a6e41e",
      "tree": "6a3a28dd28ceebdef5edb0bacdb8c4aad2c03a40",
      "parents": [
        "44b3da25191052acc18528d8ade9cf3038505180"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 04 21:44:45 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 04 21:44:45 2016 +0000"
      },
      "message": "Revert \"Remove dead code from compiler driver.\"\n\nThis reverts commit 44b3da25191052acc18528d8ade9cf3038505180.\n\nChange-Id: I0cf049ed967bcaf8dfd89fc88288d992c63a4939\n"
    },
    {
      "commit": "26705cca4643385931f3b3568b6b82525400b52b",
      "tree": "433a9e1189ffccc70291e08b51ecec36a59cfc87",
      "parents": [
        "d74bd3a9a48d34d7321f7de7a6f8e1d3467be58a",
        "281c681a0852c10f5ca99b351650b244e878aea3"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Oct 04 20:40:23 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 04 20:40:24 2016 +0000"
      },
      "message": "Merge \"A first implementation of a loop optimization framework.\""
    },
    {
      "commit": "d74bd3a9a48d34d7321f7de7a6f8e1d3467be58a",
      "tree": "4f643819c8e960b015a8211d7e09558cb84f4412",
      "parents": [
        "129fc43ff9d820fa782111e3fdb11fa8d4d7d239",
        "90a32b16feb58d4edf932fdcb6a070be3418e365"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Oct 04 19:08:14 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 04 19:08:14 2016 +0000"
      },
      "message": "Merge changes I65bc7769,Ib24c7060\n\n* changes:\n  ART: Reprint long messages on abort\n  ART: Clean up IRT-related abort messaging\n"
    },
    {
      "commit": "129fc43ff9d820fa782111e3fdb11fa8d4d7d239",
      "tree": "73c12091af2d2aa8aec1aa8ae82c1824a581d7be",
      "parents": [
        "b4f0076e7faca1382e0b2f68557b71b11ac34a9d",
        "aad75c6d5bfab2dc8e30fc99fafe8cd2dc8b74d8"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 04 19:00:30 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 04 19:00:30 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Store resolved Strings for AOT code in .bss.\"\"\""
    },
    {
      "commit": "b4f0076e7faca1382e0b2f68557b71b11ac34a9d",
      "tree": "1c29e986405c23285771a31250c5f26857f41046",
      "parents": [
        "82d4838d6bb3480cd25327cedc5179fb2d86881c",
        "cdcfde74ccd72c60dc9456013e32d8b00fefdee6"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Oct 04 18:06:48 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 04 18:06:48 2016 +0000"
      },
      "message": "Merge \"Option to gnuplot dex layout\""
    },
    {
      "commit": "cdcfde74ccd72c60dc9456013e32d8b00fefdee6",
      "tree": "1c29e986405c23285771a31250c5f26857f41046",
      "parents": [
        "82d4838d6bb3480cd25327cedc5179fb2d86881c"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Mon Sep 26 07:44:04 2016 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue Oct 04 10:47:24 2016 -0700"
      },
      "message": "Option to gnuplot dex layout\n\nDisplay the portions of the dex file that are accessed by the classes in\nthe dex file.  Optionally limit the display to only those classes that\nare present in a runtime profile.\n\nBug: 29921113\nChange-Id: I2a998fba448fec6c23941d3b4358531b1336e1b3\nTest: dexlayout test\n"
    },
    {
      "commit": "1cc62e4ea24828fdb3f3da0b8603f0b107d09a04",
      "tree": "718e322f3d05ac095770d4dc2a68b824bf3974a7",
      "parents": [
        "82d4838d6bb3480cd25327cedc5179fb2d86881c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 03 18:01:28 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 04 10:46:16 2016 -0700"
      },
      "message": "Rename ObjPtr::Decode to ObjPtr::Ptr\n\nDone to prevent ambiguity with ScopedObjectAccess::Decode.\n\nBug: 31113334\n\nTest: test-art-host\nChange-Id: I07a2497cc9cf66386311798933547471987fc316\n"
    },
    {
      "commit": "aad75c6d5bfab2dc8e30fc99fafe8cd2dc8b74d8",
      "tree": "c1b9e1eabcf35c5cbb5b4f46313a4e062f2d5d51",
      "parents": [
        "82d4838d6bb3480cd25327cedc5179fb2d86881c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 03 08:46:48 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 04 17:51:46 2016 +0100"
      },
      "message": "Revert \"Revert \"Store resolved Strings for AOT code in .bss.\"\"\n\nFixed oat_test to keep dex files alive. Fixed mips build.\nRewritten the .bss GC root visiting and added write barrier\nto the artResolveStringFromCode().\n\nTest: build aosp_mips-eng\nTest: m ART_DEFAULT_GC_TYPE\u003dSS test-art-target-host-gtest-oat_test\nTest: Run ART test suite on host and Nexus 9.\nBug: 20323084\nBug: 30627598\n\nThis reverts commit 5f926055cb88089d8ca27243f35a9dfd89d981f0.\n\nChange-Id: I07fa2278d82b8eb64964c9a4b66cb93726ccda6b\n"
    },
    {
      "commit": "82d4838d6bb3480cd25327cedc5179fb2d86881c",
      "tree": "2393b0ac0b1eee455c63e472fa0cdc4d74ab215f",
      "parents": [
        "eebe142e935e9444c7c947d02246e7fbe88b2cc4",
        "b1c17bb080ccf41b30909c0401df59e6f3a1ebb1"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Oct 04 16:45:44 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 04 16:45:45 2016 +0000"
      },
      "message": "Merge \"Compute PPID at ninja time\""
    },
    {
      "commit": "eebe142e935e9444c7c947d02246e7fbe88b2cc4",
      "tree": "c79e234a4302a865ce6af3bdff73588d2ef286db",
      "parents": [
        "148768f51e01523f0cc2554eb5b2293945106a38",
        "44b3da25191052acc18528d8ade9cf3038505180"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 04 14:08:10 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 04 14:08:11 2016 +0000"
      },
      "message": "Merge \"Remove dead code from compiler driver.\""
    },
    {
      "commit": "44b3da25191052acc18528d8ade9cf3038505180",
      "tree": "c79e234a4302a865ce6af3bdff73588d2ef286db",
      "parents": [
        "148768f51e01523f0cc2554eb5b2293945106a38"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Oct 03 15:09:25 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 04 13:28:15 2016 +0100"
      },
      "message": "Remove dead code from compiler driver.\n\ntest: m test-art-host\nChange-Id: Ie4b6a4c371fff6c9c213d8d6604eb09a5e71d595\n"
    },
    {
      "commit": "148768f51e01523f0cc2554eb5b2293945106a38",
      "tree": "6a3a28dd28ceebdef5edb0bacdb8c4aad2c03a40",
      "parents": [
        "f12831352ce7a697a7efed9ccecaf664acefe7af",
        "fd1a6c2a08ca3e2476b7424b9b0fa58e73b29e87"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 04 11:01:53 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 04 11:01:53 2016 +0000"
      },
      "message": "Merge \"Revert \"Add dex file writer to dexlayout tool.\"\""
    },
    {
      "commit": "fd1a6c2a08ca3e2476b7424b9b0fa58e73b29e87",
      "tree": "1f3e846a8cf6eef30683dcad63c4dc3ce39c7058",
      "parents": [
        "69b58cf399c3507ca3debf9ec9b2db3c5a0fe7f2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 04 11:01:17 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 04 11:01:17 2016 +0000"
      },
      "message": "Revert \"Add dex file writer to dexlayout tool.\"\n\nBug: 29921113\n\nThis reverts commit 69b58cf399c3507ca3debf9ec9b2db3c5a0fe7f2.\n\nChange-Id: I8bf9b1222d99489059e45f47d220396a853170a4\n"
    },
    {
      "commit": "e919b074dbbc5feea4e68d9ee0bbd1a3e248c738",
      "tree": "f5eacb1d1dfa59c4b734ff297441e6aa8a4e9a18",
      "parents": [
        "f12831352ce7a697a7efed9ccecaf664acefe7af"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Tue Oct 04 10:17:34 2016 +0200"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Tue Oct 04 12:28:51 2016 +0200"
      },
      "message": "MIPS32: Fix GenerateVirtualCall in the presence of intrinsics\n\nFix GenerateVirtualCall like it is done in the\nI0ed88a48b313a8d28bc39fae40631123aadb13ef for all other architectures.\n\nTest: mma -j2 test-art-target-run-test-optimizing on CI20\nChange-Id: Ie55c62701b20c4f40badc95563b2aef9e83807de\n"
    },
    {
      "commit": "f12831352ce7a697a7efed9ccecaf664acefe7af",
      "tree": "9ff5fb25306941787b83c1da1b6fcd65ed4ed5f4",
      "parents": [
        "8c2983be6c276f5d5f9cf606f3a06c47f41da6d1",
        "370423d7b2ed357f79b704ff369008cef3ac4772"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Oct 04 08:35:13 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 04 08:35:14 2016 +0000"
      },
      "message": "Merge \"interpreter: Remove unnecessary template arg from DoCallCommon.\""
    },
    {
      "commit": "370423d7b2ed357f79b704ff369008cef3ac4772",
      "tree": "9ff5fb25306941787b83c1da1b6fcd65ed4ed5f4",
      "parents": [
        "8c2983be6c276f5d5f9cf606f3a06c47f41da6d1"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Oct 03 16:51:22 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Oct 04 08:35:00 2016 +0000"
      },
      "message": "interpreter: Remove unnecessary template arg from DoCallCommon.\n\nThe function was always called with a fixed size array so there\u0027s\nno real advantage in templatizing it this way.\n\nTest: make build-art-host\n\nChange-Id: I782e113225f1c97877f2bcb5afe8df9ae8efd26e\n"
    },
    {
      "commit": "8c2983be6c276f5d5f9cf606f3a06c47f41da6d1",
      "tree": "c7557393f7f8cef7971d431a1af05e4cba07f5d1",
      "parents": [
        "5075b0e5e2cb942d3cb929a9fe7e1abe66beb562",
        "0715c0b7c047053c54212ae247868675710fb29c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 04 08:02:59 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 04 08:02:59 2016 +0000"
      },
      "message": "Merge \"Add handle wrapper for interpreter field get/set\""
    },
    {
      "commit": "0715c0b7c047053c54212ae247868675710fb29c",
      "tree": "c7557393f7f8cef7971d431a1af05e4cba07f5d1",
      "parents": [
        "5075b0e5e2cb942d3cb929a9fe7e1abe66beb562"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 03 22:49:46 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 03 22:51:00 2016 -0700"
      },
      "message": "Add handle wrapper for interpreter field get/set\n\nThe listeners have thread suspension for jdwp tests.\n\nBug: 31113334\n\nTest: tools/run-jdwp-tests.sh \u0027--mode\u003dhost\u0027 \u0027--variant\u003dX32\u0027 --no-jit --debug\n\nChange-Id: I08f17432cc0c79ee9a0163eb88d4d6355f6851ca\n"
    },
    {
      "commit": "90a32b16feb58d4edf932fdcb6a070be3418e365",
      "tree": "dadbf8759551c67cdb54851027459a542d4d10f4",
      "parents": [
        "f1e8630fe8eab89e61e9f0a97135ae7c9d38ce23"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 03 19:47:08 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 03 19:47:08 2016 -0700"
      },
      "message": "ART: Reprint long messages on abort\n\nAdd an abort message parameter to Runtime::Abort. In case the message\nis multiline (and will thus not be completely preserved in the\nAndroid abort reason), reprint the message after all threads have\nbeen dumped.\n\nBug: 31893081\nTest: m test-art-host\nChange-Id: I65bc77691fec79f7c868a90d6132805fcc91e473\n"
    },
    {
      "commit": "f1e8630fe8eab89e61e9f0a97135ae7c9d38ce23",
      "tree": "632a4d503db0ef6da572c195a82ba5950b2bf44b",
      "parents": [
        "d295618ac764b334424b0bc7a592337edef19783"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 03 11:42:31 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 03 19:18:50 2016 -0700"
      },
      "message": "ART: Clean up IRT-related abort messaging\n\nChange AbortIfNoCheckJNI to take the abort message as a parameter.\nThis way it can be passed down.\n\nBug: 31893081\nTest: m test-art-host\nChange-Id: Ib24c7060f1b32c9613ab84e6c1966082c866bc14\n"
    },
    {
      "commit": "5075b0e5e2cb942d3cb929a9fe7e1abe66beb562",
      "tree": "efc2dca0555e20a1bacb33728bf91d272fce133a",
      "parents": [
        "3ee94eea2a713df6e6b74f6e53ef1999d6adf460",
        "b890130a66e167404a9a60cf0893a015538778ca"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 04 01:06:05 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 04 01:06:05 2016 +0000"
      },
      "message": "Merge changes I50493bca,I8b266ad0\n\n* changes:\n  Use ObjPtr for ResolvedFieldAccessTest and ResolvedMethodAccessTest\n  Move ArtField to ObjPtr\n"
    },
    {
      "commit": "b1c17bb080ccf41b30909c0401df59e6f3a1ebb1",
      "tree": "ff647a196aeb299fe70e5dbafa6a505f076d46ce",
      "parents": [
        "6ba406580e73c69434d4d73ef5e5ccf47168854f"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Oct 03 16:40:13 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Oct 03 17:55:48 2016 -0700"
      },
      "message": "Compute PPID at ninja time\n\nUsing $(shell $$PPID) to compute PPID will return the pid of kati, which\nwill be the same for multiple sequential runs of make without changing\nany makefiles.  Replace it with a bash subshell command to return the pid\nof ninja, which will be different for every call to make.\n\nART_HOST_TEST_DIR now contains $ that need to propagate to the final\nbash command, and must be evaluated exactly once.  Escape the $ in\n${ART_HOST_TEST_DIR} in define-test-art-run-test so that\n${ART_HOST_TEST_DIR} is not substituted in the function call to prevent\nevaluating its contents in the $(eval) that wraps it, which would\nsubstitute out the necessary $.\n\nTest: m -j test-art-host\nChange-Id: I3303805481cc1c77d1a321674e8c7c003043a7c4\n"
    },
    {
      "commit": "3ee94eea2a713df6e6b74f6e53ef1999d6adf460",
      "tree": "bfb4778acd24a5ac4c1cd45f43c0efbfb8f61cad",
      "parents": [
        "bd590cbd0eed646ea1333e56ede7ba8bf0f26b34",
        "69b58cf399c3507ca3debf9ec9b2db3c5a0fe7f2"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Oct 04 00:46:26 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 04 00:46:27 2016 +0000"
      },
      "message": "Merge \"Add dex file writer to dexlayout tool.\""
    },
    {
      "commit": "bd590cbd0eed646ea1333e56ede7ba8bf0f26b34",
      "tree": "d9828467ebcf368520f3a30406ed7f0e4ee40f37",
      "parents": [
        "6ba406580e73c69434d4d73ef5e5ccf47168854f",
        "0ad6c8fe441019980b1eeaf3047949e6601cdd7f"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Oct 03 23:02:27 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 03 23:02:28 2016 +0000"
      },
      "message": "Merge \"art: Replace cutils/log.h with android/log.h\""
    },
    {
      "commit": "b890130a66e167404a9a60cf0893a015538778ca",
      "tree": "e50899e754132f3281c932c31203f8c34c8ca85f",
      "parents": [
        "3398c7874e002beaa6c2b2fadf183e7d1ddad23a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 30 10:27:43 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 03 16:00:55 2016 -0700"
      },
      "message": "Use ObjPtr for ResolvedFieldAccessTest and ResolvedMethodAccessTest\n\nAlso added LookupResolvedType that is guaranteed to not do thread\nsuspension but deals with multidex since GetResolvedType will\nreturn null if the type was resolved in another dex file.\n\nAdded test.\n\nBug: 31113334\n\nTest: test-art-host CC baker\n\nChange-Id: I50493bca7d8ce9760546c3116b717484c62c47a4\n"
    },
    {
      "commit": "281c681a0852c10f5ca99b351650b244e878aea3",
      "tree": "33036cbfb76ee497eedf60e0e5785a2267c9dd02",
      "parents": [
        "a845d07bbd57f8beaea8b4fb47192a3382ef25b2"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Aug 26 11:31:48 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Oct 03 15:15:27 2016 -0700"
      },
      "message": "A first implementation of a loop optimization framework.\n\nRationale:\nWe are planning to add more and more loop related optimizations\nand this framework provides the basis to do so. For starters,\nthe framework optimizes dead induction, induction that can be\nreplaced with a simpler closed-form, and eliminates dead loops\ncompletely (either pre-existing or as a result of induction\nremoval).\n\nSpeedup on e.g. Benchpress Loop is 73x (17.5us. -\u003e 0.24us.)\n[with the potential for more exploiting outer loop too]\n\nTest: 618-checker-induction et al.\n\nChange-Id: If80a809acf943539bf6726b0030dcabd50c9babc\n"
    },
    {
      "commit": "69b58cf399c3507ca3debf9ec9b2db3c5a0fe7f2",
      "tree": "eeea96181b252426bc7d9363c62cf22c9aac100a",
      "parents": [
        "d295618ac764b334424b0bc7a592337edef19783"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Thu Sep 22 18:02:49 2016 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Oct 03 14:33:25 2016 -0700"
      },
      "message": "Add dex file writer to dexlayout tool.\n\nAll sections are being written out properly.\nThere is one small difference:\n  - unindexed string data is not written out\n\nBug: 29921113\nTest: mm test-art-host-gtest-dexlayout_test\nChange-Id: I3872327526a350f33f0f851516a389622c1a54ae\n"
    },
    {
      "commit": "6ba406580e73c69434d4d73ef5e5ccf47168854f",
      "tree": "fa3eb3207fc9116eed461b8462fbdf9628c7e267",
      "parents": [
        "a845d07bbd57f8beaea8b4fb47192a3382ef25b2",
        "5219fdc038ccf5b41ff51ef984891debad75265f"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Oct 03 21:29:19 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 03 21:29:20 2016 +0000"
      },
      "message": "Merge \"Run dexfuzz in bisection-search mode\""
    },
    {
      "commit": "3398c7874e002beaa6c2b2fadf183e7d1ddad23a",
      "tree": "7db754b5b0c3a6c68bc1f91d7cb2477f534d2ad3",
      "parents": [
        "462e21cc8d28a4d48342cf0f634bd1ecc63647d7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 30 10:27:43 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 03 14:06:27 2016 -0700"
      },
      "message": "Move ArtField to ObjPtr\n\nAdded EXPECT_OBJ_PTR_EQ and variants to gtests.\n\nFixed moving GC bugs in:\nClassLinker::CreatePathClassLoader\nClassLinkerTest: StaticFields\n\nObjPtr Decode call sites: 186 -\u003e 181.\n\nSome tests fail due to ResolvedFieldAccessTest, will fix in follow\nup CL.\n\nBug: 31113334\n\nTest: test-art-host CC baker\n\nChange-Id: I8b266ad00f3c20c8cbe7cfdf280d175083df0b88\n"
    },
    {
      "commit": "5219fdc038ccf5b41ff51ef984891debad75265f",
      "tree": "fa3eb3207fc9116eed461b8462fbdf9628c7e267",
      "parents": [
        "a845d07bbd57f8beaea8b4fb47192a3382ef25b2"
      ],
      "author": {
        "name": "Wojciech Staszkiewicz",
        "email": "staszkiewicz@google.com",
        "time": "Thu Sep 29 15:12:48 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Oct 03 19:47:53 2016 +0000"
      },
      "message": "Run dexfuzz in bisection-search mode\n\nCall dexfuzz with --bisection-search switch to automatically bisect\ndiscovered divergences.\n\nTest: ./run_dex_fuzz_test.py\nChange-Id: I87af8b45675b464e984a05e06eac24cad3650d2b\n"
    },
    {
      "commit": "a845d07bbd57f8beaea8b4fb47192a3382ef25b2",
      "tree": "bff5bd721f867e9e2d87c1a9607f94ecd6f4872c",
      "parents": [
        "462e21cc8d28a4d48342cf0f634bd1ecc63647d7",
        "f5658b42d5225853d06defa84815b7d398761cd8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 03 19:39:28 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 03 19:39:28 2016 +0000"
      },
      "message": "Merge \"benchmark: Add a build target that\u0027s not Android-dependent\""
    },
    {
      "commit": "0ad6c8fe441019980b1eeaf3047949e6601cdd7f",
      "tree": "89db2672821b60881bc9672cdec937284514b4de",
      "parents": [
        "462e21cc8d28a4d48342cf0f634bd1ecc63647d7"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Sep 28 15:29:14 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Mon Oct 03 11:29:34 2016 -0700"
      },
      "message": "art: Replace cutils/log.h with android/log.h\n\nTest: compile\nBug: 26552300\nBug: 31289077\nChange-Id: Ie5720d9e1388047856392e8635895895c22f3112\n"
    },
    {
      "commit": "462e21cc8d28a4d48342cf0f634bd1ecc63647d7",
      "tree": "1d8d3f78a6fa74de6b18b07063fa9b8886ca1095",
      "parents": [
        "ce0db6fb7b5a732b0ce046e753e46b7c0895f7dc",
        "2f8eebb10545dc08d27535a4c86f3ae089087d0d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Oct 03 18:27:26 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 03 18:27:26 2016 +0000"
      },
      "message": "Merge \"Delete some unused bitmap walking code\""
    },
    {
      "commit": "f5658b42d5225853d06defa84815b7d398761cd8",
      "tree": "b7a69951ca0ac81abc30751bc222443139f75e60",
      "parents": [
        "4c226593625b48b7338e6b090f5285f0eca716fc"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Sep 30 14:12:14 2016 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Oct 03 18:04:06 2016 +0000"
      },
      "message": "benchmark: Add a build target that\u0027s not Android-dependent\n\nAllow building the micronative portion of libartbenchmark as pure JNI without any android\nlibrary dependencies.\n\nBug: 31401609\nChange-Id: I99f1466fb668a9ae5dd2f7229dca44d3bb064e15\n"
    },
    {
      "commit": "ce0db6fb7b5a732b0ce046e753e46b7c0895f7dc",
      "tree": "f904cd52246c35c5a255c0d050e8337fd12c3015",
      "parents": [
        "d295618ac764b334424b0bc7a592337edef19783",
        "a0fc3265d460cfe5bb48ce00c46317520e686d0f"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Mon Oct 03 17:42:15 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 03 17:42:16 2016 +0000"
      },
      "message": "Merge \"Reserve space in the char backing vector to prevent reallocations\""
    },
    {
      "commit": "d295618ac764b334424b0bc7a592337edef19783",
      "tree": "1f3e846a8cf6eef30683dcad63c4dc3ce39c7058",
      "parents": [
        "1ec37ada3566207b0b39a23eeb8f366cecfee77a",
        "23136d1dd1f7c939ebccf22dbb3bf1fcb0ce303a"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Oct 03 13:10:42 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 03 13:10:43 2016 +0000"
      },
      "message": "Merge \"DexCachePair : Add an Assign method.\""
    },
    {
      "commit": "23136d1dd1f7c939ebccf22dbb3bf1fcb0ce303a",
      "tree": "0a5c50083dcf263a11deefc18e4f464915d099f4",
      "parents": [
        "ebeee75e46d173d3803ed7740800c508c9c23580"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Sep 30 16:29:19 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Oct 03 13:10:17 2016 +0000"
      },
      "message": "DexCachePair : Add an Assign method.\n\nThis prevents the logic for determining a slot from the type ID from\nbeing scattered all over the place.\n\nBug: 30550796\nTest: make test-art-host\nChange-Id: I4ad6db8b730dc617fa8474a71c3794963b58279b\n"
    },
    {
      "commit": "1ec37ada3566207b0b39a23eeb8f366cecfee77a",
      "tree": "9c39a95d1eeac50379821113888ea78541f0ebc6",
      "parents": [
        "ebeee75e46d173d3803ed7740800c508c9c23580",
        "42b3dd0f94d2da0ec5f42c4cb57eef71dde02c79"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Oct 03 13:09:34 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 03 13:09:34 2016 +0000"
      },
      "message": "Merge \"Address review comments for change 25352fc06c84cdab8a2ab.\""
    },
    {
      "commit": "42b3dd0f94d2da0ec5f42c4cb57eef71dde02c79",
      "tree": "9c39a95d1eeac50379821113888ea78541f0ebc6",
      "parents": [
        "ebeee75e46d173d3803ed7740800c508c9c23580"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Oct 03 11:33:01 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Oct 03 11:33:29 2016 +0100"
      },
      "message": "Address review comments for change 25352fc06c84cdab8a2ab.\n\nTest: make test-art-host\nBug: 30550796\n\nChange-Id: Ic689e4c9bee691f03703288c3b12634a26841140\n"
    },
    {
      "commit": "ebeee75e46d173d3803ed7740800c508c9c23580",
      "tree": "bb8a6be0c9a144ccf33b07b3158409769a32daa2",
      "parents": [
        "51cbe84ca33800c57fef9c96f1155f60bcc70bba",
        "25352fc06c84cdab8a2ab6d173b0514066ade2b9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 03 10:32:15 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 03 10:32:15 2016 +0000"
      },
      "message": "Merge \"class_linker: Add support for resolving method types.\""
    },
    {
      "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": "51cbe84ca33800c57fef9c96f1155f60bcc70bba",
      "tree": "1846595752e78a403d57b41b17f9fc84e7f39c38",
      "parents": [
        "e89e1b5fa28c38e4bcb508ef2fff5e1ab6572df9",
        "83d3b79af2b607d2a1991f7438196263e7ea68ef"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Oct 01 01:00:38 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Oct 01 01:00:38 2016 +0000"
      },
      "message": "Merge \"Integrate dexfuzz with bisection search\""
    },
    {
      "commit": "83d3b79af2b607d2a1991f7438196263e7ea68ef",
      "tree": "604965fbd9de230732e417fc58c5896aefe7790c",
      "parents": [
        "7f7fb9c0dcb5fc0ed251b3f9bb775de5278534a7"
      ],
      "author": {
        "name": "Wojciech Staszkiewicz",
        "email": "staszkiewicz@google.com",
        "time": "Wed Sep 28 17:51:06 2016 -0700"
      },
      "committer": {
        "name": "Wojciech Staszkiewicz",
        "email": "staszkiewicz@google.com",
        "time": "Fri Sep 30 16:18:11 2016 -0700"
      },
      "message": "Integrate dexfuzz with bisection search\n\nAdds --bisection-search switch to dexfuzz. When specified makes\ndexfuzz run bisection search on discovered output divergences.\n\nBisection search output is saved to bisection_outputs/ directory which\nis assumed to be present.\n\nIf --bisection-search is used, bisection_search.py has to be on PATH.\n\nTest: ./run_dex_fuzz_test.py , with hardcoded change to emit a known\ndivergent program instead of calling jfuzz.\n\nChange-Id: I8fcb45e201761f1f05adee74e6b8636bcc452332\n"
    },
    {
      "commit": "e89e1b5fa28c38e4bcb508ef2fff5e1ab6572df9",
      "tree": "a09441ed36a407ab0d5d552fdff531f94462df17",
      "parents": [
        "f2ebe98e32603a52d5e0b927d8a8171e47bac3cf",
        "0576575d075e97a227010b4adf74ad5c8a920bde"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Sep 30 22:52:13 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 30 22:52:13 2016 +0000"
      },
      "message": "Merge \"String Compression for ARM and ARM64\""
    },
    {
      "commit": "f2ebe98e32603a52d5e0b927d8a8171e47bac3cf",
      "tree": "6299d747f758840c0270ceb00f103ecdd03725f5",
      "parents": [
        "6fa67a0261ba920614b3b262b2fa6173a885e6ef",
        "4877b7986c9ba5c69be8f80692c260b4952f69be"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Sep 30 22:44:45 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 30 22:44:45 2016 +0000"
      },
      "message": "Merge \"String compression on intrinsics x86 and x86_64\""
    },
    {
      "commit": "6fa67a0261ba920614b3b262b2fa6173a885e6ef",
      "tree": "c91ccb903fa5df1e37426dbb29a6a6fbca50cb4a",
      "parents": [
        "dd26fef65a4640c77978c49d52eddcba632db7f4",
        "ebfc1ac6070eed23a392c1922ed8652e0dae268f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 30 22:20:10 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 30 22:20:10 2016 +0000"
      },
      "message": "Merge \"ART: Add odex IMT dumping to oatdump\""
    },
    {
      "commit": "dd26fef65a4640c77978c49d52eddcba632db7f4",
      "tree": "4d376f03173bf4567e93924843a3a9c6440db37d",
      "parents": [
        "4f0cabfe1324fd42190df29245f33897510b74fd",
        "07407cd082033b72c953cbef37feb98cbd8a1b61"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 30 22:08:56 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 30 22:08:56 2016 +0000"
      },
      "message": "Merge \"Set coverage to false for dex2oat.\""
    },
    {
      "commit": "a0fc3265d460cfe5bb48ce00c46317520e686d0f",
      "tree": "c41ad7e4c01896ff9cc008615ea1d44ba329d183",
      "parents": [
        "4f0cabfe1324fd42190df29245f33897510b74fd"
      ],
      "author": {
        "name": "Ben Gruver",
        "email": "bgruv@google.com",
        "time": "Fri Sep 30 13:10:42 2016 -0700"
      },
      "committer": {
        "name": "Ben Gruver",
        "email": "bgruv@google.com",
        "time": "Fri Sep 30 13:24:23 2016 -0700"
      },
      "message": "Reserve space in the char backing vector to prevent reallocations\n\nThe pointers in image_filenames_ and oat_filenames can become invalidated\nif the char_backing_storage_ vector gets reallocated when adding strings.\n\nTest: mma test-art-host-gtest-dex2oat_test\nChange-Id: I82714468163ce49ce53953e6edcb57a17d46cdbb\n"
    },
    {
      "commit": "2f8eebb10545dc08d27535a4c86f3ae089087d0d",
      "tree": "b6184fda48dafee64135bb828cda75c34ad5061a",
      "parents": [
        "4f0cabfe1324fd42190df29245f33897510b74fd"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 30 10:59:32 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 30 11:00:09 2016 -0700"
      },
      "message": "Delete some unused bitmap walking code\n\nNo longer required with newer versions of the image writer.\n\nTest: mm -j32\n\nChange-Id: I496bc49c80d84bfa3aada39f8c6e3e4e4dfb15d4\n"
    },
    {
      "commit": "0576575d075e97a227010b4adf74ad5c8a920bde",
      "tree": "c31eb030933e74d6d103979bcf0d1226e769eb5b",
      "parents": [
        "9e5739aaa690a8529c104f4c05035a657616c310"
      ],
      "author": {
        "name": "jessicahandojo",
        "email": "jessicahandojo@google.com",
        "time": "Fri Sep 09 19:01:32 2016 -0700"
      },
      "committer": {
        "name": "jessicahandojo",
        "email": "jessicahandojo@google.com",
        "time": "Fri Sep 30 10:51:50 2016 -0700"
      },
      "message": "String Compression for ARM and ARM64\n\nChanges on intrinsics and Code Generation on ARM and ARM64\nfor string compression feature. Currently the feature is off.\n\nThe size of boot.oat and boot.art for ARM before and after the\nchanges (feature OFF) are still. When the feature ON,\nboot.oat increased by 0.60% and boot.art decreased by 9.38%.\n\nMeanwhile for ARM64, size of boot.oat and boot.art before and\nafter changes (feature OFF) are still. When the feature ON,\nboot.oat increased by 0.48% and boot.art decreased by 6.58%.\n\nTurn feature on: runtime/mirror/string.h (kUseStringCompression \u003d true)\nruntime/asm_support.h (STRING_COMPRESSION_FEATURE 1)\n\nTest: m -j31 test-art-target\nAll tests passed both when the mirror::kUseStringCompression\nis ON and OFF.\n\nBug: 31040547\nChange-Id: I24e86b99391df33ba27df747779b648c5a820649\n"
    },
    {
      "commit": "4f0cabfe1324fd42190df29245f33897510b74fd",
      "tree": "4cc06a02c10935dba86ebf7c7d196933c42890ae",
      "parents": [
        "523b51537f87991d79818690f1fa2ef08f09e145",
        "9642b1b698c1239cb13c8774936fd990c1a6a6c6"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Sep 30 17:37:57 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 30 17:37:57 2016 +0000"
      },
      "message": "Merge \"Remove dependency on libcutils\""
    },
    {
      "commit": "523b51537f87991d79818690f1fa2ef08f09e145",
      "tree": "8d87d400e36301eb648e19bcd225f13c469648ad",
      "parents": [
        "9e5739aaa690a8529c104f4c05035a657616c310",
        "5f926055cb88089d8ca27243f35a9dfd89d981f0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 30 17:12:41 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 30 17:12:42 2016 +0000"
      },
      "message": "Merge \"Revert \"Store resolved Strings for AOT code in .bss.\"\""
    },
    {
      "commit": "4877b7986c9ba5c69be8f80692c260b4952f69be",
      "tree": "96b7076efea6d0d95322382a76b4759ff92ed8d5",
      "parents": [
        "d1224dce59eb0019507e41da5e10f12dda66bee4"
      ],
      "author": {
        "name": "jessicahandojo",
        "email": "jessicahandojo@google.com",
        "time": "Thu Sep 08 19:49:13 2016 -0700"
      },
      "committer": {
        "name": "Jessica Handojo",
        "email": "jessicahandojo@google.com",
        "time": "Fri Sep 30 17:10:48 2016 +0000"
      },
      "message": "String compression on intrinsics x86 and x86_64\n\nChanges on intrinsics and Code Generation (x86 and x86_64)\nfor string compression feature. Currently the feature is off.\n\nThe size of boot.oat and boot.art for x86 before and after the\nchanges (feature OFF) are still. When the feature ON,\nboot.oat increased by 0.83% and boot.art decreased by 19.32%.\n\nMeanwhile for x86_64, size of boot.oat and boot.art before and\nafter changes (feature OFF) are still. When the feature ON,\nboot.oat increased by 0.87% and boot.art decreased by 6.59%.\n\nTurn feature on: runtime/mirror/string.h (kUseStringCompression \u003d true)\nruntime/asm_support.h (STRING_COMPRESSION_FEATURE 1)\n\nTest: m -j31 test-art-host\nAll tests passed both when the mirror::kUseStringCompression\nis ON and OFF.\n\nThe jni_internal_test changed to assert an empty string length\nto be equal -(1 \u003c\u003c 31) as it is compressed.\n\nBug: 31040547\nChange-Id: Ia447c9b147cabb6a69e6ded86be1fe0c46d9638d\n"
    },
    {
      "commit": "5f926055cb88089d8ca27243f35a9dfd89d981f0",
      "tree": "8d87d400e36301eb648e19bcd225f13c469648ad",
      "parents": [
        "9e5739aaa690a8529c104f4c05035a657616c310"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 30 17:04:49 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 30 18:08:09 2016 +0100"
      },
      "message": "Revert \"Store resolved Strings for AOT code in .bss.\"\n\nThere are some issues with oat_test64 on host and aosp_mips-eng.\n\nAlso reverts \"compiler_driver: Fix build.\"\n\nBug: 20323084\nBug: 30627598\n\nThis reverts commit 63dccbbefef3014c99c22748d18befcc7bcb3b41.\nThis reverts commit 04a44135ace10123f059373691594ae0f270a8a4.\n\nChange-Id: I568ba3e58cf103987fdd63c8a21521010a9f27c4\n"
    },
    {
      "commit": "ebfc1ac6070eed23a392c1922ed8652e0dae268f",
      "tree": "bf6d6bc0bd1dde36b1adf254572fb5d8d1e0c9e6",
      "parents": [
        "93acbaca3b49f1c46216c0af74e21820918415fb"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 29 19:50:27 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 30 09:43:38 2016 -0700"
      },
      "message": "ART: Add odex IMT dumping to oatdump\n\nSupport scanning oat files besides the boot image.\n\nBug: 31594153\nTest: m test-art-host\nChange-Id: I672d0534b8a8274a4430217656b68c55e4b31cc4\n"
    },
    {
      "commit": "9e5739aaa690a8529c104f4c05035a657616c310",
      "tree": "ae6aafe597b0a0370ae6f20d0e281aa4f4632e1c",
      "parents": [
        "93acbaca3b49f1c46216c0af74e21820918415fb",
        "e663653c797446a6018523677c1a55769fd1423c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 30 16:42:48 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 30 16:42:49 2016 +0000"
      },
      "message": "Merge \"Make run-test fail if output-path is too long\""
    },
    {
      "commit": "9642b1b698c1239cb13c8774936fd990c1a6a6c6",
      "tree": "179a8916660a0de5ee8c923c080dfd7af0fa3147",
      "parents": [
        "b4cf427734c6839b46d0d6037e3189a5e8aa1bdb"
      ],
      "author": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Wed Sep 28 02:44:00 2016 -0700"
      },
      "committer": {
        "name": "Dimitry Ivanov",
        "email": "dimitry@google.com",
        "time": "Fri Sep 30 08:16:18 2016 -0700"
      },
      "message": "Remove dependency on libcutils\n\nUse liblog for liblog (instead of libcutils)\nReplace calls to property_get with libbase\nGetProperty()\n\nBug: http://b/31289077\nBug: http://b/27171986\nTest: remove liblog from libcutils and recompile\nTest: make test-art-target -j4\nChange-Id: I2a2913af8f521131558e9dd672d3973a64a410d3\n"
    },
    {
      "commit": "93acbaca3b49f1c46216c0af74e21820918415fb",
      "tree": "4785f24b6cb6156abd7e31f3e120b87e3b0d97ee",
      "parents": [
        "33531dcb9171f36e188a3c026d8421883ab6ba6f",
        "e6f9bc8d567ed045ddd9f948765482824c2b7f6c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 30 14:50:55 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 30 14:50:56 2016 +0000"
      },
      "message": "Merge \"Add const-string benchmark.\""
    },
    {
      "commit": "33531dcb9171f36e188a3c026d8421883ab6ba6f",
      "tree": "ecb5f2e4cd1bf29ad07d62a147619f49234de293",
      "parents": [
        "428792553e59452d0b6fdbf2460072d697c966db",
        "04a44135ace10123f059373691594ae0f270a8a4"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 30 14:36:37 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 30 14:36:37 2016 +0000"
      },
      "message": "Merge \"compiler_driver: Fix build.\""
    },
    {
      "commit": "04a44135ace10123f059373691594ae0f270a8a4",
      "tree": "ecb5f2e4cd1bf29ad07d62a147619f49234de293",
      "parents": [
        "428792553e59452d0b6fdbf2460072d697c966db"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Sep 30 15:24:19 2016 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Sep 30 15:24:19 2016 +0100"
      },
      "message": "compiler_driver: Fix build.\n\nTest: make-art-host\nChange-Id: I94e164ed245caea60fe26872a943ea5e14aa8860\n"
    },
    {
      "commit": "428792553e59452d0b6fdbf2460072d697c966db",
      "tree": "c4d3c14944e772cd98f2fd76e4f41c2fbc3f6acf",
      "parents": [
        "ce157a6864bd346152bef1b66d050cfb144f56b5",
        "63dccbbefef3014c99c22748d18befcc7bcb3b41"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 30 14:10:21 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 30 14:10:21 2016 +0000"
      },
      "message": "Merge \"Store resolved Strings for AOT code in .bss.\""
    },
    {
      "commit": "ce157a6864bd346152bef1b66d050cfb144f56b5",
      "tree": "680e63bce75f85faf6519d72b74c1712d54e141d",
      "parents": [
        "394b8b23dff716daaf64c79684d13575f6ff2d05",
        "762869dee6e0eadab5be1c606792d6693bbabf4e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 30 11:38:56 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 30 11:38:56 2016 +0000"
      },
      "message": "Merge \"Simplify our intrinsic recognizer.\""
    },
    {
      "commit": "394b8b23dff716daaf64c79684d13575f6ff2d05",
      "tree": "b79c2b911ca9267efa0770872f3f8598ab4fef01",
      "parents": [
        "b4cf427734c6839b46d0d6037e3189a5e8aa1bdb",
        "9d07414a255cd53f9582497cbc918b7df698c1e4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 30 10:47:24 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 30 10:47:24 2016 +0000"
      },
      "message": "Merge \"Move two dangling mirror objects into handles.\""
    },
    {
      "commit": "e6f9bc8d567ed045ddd9f948765482824c2b7f6c",
      "tree": "296e18b69e76e3dda6499e34aee638a7e244b538",
      "parents": [
        "d1224dce59eb0019507e41da5e10f12dda66bee4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 30 11:21:07 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 30 11:27:02 2016 +0100"
      },
      "message": "Add const-string benchmark.\n\nTest: vogar --benchmark art/benchmark/const-string/src/ConstStringBenchmark.java\nBug: 20323084\nChange-Id: I6b0b9cc8de19694ca43221b3224ac09eaa54d9ff\n"
    },
    {
      "commit": "762869dee6e0eadab5be1c606792d6693bbabf4e",
      "tree": "8c986c621e8a5f3cf4e4e3b2cc13b400401ad89b",
      "parents": [
        "b4cf427734c6839b46d0d6037e3189a5e8aa1bdb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jul 15 15:28:35 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 30 10:44:31 2016 +0100"
      },
      "message": "Simplify our intrinsic recognizer.\n\n- Use the modifiers for storing the intrinsic kind.\n- Delete dex_file_method_inliner and its associated map.\n\nThis work was also motivated by the fact that the inline\nmethod analyzer leaks intrinsic tables, and even worse, might re-use\na table from one dex file to another unrelated dex file in the presence\nof class unloading and the unlikely event of the dex files getting\nthe same address.\n\ntest: m test-art-host m test-art-target\n\nChange-Id: Ia653d2c72df13889dc85dd8c84997582c034ea4b\n"
    },
    {
      "commit": "9d07414a255cd53f9582497cbc918b7df698c1e4",
      "tree": "757ebcdd5420f564ab51b0369d0f17292efbb84c",
      "parents": [
        "74a69eda053486e2d563f888a689586c5cfa7217"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 30 09:51:32 2016 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 30 10:09:08 2016 +0100"
      },
      "message": "Move two dangling mirror objects into handles.\n\ntest: libcore.java.lang.reflect.MissingClassesTest#testGetFieldFails\ntest: ./art/tools/run-libcore-tests.sh --mode\u003dhost --variant\u003dX64\nChange-Id: Ib708e914cac6abe4d4fc7cb88e258da83a8219ab\n"
    },
    {
      "commit": "b4cf427734c6839b46d0d6037e3189a5e8aa1bdb",
      "tree": "b5f5d310edebdb8563c32af8e9b7f9e02c2e8268",
      "parents": [
        "74a69eda053486e2d563f888a689586c5cfa7217",
        "c38a6f8e8d18b85113d1a585235e997779583c80"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 30 08:52:28 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 30 08:52:28 2016 +0000"
      },
      "message": "Merge \"dex_cache: rewrite StringDexCachePair as DexCachePair\u003cT\u003e\""
    },
    {
      "commit": "74a69eda053486e2d563f888a689586c5cfa7217",
      "tree": "ff3f880c5e84f3316532b47d0e9a7729ade848ac",
      "parents": [
        "d1224dce59eb0019507e41da5e10f12dda66bee4",
        "0795f23920ee9aabf28e45c63cd592dcccf00216"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 30 02:33:08 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 30 02:33:09 2016 +0000"
      },
      "message": "Merge \"Clean up ScopedThreadStateChange to use ObjPtr\""
    },
    {
      "commit": "0795f23920ee9aabf28e45c63cd592dcccf00216",
      "tree": "ff3f880c5e84f3316532b47d0e9a7729ade848ac",
      "parents": [
        "d1224dce59eb0019507e41da5e10f12dda66bee4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Sep 27 18:43:30 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 29 17:31:09 2016 -0700"
      },
      "message": "Clean up ScopedThreadStateChange to use ObjPtr\n\nAlso fixed inclusion of -inl.h files in .h files by adding\nscoped_object_access-inl.h and scoped_fast_natvie_object_access-inl.h\n\nChanged AddLocalReference / Decode to use ObjPtr.\n\nChanged libartbenchmark to be debug to avoid linkage errors.\n\nBug: 31113334\n\nTest: test-art-host\n\nChange-Id: I4d2e160483a29d21e1e0e440585ed328b9811483\n"
    },
    {
      "commit": "07407cd082033b72c953cbef37feb98cbd8a1b61",
      "tree": "16e3d89b4bc368db9cd840d715695f7fe1961bf1",
      "parents": [
        "d1224dce59eb0019507e41da5e10f12dda66bee4"
      ],
      "author": {
        "name": "Vishwath Mohan",
        "email": "vishwath@google.com",
        "time": "Thu Sep 29 15:05:51 2016 -0700"
      },
      "committer": {
        "name": "Vishwath Mohan",
        "email": "vishwath@google.com",
        "time": "Thu Sep 29 15:17:26 2016 -0700"
      },
      "message": "Set coverage to false for dex2oat.\n\ndex2oat explicitly sets address to false when SANITIZE_TARGET is\nnon-empty, in order to prevent it being compiled with ASAN. This CL also\nsets coverage to false to prevent build errors when\nSANITIZE_TARGET\u003d\"address coverage\" (because coverage currently does not\nwork without address).\n\nBug: 29188876\nTest: SANITIZE_TARGET\u003d\"address coverage\" builds without error\nChange-Id: I0faeb7fab76678b923af732235188e19e08ea90c\n"
    }
  ],
  "next": "c38a6f8e8d18b85113d1a585235e997779583c80"
}
