)]}'
{
  "log": [
    {
      "commit": "031768a340634e2dbdec1aebb2bb3fe509b2f1f6",
      "tree": "dcc51b140b69e90f60045d846f4c890bd322e1ad",
      "parents": [
        "dfb5f9ceb277f30ee961b27e72d968e0695611a6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 27 10:25:02 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 27 15:16:30 2015 -0700"
      },
      "message": "Add non debug version of libarttest\n\nWe now pass the libarttest as an argument to the java program. This\nenables using libarttestd by default and libarttest when -O is\nspecified.\n\nChange-Id: I0de1ae01e2bb5f7b9c7fd7487b6cb55051f60657\n"
    },
    {
      "commit": "dfb5f9ceb277f30ee961b27e72d968e0695611a6",
      "tree": "b3ac26646076705856e3fb4470503c63c85730f8",
      "parents": [
        "75d4e58decf3f0be8814039df57456368e4d5475",
        "5af910615a4b99eb7f493465bf3d42558c596237"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 27 17:32:26 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 27 17:32:26 2015 +0000"
      },
      "message": "Merge \"Re-add location check for FindDexCache\""
    },
    {
      "commit": "5af910615a4b99eb7f493465bf3d42558c596237",
      "tree": "dfacd9131052f1ae3ecf6b4603ebce0cbcad9237",
      "parents": [
        "4dce334b93596327433ba65c98d08960514d942f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 27 10:17:28 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 27 10:18:31 2015 -0700"
      },
      "message": "Re-add location check for FindDexCache\n\nFixes oatdump test.\n\nBug: 22720414\n\nChange-Id: I4a7622ab9e47893deaea2c100fabfa1f3386a4bc\n"
    },
    {
      "commit": "75d4e58decf3f0be8814039df57456368e4d5475",
      "tree": "3b9f3e164a95d3d30b1ee394ff2c4996563df70c",
      "parents": [
        "4dce334b93596327433ba65c98d08960514d942f",
        "73f455ecb76d063846a82735eb80596ceee8cee3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 27 16:51:17 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 27 16:51:17 2015 +0000"
      },
      "message": "Merge \"X86: Assembler support for near labels\""
    },
    {
      "commit": "4dce334b93596327433ba65c98d08960514d942f",
      "tree": "491d3a1acd0d87d744f9027b84c6d8959cf6afa9",
      "parents": [
        "706ea6a0294ef8bc3def050142c548c082fa8e30",
        "b730b78dac047c6d8ead93ad77605bcb7414f5ce"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Aug 27 16:16:17 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 27 16:16:17 2015 +0000"
      },
      "message": "Merge \"ahat - An android heap dump viewer. Initial checkin.\""
    },
    {
      "commit": "706ea6a0294ef8bc3def050142c548c082fa8e30",
      "tree": "2a6737a452fe6059e47aefda8ec5b9778ff2d582",
      "parents": [
        "772cc4a2d4f978888d1b1e5a78c1c16a108260ed",
        "0760a81257fa427646c309500d603194009265ef"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Aug 27 16:04:21 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 27 16:04:21 2015 +0000"
      },
      "message": "Merge \"ART: Propagate verifier failure types to the compilers\""
    },
    {
      "commit": "772cc4a2d4f978888d1b1e5a78c1c16a108260ed",
      "tree": "b8f29167cb5fb7ca7709a0d305cfd7e6018d5b2a",
      "parents": [
        "7d6c95a7e5d431fd1b9ad49823535073325c699a",
        "3ae6b1d42523bb2a0ddb5edff1aaf05b592f28f4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Aug 27 02:47:40 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 27 02:47:40 2015 +0000"
      },
      "message": "Merge \"Change dex caches to be weak roots\""
    },
    {
      "commit": "0760a81257fa427646c309500d603194009265ef",
      "tree": "9754389d2d488f41459c76d4568dd40dd41955ae",
      "parents": [
        "7d6c95a7e5d431fd1b9ad49823535073325c699a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Aug 26 17:12:51 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Aug 26 19:08:03 2015 -0700"
      },
      "message": "ART: Propagate verifier failure types to the compilers\n\nAdd a bit-set encoding of seen failure types to the verifier and\nmake it available. Store this in VerifiedMethod, so that compilers\ncan inspect it and make choices based on failures. Rewrite the\ncurrent punting of runtime-throw errors to be at the compiler-driver\nlevel.\n\nBug: 23502994\nChange-Id: I1cfc7cbdf2aec1f14ba18f0169e432ba4ae16883\n"
    },
    {
      "commit": "7d6c95a7e5d431fd1b9ad49823535073325c699a",
      "tree": "18f0da01f95b93ea970eadf77e979f4344e6a823",
      "parents": [
        "5093d3becc16b889807269ca5ef39b31fa97f105",
        "fd2854137ebdd2dbcc1459c5aa7abccdc62691b2"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Aug 26 21:29:18 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 26 21:29:18 2015 +0000"
      },
      "message": "Merge \"ART: Fix run-test inline assembly\""
    },
    {
      "commit": "fd2854137ebdd2dbcc1459c5aa7abccdc62691b2",
      "tree": "18f0da01f95b93ea970eadf77e979f4344e6a823",
      "parents": [
        "5093d3becc16b889807269ca5ef39b31fa97f105"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Aug 26 14:24:26 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Aug 26 14:24:26 2015 -0700"
      },
      "message": "ART: Fix run-test inline assembly\n\nUse assembly that both Clang and GCC support. Use a minimal 2-byte\nencoding.\n\nBug: 22876261\nChange-Id: I11724b3cf09869fa341907dcb9acc1bee919e3c8\n"
    },
    {
      "commit": "5093d3becc16b889807269ca5ef39b31fa97f105",
      "tree": "a12dfc40c00acef101772bf4e52b30f47230a9a0",
      "parents": [
        "e05b8b592ceaab2cd3639785f31763395371ad23",
        "6306921722283d2b0f8aac01883ad83215d6e864"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 26 20:59:00 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 26 20:59:00 2015 +0000"
      },
      "message": "Merge \"Add a missing reader barrier in entrypoint stub\""
    },
    {
      "commit": "e05b8b592ceaab2cd3639785f31763395371ad23",
      "tree": "c7a77ca1607738bc0501798211fe0a60b606bf8b",
      "parents": [
        "4726941669584b30087ae7b4d142db4777d27015",
        "4ef5226864717a48717a328167f6fd3e90900072"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 26 18:01:10 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 26 18:01:10 2015 +0000"
      },
      "message": "Merge \"ART: Include zero-padding in String::SizeOf().\""
    },
    {
      "commit": "4726941669584b30087ae7b4d142db4777d27015",
      "tree": "1955285beadada0050fd260e7fe4812c1f0b666a",
      "parents": [
        "fb32aca04cc1b5f5e8325d79664882f25f253881",
        "66c2d2d64d7ea75602eb63de7ae9bd2eaeb0a3c2"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Aug 26 17:56:25 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 26 17:56:25 2015 +0000"
      },
      "message": "Merge \"Address some comments for class flags\""
    },
    {
      "commit": "4ef5226864717a48717a328167f6fd3e90900072",
      "tree": "a4159c2143d03dfe91338b520d0e00392840e69d",
      "parents": [
        "9ee5d6cdc14ac94b64ea1961bf221bad48746929"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 26 18:12:56 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 26 18:51:54 2015 +0100"
      },
      "message": "ART: Include zero-padding in String::SizeOf().\n\nString.equals() intrinsics depend on the zero-padding\nbut the zygote compaction didn\u0027t preserve it.\n\nBug: 23528461\nChange-Id: I57286a31ea2491c7365045d6c69d7ed2e7a5773a\n"
    },
    {
      "commit": "fb32aca04cc1b5f5e8325d79664882f25f253881",
      "tree": "90c4e84b5473def182fa443191ba8de80fa62d63",
      "parents": [
        "574d75597013cb12a961c0d4365d1618d8ef6977",
        "30efb4e00c2a9aa318d44486b5eacaa7178d20ef"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Aug 26 17:32:28 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 26 17:32:28 2015 +0000"
      },
      "message": "Merge \"Induction variable analysis (with unit tests).\""
    },
    {
      "commit": "30efb4e00c2a9aa318d44486b5eacaa7178d20ef",
      "tree": "90c4e84b5473def182fa443191ba8de80fa62d63",
      "parents": [
        "574d75597013cb12a961c0d4365d1618d8ef6977"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Jul 30 12:14:31 2015 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Aug 26 17:20:28 2015 +0000"
      },
      "message": "Induction variable analysis (with unit tests).\n\nRationale:\nInduction variable analysis forms the basis of a wide\nvariety of compiler optimizations. This implementation\nfinds induction variables using the elegant SSA-based\nalgorithm defined by [Gerlek et al.].\n\nChange-Id: I79b8dce33ffb8b283c179699a8dff5bd196f75b2\n"
    },
    {
      "commit": "574d75597013cb12a961c0d4365d1618d8ef6977",
      "tree": "23f43c5fd308d4c3aa142ccd3f2045e907fd7542",
      "parents": [
        "9ee5d6cdc14ac94b64ea1961bf221bad48746929",
        "23f02f31a8368d256d45b441384432c6bece064a"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Aug 26 15:23:17 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 26 15:23:17 2015 +0000"
      },
      "message": "Merge \"Minor changes to art::arm::Thumb2Assembler::StoreToOffset.\""
    },
    {
      "commit": "73f455ecb76d063846a82735eb80596ceee8cee3",
      "tree": "8cbf4d0b94a2d75980481b4542c021da4477373b",
      "parents": [
        "9dc601eb65da0cd5f53172699dacd6e5dd38ab44"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Fri Aug 21 09:30:05 2015 -0400"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Wed Aug 26 11:18:40 2015 -0400"
      },
      "message": "X86: Assembler support for near labels\n\nThe optimizing compiler uses 32 bit relative jumps for all forward\njumps, just in case the offset is too large to fit in one byte.  Some of\nthe generated code knows that the jumps will in fact fit.\n\nAdd a \u0027NearLabel\u0027 class to the x86 and x86_64 assemblers.  This will be\nused to generate known short forward branches.\n\nAdd jecxz/jrcxz instructions, which only handle a short offset.  They\nwill be used for intrinsics.\n\nAdd tests for the new instructions and NearLabel.\n\nChange-Id: I11177f36394d35d63b32364b0e6289ee6d97de46\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "9ee5d6cdc14ac94b64ea1961bf221bad48746929",
      "tree": "25575bae2832f0879db55214bab64905ab90e3e2",
      "parents": [
        "d71c89f46ad60713494d537001d4b370ce355885",
        "aa50d3a01a4137cd89c152be5487fed23683d0ff"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Aug 26 06:04:50 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 26 06:04:50 2015 +0000"
      },
      "message": "Merge \"Add missing field init in constructors\""
    },
    {
      "commit": "d71c89f46ad60713494d537001d4b370ce355885",
      "tree": "ae5a3bef3570b4ebe1455f3fd24eeee3fcc53645",
      "parents": [
        "b5f7abcdef9aec80e67b581a9bcc0de39e98fc85",
        "b995c0ab7d6313f32e704e79c1e7dd21f5f160d4"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Wed Aug 26 05:57:33 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 26 05:57:33 2015 +0000"
      },
      "message": "Merge \"Update instrumentation stack after exception event\""
    },
    {
      "commit": "3ae6b1d42523bb2a0ddb5edff1aaf05b592f28f4",
      "tree": "9ae990956db3d2d5970fb15bf264aeeb73e2bfe0",
      "parents": [
        "dcff51a0079c5e3abaf0335f7cb9a3dd44044456"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 14 14:03:10 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 25 18:00:47 2015 -0700"
      },
      "message": "Change dex caches to be weak roots\n\nChanged dex caches to be weak roots. This is necessary for class\nunloading since the resolved types arrays would keep classes live\nwhen they should be unloaded. Currently the dex caches still don\u0027t\nget freed due to the class loader roots.\n\nAlso deleted some unused functionality in image writer.\n\nBug: 22720414\nChange-Id: If22cb3cad7e3baabc8158a77d7f20799faf4c341\n"
    },
    {
      "commit": "b5f7abcdef9aec80e67b581a9bcc0de39e98fc85",
      "tree": "387724eebfe7cd0f7be368e64b22af3894eea4c7",
      "parents": [
        "dda43e7e9680e6eead02876e67718d01837d89e0",
        "13e748b28c5f2bd1e83674d2ca899ff61ae5c0a1"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Aug 25 21:33:38 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 25 21:33:38 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Move annotations to native.\"\"\""
    },
    {
      "commit": "66c2d2d64d7ea75602eb63de7ae9bd2eaeb0a3c2",
      "tree": "ade8f8e55ebba8ff8deaa6efc2be5af4f76e737f",
      "parents": [
        "dda43e7e9680e6eead02876e67718d01837d89e0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 25 14:32:32 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 25 14:32:32 2015 -0700"
      },
      "message": "Address some comments for class flags\n\nChange-Id: I354f48aefc37ce92c4d02cfce1723db0e28907bf\n"
    },
    {
      "commit": "13e748b28c5f2bd1e83674d2ca899ff61ae5c0a1",
      "tree": "387724eebfe7cd0f7be368e64b22af3894eea4c7",
      "parents": [
        "dda43e7e9680e6eead02876e67718d01837d89e0"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Aug 25 20:44:19 2015 +0000"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Tue Aug 25 14:20:09 2015 -0700"
      },
      "message": "Revert \"Revert \"Move annotations to native.\"\"\n\nThis reverts commit 7db6dd79a24570448ae737ee1946b00396696cac.\n\nAdds check if field\u0027s declaring class is proxy.\nBug: 23508574\n\nChange-Id: Ie829f1526e74427711e818b56d1588d92946cbf6\n"
    },
    {
      "commit": "23f02f31a8368d256d45b441384432c6bece064a",
      "tree": "74c140eb78a6a628e36f04df631d49d97592a529",
      "parents": [
        "6bd6a830f24033830a910f88928b400a7ed28418"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 25 18:23:20 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 25 18:23:20 2015 +0100"
      },
      "message": "Minor changes to art::arm::Thumb2Assembler::StoreToOffset.\n\n- Use CHECK instead of DCHECK for consistency reasons.\n- Adjust documentation.\n- Stylistic changes.\n\nChange-Id: Ibc8261a0eb5a8b4d62edc1df0d5fb378e5021c22\n"
    },
    {
      "commit": "dda43e7e9680e6eead02876e67718d01837d89e0",
      "tree": "87b098f17ae81d8bb25adaca54518c47b6947061",
      "parents": [
        "54503b91200b0c645358ae428f397c7db358e86a",
        "d9cb68e3212d31d61445fb7e8446f68991720009"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Aug 25 16:40:48 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 25 16:40:48 2015 +0000"
      },
      "message": "Merge \"ART: Add (Fpu)RegHigh stack map location kinds\""
    },
    {
      "commit": "d9cb68e3212d31d61445fb7e8446f68991720009",
      "tree": "8738656ba16c292c1f1fd022337817c58ded2136",
      "parents": [
        "9dc601eb65da0cd5f53172699dacd6e5dd38ab44"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Aug 25 13:52:43 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Aug 25 17:35:16 2015 +0100"
      },
      "message": "ART: Add (Fpu)RegHigh stack map location kinds\n\nWhen running Optimized code on 64-bit, high value of vreg pair may be\nstored in the high 32 bits of a CPU register. This is not reflected in\nstack maps which would encode both the low and high vreg as\nkInRegister with the same register number, making it indistinguishable\nfrom two non-wide vregs with the same value in the lower 32 bits.\n\nDeoptimization deals with this by running the verifier and thus\nobtaining vreg pair information, but this would be too slow for try/\ncatch. This patch therefore adds two new stack map location kinds:\nkInRegisterHigh and kInFpuRegisterHigh to differentiate between the\ntwo cases.\n\nNote that this also applies to floating-point registers on x86.\n\nChange-Id: I15092323e56a661673e77bee1f0fca4261374732\n"
    },
    {
      "commit": "54503b91200b0c645358ae428f397c7db358e86a",
      "tree": "4aeac6e72a27337799e12841beb9d2d9f213ca14",
      "parents": [
        "77204c018e27ad70a226daadebf75e9144b1b275",
        "ad238ce884468234509a9367c0ce1055bd1394bf"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 25 16:34:32 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 25 16:34:32 2015 +0000"
      },
      "message": "Merge \"ART: Add option to retain lock levels in verifier\""
    },
    {
      "commit": "b730b78dac047c6d8ead93ad77605bcb7414f5ce",
      "tree": "feda8437b927954bcc849a6c5df6c11d46104355",
      "parents": [
        "24011e738d77dedb28c1b4d6ff34445cc2acc4a7"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Jul 15 16:01:58 2015 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Aug 25 09:34:23 2015 -0700"
      },
      "message": "ahat - An android heap dump viewer. Initial checkin.\n\nahat is an android-aware heap dump viewer based on perflib with a\nsimple html interface.\n\nChange-Id: I7c18a7603dbbe735f778a95cd047f4f9ec1705ef\n"
    },
    {
      "commit": "ad238ce884468234509a9367c0ce1055bd1394bf",
      "tree": "19e0927268673f26fc1456ec6b3317eef7bdf305",
      "parents": [
        "e74493cbc8f33bfd53b792f98f135d3db680f029"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Aug 24 21:13:08 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 25 09:14:00 2015 -0700"
      },
      "message": "ART: Add option to retain lock levels in verifier\n\nTemplatize SetRegisterType to be able to retain lock levels. When\nsharpening a type, e.g., in a branch after an instanceof, the\nverifier should remember if the register had been locked before\nand not implicitly erase that information.\n\nBug: 23502994\nChange-Id: Iba62688a536792da0920598fecdbf24a4993ec04\n"
    },
    {
      "commit": "77204c018e27ad70a226daadebf75e9144b1b275",
      "tree": "3f8a525ef91d2f12e4b2a71c04fc8147a12c12bd",
      "parents": [
        "9dc601eb65da0cd5f53172699dacd6e5dd38ab44",
        "ff73498a5539d87424a964265e43765e788aec44"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 25 16:10:51 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 25 16:10:51 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"[MIPS] Use hard float calling convention for managed code\"\"\""
    },
    {
      "commit": "ff73498a5539d87424a964265e43765e788aec44",
      "tree": "3f8a525ef91d2f12e4b2a71c04fc8147a12c12bd",
      "parents": [
        "9dc601eb65da0cd5f53172699dacd6e5dd38ab44"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Mon Aug 24 12:58:55 2015 +0000"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Tue Aug 25 17:17:22 2015 +0200"
      },
      "message": "Revert \"Revert \"[MIPS] Use hard float calling convention for managed code\"\"\n\nThis reverts commit 7fee84c087e0f903e7d43bef180df047db1c8051.\n\nFixed issue with temporary registers on Mips32r6.\n\nChange-Id: I93018927e6a6036cff2d55e6cda66d3212a4316b\n"
    },
    {
      "commit": "9dc601eb65da0cd5f53172699dacd6e5dd38ab44",
      "tree": "32b50f85ae66aaffd67fa5d0ed2f91d91369bb96",
      "parents": [
        "5595dd177b77bc32a512a8676e7195f649bb4e1d",
        "6e2d5747d00697a25251d25dd33b953e54709507"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Aug 25 15:05:54 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 25 15:05:54 2015 +0000"
      },
      "message": "Merge \"Revert \"Fix deoptimization with pending exception\"\""
    },
    {
      "commit": "6e2d5747d00697a25251d25dd33b953e54709507",
      "tree": "b68a418e93780ed55abd79dc8e76f3459e884254",
      "parents": [
        "54b62480636ae846d705fc180c7bd6cd08ec1e42"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Aug 25 15:05:17 2015 +0000"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Aug 25 15:05:17 2015 +0000"
      },
      "message": "Revert \"Fix deoptimization with pending exception\"\n\nThis reverts commit 54b62480636ae846d705fc180c7bd6cd08ec1e42.\n\nThis is causing test failures with Optimizing compiler.\n\nBug: 23371176\nBug: 19944235\nChange-Id: Ie3ffbcf2b6d2ca8bc93cb008a4e29a7567d04a7c\n"
    },
    {
      "commit": "5595dd177b77bc32a512a8676e7195f649bb4e1d",
      "tree": "b2e12618375d7f4e678de700f3427724de9eae4b",
      "parents": [
        "c97748381468485535b11bfc8664c26385f4b715",
        "54b62480636ae846d705fc180c7bd6cd08ec1e42"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Aug 25 14:04:14 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 25 14:04:14 2015 +0000"
      },
      "message": "Merge \"Fix deoptimization with pending exception\""
    },
    {
      "commit": "aa50d3a01a4137cd89c152be5487fed23683d0ff",
      "tree": "a676638c9d43eb519214445173c1a66ba38355ac",
      "parents": [
        "f0170ded84fbcd3d9152cdbcf9ffbf74c71b03ba"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Aug 25 15:25:41 2015 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Aug 25 15:56:54 2015 +0200"
      },
      "message": "Add missing field init in constructors\n\nAdds missing field initializations detected by Eclipse IDE.\n\nChange-Id: I5f2f32bcccb12545fc9f0b42fcec74a23dc81376\n"
    },
    {
      "commit": "54b62480636ae846d705fc180c7bd6cd08ec1e42",
      "tree": "d46a6c7bebb45ddbbd5b0a6818b3bb2ce49f48ed",
      "parents": [
        "f0170ded84fbcd3d9152cdbcf9ffbf74c71b03ba"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Thu Aug 20 12:07:57 2015 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Tue Aug 25 15:13:49 2015 +0200"
      },
      "message": "Fix deoptimization with pending exception\n\nWhen deoptimizing the stack, we set a fake exception in the current\nThread* (see method Thread::GetDeoptimizationException). On the next\nexception check, the QuickExceptionHandler will deoptimize the stack.\n\nThe issue is when we deoptimize while an exception is already pending\nin the current Thread*: setting the fake exception will clobber the\npending exception which is not correct. This happens in the\nartQuickToInterpreterBridge when returning from the interpreter and\nwe want to deoptimize the stack for debugging (like single-stepping).\n\nThis CL saves the pending exception before asking for deoptimization.\nThen the exception is restored just before executing the deoptimized\nframes with the interpreter.\n\nAlso cleans up the way we save deoptimization context (return value\nand pending exception).\n\nBug: 23371176\nBug: 19944235\nChange-Id: I7f4c8347b328817c452beda3399e210eba3a88a4\n"
    },
    {
      "commit": "c97748381468485535b11bfc8664c26385f4b715",
      "tree": "32b50f85ae66aaffd67fa5d0ed2f91d91369bb96",
      "parents": [
        "f0170ded84fbcd3d9152cdbcf9ffbf74c71b03ba",
        "7db6dd79a24570448ae737ee1946b00396696cac"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 25 12:07:47 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 25 12:07:47 2015 +0000"
      },
      "message": "Merge \"Revert \"Move annotations to native.\"\""
    },
    {
      "commit": "7db6dd79a24570448ae737ee1946b00396696cac",
      "tree": "490c05f1488141adf5668b34cbec28830fe8295c",
      "parents": [
        "0042c6d49b8488c78f0b937063e316e8d6244439"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 25 10:53:19 2015 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Aug 25 10:53:19 2015 +0000"
      },
      "message": "Revert \"Move annotations to native.\"\n\nThis reverts commit 0042c6d49b8488c78f0b937063e316e8d6244439.\n\nReverting this change (as well as the companion CL\nhttps://android-review.googlesource.com/#/c/167510/ in\nplatform/libcore) as they make libcore test\nlibcore.java.lang.reflect.ProxyTest#test24846 fail.\n\nChange-Id: Ie0676cabb128277c7df5dab7bde17aefd3b2c09c\n"
    },
    {
      "commit": "f0170ded84fbcd3d9152cdbcf9ffbf74c71b03ba",
      "tree": "b68a418e93780ed55abd79dc8e76f3459e884254",
      "parents": [
        "dcff51a0079c5e3abaf0335f7cb9a3dd44044456",
        "31decb12db33cb9ed3fdb0de60ca18c6da077fe4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 25 05:02:46 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 25 05:02:46 2015 +0000"
      },
      "message": "Merge \"ART: Add VLOG printing of SetStatus(Error)\""
    },
    {
      "commit": "31decb12db33cb9ed3fdb0de60ca18c6da077fe4",
      "tree": "b68a418e93780ed55abd79dc8e76f3459e884254",
      "parents": [
        "dcff51a0079c5e3abaf0335f7cb9a3dd44044456"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Aug 24 21:09:05 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Aug 24 21:09:05 2015 -0700"
      },
      "message": "ART: Add VLOG printing of SetStatus(Error)\n\nIn verbose:class mode, print a message when a class is set to\nerroneous, and dump any pending exception.\n\nChange-Id: I2ebfe4fcd8495c3ff42675bd3c0f80125b23c019\n"
    },
    {
      "commit": "dcff51a0079c5e3abaf0335f7cb9a3dd44044456",
      "tree": "fbd617b837e928e8b272d80622eeaffa901a2f2d",
      "parents": [
        "f7b12e7ae8f481f3fab27d1a17bded4b4f2ce423",
        "a14b9fef395b94fa9a32147862c198fe7c22e3d7"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Aug 24 22:50:51 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 24 22:50:51 2015 +0000"
      },
      "message": "Merge \"Revert \"Do a second check for testing intrinsic types.\"\""
    },
    {
      "commit": "a14b9fef395b94fa9a32147862c198fe7c22e3d7",
      "tree": "49b3183cd1d25b6a5cfb31e0d16678deb023c1e8",
      "parents": [
        "4daa0b4c21eee46362b5114fb2c3800c0c7e7a36"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Aug 24 22:49:59 2015 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Aug 24 22:49:59 2015 +0000"
      },
      "message": "Revert \"Do a second check for testing intrinsic types.\"\n\nThis reverts commit 4daa0b4c21eee46362b5114fb2c3800c0c7e7a36.\n\nIf the intrinsic has a slow-path, like charAt, the slow-path logic will complain as it only understands direct slow-paths, not virtual calls.\n\nWe should either override that decision in the slow-path, or replace the HInvokeVirtual when we\u0027re overriding the intrinsic choice.\n\nBug: 23475673\nChange-Id: If55fbc8c82d52e0e7a7aec2674ae2bd2b74b5c77\n"
    },
    {
      "commit": "b995c0ab7d6313f32e704e79c1e7dd21f5f160d4",
      "tree": "9055d85d7cabb23dd2129e0ea9164011f5238b22",
      "parents": [
        "009c34cba875885d9540696f33255a9b355d6e15"
      ],
      "author": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Aug 24 14:27:01 2015 +0200"
      },
      "committer": {
        "name": "Sebastien Hertz",
        "email": "shertz@google.com",
        "time": "Mon Aug 24 15:15:00 2015 +0200"
      },
      "message": "Update instrumentation stack after exception event\n\nIf instrumentation is updated on an exception event, we must update\nthe instrumentation stack (to remove all frames that will be unwound\nby the exception) before doing the long jump.\n\nBug: 23471864\nChange-Id: Ic91552bb7280c54bcc58b7ba03a17040b0b0f5ef\n"
    },
    {
      "commit": "f7b12e7ae8f481f3fab27d1a17bded4b4f2ce423",
      "tree": "389271f8aa4ed390f68b549989f0b771f6eebde6",
      "parents": [
        "2ee4589ef330e341f7682833c896fb6ea4f18dea",
        "0042c6d49b8488c78f0b937063e316e8d6244439"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Sat Aug 22 00:17:57 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Aug 22 00:17:57 2015 +0000"
      },
      "message": "Merge \"Move annotations to native.\""
    },
    {
      "commit": "0042c6d49b8488c78f0b937063e316e8d6244439",
      "tree": "170286a01d08badebacaebed1db325bc889e259e",
      "parents": [
        "300432d27ba9dd6961458fb1e1c845766f25c50a"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Jul 29 20:14:10 2015 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Aug 21 17:05:27 2015 -0700"
      },
      "message": "Move annotations to native.\n\nArt side of this change. There is also a corresponding Libcore change.\n\nSeeing ~2-3x speedup over dalvik KK MR1 in AnnotatedElementBenchmark.\nBenchmark\t\t\t Speedup of Art AOSP to Dalvik KK MR1\nGetAllReturnsLargeAnnotation\t 2.99\nGetAllReturnsMarkerAnnotation\t 2.20\nGetAllReturnsNoAnnotation\t 2.43\nGetAllReturnsSmallAnnotation\t 2.52\nGetAllReturnsThreeAnnotations\t 2.87\nGetAnnotationsOnSubclass\t 2.42\nGetDeclaredAnnotationsOnSubclass 2.49\nGetFieldAnnotation\t\t 2.68\nGetFieldAnnotations\t\t 2.60\nGetMethodAnnotation\t\t 2.66\nGetMethodAnnotations\t\t 2.61\nGetParameterAnnotations\t\t 2.52\nGetTypeAnnotation\t\t 2.56\nGetTypeAnnotations\t\t 2.17\nIsFieldAnnotationPresent\t 3.26\nIsMethodAnnotationPresent\t 4.99\nIsTypeAnnotationPresent\t\t 1.34\n\nChange-Id: Ibdbb6d23b17eaab6e83c8774b1bb9401e8227941\n"
    },
    {
      "commit": "2ee4589ef330e341f7682833c896fb6ea4f18dea",
      "tree": "56e819c0eb9482a8498376491977165482209234",
      "parents": [
        "300432d27ba9dd6961458fb1e1c845766f25c50a",
        "3835acca9101bd7afa181d8df8eba5a496d480e6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Aug 21 23:26:39 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 21 23:26:39 2015 +0000"
      },
      "message": "Merge \"Correct for signal, native bridge test hard-coded signal handling values\""
    },
    {
      "commit": "3835acca9101bd7afa181d8df8eba5a496d480e6",
      "tree": "7c9de3ac6da1fd1008c36f2809a9ae0c76355d3c",
      "parents": [
        "944973e56fd3c04c92d902b05d0148f77ed28a78"
      ],
      "author": {
        "name": "Agi Csaki",
        "email": "agicsaki@google.com",
        "time": "Fri Aug 21 12:56:30 2015 -0700"
      },
      "committer": {
        "name": "Agi Csaki",
        "email": "agicsaki@google.com",
        "time": "Fri Aug 21 16:13:36 2015 -0700"
      },
      "message": "Correct for signal, native bridge test hard-coded signal handling values\n\nAdded inline assembly to ensure that the instruction causing a segfault\nin x86/x86_64 for the 004-SignalTest and 115-native-bridge test always\nhas a size of 3 bytes, in response to a bug that caused the test to fail\nwhen this instruction had variable sizes.\n\nBug: 22876261\nChange-Id: I474a04782a446439956c22360c71cea2655f8a1b\n"
    },
    {
      "commit": "6306921722283d2b0f8aac01883ad83215d6e864",
      "tree": "ecd9e47d2095d0b0b518b7c4efc1bd25a527e9e0",
      "parents": [
        "879775bba4903a4d066df3ebeac5cd4faf7da3e4"
      ],
      "author": {
        "name": "Man Cao",
        "email": "manc@google.com",
        "time": "Fri Aug 21 15:51:39 2015 -0700"
      },
      "committer": {
        "name": "Man Cao",
        "email": "manc@google.com",
        "time": "Fri Aug 21 15:51:39 2015 -0700"
      },
      "message": "Add a missing reader barrier in entrypoint stub\n\nAlso refactored some comments.\n\nChange-Id: I5c50f487bf9d71f1be5f6c8814bf039993fc1267\n"
    },
    {
      "commit": "300432d27ba9dd6961458fb1e1c845766f25c50a",
      "tree": "490c05f1488141adf5668b34cbec28830fe8295c",
      "parents": [
        "879775bba4903a4d066df3ebeac5cd4faf7da3e4",
        "52a7f5caebdf359ab877f1928aad59f1e9ad29fa"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 21 20:50:14 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 21 20:50:14 2015 +0000"
      },
      "message": "Merge \"Add class flags to class to help GC scanning\""
    },
    {
      "commit": "879775bba4903a4d066df3ebeac5cd4faf7da3e4",
      "tree": "732bc41e676863c5989550440ad5524a6f57fce6",
      "parents": [
        "e74493cbc8f33bfd53b792f98f135d3db680f029",
        "7fee84c087e0f903e7d43bef180df047db1c8051"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 21 18:39:54 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 21 18:39:54 2015 +0000"
      },
      "message": "Merge \"Revert \"[MIPS] Use hard float calling convention for managed code\"\""
    },
    {
      "commit": "7fee84c087e0f903e7d43bef180df047db1c8051",
      "tree": "c35065aeef23f857563eacd82e55ae47d8ceb67c",
      "parents": [
        "a29449dcf57c57fe0876f51367985477317cc557"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 21 18:39:26 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 21 18:39:26 2015 +0000"
      },
      "message": "Revert \"[MIPS] Use hard float calling convention for managed code\"\n\nMipsMir2Lir::LockCallTemps() is broken for secondary architecture on aosp_mips64-eng.\n\nThis reverts commit a29449dcf57c57fe0876f51367985477317cc557.\n\nChange-Id: I480ea7569d73aea7894fc0a6dd804b1135286a37\n"
    },
    {
      "commit": "52a7f5caebdf359ab877f1928aad59f1e9ad29fa",
      "tree": "fe23aeb3682128a31c62324e427b906c9804afd3",
      "parents": [
        "944973e56fd3c04c92d902b05d0148f77ed28a78"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Aug 18 18:35:52 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 21 10:25:36 2015 -0700"
      },
      "message": "Add class flags to class to help GC scanning\n\nReduces GC time and pauses by reducing the number of loads required\nto scan an object.\n\nAverage total GC time before on EvaluateAndApplyChanges (EAAC): 7.452s\nAfter: 7.144s\n\nAverage GC pause times before on EAAC: 860.67us\nAfter: 722.75us\n\nAdding the class flags field cause a memory increase of ~24k system\nwide on low memory devices.\n\nChange-Id: I3f04212d5787bfbf5e55026584d149f55476105e\n"
    },
    {
      "commit": "e74493cbc8f33bfd53b792f98f135d3db680f029",
      "tree": "b42c771e11f23566335f65fe647722271c296e08",
      "parents": [
        "24011e738d77dedb28c1b4d6ff34445cc2acc4a7",
        "c147410b4459aeda08fc0cd8b6df089d75f4e573"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Aug 21 17:24:14 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 21 17:24:14 2015 +0000"
      },
      "message": "Merge \"ART: Special form of lock aliasing\""
    },
    {
      "commit": "24011e738d77dedb28c1b4d6ff34445cc2acc4a7",
      "tree": "0bc9f1fc71bd28f539aabfb09426b1a6d79537a7",
      "parents": [
        "df3269a9681b5b75d7b3088652428d86a6cc8485",
        "48ffe0653c51c0785c8bd260fef486922ba00e4e"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Aug 21 15:43:37 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 21 15:43:37 2015 +0000"
      },
      "message": "Merge \"Made CheckJNI check varargs when possible\""
    },
    {
      "commit": "df3269a9681b5b75d7b3088652428d86a6cc8485",
      "tree": "1e57c6b42cd530db7f68f834ca4efe1b1cd49a88",
      "parents": [
        "3979bdf446b425e69171db58789819e26542f79d",
        "6fab9d12eeee53d18450cc9a41f6acb046868efa"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Aug 21 14:40:47 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 21 14:40:47 2015 +0000"
      },
      "message": "Merge \"Stop framework on buildbot devices to avoid lowmemorykiller.\""
    },
    {
      "commit": "6fab9d12eeee53d18450cc9a41f6acb046868efa",
      "tree": "4b33ceaabcaabfa38243519da78b887a2a177ded",
      "parents": [
        "28de0f652e32e112edab0e5e7dc779943ae488d5"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Aug 21 15:32:35 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Aug 21 15:32:35 2015 +0100"
      },
      "message": "Stop framework on buildbot devices to avoid lowmemorykiller.\n\nChange-Id: If7fa58f9bcb67b90cc2473daa280c3c7d0f0f513\n"
    },
    {
      "commit": "3979bdf446b425e69171db58789819e26542f79d",
      "tree": "1c526eca980fec73f082185ddae98ddbbccdb21e",
      "parents": [
        "e75ffdfe3fbd4253bf1ffd48350b7f6472500c30",
        "2e92bc2ba2446525a07f5172d1cd30ab49d26cd6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Aug 21 14:25:23 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 21 14:25:23 2015 +0000"
      },
      "message": "Merge \"Fix TrySplitNonPairOrUnalignedPairIntervalAt.\""
    },
    {
      "commit": "2e92bc2ba2446525a07f5172d1cd30ab49d26cd6",
      "tree": "18ea6a6719555fee1b9bc4eb8f40f8850dd36714",
      "parents": [
        "cbddb90e515c30983094378e316e446b9edca5d6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Aug 20 19:52:26 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Aug 21 15:23:16 2015 +0100"
      },
      "message": "Fix TrySplitNonPairOrUnalignedPairIntervalAt.\n\nWe need to both:\n1) Look at pair that don\u0027t start at an even register.\n2) Also remove the other half from the list of actives.\n\nChange-Id: Ia99fa9852c67b8633e8d17a258fe302add54b14a\n"
    },
    {
      "commit": "e75ffdfe3fbd4253bf1ffd48350b7f6472500c30",
      "tree": "3b077e6f286bfdb48f211e0d0672ff301c5b7006",
      "parents": [
        "28de0f652e32e112edab0e5e7dc779943ae488d5",
        "a29449dcf57c57fe0876f51367985477317cc557"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Aug 21 13:31:49 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 21 13:31:49 2015 +0000"
      },
      "message": "Merge \"[MIPS] Use hard float calling convention for managed code\""
    },
    {
      "commit": "a29449dcf57c57fe0876f51367985477317cc557",
      "tree": "3b077e6f286bfdb48f211e0d0672ff301c5b7006",
      "parents": [
        "28de0f652e32e112edab0e5e7dc779943ae488d5"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Wed Jul 22 11:08:57 2015 +0200"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Fri Aug 21 14:40:30 2015 +0200"
      },
      "message": "[MIPS] Use hard float calling convention for managed code\n\nNote that this isn\u0027t o32 ABI. Same set of registers is used for\narguments ($a0-$a3 and $f12-$f15), but we don\u0027t skip registers\nand fp arguments are never passed via core registers.\n\nChange-Id: Ifb883ff6e15758b539137898b49ac2f8ee075f49\n"
    },
    {
      "commit": "28de0f652e32e112edab0e5e7dc779943ae488d5",
      "tree": "c35065aeef23f857563eacd82e55ae47d8ceb67c",
      "parents": [
        "6bd6a830f24033830a910f88928b400a7ed28418",
        "4daa0b4c21eee46362b5114fb2c3800c0c7e7a36"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Aug 21 10:06:20 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 21 10:06:20 2015 +0000"
      },
      "message": "Merge \"Do a second check for testing intrinsic types.\""
    },
    {
      "commit": "4daa0b4c21eee46362b5114fb2c3800c0c7e7a36",
      "tree": "c4fc2657cd4f0001fe9d5e37f1621c18c2da29fc",
      "parents": [
        "bffabfce093e26bffb9e820a8f6b45474d28787a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Aug 20 14:05:14 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Aug 21 11:01:38 2015 +0100"
      },
      "message": "Do a second check for testing intrinsic types.\n\nThis allows to intrinsify calls made in a different dex file.\n\nCan\u0027t easily write a test because it depends on having inlined\na method from boot classpath that calls an intrinsic. Once\nString.equals is implemented with the hybrid approach we can write one.\n\nChange-Id: I591d9496e236429943d6bfa7f8b20f576b1cfb9a\n"
    },
    {
      "commit": "c147410b4459aeda08fc0cd8b6df089d75f4e573",
      "tree": "671c3b1591d0a32931426992d31f038a3a9fd225",
      "parents": [
        "6bd6a830f24033830a910f88928b400a7ed28418"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 18 08:57:44 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Aug 20 16:35:45 2015 -0700"
      },
      "message": "ART: Special form of lock aliasing\n\nCheck whether the instruction immediately before a monitor-enter\nis a move-object, establishing previously untracked lock aliasing\nin a low-overhead manner.\n\nBug: 20102779\nBug: 21169615\nBug: 21988678\nBug: 23300986\nChange-Id: Ia10d6219357e7bce29f58134637b07d3f4857b2f\n"
    },
    {
      "commit": "6bd6a830f24033830a910f88928b400a7ed28418",
      "tree": "8c5e89e0b26ab118dc847bd33ef50d3dd56b2537",
      "parents": [
        "944973e56fd3c04c92d902b05d0148f77ed28a78",
        "f5cdc417be5958eaed2172667178ae87ccc51c56"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Aug 20 22:52:44 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 20 22:52:44 2015 +0000"
      },
      "message": "Merge \"ART: (Partially) fix lock aliasing\""
    },
    {
      "commit": "48ffe0653c51c0785c8bd260fef486922ba00e4e",
      "tree": "f8e7e171c9ee91fabc8c491147668f8c097e15e4",
      "parents": [
        "edd0a6dbe26bb334f02d5abe649e3da9165277b2"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Aug 19 15:23:23 2015 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Aug 20 17:24:33 2015 +0000"
      },
      "message": "Made CheckJNI check varargs when possible\n\nSeveral JNI functions such as NewObject and Call*Method take a variable\nnumber of arguments. This patch will make CheckJNI do (limited) dynamic\nvalidation of these arguments. Currently it is limited to checking that\nobjects are valid and that no value types have illegal values.\n\nBug: 20344596\nChange-Id: I1f81d2bdd80215e0007fc636bac27d5bcc2dba96\n"
    },
    {
      "commit": "944973e56fd3c04c92d902b05d0148f77ed28a78",
      "tree": "d386e996008e35ab1ad75c37d8a6bcfcbbd83772",
      "parents": [
        "113af44c238625500ec5b999a9990f39519e2ae2",
        "b8b9356dc175d7f76ee3b1a0092bff45c3a1f10d"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Aug 20 16:57:28 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 20 16:57:28 2015 +0000"
      },
      "message": "Merge \"Add a `--showcommands` option to ART\u0027s buildbot-build.sh.\""
    },
    {
      "commit": "b8b9356dc175d7f76ee3b1a0092bff45c3a1f10d",
      "tree": "d386e996008e35ab1ad75c37d8a6bcfcbbd83772",
      "parents": [
        "113af44c238625500ec5b999a9990f39519e2ae2"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Aug 20 17:49:56 2015 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Aug 20 17:50:16 2015 +0100"
      },
      "message": "Add a `--showcommands` option to ART\u0027s buildbot-build.sh.\n\nChange-Id: Ib562a02b2f96dd5abd580ae751d5d86749144bf3\n"
    },
    {
      "commit": "113af44c238625500ec5b999a9990f39519e2ae2",
      "tree": "cae823179560c18cf86441b30d7927976483d883",
      "parents": [
        "a05264c142526f74af0cf45e643f7b07500431d8",
        "b4edcf357c823f32ddc8f529f111710c7d7c90b1"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Aug 20 16:16:52 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 20 16:16:52 2015 +0000"
      },
      "message": "Merge \"Fix indentation in reference type propagation\""
    },
    {
      "commit": "a05264c142526f74af0cf45e643f7b07500431d8",
      "tree": "27fbf99e57f01048d10b5bae00ea27fc17294273",
      "parents": [
        "1d4a598ed12d86934ceb5e6fd79f80f974f3f23f",
        "4dff2fdca6dc0032032ff324161c6343e675e4b0"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Aug 20 16:11:31 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 20 16:11:31 2015 +0000"
      },
      "message": "Merge \"ARM64: Minor optimization for conversions from long to int.\""
    },
    {
      "commit": "b4edcf357c823f32ddc8f529f111710c7d7c90b1",
      "tree": "767328904963a9080776f7aaa04a0fb5ffeb887f",
      "parents": [
        "5e7cd7bf59501d6f1f90910a9da87effae7b9328"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Aug 20 17:05:49 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Aug 20 17:05:49 2015 +0100"
      },
      "message": "Fix indentation in reference type propagation\n\nChange-Id: I5860c4fef55326ac2b510e3e34c4541b691794e0\n"
    },
    {
      "commit": "1d4a598ed12d86934ceb5e6fd79f80f974f3f23f",
      "tree": "7977b502e2716b8fd21b56e7a308e75c764ec6d4",
      "parents": [
        "5e7cd7bf59501d6f1f90910a9da87effae7b9328",
        "8ff495e15074d621371b4e9d46ba399563315819"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Aug 20 16:05:17 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 20 16:05:17 2015 +0000"
      },
      "message": "Merge \"Fix formatting comment in Checker\""
    },
    {
      "commit": "8ff495e15074d621371b4e9d46ba399563315819",
      "tree": "7977b502e2716b8fd21b56e7a308e75c764ec6d4",
      "parents": [
        "5e7cd7bf59501d6f1f90910a9da87effae7b9328"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Aug 20 16:59:24 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Aug 20 17:01:14 2015 +0100"
      },
      "message": "Fix formatting comment in Checker\n\nChange-Id: Idf5cf2d4be12a56777039aca3aa1c8563bcb9089\n"
    },
    {
      "commit": "5e7cd7bf59501d6f1f90910a9da87effae7b9328",
      "tree": "18bc50e23f1fe09364495ce434f1e24ed4b8fe1a",
      "parents": [
        "8a5ea659d0fdf024181a3ea4aae50b0fb26f6291",
        "289cd55808111d23c92f2739a096942a8049649a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Aug 20 15:08:54 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 20 15:08:54 2015 +0000"
      },
      "message": "Merge \"Optimizing String.Equals as an intrinsic (ARM)\""
    },
    {
      "commit": "8a5ea659d0fdf024181a3ea4aae50b0fb26f6291",
      "tree": "94c70d0360635a90b5c66e1feeb2434d911a474a",
      "parents": [
        "07b017dc8720352e9a8658c576bd43f0e9d61067",
        "599262ca1f45ff41ec1bbf31556ab5bf7e94d87a"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Aug 20 14:02:09 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 20 14:02:09 2015 +0000"
      },
      "message": "Merge \"Fix extra parantheses\""
    },
    {
      "commit": "599262ca1f45ff41ec1bbf31556ab5bf7e94d87a",
      "tree": "cd1fc6e00092b80ebad94b3e896b167107294d41",
      "parents": [
        "0eedd7e0c923f3ef0b7103f58ca0b975613af144"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Aug 20 15:01:27 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Aug 20 15:01:27 2015 +0100"
      },
      "message": "Fix extra parantheses\n\n:(\n\nChange-Id: Ie48a54de1276fb9e478cb5927d714b2ff14ae6c6\n"
    },
    {
      "commit": "07b017dc8720352e9a8658c576bd43f0e9d61067",
      "tree": "28d1b7b2dc1a899c5ab3dfe41ce69ce032fdf1f6",
      "parents": [
        "431ad2930f906e860bc2a801aec63588bc14f63d",
        "0eedd7e0c923f3ef0b7103f58ca0b975613af144"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Aug 20 13:52:16 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 20 13:52:16 2015 +0000"
      },
      "message": "Merge \"Fix BuildInvoke\""
    },
    {
      "commit": "0eedd7e0c923f3ef0b7103f58ca0b975613af144",
      "tree": "c77db90ea2e42f0cd3b0e3b185a2c3ecde0ca515",
      "parents": [
        "68ad649d3918f2eed3a37209c01a7f0a0faf09f0"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Aug 20 14:48:00 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Aug 20 14:51:27 2015 +0100"
      },
      "message": "Fix BuildInvoke\n\nThe invoke should be added to the graph before\nPotentiallySimplifyFakeString.\n\nChange-Id: I2afc1d16e6dae60957e7d1386fd028e4f3a5b27a\n"
    },
    {
      "commit": "4dff2fdca6dc0032032ff324161c6343e675e4b0",
      "tree": "3cfc13ae18696ddef98d5cd5954c493f63b66ec7",
      "parents": [
        "4d786026efaac41acf8278d1c87d842f7ce06fde"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Thu Aug 20 13:36:35 2015 +0100"
      },
      "committer": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Thu Aug 20 13:36:35 2015 +0100"
      },
      "message": "ARM64: Minor optimization for conversions from long to int.\n\nChange-Id: Ice7febba8dd09a4548ab235fc8aee76d7e7676a1\n"
    },
    {
      "commit": "431ad2930f906e860bc2a801aec63588bc14f63d",
      "tree": "a83f625bdf506aa3f3e55a69f93434f52fc0c59e",
      "parents": [
        "4a2f814eecb6d96f6ac97e6dc7a3d64dae4226f5",
        "68ad649d3918f2eed3a37209c01a7f0a0faf09f0"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Aug 20 12:27:14 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 20 12:27:14 2015 +0000"
      },
      "message": "Merge \"Refactor BuildInvoke.\""
    },
    {
      "commit": "68ad649d3918f2eed3a37209c01a7f0a0faf09f0",
      "tree": "5d6a004a79bffc5c02af02f325faa8df5f8cad52",
      "parents": [
        "bffabfce093e26bffb9e820a8f6b45474d28787a"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Aug 18 17:08:12 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Aug 20 12:57:10 2015 +0100"
      },
      "message": "Refactor BuildInvoke.\n\nBuildInvoke got to be too complex an unreadble. This breaks it down in\nsmaller pieces.\n\nChange-Id: Ibda63f69f5a1be537ae13e18a5f67c361173f4a6\n"
    },
    {
      "commit": "4a2f814eecb6d96f6ac97e6dc7a3d64dae4226f5",
      "tree": "0e784a77c7dd03d06f6072b799798b97f5c5aebe",
      "parents": [
        "bffabfce093e26bffb9e820a8f6b45474d28787a",
        "b34c35ee8fe1516118d1d172a5e05b263ccbd93d"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Aug 20 11:55:01 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 20 11:55:01 2015 +0000"
      },
      "message": "Merge \"ART: Expression evaluation in Checker\""
    },
    {
      "commit": "b34c35ee8fe1516118d1d172a5e05b263ccbd93d",
      "tree": "6f85a19dd90ea57278d3afceedec9702f8163330",
      "parents": [
        "83f8b5bb9e9c52791a02a84d7b0889cab898efe4"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Aug 20 11:46:04 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Aug 20 12:54:19 2015 +0100"
      },
      "message": "ART: Expression evaluation in Checker\n\nIt can be useful for tests to evaluate small `assert`-like expressions.\nThis patch adds such support to Checker, with a new CHECK-EVAL line.\nSee README file for more details.\n\nChange-Id: I184f7c8e8b53f7e93cfb08fcf9630b4724fa5412\n"
    },
    {
      "commit": "bffabfce093e26bffb9e820a8f6b45474d28787a",
      "tree": "49b3183cd1d25b6a5cfb31e0d16678deb023c1e8",
      "parents": [
        "4d786026efaac41acf8278d1c87d842f7ce06fde",
        "e418dda75998e0186f7580c2c54705767c3c8f1f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Aug 20 10:06:31 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 20 10:06:31 2015 +0000"
      },
      "message": "Merge \"Be more flexible on the code unit size when inlining.\""
    },
    {
      "commit": "e418dda75998e0186f7580c2c54705767c3c8f1f",
      "tree": "49b3183cd1d25b6a5cfb31e0d16678deb023c1e8",
      "parents": [
        "4d786026efaac41acf8278d1c87d842f7ce06fde"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Aug 11 20:03:09 2015 -0700"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Aug 20 11:00:12 2015 +0100"
      },
      "message": "Be more flexible on the code unit size when inlining.\n\nThis change increases the maximum code unit size, and fold\nparameters in the inlinee in the hope to reduce the overall\nsize of the graph. We then make sure we don\u0027t inline methods\nthat have more than N HInstructions.\n\nAlso, remove the kAccDontInline flag on ArtMethod. The compiler\ndoes not need it anymore.\n\nChange-Id: I4cd3da40e551f30ba83b8b274728b87e67f6812e\n"
    },
    {
      "commit": "4d786026efaac41acf8278d1c87d842f7ce06fde",
      "tree": "60d94fc6f0e0825bec14a5f8eb52f2b98d285314",
      "parents": [
        "e1e05e0876f303a9f4aca1d8713b7c44f21952b8",
        "05f2056b4f11e0b2bac92b2655abe7030771f5dc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Aug 20 03:09:32 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 20 03:09:32 2015 +0000"
      },
      "message": "Merge \"Add support to indicate whether intrinsics require a dex cache\""
    },
    {
      "commit": "05f2056b4f11e0b2bac92b2655abe7030771f5dc",
      "tree": "60d94fc6f0e0825bec14a5f8eb52f2b98d285314",
      "parents": [
        "e1e05e0876f303a9f4aca1d8713b7c44f21952b8"
      ],
      "author": {
        "name": "Agi Csaki",
        "email": "agicsaki@google.com",
        "time": "Wed Aug 19 14:58:14 2015 -0700"
      },
      "committer": {
        "name": "Agi Csaki",
        "email": "agicsaki@google.com",
        "time": "Wed Aug 19 18:51:32 2015 -0700"
      },
      "message": "Add support to indicate whether intrinsics require a dex cache\n\nA structural change to indicate whether a given intrinsic requires access\nto a dex cache.  I updated the needs_environment_ field to indicate\nwhether an HInvoke needs an environment or a dex cache, and if an HInvoke\nrepresents an intrisified method, we utilize this field to determine if\nthe HInvoke needs a dex cache.\n\nBug: 21481923\nChange-Id: I9dd25a385e1a1397603da6c4c43f6c1aea511b32\n"
    },
    {
      "commit": "289cd55808111d23c92f2739a096942a8049649a",
      "tree": "e09f51a94f3c83de7fc7c2bed4e0879ac62a6c70",
      "parents": [
        "e1e05e0876f303a9f4aca1d8713b7c44f21952b8"
      ],
      "author": {
        "name": "Agi Csaki",
        "email": "agicsaki@google.com",
        "time": "Tue Aug 18 17:10:38 2015 -0700"
      },
      "committer": {
        "name": "Agi Csaki",
        "email": "agicsaki@google.com",
        "time": "Wed Aug 19 17:50:40 2015 -0700"
      },
      "message": "Optimizing String.Equals as an intrinsic (ARM)\n\nThe second implementation of String.Equals. I added an intrinsic\nin ARM which is similar to the original java implementation\nof String.equals: an instanceof check, null check, length check, and\nreference equality check followed by a loop comparing strings two\ncharacters at a time. After extensive benchmarking, it seems that\ncomparing strings forward is faster and is worth the additional temp\nregister required. Additionally, moving the add and sub instructions\nthat are anyways necessary between branches in the comparison loop\nimproved benchmarking results.\n\nInteresting benchmarking values:\n\nOptimizing Compiler on Nexus 7\n    Intrinsic 1-5 Character Strings \u003d 91.6 ns\n    Original 1-5 Character Strings \u003d 285.84 ns\n    Intrinsic 15-30 Character Strings \u003d 176 ns\n    Original 15-30 Character Strings \u003d 367.67 ns\n    Intrinsic 100-1000 Character Strings \u003d 2992.1 ns\n    Original 100-1000 Character Strings \u003d 9098.5 ns\n    Intrinsic Null Argument \u003d 70.9 ns\n    Original Null Argument \u003d 189 ns\n\nCode Expansion:\n\n    Average size of 116 apps without intrinsic \u003d 6880521.11 bytes\n    Average size of 116 apps with intrinsic \u003d 6901107.97 bytes\n    Overall 0.299% increase in code size\n\nBug: 21481923\nChange-Id: I48df2a74f2a92b56fb9479fbf14276d44e880aed\n"
    },
    {
      "commit": "e1e05e0876f303a9f4aca1d8713b7c44f21952b8",
      "tree": "79fd9e7d08ad2055542cb1b64ebf26b00cb3af17",
      "parents": [
        "83f8b5bb9e9c52791a02a84d7b0889cab898efe4",
        "00370827646cc21cb370c3e7e93f9c0cff4c30c2"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Aug 19 20:19:15 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 19 20:19:15 2015 +0000"
      },
      "message": "Merge \"Use thread-local is_gc_marking flags for the CC collector.\""
    },
    {
      "commit": "00370827646cc21cb370c3e7e93f9c0cff4c30c2",
      "tree": "79fd9e7d08ad2055542cb1b64ebf26b00cb3af17",
      "parents": [
        "83f8b5bb9e9c52791a02a84d7b0889cab898efe4"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Aug 18 14:47:25 2015 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Aug 19 12:15:17 2015 -0700"
      },
      "message": "Use thread-local is_gc_marking flags for the CC collector.\n\nThe currently global is_marking flag is used to check if the read\nbarrier slow path needs to be taken for GC roots access. Changing it\nto a thread-local flag simplifies the fast path check and makes it\neasier to do it in assembly code. It also solves the issue that we\nneed to avoid accessing the global flag during startup before the heap\nor the collector object isn\u0027t allocated and initialized.\n\nBug: 12687968\nChange-Id: Ibf0dca12f400bf3490188b12dfe96c7de30583e0\n"
    },
    {
      "commit": "83f8b5bb9e9c52791a02a84d7b0889cab898efe4",
      "tree": "59de59bcd9f166fd892df1887019c846abd539ba",
      "parents": [
        "99429ae0610e8d67d417542942c4befb35950bd3",
        "bbd733e4ef277eff19bf9a6601032da081e9b68f"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Aug 19 19:02:45 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 19 19:02:45 2015 +0000"
      },
      "message": "Merge \"ART: Enable basic optimizations for try/catch\""
    },
    {
      "commit": "bbd733e4ef277eff19bf9a6601032da081e9b68f",
      "tree": "47c5e9624378d8705e8e448ed951617f680d021f",
      "parents": [
        "a35d4c9d66b372e7ae1014357c48ddfa6104085b"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Aug 18 17:48:17 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Aug 19 19:55:43 2015 +0100"
      },
      "message": "ART: Enable basic optimizations for try/catch\n\nGenerating code for try/catch methods requires having run at least the\ninstruction simplifier to remove redundant suspend checks. This patch\nenables the first group of optimizations when try/catch is present.\n\nEnabled optimizations:\n1) IntrinsicsRecognizer\nDoes not modify the graph, only sets HInvoke::intrinsic_.\n\n2) ConstantFolding\nDoes not deal with throwing instructions.\n\n3) InstructionSimplifier\nMay remove a throwing instruction (e.g. LoadClass in VisitCheckCast),\nor may turn a throwing instruction into a non-throwing one (ArraySet).\nTheir corresponding catch phi inputs are not removed but correctness\nis preserved.\n\n4) ReferenceTypePropagation\nDoes not modify the graph, only sets type properties. Typing of\nLoadException from catch handler information was added.\n\n5) DeadCodeElimination\nRemoving individual instructions is fine (same as 3). Removal of dead\nblocks was disabled for try/catch.\n\nChange-Id: I2722c3229eb8aaf326391e07f522dbf5186774b8\n"
    },
    {
      "commit": "99429ae0610e8d67d417542942c4befb35950bd3",
      "tree": "707a048ce213083edcf370a0a021e66a709d157c",
      "parents": [
        "a35d4c9d66b372e7ae1014357c48ddfa6104085b",
        "581550137ee3a068a14224870e71aeee924a0646"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 19 18:05:46 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 19 18:05:46 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Optimizing: Better invoke-static/-direct dispatch.\"\"\""
    },
    {
      "commit": "581550137ee3a068a14224870e71aeee924a0646",
      "tree": "f62dd0d07c66a8ce4d7d994ee0e9c27bd8014bb1",
      "parents": [
        "32f264e67afa8654a5570d38b627515fb73fc333"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 19 12:49:41 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 19 18:54:36 2015 +0100"
      },
      "message": "Revert \"Revert \"Optimizing: Better invoke-static/-direct dispatch.\"\"\n\nFixed kCallArtMethod to use correct callee location for\nkRecursive. This combination is used when compiling with\ndebuggable flag set.\n\nThis reverts commit b2c431e80e92eb6437788cc544cee6c88c3156df.\n\nChange-Id: Idee0f2a794199ebdf24892c60f8a5dcf057db01c\n"
    },
    {
      "commit": "a35d4c9d66b372e7ae1014357c48ddfa6104085b",
      "tree": "8f3c9cefb4c9ed12749713ef1f52708ef6d5d455",
      "parents": [
        "f25f4f95863946053cae46e34fd175cc7a6c3ea5",
        "ec16f79a4d0aeff319bf52139a0c82de3080d73c"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Aug 19 17:12:48 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 19 17:12:48 2015 +0000"
      },
      "message": "Merge \"ART: Refactor try/catch block info, store exception type\""
    },
    {
      "commit": "ec16f79a4d0aeff319bf52139a0c82de3080d73c",
      "tree": "1306b2cbaa97bbacc2cbc100d6e157e14f9510cb",
      "parents": [
        "32f264e67afa8654a5570d38b627515fb73fc333"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Aug 19 15:04:01 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Aug 19 17:43:13 2015 +0100"
      },
      "message": "ART: Refactor try/catch block info, store exception type\n\nThis patch replaces HBasicBlock fields storing try/catch info with a\nsingle TryCatchInformation data structure, saving memory for the\nmajority of non-try/catch blocks. It also changes builder to store\nthe exception type for catch blocks.\n\nChange-Id: Ib3e43f7db247e6915d67c267fc62410420e230c9\n"
    },
    {
      "commit": "f5cdc417be5958eaed2172667178ae87ccc51c56",
      "tree": "10775ab47640018149a6599edc06d88eaf2190ea",
      "parents": [
        "f71ad9ede9ae322a897e8fe407208dc35c5dee65"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 18 08:57:44 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Aug 19 09:24:47 2015 -0700"
      },
      "message": "ART: (Partially) fix lock aliasing\n\nOn monitor-exit, we must unlock all the registers which purport to\nbe locked at the current lock depth. These are lock aliases.\n\nBug: 20102779\nBug: 21169615\nBug: 21988678\nBug: 23300986\nChange-Id: I6604871fc778d8f0ca9a99f6aad16a99ab62c599\n"
    },
    {
      "commit": "f25f4f95863946053cae46e34fd175cc7a6c3ea5",
      "tree": "e2dc2550feafecdc514a65795da395bf8def399b",
      "parents": [
        "a85373e8ab4a3b090eb60eba05be6f13dcd15567",
        "44b9cf937836bb33139123e15ca8b586b5853268"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Aug 19 15:56:11 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 19 15:56:11 2015 +0000"
      },
      "message": "Merge \"Put in place the ARM64 instruction simplification framework.\""
    },
    {
      "commit": "a85373e8ab4a3b090eb60eba05be6f13dcd15567",
      "tree": "a38d3bc71912107fd4d5b3db3fb787378d0f61d6",
      "parents": [
        "32f264e67afa8654a5570d38b627515fb73fc333",
        "93aa210bd8bfa5e1e64eca329115617b3ab76fae"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Aug 19 15:19:31 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 19 15:19:31 2015 +0000"
      },
      "message": "Merge \"Manually unrelocate odex files generated for test.\""
    },
    {
      "commit": "44b9cf937836bb33139123e15ca8b586b5853268",
      "tree": "a4fe52cb53133522069f41083d118fb6abca9336",
      "parents": [
        "32f264e67afa8654a5570d38b627515fb73fc333"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Wed Aug 19 15:39:06 2015 +0100"
      },
      "committer": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Wed Aug 19 15:39:06 2015 +0100"
      },
      "message": "Put in place the ARM64 instruction simplification framework.\n\nThis commit introduces and runs the empty InstructionSimplifierArm64\npass. Further commits will introduce arm64-specific transformations in\nthat pass.\n\nChange-Id: I458f8a2b15470297b87fc1f7ff85bd52155d93ef\n"
    }
  ],
  "next": "32f264e67afa8654a5570d38b627515fb73fc333"
}
