)]}'
{
  "log": [
    {
      "commit": "418318f4d50e0cfc2d54330d7623ee030d4d727d",
      "tree": "46afabf57409a5208be4eebf31e1dcbf63dc8fde",
      "parents": [
        "60c4c6ad2b892bb00a6016a147b1cc089ba6bcb5"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Fri Nov 20 15:55:47 2015 +0000"
      },
      "committer": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Fri Nov 20 15:55:47 2015 +0000"
      },
      "message": "ARM64: Add support for multiply-accumulate.\n\nChange-Id: I88dc313df520480f3fd16bbabda27f9435d25368\n"
    },
    {
      "commit": "38db785600757a832423e076b3cf0af3bee942d8",
      "tree": "420b802e0e8e8e02e6bea03808ef8f7aa7850719",
      "parents": [
        "53ced034cd81f35ea9b37ca977cf6634ddaa7cf9"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Fri Nov 20 15:02:45 2015 +0000"
      },
      "committer": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Fri Nov 20 15:02:45 2015 +0000"
      },
      "message": "Opt compiler: More strength reduction for multiplications.\n\nWe transform code looking like\n\n   MUL dst, src, (2^n + 1)\n\ninto\n\n   SHL tmp, src, n\n   ADD dst, src, tmp\n\nand code looking like\n\n   MUL dst, src, (2^n - 1)\n\ninto\n\n   SHL tmp, src, n\n   SUB dst, tmp, src\n\nChange-Id: Ia620ab68758caa70a01530b88cd65dd0444376d7\n"
    },
    {
      "commit": "53ced034cd81f35ea9b37ca977cf6634ddaa7cf9",
      "tree": "500a05bed0019397a59ce0fc981d6644e8ccbebb",
      "parents": [
        "beb709a2607a00b5df33f0235f22ccdd876cee22",
        "c53c0797a78a89d637e4230503cc1feb27e855a8"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 20 10:53:56 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 20 10:53:56 2015 +0000"
      },
      "message": "Merge \"Clean up the special input in HInvokeStaticOrDirect.\""
    },
    {
      "commit": "33a9a16a7fe21d37125853e888634d9de0b71a98",
      "tree": "f5dbcdd61cb70f1c61c700e90264868b3dedb477",
      "parents": [
        "34053d1f5a9a3d98b5e45d395ed95ba66b518d4d",
        "b2d38fdb968c818e53a4f82ce0a513cbd3bfa299"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Nov 19 17:46:50 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 19 17:46:50 2015 +0000"
      },
      "message": "Merge \"Allow NullConstant to be untyped in GraphVisualiser.\""
    },
    {
      "commit": "b2d38fdb968c818e53a4f82ce0a513cbd3bfa299",
      "tree": "7f605ad4cef6b95d01380d778680d9dfc217265d",
      "parents": [
        "9231730cd0e285373afd73331168b289309ebee4"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Mon Nov 16 12:21:53 2015 -0500"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Nov 19 17:46:00 2015 +0000"
      },
      "message": "Allow NullConstant to be untyped in GraphVisualiser.\n\nThe NullConstant may be added to the graph during other passes that\nhappen between ReferenceTypePropagation and Inliner (e.g.\nInstructionSimplifier). If the inliner doesn\u0027t run or doesn\u0027t inline\nanything, the NullConstant remains untyped.\n\nThe infrastructure to properly type NullConstants everywhere is to\ncomplex to add for the benefits\n\nBug: 25786318\n\nChange-Id: I904a3e605b57f8cac9936e82f19a4994c7b1a82a\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "34053d1f5a9a3d98b5e45d395ed95ba66b518d4d",
      "tree": "81c7dcdba15b55b98e6ce5d24dbf2a347dd3eda9",
      "parents": [
        "bc58b020c85d2bb66e21184b8969215d7ea817b0",
        "972d6d7b3b36c48ead6d95fa6a2a936390b868ac"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Nov 19 16:12:57 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 19 16:12:57 2015 +0000"
      },
      "message": "Merge \"MIPS64: Add java.lang.String.equals intrinsic.\""
    },
    {
      "commit": "c53c0797a78a89d637e4230503cc1feb27e855a8",
      "tree": "194d9215590abf283d2b278adf39462d3b704c1b",
      "parents": [
        "ee7d4a3d574d8789fb0d1860eba284ae5099f10d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 19 15:48:33 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 19 16:08:12 2015 +0000"
      },
      "message": "Clean up the special input in HInvokeStaticOrDirect.\n\nChange-Id: I4042aefbdac1a8c236d00e2e7145349a64f6486b\n"
    },
    {
      "commit": "ee7d4a3d574d8789fb0d1860eba284ae5099f10d",
      "tree": "712c75a0997922bf5a6387b181afbeb853de10ad",
      "parents": [
        "d846a2cc45aae5b1c84b5ac51cdd37a22b8447ff",
        "3b359c71f2fb784589be113206932e76807787bb"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Nov 19 14:01:37 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 19 14:01:37 2015 +0000"
      },
      "message": "Merge \"ARM read barrier support for concurrent GC in Optimizing.\""
    },
    {
      "commit": "d846a2cc45aae5b1c84b5ac51cdd37a22b8447ff",
      "tree": "36347c2c6d2b89d1d6347c6c259def427b0fc2a4",
      "parents": [
        "69edd0dbce97f786f71596d696e17be0f380f405",
        "fbb184a1c6df22d9302b32b55206396c8278edcf"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 19 13:12:09 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 19 13:12:09 2015 +0000"
      },
      "message": "Merge \"Fix ClinitCheck pruning.\""
    },
    {
      "commit": "fbb184a1c6df22d9302b32b55206396c8278edcf",
      "tree": "c1a952cec4b5c15e30728f83da0cc5ac20c0bad9",
      "parents": [
        "2f49b0a90720fe9f4cab040c376aab5f387967e3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 13 14:47:00 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 19 11:58:41 2015 +0000"
      },
      "message": "Fix ClinitCheck pruning.\n\nMake sure we merge the ClinitCheck only with LoadClass and\nHInvokeStaticOrDirect that is a part of the very same dex\ninstruction. This fixes incorrect stack traces from class\ninitializers (wrong dex pcs).\n\nRewrite the pruning to do all the ClinitCheck merging when\nwe see the ClinitCheck, instead of merging ClinitCheck into\nLoadClass and then LoadClass into HInvokeStaticOrDirect.\nWhen we later see an HInvokeStaticOrDirect with an explicit\ncheck (i.e. not merged), we know that some other instruction\nis doing the check and the invoke doesn\u0027t need to, so we\nmark it as not requiring the check at all. (Previously it\nwould have been marked as having an implicit check.)\n\nRemove the restriction on merging with inlined invoke static\nas this is not necessary anymore. This was a workaround for\n    X.test():\n       invoke-static C.foo() [1]\n    C.foo():\n       invoke-static C.bar() [2]\nAfter inlining and GVN we have\n    X.test():\n       LoadClass C (from [1])\n       ClinitCheck C (from [1], to be merged to LoadClass)\n       InvokeStaticOrDirect C.bar() (from [2])\nand the LoadClass must not be merged into the invoke as this\nwould cause the resolution trampoline to see an inlined\nframe from the not-yet-loaded class C during the stack walk\nand try to load the class. However, we\u0027re not allowed to\nload new classes at that point, so an attempt to do so leads\nto an assertion failure. With this CL, LoadClass is not\nmerged when it comes from a different instruction, so we can\nguarantee that all inlined frames seen by the stack walk in\nthe resolution trampoline belong to already loaded classes.\n\nChange-Id: I2b8da8d4f295355dce17141f0fab2dace126684d\n"
    },
    {
      "commit": "0ff7afc79169f786785419deaa97452f82103520",
      "tree": "37827a64af4126481cac5a152e5e7cc1e2d263ea",
      "parents": [
        "b9bbbeb2b05d74cae0fe0682a26b19f5a7e68d8c"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Nov 18 15:20:37 2015 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Nov 18 15:31:11 2015 -0800"
      },
      "message": "Fix an assert in lse.\n\nWrong assert. Just deleted it.\n\nChange-Id: I6f051609d87b2c6da081ee63f783ce99462f8a09\n"
    },
    {
      "commit": "fb8464ae5f5194dc16278e528cfcbff71498c767",
      "tree": "9361521497f31fd024f36980464d17bee7c83d52",
      "parents": [
        "9231730cd0e285373afd73331168b289309ebee4"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Nov 02 10:56:59 2015 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Nov 18 13:27:16 2015 -0800"
      },
      "message": "Revert \"Revert \"Enable store elimination for singleton objects.\"\"\n\nThis reverts commit 55d02cf056f993aeafebd54e7b7c68c7a48507c9, and\nmakes the following change:\nCurrently we leverage loop side effects to decide whether heap values are\nkilled by the loop. Stores need to be kept if heap values may be killed\nby loops and the corresponding loads cannot be eliminated. Similar thing\nneed to be done for each predecessor when we merge predecessor heap values.\nTo do that, the HInstanceFieldSet instruction itself is put in the heap\nvalue array instead of the value of the store instruction. The store\ninstruction may be added to possibly_removed_stores_ first, but can later\nbe removed from possibly_removed_stores_ when it\u0027s found out that the store\nneeds to be kept due to merging/loop side effects.\n\nChange-Id: I4f7bb1960f7b47240873e00ff1adac46fc102a02\n"
    },
    {
      "commit": "9231730cd0e285373afd73331168b289309ebee4",
      "tree": "6e0a4b2ed3560a405af758661a2fce759760bbf7",
      "parents": [
        "349baca032735e4a386b74709aa94d17f076cbce",
        "3927c8b8361336f1b16aae6eb2ed7577b20560f4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 18 17:09:04 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 18 17:09:04 2015 +0000"
      },
      "message": "Merge \"Opt compiler: Arm64 packed-switch jump tables.\""
    },
    {
      "commit": "3927c8b8361336f1b16aae6eb2ed7577b20560f4",
      "tree": "daa5ffabb2103980538200097b5fb97c5bc2193a",
      "parents": [
        "cb6638ff664e3136ccfee3cffb9307e0d43ffbc1"
      ],
      "author": {
        "name": "Zheng Xu",
        "email": "zheng.xu@linaro.org",
        "time": "Wed Nov 18 17:46:25 2015 +0800"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 18 16:11:25 2015 +0000"
      },
      "message": "Opt compiler: Arm64 packed-switch jump tables.\n\nIn this patch, we set a rough threshold and only generate jump table\nwith limited number of HIRs in the graph. This is because current VIXL\ncan only handle Adr with label in the range of +/-1Mb.\n\nChange-Id: I42bff2095ec26caeacc5efc90afebe34e229b518\n"
    },
    {
      "commit": "a4d1b6438ffaa68307480e8bb40cd18842daa2f3",
      "tree": "01f1e2899b88f9c3848d45bce7aa144c360f2940",
      "parents": [
        "a7a3ba792d608535e4d53ccc3b7a89d110609f12",
        "52503d83d057c66ea50eed491290e267b80e1fd3"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Nov 18 10:41:41 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 18 10:41:41 2015 +0000"
      },
      "message": "Merge \"Implement common super type in reference type propagation.\""
    },
    {
      "commit": "3b359c71f2fb784589be113206932e76807787bb",
      "tree": "f50f1b98a2948668d2ffabc42ce0cd9a00cecd0c",
      "parents": [
        "a04f57badca0a9211d45eb7bde44c1d1e8f159ff"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 17 19:35:12 2015 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Nov 17 19:35:12 2015 +0000"
      },
      "message": "ARM read barrier support for concurrent GC in Optimizing.\n\nThis first implementation uses slow paths to instrument heap\nreference loads and GC root loads for the concurrent copying\ncollector, respectively calling the artReadBarrierSlow and\nartReadBarrierForRootSlow runtime entry points.\n\nNotes:\n- This implementation does not instrument HInvokeVirtual\n  nor HInvokeInterface instructions (for class reference\n  loads), as the corresponding read barriers are not stricly\n  required with the current concurrent copying collector.\n- Intrinsics which may eventually call (on slow path) are\n  disabled when read barriers are enabled, as the current\n  slow path infrastructure does not support this case.\n- When read barriers are enabled, the code generated for a\n  HArraySet instruction always go into the array set slow\n  path for object arrays (delegating the operation to the\n  runtime), as we are lacking a mechanism to keep a\n  temporary register live accross a runtime call (needed for\n  the instrumentation of type checking code, which requires\n  two successive read barriers).\n\nBug: 12687968\nChange-Id: I92e8db414d029f952c07f3d3a98069e46dfdbc2a\n"
    },
    {
      "commit": "52503d83d057c66ea50eed491290e267b80e1fd3",
      "tree": "c55872ee898f67c7982deeadfb2b2820dde4b1bb",
      "parents": [
        "617bd9255bbdb9890e9d80462d293b94ba41c1f2"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Nov 11 16:58:31 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Nov 17 18:47:43 2015 +0000"
      },
      "message": "Implement common super type in reference type propagation.\n\nCurrently only if both types are classes.\n\nChange-Id: I06e98211ead56875a42bd17f099e319b107a50d4\n"
    },
    {
      "commit": "a04f57badca0a9211d45eb7bde44c1d1e8f159ff",
      "tree": "49a3e42024120ca21165277abff8e7dc0949376d",
      "parents": [
        "9013bb031c1c3244e70ae246437604f2c094a671",
        "6dc01748c61a7ad41d4ab701d3e27897bd39a899"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 17 17:40:57 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 17 17:40:57 2015 +0000"
      },
      "message": "Merge \"Minor fixes and cleaning of arm64 static and direct calls code.\""
    },
    {
      "commit": "0debae7bc89eb05f7a2bf7dccd223318fad7c88d",
      "tree": "3da9656dc77d271b12c1b02793e7d713ae3da790",
      "parents": [
        "991842a5273d20695dd5f35eb9a9e28c386c5b4b"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Nov 12 18:37:00 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Nov 17 15:12:00 2015 +0000"
      },
      "message": "ART: Refactor GenerateTestAndBranch\n\nEach code generator implements a method for generating condition\nevaluation and branching to arbitrary labels. This patch refactors\nit for better clarity but also to generate fewer jumps when the true\nbranch is the fallthrough successor.\n\nThis is preliminary work for implementing HSelect.\n\nChange-Id: Iaa545a5ecbacb761c5aa241fa69140cf6eb5952f\n"
    },
    {
      "commit": "a663d67500be03df7708afc059f135d2be76ef6e",
      "tree": "5d4f6c39fccb64fe165055deee95ac831cae655f",
      "parents": [
        "a445f7afbe113186de97007891307065109a6b84",
        "617bd9255bbdb9890e9d80462d293b94ba41c1f2"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Nov 16 17:00:23 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 16 17:00:23 2015 +0000"
      },
      "message": "Merge \"Ignore NullConstants when computing the type for Phis.\""
    },
    {
      "commit": "0d5a281c671444bfa75d63caf1427a8c0e6e1177",
      "tree": "fd9bbe0f1c581bcc7c05bbfb2643ffe0b1fb014e",
      "parents": [
        "dd4cbcc924c8ba2a578914a4a366996693bdcd74"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Nov 13 10:07:31 2015 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Sun Nov 15 12:16:41 2015 +0000"
      },
      "message": "x86/x86-64 read barrier support for concurrent GC in Optimizing.\n\nThis first implementation uses slow paths to instrument heap\nreference loads and GC root loads for the concurrent copying\ncollector, respectively calling the artReadBarrierSlow and\nartReadBarrierForRootSlow (new) runtime entry points.\n\nNotes:\n- This implementation does not instrument HInvokeVirtual\n  nor HInvokeInterface instructions (for class reference\n  loads), as the corresponding read barriers are not stricly\n  required with the current concurrent copying collector.\n- Intrinsics which may eventually call (on slow path) are\n  disabled when read barriers are enabled, as the current\n  slow path infrastructure does not support this case.\n- When read barriers are enabled, the code generated for a\n  HArraySet instruction always go into the array set slow\n  path for object arrays (delegating the operation to the\n  runtime), as we are lacking a mechanism to keep a\n  temporary register live accross a runtime call (needed for\n  the instrumentation of type checking code, which requires\n  two successive read barriers).\n\nBug: 12687968\nChange-Id: I14cd6107233c326389120336f93955b28ffbb329\n"
    },
    {
      "commit": "972d6d7b3b36c48ead6d95fa6a2a936390b868ac",
      "tree": "1f3a02753cf21ee4a09c2f445d6e202e0c97df16",
      "parents": [
        "0e06a0989f4fc53e0d281a5a2cb5b5a17feaea0c"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Tue Oct 20 11:29:12 2015 -0700"
      },
      "committer": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Fri Nov 13 12:51:28 2015 -0800"
      },
      "message": "MIPS64: Add java.lang.String.equals intrinsic.\n\nChange-Id: I71e41b20ebaf7640b2c72c590455eb0be4cbc5b7\n"
    },
    {
      "commit": "6dc01748c61a7ad41d4ab701d3e27897bd39a899",
      "tree": "4c536fc4ab19c3f99b8dddfa8bafbe11deaec0d7",
      "parents": [
        "cff81076cbb4bbe3841942f14326f4401fa3c8df"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Thu Nov 12 14:44:19 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 12 17:58:50 2015 +0000"
      },
      "message": "Minor fixes and cleaning of arm64 static and direct calls code.\n\nFixes:\nThe proper way to avoid the MacroAssembler to generate code before or\nafter an instruction is to block the pools (usually via\n`vixl::BlockPoolsScope`). Here we can use\n`vixl::SingleEmissionCheckScope`, that checks we generate only one\ninstruction and also blocks the pools.\nIn practice the current code would have worked fine because VIXL would\nnot have generated anything after `Bl()` or `Ldr()`, but that was not\nguaranteed.\n\nCleaning:\n- `XRegisterFrom()` returns an X register. Calling `.X()` is not\n  required.\n- Since we are sure (after the previous fixes) that nothing will be\n  emitted around the instructions we care about, update the code to\n  bind labels before the instructions for simplicity.\n\nChange-Id: I42d49976721e380e66bcd7a5b345f1777009434a\n"
    },
    {
      "commit": "cff81076cbb4bbe3841942f14326f4401fa3c8df",
      "tree": "f0a85a6059ff289ccb4b6e43b2b9b3924d481a31",
      "parents": [
        "fe0ec35c68d57205bd8fe13bd195ae0b5a3ed180",
        "0f7dca4ca0be8d2f8776794d35edf8b51b5bc997"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 12 15:20:08 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 12 15:20:08 2015 +0000"
      },
      "message": "Merge \"Optimizing/X86: PC-relative dex cache array addressing.\""
    },
    {
      "commit": "fe0ec35c68d57205bd8fe13bd195ae0b5a3ed180",
      "tree": "f232d1f06a50cf79c48ccb75b7314509432a276a",
      "parents": [
        "7a2f5c9459b492bd8550e437087191e52ca6324f",
        "13c86fdd2238ef158594182b31040533e1c92965"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 12 11:56:22 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 12 11:56:22 2015 +0000"
      },
      "message": "Merge \"Optimizing: Clean up constant location handling.\""
    },
    {
      "commit": "0f7dca4ca0be8d2f8776794d35edf8b51b5bc997",
      "tree": "cb2d99a0e9b7c50eb853a64b477268baaa77c11b",
      "parents": [
        "ce0f43b97ffb5e4d14c5df6607d8efb46a5dc9d2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 02 14:36:43 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 12 10:43:47 2015 +0000"
      },
      "message": "Optimizing/X86: PC-relative dex cache array addressing.\n\nAdd PC-relative dex cache array addressing for X86 and use\nit for better invoke-static/-direct dispatch. Also delay\nthe initialization to the PC-relative base until needed.\n\nChange-Id: Ib8634d5edce4920cd70172fd13211809cf6948d1\n"
    },
    {
      "commit": "00580bdbbb119a354c94a9c19928c1dcbd14a8f4",
      "tree": "722017e414952bccc6933a63e28b4ed5a214f1ff",
      "parents": [
        "c4b24109473d50e4cc829be5d1e7c77fd21527f3"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Wed Nov 11 13:31:12 2015 -0800"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Wed Nov 11 16:06:29 2015 -0800"
      },
      "message": "MIPS64: fix calling conventions in LoadClass and field accesses\n\nThis fixes failures in test 529-checker-unresolved\n\nChange-Id: I6170c22059e9711b2fcc965b00d6e34edd839539\n"
    },
    {
      "commit": "d15cd44c905e055d2d60b847ba4b221edda5e119",
      "tree": "b1c3d7d3f2365f3fc1cccba7778c1a351f67b335",
      "parents": [
        "54af9bd45a482376b5fe8d4ac291afb5bc950065",
        "9139e008abe30b7beaf4afd6533228a1dd9b202c"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Nov 11 18:07:14 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 11 18:07:14 2015 +0000"
      },
      "message": "Merge \"Correct exception behavior for default methods\""
    },
    {
      "commit": "617bd9255bbdb9890e9d80462d293b94ba41c1f2",
      "tree": "4cf231f3d2ec7afecf25d58f6bd74ee7b2f3ae03",
      "parents": [
        "54af9bd45a482376b5fe8d4ac291afb5bc950065"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Nov 11 14:59:46 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Nov 11 16:54:24 2015 +0000"
      },
      "message": "Ignore NullConstants when computing the type for Phis.\n\nNullConstants are always typed as Object and they widen the\ntype of Phis unnecessarily.\n\nChange-Id: I2b29e67617a22120642cb23d2bc6c1ff75b4e7c2\n"
    },
    {
      "commit": "13c86fdd2238ef158594182b31040533e1c92965",
      "tree": "e25633ef5157e63090aeff10654ada3bc624ec2e",
      "parents": [
        "c85f88b4c145015401d6849c83d9061bd998861f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 11 12:37:46 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 11 16:33:27 2015 +0000"
      },
      "message": "Optimizing: Clean up constant location handling.\n\nLocations builder should use ConstantLocation() when the\ncode generator relies on a location to be constant. Code\ngenerator should interrogate locations, not inputs, about\nbeing const.\n\nChange-Id: Ic35bb84aa9f83e0977b151a0430aca6c88f19cf0\n"
    },
    {
      "commit": "cdfed3dc422d0e1a9a0a948863308e58c39d01ba",
      "tree": "8c9ff8a3afd88ffb64a70e8c44869a41806661a0",
      "parents": [
        "ea30daef253f4b616ec7c9d4c7e134f33454d19d"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Oct 26 14:05:01 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Nov 11 12:50:15 2015 +0000"
      },
      "message": "Revert \"Revert \"Run type propagation after inliner only when needed.\"\"\n\nThis reverts commit 271743601650308c7ac5c7a3ec35025d8130a298.\n\nChange-Id: I173e27a0a4d7d54f90ca459eb48d280d1d40ab70\n"
    },
    {
      "commit": "ea30daef253f4b616ec7c9d4c7e134f33454d19d",
      "tree": "1b08b0b4919ea0ad8a5699a316ae87d8b74b9086",
      "parents": [
        "d7c76bd7e867b151ac81ef41810614c7b4cc898e",
        "33ad10e72438f01d11ec57695fe68194007535d2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 11 11:27:03 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 11 11:27:03 2015 +0000"
      },
      "message": "Merge \"Optimizing/ARM: Improve shifts of long values by a constant.\""
    },
    {
      "commit": "33ad10e72438f01d11ec57695fe68194007535d2",
      "tree": "af224add2c700737b11fd92982babee006f2c7d7",
      "parents": [
        "5c7c8248e48857f3a7c98a02d93c6971834d7241"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 10 19:31:26 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 11 11:14:23 2015 +0000"
      },
      "message": "Optimizing/ARM: Improve shifts of long values by a constant.\n\nChange-Id: Id66ef8cdb9e64306f2be547370b90cc100a3e086\n"
    },
    {
      "commit": "9139e008abe30b7beaf4afd6533228a1dd9b202c",
      "tree": "506be89287507bd777bd132627ad963729434969",
      "parents": [
        "d7c76bd7e867b151ac81ef41810614c7b4cc898e"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Oct 09 15:59:48 2015 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Nov 10 17:20:41 2015 -0800"
      },
      "message": "Correct exception behavior for default methods\n\nDefault methods are defined to throw an IncompatibleClassChangeError\n(ICCE) when they are called and there is no \"best\" implementation.\nPreviously we would simply throw an ICCE during class loading as soon\nas we noticed that this would happen if called. This makes us wait\nuntil we actually attempt to execute the method. Furthermore, this\nallows us to use other, non-conflicting, methods on the object as\nnormal.\n\nFurthermore, this makes us correctly throw AbstractMethodErrors in\ncases where all default implementations of a method are overridden by\nabstract declarations.\n\nAdds 3 tests for this new behavior.\n\nBug: 24618811\n\nChange-Id: Id891958a81f9b3862b2ce5919636aabef7d3422e\n"
    },
    {
      "commit": "040db345c4bcc5572b9f7dafba168f78a4e99792",
      "tree": "635889c0fb76b50593811338316978681430ad0e",
      "parents": [
        "5c7c8248e48857f3a7c98a02d93c6971834d7241"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 10 19:53:01 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 10 19:53:01 2015 +0000"
      },
      "message": "Optimizing: Clean up Equal/NotEqual constant folding for nulls.\n\nChange-Id: I17766395092ec61df61ef0b9ae4c37fd38164a3b\n"
    },
    {
      "commit": "5c7c8248e48857f3a7c98a02d93c6971834d7241",
      "tree": "b79a7bf816bb8dfaf25504323718785801a57650",
      "parents": [
        "feaf26db63a62bce5a80550f500efa67ff64424f",
        "d8ef0c69330f74f325f7671236ca6bf44b7ec9c9"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Nov 10 19:04:28 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 10 19:04:28 2015 +0000"
      },
      "message": "Merge \"ART: Remove unnecessary helper method from GraphChecker\""
    },
    {
      "commit": "d8ef0c69330f74f325f7671236ca6bf44b7ec9c9",
      "tree": "a1fd3b679a67ca623bbb6c2786d5691046617226",
      "parents": [
        "969670298516b9316b36270fcc4c21bfcd499595"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Nov 10 18:49:28 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Nov 10 18:49:28 2015 +0000"
      },
      "message": "ART: Remove unnecessary helper method from GraphChecker\n\nChange-Id: I59f50a559da560033f4c9407d83b68fc5d64bd3c\n"
    },
    {
      "commit": "feaf26db63a62bce5a80550f500efa67ff64424f",
      "tree": "4df965d3e647ae9a6d62b28e747e6da03c30c052",
      "parents": [
        "969670298516b9316b36270fcc4c21bfcd499595",
        "9e23df5c21bed53ead79e3131b67105abc8871e4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 10 18:31:55 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 10 18:31:55 2015 +0000"
      },
      "message": "Merge \"Optimizing: Improve constant folding + DCE for inlining.\""
    },
    {
      "commit": "d26a411adee1e71b3f09dd604ab9b23018037138",
      "tree": "7e9267d50fb0a9bcd6b14a97653c8e0baf91a575",
      "parents": [
        "8a6463a7052ec69e7c0b94a65b26807f570e6359"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Nov 10 11:07:31 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Nov 10 18:28:21 2015 +0000"
      },
      "message": "ART: Refactor iteration over normal/exceptional successors\n\nAdd helper methods on HBasicBlock which return ArrayRef with the\nsuitable sub-array of the `successors_` list.\n\nChange-Id: I66c83bb56f2984d7550bf77c48110af4087515a8\n"
    },
    {
      "commit": "9e23df5c21bed53ead79e3131b67105abc8871e4",
      "tree": "b04e042b8de54e631f8f2452eb8ae4de9e23e39e",
      "parents": [
        "8a6463a7052ec69e7c0b94a65b26807f570e6359"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 10 17:14:35 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 10 18:19:47 2015 +0000"
      },
      "message": "Optimizing: Improve constant folding + DCE for inlining.\n\nRun constant folding before DCE in inliner to eliminate more\ncode that can prevent inlining. Improve the constant folding\nto evaluate Equals and NotEquals for null inputs.\n\nChange-Id: I876ffb903ef39484370b6c8793f0f8467a977362\n"
    },
    {
      "commit": "8a6463a7052ec69e7c0b94a65b26807f570e6359",
      "tree": "5da26d13991fe0c7d930bd6f87537d014569b227",
      "parents": [
        "ee57104951acf3dc5f6343f1d3022e3cd73016f5",
        "59a850ee63a637660599f215901058b059f3a4b4"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Nov 10 13:10:08 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 10 13:10:08 2015 +0000"
      },
      "message": "Merge \"ART: Improve comment about inlining into try/catch\""
    },
    {
      "commit": "59a850ee63a637660599f215901058b059f3a4b4",
      "tree": "ba9998821cbacced17a01b9a367c9e7f399ad22e",
      "parents": [
        "1963759e84664b51b617b00e15728f439895033b"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Nov 10 13:04:30 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Nov 10 13:06:29 2015 +0000"
      },
      "message": "ART: Improve comment about inlining into try/catch\n\nChange-Id: I66a4fd3206847c8d5bb57b1678d9d3dc94331294\n"
    },
    {
      "commit": "ee57104951acf3dc5f6343f1d3022e3cd73016f5",
      "tree": "6bc6affc9f105125da963434e983cb301679431e",
      "parents": [
        "83dcccb96ff8424fb4ab46bcda7c422d59a8c135",
        "81e479e5f768fd8ff46c2a894640a094d12800e2"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Nov 10 13:01:50 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 10 13:01:50 2015 +0000"
      },
      "message": "Merge \"ART: Fix critical edge checks in GraphChecker\""
    },
    {
      "commit": "83dcccb96ff8424fb4ab46bcda7c422d59a8c135",
      "tree": "8951c2aeef6489bdd53b26f78d3ff2400154b81a",
      "parents": [
        "1963759e84664b51b617b00e15728f439895033b",
        "8a7c0fe837bb00b02dfcfc678910d81d07fb2136"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Nov 10 13:01:28 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 10 13:01:28 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"ART: Update DCE to work with try/catch\"\"\""
    },
    {
      "commit": "81e479e5f768fd8ff46c2a894640a094d12800e2",
      "tree": "1c0a319e756eaf59b24c0014ebfd707eea385cad",
      "parents": [
        "1963759e84664b51b617b00e15728f439895033b"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Nov 10 10:12:41 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Nov 10 11:22:42 2015 +0000"
      },
      "message": "ART: Fix critical edge checks in GraphChecker\n\nPrevious CL I5a13b8bb74509b48f5d628906f7158af007f99ae fixed logic for\nsplitting critical edges. The same logic is used in GraphChecker when\ntesting critical edges weren\u0027t introduced by a pass. This patch updates\nit too.\n\nBug: 25493695\nBug: 25454012\nChange-Id: I56226c82324ee55ae2fbe7262608dd2868d930f1\n"
    },
    {
      "commit": "dc0d1eb8a4b033db4acf136cd563de865542098a",
      "tree": "fc40b96ed4d0f88eb7a278fdeb2564a43ad39ff3",
      "parents": [
        "1b87033ed83ba03983b49237da89ce36d319b68e"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Nov 10 09:43:28 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Nov 10 09:43:28 2015 +0000"
      },
      "message": "ART: Add clarifying comment\n\nChange-Id: I189ec4cae0aa1a5245a79e86d1ec0592e38eac4a\n"
    },
    {
      "commit": "8a7c0fe837bb00b02dfcfc678910d81d07fb2136",
      "tree": "9d1a44fa3dd16ed93efb84f5c4e4e5bf1231f5c3",
      "parents": [
        "44612873bb02be8a59e16aa50f61cce9e9cc9547"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Nov 02 20:24:55 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Nov 10 09:38:37 2015 +0000"
      },
      "message": "Revert \"Revert \"ART: Update DCE to work with try/catch\"\"\n\nThe previous CL failed because it did not update inputs of catch phis.\nSince phi input indices cannot be easily mapped back to throwing\ninstructions, this new implementation at least removes catch phi uses\nof values defined in the removed blocks to preserve graph consistency.\n\nThis reverts commit fb552d7061746f7a90fdd5002696e255e2e15c35.\n\nChange-Id: I63d95915d1ef50e71d3bcf0cd10aaded554035b4\n"
    },
    {
      "commit": "31f1584b6bc3fc39dfb396edb24ec42f193f587c",
      "tree": "2ca4b4d5dac80f08b51ecdff1b04949a176429d4",
      "parents": [
        "934ea11065c0806d3f57a632fac9032707afbfc6",
        "391d01f3e8dedf3af3727bdf5d5b76ab35d52795"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 09 13:53:13 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 09 13:53:13 2015 +0000"
      },
      "message": "Merge \"Optimizing: Rewrite search for common dominators.\""
    },
    {
      "commit": "391d01f3e8dedf3af3727bdf5d5b76ab35d52795",
      "tree": "dcc38980d5a16551f7056894be9c5fb083f146ae",
      "parents": [
        "2fa684206b0a8bd203d07e1edf74a839b498f74f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 06 11:02:08 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 09 13:47:03 2015 +0000"
      },
      "message": "Optimizing: Rewrite search for common dominators.\n\nProvide a utility class that can be used to quickly search\nfor common dominators of two or more blocks. Change the\nalgorithm to avoid memory allocations.\n\nChange-Id: Id72c975fc42377cb7622902f87c4262ea7b3cc38\n"
    },
    {
      "commit": "6f6f3592ea47be2a59836bd9fe5feb2003c6aee7",
      "tree": "3edad72b08769ace21c0c6b6e9ed944fcf721b88",
      "parents": [
        "f11f5ebe321fde9f6efb49d75b861606391b6502"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 09 12:54:16 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 09 12:54:16 2015 +0000"
      },
      "message": "Fix mip64 build: hide current method input only if it exists.\n\nChange-Id: I7d3cb34843d421babfb1f93469e770c05ee8d5a9\n"
    },
    {
      "commit": "f11f5ebe321fde9f6efb49d75b861606391b6502",
      "tree": "c2cfc64f7cafa0d9a570d99f2c0c03adb92c6dc9",
      "parents": [
        "df7029f2254f67230362c4bdfaddac00c342e660",
        "db51efb3617d15f1cd9e5ff0cc2d934777014e9a"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Nov 09 12:47:19 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 09 12:47:19 2015 +0000"
      },
      "message": "Merge \"ART: Fix critical edge splitting under try/catch\""
    },
    {
      "commit": "db51efb3617d15f1cd9e5ff0cc2d934777014e9a",
      "tree": "fa70acb9f8d090def2cae550db8c2e1f630f31c4",
      "parents": [
        "2649cba0fb7cdbd8fa60cb4f2fb320fb2b18ee37"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Nov 06 01:36:20 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Nov 09 10:27:08 2015 +0000"
      },
      "message": "ART: Fix critical edge splitting under try/catch\n\nA critical edge would not be split if the predecessor ends with\nTryBoundary. This would eventually trip liveness analysis because\na back edge block would have smaller liveness position than a nested\nloop.\n\nAnother implication of this change is that an edge between a loop\u0027s\npre-header ending with TryBoundary and the header will be split,\nguaranteeing that a pre-header always has just one successor.\n\nBug: 25493695\nBug: 25454012\nChange-Id: I5a13b8bb74509b48f5d628906f7158af007f99ae\n"
    },
    {
      "commit": "3e5b3c982a5837384829ffd6726c5a30714cbfcb",
      "tree": "0ad109f906aaf8d427bd6ed6ba2e9f50a348016b",
      "parents": [
        "2649cba0fb7cdbd8fa60cb4f2fb320fb2b18ee37",
        "b554b5a5ae3cdc66969d61be20783a8af816206e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 09 10:14:35 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 09 10:14:35 2015 +0000"
      },
      "message": "Merge \"Optimizing: Remove unused ArtMethod* input from HInvokeStaticOrDirect.\""
    },
    {
      "commit": "2264f624e41acf09b17c3961bd52966e43f2b58f",
      "tree": "b946c5ffdca5399408fc0769edb12762980087b8",
      "parents": [
        "4202a2ff49d77eda813052d091675bf53c46cb0f",
        "5c75ffad3aaf9d62ea3ac4cf2c0a2fd699368f83"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Nov 07 14:15:46 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Nov 07 14:15:46 2015 +0000"
      },
      "message": "Merge \"MIPS64: small improvements in code generation\""
    },
    {
      "commit": "5c75ffad3aaf9d62ea3ac4cf2c0a2fd699368f83",
      "tree": "15da165b06f99c55849e5431d8b405c2014883dc",
      "parents": [
        "b203aad7a0db904efa8429d48b53e56583f61ec2"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Thu Sep 24 14:41:59 2015 -0700"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Fri Nov 06 13:13:47 2015 -0800"
      },
      "message": "MIPS64: small improvements in code generation\n\nSpecifically:\n- More efficient load/store of constant 0 (and +0.0)\n- Improved swapping of floats/doubles in registers\n- Use kNoOutputOverlap wherever possible\n- More efficient 64-bit integer comparison with 0\n- More efficient load of integer constants of the form (2**n)-1\n\nChange-Id: Ic2914d8865aa6616b9a0b21b3cc173d4477eb8c7\n"
    },
    {
      "commit": "c857c746707dfd45d74b75cb7fa84484ca68cc2a",
      "tree": "0c223c9cb4999ffe9b04b3e264f5fea4c91d949a",
      "parents": [
        "b203aad7a0db904efa8429d48b53e56583f61ec2"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Wed Sep 23 15:12:39 2015 -0700"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Fri Nov 06 13:03:43 2015 -0800"
      },
      "message": "MIPS64: Improve integer division by constants\n\nThis also removes some unused instructions and instructions not\navailable on MIPS64R6.\n\nChange-Id: I44bfe12c60344312c88c45e97b6b07dcd5bdc630\n"
    },
    {
      "commit": "b554b5a5ae3cdc66969d61be20783a8af816206e",
      "tree": "c52c69c7e4a3950e4c24065c70b19eebdfc10f29",
      "parents": [
        "2fa684206b0a8bd203d07e1edf74a839b498f74f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 06 12:57:55 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 06 19:54:53 2015 +0000"
      },
      "message": "Optimizing: Remove unused ArtMethod* input from HInvokeStaticOrDirect.\n\nChange-Id: Iea99fa683440673ff517e246f35fade96600f229\n"
    },
    {
      "commit": "9bc436160b4af99067973affb0b1008de9a2b04c",
      "tree": "160fba56aa8ba53a5db624c42c1936dd15a3cdf7",
      "parents": [
        "ef7ef4ce04a46405e15cd91115c6e657235adf83"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Nov 05 21:25:24 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Nov 06 19:20:46 2015 +0000"
      },
      "message": "ART: Fix simplification of catch blocks in the presence of dead code\n\nSimplification of catch blocks transforms the code so that catch\nblocks have only exceptional predecessors. However, it is invoked\nbefore trivially dead code is eliminated which breaks simple\nassumptions such as the fact that a catch block cannot start with\nmove-exception if it has non-exceptional predecessors. This patch\nfixes the algorithm to work under these relaxed conditions.\n\nBug: 25494450\nBug: 25492628\nChange-Id: Idc8d010102a4b8b9a6cd918b98d6e11d1838db0c\n"
    },
    {
      "commit": "17656eb32a08f81384d4afda8b19b71f0736abd4",
      "tree": "05b5556881ae1e0ec5af234bddfc3dc7ab41a988",
      "parents": [
        "97e740166a0687ddca6a51deee64b61c1bd17868",
        "16ba2b4726cafc2d83cae4a65132aac15f372689"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 06 17:33:17 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 06 17:33:17 2015 +0000"
      },
      "message": "Merge \"MIPS32: java.lang.String.equals\""
    },
    {
      "commit": "16ba2b4726cafc2d83cae4a65132aac15f372689",
      "tree": "60e849e3c8f58e3b49984e9907b633b7a32bb33d",
      "parents": [
        "ae0441907596ff5d7d3ebba6e12ed25e3ec11e21"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Mon Nov 02 10:58:31 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 06 09:31:46 2015 -0800"
      },
      "message": "MIPS32: java.lang.String.equals\n\nAdd intrinsic support for String.equals on MIPS32.\n\nChange-Id: I2d184aa4d5dae7cdd4a89c2c902535692c9e7393\n"
    },
    {
      "commit": "814893712135ada93d60776e2677b80fa6dfa7a8",
      "tree": "9d96264e89c2b3341dc78e07cb2bbb676d9e3f77",
      "parents": [
        "5348137d15483f7aeaf03f5116b8d6e01b5c1bac"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Wed Nov 04 11:30:41 2015 -0500"
      },
      "committer": {
        "name": "Mark P Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Fri Nov 06 13:39:23 2015 +0000"
      },
      "message": "Improve X86 handling of constants to Field/Array Set\n\nAnTuTu 5.6 f.v.b() function on X86 showed several places where FP\nconstants were created using the stack, one in an inner loop.\n\nChange ArraySet and *FieldSet to allow constants, and then generate\ninteger constant moves, rather than forcing the constant to be\nmaterialized into a register. This will also help with register\npressure.\n\nChange-Id: Ibebe2fed748a1bbeca47c36e9536b9b2357fc3cb\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "2704896d3aa2902f46eebd722095b06331f548be",
      "tree": "0376c827f4ecabf1a0d6dd194d7c7a18f4451587",
      "parents": [
        "9c3cd19d85a1366fdd9a617562d4966d6844d9f7",
        "53afca191ace3d7447b09097f9ea82a513075c52"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 06 09:38:03 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 06 09:38:03 2015 +0000"
      },
      "message": "Merge \"MIPS64: Implement virtual intrinsic slow path\""
    },
    {
      "commit": "53afca191ace3d7447b09097f9ea82a513075c52",
      "tree": "f037ef8007bcbe4632b5d06fab0a7aea5550ce61",
      "parents": [
        "a930832a4ef0a2ef0835c5db4650750018ab0765"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Thu Nov 05 16:34:23 2015 -0800"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Thu Nov 05 16:53:19 2015 -0800"
      },
      "message": "MIPS64: Implement virtual intrinsic slow path\n\nThis fixes a crash in dex2oat while compiling boot.oat.\n\nChange-Id: I44fc92809902d7fc226c88b3e3f081b72cc19ce5\n"
    },
    {
      "commit": "d93223d7966bee1ae91a9e224c1dd56de1aa3f50",
      "tree": "c26470258961ad9775c8f8ebec9ad102f08d1f55",
      "parents": [
        "f2a93f4d824d6ea0f5858c774ba03f1c002a6aaa",
        "389b3dbf5c5390056ff4dacac464219853dd3cda"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Nov 05 17:15:05 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 05 17:15:05 2015 +0000"
      },
      "message": "Merge \"Finalized all components of range analysis needed for dynamic bce.\""
    },
    {
      "commit": "f2a93f4d824d6ea0f5858c774ba03f1c002a6aaa",
      "tree": "5a7043988f84b6127a56f2054d7a80fb1d07b6c8",
      "parents": [
        "3f96f42b3788f9b9b243822212ec686e599279ef",
        "ea5af68d6dda832bdfb5978a0c5d6f86a3f67e80"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 05 16:27:58 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 05 16:27:58 2015 +0000"
      },
      "message": "Merge \"X86-64: Split long/double constant array/field set\""
    },
    {
      "commit": "ea5af68d6dda832bdfb5978a0c5d6f86a3f67e80",
      "tree": "01fbfdc1b686cafad2d545815980e3d0b0451e0a",
      "parents": [
        "b24301b06b31b463f7e92ebc9a8f75839e54b746"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Thu Oct 22 17:35:49 2015 -0400"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Thu Nov 05 10:56:59 2015 -0500"
      },
      "message": "X86-64: Split long/double constant array/field set\n\nA long constant needs to be in a register to store to memory.\nBy allowing stores of constants that are outside of the range of\nint32_t, we reduce register usage.\n\nAlso support sets of float/double constants by using integer stores.\n\nRename RegisterOrInt32LongConstant to RegisterOrInt32Constant as it\nnow handles any type of constant.\n\nChange-Id: I025d9ef889a5a433e45aa03b376bae40f14197d2\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "b8b97695d178337736b61609220613b92f344d45",
      "tree": "8b412373d1f21cac78168e284e36977a7fab0875",
      "parents": [
        "b24301b06b31b463f7e92ebc9a8f75839e54b746"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Fri May 22 16:58:19 2015 -0400"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Thu Nov 05 10:44:24 2015 -0500"
      },
      "message": "Fix conditional jump over jmp (X86/X86-64/ARM32)\n\nOptimize the code generation for \u0027if\u0027 statements to jump to the\n\u0027false\u0027 block if the next block to be generated is the \u0027true\u0027 block.\n\nAdd an X86-64 test for this case.\n\nNote that ARM64 \u0026 MIPS64 have not been updated.\n\nChange-Id: Iebb1352feb9d3bd0142d8b0621a2e3069a708ea7\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "b24301b06b31b463f7e92ebc9a8f75839e54b746",
      "tree": "16071bd91ba5f5fc4739479b1c1ede0691ca2b8d",
      "parents": [
        "2b13eaa50065346d4a1345b05fe2e1455df6d71d",
        "d28b969c273ab777ca9b147b87fcef671b4f695f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 05 12:53:57 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 05 12:53:57 2015 +0000"
      },
      "message": "Merge \"Code cleanup to avoid CompilerDriver abstractions in JIT.\""
    },
    {
      "commit": "d28b969c273ab777ca9b147b87fcef671b4f695f",
      "tree": "ca66ecfd809afdcd31443bbe50bf38a836302cc5",
      "parents": [
        "6bf6e438cd4746effce0b26d504c54100191c988"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 04 14:36:55 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 05 10:37:48 2015 +0000"
      },
      "message": "Code cleanup to avoid CompilerDriver abstractions in JIT.\n\nAvoids allocating a CompiledMethod.\n\nChange-Id: I35b4aa0d7c74daba68e827a01e71c300fce3b3bf\n"
    },
    {
      "commit": "2bd4c5c1b704be8a81d9b7a94b3e828afa2b0963",
      "tree": "ee1ea3271d41b9a647a7ce7e4d1a0ed94eff9fcf",
      "parents": [
        "1749e2cfb5c5ed4d6970a09aecf898ca9cdfcb75"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Nov 04 22:48:45 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Nov 04 22:48:45 2015 +0000"
      },
      "message": "Revert \"ART: Implement DeadPhiHandling in PrimitiveTypePropagation\"\n\nCrashes on YouTube, need to investigate\n\nThis reverts commit 1749e2cfb5c5ed4d6970a09aecf898ca9cdfcb75.\n\nChange-Id: If5f133d55dcc26b8db79a670a48fbd4af7807556\n"
    },
    {
      "commit": "1749e2cfb5c5ed4d6970a09aecf898ca9cdfcb75",
      "tree": "57ab54c48a7404abf0c9f2c919e8a6c805d98587",
      "parents": [
        "c8894ab5021aecd0fa5eba94af47f732914af33b"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Sep 28 13:49:59 2015 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Nov 04 18:13:45 2015 +0000"
      },
      "message": "ART: Implement DeadPhiHandling in PrimitiveTypePropagation\n\nDeadPhiHandling revives non-conflicting phis with environment uses\nbut does not properly merge types. To not duplicate code, this patch\nmodifies PrimitiveTypePropagation to deal with conflicts and thus\nreplaces DeadPhiHandling altogether.\n\nBug: 24252151\nBug: 24252100\n\nChange-Id: I198c71d1b8167fc05783a5a24aa9f1e3804acafe\n"
    },
    {
      "commit": "389b3dbf5c5390056ff4dacac464219853dd3cda",
      "tree": "85013c1eaf6aaba9ab839f17b978eb689f30e998",
      "parents": [
        "c8894ab5021aecd0fa5eba94af47f732914af33b"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Oct 28 14:23:40 2015 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Nov 04 09:48:26 2015 -0800"
      },
      "message": "Finalized all components of range analysis needed for dynamic bce.\n\nRationale: added ability to generate taken-test, prompt back need\n           for finite-test; cleaned up the API now that bounds\n           check needs are all known.\n\nChange-Id: I3d09b249965d1a980c09381240de175ca4b2e455\n"
    },
    {
      "commit": "c8894ab5021aecd0fa5eba94af47f732914af33b",
      "tree": "ee1ea3271d41b9a647a7ce7e4d1a0ed94eff9fcf",
      "parents": [
        "b178e11d9eb44fc0ac666049f3aa14f7f14ffd64",
        "10ef6941648aad04d54527d4a7a6070bf7065e88"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 04 16:27:44 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 04 16:27:44 2015 +0000"
      },
      "message": "Merge \"Delay emitting CFI PC adjustments until after Thumb2/Mips fixup.\""
    },
    {
      "commit": "10ef6941648aad04d54527d4a7a6070bf7065e88",
      "tree": "50fe6b50a3020ec7d25fbd5e4393db1c04452ce7",
      "parents": [
        "c74e69f831608964f89ac7a641fbcc09156eefaa"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 22 15:25:54 2015 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 04 14:54:23 2015 +0000"
      },
      "message": "Delay emitting CFI PC adjustments until after Thumb2/Mips fixup.\n\nOn Mips also take into account out-of-order CFI data emitted\nfrom EmitBranches().\n\nChange-Id: I03b0b0b4c2b1ea31a02699ef5fa1c55aa42c23c3\n"
    },
    {
      "commit": "934808feba1a56114cb48ee71c4ad1b9a63a3f84",
      "tree": "242caa3275a0f191f21bbdb71430e140a79d9b94",
      "parents": [
        "f33ea7911dadab2e49c4634cb1763f0526047e89"
      ],
      "author": {
        "name": "Pavle Batuta",
        "email": "pavle.batuta@imgtec.com",
        "time": "Tue Nov 03 13:23:54 2015 +0100"
      },
      "committer": {
        "name": "Pavle Batuta",
        "email": "pavle.batuta@imgtec.com",
        "time": "Wed Nov 04 09:37:09 2015 +0100"
      },
      "message": "Fix mips32oc ArraySet null constant assignment\n\nFix assigning a null constant to an array index. Previously this\nwould unnecessarily invoke pAputObject.\n\nThis commit fixes previous test failure: 521-checker-array-set-null.\n\nChange-Id: I02ff5296fa3a48b021c0dfd9bb10628ba6e5d5e5\n"
    },
    {
      "commit": "fb552d7061746f7a90fdd5002696e255e2e15c35",
      "tree": "6ac0a1698ef53c7bb7258d471816b4edf6fb9212",
      "parents": [
        "ce52901e2c8377fc1c331ae0faf7fbcb46b9da97"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Nov 02 20:24:24 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Nov 02 20:24:24 2015 +0000"
      },
      "message": "Revert \"ART: Update DCE to work with try/catch\"\n\nThis reverts commit ce52901e2c8377fc1c331ae0faf7fbcb46b9da97.\n\nChange-Id: I6b3a1f2a3dc036030b089b0df2005ecefa66b949\n"
    },
    {
      "commit": "ce52901e2c8377fc1c331ae0faf7fbcb46b9da97",
      "tree": "19dca428a4e5e30d70c9e96d85acc99ae01ba8e4",
      "parents": [
        "49560fcce5b9a07108f7cc75a3fb0fa265e5fa0e"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Oct 28 19:25:55 2015 -0500"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Nov 02 13:22:19 2015 -0600"
      },
      "message": "ART: Update DCE to work with try/catch\n\nDead block elimination was previously disabled because it needed\nto be updated. With this patch, try/catch blocks can be removed\nas a result of a dead if/switch branch.\n\nChange-Id: I3261060bf24fd5fe7bb0f989247f0ef62ec5fd7b\n"
    },
    {
      "commit": "816b2b3f704d61ba608ad2c3513d4697e7fb5dfe",
      "tree": "c13905f7fcf31612d5ff60662371c8c642cd5fc7",
      "parents": [
        "43c6d31c43c05d97511bb9658964fd3d2f32b915",
        "d930929be93798d790c91dd05adf2c038508f1b0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 02 13:52:48 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 02 13:52:48 2015 +0000"
      },
      "message": "Merge \"Fix inlining and lse bugs with unresolved access.\""
    },
    {
      "commit": "d930929be93798d790c91dd05adf2c038508f1b0",
      "tree": "ef7a9b70e2e8f14ae2b49a07ca04b2fa1cee8496",
      "parents": [
        "289c4e3a10acb6d0250dc25dd42465ca4d08c762"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Oct 31 22:21:31 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 02 13:45:30 2015 +0000"
      },
      "message": "Fix inlining and lse bugs with unresolved access.\n\nbug:25414532\n\nChange-Id: I48b6660754774ea3e8a62a74175b1aa3728e0151\n"
    },
    {
      "commit": "3e0597facd506073fcf91db2d81ae2ffdce6b701",
      "tree": "05e6e5bb0a0a1f8dcadbf2c0939f363f4622970c",
      "parents": [
        "c74e69f831608964f89ac7a641fbcc09156eefaa",
        "951779839f0d35ed5336f399c8f521fd9a6b7c27"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Oct 30 20:05:29 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 30 20:05:29 2015 +0000"
      },
      "message": "Merge \"ART: Enable inlining under try/catch\""
    },
    {
      "commit": "951779839f0d35ed5336f399c8f521fd9a6b7c27",
      "tree": "eb678f58590287e04585bc92202c45b4120c9a0e",
      "parents": [
        "34e38c43d4728fb1d3a011f8c142bff94927f6fb"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Oct 30 12:56:58 2015 -0500"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Oct 30 15:02:37 2015 -0500"
      },
      "message": "ART: Enable inlining under try/catch\n\nThis patch updates the inliner to set try/catch information\nwhen inlining into a method with try/catch. It does not yet\nallow inlining of methods with try/catch because that will\nrequire generating catch stack maps with inline info.\n\nChange-Id: I7d57e1454e7da537d75c5c7eda60b22f3a30fa60\n"
    },
    {
      "commit": "c74e69f831608964f89ac7a641fbcc09156eefaa",
      "tree": "284112345185cd3ef21feaeaa6060606cfbbbda8",
      "parents": [
        "564420bc5b37572d45067fd71ed64d818ef3030d",
        "7cffc3b0004d32faffc552c0a59286f369b21504"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 30 18:17:00 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 30 18:17:00 2015 +0000"
      },
      "message": "Merge \"ART: Arm32 packed-switch jump tables\""
    },
    {
      "commit": "7cffc3b0004d32faffc552c0a59286f369b21504",
      "tree": "e3838b8ba2a782ed91ef8faa381362b7a686a32a",
      "parents": [
        "9e1b56f0e77aa5b6c72374b86d0cef58484ddcaa"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Oct 19 21:31:53 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 30 11:15:26 2015 -0700"
      },
      "message": "ART: Arm32 packed-switch jump tables\n\nAdd jump table support to the thumb2 assembler. Jump tables are\na collection of labels for the case targets, and an anchor label\ndenoting the position of the jump.\n\nUse the jump table support to implement packed-switch support for\narm32.\n\nAdd tests for BindTrackedLabel and JumpTable to the thumb2 assembler\ntest.\n\nBug: 24092914\nChange-Id: I5c84f193dfebf9e07f48678efc8bd151bb1410dd\n"
    },
    {
      "commit": "469e9c4515cb68509f02def2fe6c0465ffb55628",
      "tree": "d71e88ac9b0862dc04a25325ff950ea91179ae93",
      "parents": [
        "289c4e3a10acb6d0250dc25dd42465ca4d08c762",
        "d1eaf0dc9abc42dbcbbd9c4b98bf930ae5f394f3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Oct 30 16:26:49 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 30 16:26:49 2015 +0000"
      },
      "message": "Merge \"Keep list of dex files for oat file in CompilerDriver.\""
    },
    {
      "commit": "d1eaf0dc9abc42dbcbbd9c4b98bf930ae5f394f3",
      "tree": "335509fbc92becce5cb08e23361e2cae86756729",
      "parents": [
        "594c0612519e96bcc1bd42ff4dcbfa2c53b09c5a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 29 12:18:29 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Oct 30 15:38:39 2015 +0000"
      },
      "message": "Keep list of dex files for oat file in CompilerDriver.\n\nUse this list to improve invoke-static/-direct dispatch for\nintra-oat calls.\n\nAlso fix a latent ArmBaseRelativePatcher::ReserveSpaceEnd()\nbug exposed by a buggy early version of this CL: when we\nhave unresolved patches at the end of all code, we need to\nemit a final thunk. Though the OatWriter will try to patch\nthe unresolved call to a trampoline at the beginning of the\noat file, that trampoline may be too far and the relative\npatcher doesn\u0027t know about it anyway, so it needs to assume\nthat a thunk is needed.\n\nThis reduces the overall size of oat files present in dalvik\ncache on Nexus 9 after first boot by over 1MiB, AOSP ToT,\naosp_flounder-userdebug build.\n\nChange-Id: I98604b70cb17377eed057c1c23971865cf344e43\n"
    },
    {
      "commit": "70d95b4cabcabff7eda37e9e8348744891008e65",
      "tree": "b652f21fa0bebaf6c290501636adc1b07f591932",
      "parents": [
        "56c8c9ec60a1a887bd39302fa8e2a422cb86fc80",
        "701566aaae098d5aab9d912e2003a18d44fb850d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 30 03:12:15 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 30 03:12:15 2015 +0000"
      },
      "message": "Merge \"MIPS32: Create infrastructure to support intrinsics\""
    },
    {
      "commit": "701566aaae098d5aab9d912e2003a18d44fb850d",
      "tree": "80dc26543cf557528b5765307a16256a126c2cc1",
      "parents": [
        "c65d1f3d26a47e2fce3c3f8872e7942fec23f9b9"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Tue Oct 27 15:29:13 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 29 20:06:28 2015 -0700"
      },
      "message": "MIPS32: Create infrastructure to support intrinsics\n\nAdd an empty intrinisics implementation for MIPS32.\n\nChange-Id: I3f46ade1c548e6453f094ce200e66232348ef467\n"
    },
    {
      "commit": "d13f2b35546d421f570c64654ad8479caf1165d6",
      "tree": "535c21c9a181b87d15839151b26f65266c418a9f",
      "parents": [
        "8cb0bc28b1161dad0d2c2c1e75318b7e504faa46",
        "771e5cc519665ce0cc76985bb4803f0dd50c3b40"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Oct 29 22:47:59 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 29 22:47:59 2015 +0000"
      },
      "message": "Merge \"Revert \"ART: Enable more passes under try/catch\"\""
    },
    {
      "commit": "771e5cc519665ce0cc76985bb4803f0dd50c3b40",
      "tree": "2f6934bc6cb0286d327b7a653be410cf8df43c00",
      "parents": [
        "39fabd6bb6fcf7a712b370d3b6fd0ada83e2e5d8"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Oct 29 22:47:39 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Oct 29 22:47:39 2015 +0000"
      },
      "message": "Revert \"ART: Enable more passes under try/catch\"\n\nBCE does not set TryCatchInformation when creating new blocks.\nWill be fixed with DynamicBCE CL.\n\nThis reverts commit 39fabd6bb6fcf7a712b370d3b6fd0ada83e2e5d8.\n\nChange-Id: I76ae707ac132bb1a4a9f64f4916ffcd786ef730c\n"
    },
    {
      "commit": "c65d1f3d26a47e2fce3c3f8872e7942fec23f9b9",
      "tree": "1b81ca0d711ca0561e933563aee255b516a4191f",
      "parents": [
        "5ad27592e2317b4c7932885eff702099f7cbe0f1",
        "73f1f3be46652d3f6df61b4234c366ebbf81274a"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Oct 29 21:00:17 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 29 21:00:17 2015 +0000"
      },
      "message": "Merge \"Move loop invariant utility to more general place.\""
    },
    {
      "commit": "5ad27592e2317b4c7932885eff702099f7cbe0f1",
      "tree": "0288a1fad8a283a3fb896459bfd1a0c8d8dfa6bf",
      "parents": [
        "e22d85249e6e3985edf5e17a9c28ec26e0e6df3e",
        "39fabd6bb6fcf7a712b370d3b6fd0ada83e2e5d8"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Oct 29 20:30:29 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 29 20:30:29 2015 +0000"
      },
      "message": "Merge \"ART: Enable more passes under try/catch\""
    },
    {
      "commit": "73f1f3be46652d3f6df61b4234c366ebbf81274a",
      "tree": "0d6c2f9eb2331fd5de5aa4c43ebcb45e857a4682",
      "parents": [
        "f7b7f9984da66149e5fe05713845961d7b069a23"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Oct 28 15:28:08 2015 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Oct 29 13:29:50 2015 -0700"
      },
      "message": "Move loop invariant utility to more general place.\n\nChange-Id: I15ebfbf9684f0fcce9e63d078ff8dc1381fd1ca3\n"
    },
    {
      "commit": "2118d3d673f6874a593024308facde336b3302e7",
      "tree": "426e3fb09e7d0874c63eaa1680ae57d5ba1e13c3",
      "parents": [
        "0b654bce0f8d7c596d4115848b7e4c4dbeadafd5",
        "96709f17347cb7a6aae15816244d2200ca95a649"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Oct 29 18:17:17 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 29 18:17:17 2015 +0000"
      },
      "message": "Merge \"Simplify unsigned comparisons against zero (with unit tests).\""
    },
    {
      "commit": "96709f17347cb7a6aae15816244d2200ca95a649",
      "tree": "c193a1378acb0968318a47ade5eb63121e6c9b3d",
      "parents": [
        "f7b7f9984da66149e5fe05713845961d7b069a23"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Oct 28 17:49:07 2015 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Oct 29 11:04:13 2015 -0700"
      },
      "message": "Simplify unsigned comparisons against zero (with unit tests).\n\nRationale: Such cases occurs a lot after dynamic\n           bound check optimization (where the lower bound\n           is test against upper bound). Removing this\n           unnecessary test improves quality of code.\n\nChange-Id: I3e4dc9f9d799aad342e1c344013ac60fcc3073ac\n"
    },
    {
      "commit": "39fabd6bb6fcf7a712b370d3b6fd0ada83e2e5d8",
      "tree": "09d20062204dedd87c7a7a1163bcdf6d549b39a7",
      "parents": [
        "59cc4e8306879ee7066d51dad4cba140e58c7292"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Oct 26 14:34:30 2015 -0500"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Oct 29 12:07:27 2015 -0500"
      },
      "message": "ART: Enable more passes under try/catch\n\nLICM, BCE, LSE are all safe under try/catch. Inliner and DCE\nneed updating and will be enabled in follow-up CLs.\n\nChange-Id: I86db5f811257d5e765fea91666a2a2af0fb24ec3\n"
    },
    {
      "commit": "6f42850562048169374f3bbaec5bb31441ccc062",
      "tree": "6abe1ae23119a88bdb04298ced79407eb828cb94",
      "parents": [
        "594c0612519e96bcc1bd42ff4dcbfa2c53b09c5a",
        "36427494be5700bc8adba514b5c67dc3ac429176"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 29 15:48:50 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 29 15:48:50 2015 +0000"
      },
      "message": "Merge \"MIPS64: Add \"Compare and Swap\" intrinsic support.\""
    },
    {
      "commit": "594c0612519e96bcc1bd42ff4dcbfa2c53b09c5a",
      "tree": "d2c5cefb419cd0f9bdad2bba939235fbe2c5fbfd",
      "parents": [
        "5f2e628b280dfc5f8385e489d44cc0960fcea484",
        "55d02cf056f993aeafebd54e7b7c68c7a48507c9"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 29 03:57:27 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 29 03:57:27 2015 +0000"
      },
      "message": "Merge \"Revert \"Enable store elimination for singleton objects.\"\""
    },
    {
      "commit": "55d02cf056f993aeafebd54e7b7c68c7a48507c9",
      "tree": "bcdd800831f98a896b2b712932e769f46fbeefab",
      "parents": [
        "7f43a3d48fc29045875d50e10bbc5d6ffc25d61e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 29 02:59:50 2015 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 29 02:59:50 2015 +0000"
      },
      "message": "Revert \"Enable store elimination for singleton objects.\"\n\nThis reverts commit 7f43a3d48fc29045875d50e10bbc5d6ffc25d61e.\n\nFails booting.\n\nBug: 25357772\nChange-Id: Ied19536f3ce8d81e76885cb6baed4853e2ed6714\n"
    },
    {
      "commit": "f7b7f9984da66149e5fe05713845961d7b069a23",
      "tree": "61a0cbb99d5b4b280cce8a5acca3cfe0ceb73047",
      "parents": [
        "d2b29d69a2c301da31a9875c36a599f4bf817816",
        "22f058726d35dd8f40b3763649e61740b3d22535"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Oct 28 21:19:21 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 28 21:19:21 2015 +0000"
      },
      "message": "Merge \"Generate taken-test during trip-count analysis.\""
    },
    {
      "commit": "d2b29d69a2c301da31a9875c36a599f4bf817816",
      "tree": "51141f0dab2f32ae36a8b6d18c334d6b1a4955fc",
      "parents": [
        "b058de905d73f489c5d24b2833f7d5d4401f513c",
        "7f43a3d48fc29045875d50e10bbc5d6ffc25d61e"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Oct 28 21:01:33 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 28 21:01:33 2015 +0000"
      },
      "message": "Merge \"Enable store elimination for singleton objects.\""
    }
  ],
  "next": "22f058726d35dd8f40b3763649e61740b3d22535"
}
