)]}'
{
  "log": [
    {
      "commit": "6bb3919e4413ad50f9b7e009829bba292b609e03",
      "tree": "2b99a452959b6380ca5117a64648e83d63c9d6e2",
      "parents": [
        "d1780b98e5b58208e6836c8520dad2a2dadfe322",
        "8b858e16563ebf8e522df026a6ab409f1bd9b3de"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Dec 09 11:09:39 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 09 11:09:40 2014 +0000"
      },
      "message": "Merge \"Quick: Redefine the notion of back-egdes.\""
    },
    {
      "commit": "1f5f0f98b72530576f885ca7393d30b3ba7f40fc",
      "tree": "0afbe452a6d75fc69ee0f3a036342c60b3ac1353",
      "parents": [
        "5fd92d4b8dbb6bd3d4b698300c9f2ac524edbfd8",
        "486cc19e1e2eca4231f760117e95090c03e2d8c6"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 09 10:19:05 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 09 10:19:06 2014 +0000"
      },
      "message": "Merge \"Explicitly mask constants in shift operations.\""
    },
    {
      "commit": "486cc19e1e2eca4231f760117e95090c03e2d8c6",
      "tree": "d9d21691ea0e019c0940d6c72b8593c75d810662",
      "parents": [
        "6c964c98400b8c0949d5e369968da2d4809b772f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 08 18:00:55 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 09 10:18:04 2014 +0000"
      },
      "message": "Explicitly mask constants in shift operations.\n\nThe assemblers expect an int8, so we mask ahead of calling them.\n\nChange-Id: Id668cda6853fa365ac02531bf7aae288cad20fcd\n"
    },
    {
      "commit": "8b858e16563ebf8e522df026a6ab409f1bd9b3de",
      "tree": "910900d8eefd5bed3f3c144894c970bb1973c71e",
      "parents": [
        "f7ebda43cb185b6414a2e86eef95eaf10b74db2c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 27 14:52:37 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Dec 09 10:07:30 2014 +0000"
      },
      "message": "Quick: Redefine the notion of back-egdes.\n\nRedefine a back-edge to really mean an edge to a loop head\ninstead of comparing instruction offsets. Generate suspend\nchecks also on fall-through to a loop head; insert an extra\nGOTO for these edges.\n\nAdd suspend checks to fused cmp instructions.\n\nRewrite suspend check elimination to track whether there is\nan invoke on each path from the loop head to a given back\nedge, instead of using domination info to look for a basic\nblock with invoke that must be on each path. Ignore invokes\nto intrinsics and move the optimization to a its own pass.\n\nThe new loops in 109-suspend-check should prevent intrinsics\nand fused cmp-related regressions.\n\nBug: 18522004\nChange-Id: I96ac818f76ccf9419a6e70e9ec00555f9d487a9e\n"
    },
    {
      "commit": "52222d132e500235aeaa427e2f4139dc20ed9288",
      "tree": "829e865e555958266f7d58d664d764a33ee32803",
      "parents": [
        "6c964c98400b8c0949d5e369968da2d4809b772f",
        "cb873d8fd06b7dde4b69c5987b4eaf541d345a50"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 08 19:03:05 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 08 19:03:06 2014 +0000"
      },
      "message": "Merge \"Quick: Kill unreachable blocks instead of just hiding them.\""
    },
    {
      "commit": "6c964c98400b8c0949d5e369968da2d4809b772f",
      "tree": "82c1893c0dbbd5a9b849b9c236fc775b4d20f3cc",
      "parents": [
        "c4925d4c02dc8f8d51cb2653b5e7a99f6c9fd7d7",
        "717a3e447c6f7a922cf9c3efe522747a187a045d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 08 18:38:42 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 08 18:38:43 2014 +0000"
      },
      "message": "Merge \"Re-factor Quick ABI support\""
    },
    {
      "commit": "c4925d4c02dc8f8d51cb2653b5e7a99f6c9fd7d7",
      "tree": "c315141775be96ba80f8efd9112f196c0364ded2",
      "parents": [
        "1495a8e6409238bca28a33fd47913e382a85ea79",
        "d2ec87d84057174d4884ee16f652cbcfd31362e9"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Dec 08 18:07:32 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 08 18:07:32 2014 +0000"
      },
      "message": "Merge \"[optimizing compiler] Add REM_FLOAT and REM_DOUBLE\""
    },
    {
      "commit": "d2ec87d84057174d4884ee16f652cbcfd31362e9",
      "tree": "9456c5851f157566380c37895407dfce4749bb4d",
      "parents": [
        "f551efff34c20e2f0cf962c3fc267204d5e7611f"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Dec 08 14:24:46 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Dec 08 17:02:11 2014 +0000"
      },
      "message": "[optimizing compiler] Add REM_FLOAT and REM_DOUBLE\n\n- for arm, x86, x86_64 backends\n- reinstated fmod quick entry points for x86. This is a partial revert\nof bd3682eada753de52975ae2b4a712bd87dc139a6 which added inline assembly\nfor floting point rem on x86. Note that Quick still uses the inline\nversion.\n- fix rem tests for longs\n\nChange-Id: I73be19a9f2f2bcf3f718d9ca636e67bdd72b5440\n"
    },
    {
      "commit": "cb873d8fd06b7dde4b69c5987b4eaf541d345a50",
      "tree": "3e1614c8e57dfd262817512233319dd9ad526754",
      "parents": [
        "1495a8e6409238bca28a33fd47913e382a85ea79"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 08 15:16:54 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 08 15:37:05 2014 +0000"
      },
      "message": "Quick: Kill unreachable blocks instead of just hiding them.\n\nThis changes the block type from kDalvikByteCode to kDead\nand properly cleans up predecessors and MIRGraph::catches_.\n\nBug: 18626174\nChange-Id: I268bf68f7947604bcb82caf95ee79c6831ee6e2a\n"
    },
    {
      "commit": "717a3e447c6f7a922cf9c3efe522747a187a045d",
      "tree": "736fca26f68838c71942f206917e5fe320a6ada9",
      "parents": [
        "90fe256384b5fcd955018888977df07a5c0d85f4"
      ],
      "author": {
        "name": "Serguei Katkov",
        "email": "serguei.i.katkov@intel.com",
        "time": "Thu Nov 13 17:19:42 2014 +0600"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 08 11:33:54 2014 +0000"
      },
      "message": "Re-factor Quick ABI support\n\nNow every architecture must provide a mapper between\nVRs parameters and physical registers. Additionally as\na helper function architecture can provide a bulk copy\nhelper for GenDalvikArgs utility.\nAll other things becomes a common code stuff:\nGetArgMappingToPhysicalReg, GenDalvikArgsNoRange,\nGenDalvikArgsRange, FlushIns.\n\nMapper now uses shorty representation of input\nparameters. This is required due to location are not\nenough to detect the type of parameter (fp or core).\nFor the details\nsee https://android-review.googlesource.com/#/c/113936/.\n\nChange-Id: Ie762b921e0acaa936518ee6b63c9a9d25f83e434\nSigned-off-by: Serguei Katkov \u003cserguei.i.katkov@intel.com\u003e\n"
    },
    {
      "commit": "b218c858606641050d13f35a2365168b89b44841",
      "tree": "4fc577f5573be610d0925c827b14e2080453ef3f",
      "parents": [
        "ab6572b564db69e2877456ca6fbd3a00f4cc4b6b"
      ],
      "author": {
        "name": "Zheng Xu",
        "email": "zheng.xu@arm.com",
        "time": "Mon Dec 08 18:18:01 2014 +0800"
      },
      "committer": {
        "name": "Zheng Xu",
        "email": "zheng.xu@arm.com",
        "time": "Mon Dec 08 19:03:03 2014 +0800"
      },
      "message": "ART: Clear use count for unused VRs.\n\nThe use count of temp VR should be cleared when we replace\n\"CMP_XXX vA, vB, vC\" and \"IF_XXX vA\" with \"kMirOpFusedCmpXXX vB, vC\".\nOtherwise, the backend may allocate a physical register for the unused vA.\n\nChange-Id: I43ad37d0e7161ec3de154de8888caa94603f7715\n"
    },
    {
      "commit": "245ee0030e8e2aebf2231a65a3c475ed43fd4987",
      "tree": "e3dc0d99669cd050185ea2da914612ad1017dc36",
      "parents": [
        "ab74d3eae37de79444edd1edd70400970d5e85ad"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 04 21:25:04 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Dec 05 11:34:21 2014 -0800"
      },
      "message": "ART: Fix string data leak in image writer\n\nThe string intern data is a large object, so it will be recognized\nas leaking under valgrind.\n\nBug: 18628623\nChange-Id: I9090db119a50eebd806a82369bd46527c4e7dbf0\n"
    },
    {
      "commit": "15cdca8a5397099d11a76ef4a4a035a291ed78d0",
      "tree": "7611bab21b5e73009c5c10c33746cd83695c977b",
      "parents": [
        "f551efff34c20e2f0cf962c3fc267204d5e7611f",
        "9af6929d12d843ef1891fc0733746f7fa7ecedd4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 05 16:04:40 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 05 16:04:41 2014 +0000"
      },
      "message": "Merge \"Quick: Fix code layout pass; don\u0027t terminate too early.\""
    },
    {
      "commit": "f551efff34c20e2f0cf962c3fc267204d5e7611f",
      "tree": "800d36ef373f93a269cf30d11376abea5f98dff1",
      "parents": [
        "7f8f9489c1803fd40f52aec3cda784fe02e78c95",
        "faeda18bb13d9df9af59b90a24e558be835f5361"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 05 15:34:50 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 05 15:34:51 2014 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Rewrite ImageWriter\u0027s merging of String char[]s.\"\"\""
    },
    {
      "commit": "9af6929d12d843ef1891fc0733746f7fa7ecedd4",
      "tree": "433a3dfcadbc89afd0e5b9ca922b52e1cf42cedb",
      "parents": [
        "7f8f9489c1803fd40f52aec3cda784fe02e78c95"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 05 13:55:42 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Dec 05 13:55:42 2014 +0000"
      },
      "message": "Quick: Fix code layout pass; don\u0027t terminate too early.\n\nChange-Id: I0c417fdc2ee8213672a7568fe228e5e2f1c1ab61\n"
    },
    {
      "commit": "abb3977bf924b923b45ae234a48be739035bbd32",
      "tree": "15a9480c654adbbf77e15a9804eb7777a76bac22",
      "parents": [
        "355e3b1cc67c263268289021268109ae5432537a",
        "4c0b61f506644bb6b647be05d02c5fb45b9ceb48"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Dec 05 12:08:39 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 05 12:08:40 2014 +0000"
      },
      "message": "Merge \"Add support for double-to-int \u0026 double-to-long in optimizing.\""
    },
    {
      "commit": "4c0b61f506644bb6b647be05d02c5fb45b9ceb48",
      "tree": "26ff4e14af3cae5f9b30f65177be258d8259ecee",
      "parents": [
        "7c8ce29e97fb7873160ab8895d847e9643a1f8f6"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Dec 05 12:06:01 2014 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Dec 05 12:06:01 2014 +0000"
      },
      "message": "Add support for double-to-int \u0026 double-to-long in optimizing.\n\n- Add support for the double-to-int and double-to-long Dex\n  instructions in the optimizing compiler.\n- Add S1 to the list of ARM FPU parameter registers so that\n  a double value can be passed as parameter during a call\n  to the runtime through D0.\n- Have art::x86_64::X86_64Assembler::cvttsd2si work with\n  64-bit operands.\n- Generate x86, x86-64 and ARM (but not ARM64) code for\n  double to int and double to long HTypeConversion nodes.\n- Add related tests to test/422-type-conversion.\n\nChange-Id: Ic93b9ec6630c26e940f7966a3346ad3fd5a2ab3a\n"
    },
    {
      "commit": "faeda18bb13d9df9af59b90a24e558be835f5361",
      "tree": "f5ee12d3771bf10cf674f7c5054e1c5a865e566f",
      "parents": [
        "aad9c0767a8f8ae6250a7b4edee52cfb6d598687"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 04 14:52:25 2014 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 04 18:18:11 2014 -0800"
      },
      "message": "Revert \"Revert \"Rewrite ImageWriter\u0027s merging of String char[]s.\"\"\n\nThis reverts commit 4c964de8832551b701ce7b3162bc51cc6b22fc8a.\n\nChange-Id: I940bdf48e2dbaef0f809beda32756507d18acb89\n"
    },
    {
      "commit": "0418b5b20587c645b6bf9d8cb65d3d6a9f074d96",
      "tree": "f0f7d8a245851acd0409535640a804be5db7a6bb",
      "parents": [
        "044ac4f4f6760eeef4ed96b5349a8a5c325c52f1"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 04 17:24:50 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 04 17:24:50 2014 -0800"
      },
      "message": "ART: Fix linting errors\n\nFix bounds_check_elimination linting errors.\n\nChange-Id: I040433ecbc84d740bff331c37df0bfcc64dc244e\n"
    },
    {
      "commit": "044ac4f4f6760eeef4ed96b5349a8a5c325c52f1",
      "tree": "89263eae1b447de21b1b2bfa9b8839499de71d5c",
      "parents": [
        "a21fdd0432aa38b63d144ee4b92b6a567aab61d2",
        "f384f88d4d1e89df82f47fbc7245a8acc9c2d49c"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Dec 05 01:06:53 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 05 01:06:54 2014 +0000"
      },
      "message": "Merge \"Bounds check elimination.\""
    },
    {
      "commit": "a21fdd0432aa38b63d144ee4b92b6a567aab61d2",
      "tree": "be75911bfbe29a50fff685217c8ee155fb99ac10",
      "parents": [
        "7be36ae7979eb62dc34c59b18b0bb1202ffefa3f",
        "27dee8bcd7b4a53840b60818da8d2c819ef199bd"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Fri Dec 05 00:34:38 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 05 00:34:38 2014 +0000"
      },
      "message": "Merge \"X86_64 QBE: use RIP addressing\""
    },
    {
      "commit": "e4d4d323aa42506351b03e842818e9ec09ea6c37",
      "tree": "5df6c117bc518a8c4db6777b89b5dfd23a53ed88",
      "parents": [
        "7c8ce29e97fb7873160ab8895d847e9643a1f8f6"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 04 09:09:57 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 04 15:58:34 2014 -0800"
      },
      "message": "ART: Add SparseSwitch support to the optimizing compiler\n\nAdd simple sparse-switch support through chained IFs. Refactor a\nbit to better reuse code between switch types.\n\nNow enables compiled versions of 015-switch and 095-switch-MAX_INT.\n\nBug: 18410979\nChange-Id: Ib617e4b877f0b7fbc3bb289800f612f013480713\n"
    },
    {
      "commit": "27dee8bcd7b4a53840b60818da8d2c819ef199bd",
      "tree": "0cee4ca5dd80368703ac4b5a1139867fd0bba797",
      "parents": [
        "b510c82ebaf11cf6f4f215f6237ee6a44861ef10"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Mon Dec 01 19:06:12 2014 -0500"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Thu Dec 04 16:31:03 2014 -0500"
      },
      "message": "X86_64 QBE: use RIP addressing\n\nTake advantage of RIP addressing in 64 bit mode to improve the code\ngeneration for accesses to the constant area as well as packed switches.\nAvoid computing the address of the start of the method, which is needed\nin 32 bit mode.\n\nTo do this, we add a new \u0027pseudo-register\u0027 kRIPReg to minimize the\nchanges needed to get the new addressing mode to be generated.\n\nChange-Id: Ia28c93f98b09939806d91ff0bd7392e58996d108\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "7c8ce29e97fb7873160ab8895d847e9643a1f8f6",
      "tree": "76a45f69cd12c9ad43d87187b4a932eac89a28fa",
      "parents": [
        "8a717bc12bf30c5ad2b8764f89abe6c5ec72bb42",
        "d881df5aad7950a185480876951762c1f60ea708"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 04 17:09:45 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 04 17:09:45 2014 +0000"
      },
      "message": "Merge \"ART: Add PackedSwitch support to the optimizing compiler\""
    },
    {
      "commit": "d881df5aad7950a185480876951762c1f60ea708",
      "tree": "4609e13b55cf8a4525cb54682eee75ec710bd216",
      "parents": [
        "8b9a97e8b6ed97ff1991596cbd0f7ce78f004766"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 24 23:28:39 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Dec 04 17:08:45 2014 +0000"
      },
      "message": "ART: Add PackedSwitch support to the optimizing compiler\n\nAdd simple packed-switch support through chained IFs.\n\nNow enables compiled versions of 015-switch and 095-switch-MAX_INT.\n\nChange-Id: I17cc8d659d1dd2d64227851c23998c04367e8cf5"
    },
    {
      "commit": "72c25a905f4a13a54b6475d86622b75604ef9dbb",
      "tree": "ed7e7222b81bc7c236ec418f43f9fc4253fe0b39",
      "parents": [
        "875ca0fb97a8652920292ec0ecd5aaf54d2a3b2e"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 04 16:44:58 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 04 16:44:58 2014 +0000"
      },
      "message": "Temporary disable the test.\n\nTest fails when the boot image is compiled with optimizing. Disabling\nwhile investigating.\n\nChange-Id: I2b665cf79ea2a5edbdbfc4aee3c6b381c837d658\n"
    },
    {
      "commit": "875ca0fb97a8652920292ec0ecd5aaf54d2a3b2e",
      "tree": "6dd32239fd6b573866c0d06504178e037fd31ad2",
      "parents": [
        "0540330d5d262770002a28f8d81588f7cc28d374",
        "4c964de8832551b701ce7b3162bc51cc6b22fc8a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 04 12:31:16 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 04 12:31:17 2014 +0000"
      },
      "message": "Merge \"Revert \"Rewrite ImageWriter\u0027s merging of String char[]s.\"\""
    },
    {
      "commit": "4c964de8832551b701ce7b3162bc51cc6b22fc8a",
      "tree": "8aefbf7a2eac4d85197a1bb17060b0bcd0b1c5d7",
      "parents": [
        "c73743cfd9718a8e1eeb9c9220c182a475935a1c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 04 12:29:32 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 04 12:29:32 2014 +0000"
      },
      "message": "Revert \"Rewrite ImageWriter\u0027s merging of String char[]s.\"\n\nThis reverts commit c73743cfd9718a8e1eeb9c9220c182a475935a1c.\n\nChange-Id: Id7ee22ff0ebcd2df0f8c2f4432977dbcd81b0b56\n"
    },
    {
      "commit": "8964e2b689d80fe546604ac8c724078645095cf1",
      "tree": "9909dfb2f891d12cc9ad6aabebfba9f535014609",
      "parents": [
        "833e903b7a9063f37bea3c505cf134fc4a4e2084"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Dec 04 12:10:50 2014 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Dec 04 12:10:50 2014 +0000"
      },
      "message": "Add support for float-to-double \u0026 double-to-float in optimizing.\n\nChange-Id: I41b0fee5a28c83757697c8d000b7e224cf5a4534\n"
    },
    {
      "commit": "833e903b7a9063f37bea3c505cf134fc4a4e2084",
      "tree": "3e2fad98dc69bc1c993a1865141be39fb8fe372e",
      "parents": [
        "3947000d3c84e87558471fb703ed330f457804d7",
        "624279f3c70f9904cbaf428078981b05d3b324c0"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Dec 04 12:01:55 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 04 12:01:55 2014 +0000"
      },
      "message": "Merge \"Add support for float-to-long in the optimizing compiler.\""
    },
    {
      "commit": "624279f3c70f9904cbaf428078981b05d3b324c0",
      "tree": "a81f8d8facfc28cac479a68a1042edc74c36d25b",
      "parents": [
        "9a64a46e8edfa89402598d8650b8ebb337ba3d52"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Dec 04 11:54:28 2014 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Dec 04 11:54:28 2014 +0000"
      },
      "message": "Add support for float-to-long in the optimizing compiler.\n\n- Add support for the float-to-long Dex instruction in the\n  optimizing compiler.\n- Add a Dex PC field to art::HTypeConversion to allow the\n  x86 and ARM code generators to produce runtime calls.\n- Instruct art::CodeGenerator::RecordPcInfo not to record\n  PC information for HTypeConversion instructions.\n- Add S0 to the list of ARM FPU parameter registers.\n- Have art::x86_64::X86_64Assembler::cvttss2si work with\n  64-bit operands.\n- Generate x86, x86-64 and ARM (but not ARM64) code for\n  float to long HTypeConversion nodes.\n- Add related tests to test/422-type-conversion.\n\nChange-Id: I954214f0d537187883f83f7a83a1bb2dd8a21fd4\n"
    },
    {
      "commit": "3947000d3c84e87558471fb703ed330f457804d7",
      "tree": "be10b560c8c0520ff2105e7677cd7990e8f24051",
      "parents": [
        "baede348efa86600e64fb9db43cec1eef07c86d9",
        "c73743cfd9718a8e1eeb9c9220c182a475935a1c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 04 11:31:34 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 04 11:31:35 2014 +0000"
      },
      "message": "Merge \"Rewrite ImageWriter\u0027s merging of String char[]s.\""
    },
    {
      "commit": "c73743cfd9718a8e1eeb9c9220c182a475935a1c",
      "tree": "89d07478b09f958c4bf9fe8a141de288702de64c",
      "parents": [
        "3389ca715ebb3d66ba192b657854f8b18e851ba8"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Dec 03 15:28:15 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 04 11:29:27 2014 +0000"
      },
      "message": "Rewrite ImageWriter\u0027s merging of String char[]s.\n\nSimply sort the Strings and then look at two consecutive\nStrings to find prefixes and duplicates. Avoid unnecessary\nmemory allocations.\n\nChange-Id: I996306ed4b31e61f9f0def8f3bcce71eb01c9265\n"
    },
    {
      "commit": "989210eb453898bd94bf3527f18f6146b07aa4bb",
      "tree": "815f054b5f1f8cf3a7d040f4f38bf7f0b9cb209a",
      "parents": [
        "4334f95705d8efcbb34ffc5165c3f866eaa8086f",
        "aed3ad734c47fdccf179ff65971284a0d38583cd"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 04 10:12:23 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 04 10:12:24 2014 +0000"
      },
      "message": "Merge \"Quick: Use fewer insns for ARM LDR/STR with large offsets.\""
    },
    {
      "commit": "aed3ad734c47fdccf179ff65971284a0d38583cd",
      "tree": "c7b303fbb64a686175356c564d3547a94fe4d46f",
      "parents": [
        "a29f698b1754ee0ea2f46b6f5900e0da840dff79"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Dec 03 12:16:56 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 04 10:11:03 2014 +0000"
      },
      "message": "Quick: Use fewer insns for ARM LDR/STR with large offsets.\n\nLDR with large offset is frequently used for reading from\nDexCache arrays, for example for static and direct invokes.\nSTR with large offset is rarely used but it\u0027s updated for\nconsistency.\n\nChange-Id: I75871416cecbfd7fe7de590922cea0376a2f4019\n"
    },
    {
      "commit": "4334f95705d8efcbb34ffc5165c3f866eaa8086f",
      "tree": "23727110baac19fe50cef6f79f262e8baad8a5a4",
      "parents": [
        "31bacb9da9c931aa04489b0701172c4a35a20e31",
        "3389ca715ebb3d66ba192b657854f8b18e851ba8"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 04 10:08:07 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 04 10:08:08 2014 +0000"
      },
      "message": "Merge \"Call ProcessStrings() in ImageWriter, fix prefix check.\""
    },
    {
      "commit": "ab972ef472001fa113d54486d7592979e33480b3",
      "tree": "08a8bf01ddfc0fd3a012faac2b49fafa5853e56f",
      "parents": [
        "8b9a97e8b6ed97ff1991596cbd0f7ce78f004766"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 03 17:38:22 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Dec 03 18:27:43 2014 -0800"
      },
      "message": "Remove method verification results right after compiling a method\n\nThis saves memory since it allows the code arrays from methods\ncompiled in future methods to use the ram we just freed from the\nverification results.\n\nGmsCore.apk:\nBefore: dex2oat took 77.383s (threads: 2) arena alloc\u003d6MB java alloc\u003d30MB native alloc\u003d77MB free\u003d13KB\nAfter:  dex2oat took 72.180s (threads: 2) arena alloc\u003d6MB java alloc\u003d30MB native alloc\u003d60MB free\u003d13KB\n\nBug: 18596910\nChange-Id: I5d6df380e4fe58751a2b304202083f4d30b33b7c\n(cherry picked from commit 25fda92083d5b93b38cc1f6b12ac6a44d992d6a4)\n"
    },
    {
      "commit": "f384f88d4d1e89df82f47fbc7245a8acc9c2d49c",
      "tree": "11c1b7094ca95fda08feba3ee9f8622b096e327d",
      "parents": [
        "8b9a97e8b6ed97ff1991596cbd0f7ce78f004766"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Oct 22 16:08:18 2014 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Dec 03 15:39:21 2014 -0800"
      },
      "message": "Bounds check elimination.\n\nChange-Id: Ia0d6a4226c1f9f1ff1dd35347a38db1dc4265319\n"
    },
    {
      "commit": "3389ca715ebb3d66ba192b657854f8b18e851ba8",
      "tree": "8aefbf7a2eac4d85197a1bb17060b0bcd0b1c5d7",
      "parents": [
        "ccce1c02b162b667139eaef563460b1e1f330891"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Dec 03 14:35:54 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Dec 03 17:31:20 2014 +0000"
      },
      "message": "Call ProcessStrings() in ImageWriter, fix prefix check.\n\nProcessStrings was missing due to bad conflict resolution\nin cherry-pick\n    https://android-review.googlesource.com/114971\n\nThe prefix check was broken by the \"cherry-pick\"\n    https://android-review.googlesource.com/115445\nwhere in addition to a simple cherry-pick, an additional\ncomment was addressed and an error slipped in.\n\nChange-Id: I130d1d1a2995fd4a4c27c918c2a0dc38724ce68f\n"
    },
    {
      "commit": "ccce1c02b162b667139eaef563460b1e1f330891",
      "tree": "cc22ae7f812d8ccb04e56c2da34d962aeb43de0e",
      "parents": [
        "9a64a46e8edfa89402598d8650b8ebb337ba3d52",
        "a29f698b1754ee0ea2f46b6f5900e0da840dff79"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Dec 03 17:13:44 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 03 17:13:45 2014 +0000"
      },
      "message": "Merge \"Implement InexpensiveConstantInt(., opcode) for ARM.\""
    },
    {
      "commit": "9a64a46e8edfa89402598d8650b8ebb337ba3d52",
      "tree": "78b29260bf542f7a21ed072425aa125a2ccffbf8",
      "parents": [
        "add2f944284992106cd9a1f1df93a17d666eaaf6",
        "3f8f936aff35f29d86183d31c20597ea17e9789d"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Dec 03 16:04:28 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 03 16:04:28 2014 +0000"
      },
      "message": "Merge \"Add support for float-to-int in the optimizing compiler.\""
    },
    {
      "commit": "add2f944284992106cd9a1f1df93a17d666eaaf6",
      "tree": "84eef247787ba172f2956f7abb499e3e59068182",
      "parents": [
        "1a3960aae50ee8f6967b7ff2d094dbcf5b6b5be4",
        "fc600dccd7797a9a10cdd457034ea8e148ccd631"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Dec 03 14:52:52 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 03 14:52:52 2014 +0000"
      },
      "message": "Merge \"Fix a compiler bug related to a catch-less try-finally statement.\""
    },
    {
      "commit": "a29f698b1754ee0ea2f46b6f5900e0da840dff79",
      "tree": "fb4f765eac0495c5422f4bd542f120320e1fa3a4",
      "parents": [
        "bbba809a680fa7ad030da351e92786848d63b9bf"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 25 16:32:34 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Dec 03 12:27:16 2014 +0000"
      },
      "message": "Implement InexpensiveConstantInt(., opcode) for ARM.\n\nFix kThumb2{Add,Sub}RRI12 to be used for their full range.\nAdd ORN for completeness.\n\nChange-Id: I49a51541fa9ea085d4674b9131d8dd94da5337f3\n"
    },
    {
      "commit": "3f8f936aff35f29d86183d31c20597ea17e9789d",
      "tree": "3abc4e5f99cf7de74dbc65cafb6c045074e25381",
      "parents": [
        "fc600dccd7797a9a10cdd457034ea8e148ccd631"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Dec 02 17:45:01 2014 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Dec 03 12:09:28 2014 +0000"
      },
      "message": "Add support for float-to-int in the optimizing compiler.\n\n- Add support for the float-to-int Dex instruction in the\n  optimizing compiler.\n- Factor type conversion related lines in\n  compiler/optimizing/builder.cc.\n- Generate x86, x86-64 and ARM (but not ARM64) code for\n  float to int HTypeConversion nodes.\n- Add related tests to test/422-type-conversion.\n\nChange-Id: I2382dfc04bf394ed75f675148cfcf98216d65bc6\n"
    },
    {
      "commit": "fc600dccd7797a9a10cdd457034ea8e148ccd631",
      "tree": "31bf5b4632c14d7706c5c9d605beec57825f2dfe",
      "parents": [
        "f25c2ec6b63e116f24f359a10b59c78768fde67a"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Dec 02 17:16:31 2014 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Dec 03 12:09:28 2014 +0000"
      },
      "message": "Fix a compiler bug related to a catch-less try-finally statement.\n\nEnsure a dead basic block produced in this case is properly\nremoved.\n\nChange-Id: I7c88e26aaa6c6378892f7c7c299494fa42312db2\n"
    },
    {
      "commit": "bbba809a680fa7ad030da351e92786848d63b9bf",
      "tree": "262c839a2c59c05784cdc5d921b7b8a93028fcff",
      "parents": [
        "5ae0d29cce8c3959b981e6b25ce17bff6f44062f",
        "92a6ed2014278c78b60d7ef00751f15e6727aae0"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Dec 03 11:48:51 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 03 11:48:51 2014 +0000"
      },
      "message": "Merge \"Fix new-instance node.\""
    },
    {
      "commit": "49285c596bb48a52c42eac4005707e441ef916a7",
      "tree": "2e26792a861d33d9b820fbdd3aae3694d2cc786f",
      "parents": [
        "b5af2641acf9d2e247baaa2ac7674f91b801878d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 02 15:43:48 2014 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Dec 02 17:21:44 2014 -0800"
      },
      "message": "Print memory usage in dex2oat shutdown\n\nExample on mako:\nI/dex2oat (31071): dex2oat took 31.195s (threads: 2) arena alloc\u003d1013KB java alloc\u003d13MB native alloc\u003d32MB free\u003d1490KB\n\nBug: 18069309\n\nChange-Id: I08eac00842be35d4e659bddc8513f2062be725c9\n\n(cherry picked from commit 3029df6d212894647ba0e5c23443c40912c6ecc8)\n"
    },
    {
      "commit": "08f1f50d6c2e8f247b8f5f19711d75a792851c7a",
      "tree": "dca490545d56168f7f9ae4a4616199b1b1c8ba0c",
      "parents": [
        "8443637f71a777a13317fe7635028d758a0adf97"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 02 15:04:37 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 02 15:12:27 2014 -0800"
      },
      "message": "Remove FieldHelper.\n\nChange-Id: I2d74e2d5b3c35a691c95339de0db9361847fca11\n"
    },
    {
      "commit": "dc8b63c21f1e84b1bc0ec11400b60669bbdd62df",
      "tree": "95769f3fd6f6f028ca87a994d6d7ee0bc6bc7005",
      "parents": [
        "f842571345749cc119363fdeb1dda549aafb49bb"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Dec 02 14:39:52 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Dec 02 14:41:03 2014 -0800"
      },
      "message": "ART: Build fix.\n\nFix closure.\n\nChange-Id: I6ab68f2e3fb210c3b644affe3410c67a28df3d8e\n"
    },
    {
      "commit": "f842571345749cc119363fdeb1dda549aafb49bb",
      "tree": "95fbfad6d06a16bfd4a148162288628a2f02507b",
      "parents": [
        "eb8a32f8fbc72d8f5e92dc4335f1e7428e7cba51",
        "e0a02dabedd7db2c511a513fb48d7e39ed3dd9c0"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 02 22:22:49 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 02 22:22:49 2014 +0000"
      },
      "message": "Merge \"Move FindDexMethodIndexInOtherDexFile into ArtMethod.\""
    },
    {
      "commit": "e0a02dabedd7db2c511a513fb48d7e39ed3dd9c0",
      "tree": "70ee0e4caa2cc26c661b6cb0231b8423506e50fa",
      "parents": [
        "e94652f1e321b2c8b71acbe5b07d2ebf69fbdb99"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 02 14:10:53 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 02 14:21:56 2014 -0800"
      },
      "message": "Move FindDexMethodIndexInOtherDexFile into ArtMethod.\n\nMove FindDexMethodIndexInOtherDexFile out of MethodHelper into ArtMethod in\npreparation for the removal of MethodHelper.\nTidy ClassLinker::ResolveMethod so that all exception paths flow through the\nexception pending assertion.\nTidy artQuickResolutionTrampoline to be more explicit about variable names and\nonly update the dex cache if necessary.\n\nChange-Id: I3e48eb4f6c1291533067c1b53efe90c53bfcaea8\n"
    },
    {
      "commit": "eb8a32f8fbc72d8f5e92dc4335f1e7428e7cba51",
      "tree": "2f53d4418e86c4b08e17812e32d7a440c831f957",
      "parents": [
        "b67f965a2c0af98867dcc75ce07ec94d943421ae",
        "b0f370e24436022abc2cf361766bf5a9fd78e966"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Dec 02 22:16:51 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 02 22:16:53 2014 +0000"
      },
      "message": "Merge \"ART: Change boot image class update\""
    },
    {
      "commit": "92a6ed2014278c78b60d7ef00751f15e6727aae0",
      "tree": "2b8dec6f14999ede3f4b33bfff5aef76931d4021",
      "parents": [
        "f25c2ec6b63e116f24f359a10b59c78768fde67a"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Dec 02 18:58:03 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Dec 02 20:28:07 2014 +0000"
      },
      "message": "Fix new-instance node.\n\nnew-instance may throw when called on:\n- interfaces\n- abstract/innaccessible/unknown classes\n\nChange-Id: Id55dbb95b906a58c946b14adad934ee0e3498c0a\n"
    },
    {
      "commit": "5055c8e008fef62b23e485504472cd215b1b5bfd",
      "tree": "5767bcd8a3beedbdd57be29ac6a87b524ef23621",
      "parents": [
        "4256440d7566510e13a796176c90841bad29d0e5",
        "dbfe254f5ca96f6c5b2284478597d6140c01a394"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Dec 02 19:25:07 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 02 19:25:07 2014 +0000"
      },
      "message": "Merge \"ART: Print initialization failures to file\""
    },
    {
      "commit": "e94652f1e321b2c8b71acbe5b07d2ebf69fbdb99",
      "tree": "b4c2a4435800222fa740a5ae57fa217b6aed0875",
      "parents": [
        "f25c2ec6b63e116f24f359a10b59c78768fde67a"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 02 11:13:19 2014 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 02 11:13:49 2014 -0800"
      },
      "message": "Remove MethodHelper from the interpreter.\n\nUse ShadowFrame to get the executing method to avoid a handle for the current\nmethod.\nVarious associated bits of header file clean-up and removal of an unnecessary\nuse of MethodHelper in CompilerDriver.\n\nChange-Id: I3b6f4413701e8fc6b0c58b0041a0dd15472bedaa\n"
    },
    {
      "commit": "e0245b0a3deaeb4d0707e76ed747e3771fef11c0",
      "tree": "5c6798c68f64a8ae5c47fa181cc911d85e260095",
      "parents": [
        "98646a3d98075da05f9959b2cecea849183dbd27",
        "c7c8fe21f9688c52fdd92c1ff5deeffd620b99cf"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Dec 02 14:52:39 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 02 14:52:40 2014 +0000"
      },
      "message": "Merge \"[optimizing compiler] Fix invoke-direct\""
    },
    {
      "commit": "383993c1dc58c13f7570b9945037d6f83094785b",
      "tree": "c0c4c601964e4c37011f133ea70b3a7da7b00271",
      "parents": [
        "68af004aa1e8c82ddb503261c5e3080238e77b59",
        "43a539f780af20a1854bca81c3d4835a585f0620"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 02 12:41:26 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 02 12:41:26 2014 +0000"
      },
      "message": "Merge \"Add some heursitics for compiling, close to Quick\u0027s.\""
    },
    {
      "commit": "f537012ceb6cba8a78b36a5065beb9588451a250",
      "tree": "08851014d687b0e08accfdc2f1553a89789b4fd4",
      "parents": [
        "10a573a1f8708dbe2bcb7835341cbd8e9606af63"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 02 11:51:19 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 02 12:24:07 2014 +0000"
      },
      "message": "Treat SSA transformation special, as we may have to bailout.\n\nWe forgot to bailout when we found a non-natural loop (on which\nour optimizations don\u0027t work).\n\nChange-Id: I11976b5af4c98f4f29267a74c74d34b5ad81e20c\n"
    },
    {
      "commit": "c7c8fe21f9688c52fdd92c1ff5deeffd620b99cf",
      "tree": "fad3b8374e72a563c6ca41f7e4178a1946842b7e",
      "parents": [
        "eea79dd779ba199658ada7264f8f96d776e53f19"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Dec 02 11:42:34 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Dec 02 12:23:38 2014 +0000"
      },
      "message": "[optimizing compiler] Fix invoke-direct\n\nAlways compute invoke info via compiler driver. This ensures that the\nmethod is not called directly if its access cannot be verified.\n\nChange-Id: I04b35563a1148bc5cb16b37324419e2a977ec8db\n"
    },
    {
      "commit": "10a573a1f8708dbe2bcb7835341cbd8e9606af63",
      "tree": "dec8a92834791b040c6ec0da7f4a3804af7cd533",
      "parents": [
        "f7ebda43cb185b6414a2e86eef95eaf10b74db2c",
        "37b55ebd45a2f4514bee3e111bd49c06751da49d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 02 12:13:34 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 02 12:13:34 2014 +0000"
      },
      "message": "Merge \"Don\u0027t run optimizations after baseline.\""
    },
    {
      "commit": "43a539f780af20a1854bca81c3d4835a585f0620",
      "tree": "241042d7f40dab9fbf24560624b6e8ddfe9c066e",
      "parents": [
        "05d5810c2b20ac83da82cef9a9677884af81147d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 02 10:19:51 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Dec 02 10:26:17 2014 +0000"
      },
      "message": "Add some heursitics for compiling, close to Quick\u0027s.\n\nQuick has more machinery to give up/not give up, but we can\nbackport them later.\n\nChange-Id: I5eb62c664246f4ce46f0400cf24ec34a72afb51e\n"
    },
    {
      "commit": "37b55ebd45a2f4514bee3e111bd49c06751da49d",
      "tree": "21dd1ccc835b0546e8526492f34b7b53d1812b0c",
      "parents": [
        "05d5810c2b20ac83da82cef9a9677884af81147d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 01 22:09:43 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 01 22:09:43 2014 +0000"
      },
      "message": "Don\u0027t run optimizations after baseline.\n\nWe have enough coverage now. This was also motivated\nby having to call RunOptimizations instead, which does invoke\nInstructionSimplifier, required by the code generators (for, e.g.\nremoving useless HTypeConversion nodes).\n\nChange-Id: I4e616dae771b8ced60e1f418e3da834f44edb717\n"
    },
    {
      "commit": "dde815ab8e1a1997ad01cb7f63dd10ef26597f46",
      "tree": "14d205ccede7ac41c488afd918b021d237a7239a",
      "parents": [
        "758662e9d02727d9a88be395a92b476843c44d36",
        "6af820639c74e769ffc1f54930f6ebc11364f894"
      ],
      "author": {
        "name": "Bill Buzbee",
        "email": "buzbee@google.com",
        "time": "Mon Dec 01 19:10:14 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 01 19:10:14 2014 +0000"
      },
      "message": "Merge \"ART: x86 specific clearing higher bits when converting long to int\""
    },
    {
      "commit": "758662e9d02727d9a88be395a92b476843c44d36",
      "tree": "de9ba8fa33f4e24ee15d525a1c82fe781feb5d46",
      "parents": [
        "05d5810c2b20ac83da82cef9a9677884af81147d",
        "2f340a843ea5b3413c901f8c2365243b68864468"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 01 19:04:28 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 01 19:04:28 2014 +0000"
      },
      "message": "Merge \"Quick: Fix neg-long on ARM for overlapping regs.\""
    },
    {
      "commit": "05d5810c2b20ac83da82cef9a9677884af81147d",
      "tree": "b1bb5524009b4937f43e9bd75a1c3b5fc815832b",
      "parents": [
        "0a080978fc822c51f06cb615662ee9ddcba4f677",
        "7ab2fce83cd72c0963128b098a78606e77ea15d5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 01 17:57:04 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 01 17:57:05 2014 +0000"
      },
      "message": "Merge \"Refactor handling of conditional branches with known result.\""
    },
    {
      "commit": "0a080978fc822c51f06cb615662ee9ddcba4f677",
      "tree": "ee51418e59fdd7a1a69c6a37833f6967aabed3ac",
      "parents": [
        "057491f9206ca54270667b3a9aecb3c0376ed559",
        "174636dad59068fc6e879b147ae02ac932f38c6f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 01 17:56:41 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 01 17:56:42 2014 +0000"
      },
      "message": "Merge \"Quick: Use 16-bit conditional branch in Thumb2.\""
    },
    {
      "commit": "057491f9206ca54270667b3a9aecb3c0376ed559",
      "tree": "fee870fbd1cb6bf4adc3a5e68d7a2b0d1a890129",
      "parents": [
        "0c137c43551e88dbe1051315088417cb08b7f930",
        "9d5c25acdd1e9635fde8f8bf52a126b4d371dabd"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 01 17:56:27 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 01 17:56:28 2014 +0000"
      },
      "message": "Merge \"Quick: Use 16-bit Thumb2 PUSH/POP when possible.\""
    },
    {
      "commit": "2f340a843ea5b3413c901f8c2365243b68864468",
      "tree": "0c6e6a6ac7da6fcb472243484ec164ff886832f2",
      "parents": [
        "0c137c43551e88dbe1051315088417cb08b7f930"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 01 16:48:48 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Dec 01 16:58:31 2014 +0000"
      },
      "message": "Quick: Fix neg-long on ARM for overlapping regs.\n\nBug: 18569347\nChange-Id: I764a4648b7ea5fd92f1ffbb9038b9d101b50d137\n"
    },
    {
      "commit": "01fcc9ee556f98d0163cc9b524e989760826926f",
      "tree": "db932611fcfb1390c761ae589a99dee5e956c271",
      "parents": [
        "dff1069220465f93dc2e3636a0acd7522a5ba639"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 01 14:16:20 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 01 14:38:56 2014 +0000"
      },
      "message": "Remove type conversion nodes converting to the same type.\n\nWhen optimizing, we ensure these conversions do not reach the\ncode generators. When not optimizing, we cannot get such situations.\n\nChange-Id: I717247c957667675dc261183019c88efa3a38452\n"
    },
    {
      "commit": "dff1069220465f93dc2e3636a0acd7522a5ba639",
      "tree": "e8ce00dd73172da12447ccc2fda1cc4cd217be52",
      "parents": [
        "89b53873b29e9e93fa6ba49c9685b84c60c76a4c",
        "02164b352a1474c616771582ca9a73a2cc514c1f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 01 12:29:09 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 01 12:29:09 2014 +0000"
      },
      "message": "Merge \"Opt Compiler: Arm64: Add support for more IRs plus various fixes.\""
    },
    {
      "commit": "89b53873b29e9e93fa6ba49c9685b84c60c76a4c",
      "tree": "f5c860c8f84d3ae77972e94eddfdefadd5d58dc1",
      "parents": [
        "672db0289de1dec9513da14153f315fecb78649e",
        "32f5b4d2c8c9b52e9522941c159577b21752d0fa"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 01 12:28:51 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Dec 01 12:28:51 2014 +0000"
      },
      "message": "Merge \"Vixl: Update the VIXL interface to VIXL 1.7 and enable VIXL debug.\""
    },
    {
      "commit": "5976857e65d3d0e7be0c4e3183e9483c85a76bb8",
      "tree": "33dd2712eaf12ce49db7bfe2d0737122c21e4ed4",
      "parents": [
        "7933e185ebd4efab7f7e0749bfa193f08152c614"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 01 09:50:04 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Dec 01 11:25:41 2014 +0000"
      },
      "message": "Fix insertion of parallel move when connecting siblings.\n\nAlso add a check that ensures parallel moves have been inserted\ncorrectly.\n\nThis fixes tests:\norg.apache.harmony.tests.java.util.BitSetTest#test_nextSetBitI\norg.apache.harmony.tests.java.util.BitSetTest#test_31036_set\n\nOn host/x64.\n\nChange-Id: I59d29aca393b5344bac933e2813ab409fea9d9b5"
    },
    {
      "commit": "3bcc8ea079d867f26622defd0611d134a3b4ae49",
      "tree": "a1f3f3ad3ec1284d199eee6e57889b8c1e90b619",
      "parents": [
        "eea79dd779ba199658ada7264f8f96d776e53f19"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 28 15:00:02 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 28 16:03:28 2014 +0000"
      },
      "message": "Don\u0027t use CanHoldArm in the code generator.\n\nCanHoldArm was ARM32 specific. Instead use a virtual\nAssembler::ShifterOperandCanHold that both thumb2 and arm32\nimplement.\n\nChange-Id: I33794a93caf02ee5d78d32a8471d9fd6fe4f0a00\n"
    },
    {
      "commit": "7ab2fce83cd72c0963128b098a78606e77ea15d5",
      "tree": "e007ba1393b874f128d0db55fc0c90dbbec9bad8",
      "parents": [
        "f2d52e4d32fbedee2a11692e1f1d986ba68ea493"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 28 13:38:28 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 28 13:49:19 2014 +0000"
      },
      "message": "Refactor handling of conditional branches with known result.\n\nDetect IF_cc and IF_ccZ instructions with known results in\nthe basic block optimization phase (instead for the codegen\nphase) and replace them with GOTO/NOP. Kill blocks that are\nunreachable as a result.\n\nChange-Id: I169c2fa6f1e8af685f4f3a7fe622f5da862ce329\n"
    },
    {
      "commit": "02164b352a1474c616771582ca9a73a2cc514c1f",
      "tree": "6c124ec6e19f18343b69df8cddcb74e17447f294",
      "parents": [
        "32f5b4d2c8c9b52e9522941c159577b21752d0fa"
      ],
      "author": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@arm.com",
        "time": "Thu Nov 13 14:05:07 2014 +0000"
      },
      "committer": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@arm.com",
        "time": "Fri Nov 28 13:10:25 2014 +0000"
      },
      "message": "Opt Compiler: Arm64: Add support for more IRs plus various fixes.\n\nAdd support for more IRs and update others.\n\nChange-Id: Iae1bef01dc3c0d238a46fbd2800e71c38288b1d2\nSigned-off-by: Serban Constantinescu \u003cserban.constantinescu@arm.com\u003e\n"
    },
    {
      "commit": "32f5b4d2c8c9b52e9522941c159577b21752d0fa",
      "tree": "1b30de145c7865fd8a79f17a4cfe67b1b890878c",
      "parents": [
        "eea79dd779ba199658ada7264f8f96d776e53f19"
      ],
      "author": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@arm.com",
        "time": "Tue Nov 25 20:05:46 2014 +0000"
      },
      "committer": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@arm.com",
        "time": "Fri Nov 28 12:02:58 2014 +0000"
      },
      "message": "Vixl: Update the VIXL interface to VIXL 1.7 and enable VIXL debug.\n\nThis patch updates the interface to VIXL 1.7 and enables the debug version of\nVIXL when ART is built in debug mode.\n\nChange-Id: I443fb941bec3cffefba7038f93bb972e6b7d8db5\nSigned-off-by: Serban Constantinescu \u003cserban.constantinescu@arm.com\u003e\n"
    },
    {
      "commit": "eea79dd779ba199658ada7264f8f96d776e53f19",
      "tree": "f7317c36141deb11bf7cdcc7afd7b230491e82d5",
      "parents": [
        "9ce56af31bef386944b7e76ab46897b3573a80d1",
        "46fbaab1bf2981f2768b046abf43e368663daacd"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 28 11:26:24 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 28 11:26:25 2014 +0000"
      },
      "message": "Merge \"Fix a bug in the linear scan register allocator.\""
    },
    {
      "commit": "9ce56af31bef386944b7e76ab46897b3573a80d1",
      "tree": "69024d8c6b23e6c60b25ee6511c67f5e5332b5a4",
      "parents": [
        "db5453bbda97e94c00af714a7ec8e59d3a4ea843",
        "acd033994aced8246c2fd8e931340dbf82d06d1a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 28 11:07:27 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 28 11:07:28 2014 +0000"
      },
      "message": "Merge \"Fix bogus assumption for live registers at safe point.\""
    },
    {
      "commit": "db5453bbda97e94c00af714a7ec8e59d3a4ea843",
      "tree": "e27a020ffa737b729292bc1dfe81623d56fea3a7",
      "parents": [
        "f2d52e4d32fbedee2a11692e1f1d986ba68ea493",
        "dbca6fae9d09160f45bf8d3512f15cdd9558975b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 28 11:06:26 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 28 11:06:26 2014 +0000"
      },
      "message": "Merge \"Fix a bug in GVN.\""
    },
    {
      "commit": "dbca6fae9d09160f45bf8d3512f15cdd9558975b",
      "tree": "4e06651a63b661610f2f12654600c9146b0d3607",
      "parents": [
        "35ecc8ca8fba713728b8fc60e9e2a275da2028aa"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 27 12:01:59 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 28 11:05:22 2014 +0000"
      },
      "message": "Fix a bug in GVN.\n\nWhen a predecessor block was killing instructions in a set, we were\nnot taking into account side effects of blocks between the dominator to\nthis predecessor.\n\nImplementation now intersects the copied set of the dominator with\nthe predecessors to take these side effects into account.\n\nChange-Id: If297439cc4e50cee91e9fffd028216a3e49e19ef\n"
    },
    {
      "commit": "6d0e483dd2e0b63e952de060738c10e2abd12ff7",
      "tree": "b396377926d2645f0df982f0b03c41149632a3de",
      "parents": [
        "7c97e855ceb9b45a1cc738fb144bd3312c4e09a8"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Nov 27 18:31:21 2014 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Nov 27 18:36:14 2014 +0000"
      },
      "message": "Add support for long-to-float in the optimizing compiler.\n\n- Add support for the long-to-float Dex instruction in the\n  optimizing compiler.\n- Have art::x86_64::X86_64Assembler::cvtsi2ss work with\n  64-bit operands.\n- Generate x86, x86-64 and ARM (but not ARM64) code for\n  long to float HTypeConversion nodes.\n- Add related tests to test/422-type-conversion.\n\nChange-Id: Ic983cbeb1ae2051add40bc519a8f00a6196166c9\n"
    },
    {
      "commit": "199f336af1fc8212646fda67675df0361ece33d6",
      "tree": "e8709a668b285246ab7d7f4c3f8f2553fd5f39e2",
      "parents": [
        "924632d2626b17b903bf7b851099f6d575ac534b"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Nov 27 17:15:16 2014 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Nov 27 17:15:16 2014 +0000"
      },
      "message": "Wrap long lines in the optimizing compiler.\n\nChange-Id: I5dee0c65e6652de574ae952b1f1dfc7355859e45\n"
    },
    {
      "commit": "924632d2626b17b903bf7b851099f6d575ac534b",
      "tree": "e9f06a7a23aa6a8882aeb8c27671e78178b71c12",
      "parents": [
        "e936f68824c441d07bd3a4d5dce4b9b18794a41f",
        "271ab9c916980209fbc6b26e5545d76e58471569"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Nov 27 15:42:08 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 27 15:42:08 2014 +0000"
      },
      "message": "Merge \"Ensure opt. compiler doesn\u0027t get core \u0026 FP registers mixed up.\""
    },
    {
      "commit": "e936f68824c441d07bd3a4d5dce4b9b18794a41f",
      "tree": "ca3e1aa7bd6df07df001fc5bb5f32219fc9ab3b3",
      "parents": [
        "6e98da8cddb9cbe47072051332770a806918149a",
        "5368c219a462defc90c4b896b34eb7506ba5c142"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Nov 27 15:41:28 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 27 15:41:29 2014 +0000"
      },
      "message": "Merge \"Fix neg-float \u0026 neg-double for null values in opt. compiler.\""
    },
    {
      "commit": "32b2a52aa3d6dc25c18422514c7f88757f87d33c",
      "tree": "b819d171a509bde557fe1ffefc838d8573854f53",
      "parents": [
        "d7fa3a7d26105dd112acf955a0c7a880a6027180"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 27 14:54:18 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 27 15:35:24 2014 +0000"
      },
      "message": "Fix Move64 by using ParallelMoves.\n\nDestination and source might overlap in a Move64, so we have to\nuse a parallel move resolver.\n\nChange-Id: Ica6c72d91ab8e2e2ee4661b211ac1ee8f054b9ef\n"
    },
    {
      "commit": "271ab9c916980209fbc6b26e5545d76e58471569",
      "tree": "fc07a28f5fd4b7a086ae90dd94778c16efd6dae3",
      "parents": [
        "5368c219a462defc90c4b896b34eb7506ba5c142"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Nov 27 15:23:57 2014 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Nov 27 15:23:57 2014 +0000"
      },
      "message": "Ensure opt. compiler doesn\u0027t get core \u0026 FP registers mixed up.\n\nReplace Location::As\u003cT\u003e() with two method methods\n(Location::AsRegister\u003cT\u003e() and Location::AsFpuRegister\u003cT\u003e())\nchecking the kind of the location (register).\n\nChange-Id: I22b4abee1a124b684becd2dc1caf33652b911070\n"
    },
    {
      "commit": "5368c219a462defc90c4b896b34eb7506ba5c142",
      "tree": "6374d21b8ac88f3a0f001a7fbda4a1769572c879",
      "parents": [
        "d7fa3a7d26105dd112acf955a0c7a880a6027180"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Nov 27 15:03:41 2014 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Nov 27 15:03:41 2014 +0000"
      },
      "message": "Fix neg-float \u0026 neg-double for null values in opt. compiler.\n\n- Implement float and double negation as an exclusive or\n  with a bit sign mask in x86 and x86-64 code generators.\n- Enable requests of temporary FPU (double) registers during\n  register allocation.\n- Update test cases in test/415-optimizing-arith-neg.\n\nChange-Id: I9572c24b27c645ba698825e60cd5b3956b4895fa\n"
    },
    {
      "commit": "d7fa3a7d26105dd112acf955a0c7a880a6027180",
      "tree": "2230bd8ef1ab17e79b786c906f571222a76e9d67",
      "parents": [
        "a9159b2e6b11ec92a1c20a6f3cfe0072f12bd389",
        "ddb7df25af45d7cd19ed1138e537973735cc78a5"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Nov 27 13:13:34 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 27 13:13:35 2014 +0000"
      },
      "message": "Merge \"[optimizing compiler] Add CMP{L,G}_{FLOAT,DOUBLE}\""
    },
    {
      "commit": "ddb7df25af45d7cd19ed1138e537973735cc78a5",
      "tree": "c428e9482c7d9137c0965eed586969ae108b173f",
      "parents": [
        "35ecc8ca8fba713728b8fc60e9e2a275da2028aa"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Nov 25 20:56:51 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Nov 27 12:30:27 2014 +0000"
      },
      "message": "[optimizing compiler] Add CMP{L,G}_{FLOAT,DOUBLE}\n\nAdds:\n- float comparison for arm, x86, x86_64 backends.\n- ucomis{s,d} assembly to x86 and x86_64.\n- vmstat assebmly for thumb2\n- new assembly tests\n\nChange-Id: Ie3e19d0c08b3b875cd0a4be4ee4e9c8a4a076290\n"
    },
    {
      "commit": "a9159b2e6b11ec92a1c20a6f3cfe0072f12bd389",
      "tree": "c517602b7cb0c1757013187c5bf9b0cc3e2d8240",
      "parents": [
        "63b2fa520acc7f1f9468e0e1b7e96316a3057fbd",
        "647b9ed41cdb7cf302fd356627a3ba372419b78c"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Nov 27 12:30:22 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 27 12:30:22 2014 +0000"
      },
      "message": "Merge \"Add support for long-to-double in the optimizing compiler.\""
    },
    {
      "commit": "647b9ed41cdb7cf302fd356627a3ba372419b78c",
      "tree": "f1ca054aa20ae4c489f208982e7a6cba5d5ee21e",
      "parents": [
        "35ecc8ca8fba713728b8fc60e9e2a275da2028aa"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Nov 27 12:06:00 2014 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Nov 27 12:06:00 2014 +0000"
      },
      "message": "Add support for long-to-double in the optimizing compiler.\n\n- Add support for the long-to-double Dex instruction in the\n  optimizing compiler.\n- Enable requests of temporary FPU (double) registers during\n  code generation.\n- Fix art::x86::X86Assembler::LoadLongConstant and extend\n  it to int64_t values.\n- Have art::x86_64::X86_64Assembler::cvtsi2sd work with\n  64-bit operands.\n- Generate x86, x86-64 and ARM (but not ARM64) code for\n  long to double HTypeConversion nodes.\n- Add related tests to test/422-type-conversion.\n\nChange-Id: Ie73d9e5e25bd2e15f585c371e8fc2dcb83438ccd\n"
    },
    {
      "commit": "6af820639c74e769ffc1f54930f6ebc11364f894",
      "tree": "decf73589911becfd31d9fcf4f50eb4ef9d30de0",
      "parents": [
        "220526b05d4365a1820a694c98527eda2d3dc980"
      ],
      "author": {
        "name": "Yevgeny Rouban",
        "email": "yevgeny.y.rouban@intel.com",
        "time": "Wed Nov 26 18:11:54 2014 +0600"
      },
      "committer": {
        "name": "Yevgeny Rouban",
        "email": "yevgeny.y.rouban@intel.com",
        "time": "Thu Nov 27 09:27:31 2014 +0600"
      },
      "message": "ART: x86 specific clearing higher bits when converting long to int\n\nThe following problem description is taken from\nhttps://android-review.googlesource.com/107261\n  If destination and source of long-to-int is the same physical\n  register on 64-bit then we do not emit any instructions but\n  consider that destination is a 32-bit view of source register.\n  As a result high part contains garbage. If the destination is\n  used later as index to array access then this garbage is used\n  in computation of address because address is 64-bit. For all\n  other cases garbage is just ignored.\n\nA generic solution (113023) for all hw platforms was suggested\nbut rejected later for the sake of HW specific solution:\n  https://android-review.googlesource.com/113023\n  https://android-review.googlesource.com/114436\n\nThis patch is a rework of patch 113023 to stick with x86_64\nspecific changes: for 64-bit target this patch forces generating\nreg-to-reg copy if the src and dest are the same physical\nregisters. This makes the higher bits be zeroed by 32-bit move\ninstruction.\n\nChange-Id: Id29af839506ff9319ffba08b2e86e240fef4dafd\nSigned-off-by: Serguei Katkov \u003cserguei.i.katkov@intel.com\u003e\nSigned-off-by: Yevgeny Rouban \u003cyevgeny.y.rouban@intel.com\u003e\n"
    },
    {
      "commit": "dbfe254f5ca96f6c5b2284478597d6140c01a394",
      "tree": "deb37dd72a728df8cda0e3879f89f13e6e461a2a",
      "parents": [
        "220526b05d4365a1820a694c98527eda2d3dc980"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 25 22:21:42 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 26 15:07:36 2014 -0800"
      },
      "message": "ART: Print initialization failures to file\n\nAdd the ability to print boot image initialization failures to a\nfile.\n\nAdd a tool to convert said file into a Graphviz file.\n\nChange-Id: Iedcc337bdf05654c154aa553236f20bdd15572ee\n"
    },
    {
      "commit": "46fbaab1bf2981f2768b046abf43e368663daacd",
      "tree": "36b8ea48ce8f2a1dafb121b4cf18176f174b8835",
      "parents": [
        "f2611341d2e45144edd25c90f66834687a043dcc"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 26 18:30:23 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 26 19:07:14 2014 +0000"
      },
      "message": "Fix a bug in the linear scan register allocator.\n\nTriggered by:\norg.apache.harmony.tests.java.util.jar.JarFileTest#testGetJarEntry.\n\nBy miscompling:\nokhttp.CacheControl#parse.\n\nA move occuring just before the first instruction of a block\nshould not be handled by ConnectSplitSiblings, but by ConnectSiblings\ninstead.\n\nChange-Id: I8ad409734809e6787bb7321563e1331e7a6906c0\n"
    },
    {
      "commit": "e8469c195570ccfda248b4392472421bc0940987",
      "tree": "4cc01065c46e243eb308b5b728b89d84846d9fef",
      "parents": [
        "fef1680241e85532919ecfaf42855d31ddb69361"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 26 18:09:30 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 26 19:01:39 2014 +0000"
      },
      "message": "Optimizing: Use 16-bit Thumb2 PUSH/POP when possible.\n\nJNI compiler uses the same assembler but always pushes\nand pops registers that require the 32-bit PUSH/POP.\n\nChange-Id: I7e857ae799316586cd09d6547cf971ef439af147\n"
    },
    {
      "commit": "91debbc3da3e3376416e4394155d9f9e355255cb",
      "tree": "fd2181a2d4b8e7e8d26101a9a87b4f0c34fa990f",
      "parents": [
        "fd861249f31ab360c12dd1ffb131d50f02b0bfc6"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Nov 26 19:01:09 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Nov 26 19:01:09 2014 +0000"
      },
      "message": "Revert \"[optimizing compiler] Add CMP{L,G}_{FLOAT,DOUBLE}\"\n\nFails on arm due to missing vmrs op after vcmp. I revert this instead of pushing the fix because I don\u0027t understand yet why it compiles with run-test but not with dex2oat.\n\nThis reverts commit fd861249f31ab360c12dd1ffb131d50f02b0bfc6.\n\nChange-Id: Idc2d30f6a0f39ddd3596aa18a532ae90f8aaf62f\n"
    },
    {
      "commit": "fd861249f31ab360c12dd1ffb131d50f02b0bfc6",
      "tree": "1765db2b26337f8e96616ebfb769c95d7b421ad2",
      "parents": [
        "fef1680241e85532919ecfaf42855d31ddb69361"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Nov 25 20:56:51 2014 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed Nov 26 16:49:23 2014 +0000"
      },
      "message": "[optimizing compiler] Add CMP{L,G}_{FLOAT,DOUBLE}\n\n- adds float comparison for arm, x86, x86_64 backends.\n- adds ucomis{s,d} assembly to x86 and x86_64.\n\nChange-Id: I232d2b6e9ecf373beb5cc63698dd97a658ff9c83\n"
    },
    {
      "commit": "174636dad59068fc6e879b147ae02ac932f38c6f",
      "tree": "10952a9aa5303880a9417005593c0933697db016",
      "parents": [
        "fef1680241e85532919ecfaf42855d31ddb69361"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 26 12:33:45 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 26 16:05:46 2014 +0000"
      },
      "message": "Quick: Use 16-bit conditional branch in Thumb2.\n\nWe were using the 32-bit version because the compilation\ntime impact of having to change the instruction length and\nreassemble instructions when the target is out of range was\ntoo high. However, the assembly phase has been rewritten\nsince making that decision and the compile time impact is\nnow insignificant, so we prefer to save space.\n\nChange-Id: Ib90f90d3f4e0c4e310267af272e3b16611026bbe\n"
    },
    {
      "commit": "9d5c25acdd1e9635fde8f8bf52a126b4d371dabd",
      "tree": "90f0af52ae7ea6bfc34d434ce6b85a6ca4e634d3",
      "parents": [
        "fef1680241e85532919ecfaf42855d31ddb69361"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 26 15:42:32 2014 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 26 16:01:29 2014 +0000"
      },
      "message": "Quick: Use 16-bit Thumb2 PUSH/POP when possible.\n\nGenerate correct PUSH/POP in Gen{Entry,Exit}Sequence()\nto avoid extra processing during insn fixup.\n\nChange-Id: I396168e2a42faee6980d40779c7de9657531867b\n"
    },
    {
      "commit": "acd033994aced8246c2fd8e931340dbf82d06d1a",
      "tree": "750cca769708c80b2f38f550b3df86188ec78752",
      "parents": [
        "220526b05d4365a1820a694c98527eda2d3dc980"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 26 15:46:52 2014 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 26 15:46:52 2014 +0000"
      },
      "message": "Fix bogus assumption for live registers at safe point.\n\nWe did not take into account inactive intervals going\ninto active when computing live registers at a slow path\nsafe point. So we must ensure the safepoint interval is always\nhandled after all intervals starting at the same position have\nbeen handled.\n\nChange-Id: I05ea2161016a90b0ee3ba0b18cd54a8e46860f1e\n"
    }
  ],
  "next": "fef1680241e85532919ecfaf42855d31ddb69361"
}
