)]}'
{
  "log": [
    {
      "commit": "fe57faa2e0349418dda38e77ef1c0ac29db75f4d",
      "tree": "38ba7a406f8a86a1152bd6c9f2d0a6c677423211",
      "parents": [
        "9e30c0e177adabaaf94a66c91130a19a7632fc7c"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Fri Sep 18 09:26:15 2015 -0400"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Mon Sep 21 07:23:45 2015 -0400"
      },
      "message": "[optimizing] Add basic PackedSwitch support\n\nAdd HPackedSwitch, and generate it from the builder.  Code generators\nconvert this to a series of compare/branch tests.  Better implementation\nin the code generators as a real jump table will follow as separate CLs.\n\nChange-Id: If14736fa4d62809b6ae95280148c55682e856911\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "cd9533565b7a3bbf2f7649d2d18df3402885b33d",
      "tree": "5f30468efb013555274dc5c656f3706e0e49b73a",
      "parents": [
        "7bfd7ee880785ef383f6434eb4eb35fcaac5ad5a",
        "85c7bab43d11180d552179c506c2ffdf34dd749c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 18 14:20:39 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 18 14:20:39 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Optimize code generation of check-cast and instance-of.\"\"\""
    },
    {
      "commit": "85c7bab43d11180d552179c506c2ffdf34dd749c",
      "tree": "337976b69d3b2a35cc9f12284cda03c8eb2a58c7",
      "parents": [
        "819a9c5638b6d6b579c89fe36df96acc1f378182"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 18 13:40:46 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 18 15:19:04 2015 +0100"
      },
      "message": "Revert \"Revert \"Optimize code generation of check-cast and instance-of.\"\"\n\nThis reverts commit 7537437c6a2f89249a48e30effcc27d4e7c5a04f.\n\nChange-Id: If759cb08646e47b62829bebc3c5b1e2f2969cf84\n"
    },
    {
      "commit": "7bfd7ee880785ef383f6434eb4eb35fcaac5ad5a",
      "tree": "42b5d6ea600edac939677ee8e021d91ac12da1c0",
      "parents": [
        "819a9c5638b6d6b579c89fe36df96acc1f378182",
        "46fe0650be6a69f63b54c0967194350c6a145557"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 18 13:51:30 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 18 13:51:30 2015 +0000"
      },
      "message": "Merge \"Fix x64\u0027s cmpw.\""
    },
    {
      "commit": "46fe0650be6a69f63b54c0967194350c6a145557",
      "tree": "951c08c8993ad0da72dd96a651617a00a00d102e",
      "parents": [
        "46aa836b632b5f01e8b4c8e5d8eed2199e8f35d0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 18 14:36:49 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Sep 18 14:47:38 2015 +0100"
      },
      "message": "Fix x64\u0027s cmpw.\n\nChange-Id: If700f2994990864c8b34aa52eb7a767153a1f917\n"
    },
    {
      "commit": "3eaa32f72b6abd807964134aad4c158946dc92e3",
      "tree": "003aa2bcd15499c7ebfdc5528b607e23f4f452f0",
      "parents": [
        "9632d5a5ed8295d63fc82fe418a3b776de4e4459"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Sep 18 10:58:32 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Sep 18 14:14:53 2015 +0100"
      },
      "message": "ART: Delete catch phis for undefined vregs.\n\nSSA builder assumed that (eagerly created) catch phis for undefined\nvregs must be dead and will be deleted by dead phi elimination. This,\nhowever, does not hold for --debuggable because the catch phis might\nbe revived for their environment uses. This patch modifies the builder\nto delete the phis itself.\n\nBug: 24054676\nChange-Id: Iaa5f2487ff1c38353b44cb89c709bbff1ecd73cc\n"
    },
    {
      "commit": "dc25b96abb09f292cf6e580e49d4cea4c968c106",
      "tree": "615aeea1e332de0e3cbc5dcda0da887553d82cc4",
      "parents": [
        "61b8bf03d93215e69a3c69ff27ebab238b03c81a",
        "8f8926a5c7ea332ab387c2b3ebc6fd378a5761bc"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 18 00:10:09 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 18 00:10:09 2015 +0000"
      },
      "message": "Merge \"Implement StringGetCharsNoCheck intrinsic for X86\""
    },
    {
      "commit": "61b8bf03d93215e69a3c69ff27ebab238b03c81a",
      "tree": "c17dab4c750fa5b626aba51db5edc6a14d2df0de",
      "parents": [
        "2582e1ec39adc69bf29b60dba8c9d62b218fd741",
        "d5ce6a80d6795ada9f47600287706135481cbb4b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 17 23:26:15 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 17 23:26:15 2015 +0000"
      },
      "message": "Merge \"ART: Skip image visitor in OatWriter for VerifyAtRuntime\""
    },
    {
      "commit": "85b62f23fc6dfffe2ddd3ddfa74611666c9ff41d",
      "tree": "c916b01b1608558a7d8c9d100274c4c6b6706386",
      "parents": [
        "6766eae2d91e894b4ceab9f29cc983900e7bc0c7"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 09 13:15:38 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 17 14:41:52 2015 -0700"
      },
      "message": "ART: Refactor intrinsics slow-paths\n\nRefactor slow paths so that there is a default implementation for\ncommon cases (only arm64 with vixl is special). Write a generic\nintrinsic slow-path that can be reused for the specific architectures.\nMove helper functions into CodeGenerator so that they are accessible.\n\nChange-Id: Ibd788dce432601c6a9f7e6f13eab31f28dcb8550\n"
    },
    {
      "commit": "d5ce6a80d6795ada9f47600287706135481cbb4b",
      "tree": "c11e0fb978f53bba035cca795f0626ec475e6458",
      "parents": [
        "930761fb7a4db70fbd5e75faa1fca07e5b494ae9"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 16 17:12:55 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 17 14:02:50 2015 -0700"
      },
      "message": "ART: Skip image visitor in OatWriter for VerifyAtRuntime\n\nThere\u0027s no use running the visitor, and it will force-resolve all\nmethods. Avoid the overhead. Reduces boot image compile time in\nverify-at-runtime mode from 1.25s to 1s (on the host, in -j4 mode).\n\nBug: 24103765\nChange-Id: Icdc3be628fed0c9bda01cf5f24fe377f23c571a9\n"
    },
    {
      "commit": "6766eae2d91e894b4ceab9f29cc983900e7bc0c7",
      "tree": "4a3aac762e01c7933bcbffebb5277bde208e975b",
      "parents": [
        "930761fb7a4db70fbd5e75faa1fca07e5b494ae9",
        "7537437c6a2f89249a48e30effcc27d4e7c5a04f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 17 17:12:37 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 17 17:12:37 2015 +0000"
      },
      "message": "Merge \"Revert \"Optimize code generation of check-cast and instance-of.\"\""
    },
    {
      "commit": "7537437c6a2f89249a48e30effcc27d4e7c5a04f",
      "tree": "3f5f1d89f27d549cf40901f906ffab86bb05b520",
      "parents": [
        "64acf303eaa2f32c0b1d8cfcbf044a822c5eec08"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 17 17:12:19 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 17 17:12:19 2015 +0000"
      },
      "message": "Revert \"Optimize code generation of check-cast and instance-of.\"\n\nFailures with libcore tests.\n\nThis reverts commit 64acf303eaa2f32c0b1d8cfcbf044a822c5eec08.\n\nChange-Id: Ie6f323fcf5d86bae5c334c1352bb21f1bad60a88\n"
    },
    {
      "commit": "ca83cd09bde09dac73ed66f38dec4bc0bd6afb54",
      "tree": "a4d1a7267ae3009758b704d8aa0dd30133baea08",
      "parents": [
        "e3b223594e2e9d91903a62180c9660664052506b",
        "76c92ac73eeda2582caee39dd427ca035caf172b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 17 15:53:10 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 17 15:53:10 2015 +0000"
      },
      "message": "Merge \"Optimizing: Allow storing value objects in containers.\""
    },
    {
      "commit": "b7d8e8cf7063fdec1cce6ebd33e33804976bd978",
      "tree": "8d60856999139cf5b0b0f145f69c35a84a60716c",
      "parents": [
        "a201d5eeb0903408df925a1ed1686a55238a274c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 17 15:47:05 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 17 16:06:59 2015 +0100"
      },
      "message": "Optimizing: Do not use range-based loop when inserting elements.\n\nWhen we iterate over the elements of a container and we may\ninsert new elements into that container, it\u0027s wrong to use\nthe range-based loop.\n\nBug: 24133462\nChange-Id: Iee35fbcf88ed3bcd6155cbeba09bd256032a16be\n"
    },
    {
      "commit": "76c92ac73eeda2582caee39dd427ca035caf172b",
      "tree": "7d5baae363d7c380476ce8842ad1f43b59d48af5",
      "parents": [
        "a201d5eeb0903408df925a1ed1686a55238a274c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 17 15:39:16 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 17 15:45:39 2015 +0100"
      },
      "message": "Optimizing: Allow storing value objects in containers.\n\nChange-Id: Ic9c6b62e36706e571fd71c18d24d8e76ae2d5c7b\n"
    },
    {
      "commit": "a201d5eeb0903408df925a1ed1686a55238a274c",
      "tree": "d59b87e3c0bddb1d244199e9fbcc9301cb7dc52f",
      "parents": [
        "271d30dd847fb72d78d3178b8b3b225192c2d1c0",
        "64acf303eaa2f32c0b1d8cfcbf044a822c5eec08"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 17 14:18:03 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 17 14:18:03 2015 +0000"
      },
      "message": "Merge \"Optimize code generation of check-cast and instance-of.\""
    },
    {
      "commit": "271d30dd847fb72d78d3178b8b3b225192c2d1c0",
      "tree": "9ea1b98840ee6108408d6f11e0c670e39eb28136",
      "parents": [
        "017719a03c7c111a2069b5f85e3b9c81566c0902",
        "e6f49b47b6a4dc9c7684e4483757872cfc7ff1a1"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Sep 17 14:05:27 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 17 14:05:27 2015 +0000"
      },
      "message": "Merge \"Revert \"Support unresolved fields in optimizing\" breaks debuggable tests.\""
    },
    {
      "commit": "e6f49b47b6a4dc9c7684e4483757872cfc7ff1a1",
      "tree": "6a5f45136832f73138ced75fcd3c6110b74116ea",
      "parents": [
        "23a8e35481face09183a24b9d11e505597c75ebb"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Sep 17 14:04:33 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Sep 17 14:04:33 2015 +0000"
      },
      "message": "Revert \"Support unresolved fields in optimizing\"\nbreaks debuggable tests.\n\nThis reverts commit 23a8e35481face09183a24b9d11e505597c75ebb.\n\nChange-Id: I8e60b5c8f48525975f25d19e5e8066c1c94bd2e5\n"
    },
    {
      "commit": "64acf303eaa2f32c0b1d8cfcbf044a822c5eec08",
      "tree": "1e9829deb0621b3cb9b275846c8d08381956fecf",
      "parents": [
        "017719a03c7c111a2069b5f85e3b9c81566c0902"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Sep 14 22:20:29 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Sep 17 14:45:39 2015 +0100"
      },
      "message": "Optimize code generation of check-cast and instance-of.\n\nOn x86/x64/arm/arm64. Improve code size of selected apks from 0.3% to 1%,\nand performance of DeltaBlue by 20%.\n\nChange-Id: Ib5799f7a53443cd880a121dd7f21932ae9f5c7aa\n"
    },
    {
      "commit": "017719a03c7c111a2069b5f85e3b9c81566c0902",
      "tree": "3f5f1d89f27d549cf40901f906ffab86bb05b520",
      "parents": [
        "9d567824e101428adfde58976a1307fbd6c0e247",
        "23a8e35481face09183a24b9d11e505597c75ebb"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Sep 17 12:29:09 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 17 12:29:09 2015 +0000"
      },
      "message": "Merge \"Support unresolved fields in optimizing\""
    },
    {
      "commit": "9d567824e101428adfde58976a1307fbd6c0e247",
      "tree": "9ea1b98840ee6108408d6f11e0c670e39eb28136",
      "parents": [
        "b4b543d79b427fa96f0dd635014bd8754a798cc9",
        "175dc732c80e6f2afd83209348124df349290ba8"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Sep 17 12:29:02 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 17 12:29:02 2015 +0000"
      },
      "message": "Merge \"Support unresolved methods in Optimizing\""
    },
    {
      "commit": "b4b543d79b427fa96f0dd635014bd8754a798cc9",
      "tree": "5ddd79f4869533616ffd9dafd450766ee6491794",
      "parents": [
        "46aa836b632b5f01e8b4c8e5d8eed2199e8f35d0",
        "5d01db1aa7634a012109d43e6403451b76de1daa"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Sep 17 12:28:50 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 17 12:28:50 2015 +0000"
      },
      "message": "Merge \"BuildInvoke refactor: extract String.init in its own code path\""
    },
    {
      "commit": "23a8e35481face09183a24b9d11e505597c75ebb",
      "tree": "bcaafb6ea001349acbf160c2cc89334fab4a38dc",
      "parents": [
        "175dc732c80e6f2afd83209348124df349290ba8"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Sep 08 19:56:31 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Sep 17 12:29:59 2015 +0100"
      },
      "message": "Support unresolved fields in optimizing\n\nChange-Id: I9941fa5fcb6ef0a7a253c7a0b479a44a0210aad4\n"
    },
    {
      "commit": "175dc732c80e6f2afd83209348124df349290ba8",
      "tree": "6a5f45136832f73138ced75fcd3c6110b74116ea",
      "parents": [
        "5d01db1aa7634a012109d43e6403451b76de1daa"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Aug 25 15:42:32 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Sep 17 12:29:51 2015 +0100"
      },
      "message": "Support unresolved methods in Optimizing\n\nChange-Id: If2da02b50d2fa668cd58f134a005f1752e7746b1\n"
    },
    {
      "commit": "5d01db1aa7634a012109d43e6403451b76de1daa",
      "tree": "9032845624b975d13d28cdddd920e6b66ddae2db",
      "parents": [
        "9b2c10ebac8e024412b4cc43e6511d724a0fd345"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Aug 25 15:02:42 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Sep 17 12:26:28 2015 +0100"
      },
      "message": "BuildInvoke refactor: extract String.init in its own code path\n\nThis makes it clear that we special handle String init. Getting rid of\nall `if (is_string_init)` improves readability into what we actually do\nand expect for strings.\n\nChange-Id: I9b4fba4c3ea89e0003c0704335cbe80e874d0e15\n"
    },
    {
      "commit": "46aa836b632b5f01e8b4c8e5d8eed2199e8f35d0",
      "tree": "fd8a1588dd4aa00051973cf0c999c90857a8a96a",
      "parents": [
        "9eac83e1563fbf7423a3de9634e21d7b8e5f9a9a",
        "2d554795420be0be88bb4600ea81d1ec293217c4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 16 20:51:55 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 16 20:51:55 2015 +0000"
      },
      "message": "Merge \"X86/X86_64: Intrinsics - numberOfTrailingZeros, rotateLeft, rotateRight\""
    },
    {
      "commit": "9eac83e1563fbf7423a3de9634e21d7b8e5f9a9a",
      "tree": "0b30cd4ca01f0d5fce5e81249febfb20e7fc342a",
      "parents": [
        "9b2c10ebac8e024412b4cc43e6511d724a0fd345",
        "740667a1c5fa0188bb676c569064deb2c47c0825"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 16 17:22:02 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 16 17:22:02 2015 +0000"
      },
      "message": "Merge \"ART: Skip compiler-driver compile loop for VerifyAtRuntime\""
    },
    {
      "commit": "740667a1c5fa0188bb676c569064deb2c47c0825",
      "tree": "bbfdc04e8f6a28ad8825f67dfabad6bc6094eeb3",
      "parents": [
        "1a1d77f7f8cdc892a59b1618b5bd8fea269354cb"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 15 17:55:06 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 16 08:47:30 2015 -0700"
      },
      "message": "ART: Skip compiler-driver compile loop for VerifyAtRuntime\n\nWe don\u0027t compile (not even dex-to-dex) anyways, so skip iterating\nover all methods. Shows a ~10% improvement of boot image compile\ntime on Nexus 9. Shows a ~40% improvement for a common large app\non the same device. Most of the remaining time is unzipping dex\nfiles.\n\nBug: 24103765\nChange-Id: I00931fd062a0a2297d1c7b90794302cb664571cc\n"
    },
    {
      "commit": "71bf8090663d02869cafafdd530976f7f2a9db7f",
      "tree": "70f910498031be392dd1f851cf38fe68bdc3154c",
      "parents": [
        "4919c34ead9a10d6cbdaba9967952c344b32e5b9"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 15 15:33:14 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 16 16:41:01 2015 +0100"
      },
      "message": "Optimizing: Tag arena allocations in SsaBuilder.\n\nReplace GrowableArray with ArenaVector in SsaBuilder and\ntag allocations with a new arena allocation type.\n\nChange-Id: I27312c51d7be9d2ad02a974cce93b365c65c5fc4\n"
    },
    {
      "commit": "831904f6fb678354bdf8e7736723a9d87a2cde31",
      "tree": "49fd12aaad3102b397803f8eebc99a866edbf111",
      "parents": [
        "fe157012b6d760c275d944ff83e8bea371c59b09",
        "87000a948524cba7538ccc5438f6a9ecbd4e347e"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Sep 16 14:34:41 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 16 14:34:41 2015 +0000"
      },
      "message": "Merge \"Add option to append to the cfg dump.\""
    },
    {
      "commit": "fe157012b6d760c275d944ff83e8bea371c59b09",
      "tree": "a2b013dded6e25cab1d3ff5abf09c426904e142c",
      "parents": [
        "aef880c4b872ccf1a63a3c563cb056ae117fc9c8",
        "ecc4366670e12b4812ef1653f7c8d52234ca1b1f"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Sep 16 14:33:16 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 16 14:33:16 2015 +0000"
      },
      "message": "Merge \"Add OptimizingCompilerStats to the CodeGenerator class.\""
    },
    {
      "commit": "8f8926a5c7ea332ab387c2b3ebc6fd378a5761bc",
      "tree": "dae52706de27cba64ddc37df824deb7739c46dfe",
      "parents": [
        "d226ad6acaf65a94133a3c537221ea5c7ac5b998"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Mon Aug 17 11:39:06 2015 -0400"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Wed Sep 16 09:07:12 2015 -0400"
      },
      "message": "Implement StringGetCharsNoCheck intrinsic for X86\n\nGenerate inline code for String.GetChars internal no checking form for\nX86 and X86_64. Use REP MOVSW to copy the characters, rather than\nmemcpy as Quick does.\n\nChange-Id: Ia67aff248461b394f97c48053f216880381945ff\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "2d554795420be0be88bb4600ea81d1ec293217c4",
      "tree": "506926bb71b919e46838996d37362cf0373ffd3a",
      "parents": [
        "d226ad6acaf65a94133a3c537221ea5c7ac5b998"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Tue Sep 15 21:45:18 2015 -0400"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Wed Sep 16 08:41:40 2015 -0400"
      },
      "message": "X86/X86_64: Intrinsics - numberOfTrailingZeros, rotateLeft, rotateRight\n\nImplement {Long,Integer}NumberOfTrailingZeros and\n{Long,Integer}Rotate{Left,Right}.\n\nX86 32 bit mode doesn\u0027t implement the LongRotate{Left,Right} intrinsics\nat this time.\n\nChange-Id: Ie25c1dca15ee2d17fbdf0c15c758bde431034d35\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "fa6b93c4b69e6d7ddfa2a4ed0aff01b0608c5a3a",
      "tree": "3528c88e104dac8e58ae5370ab066b8b1dd0218f",
      "parents": [
        "e295be4a95d7861f6ec179edf6565f58cad747cc"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 15 10:15:55 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 16 13:21:33 2015 +0100"
      },
      "message": "Optimizing: Tag arena allocations in HGraph.\n\nReplace GrowableArray with ArenaVector in HGraph and related\nclasses HEnvironment, HLoopInformation, HInvoke and HPhi,\nand tag allocations with new arena allocation types.\n\nChange-Id: I3d79897af405b9a1a5b98bfc372e70fe0b3bc40d\n"
    },
    {
      "commit": "e295be4a95d7861f6ec179edf6565f58cad747cc",
      "tree": "a994a7f270e8dd81e3bb1a704c4ee5f6ea98aa7c",
      "parents": [
        "9ea4a93674b42f213334bb83d1982db11091b96a",
        "2fadd7bb67abf5bc3c5370f9508cfb5959d6e536"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 16 04:21:39 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 16 04:21:39 2015 +0000"
      },
      "message": "Merge \"Additional MIPS64 instructions needed by intrinsics code.\""
    },
    {
      "commit": "9ea4a93674b42f213334bb83d1982db11091b96a",
      "tree": "bdee6695631b3b15def83d7a9e66f7daa0c787c8",
      "parents": [
        "7fa1a81d9b1ea11f0e9917732b22c2fb6b635308",
        "22af3bee34d0ab1a4bd186c71ccab00366882259"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Sep 16 04:13:03 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 16 04:13:03 2015 +0000"
      },
      "message": "Merge \"Use induction variable range analysis in BCE (statically).\""
    },
    {
      "commit": "7fa1a81d9b1ea11f0e9917732b22c2fb6b635308",
      "tree": "5655d348f8609cb07d3087864c43e826fa66f90c",
      "parents": [
        "a68922706fb5ee79e92723f18420edfd8650a3c6",
        "0c9497da9485ba688c592e5f452b7b1305a519c0"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 16 03:41:47 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 16 03:41:47 2015 +0000"
      },
      "message": "Merge \"X86: Use short forward jumps if possible\""
    },
    {
      "commit": "1a1d77f7f8cdc892a59b1618b5bd8fea269354cb",
      "tree": "8b5085b69d1c3a7083a11a60892fd2ced9d75cb3",
      "parents": [
        "7ac8b34c09274ee79bf9d966f352d93248337b23",
        "6bc53a9d884265e0a0b14c4383bef0aa47824e64"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 16 02:58:04 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 16 02:58:04 2015 +0000"
      },
      "message": "Merge \"Support X86 intrinsic System.arraycopy char\""
    },
    {
      "commit": "bcee092d7b0cbb7181d428115ad98d25ce844061",
      "tree": "dab00e7f7dc19b002948020a8c2cbde665203c0e",
      "parents": [
        "b505997b2176bd29a108cb6c33d06d4ef29ba001"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Tue Sep 15 21:45:01 2015 -0400"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Tue Sep 15 21:45:01 2015 -0400"
      },
      "message": "Add X86 bsf and rotate instructions\n\nThese are for use in new intrinsics.  Bsf (Bit Scan Forward) is used in\n{Long,Integer}NumberOfTrailingZeros and the rotates are used in\n{Long,Integer}Rotate{Left,Right}.\n\nChange-Id: Icb599d7e1eec4e4ea9e5b4f0b1654c7b8d4de678\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "22af3bee34d0ab1a4bd186c71ccab00366882259",
      "tree": "793f358d498142a2e60d7d5131c347b0fd668cbd",
      "parents": [
        "fe9a1b05ea5a21b6d9a2e9e5081f5e80ff8a1ba2"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Sep 10 12:50:58 2015 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Sep 15 17:03:13 2015 -0700"
      },
      "message": "Use induction variable range analysis in BCE (statically).\n\nRationale: Finally! After lots of very large CLs, now a small CL\n           that uses the new induction variable analysis in BCE\n           (statically, using this dynamically with de-opt is TBD).\n           Despite its relative small size, be aware though,\n           since the CL introduces a new phase to the compiler.\n\nChange-Id: If5555a173fd5d55d147c63138ef51fc296fa1414\n"
    },
    {
      "commit": "87000a948524cba7538ccc5438f6a9ecbd4e347e",
      "tree": "3cf06ec6a939c31540ed5d7028aa0c0838329cc2",
      "parents": [
        "b505997b2176bd29a108cb6c33d06d4ef29ba001"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Aug 24 15:34:44 2015 +0100"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Sep 15 15:02:18 2015 +0100"
      },
      "message": "Add option to append to the cfg dump.\n\nThis makes life easier when verifying tests with unresolved classes\n(which call dex2oat at rutime).\n\nChange-Id: I7985b2b7c0f343462e03a26b8395297c810b1d95\n"
    },
    {
      "commit": "b505997b2176bd29a108cb6c33d06d4ef29ba001",
      "tree": "05316a1837f77729f87b4fe25bfa7eb2b9e9549c",
      "parents": [
        "5c1a3374adff0d5c6c8e2248fffd7549eb3a6bae",
        "77a48ae01bbc5b05ca009cf09e2fcb53e4c8ff23"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Sep 15 12:34:35 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 15 12:34:35 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"ART: Register allocation and runtime support for try/catch\"\"\""
    },
    {
      "commit": "77a48ae01bbc5b05ca009cf09e2fcb53e4c8ff23",
      "tree": "780c7d6bdee784c2f8248979de348491cfb63b34",
      "parents": [
        "659562aaf133c41b8d90ec9216c07646f0f14362"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Sep 15 12:34:04 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Sep 15 12:34:04 2015 +0000"
      },
      "message": "Revert \"Revert \"ART: Register allocation and runtime support for try/catch\"\"\n\nThe original CL triggered b/24084144 which has been fixed\nby Ib72e12a018437c404e82f7ad414554c66a4c6f8c.\n\nThis reverts commit 659562aaf133c41b8d90ec9216c07646f0f14362.\n\nChange-Id: Id8980436172457d0fcb276349c4405f7c4110a55\n"
    },
    {
      "commit": "5c1a3374adff0d5c6c8e2248fffd7549eb3a6bae",
      "tree": "3a4f5dda7c1a6a492c56564432879f7bdfaf9c4d",
      "parents": [
        "57b6a1313d8563c5c41f7338fcf7877c50e2f4e9",
        "baf89b8f2591df93686df545bc6ccc6eb3b128cc"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Sep 15 11:11:49 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 15 11:11:49 2015 +0000"
      },
      "message": "Merge \"ART: Fix bug in reference type propagation\""
    },
    {
      "commit": "57b6a1313d8563c5c41f7338fcf7877c50e2f4e9",
      "tree": "b52afce460e8ad7ae8cfc7490f7710a5e90e0113",
      "parents": [
        "cd9266e68246a42ae3eb65a0bd5e2c4ec62418a0",
        "94ca9afd15e5b151860f6ce305ad4d8662fa95b7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 15 11:01:11 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 15 11:01:11 2015 +0000"
      },
      "message": "Merge \"Temporarly disable SSA creation in try/catch/debuggable.\""
    },
    {
      "commit": "baf89b8f2591df93686df545bc6ccc6eb3b128cc",
      "tree": "d66715e4cb93257b4903b997e1e09f37dd16d2cd",
      "parents": [
        "cd9266e68246a42ae3eb65a0bd5e2c4ec62418a0"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Sep 15 11:36:54 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Sep 15 11:51:34 2015 +0100"
      },
      "message": "ART: Fix bug in reference type propagation\n\nReference type propagation assumed that type is exact if the class is\nfinal. This does not hold for arrays which are always final and the\ncomponent type needs to be considered.\n\nBug: 24084144\nChange-Id: Ib72e12a018437c404e82f7ad414554c66a4c6f8c\n"
    },
    {
      "commit": "94ca9afd15e5b151860f6ce305ad4d8662fa95b7",
      "tree": "a0d9187aa84d1f62b65db822feff36f3901896e2",
      "parents": [
        "329d1b5a5afd1f1520c3fd2e723f1245d953074d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 15 11:01:01 2015 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 15 11:03:24 2015 +0100"
      },
      "message": "Temporarly disable SSA creation in try/catch/debuggable.\n\nThis is to enable optimizations when the debuggable flag is set.\n\nbug:24054676\n\nChange-Id: I34eef2481ae44ad3550e04ec6f796d421d03adc0\n"
    },
    {
      "commit": "659562aaf133c41b8d90ec9216c07646f0f14362",
      "tree": "be1beae390262bf2f5a17bfa44de93081a849d07",
      "parents": [
        "b022fa1300e6d78639b3b910af0cf85c43df44bb"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Sep 14 21:26:33 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Sep 14 21:26:33 2015 +0000"
      },
      "message": "Revert \"ART: Register allocation and runtime support for try/catch\"\n\nBreaks libcore test org.apache.harmony.security.tests.java.security.KeyStorePrivateKeyEntryTest#testGetCertificateChain. Need to investigate.\n\nThis reverts commit b022fa1300e6d78639b3b910af0cf85c43df44bb.\n\nChange-Id: Ib24d3a80064d963d273e557a93469c95f37b1f6f\n"
    },
    {
      "commit": "b022fa1300e6d78639b3b910af0cf85c43df44bb",
      "tree": "780c7d6bdee784c2f8248979de348491cfb63b34",
      "parents": [
        "e481c006e8b055a31d9c7cff27f4145e57e3c113"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Aug 20 17:47:48 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Sep 14 20:42:58 2015 +0100"
      },
      "message": "ART: Register allocation and runtime support for try/catch\n\nThis patch completes a series of CLs that add support for try/catch\nin the Optimizing compiler. With it, Optimizing can compile all\nmethods containing try/catch, provided they don\u0027t contain catch loops.\nFuture work will focus on improving performance of the generated code.\n\nSsaLivenessAnalysis was updated to propagate liveness information of\ninstructions live at catch blocks, and to keep location information on\ninstructions which may be caught by catch phis.\n\nRegisterAllocator was extended to spill values used after catch, and\nto allocate spill slots for catch phis. Catch phis generated for the\nsame vreg share a spill slot as the raw value must be the same.\n\nLocation builders and slow paths were updated to reflect the fact that\nthrowing an exception may not lead to escaping the method.\n\nInstruction code generators are forbidden from using of implicit null\nchecks in try blocks as live registers need to be saved before handing\nover to the runtime.\n\nCodeGenerator emits a stack map for each catch block, storing locations\nof catch phis. CodeInfo and StackMapStream recognize this new type of\nstack map and store them separate from other stack maps to avoid dex_pc\nconflicts.\n\nAfter having found the target catch block to deliver an exception to,\nQuickExceptionHandler looks up the dex register maps at the throwing\ninstruction and the catch block and copies the values over to their\nrespective locations.\n\nThe runtime-support approach was selected because it allows for the\nbest performance in the normal control-flow path, since no propagation\nof catch phi values is necessary until the exception is thrown. In\naddition, it also greatly simplifies the register allocation phase.\n\nConstantHoisting was removed from LICMTest because it instantiated\n(now abstract) HConstant and was bogus anyway (constants are always in\nthe entry block).\n\nChange-Id: Ie31038ad8e3ee0c13a5bbbbaf5f0b3e532310e4e\n"
    },
    {
      "commit": "e481c006e8b055a31d9c7cff27f4145e57e3c113",
      "tree": "be1beae390262bf2f5a17bfa44de93081a849d07",
      "parents": [
        "5da1ea29be0d5f4e8fc03c3c509f0474b53affd2",
        "0600cdc1d283190f86a3b84b7f5374c1af62112b"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Mon Sep 14 18:04:34 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 14 18:04:34 2015 +0000"
      },
      "message": "Merge \"Remove unnecessary std::move from test_dex_file_builder\""
    },
    {
      "commit": "0600cdc1d283190f86a3b84b7f5374c1af62112b",
      "tree": "2e09fc067eac743318901d4ffd14a7d54ad5e7d0",
      "parents": [
        "8f5d2d84efb90e7220dd42c7aa104dbc19c52f4e"
      ],
      "author": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Mon Sep 14 11:00:16 2015 -0700"
      },
      "committer": {
        "name": "Pirama Arumuga Nainar",
        "email": "pirama@google.com",
        "time": "Mon Sep 14 11:00:16 2015 -0700"
      },
      "message": "Remove unnecessary std::move from test_dex_file_builder\n\nThis stops Clang from warning about -Wpessimizing-move.\n\nChange-Id: Id40acf1c398c615faf6486ef700df6975a5f013f\n"
    },
    {
      "commit": "9af47e27674e70e7f82315d39de5bc659c4e1b83",
      "tree": "e1cf3d95c94721cf9e411e544f37105b684d7666",
      "parents": [
        "35717f8cfb6c1de5c89b2f9b990a050b2cbab66f",
        "6058455d486219994921b63a2d774dc9908415a2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 14 11:43:25 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 14 11:43:25 2015 +0000"
      },
      "message": "Merge \"Optimizing: Tag basic block allocations with their source.\""
    },
    {
      "commit": "4f55e22630d99ca0edd9e951e5ee96b57bb9b980",
      "tree": "84b7d55a6a7c31c09ed2865cc1bc2f4393476533",
      "parents": [
        "2d06e08d25bbf8eff1de945736a60810009e59ad"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 04 13:26:21 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Sep 11 13:14:20 2015 -0700"
      },
      "message": "Add and use ScopedSuspendAll\n\nUsage replaces most SuspendAll and ResumeAll calls.\n\nChange-Id: I355683a5365876242cea85a656dcb58455f7a294\n"
    },
    {
      "commit": "2d06e08d25bbf8eff1de945736a60810009e59ad",
      "tree": "27c10f4fc30a85947ac0e3189b115035107a7ff0",
      "parents": [
        "e2cb7f297dfeb1a6e19c3b8d45b742427054fa56",
        "501fd635a557645ab05f893c56e1f358e21bab82"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 11 17:50:01 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 11 17:50:01 2015 +0000"
      },
      "message": "Merge \"ART: Fix Quick-style LR vs PC core spill mask bug\""
    },
    {
      "commit": "619552b8007c157ca494f1b6355c0a388456b5b1",
      "tree": "42d2917b3b3e81bfd14120d0209e99e9f3b420ff",
      "parents": [
        "1d76bfe710629a4f18bb79a9188f6eb4d9b2e4f4",
        "9ee23f4273efed8d6378f6ad8e63c65e30a17139"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 11 13:20:10 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 11 13:20:10 2015 +0000"
      },
      "message": "Merge \"ARM/ARM64: Intrinsics - numberOfTrailingZeros, rotateLeft, rotateRight\""
    },
    {
      "commit": "9ee23f4273efed8d6378f6ad8e63c65e30a17139",
      "tree": "3b1bfb8a6260a57ccb2f025fcdc457464714701e",
      "parents": [
        "62ba40149be3d1c65e4db1f455822a585149d32f"
      ],
      "author": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Thu Jul 23 10:44:35 2015 +0100"
      },
      "committer": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Fri Sep 11 09:51:58 2015 +0100"
      },
      "message": "ARM/ARM64: Intrinsics - numberOfTrailingZeros, rotateLeft, rotateRight\n\nChange-Id: I2a07c279756ee804fb7c129416bdc4a3962e93ed\n"
    },
    {
      "commit": "501fd635a557645ab05f893c56e1f358e21bab82",
      "tree": "828ad27a68033d78fb858dcf031c36a627659165",
      "parents": [
        "010c7fd437932e0132fc4b44de6274480573ff30"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 10 16:11:06 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Sep 10 17:01:22 2015 -0700"
      },
      "message": "ART: Fix Quick-style LR vs PC core spill mask bug\n\nIt\u0027s always been a bug that Quick marked PC as spilled instead of\nLR. The root cause was a mutation of the spill mask at frame exit,\nwhen LR is being restored into PC to return. A local should have\nbeen used to keep the actual spill mask safe and sound.\n\nThis has only worked because nobody ever uses LR, even after long\njumps for exception dispatch. However, single-frame deoptimization\nneeds this to work, and I\u0027d rather fix this than being forced to\nhave machine-specific fixups.\n\nAlso fix in optimizing, and bump the oat version.\n\nChange-Id: Ib032a533408bf464097fc96dcbfc5b6a68bf59a1\n"
    },
    {
      "commit": "2fadd7bb67abf5bc3c5370f9508cfb5959d6e536",
      "tree": "efdfc90c1cdb4b688c0cdf6c2cf2cfe7b8121d1c",
      "parents": [
        "010c7fd437932e0132fc4b44de6274480573ff30"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Fri Aug 14 14:56:10 2015 -0700"
      },
      "committer": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Thu Sep 10 10:59:11 2015 -0700"
      },
      "message": "Additional MIPS64 instructions needed by intrinsics code.\n\nChange-Id: If2a48300aac7a10dadf485d1765fb5bdeed975fe\n"
    },
    {
      "commit": "010c7fd437932e0132fc4b44de6274480573ff30",
      "tree": "36fed0c2bac11700a1d1a6ef83c5843b916379fb",
      "parents": [
        "0e21e01e2283eed58332ce1ac317037c399718a3",
        "d14c59564870c910bdc823081f0ed1101f599231"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Sep 10 17:33:44 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 10 17:33:44 2015 +0000"
      },
      "message": "Merge \"Induction variable range analysis.\""
    },
    {
      "commit": "d14c59564870c910bdc823081f0ed1101f599231",
      "tree": "36a831f8c786823129bebbf03a4ca48ff6ed3c23",
      "parents": [
        "e6576390f957c82c2aede438834d028066757368"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Sep 08 15:25:15 2015 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Sep 10 10:16:04 2015 -0700"
      },
      "message": "Induction variable range analysis.\n\nRationale: by computing an upper bound on the trip count of each\n           loop after induction var analysis has completed, a\n\t   simple range analysis yields lower and upper bounds on\n\t   all induced expressions in a loop; this analysis\n\t   plugs directly into BCE (follow-up CL).\n\nChange-Id: I46a3fe48721ca372547199b39a3498c47992597d\n"
    },
    {
      "commit": "b9c79928ff774c8d385ef2db169b447833207a44",
      "tree": "d9e5e34f1e227fa422e89e6754a7a63e605d45af",
      "parents": [
        "402ae2dc9b94df62859bd9825e5c00f298dc71b2",
        "bfb5ba90cd6425ce49c2125a87e3b12222cc2601"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Sep 09 16:39:16 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 09 16:39:16 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Do a second check for testing intrinsic types.\"\"\""
    },
    {
      "commit": "402ae2dc9b94df62859bd9825e5c00f298dc71b2",
      "tree": "fb63090ac4387af93ad049105b28dbd1885fa0db",
      "parents": [
        "67c5d28da9b0c40343e8a8f68fea4dc86ff554d1",
        "3ecfd65143d95bd7c6cbe4f58c33af517d3761e0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 09 13:16:59 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 09 13:16:59 2015 +0000"
      },
      "message": "Merge \"Add dex_pc to all HInstructions in builder.\""
    },
    {
      "commit": "3ecfd65143d95bd7c6cbe4f58c33af517d3761e0",
      "tree": "62b3194f0ac2814541170f970996b0a35511e78e",
      "parents": [
        "426514cada274714244290d6447d9f62dc3394bf"
      ],
      "author": {
        "name": "Yevgeny Rouban",
        "email": "yevgeny.y.rouban@intel.com",
        "time": "Mon Sep 07 17:57:00 2015 +0600"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Sep 09 14:12:13 2015 +0100"
      },
      "message": "Add dex_pc to all HInstructions in builder.\n\nOptimizing compiler generates minimum debug line info that\nis built using the dex_pc information about suspend points.\nThis is not enough for performance and debugging needs.\n\nThis patch makes all HInstructions contain\ndex_pc and all allocations in the builder define this value.\n\nChange-Id: I1d14aefe075189b7b1b41b4384c3499474c19afc\nSigned-off-by: Yevgeny Rouban \u003cyevgeny.y.rouban@intel.com\u003e\nSigned-off-by: Serdjuk, Nikolay Y \u003cnikolay.y.serdjuk@intel.com\u003e\n"
    },
    {
      "commit": "bfb5ba90cd6425ce49c2125a87e3b12222cc2601",
      "tree": "6280171d451642dc70c87894d553f76c6c12db0a",
      "parents": [
        "e6576390f957c82c2aede438834d028066757368"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 01 15:45:02 2015 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 08 20:36:09 2015 -0700"
      },
      "message": "Revert \"Revert \"Do a second check for testing intrinsic types.\"\"\n\nThis reverts commit a14b9fef395b94fa9a32147862c198fe7c22e3d7.\n\nWhen an intrinsic with invoke-type virtual is recognized, replace\nthe instruction with a new HInvokeStaticOrDirect.\n\nMinimal update for dex-cache rework. Fix includes.\n\nChange-Id: I1c8e735a2fa7cda4419f76ca0717125ef236d332\n"
    },
    {
      "commit": "0616ae081e648f4b9b64b33e2624a943c5fce977",
      "tree": "20db99d802277cce68f88eda918ae7646383ff14",
      "parents": [
        "e6576390f957c82c2aede438834d028066757368"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Fri Apr 17 12:49:27 2015 -0400"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Tue Sep 08 17:01:05 2015 -0400"
      },
      "message": "[optimizing] Add support for x86 constant area\n\nUse the Quick trick of finding the address of the method by calling the\nnext instruction and popping the return address into a register.  This\ntrick is used because of the lack of PC-relative addressing in 32 bit\nmode on the X86.\n\nAdd a HX86ComputeBaseMethodAddress instruction to trigger generation\nof the method address, which is referenced by instructions needing\naccess to the constant area.\n\nAdd a HX86LoadFromConstantTable instruction that takes a\nHX86ComputeBaseMethodAddress and a HConstant that will be used to load\nthe value when needed.\n\nChange Add/Sub/Mul/Div to detect a HX86LoadFromConstantTable right hand\nside, and generate code that directly references the constant area.\nOther uses will be added later.\n\nChange the inputs to HReturn and HInvoke(s), replacing the FP constants\nwith HX86LoadFromConstantTable instead.  This allows values to be\nloaded from the constant area into the right location.\n\nPort the X86_64 assembler constant area handling to the X86.\n\nUse the new per-backend optimization framework to do this conversion.\n\nChange-Id: I6d235a72238262e4f9ec0f3c88319a187f865932\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "6058455d486219994921b63a2d774dc9908415a2",
      "tree": "3d205227f3ff54cd3a50bc5c0e7cb3ad6c175b86",
      "parents": [
        "637ee0b9c10ab7732a7ee7b8335f3fff4ac1549c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 03 13:35:12 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 08 18:09:49 2015 +0100"
      },
      "message": "Optimizing: Tag basic block allocations with their source.\n\nReplace GrowableArray with ArenaVector in HBasicBlock and,\nto track the source of allocations, assign one new and two\nQuick\u0027s arena allocation types to these vectors. Rename\nkArenaAllocSuccessor to kArenaAllocSuccessors.\n\nBug: 23736311\nChange-Id: Ib52e51698890675bde61f007fe6039338cf1a025\n"
    },
    {
      "commit": "e6576390f957c82c2aede438834d028066757368",
      "tree": "5d469dae78f2e4df8fa20ce40805351d447d3e4f",
      "parents": [
        "e0a49e3a93aa54b9e603d797d9e925a98742753a",
        "471a2034171346dda4539b985b95aa6370531171"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Sep 08 16:21:14 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 08 16:21:14 2015 +0000"
      },
      "message": "Merge \"Simplify loop invariant operations during induction analysis.\""
    },
    {
      "commit": "449b10922daacc880374d7862dbb5977c7657f6d",
      "tree": "55711f732177bd72acda44b02461215d27ca55d9",
      "parents": [
        "815d1c868ad7ccba8526ac3a457e2094b609912e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 08 12:16:45 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 08 14:00:28 2015 +0100"
      },
      "message": "ART: Clean up Thumb2Assembler\u0027s AddConstant().\n\nChange-Id: I6a4c32d1bba79879e5514059df6336dc331246c1\n"
    },
    {
      "commit": "471a2034171346dda4539b985b95aa6370531171",
      "tree": "9f04b5dd3169909953ac4e38c106287f12e0bbef",
      "parents": [
        "6b79454092582bea4a72872d04e4bc9f0a48a4b8"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Sep 04 18:22:11 2015 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Sep 07 10:35:55 2015 -0700"
      },
      "message": "Simplify loop invariant operations during induction analysis.\n\nRationale:\nSaves some memory for nodes that are not really required, and\nyields slightly more readable debugging strings.\n\nChange-Id: I95b64b48869699137b5d49e26eb20091e264de7a\n"
    },
    {
      "commit": "6b79454092582bea4a72872d04e4bc9f0a48a4b8",
      "tree": "7f231ee88089dc797d1dc570efd064f517676670",
      "parents": [
        "5495a72a8718c2b3156603158a932a8c4b403de5",
        "e609b7cf9996389e6e693f149489737436172a2c"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Sat Sep 05 00:25:41 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Sep 05 00:25:41 2015 +0000"
      },
      "message": "Merge \"Further development of induction variable analysis.\""
    },
    {
      "commit": "e609b7cf9996389e6e693f149489737436172a2c",
      "tree": "14f1c83ea83d1b9133272af1dc6f3ad314f1fef3",
      "parents": [
        "fb32aca04cc1b5f5e8325d79664882f25f253881"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Aug 27 13:46:58 2015 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Sep 04 17:03:39 2015 -0700"
      },
      "message": "Further development of induction variable analysis.\n\nVarious improvements:\n(1) Introduced period sequences.\n(2) Extended all transfer functions to deal with all cases;\n    also refactored these to read more compactly.\n(3) Improved debugging output for constants for readability.\n(4) Used direct pointer in mappings for clarify.\n(5) Several induction info \"constructors\" for readability.\n(6) Various other changes suggested in earlier code reviews.\n\nChange-Id: I9d5381f1676b63d30cea6f5e304d4b7bda7acb96\n"
    },
    {
      "commit": "7a4ba9958b2d523fee0a11fc32c8bc259bd0e12a",
      "tree": "70cac41e7a9e5a8263bc92cb4c8751961d255c52",
      "parents": [
        "957fb8930766ae422568e7b1b816159a9e9bc18c",
        "305ff2d5481f7f53147d92f5e632949542803ecd"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 04 13:32:47 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 04 13:32:47 2015 +0000"
      },
      "message": "Merge \"ART: Abort if malloc() fails in SwapAllocator::allocate().\""
    },
    {
      "commit": "957fb8930766ae422568e7b1b816159a9e9bc18c",
      "tree": "849a611f978656f1c85182402e1ef2c8ca50c5e6",
      "parents": [
        "68ffda887e35f35e978f2f607b7a91e44a5e1969",
        "05792b98980741111b4d0a24d68cff2a8e070a3a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 04 10:34:04 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 04 10:34:04 2015 +0000"
      },
      "message": "Merge \"ART: Move DexCache arrays to native.\""
    },
    {
      "commit": "305ff2d5481f7f53147d92f5e632949542803ecd",
      "tree": "3387af62c8c4ad867a6bc213e177b1110a0f8471",
      "parents": [
        "68ffda887e35f35e978f2f607b7a91e44a5e1969"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 04 11:10:40 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 04 11:10:40 2015 +0100"
      },
      "message": "ART: Abort if malloc() fails in SwapAllocator::allocate().\n\nChange-Id: I084da8d376b0a86fc551b87d77ce9c74e60359bf\n"
    },
    {
      "commit": "f1d666e1b48f8070ef1177fce156c08827f08eb8",
      "tree": "772cbbe6652b32ea2be31532156295db27579390",
      "parents": [
        "897ce64153e4758663e464fb5fb339f9a7b496c8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 03 16:13:34 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 03 17:33:19 2015 -0700"
      },
      "message": "Add ScopedThreadSuspension\n\nFixes the TransitionFromRunnableToSuspended and\nTransitionFromSuspendedToRunnable pattern that was prone to errors.\n\nChange-Id: Ie6ae9c0357c83b4fc4899d05dfa0975553170267\n"
    },
    {
      "commit": "897ce64153e4758663e464fb5fb339f9a7b496c8",
      "tree": "5685e4df884ac806e2b5cdfeabed4420015548c4",
      "parents": [
        "0526f5af91cc6b986e0b439577de0b93f9e5354c",
        "736b560f2d2c89b63dc895888c671b5519afa4c8"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 03 22:11:02 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 03 22:11:02 2015 +0000"
      },
      "message": "Merge \"Reduce how often we call FindDexCache\""
    },
    {
      "commit": "736b560f2d2c89b63dc895888c671b5519afa4c8",
      "tree": "d5aee7ac36f458a5f6e6d75fceb19f8963a71db5",
      "parents": [
        "fe3879e6011f629d0dd6b04fab00b9496bd4ea08"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 02 14:54:11 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Sep 03 13:27:19 2015 -0700"
      },
      "message": "Reduce how often we call FindDexCache\n\nBefore host boot.oat -j4 optimizing compile:\nreal  1m17.792s\nuser  3m26.140s\nsys 0m8.340s\n\nAfter:\nreal  1m12.324s\nuser  3m22.718s\nsys 0m8.320s\n\nChange-Id: If18e9e79e06cdf1676692e5efacb682bf93889c3\n"
    },
    {
      "commit": "05792b98980741111b4d0a24d68cff2a8e070a3a",
      "tree": "bad79a387bcbdaefc87c07b388099960ca9caff3",
      "parents": [
        "c26b4512a01d46756683a4f5e186a0b7f397f251"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Aug 03 11:56:49 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 03 17:30:57 2015 +0100"
      },
      "message": "ART: Move DexCache arrays to native.\n\nThis CL has a companion CL in libcore/\n    https://android-review.googlesource.com/162985\n\nChange-Id: Icbc9e20ad1b565e603195b12714762bb446515fa\n"
    },
    {
      "commit": "2e8e4ff1b7d78a236c238651dbc0b58f33966c0a",
      "tree": "7b83b227bbaa36465f313542bba9206ac631a8fd",
      "parents": [
        "f7432c60a1d6385ff3dea9b44305007b2bcc1ed1",
        "145acc5361deb769eed998f057bc23abaef6e116"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 03 13:33:49 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 03 13:33:49 2015 +0000"
      },
      "message": "Merge \"Revert \"Optimizing: Tag basic block allocations with their source.\"\""
    },
    {
      "commit": "145acc5361deb769eed998f057bc23abaef6e116",
      "tree": "3d66a0b44e1ac927156eec6e6488de5fd52b982b",
      "parents": [
        "91e11c0c840193c6822e66846020b6647de243d5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 03 13:33:25 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 03 13:33:25 2015 +0000"
      },
      "message": "Revert \"Optimizing: Tag basic block allocations with their source.\"\n\nReverting so that we can have more discussion about the STL API.\n\nThis reverts commit 91e11c0c840193c6822e66846020b6647de243d5.\n\nChange-Id: I187fe52f2c16b6e7c5c9d49c42921eb6c7063dba\n"
    },
    {
      "commit": "f7432c60a1d6385ff3dea9b44305007b2bcc1ed1",
      "tree": "52e509a6343740b629cb75495deadbd8ad384713",
      "parents": [
        "86d92066df8323d5ee7ac7e9c061a79343a82fd8",
        "91e11c0c840193c6822e66846020b6647de243d5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 03 13:21:07 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 03 13:21:07 2015 +0000"
      },
      "message": "Merge \"Optimizing: Tag basic block allocations with their source.\""
    },
    {
      "commit": "91e11c0c840193c6822e66846020b6647de243d5",
      "tree": "0c5398ef59c464c1848afd0113c74b6aeb75cf42",
      "parents": [
        "f9f6441c665b5ff9004d3ed55014f46d416fb1bb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 02 17:03:22 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 03 13:09:37 2015 +0100"
      },
      "message": "Optimizing: Tag basic block allocations with their source.\n\nReplace GrowableArray with ArenaVector in HBasicBlock and,\nto track the source of allocations, assign one new and two\nQuick\u0027s arena allocation types to these vectors. Rename\nkArenaAllocSuccessor to kArenaAllocSuccessors.\n\nBug: 23736311\nChange-Id: I984aef6e615ae2380a532f5c6726af21015f43f5\n"
    },
    {
      "commit": "2a7c1ef95c850abae915b3a59fbafa87e6833967",
      "tree": "7b83b227bbaa36465f313542bba9206ac631a8fd",
      "parents": [
        "6d889e0e5004ae4d548e6c623a1218f010d1e89b"
      ],
      "author": {
        "name": "Yevgeny Rouban",
        "email": "yevgeny.y.rouban@intel.com",
        "time": "Wed Jul 22 18:36:24 2015 +0600"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Thu Sep 03 10:38:41 2015 +0100"
      },
      "message": "Add more dwarf debug line info for Optimized methods.\n\nOptimizing compiler generates minimum debug line info that\nis built using the dex_pc information about suspend points.\nThis is not enough for performance and debugging needs.\n\nThis CL generates additional debug line information for\ninstructions which have known dex_pc and it ensures that\nwhole call sites are mapped (as opposed to suspend points\nwhich map only one instruction past the function call).\n\nBug: 23157336\nChange-Id: I9f2b1c2038e3560847c175b8121cf9496b8b58fa\nSigned-off-by: Yevgeny Rouban \u003cyevgeny.y.rouban@intel.com\u003e\n"
    },
    {
      "commit": "f9f6441c665b5ff9004d3ed55014f46d416fb1bb",
      "tree": "3d66a0b44e1ac927156eec6e6488de5fd52b982b",
      "parents": [
        "fe3879e6011f629d0dd6b04fab00b9496bd4ea08"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 02 14:05:49 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 02 20:16:58 2015 +0100"
      },
      "message": "Optimizing: Tag Arena allocations with their source.\n\nThis adds the ability to track where we allocate memory\nwhen the kArenaAllocatorCountAllocations flag is turned on.\n\nAlso move some allocations from native heap to the Arena\nand remove some unnecessary utilities.\n\nBug: 23736311\nChange-Id: I1aaef3fd405d1de444fe9e618b1ce7ecef07ade3\n"
    },
    {
      "commit": "51995e135794e01a7aecccfed81dc00a737e24bd",
      "tree": "34178cbd348cc7a6db0b2b49c3a438a0b015a78c",
      "parents": [
        "5c3601758c7b83bf148bd088c39bc6feddbfbac3",
        "5a6cc49ed4f36dd11d6ec1590857b884ad8da6ab"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 01 15:43:11 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 01 15:43:11 2015 +0000"
      },
      "message": "Merge \"SlowPath: Remove the use of Locations in the SlowPath constructors.\""
    },
    {
      "commit": "5c3601758c7b83bf148bd088c39bc6feddbfbac3",
      "tree": "122eb068bb8ca4a854b06a2f24ab953a02676c84",
      "parents": [
        "ef28f68c1bdd7810db3a400dca8a1e2d23f6704a",
        "4ab02352db4051d590b793f34d166a0b5c633c4a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Sep 01 15:35:47 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 01 15:35:47 2015 +0000"
      },
      "message": "Merge \"Use CodeGenerator::RecordPcInfo instead of SlowPathCode::RecordPcInfo.\""
    },
    {
      "commit": "a63f0d47edbcbe13a23411851a9c6e81f9342cc2",
      "tree": "db356acc0a4c4b211518b20529c7fc864dcabde9",
      "parents": [
        "46637e6ad75751fa1db283aee160342dc7e2fd0f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 01 13:36:35 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 01 15:20:30 2015 +0100"
      },
      "message": "Optimizing: Improve String.equals() thumb intrinsic.\n\nUse SUBS for updating the loop counter and setting the loop\nexit condition, so that we don\u0027t need to pre-calculate the\nbound but still keep the same number of instructions in the\nloop.\n\nThis reduces the size of boot.oat on Nexus 5 by 8KiB (when\ncompiled with Optimizing which is not the default yet).\n\nChange-Id: I87d5a128e5e67f4ad177b71c28662d1367170a10\n"
    },
    {
      "commit": "46637e6ad75751fa1db283aee160342dc7e2fd0f",
      "tree": "0211c79512e5f876194963d1734140d9d023e79c",
      "parents": [
        "d36fcc612036009d609795ad0b5b07a7aa980692",
        "73cf0fb75de2a449ce4fe329b5f1fb42eef1372f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 01 10:58:32 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 01 10:58:32 2015 +0000"
      },
      "message": "Merge \"ART: Add 16-bit Thumb2 ROR, NEGS and CMP for high registers.\""
    },
    {
      "commit": "73cf0fb75de2a449ce4fe329b5f1fb42eef1372f",
      "tree": "d5b0957414c355254babfcd1a797ce87a0eb85a2",
      "parents": [
        "9ee5d6cdc14ac94b64ea1961bf221bad48746929"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 30 15:07:22 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 01 10:10:37 2015 +0100"
      },
      "message": "ART: Add 16-bit Thumb2 ROR, NEGS and CMP for high registers.\n\nAlso clean up the usage of set_cc flag. Define a SetCc\nenumeration that specifies whether to set or keep condition\ncodes or whether we don\u0027t care and a 16-bit instruction\nshould be selected if one exists.\n\nThis reduces the size of Nexus 5 boot.oat by 44KiB (when\ncompiled with Optimizing which is not the default yet).\n\nChange-Id: I047072dc197ea678bf2019c01bcb28943fa9b604\n"
    },
    {
      "commit": "f92d753fe3c43f7988d031c7c7e2c9a399f18103",
      "tree": "4a73e35ad6d53836282d5c03eb8b466f2023f8d8",
      "parents": [
        "5899810257a6c1bd2b252cfc46c78e2c9bea3c52",
        "673ed3d8aedc5462a47ded827c99f35d46525457"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Aug 31 20:37:43 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 31 20:37:43 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Change dex caches to be weak roots\"\"\""
    },
    {
      "commit": "673ed3d8aedc5462a47ded827c99f35d46525457",
      "tree": "83de4690228c9f7772c48c770c5e2e5ba2dac6fe",
      "parents": [
        "ce209462cc1a7ce235e5ac0d0e6db6b402f73441"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 28 14:56:43 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Aug 31 10:58:31 2015 -0700"
      },
      "message": "Revert \"Revert \"Change dex caches to be weak roots\"\"\n\nThis reverts commit 81a9087f0df0518c39405b7d18ba5858a6d8b77b.\n\nBoot.oat creation time goes from 4.7s to 4.9s on host due to extra\nlocking. Will try to improve this in another CL.\n\nBug: 23602225\nBug: 22720414\n\nChange-Id: I7e25b75cfb63faa196c7b0f60e46cce50bf12021\n"
    },
    {
      "commit": "40abca79b09107f33d9a44d5ce3620b5ef45fe44",
      "tree": "5b6f6b6fc1cc7f470a4cf6ca7929f5481e2a0cac",
      "parents": [
        "88b52d2aecdbc7242385ba1f8a2c4d6960ee07fc",
        "aae9e66a727756bc965121a60ffcef89ed370e6c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Aug 30 16:57:53 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Aug 30 16:57:53 2015 +0000"
      },
      "message": "Merge \"ART: Fix the simplifier for NEGATE add/sub\""
    },
    {
      "commit": "ed15000a5099f5e230c8ded5ac75692bae272650",
      "tree": "be78bce04c0c9611abc221fd71d9251d05e35d2b",
      "parents": [
        "12b7025d0393a2ce15410df6019844e59b77314d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 28 11:16:54 2015 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Aug 28 13:31:51 2015 -0700"
      },
      "message": "Fix some HandleScope bugs and add corresponding checks\n\nSome places were creating or destroying handle scopes without holding\nthe mutator lock. This can cause GC crashes if thread roots are being\nmarked or hprof dumps to also fail.\n\nAlso added checks to catch some of these errors.\n\nBug: 23468617\nChange-Id: I1a2d615923484cfc25014967656775c445aa3f1f\n"
    },
    {
      "commit": "9393c69c2c6b63b6c8ec36327273ca40d3e45e6c",
      "tree": "17ede5868125c12585c9747c05aa2164a75bd1d8",
      "parents": [
        "f0f73895c06a1ff157d7915b04c41f93a52936c2"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Aug 28 10:56:38 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Aug 28 10:56:38 2015 -0700"
      },
      "message": "ART: Add mising ScopedObjectAccess in ref type propagation\n\nAdding handles requires the mutator lock. Annotalysis doesn\u0027t help,\nas constructors aren\u0027t checked.\n\nBug: 23468617\nChange-Id: I79510d105580dacdec965a5b1693c390fdff275a\n"
    },
    {
      "commit": "81a9087f0df0518c39405b7d18ba5858a6d8b77b",
      "tree": "f4936654805b4d84540bd909095e8bbf69795bfd",
      "parents": [
        "f86a0859684c0f8964da4cbe75d49df8f832e85b"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Aug 28 09:07:14 2015 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Aug 28 09:07:14 2015 -0700"
      },
      "message": "Revert \"Change dex caches to be weak roots\"\n\nThis reverts commit 3ae6b1d42523bb2a0ddb5edff1aaf05b592f28f4.\n"
    },
    {
      "commit": "bde67673534cf4f5c832df04f82e4703e819a3bd",
      "tree": "1faa5e356e1a87a4972fe155cad7edb5b55fb2bb",
      "parents": [
        "dfb5f9ceb277f30ee961b27e72d968e0695611a6",
        "a727e372d8f6929cd30b983f6969c7a50fc83bb6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Aug 27 20:31:29 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 27 20:31:29 2015 +0000"
      },
      "message": "Merge \"ART: Balanced locking\""
    },
    {
      "commit": "a727e372d8f6929cd30b983f6969c7a50fc83bb6",
      "tree": "f71b33bf46053e0ccbd191ac74a850e87145eb98",
      "parents": [
        "706ea6a0294ef8bc3def050142c548c082fa8e30"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Aug 25 09:22:37 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Aug 27 10:53:12 2015 -0700"
      },
      "message": "ART: Balanced locking\n\nChange the verifier to check for balanced locking. When balanced\nlocking can\u0027t be guaranteed, use a new failure kind to punt to\nthe interpreter.\n\nAdd smali tests, with JNI code to check the balanced-locking result.\n\nBug: 23502994\nChange-Id: Icd7db0be20ef2f69f0ac784de43dcba990035cd8\n"
    },
    {
      "commit": "5a6cc49ed4f36dd11d6ec1590857b884ad8da6ab",
      "tree": "68f373808011cca47abf3bf09f5de6d8c9bca4b4",
      "parents": [
        "75d4e58decf3f0be8814039df57456368e4d5475"
      ],
      "author": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@linaro.org",
        "time": "Thu Aug 13 15:20:25 2015 +0100"
      },
      "committer": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@linaro.org",
        "time": "Thu Aug 27 18:21:03 2015 +0100"
      },
      "message": "SlowPath: Remove the use of Locations in the SlowPath constructors.\n\nThe main motivation is that using locations in the SlowPath constructors\nties us to creating the SlowPaths after register allocation, since before\nthe locations are invalid.\n\nA later patch of the series will be moving the SlowPath creation to the\nLocationsBuilder visitors. This will enable us to add more checking as\nwell as consider sharing multiple SlowPaths of the same type.\n\nChange-Id: I7e96dcc2b5586d15153c942373e9281ecfe013f0\nSigned-off-by: Serban Constantinescu \u003cserban.constantinescu@linaro.org\u003e\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": "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\""
    }
  ],
  "next": "ecc4366670e12b4812ef1653f7c8d52234ca1b1f"
}
