)]}'
{
  "log": [
    {
      "commit": "579885a26d761f5ba9550f2a1cd7f0f598c2e1e3",
      "tree": "58d144157b7a24bbdf7f8892631a15abeefa2c9f",
      "parents": [
        "2eb5168bd9e43b80452eaee5be32c063e124886e"
      ],
      "author": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@arm.com",
        "time": "Sun Feb 22 20:51:33 2015 +0000"
      },
      "committer": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@arm.com",
        "time": "Mon Mar 02 14:16:56 2015 +0000"
      },
      "message": "Opt Compiler: ARM64: Enable explicit memory barriers over acquire/release\n\nImplement remaining explicit memory barrier code paths and temporarily\nenable the use of explicit memory barriers for testing.\n\nThis CL also enables the use of instruction set features in the ARM64\nbackend. kUseAcquireRelease has been replaced with PreferAcquireRelease(),\nwhich for now is statically set to false (prefer explicit memory barriers).\n\nPlease note that we still prefer acquire-release for the ARM64 Optimizing\nCompiler, but we would like to exercise the explicit memory barrier code\npath too.\n\nChange-Id: I84e047ecd43b6fbefc5b82cf532e3f5c59076458\nSigned-off-by: Serban Constantinescu \u003cserban.constantinescu@arm.com\u003e\n"
    },
    {
      "commit": "714e14fe61ebd1d1a97599b429cbbb0a54bbe6c4",
      "tree": "d77234e69542857861fe3017f196d940cf37abe7",
      "parents": [
        "2cfa9f2743f4a120070e83b1e34cbec22742780d"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Feb 25 11:57:05 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Feb 25 11:57:05 2015 +0000"
      },
      "message": "ART: Nano optimization of LiveInterval\n\nShuffling the order of conditions in the FirstIntersectionWith method\nof LiveInterval class can save a couple of comparisons. Even though\nthis is a tiny optimization, it can save some compilation time since\nthe method is heavily used during register allocation.\n\nChange-Id: I1817bd95db2d0eb96cc06fb2e9e06ac1cea784fe\n"
    },
    {
      "commit": "7c3952f423b8213083d60596a5f0bf4237ca3f7b",
      "tree": "40cbc6d30e02ab5edd8598d0f811b62f5c6045ba",
      "parents": [
        "354d58ba776866ea7b1c71f0d0848d5aaa013ae3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Feb 19 18:21:24 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 24 15:57:15 2015 -0800"
      },
      "message": "ART: Add -Wunused\n\nUntil the global CFLAGS are fixed, add Wunused. Fix declarations\nin the optimizing compiler.\n\nChange-Id: Ic4553f08e809dc54f3d82af57ac592622c98e000\n"
    },
    {
      "commit": "d8ef2e991a1a65f47a26a1eb8c6b34c92b775d6b",
      "tree": "d3aa88b42db86584724a2566da304aff70be5613",
      "parents": [
        "a48c573d2351177d878e36e003f0cdf4d7f9328f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 24 16:02:06 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 24 16:04:07 2015 +0000"
      },
      "message": "not-int can also take non-int (byte and short) instructions.\n\nSo we should use the result-type instead if the input type\nfor knowning what instruction to use.\n\nBug: 19454010\nChange-Id: I88782ad27ae8c8e1b7868afede5057d26f14685a\n"
    },
    {
      "commit": "995e7d495eb898b2812e14ad82d54597676e93fd",
      "tree": "902a7ec1f5e04bb48b7949ef30eaca63a0ff1f72",
      "parents": [
        "b679039d4fdc739959623c2cb1dcc2efa9a1ebe6",
        "817bce7658918b7a70c17b70aa5e6a46b1ae8b3d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 24 15:08:36 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 24 15:08:37 2015 +0000"
      },
      "message": "Merge \"Fix inlining in the presence of multiple returns.\""
    },
    {
      "commit": "817bce7658918b7a70c17b70aa5e6a46b1ae8b3d",
      "tree": "4dc41c5a319d948ff09666cec28f530282191f72",
      "parents": [
        "0b6daeb0f0014474b542cbba1f713eb0dbefb7f9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 24 13:35:38 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 24 14:44:46 2015 +0000"
      },
      "message": "Fix inlining in the presence of multiple returns.\n\nOne return could actually return a phi, so doing a phi check for\nknowing if the result phi was already created was bogus.\n\nBug: 19454010\n\nChange-Id: Iee703a2d1071ae263092354465eda368e5d6770d\n"
    },
    {
      "commit": "2d043b356d2e5c911892badf78aa56b843c5c3a6",
      "tree": "0d00c6118ecc251f7b4af0631308e6ef2104d6ad",
      "parents": [
        "0b6daeb0f0014474b542cbba1f713eb0dbefb7f9",
        "61d544bfb812d79f5c9ddad171198836cea719db"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Feb 24 12:39:53 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 24 12:39:54 2015 +0000"
      },
      "message": "Merge \"[optimizing] Add if-context sensitivity for null popagation.\""
    },
    {
      "commit": "61d544bfb812d79f5c9ddad171198836cea719db",
      "tree": "f1f43e31e9fdb6f141f1f028e43b6fc62083ed49",
      "parents": [
        "3173c8a11f7e23a89526e0ac3b21af5150966d74"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 23 16:46:57 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Feb 24 11:28:18 2015 +0000"
      },
      "message": "[optimizing] Add if-context sensitivity for null popagation.\n\nChange-Id: I3725b6c6a6cf44440c34a1bfb67e623531e665d6\n"
    },
    {
      "commit": "84fbead44b77c5f9f9458d88b42c8925a002dfd4",
      "tree": "0f1999aaa4b6596ef791b3c0d843e7b09d455ecf",
      "parents": [
        "38fee8ef4bc0f4dbe2c6d1f5585895f0c4d16984",
        "433be7f82e4c3433da718a739f9e738410727ca3"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Feb 23 22:27:51 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 23 22:27:52 2015 +0000"
      },
      "message": "Merge \"Optimizing: Remove redundant hash set copy in GVN\""
    },
    {
      "commit": "bad712e2576631529381280e52e36905dda5f048",
      "tree": "7f109a5c6265a6d093f190c05bd8f633e6eac26d",
      "parents": [
        "96ac49a260223dc00291116daa63d7489c52bb0f",
        "8c8bad89ff367712a6f5bbf3a5836cd398391067"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Feb 23 19:25:11 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 23 19:25:29 2015 +0000"
      },
      "message": "Merge \"More checker tests for BCE.\""
    },
    {
      "commit": "8c8bad89ff367712a6f5bbf3a5836cd398391067",
      "tree": "234b03a2d47b37040b84c42e162a0d52fc8e82e5",
      "parents": [
        "6e27f82193a8f54cd8ecdc8fb2c4c1adadafbaf4"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Feb 09 18:13:26 2015 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Feb 23 11:23:40 2015 -0800"
      },
      "message": "More checker tests for BCE.\n\nAlso make sure the check on MonotonicValueRange narrow is more strict.\nPlus some handling on array length division such as array.length/2.\nAdded checker tests for each case.\n\nChange-Id: I9f32fc5f6ca1f3da8edec576de66b44d85a50bc6\n"
    },
    {
      "commit": "433be7f82e4c3433da718a739f9e738410727ca3",
      "tree": "a48823f06721cefbc0ffc751acff3887eb625a55",
      "parents": [
        "304e47467579c909a6312ef3cca5cdad1433de9c"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Feb 23 18:02:02 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Feb 23 18:02:02 2015 +0000"
      },
      "message": "Optimizing: Remove redundant hash set copy in GVN\n\nDuring the GVN analysis, a basic block inherits the set of movable\ninstructions from its dominator. If the block is the only successor\nof the dominating block, there is no need for cloning of the parent\nset (a very expensive operation).\n\nChange-Id: I59e033b9e9e093984dc8e903e3a7be1cb3645cc2\n"
    },
    {
      "commit": "304e47467579c909a6312ef3cca5cdad1433de9c",
      "tree": "01deec033535600b9955dd18719aac3189b0de00",
      "parents": [
        "f9fe845f587e856acf4b3f1b19e4b7bab828b142",
        "3173c8a11f7e23a89526e0ac3b21af5150966d74"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 23 16:05:21 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 23 16:05:22 2015 +0000"
      },
      "message": "Merge \"[optimizing] Fix float addition on x86.\""
    },
    {
      "commit": "3173c8a11f7e23a89526e0ac3b21af5150966d74",
      "tree": "490fb32942acdcd19f02adfd075fdd32f0830a7e",
      "parents": [
        "735969139b162f9d45a3c0e47dc24a8aec63c736"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 23 15:53:39 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 23 15:55:11 2015 +0000"
      },
      "message": "[optimizing] Fix float addition on x86.\n\nChange-Id: Ic39aaae89b8e5184b98001ea67221a3564e9334a\n"
    },
    {
      "commit": "f9fe845f587e856acf4b3f1b19e4b7bab828b142",
      "tree": "57947e8b35e87568ae58536d2287e1b2882dcc5f",
      "parents": [
        "762374d084cd2d0a564a4bd410b91794af6853a4",
        "776b3184ee04092b11edc781cdb81e8ed60601e3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 23 15:17:07 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 23 15:17:07 2015 +0000"
      },
      "message": "Merge \"Each primitive kind now spills to different locations.\""
    },
    {
      "commit": "1abb4191a2e56d8dbf518efcaeefb266c1acdf2b",
      "tree": "e9cd0006df96b167c5da9f8f872713ff05b72803",
      "parents": [
        "735969139b162f9d45a3c0e47dc24a8aec63c736"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Feb 17 18:33:36 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Feb 23 15:12:24 2015 +0000"
      },
      "message": "Optimizing: Speed up HInstruction use removal\n\nSimilarly to a previous commit on HEnvironment use removal, this patch\nadds links from instructions to their respective inputs\u0027 use lists for\ncontant-time removal at the cost of doubling the size of input lists\n(from one pointer per entry to two). Manual testing shows that this\nsignificantly reduces the time required to transform HGraph to SSA\nform for some huge methods.\n\nChange-Id: I8dc3e4b0c48a50ac1481eb55c31093b99f4dc29f\n"
    },
    {
      "commit": "776b3184ee04092b11edc781cdb81e8ed60601e3",
      "tree": "98458c7087866b988468f5d356550ff14f2ee3af",
      "parents": [
        "1382e569b31f4fab61fcfca5aa93275a2a3cb757"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 23 14:14:57 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 23 14:56:07 2015 +0000"
      },
      "message": "Each primitive kind now spills to different locations.\n\nHaving different slots depending on the types greatly simplifies\nthe parallel move resolver. It also avoids doing FPU \u003c-\u003e Core\nregister swaps, and force backends to implement such a swap.\n\nChange-Id: Ide9f0452e7ccf9efb8adddbcc246d44b937b253c\n"
    },
    {
      "commit": "36fb59b15fbca20c22e9daf2943fcfeebc97848f",
      "tree": "1d254d5abd062512efaad2c03f97b592f3031808",
      "parents": [
        "1382e569b31f4fab61fcfca5aa93275a2a3cb757",
        "b1498f67b444c897fa8f1530777ef118e05aa631"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Feb 20 14:27:00 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 20 14:27:01 2015 +0000"
      },
      "message": "Merge \"Improve type propagation with if-contexts\""
    },
    {
      "commit": "b1498f67b444c897fa8f1530777ef118e05aa631",
      "tree": "7ff4709329b0ba752a6111103a76fcea896a3adb",
      "parents": [
        "acf735c13998ad2a175f5a17e7bfce220073279d"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 16 13:13:29 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Feb 20 14:26:08 2015 +0000"
      },
      "message": "Improve type propagation with if-contexts\n\nThis works by adding a new instruction (HBoundType) after each `if (a\ninstanceof ClassA) {}` to bound the type that `a` can take in the True-\ndominated blocks.\n\nChange-Id: Iae6a150b353486d4509b0d9b092164675732b90c\n"
    },
    {
      "commit": "1382e569b31f4fab61fcfca5aa93275a2a3cb757",
      "tree": "b093c19c98c0cf397cda84a1fcb30dbf4ed8fc0c",
      "parents": [
        "4fe292e2b6ba3980605373f183055a374084c65b",
        "9341546f1e5177a0328c67c5899ee81d19bd5d88"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Feb 20 11:21:28 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 20 11:21:30 2015 +0000"
      },
      "message": "Merge \"Opt compiler: ARM64: Optimise floating-point comparison with 0.0.\""
    },
    {
      "commit": "4fe292e2b6ba3980605373f183055a374084c65b",
      "tree": "cc689a549944d5302400aa155722e4e8715211b6",
      "parents": [
        "76f82fc75f245101828e2fdbbdec676af1717f0b",
        "acf735c13998ad2a175f5a17e7bfce220073279d"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Feb 20 10:40:50 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 20 10:40:51 2015 +0000"
      },
      "message": "Merge \"Reference type propagation\""
    },
    {
      "commit": "76f82fc75f245101828e2fdbbdec676af1717f0b",
      "tree": "300049142f90d978526d108ec1c08d28f014110a",
      "parents": [
        "e90ccca801a3b7bda094ee0cc145fc62afd8d718",
        "442b46a087c389a91a0b51547ac9205058432364"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Feb 20 10:27:12 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 20 10:27:13 2015 +0000"
      },
      "message": "Merge \"Display optimizing compiler\u0027s CodeInfo objects in oatdump.\""
    },
    {
      "commit": "b666f4805c8ae707ea6fd7f6c7f375e0b000dba8",
      "tree": "a61439a9bcb555dc575286f3e0bb5e50ce185982",
      "parents": [
        "39109a06015c91188232e59fa9e60e0915d24cd7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Feb 18 14:33:14 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Feb 19 09:59:50 2015 -0800"
      },
      "message": "Move arenas into runtime\n\nMoved arena pool into the runtime.\n\nMotivation:\nAllow GC to use arena allocators, recycle arena pool for linear alloc.\n\nBug: 19264997\nChange-Id: I8ddbb6d55ee923a980b28fb656c758c5d7697c2f\n"
    },
    {
      "commit": "acf735c13998ad2a175f5a17e7bfce220073279d",
      "tree": "94969f2387f0e6dad8c7e5712aa8187c9de2be56",
      "parents": [
        "39109a06015c91188232e59fa9e60e0915d24cd7"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Feb 12 15:25:22 2015 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Feb 19 17:07:52 2015 +0000"
      },
      "message": "Reference type propagation\n\n- propagate reference types between instructions\n- remove checked casts when possible\n- add StackHandleScopeCollection to manage an arbitrary number of stack\nhandles (see comments)\n\nChange-Id: I31200067c5e7375a5ea8e2f873c4374ebdb5ee60\n"
    },
    {
      "commit": "d6138ef1ea13d07ae555542f8898b30d89e9ac9a",
      "tree": "a8ffd5fd966512fd280bc1b3214f4e57a9e1805f",
      "parents": [
        "92095533ac28879ddd8b44b559d700527ca12b8a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 18 14:48:53 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 19 14:01:18 2015 +0000"
      },
      "message": "Ensure the graph is correctly typed.\n\nWe used to be forgiving because of HIntConstant(0) also being\nused for null. We now create a special HNullConstant for such uses.\n\nAlso, we need to run the dead phi elimination twice during ssa\nbuilding to ensure the correctness.\n\nChange-Id: If479efa3680d3358800aebb1cca692fa2d94f6e5\n"
    },
    {
      "commit": "442b46a087c389a91a0b51547ac9205058432364",
      "tree": "4efa4b4da919dd7b9aa18996a5316febcf1c8989",
      "parents": [
        "aa9b7c48069699e2aabedc6c0f62cb131fee0c73"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Feb 18 16:54:21 2015 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Feb 19 12:13:09 2015 +0000"
      },
      "message": "Display optimizing compiler\u0027s CodeInfo objects in oatdump.\n\nA few elements are not displayed yet (stack mask, inline info) though.\n\nChange-Id: I5e51a801c580169abc5d1ef43ad581aadc110754\n"
    },
    {
      "commit": "aa9b7c48069699e2aabedc6c0f62cb131fee0c73",
      "tree": "dafc6b514825490e65ecee4385f08f066add8c95",
      "parents": [
        "cf3fb94a90d74361b13e7bae5aa6e0e4ae58479d"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Feb 17 15:40:09 2015 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Feb 19 12:13:09 2015 +0000"
      },
      "message": "Have the opt. compiler set the size of \"empty\" frames to zero.\n\nThis is to mimic Quick\u0027s behavior and honor stack frame\nalignment constraints after changes introduced by Change-Id\nI0fdb31e8c631e99091b818874a558c9aa04b1628.\n\nThis issue use to make oatdump crash on oat files produced by\nthe optimized compiler (e.g.\nout/host/linux-x86/framework/x86_64/core-optimizing.oat).\n\nChange-Id: I8ba52601edb0a0993eaf8923eba55aafdce5043e\n"
    },
    {
      "commit": "35757740da77220dc51d5cff3bc3a779f2eea9ef",
      "tree": "51ef8c6fda805fb3df6fee1d9ec040482660a253",
      "parents": [
        "de7402182c1b020dec43aa38d62fa369a4ef52b8",
        "dc23d8318db08cb42e20f1d16dbc416798951a8b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 18 09:54:39 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 18 09:54:40 2015 +0000"
      },
      "message": "Merge \"Avoid generating jmp +0.\""
    },
    {
      "commit": "dc23d8318db08cb42e20f1d16dbc416798951a8b",
      "tree": "e7a883bb3263ccb971898df98bc58700604c1d1d",
      "parents": [
        "e5f5953e744060fde3b4489cea4d934d529e3e32"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 16 11:15:43 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 18 09:53:32 2015 +0000"
      },
      "message": "Avoid generating jmp +0.\n\nWhen a block branches to a non-following block, but blocks\nin-between do branch to it, we can avoid doing the branch.\n\nChange-Id: I9b343f662a4efc718cd4b58168f93162a24e1219\n"
    },
    {
      "commit": "9341546f1e5177a0328c67c5899ee81d19bd5d88",
      "tree": "80ffb6a99abae69d9a6b1b4ef17ee6d4f68c02d6",
      "parents": [
        "6e27f82193a8f54cd8ecdc8fb2c4c1adadafbaf4"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@arm.com",
        "time": "Tue Feb 17 15:08:20 2015 +0000"
      },
      "committer": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@arm.com",
        "time": "Tue Feb 17 15:08:20 2015 +0000"
      },
      "message": "Opt compiler: ARM64: Optimise floating-point comparison with 0.0.\n\nChange-Id: I297ed92445f20fae2ebf301e90e97772072da364\n"
    },
    {
      "commit": "a3ec39425e09f92421775d1485660eb633f97aec",
      "tree": "6b260d01cf8aa3bb0eaa4e45792302902f54952c",
      "parents": [
        "e5f5953e744060fde3b4489cea4d934d529e3e32"
      ],
      "author": {
        "name": "Zheng Xu",
        "email": "zheng.xu@arm.com",
        "time": "Sun Feb 15 18:39:46 2015 +0800"
      },
      "committer": {
        "name": "Zheng Xu",
        "email": "zheng.xu@arm.com",
        "time": "Mon Feb 16 19:20:16 2015 +0800"
      },
      "message": "Opt compiler: ARM64: Fix blocking fp registers.\n\nVIXL reserved float point registers has not been blocked correctly.\n\nChange-Id: Ie7131d86bbaff48c431e3e26abd2fa26389ac687\n"
    },
    {
      "commit": "58e42c6e5571b1d3940561399faf163b9c219b57",
      "tree": "aa31af89128406371bb5fc52ad93903823f6738c",
      "parents": [
        "94246d41c941bb3b04896a5e5beb4458fe528acf",
        "ffe8a577a4c644a2c5387f1e8efe92fb0efac43f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 13 15:46:21 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 13 15:46:22 2015 +0000"
      },
      "message": "Merge \"Optimize double/float immediate loading on arm.\""
    },
    {
      "commit": "ffe8a577a4c644a2c5387f1e8efe92fb0efac43f",
      "tree": "f750bf49bd7c618ddf124cbfac0cc9e91be34cf9",
      "parents": [
        "aa874e0bbfb21aec0661b93cb1c2ce065bc20302"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 11 01:10:39 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 13 15:36:28 2015 +0000"
      },
      "message": "Optimize double/float immediate loading on arm.\n\nAlso reserve a D register for temp.\n\nChange-Id: I6584d9005b0f5685c3afcd8e9153b4c87b56aa8e\n"
    },
    {
      "commit": "da02afe615191a19eae9a039786c4c4fc20dbfff",
      "tree": "6888219ad5cb67269d0399ca3d5070e808d5b7da",
      "parents": [
        "aa874e0bbfb21aec0661b93cb1c2ce065bc20302"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 11 02:29:42 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 13 05:42:28 2015 +0000"
      },
      "message": "Support hints for register pairs.\n\nChange-Id: Ia49dc5bf3e9a2bd481425bfe7fbeea9feb66c8e6\n"
    },
    {
      "commit": "1d6957f0b9d560c75a1901a83a45b4f3510a1015",
      "tree": "36a174d4b12ef46744c5f3e80f8afeb46809a2e6",
      "parents": [
        "0525d6aa15cb9db70e26c01f7e7a695bae377268",
        "f7a0c4e421b5edaad5b7a15bfff687da28d0b287"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 10 19:33:22 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 10 19:33:23 2015 +0000"
      },
      "message": "Merge \"Improve ParallelMoveResolver to work with pairs.\""
    },
    {
      "commit": "f7a0c4e421b5edaad5b7a15bfff687da28d0b287",
      "tree": "5423a2357661b80d75cb2e3a2b5395a3fe3cd9b5",
      "parents": [
        "0f2433bfcb02a662fe739e8e2b068abc2958e4c1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 10 17:08:47 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 10 19:12:59 2015 +0000"
      },
      "message": "Improve ParallelMoveResolver to work with pairs.\n\nChange-Id: Ie2a540ffdb78f7f15d69c16a08ca2d3e794f65b9\n"
    },
    {
      "commit": "391b87ee8d939b60385fde9c48fda8a334ab9ae3",
      "tree": "c3880480f452cc85cad1b3cc4443ca83f67a248a",
      "parents": [
        "0aac867161c4207aace8ae0d0b2abe02bfb8c3d9",
        "2bcf9bf784a0021630d8fe63d7230d46d6891780"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Feb 09 21:09:41 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 09 21:09:42 2015 +0000"
      },
      "message": "Merge \"ART: Arm intrinsics for Optimizing compiler\""
    },
    {
      "commit": "2bcf9bf784a0021630d8fe63d7230d46d6891780",
      "tree": "167d773b796c5e63d84c205a8ae9a2fe3585d06a",
      "parents": [
        "61fdf5bca503c30ba1e4dcaf333a8d3299f3bde6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 29 09:56:07 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Feb 09 13:08:39 2015 -0800"
      },
      "message": "ART: Arm intrinsics for Optimizing compiler\n\nAdd arm32 intrinsics to the optimizing compiler.\n\nChange-Id: If4aeedbf560862074d8ee08ca4484b666d6b9bf0\n"
    },
    {
      "commit": "0304e182adee81be32c744fd3c0d28add29974ff",
      "tree": "1fb1a8730d94222e79e8525b5f887c6816d6833d",
      "parents": [
        "2a3611feeb12bd73ccdbb4692f9ca3705f925d56"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Jan 30 16:41:29 2015 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Feb 09 10:53:16 2015 -0800"
      },
      "message": "Improve bce so that more bounds checks can be eliminated.\n\nFor pattern like \"int[] array \u003d new int[size+1]\", we record this range\nfor size:\n[-1, array.length-1]\nThis can eliminate more bounds checks.\n\nAlso simplify overflow/underflow handling and make it more solid.\n\nEnhance instruction simplifier such that if array is a result of\nNewArray with a constant size, replace array.length with that constant.\n\nPlan to move all bce gtests to checker in another change.\n\nChange-Id: Ibe7cc7940b68fb6465dc3e0ff3ebdb0fd6487aa9\n"
    },
    {
      "commit": "62b5f0dd5f201c71da6b50936f4f720acbad091f",
      "tree": "72c3d1c4a8c6111cbc6e5f7ba19142c66e7c0627",
      "parents": [
        "c282c119bbbe55562407debcf24e0540bf71de04",
        "c0572a451944f78397619dec34a38c36c11e9d2a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sun Feb 08 11:58:40 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Feb 08 11:58:42 2015 +0000"
      },
      "message": "Merge \"Optimize leaf methods.\""
    },
    {
      "commit": "748f140d5f0631780dbeecb033c1416faf78930d",
      "tree": "aa46aea42df4e02614f2565965cd32ef8a9dfafd",
      "parents": [
        "0f2433bfcb02a662fe739e8e2b068abc2958e4c1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 27 08:17:54 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 06 17:40:48 2015 +0000"
      },
      "message": "x64 goodness.\n\n- Use test instead of cmp when comparing against 0.\n- Make it possible to use lea for add.\n- Use xor instead of mov when loading 0.\n\nChange-Id: Ide95c4e2d9b773e952412892f2df6869600c324e\n"
    },
    {
      "commit": "c0572a451944f78397619dec34a38c36c11e9d2a",
      "tree": "2cc6f3c6f5ad45b4b85fb62627e797fe7e7734e1",
      "parents": [
        "0f2433bfcb02a662fe739e8e2b068abc2958e4c1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 06 14:35:25 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 06 17:37:57 2015 +0000"
      },
      "message": "Optimize leaf methods.\n\nAvoid suspend checks and stack changes when not needed.\n\nChange-Id: I0fdb31e8c631e99091b818874a558c9aa04b1628\n"
    },
    {
      "commit": "3d087decd1886b818adcccd4f16802e5e54dd03e",
      "tree": "2be4d4a62d972e33150b517ff71b3023a095c8bd",
      "parents": [
        "ca9a26859d2ca8e106316dd5f16b60a325f0533c"
      ],
      "author": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@arm.com",
        "time": "Wed Jan 28 11:57:05 2015 +0000"
      },
      "committer": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@arm.com",
        "time": "Thu Feb 05 20:12:31 2015 +0000"
      },
      "message": "Opt Compiler: ARM64: Enable Callee-saved register, as defined by AAPCS64.\n\nFor now we block kQuickSuspendRegister - x19, since Quick and the runtime\nuse this as a suspend counter register.\n\nChange-Id: I090d386670e81e7924e4aa9a3864ef30d0580a30\nSigned-off-by: Serban Constantinescu \u003cserban.constantinescu@arm.com\u003e\n"
    },
    {
      "commit": "809658ec5c5515ae9eb87d32012ec5e088612949",
      "tree": "14979b160f2bc5439a462daeee93e91bfce86185",
      "parents": [
        "24898d447640c3a45e6fc9f404b049eddc5a2709"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Feb 05 11:34:02 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Feb 05 18:07:42 2015 +0000"
      },
      "message": "ART: Fix crash when timing method failing to build\n\nPassInfoPrinter previously required that AfterPass is always called\nbefore the timing results are printed, which was not the case when\na method compilation failed either in Builder or SsaBuilder.\n\nChange-Id: I3686bba6869402a62eec884f59fd872d5674e5a5\n"
    },
    {
      "commit": "be31ff94d66a0037c445eb57dc82f2a51bb46d9e",
      "tree": "2eb41a8786b2f0d1d42bc9bbecfe831b3b9bc17c",
      "parents": [
        "a6919983bfc7e2c1eb69a4408f940146a2b78d59"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 04 14:52:20 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 04 15:08:37 2015 +0000"
      },
      "message": "Fix a bug in the inliner.\n\nCode did not work in the presence of multiple returns.\nSpotted by Mark P. Mendell.\n\nChange-Id: I237050a0d79c0cfaa479e9b886f7450879e84713\n"
    },
    {
      "commit": "bb7a28a9275239f4e6d5f7863d8256ae036a9d5e",
      "tree": "f785aabc67616bb9882a1039ca8b998cb1cf7cf7",
      "parents": [
        "c2024144da54504d819869dc928ce4ac975634d4"
      ],
      "author": {
        "name": "Zheng Xu",
        "email": "zheng.xu@arm.com",
        "time": "Fri Jan 09 14:40:47 2015 +0800"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 04 14:01:17 2015 +0000"
      },
      "message": "ART: Dump environment to cfg file.\n\nEnvironment shows additional dependency and instructions with environment\nshould usually be a safepoint as well.\n\nChange-Id: I04606624e6ea212ab1dc7502cdb87b5d5d0e3ac2\n"
    },
    {
      "commit": "c2024144da54504d819869dc928ce4ac975634d4",
      "tree": "13948cf9a32333337655f1ea4c3a2886bcea25cb",
      "parents": [
        "53150eb4fb5c3bbcb0138b8dccb481726299f6ab",
        "5e8b137d28c840b128e2488f954cccee3e86db14"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Feb 04 13:51:17 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 04 13:51:18 2015 +0000"
      },
      "message": "Merge \"Create HGraph outside Builder, print timings\""
    },
    {
      "commit": "5e8b137d28c840b128e2488f954cccee3e86db14",
      "tree": "c56e4c709ce07d605ab4b754e89f7739264feb73",
      "parents": [
        "f9af19413333c271192c3b11425f865bd8054c0c"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Jan 23 14:39:08 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Feb 04 13:47:49 2015 +0000"
      },
      "message": "Create HGraph outside Builder, print timings\n\nThis patch refactors the way HGraph objects are created, moving the\ninstantiation out of the Builder class and creating the CodeGenerator\nearlier. The patch uses this to build a single interface for printing\ntimings info and dumping the CFG.\n\nChange-Id: I2eb63eabf28e2d0f5cdc7affaa690c3a4b1bdd21\n"
    },
    {
      "commit": "82f344970ad65538d341706b02eeaa94508474b8",
      "tree": "7c5b70316d476f0101263c22debc73b60f4a2f5e",
      "parents": [
        "f4b24f7ea507ff41db39154a1e6a681a582e224a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 04 10:44:23 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 04 10:50:10 2015 +0000"
      },
      "message": "Fix a bug in combination of intrinsics and kNoOutputOverlap.\n\nIn case we need to go in the slow path for an intrinsic call,\nwe can\u0027t have the output be the same as the input: the current\nliveness analysis considers the input to be live at the point of the call.\n\nChange-Id: I5cbdc7f50dd06b4fefcbd3c213274fa645bd3fa0\n"
    },
    {
      "commit": "f4b24f7ea507ff41db39154a1e6a681a582e224a",
      "tree": "ed70e8d35e91dd93d9dd5130ab88d6453dd4b6f3",
      "parents": [
        "6bc17805d2df2678de186e3b4c3e2f959a48555f",
        "3e6a3bf797e49b7f449256455c7e522e888687d8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 04 09:45:14 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 04 09:45:14 2015 +0000"
      },
      "message": "Merge \"ART: Change x86 long param ABI (Quick/JNI/Opt)\""
    },
    {
      "commit": "18c219b21c6692036bc5f1d52f26c66378325bee",
      "tree": "4558f65f0d08b13212763f84e8f28e7851f15d8a",
      "parents": [
        "b73e4447736996f7cc8b193d7e3f5c38d5739d22"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 04 09:38:49 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 04 09:38:49 2015 +0000"
      },
      "message": "Fix test after register allocator changes.\n\nChange-Id: I22b8faf7926d33ab19033deaba77001d164abd2a\n"
    },
    {
      "commit": "829280cc90b7a84db42864589b4bafb4c94a79d9",
      "tree": "8c6f0235011e046bc711ebf795678f6d1a2fedda",
      "parents": [
        "69d69ea40fe64ff2e70daffc365a2fffe5964fcc"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 28 10:20:37 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 04 09:11:40 2015 +0000"
      },
      "message": "Finally implement Location::kNoOutputOverlap.\n\nThe [i, i + 1) interval scheme we chose for representing\nlifetime positions is not optimal for doing this optimization.\nIt however doesn\u0027t prevent recognizing a non-split interval\nduring the TryAllocateFreeReg phase, and try to re-use\nits inputs\u0027 registers.\n\nChange-Id: I80a2823b0048d3310becfc5f5fb7b1230dfd8201\n"
    },
    {
      "commit": "276d9daaedfbff716339f94d55e6eff98b7434c6",
      "tree": "fdef0e2d95396aedae484dc5163689f282a8dd12",
      "parents": [
        "bd17c3b46b035861ced434d6ed4d4fe183736e65"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 02 18:24:11 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 03 18:11:46 2015 +0000"
      },
      "message": "Inline methods with multiple blocks.\n\nChange-Id: I3431af60e97fae230e0b6e98bcf0acc0ee9abf8c\n"
    },
    {
      "commit": "4c204bafbc8d596894f8cb8ec696f5be1c6f12d8",
      "tree": "3608d188815a8a80e86f98611edcfe3bbaad8b17",
      "parents": [
        "08029544d72bd9bec162956978afcb59204ea97b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 03 15:12:35 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 03 17:13:17 2015 +0000"
      },
      "message": "Use a different block order when not compiling baseline.\n\nUse the linearized order instead, as it puts blocks logically\nnext to each other in a better way. Also, it does not contain\ndead blocks.\n\nChange-Id: Ie65b56041a093c8155e6c1e06351cb36a4053505\n"
    },
    {
      "commit": "ef87c5db0443fc4daa960042313a35352743430e",
      "tree": "c77f1427f42b93f47ab650f936ea7452189cffa9",
      "parents": [
        "515d828fd51f55bc71a6bcd268a7311f614d28b0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 30 12:41:14 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 03 11:18:29 2015 +0000"
      },
      "message": "Allow nested inlining.\n\nAlso run optimizations before iterating over\nthe instructions to get rid of, e.g., null checks.\n\nChange-Id: I6e52e61ce4d0ccb63d687afea09bb4722453bb6a\n"
    },
    {
      "commit": "2fd6aa5cb76f0c71cbdcd1189c76e68bf84e8308",
      "tree": "79bc01ffc77cec97eb4b785b8bde9aeb59ab24c7",
      "parents": [
        "852eaffe8e478186e134d88a02843a469118ef8c"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Feb 02 18:58:27 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Feb 02 19:02:47 2015 +0000"
      },
      "message": "Fix broken gtests after SuspendCheck optimization\n\nFixes hardcoded graph dumps in pretty printer tests and an assumption\nthat non-zero branch offset in dex implies presence of HInstructions.\n\nChange-Id: Iee273c06b7b36410b4621107bef2f3592ece2f5b\n"
    },
    {
      "commit": "852eaffe8e478186e134d88a02843a469118ef8c",
      "tree": "fa00068edc1391698af4d771430578fccd9dcd77",
      "parents": [
        "e5deafe9cdd81238c3916b04301ea884c93f46b5"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Feb 02 15:23:05 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Feb 02 17:58:02 2015 +0000"
      },
      "message": "No SuspendChecks when branching to return block\n\nThe return basic block is usually placed at the beginning of the DEX\nfile, making the branches to it back edges where the Optimizing\u0027s\ngraph builder places SuspendCheck instructions, only to be removed\nlater by the instruction_simplifier pass. Since huge auto-generated\nmethods tend to contain hundreds/thousands of these, this patch\nrecognizes the pattern and prevents builder from generating the\nredundant check in the first place.\n\nChange-Id: I065a3c2f71964b8fc2e53dc20730ba42938b78a1\n"
    },
    {
      "commit": "cb1b00aedd94785e7599f18065a0b97b314e64f6",
      "tree": "fdde101b239c66325243bcc60d3d94f07ff56492",
      "parents": [
        "9544368685b4aa65e746332e602491a3e8e5b247"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 28 14:50:01 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 30 17:43:16 2015 +0000"
      },
      "message": "Use the non access check entrypoint when possible.\n\nChange-Id: I0b53d63141395e26816d5d2ce3fa6a297bb39b54\n"
    },
    {
      "commit": "3e6a3bf797e49b7f449256455c7e522e888687d8",
      "tree": "1e574169ff7743729cdfb1b9cf3b217f198a330d",
      "parents": [
        "9544368685b4aa65e746332e602491a3e8e5b247"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Mon Jan 19 14:09:22 2015 -0500"
      },
      "committer": {
        "name": "Mark P Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Fri Jan 30 13:17:23 2015 +0000"
      },
      "message": "ART: Change x86 long param ABI (Quick/JNI/Opt)\n\nEnsure that we don\u0027t pass a long parameter across the last register\nand the stack: skip the register and allocate it only on the stack.\nThis was requested to simplify the optimizing compiler code\ngeneration for x86.\n\nOptimizing (Baseline) compiler support for x86 longs:\n- Remove QuickParameter from Location, as there are no longer any uses\n  of it.\n\nBump oat.h version because we changed an ABI again.\n\nI changed IsParamALong() to return false for argument 0 (this argument).\nI am not sure why it differed from all other tests.\n\nI have not tested on ARM.  I followed Nicolas\u0027s suggestions for setting\nthe value of kSplitPairAcrossRegisterAndStack for different\narchitectures.\n\nChange-Id: I2f16b33c1dac58dd4f4f503e9c2309d845f5fb7a\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "82091dad38f3e5bfaf3b6984c9ab73069fb68310",
      "tree": "f66bd397f64a13ee102e45e0b6267c5d55e77505",
      "parents": [
        "28acb6feb50951645c37c077bd3897ea760ca322"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 26 10:02:45 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 30 09:34:25 2015 +0000"
      },
      "message": "Implement LICM in optimizing compiler.\n\nChange-Id: I9c8afb0a58ef45e568576015473cbfd5f011c242\n"
    },
    {
      "commit": "69b56b2f747992028ea838377422327a2bec49d6",
      "tree": "d5eea7c618cfc3fefc275eb58747875cef82797b",
      "parents": [
        "193f785e471b38009f7406a030d741ae415c8bb0",
        "542361f6e9ff05e3ca1f56c94c88bc3efeddd9c4"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 29 18:52:34 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 29 18:52:35 2015 +0000"
      },
      "message": "Merge \"Introduce primitive type helpers.\""
    },
    {
      "commit": "542361f6e9ff05e3ca1f56c94c88bc3efeddd9c4",
      "tree": "f9c914c1ca168d1c93148b95bec7f3e8b0659542",
      "parents": [
        "c9ff6b112d25657128f9a7251e253b1382b0f1b9"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@arm.com",
        "time": "Thu Jan 29 16:57:31 2015 +0000"
      },
      "committer": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@arm.com",
        "time": "Thu Jan 29 16:57:31 2015 +0000"
      },
      "message": "Introduce primitive type helpers.\n\nChange-Id: I81e909a185787f109c0afafa27b4335050a0dcdf\n"
    },
    {
      "commit": "193f785e471b38009f7406a030d741ae415c8bb0",
      "tree": "be891d7ae765cce10552faa20b57e5546ca3e8d8",
      "parents": [
        "dff2d8422cee19d35d7eac467ac0fc2315c1c899",
        "10e244f9e7f6d96a95c910a2bedef5bd3810c637"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 29 12:02:12 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 29 12:02:13 2015 +0000"
      },
      "message": "Merge \"optimizing: NullCheck elimination\""
    },
    {
      "commit": "10e244f9e7f6d96a95c910a2bedef5bd3810c637",
      "tree": "bc2b90ce716129115c05f79e21c58fe13b01fd20",
      "parents": [
        "ab7f56d9b9838811cb01773e45999e2cda4aa03a"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Jan 26 18:54:32 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 29 12:01:26 2015 +0000"
      },
      "message": "optimizing: NullCheck elimination\n\nHow it works:\n- run a type analysis to propagate null information on instructions\n- during the last instruction simplifier remove null checks for which\nthe input is known to be not null\n\nThe current type analysis is actually a nullability analysis but it will\nbe reused in follow up CLs to propagate type information: so it keeps\nthe more convenient name.\n\nChange-Id: I54bb1d32ab24604b4d677d1ecdaf8d60a5ff5ce9\n"
    },
    {
      "commit": "0a299b9305d42074a47a7922aff855c840a76cfd",
      "tree": "3e31c006b7906447a3e5576f9d15b588b4c5a97d",
      "parents": [
        "c9ff6b112d25657128f9a7251e253b1382b0f1b9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 29 11:39:44 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 29 11:39:44 2015 +0000"
      },
      "message": "Fix bad rebase.\n\nChange-Id: Ia66c5ec4a612908b749b058d85f374d1f1b72a2a\n"
    },
    {
      "commit": "c9ff6b112d25657128f9a7251e253b1382b0f1b9",
      "tree": "dd43d2c53a7d4470c63e21e02b46d07b2ed046c5",
      "parents": [
        "0d5917fedc6f62715759c24f14810733c409ebff",
        "7c8d009552545e6f1fd6036721e4e42e3fd14697"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 29 11:05:48 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 29 11:05:49 2015 +0000"
      },
      "message": "Merge \"[optimizing compiler] Support x86 hard float ABI\""
    },
    {
      "commit": "1cf95287364948689f6a1a320567acd7728e94a3",
      "tree": "70a8b60c768894d635cf63b0a480baa5073d2bed",
      "parents": [
        "4a50662eeaa0b1a26be66e7584fb765151dabc59"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Dec 12 19:22:03 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 29 10:52:14 2015 +0000"
      },
      "message": "Small optimization for recursive calls: avoid dex cache.\n\nChange-Id: I044757a2f06e535cdc1480c4fc8182b89635baf6\n"
    },
    {
      "commit": "4a50662eeaa0b1a26be66e7584fb765151dabc59",
      "tree": "0f298a17285fd845303472e2c27ccd69f586feac",
      "parents": [
        "f08c6506858ff06d61c8f7ca2741409cd62142f5",
        "5bdab12d8b48ca4c395d9d2c506ebff0df01b734"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jan 29 01:17:10 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 29 01:17:11 2015 +0000"
      },
      "message": "Merge \"Clean up pass driver\""
    },
    {
      "commit": "5bdab12d8b48ca4c395d9d2c506ebff0df01b734",
      "tree": "eef73cc00cd45cc16ddcd856f9bc84d0c8edb4e1",
      "parents": [
        "f913ff3f7e37c1b2c7f2fb96120c2b5b25d962a7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jan 26 18:30:19 2015 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jan 28 17:16:11 2015 -0800"
      },
      "message": "Clean up pass driver\n\nAdded pass manager to hold the state which used to be in global\nvariables.\n\nStatic variables caused issues with Runtime.exit since they are\ndestroyed by the global destructors while threads are still\nexecuting.\n\nBug: 17950037\nChange-Id: Ie0e4546dc9e48909c8df996a5c135be682d50044\n"
    },
    {
      "commit": "f08c6506858ff06d61c8f7ca2741409cd62142f5",
      "tree": "475013022e51ecd1ba6288533dce9147005f0e5a",
      "parents": [
        "f913ff3f7e37c1b2c7f2fb96120c2b5b25d962a7",
        "878d58cbaf6b17a9e3dcab790754527f3ebc69e5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 28 23:36:25 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 28 23:36:25 2015 +0000"
      },
      "message": "Merge \"ART: Arm64 optimizing compiler intrinsics\""
    },
    {
      "commit": "878d58cbaf6b17a9e3dcab790754527f3ebc69e5",
      "tree": "1c1af4ef938ad06a783da51e2c6276d6b0628da6",
      "parents": [
        "b80c3154d3b6359d8ad4ce50d3a6a68224400cdd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jan 15 23:24:00 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 28 15:32:40 2015 -0800"
      },
      "message": "ART: Arm64 optimizing compiler intrinsics\n\nImplement most intrinsics for the optimizing compiler for Arm64.\n\nChange-Id: Idb459be09f0524cb9aeab7a5c7fccb1c6b65a707\n"
    },
    {
      "commit": "7c8d009552545e6f1fd6036721e4e42e3fd14697",
      "tree": "f7290aba6a1dcb008af1388f582d422fe1c07ff6",
      "parents": [
        "763abfd0d803f8169e97d3da944043c2464aac0a"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Mon Jan 26 11:21:33 2015 -0500"
      },
      "committer": {
        "name": "Mark P Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Wed Jan 28 00:48:50 2015 +0000"
      },
      "message": "[optimizing compiler] Support x86 hard float ABI\n\nAdd support for the new ABI passing FP parameters in XMM0-XMM3.  This\nallows us to optimize for x86 methods that don\u0027t use \u0027long\u0027.\n\nChange-Id: Ic79a24767173451e7d7095ccc2a00b307593a868\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "763abfd0d803f8169e97d3da944043c2464aac0a",
      "tree": "4cda6d8093e861cfb2b0e3d5466982e35261c803",
      "parents": [
        "0530082b218430ca39a78814710574628b4bb26e",
        "9c462086269324350516b3394d478f1d71a4b5d1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jan 28 00:18:07 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 28 00:18:07 2015 +0000"
      },
      "message": "Merge \"ART: Even more Quick cleanup\""
    },
    {
      "commit": "9c462086269324350516b3394d478f1d71a4b5d1",
      "tree": "4b2a29b0cda0ba50dfb09a6bcc83a4cfecf3769e",
      "parents": [
        "04a77807a657e86495e7ececf7dc530fa5003c4c"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 27 14:31:40 2015 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jan 27 15:23:06 2015 -0800"
      },
      "message": "ART: Even more Quick cleanup\n\nRemove Backend.\n\nChange-Id: I247cc65ccda6a362ba1a8f5e73e7f12ecd980a87\n"
    },
    {
      "commit": "966c3ae95d3c699ee9fbdbccc1acdaaf02325faf",
      "tree": "7a9bd5dbfb8b02f8bb7e3387876be0c1f7844063",
      "parents": [
        "85ed6bdd890c08f50c205d7f0604b5a35603b13e"
      ],
      "author": {
        "name": "Mark P Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Tue Jan 27 15:45:27 2015 +0000"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Tue Jan 27 17:00:21 2015 -0500"
      },
      "message": "Revert \"Revert \"ART: Implement X86 hard float (Quick/JNI/Baseline)\"\"\n\nThis reverts commit 949c91fb91f40a4a80b2b492913cf8541008975e.\n\nThis time, don\u0027t clobber EBX before saving it.\n\nRedo some of the macros to make register usage explicit.\n\nChange-Id: I8db8662877cd006816e16a28f42444ab7c36bfef\n"
    },
    {
      "commit": "ea55b934cff1280318f5514039549799227cfa3d",
      "tree": "835aec3eab728ecc8afe1d5a96858aca272e2250",
      "parents": [
        "8c776cd9186e68c23b0983415ae14798e5ea5ab3"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Jan 27 17:12:29 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Jan 27 17:12:29 2015 +0000"
      },
      "message": "ART: Further refactor use lists\n\nChange-Id: I9e3219575a508ca5141d851bfcaf848302480c32\n"
    },
    {
      "commit": "949c91fb91f40a4a80b2b492913cf8541008975e",
      "tree": "45c840d1d6fd0ab71d96cb6c61931f468b3a0adf",
      "parents": [
        "aeb47bb12420e65b4b5f61164e6396ea93734a0a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jan 27 10:48:44 2015 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jan 27 13:41:29 2015 +0000"
      },
      "message": "Revert \"ART: Implement X86 hard float (Quick/JNI/Baseline)\"\n\nAnd the 3 Mac build fixes. Fix conflicts in context_x86.* .\n\nThis reverts commits\n  3d2c8e74c27efee58e24ec31441124f3f21384b9 ,\n  34eda1dd66b92a361797c63d57fa19e83c08a1b4 ,\n  f601d1954348b71186fa160a0ae6a1f4f1c5aee6 ,\n  bc503348a1da573488503cc2819c9e30807bea31 .\n\nBug: 19150481\nChange-Id: I6650ee30a7d261159380fe2119e14379e4dc9970\n"
    },
    {
      "commit": "ac99db2751f1ac432a84739e7a4e011579296caf",
      "tree": "6d0e6db1bd08c4fa0c15c70628268251d81462e2",
      "parents": [
        "a5f982d7e08ed984e64a8418730ce406b08e2c41",
        "ed59619b370ef23ffbb25d1d01f615e60a9262b6"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Jan 26 16:33:48 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 26 16:33:48 2015 +0000"
      },
      "message": "Merge \"Optimizing: Speed up HEnvironment use removal\""
    },
    {
      "commit": "ed59619b370ef23ffbb25d1d01f615e60a9262b6",
      "tree": "6c93bb6ceff95f7aaf232825e050eecc05c7282d",
      "parents": [
        "f90eec005997f98c1a9f874fbbf68414e5f9c766"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Jan 23 10:39:45 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Jan 26 16:13:57 2015 +0000"
      },
      "message": "Optimizing: Speed up HEnvironment use removal\n\nRemoval of use records from HEnvironment vregs involved iterating over\npotentially large linked lists which made compilation of huge methods\nvery slow. This patch turns use lists into doubly-linked lists, stores\npointers to the relevant nodes inside HEnvironment and subsequently\nturns the removals into constant-time operations.\n\nChange-Id: I0e1d4d782fd624e7b8075af75d4adf0a0634a1ee\n"
    },
    {
      "commit": "827eedbfa882496407375f22b08243a38a5bd53b",
      "tree": "aa4ff781982ffd2f8a95d9a6cdeb1aa28a1f671a",
      "parents": [
        "f90eec005997f98c1a9f874fbbf68414e5f9c766"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 26 15:18:36 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 26 16:02:35 2015 +0000"
      },
      "message": "Move code around and address growable_array comment.\n\n- Move SideEffectsAnalysis to its own file.\n- Move most of gvn.h to gvn.cc.\n- Don\u0027t call Resize in GrowableArray constructor, but just set num_used\n  directly.\n\nChange-Id: I1f1291207945d678d3c99cc0ec1ec155bcae82f6\n"
    },
    {
      "commit": "e6f171514c9c499bd0a137aff6bd8a7a79d2682a",
      "tree": "b69c22e07b26938118e35c665b77d7f743300ffa",
      "parents": [
        "3c40d38eadeb5ea7c0733f6a40816061db8c86f8"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 26 15:13:47 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 26 15:15:56 2015 +0000"
      },
      "message": "Fix build breakage after GVN change.\n\nChange-Id: I120717f8cae452cad9967559c466c1605a3e7b14\n"
    },
    {
      "commit": "76d032bacd65e396609631bb6aca3a90a80116f7",
      "tree": "d53d23ed8ccacd41fffb70f2157506d0b9d59182",
      "parents": [
        "c2c25a939a8bc98365c282f76f8f33f9549034b8",
        "86dde1658a1951c251dd5c6ff21ecc5c281879a6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 26 14:45:59 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 26 14:46:00 2015 +0000"
      },
      "message": "Merge \"Introduce a SideEffectsAnalysis class.\""
    },
    {
      "commit": "86dde1658a1951c251dd5c6ff21ecc5c281879a6",
      "tree": "ac28ec3a686fb4e9809123d8bfcdd0096b2426fb",
      "parents": [
        "2dadc9df0ffb822870a150f81257792b83241c77"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 26 12:54:33 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 26 14:44:57 2015 +0000"
      },
      "message": "Introduce a SideEffectsAnalysis class.\n\nLICM also needs the side effects information of loops, so move\nthe GVN::ComputeSideEffects method into its own analysis class.\n\nChange-Id: I810c8230a0eb6b9b536e8f808e17a3a4ad72f7db\n"
    },
    {
      "commit": "c2c25a939a8bc98365c282f76f8f33f9549034b8",
      "tree": "92367528c9cc17b706833e03cb2b916093878277",
      "parents": [
        "081d27817608c2ea035f2473c4ea1062a79bccef",
        "aedc328dead0700fdbce3c58f5cde2c4dadfb70d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 26 14:26:44 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 26 14:26:45 2015 +0000"
      },
      "message": "Merge \"Fix a bug in the liveness analysis.\""
    },
    {
      "commit": "aedc328dead0700fdbce3c58f5cde2c4dadfb70d",
      "tree": "0bd4a626af126591c7d5bf5de3243c9a77905236",
      "parents": [
        "0da7a26e1ae2a701529c5c15c280f3efae0ccec0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 23 18:01:51 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 26 14:26:05 2015 +0000"
      },
      "message": "Fix a bug in the liveness analysis.\n\nA range after a loop might also be after a lifetime hole.\nIn this situation we must preserve the hole, and not merge\nit with the loop start.\n\nChange-Id: I82eddef059592102a25362cdaa4273200574c2ae\n"
    },
    {
      "commit": "e6362281bb4586f45fd927e9cd1b3b14c6b037ed",
      "tree": "790b3887812542a5ba02ea8f05ab61de74aea70e",
      "parents": [
        "0da7a26e1ae2a701529c5c15c280f3efae0ccec0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 26 13:57:30 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 26 13:57:30 2015 +0000"
      },
      "message": "Fix lint error and typo.\n\nChange-Id: Ie2787a4da5b2d76975664e64f443c081127b7cd9\n"
    },
    {
      "commit": "0da7a26e1ae2a701529c5c15c280f3efae0ccec0",
      "tree": "92971e2efa73cac2ed9148eaa8ebc27ad96ae13c",
      "parents": [
        "ebb3cbc5869f78170f08ffdb1e782b3b3371e638",
        "a0bb2bd5b6a049ad806c223f00672d1f0210db67"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 26 13:33:33 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 26 13:33:33 2015 +0000"
      },
      "message": "Merge \"Fix codegen_test.\""
    },
    {
      "commit": "a0bb2bd5b6a049ad806c223f00672d1f0210db67",
      "tree": "206723aac52d4ccdf692f1d6a3c82c059f1cf6a1",
      "parents": [
        "2dadc9df0ffb822870a150f81257792b83241c77"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 26 12:49:35 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Jan 26 12:52:16 2015 +0000"
      },
      "message": "Fix codegen_test.\n\nNative and ART do not have the same calling convention for ART,\nso we need to adjust blocked and allocated registers.\n\nChange-Id: I606b2620c0e5a54bd60d6100a137c06616ad40b4\n"
    },
    {
      "commit": "ebb3cbc5869f78170f08ffdb1e782b3b3371e638",
      "tree": "050de6bdf59c5986e249ffa3c32e6a5f1922265a",
      "parents": [
        "2dadc9df0ffb822870a150f81257792b83241c77",
        "3d2c8e74c27efee58e24ec31441124f3f21384b9"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Jan 26 12:44:44 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jan 26 12:44:45 2015 +0000"
      },
      "message": "Merge \"ART: Implement X86 hard float (Quick/JNI/Baseline)\""
    },
    {
      "commit": "4dee636d21d9ce54386cdfbb824e5eb2a9c1af0d",
      "tree": "ee8650cc14ec18ce0d7abf089c7d2e0dfc9e079d",
      "parents": [
        "336247fa6deba2948f5ede1df806f48cf67c790a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 23 18:23:14 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Jan 24 14:34:01 2015 +0000"
      },
      "message": "Support callee-save registers on ARM.\n\nChange-Id: I7c519b7a828c9891b1141a8e51e12d6a8bc84118\n"
    },
    {
      "commit": "4597b5b7648169fbdca1af69b7643e27a6c8a523",
      "tree": "e1979403ef5ca29bfcf72e6f5e4824de97a3e26b",
      "parents": [
        "c08e6453878da2e064729e01d562973280948ce1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 23 21:51:55 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 23 21:53:39 2015 +0000"
      },
      "message": "Fix valgrind error.\n\nAlso introduce kLastCpuRegister to define kFakeReturnRegister.\n\nChange-Id: I58cef6186c0452d45b5d2dcba9298cbe07f3552d\n"
    },
    {
      "commit": "3d2c8e74c27efee58e24ec31441124f3f21384b9",
      "tree": "416a60f70414b026395e3660edeee5e1cb10b6f7",
      "parents": [
        "d834380c94af85b498560f3b5feae21ef7fab1ed"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Tue Jan 13 17:32:55 2015 -0500"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Fri Jan 23 12:53:45 2015 -0500"
      },
      "message": "ART: Implement X86 hard float (Quick/JNI/Baseline)\n\nUse XMM0-XMM3 as parameter registers for float/double on X86.  X86_64\nalready uses XMM0-XMM7 for parameters.\n\nChange the \u0027hidden\u0027 argument register from XMM0 to XMM7 to avoid a\nconflict.\n\nAdd support for FPR save/restore in runtime/arch/x86.\n\nMinimal support for Optimizing baseline compiler.\n\nBump the version in runtime/oat.h because this is an ABI change.\n\nChange-Id: Ia6fe150e8488b9e582b0178c0dda65fc81d5a8ba\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "360daa6feb2b73be8cc61bf370eef7200a210d98",
      "tree": "d751c075a491f51849c85099859513209596f7e3",
      "parents": [
        "4dfe58d8f2d398963f31831a57fbd12e282e1196",
        "d97dc40d186aec46bfd318b6a2026a98241d7e9c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 23 09:23:12 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 23 09:23:12 2015 +0000"
      },
      "message": "Merge \"Support callee save floating point registers on x64.\""
    },
    {
      "commit": "d97dc40d186aec46bfd318b6a2026a98241d7e9c",
      "tree": "5cf0257eda25e2722a1adafb9de22690c06a56d8",
      "parents": [
        "c698b78a17043d8898deb817098181595fbe734e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 22 13:50:01 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 23 09:20:42 2015 +0000"
      },
      "message": "Support callee save floating point registers on x64.\n\n- Share the computation of core_spill_mask and fpu_spill_mask\n  between backends.\n- Remove explicit stack overflow check support: we need to adjust\n  them and since they are not tested, they will easily bitrot.\n\nChange-Id: I0b619b8de4e1bdb169ea1ae7c6ede8df0d65837a\n"
    },
    {
      "commit": "746a0401085d28440b5f724aa3678a0b3b5ed701",
      "tree": "89b23eea63325ab2be9b75b2d8f521708a2a9ab0",
      "parents": [
        "54aa4e578a382977325d654d5ae1bd779d443fc8",
        "5c4405e8ca4a0c1ee2d7759e650530c9aff77fd0"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jan 22 13:34:27 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 22 13:34:28 2015 +0000"
      },
      "message": "Merge \"Improve error messages in art::GraphChecker and art::SSAChecker\""
    },
    {
      "commit": "a26369a8d42f9e2a4b0b8a02fc38d2d31f42e08e",
      "tree": "83c3acd04956cfd75a2eb50fc7dcc854bcfd8bc4",
      "parents": [
        "77ed3432182f23625811800ee41859fac272c11e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 22 08:46:05 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 22 08:46:05 2015 +0000"
      },
      "message": "Fix lint error.\n\nChange-Id: Iccba489098dd2a5b8796beefc781284006624f74\n"
    },
    {
      "commit": "988939683c26c0b1c8808fc206add6337319509a",
      "tree": "876e94428276547a29c27ccf17509a42dfe7cda1",
      "parents": [
        "59add47cabce3735ccd470cd3b5dac8b112e09ab"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 21 12:32:32 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 21 18:50:25 2015 +0000"
      },
      "message": "Enable core callee-save on x64.\n\nWill work on other architectures and FP support in other CLs.\n\nChange-Id: I8cef0343eedc7202d206f5217fdf0349035f0e4d\n"
    },
    {
      "commit": "9dec5a74014e96d41f84373990b4d4ac83206a88",
      "tree": "3aacf08f959a3d2558b9dc5985b6a3069506f4c8",
      "parents": [
        "b6b114c02b8bacd3b5d64e646fdaefa03c069c61",
        "0ada95d8de4b04b5f201b4b7e9c3c2fd2cc321ae"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jan 21 17:36:33 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 21 17:36:33 2015 +0000"
      },
      "message": "Merge \"ART: Replace NULL to nullptr in the optimizing compiler\""
    },
    {
      "commit": "b6b114c02b8bacd3b5d64e646fdaefa03c069c61",
      "tree": "cd702f32a9241c94d9e0d12828f3bcb0291b087b",
      "parents": [
        "73d8fe409fbf2cb9665779690660ccc852d60431",
        "fa93b504b324784dd9a96e28e6e8f3f1b1ac456a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 21 17:33:43 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 21 17:33:43 2015 +0000"
      },
      "message": "Merge \"Do not use HNot for creating !bool.\""
    },
    {
      "commit": "0ada95d8de4b04b5f201b4b7e9c3c2fd2cc321ae",
      "tree": "97231800ac31c9ae1ce6351ca94d1d35dfc8caf8",
      "parents": [
        "03c45ccf104fade857cb01a2b760b08fad5e304a"
      ],
      "author": {
        "name": "Jean Christophe Beyler",
        "email": "jean.christophe.beyler@intel.com",
        "time": "Thu Dec 04 11:20:20 2014 -0800"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jan 21 17:33:12 2015 +0000"
      },
      "message": "ART: Replace NULL to nullptr in the optimizing compiler\n\nReplace macro NULL to the nullptr variation for C++.\n\nChange-Id: Ib6e48dd4bb3c254343383011b67372622578ca76\nSigned-off-by: Jean Christophe Beyler \u003cjean.christophe.beyler@intel.com\u003e\n"
    }
  ],
  "next": "73d8fe409fbf2cb9665779690660ccc852d60431"
}
