)]}'
{
  "log": [
    {
      "commit": "c7098ff991bb4e00a800d315d1c36f52a9cb0149",
      "tree": "3a150e927bc7f4894f5b148ec6f5a2b796cdd80d",
      "parents": [
        "5322e55ab9a15996a197456ca39d9c77488cd5c1"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 09 14:30:11 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Feb 24 10:21:57 2016 +0000"
      },
      "message": "Remove HNativeDebugInfo from start of basic blocks.\n\nWe do not require full environment at the start of basic block.\nThe dex pc contained in basic block is sufficient for line mapping.\n\nChange-Id: I5ba9e5f5acbc4a783ad544769f9a73bb33e2bafa\n"
    },
    {
      "commit": "7dc277b171b4d8294c4d152d8a6020995dc95f98",
      "tree": "9b25cc68480177fdf79f288aaf5c62d3e6d24bf1",
      "parents": [
        "dd867c87f32022e2bd8198bb1c294a611d81de50",
        "da571cb73e9bc12636b23c58d7012cf14c228832"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 16 09:42:31 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 16 09:42:31 2016 +0000"
      },
      "message": "Merge \"Optimizing: Use range-based loops in BCE.\""
    },
    {
      "commit": "da571cb73e9bc12636b23c58d7012cf14c228832",
      "tree": "94997acacac26b81980fe25a6c5c81a9ab3fb1c0",
      "parents": [
        "b3871cd241eed77bfdd83c36182c19273c351da6"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 15 17:54:56 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 15 19:10:59 2016 +0000"
      },
      "message": "Optimizing: Use range-based loops in BCE.\n\nChange-Id: Ib7cbc6dcbdf61d0b115e6b872914cff3687ad6e4\n"
    },
    {
      "commit": "afd33d77f2df61467dae38cfd59b8e8e6a490058",
      "tree": "af3013724538e6bd3dab47863ae3d6633aba64e0",
      "parents": [
        "e8e3d9253fefffd843b42b1da76b37ef65bc100c",
        "8428bd376e660df2ffceee72f797d1cfc6c66433"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 15 18:39:47 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 15 18:39:47 2016 +0000"
      },
      "message": "Merge \"Optimizing: Remove unnecessary And before TypeConversion.\""
    },
    {
      "commit": "8e73ac34f4fac4aee96ccef82e08fab0474a4c98",
      "tree": "0d7281360c62f25dfb700006756a669178f07603",
      "parents": [
        "b3871cd241eed77bfdd83c36182c19273c351da6"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Feb 15 18:20:01 2016 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Feb 15 18:20:01 2016 +0000"
      },
      "message": "Fix broken tests\n\nChange-Id: I9d0f1064e8cd63045283445946c46594a50d4b84\n"
    },
    {
      "commit": "6dd10fa29e47d9041f5dee85a43a9615299e22c2",
      "tree": "88c26fc6047199fc3aeda0e0adb9661ed65d384b",
      "parents": [
        "26962cc2a1e773e99c1711bef9b36e199fdc8989"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Feb 15 17:14:31 2016 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Feb 15 17:14:40 2016 +0000"
      },
      "message": "Fix lint error\n\nChange-Id: I6f7785abece7ead31b4737fc6b54712c26582e2b\n"
    },
    {
      "commit": "26962cc2a1e773e99c1711bef9b36e199fdc8989",
      "tree": "0841225e62c317667513d8d2f1329386a863dfa7",
      "parents": [
        "c86382a7d1685728fe000df43dd8ba7bc22278a5",
        "5e08e3643230ff89f3d7e9b5d7660db6fd94bec9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 15 16:32:16 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 15 16:32:16 2016 +0000"
      },
      "message": "Merge \"Expect less in the presence of a string init call.\""
    },
    {
      "commit": "5e08e3643230ff89f3d7e9b5d7660db6fd94bec9",
      "tree": "e19e6ce62b9350e52544c37dffadc4e1b8615417",
      "parents": [
        "88f4bc504c1be353e95e9d215d68c7d58eb0717f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 15 15:56:11 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 15 16:17:11 2016 +0000"
      },
      "message": "Expect less in the presence of a string init call.\n\nThe compiler currently relies on the dex cache being populated\nfor doing proper type propagation. If it hasn\u0027t, we may end up in the\nsituation where the DexMethodInliner has recognized a String.\u003cinit\u003e call\n(because DexMethodInliner only looks at signatures, and does not resolve\ntypes), but the graph builder doesn\u0027t see a type and assume it needs\nto do access checks and clinit checks on it.\n\nChange-Id: Id79313b0610b127909e3e057305b6632b0b172f7\n"
    },
    {
      "commit": "b01e0e2e931b9670690a9eeffdbee73db588715d",
      "tree": "cde0cb9e1d26fe11c730ed8580f507a58cf8006a",
      "parents": [
        "9b8beaa5d04afcab0e3ddb6306ed610c0d11da8d",
        "badd826664896d4a9628a5a89b78016894aa414b"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Feb 15 16:12:32 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 15 16:12:32 2016 +0000"
      },
      "message": "Merge \"ART: Run SsaBuilder from HGraphBuilder\""
    },
    {
      "commit": "9b8beaa5d04afcab0e3ddb6306ed610c0d11da8d",
      "tree": "ee6fa393251efa002f4910d250e86f7419856966",
      "parents": [
        "ccf88e56ff4e30b14aba8d4de0ae67aa9c178e5a",
        "c0b601b5e4c1add5eefd45f2f4d2c376a20ba4d4"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Feb 15 15:53:55 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 15 15:53:55 2016 +0000"
      },
      "message": "Merge \"ART: Implement HSelect with CSEL/FCSEL on arm64\""
    },
    {
      "commit": "ccf88e56ff4e30b14aba8d4de0ae67aa9c178e5a",
      "tree": "cdec3e290c1e3f2638e4aa0042f81b770173fecf",
      "parents": [
        "b6de3d92e932c0cded1c2e208f6b8fa4eebe6f02",
        "b52bbde2870e5ab5d126612961dcb3da8e5236ee"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 15 15:39:47 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 15 15:39:47 2016 +0000"
      },
      "message": "Merge \"Optimizing: Simplify consecutive type conversions.\""
    },
    {
      "commit": "8428bd376e660df2ffceee72f797d1cfc6c66433",
      "tree": "5dc6d17eb70179b4b823d5f6034021ec6574c60b",
      "parents": [
        "b52bbde2870e5ab5d126612961dcb3da8e5236ee"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 12 16:53:57 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 15 15:09:27 2016 +0000"
      },
      "message": "Optimizing: Remove unnecessary And before TypeConversion.\n\nFor example `(byte) (x \u0026 0xff)` doesn\u0027t need the `\u0026 0xff`.\n\nBug: 23965701\nChange-Id: I5fc8419491aff2cdc7074451e74e873b5f582d41\n"
    },
    {
      "commit": "b52bbde2870e5ab5d126612961dcb3da8e5236ee",
      "tree": "3a58d251d8667e7c8447199a799fecba9bd5f918",
      "parents": [
        "1b0755299928221a1dcc5db383bf8fc378d29b60"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 12 12:06:05 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 15 15:06:44 2016 +0000"
      },
      "message": "Optimizing: Simplify consecutive type conversions.\n\nMerge two consecutive type conversions to one if the result\nof such merged conversion is guaranteed to be the same and\nremove all implicit conversions, not just conversions to the\nsame type. Improve codegens to handle conversions from long\nto integral types smaller than int.\n\nThis will make it easier to simplify `(byte) (x \u0026 0xffL)` to\n`(byte) x` where the conversion from long to byte is done by\ntwo dex instructions, long-to-int and in int-to-byte.\n\nBug: 23965701\nChange-Id: I833f193556671136ad2cd3f5b31cdfbc2d99c19d\n"
    },
    {
      "commit": "c0b601b5e4c1add5eefd45f2f4d2c376a20ba4d4",
      "tree": "5afda879812dd7984f2d5970d4ff4ab3bc22a7d0",
      "parents": [
        "b3ba4ec3fac34f0a45aa654ef88033b2f34c3640"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Feb 08 14:20:45 2016 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Feb 15 13:11:04 2016 +0000"
      },
      "message": "ART: Implement HSelect with CSEL/FCSEL on arm64\n\nChange-Id: I549af0cba3c5048066a2d1206b78a70b496d349e\n"
    },
    {
      "commit": "dee1b9aec66d1ab1472df3954d8c1cc25896f62e",
      "tree": "f02742c10d5fc4b4bf9fd5fc1bd355e01cb78fcb",
      "parents": [
        "88f4bc504c1be353e95e9d215d68c7d58eb0717f"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Fri Feb 12 14:36:51 2016 -0500"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Feb 15 11:52:00 2016 +0000"
      },
      "message": "X86_64: Allow HSelect to generate CMOV from memory\n\nUse the cmov with Address operand to allow CMOV from stack location.\n\nChange-Id: Ia2f856c7b5003c413f23adaabe19be06f38c78ab\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "badd826664896d4a9628a5a89b78016894aa414b",
      "tree": "a30e8b3e62126ae1e1df1152ac643cfc5f2b074a",
      "parents": [
        "47a2a45a6673ddf3322115ff5058763f82a9368f"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Feb 02 16:28:56 2016 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Feb 15 10:21:07 2016 +0000"
      },
      "message": "ART: Run SsaBuilder from HGraphBuilder\n\nFirst step towards merging the two passes, which will later result in\nHGraphBuilder directly producing SSA form. This CL mostly just updates\ntests broken by not being able to inspect the pre-SSA form.\n\nUsing HLocals outside the HGraphBuilder is now deprecated.\n\nBug: 27150508\nChange-Id: I00fb6050580f409dcc5aa5b5aa3a536d6e8d759e\n"
    },
    {
      "commit": "1d23982327265e8139f67e37d9a86ba2758f7b4a",
      "tree": "bb3874b1e0e247115ab385c8809ac38da12e972b",
      "parents": [
        "b9adbf63f880f246d83b3af4ca03aca07711f857"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Feb 09 14:26:34 2016 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Feb 12 13:12:15 2016 -0800"
      },
      "message": "Generalized \"dom-based\" dynamic BCE to symbolic base + offset.\n\nRationale:\nSo far, if all others failed, BCE would use a dominator-based\ndynamic deoptimization to eliminate bounds checks in e.g. a[0],\na[1], a[2], etc. This CL generalizes this to any symbolic base\nwith offset in e.g. a[base], a[base+1], etc. The runtime tests\n(two for symbolic, one for constant) carefully account for\narithmetic wrap-around.\n\nbug\u003d26680114\n\nChange-Id: I7432a200fd69791914ed776c77fa62567b5863c0\n"
    },
    {
      "commit": "0d15f267eb9d629e26df0c603c39f9665951e970",
      "tree": "08b0635a78a64f44fd9c69dcdd1556d54e6add60",
      "parents": [
        "6c5907ad7ae1d242b90d692c478ba68b5cdcb44a",
        "6e332529c33be4d7dae5dad3609a839f4c0d3bfc"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Feb 12 16:34:49 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 12 16:34:49 2016 +0000"
      },
      "message": "Merge \"ART: Remove HTemporary\""
    },
    {
      "commit": "6e332529c33be4d7dae5dad3609a839f4c0d3bfc",
      "tree": "cedd2e1beb170fd5821136fe974e3f34adfcddc2",
      "parents": [
        "d3caabd4f85f86dd744da432993e12935d843a83"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Feb 02 16:15:27 2016 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Feb 12 15:17:50 2016 +0000"
      },
      "message": "ART: Remove HTemporary\n\nChange-Id: I21b984224370a9ce7a4a13a9652503cfb03c5f03\n"
    },
    {
      "commit": "5960a3f430d1e7f47ea3db9a8364dc82e3f8add9",
      "tree": "a5db2ead3ad957ba1a657145b308cb5b752ac90a",
      "parents": [
        "b20d0f6327acbc225eba517d220832ab9a1cd599",
        "d9994f069dfeaa32ba929ca78816b5b83e2a4134"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 12 13:25:56 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 12 13:25:56 2016 +0000"
      },
      "message": "Merge \"Re-enable OSR.\""
    },
    {
      "commit": "d9994f069dfeaa32ba929ca78816b5b83e2a4134",
      "tree": "a826990f89d8f546921902933a4cc05b57196971",
      "parents": [
        "be89a6f1d9e41b154be3fe1da97cedb6964fbd35"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 11 17:35:55 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 11 21:47:46 2016 +0000"
      },
      "message": "Re-enable OSR.\n\nFixes two bugs:\n- Dealing with proxy methods, which the compiler and code cache\n  does not handle.\n- Dealing with phi types, that may have been speculatively optimized\n  but do not hold once jumping to the compiled code.\n\nChange-Id: I7dcd9976ef7b12128fff95d2b7ed3e69cc42e90a\n"
    },
    {
      "commit": "d3caabd4f85f86dd744da432993e12935d843a83",
      "tree": "b7fb9f36c2725e78e0ba7f61fc8ff14c60666077",
      "parents": [
        "d3df33e6c24e3cd62991b2a65833f16dc05a17b8",
        "86503785cd6414b8692e5c83cadaa2972b6a099b"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Feb 11 21:39:41 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 11 21:39:41 2016 +0000"
      },
      "message": "Merge \"Fix x86-64 Baker\u0027s read barrier fast path for CheckCast.\""
    },
    {
      "commit": "d3df33e6c24e3cd62991b2a65833f16dc05a17b8",
      "tree": "39baa1939418c2bbee4b4b7d6677597c70971a7d",
      "parents": [
        "e52bf00fed14563d23e38a74908180e152b26629",
        "40bcb9356f951af2db4b9b671511841eedf59427"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Feb 11 19:27:37 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 11 19:27:37 2016 +0000"
      },
      "message": "Merge \"Some clean-up for the handling of HSelect in LSE\""
    },
    {
      "commit": "86503785cd6414b8692e5c83cadaa2972b6a099b",
      "tree": "a242e28bd3605dce65c9f5e94b5fc13f06f07d19",
      "parents": [
        "be89a6f1d9e41b154be3fe1da97cedb6964fbd35"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Feb 11 19:07:30 2016 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Feb 11 19:07:30 2016 +0000"
      },
      "message": "Fix x86-64 Baker\u0027s read barrier fast path for CheckCast.\n\nUse an art::x86_64::Label instead of an\nart::x86_64::NearLabel as end label when emitting code for a\nHCheckCast instruction, as the range of the latter may\nsometimes be too short when Baker\u0027s read barriers are\nenabled.\n\nBug: 12687968\nChange-Id: Ia9742dce65be7d4fb104688f3c4717b65df1fb54\n"
    },
    {
      "commit": "9b262128d7dc2b8caa5265e1b3c967465e58ef77",
      "tree": "dcc102e2cb1614b51d9ddd2a15cab15722d89b14",
      "parents": [
        "953e4c990456a71d351e17aee62e80e8133a186e",
        "119a885ff58f158a4e3cd783c5604ae4252a08eb"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 11 11:41:19 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 11 11:41:19 2016 +0000"
      },
      "message": "Merge \"Fix AllocateBlockedReg.\""
    },
    {
      "commit": "0c82e1afa325cff3c409c8e35184f139f5c06f68",
      "tree": "a768389ffa11bf986861721a203320efe3cf1879",
      "parents": [
        "927f40d925e2106598d413ac02e8d80463357258",
        "ca0bf0349f8da35b284df49732e30eeb62591034"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Feb 10 11:51:54 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 10 11:51:54 2016 +0000"
      },
      "message": "Merge \"Fix ARM64 Baker\u0027s read barrier fast path for ArraySet.\""
    },
    {
      "commit": "927f40d925e2106598d413ac02e8d80463357258",
      "tree": "b43a85e62460bb83a0e2e82deba969d6d896714f",
      "parents": [
        "dfcd2f43a6694482a4e691261905508f65d8dc9e",
        "354efa6cdf558b2331e8fec539893fa51763806e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 10 09:44:52 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 10 09:44:52 2016 +0000"
      },
      "message": "Merge \"Try to substitute constructor chains for IPUTs.\""
    },
    {
      "commit": "354efa6cdf558b2331e8fec539893fa51763806e",
      "tree": "b2d91993fc46011d1eeb416d411bf16fb4d25c20",
      "parents": [
        "519281001dabe9060e2bfefc2382570bab26c96a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 04 19:46:56 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 09 19:57:41 2016 +0000"
      },
      "message": "Try to substitute constructor chains for IPUTs.\n\nMatch a constructor chain where each constructor either\nforwards some or all of its arguments to the next (i.e.\nsuperclass constructor or a constructor in the same class)\nand may pass extra zeros (of any type, including null),\nfollowed by any number of IPUTs on \"this\", storing either\narguments or zeros, until we reach the contructor of\njava.lang.Object.\n\nWhen collecting IPUTs from the constructor chain, remove\nany IPUTs that store the same field as an IPUT that comes\nlater. This is safe in this case even if those IPUTs store\nvolatile fields because the uninitialized object reference\nwasn\u0027t allowed to escape yet. Also remove any IPUTs that\nstore zero values as the allocated object is already zero\ninitialized.\n\nChange-Id: If93022310bf04fe38ee741665ac4a65d4c2bb25f\n"
    },
    {
      "commit": "c70646e3c75ec97648bfa7c295e4b1685895afcc",
      "tree": "3d2d1cfd39762cb264d34bc906f8e38e15643f31",
      "parents": [
        "96bbc8fcac2d408e0afdcae933653198fb8bbe92",
        "d70dc9d824b715475d7fb3900757dba2f4d67f50"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 09 18:47:23 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 09 18:47:23 2016 +0000"
      },
      "message": "Merge \"ARM: Add direct calls to math intrinsics\""
    },
    {
      "commit": "ca0bf0349f8da35b284df49732e30eeb62591034",
      "tree": "5275be61f01748fc01137147740a19b30f2142a6",
      "parents": [
        "f637d80872d418fc62ee1d40b19e1f5a676d1399"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Feb 09 12:49:18 2016 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Feb 09 12:49:18 2016 +0000"
      },
      "message": "Fix ARM64 Baker\u0027s read barrier fast path for ArraySet.\n\nDo not exhaust the pool of scratch (temporary) registers\ngratuitously when emitting an instrumented array load with a\nlarge constant index.\n\nBug: 26817006\nBug: 12687968\nChange-Id: I65a4fe676aa3c9e2c8d7e26195d9af6432c83ff9\n"
    },
    {
      "commit": "40bcb9356f951af2db4b9b671511841eedf59427",
      "tree": "0d46c2a097fe925cedc8e6eb72d3ccd5997399cf",
      "parents": [
        "009a195c5507ddc799cf7a52927b0ac02aa7f7e6"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Feb 03 05:46:57 2016 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Feb 08 22:59:13 2016 -0800"
      },
      "message": "Some clean-up for the handling of HSelect in LSE\n\nUse $noinline and throwing an Exception for doing no-inlining in\nthe test.\nAlso create reference info early for HSelect if it has reference\ntype, which may help the pre-existence-based alias analysis.\n\nChange-Id: Ia825058a457b049f87a13087bb78f5233513e0a8\n"
    },
    {
      "commit": "c5bfa97c47d656b76f297af8abcd5f7502987399",
      "tree": "84da9d0f39096d8b857760a0848c0231aff0ed6d",
      "parents": [
        "a0f2bc5b09cdaf8a8ff5cec3c40a9f18885e8796"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Feb 05 15:49:10 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Feb 08 12:47:07 2016 +0000"
      },
      "message": "Split elf_writer_debug.cc to several files.\n\nRefactoring only. The file has grown significantly over time,\nand it is time to split it so it can be better managed.\n\nChange-Id: Idce0231718add722292f4701df353d5baf31de5f\n"
    },
    {
      "commit": "a0f2bc5b09cdaf8a8ff5cec3c40a9f18885e8796",
      "tree": "f7be0f7f42b3a79eef3f1f97f39ad73f5b269b72",
      "parents": [
        "e003beb849386236c1fe6e5edea6aaf5f58b7919",
        "4fda4eb799c95be266f52aaf3461a440ea86b841"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Feb 08 12:46:10 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 08 12:46:10 2016 +0000"
      },
      "message": "Merge \"Move code related to debug info generation to its own directory.\""
    },
    {
      "commit": "4fda4eb799c95be266f52aaf3461a440ea86b841",
      "tree": "54a7e56b5633caf2b868f6028010b488eb1923ce",
      "parents": [
        "3c258f4d7a6492af733a9351ba430d876a3e5ccf"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Fri Feb 05 13:34:46 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Feb 08 11:33:50 2016 +0000"
      },
      "message": "Move code related to debug info generation to its own directory.\n\ndebug/dwarf/ contains helper classes which hide the details\nof the DWARF file format. It acts as independent DWARF library.\n\ndebug/ contains ART-specific code which generates ELF debug\nsections (which includes non-DWARF sections like .symtab).\n\nChange-Id: Id351f604e4e64be2ca395a78324ea02e30481497\n"
    },
    {
      "commit": "119a885ff58f158a4e3cd783c5604ae4252a08eb",
      "tree": "6fb6eefb81d4d053645a3b5e8475ee4e8b43d68c",
      "parents": [
        "2a49bc4625155b80287c155b57354b9559d71bed"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Feb 06 17:01:15 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Feb 06 17:01:36 2016 +0000"
      },
      "message": "Fix AllocateBlockedReg.\n\nMotivated by System.arraycopy(char) for x86, where only looking\nat use and not register use makes the allocator think it\u0027s out\nof registers.\n\nbug:27019403\nChange-Id: I0db5bc839a77e6394a07facbf19d00a165dc2ef7\n"
    },
    {
      "commit": "a19616e3363276e7f2c471eb2839fb16f1d43f27",
      "tree": "ad3e7fd0f53229e95fb0443586fc30eedabe6967",
      "parents": [
        "9fba3f67a0792ad5eeb495e489d11a87211c318f"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Feb 01 18:57:58 2016 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Feb 05 09:26:21 2016 -0800"
      },
      "message": "Implemented compare/signum intrinsics as HCompare\n(with all code generation for all)\n\nRationale:\nAt HIR level, many more optimizations are possible, while ultimately\ngenerated code can take advantage of full semantics.\n\nChange-Id: I6e2ee0311784e5e336847346f7f3c4faef4fd17e\n"
    },
    {
      "commit": "9fba3f67a0792ad5eeb495e489d11a87211c318f",
      "tree": "7204ab0951b14fa2536fe33d974e413a3cbe87a5",
      "parents": [
        "0f638c64686c03256c949051331b0838c9888a2a",
        "b331febbab8e916680faba722cc84b66b84218a3"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 05 17:25:17 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 05 17:25:17 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Implement on-stack replacement for arm/arm64/x86/x86_64.\"\"\""
    },
    {
      "commit": "b331febbab8e916680faba722cc84b66b84218a3",
      "tree": "35f985b021e476914bfe91492da23fee218014a7",
      "parents": [
        "586996afc905518ed926e4680aab67bedabec9b7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 05 16:51:53 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 05 17:11:54 2016 +0000"
      },
      "message": "Revert \"Revert \"Implement on-stack replacement for arm/arm64/x86/x86_64.\"\"\n\nThis reverts commit bd89a5c556324062b7d841843b039392e84cfaf4.\n\nChange-Id: I08d190431520baa7fcec8fbdb444519f25ac8d44\n"
    },
    {
      "commit": "0f638c64686c03256c949051331b0838c9888a2a",
      "tree": "3124ad705f249a98bce4bf7f678e420a1732163e",
      "parents": [
        "11aa3f5c5efd5ce8e761dfd76378a91d9f8dc42b",
        "9f98025ba5541641cfa9abb7b9cf30332d91fad1"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Feb 05 16:07:44 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 05 16:07:44 2016 +0000"
      },
      "message": "Merge \"Extend De Morgan factorisation to `HBooleanNot`.\""
    },
    {
      "commit": "11aa3f5c5efd5ce8e761dfd76378a91d9f8dc42b",
      "tree": "746ab81bbc05e03fb918ca32cc8d5b296d083113",
      "parents": [
        "7ac9aeb501520089334c7b9e0deca1e089945bc8",
        "bd89a5c556324062b7d841843b039392e84cfaf4"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Feb 05 15:47:16 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 05 15:47:16 2016 +0000"
      },
      "message": "Merge \"Revert \"Implement on-stack replacement for arm/arm64/x86/x86_64.\"\""
    },
    {
      "commit": "bd89a5c556324062b7d841843b039392e84cfaf4",
      "tree": "185a1604d29d715aa3ac8e0284343bf8d538ef3e",
      "parents": [
        "891bc286963892ed96134ca1adb7822737af9710"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Feb 05 15:46:42 2016 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Feb 05 15:46:42 2016 +0000"
      },
      "message": "Revert \"Implement on-stack replacement for arm/arm64/x86/x86_64.\"\n\nDCHECK whether loop headers are covered fails.\n\nThis reverts commit 891bc286963892ed96134ca1adb7822737af9710.\n\nChange-Id: I0f9a90630b014b16d20ba1dfba31ce63e6648021\n"
    },
    {
      "commit": "7ac9aeb501520089334c7b9e0deca1e089945bc8",
      "tree": "2654ef827f6f15ac92f224c2b0460a3d3645fe2d",
      "parents": [
        "c8d2b0c174dc45c931eecf45a5fdd45fdf4be311",
        "891bc286963892ed96134ca1adb7822737af9710"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 05 14:39:18 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 05 14:39:18 2016 +0000"
      },
      "message": "Merge \"Implement on-stack replacement for arm/arm64/x86/x86_64.\""
    },
    {
      "commit": "c8d2b0c174dc45c931eecf45a5fdd45fdf4be311",
      "tree": "746ab81bbc05e03fb918ca32cc8d5b296d083113",
      "parents": [
        "3c258f4d7a6492af733a9351ba430d876a3e5ccf",
        "7c0b44f180f1b8cf82c568091d250071d1130954"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Feb 05 14:26:53 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 05 14:26:53 2016 +0000"
      },
      "message": "Merge \"Support CMOV for x86_64 Select\""
    },
    {
      "commit": "9f98025ba5541641cfa9abb7b9cf30332d91fad1",
      "tree": "5f49ea003ee2989f788605bf68b13c2e55db00e8",
      "parents": [
        "f1ea14af52b64adb45ba57ce8c525511c208d0e2"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Fri Feb 05 14:00:28 2016 +0000"
      },
      "committer": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Fri Feb 05 14:00:28 2016 +0000"
      },
      "message": "Extend De Morgan factorisation to `HBooleanNot`.\n\nChange-Id: I81aa92277fa136d675e7ef01be8e4acdbd3d3b7c\n"
    },
    {
      "commit": "e6e0cfd7984b2e0794dda751d17d2f528786b05c",
      "tree": "89c02eff7473feda06b2baf5e5bfcb6b30d4055b",
      "parents": [
        "519281001dabe9060e2bfefc2382570bab26c96a",
        "2f10a5fb8c236a6786928f0323bd312c3ee9a4cc"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Feb 05 13:12:24 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 05 13:12:24 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"X86: Use the constant area for more operations.\"\"\""
    },
    {
      "commit": "891bc286963892ed96134ca1adb7822737af9710",
      "tree": "596055109b4eed1a41ae61dbec76ad9d5a1d78df",
      "parents": [
        "586996afc905518ed926e4680aab67bedabec9b7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Jan 29 12:40:13 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Feb 05 11:48:04 2016 +0000"
      },
      "message": "Implement on-stack replacement for arm/arm64/x86/x86_64.\n\nHigh-level overview:\n- osr_method_threshold is used to know when to compile a method\n  in osr mode (-\u003e treat all loops as irreducible).\n- branch instructions in the compiler query whether they can\n  jump to an osr method.\n- An osr entry point is found through the stack maps: if a stack\n  map is duplicated in the CodeInfo, it is an osr entry point.\n\nChange-Id: Ifb39338cd281e2c7eccce67f4e18d46428be71e4\n"
    },
    {
      "commit": "2f10a5fb8c236a6786928f0323bd312c3ee9a4cc",
      "tree": "0dc51717b1f5d9b2c20898c5283467d4feb220e2",
      "parents": [
        "a20748aceb63396c5e09366968bbc71308f745df"
      ],
      "author": {
        "name": "Mark P Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Mon Jan 25 14:47:50 2016 +0000"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Thu Feb 04 12:59:22 2016 -0500"
      },
      "message": "Revert \"Revert \"X86: Use the constant area for more operations.\"\"\n\nThis reverts commit cf8d1bb97e193e02b430d707d3b669565fababb4.\n\nHandle the case of an intrinsic where CurrentMethod is still an input.\nThis will be the case when there are unresolved classes in the\nhierarchy.\n\nAdd a test case to confirm that we don\u0027t crash when handling Math.abs,\nwhich wants to add a pointer to the constant area for the bitmask to be\nused to remove the sign bit.\n\nEnhance 565-checker-condition-liveness to check for the case of deeply\nnested EmitAtUseSite chains.\n\nChange-Id: I022e8b96a32f5bf464331d0c318c56b9d0ac3c9a\n"
    },
    {
      "commit": "d70dc9d824b715475d7fb3900757dba2f4d67f50",
      "tree": "96c4899b0989c61470bfb899b719a63bd9d3f937",
      "parents": [
        "85b3b52a931b54380be3753216e97431ae2215a9"
      ],
      "author": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Thu Feb 04 14:59:04 2016 +0000"
      },
      "committer": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Thu Feb 04 17:17:32 2016 +0000"
      },
      "message": "ARM: Add direct calls to math intrinsics\n\nThis change mirrors the work that has already been done for x86 and\nx86_64. The following functions are affected: cos, sin, acos, asin,\natan, atan2, cbrt, cosh, exp, expm1, hypot, log, log10, nextafter,\nsinh, tan, tanh.\n\nChange-Id: I476348271a4cfc2579d1ea00ba4a80430f81f0fe\n"
    },
    {
      "commit": "7c0b44f180f1b8cf82c568091d250071d1130954",
      "tree": "b5fb37efa21ad0a8f56ebc9e1fcfd636a6e62b76",
      "parents": [
        "a20748aceb63396c5e09366968bbc71308f745df"
      ],
      "author": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Mon Feb 01 10:08:35 2016 -0500"
      },
      "committer": {
        "name": "Mark Mendell",
        "email": "mark.p.mendell@intel.com",
        "time": "Thu Feb 04 11:56:03 2016 -0500"
      },
      "message": "Support CMOV for x86_64 Select\n\nIf possible, generate CMOV to implement HSelect.  Tricky cases are\nan FP condition (no single CC generated), FP inputs (no FP CMOV)\nand when the condition is a boolean or not emitted at the use site.\nIn these cases, keep using the existing HSelect code.\n\nAdded Load32BitValue for int and FP and used that to remove code\nduplication. Added minimal checker test for int/long CMOV generation.\n\nChange-Id: Id71e515f0afa5a30f53c5de3a5244de1ea429aae\nSigned-off-by: Mark Mendell \u003cmark.p.mendell@intel.com\u003e\n"
    },
    {
      "commit": "3f1a8be7c9511afbc1ea0ce2e76a018269382336",
      "tree": "98511fb06ea5912a56289c7c564484af03baa66f",
      "parents": [
        "c5b76b9328d77b83c80afed14a5b6e7009136e15"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Feb 03 12:56:02 2016 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Feb 03 12:56:02 2016 -0800"
      },
      "message": "Fixed bug on premature DCHECK.\nWith fail-before/pass-after test\n\nbug\u003d26947011\n\nRationale:\nDuring BCE, the phi structure is under construction,\nto be fixed by InsertPhiNodes() and carefully checked\nwith the SSA checker. So utilities should not overly\nDCHECK on SSA consistency during the modifications.\n\nChange-Id: Ia9df9ee5aac0c1dd2c3e3a447c730246d5e48bbb\n"
    },
    {
      "commit": "c5b76b9328d77b83c80afed14a5b6e7009136e15",
      "tree": "6374f0105a707d3491fbb58cefcdff2c35938665",
      "parents": [
        "a20748aceb63396c5e09366968bbc71308f745df",
        "1fc3afb76dbed78d255db276381df6036db2ee98"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Feb 03 17:29:11 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 03 17:29:11 2016 +0000"
      },
      "message": "Merge \"Minor improvement on static BCE analysis.\""
    },
    {
      "commit": "1fc3afb76dbed78d255db276381df6036db2ee98",
      "tree": "61ee6429e39fad5ae5d5d6d620966ce90fead39c",
      "parents": [
        "97f4bc04b61d5cf78b0820dbf18e999b20d7a108"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Feb 02 13:26:16 2016 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Feb 03 09:22:27 2016 -0800"
      },
      "message": "Minor improvement on static BCE analysis.\n\nRationale:\nAvoid testing initial range if nothing is known.\n\nChange-Id: I22646a5fd6e4481245d1a2f57891d2805550489f\n"
    },
    {
      "commit": "a20748aceb63396c5e09366968bbc71308f745df",
      "tree": "6d1ae7382f807ba8eddc0c8b45aa131bc0554888",
      "parents": [
        "905cb88fa4a8e3b7fd29424a35572d0d19c7bce5",
        "2aba7cd68851d79643338f57fcf2dff3cbf81895"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Feb 03 12:28:41 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 03 12:28:41 2016 +0000"
      },
      "message": "Merge \"Implement first kind of polymorphic inlining on MIPS.\""
    },
    {
      "commit": "2aba7cd68851d79643338f57fcf2dff3cbf81895",
      "tree": "449f65420cddb1becdb8c7cbd573b3c0cf5e1f81",
      "parents": [
        "85fdcda926fbab0e5a7b3e8b3541f5d225b2bcdb"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Feb 03 12:27:20 2016 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Feb 03 12:27:20 2016 +0000"
      },
      "message": "Implement first kind of polymorphic inlining on MIPS.\n\nChange-Id: Ie430d6c5821273143a1872b376e8e24683d00ab0\n"
    },
    {
      "commit": "905cb88fa4a8e3b7fd29424a35572d0d19c7bce5",
      "tree": "dfeb6a224c7ba66c65f21a9961997e3174f61d40",
      "parents": [
        "6b5a17a84d84fc4a9131d7a256e6586d906be064",
        "ca0e3a0c9f1fd5902dc40043b061d2f9b79ec098"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Feb 03 12:14:14 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 03 12:14:14 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Optimizing: double-negated bitwise operations simplifications\"\"\""
    },
    {
      "commit": "ca0e3a0c9f1fd5902dc40043b061d2f9b79ec098",
      "tree": "e410c21a6f94536a1cc9666f6f017d135a29ca82",
      "parents": [
        "b72923dd4d6e1636163047c960395ed9879e31fc"
      ],
      "author": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Wed Feb 03 10:54:07 2016 +0000"
      },
      "committer": {
        "name": "Alexandre Rames",
        "email": "alexandre.rames@linaro.org",
        "time": "Wed Feb 03 10:54:07 2016 +0000"
      },
      "message": "Revert \"Revert \"Optimizing: double-negated bitwise operations simplifications\"\"\n\nThis reverts commit 737c0a99dfbba306ec1f50e2adf66b5d97805af6 with fixes.\n\nIn the original patch, the new instruction could be inserted before\none of its inputs. A regression test is also added.\n\nChange-Id: Ie49a17ac90ff048355d9cc944b468cd1b1914424\n"
    },
    {
      "commit": "371d75ef9e478ccd54e43e727e48ff5c4918e55e",
      "tree": "5d3aa619447c10d6ee8d411efec734f729c8f3d6",
      "parents": [
        "cbe3b55ac3c34c9f6f3b7f0ddd86f9b88243547d",
        "7770a3e080db3fb26e0754dc5afd05eb73aae2a7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 03 10:44:56 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 03 10:44:56 2016 +0000"
      },
      "message": "Merge \"Assume fp operations can also take a constant on x86.\""
    },
    {
      "commit": "7770a3e080db3fb26e0754dc5afd05eb73aae2a7",
      "tree": "e7eb4be8e179b684550c0a77dd2a194a1b809693",
      "parents": [
        "b72923dd4d6e1636163047c960395ed9879e31fc"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 03 10:13:41 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 03 10:13:41 2016 +0000"
      },
      "message": "Assume fp operations can also take a constant on x86.\n\nBecause irreducible loops disable the constant pool optimization\non x86, we need to handle cases where a fp operation gets one.\n\nChange-Id: I43387f31aa2589d02112953baa62fd0994d0a6d7\n"
    },
    {
      "commit": "674f519fe00ae07e0db90c4374f785bb418ae332",
      "tree": "8705413a538abcf757415ce5e24bdfc7d264109f",
      "parents": [
        "b72923dd4d6e1636163047c960395ed9879e31fc"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Feb 02 16:50:46 2016 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Feb 03 09:59:35 2016 +0000"
      },
      "message": "ART: Enable multi-level instruction inlining\n\nChange-Id: I4b4c927d7b1598dc197793c25185fb079dec7fe1\n"
    },
    {
      "commit": "e5c71f98cb74943157d22f7cf408847156eae402",
      "tree": "995beca986d038ac499e07fad59b94a362083216",
      "parents": [
        "88df4892c8b48de3019fd48c2ea2f49cf8eed098"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Feb 02 20:10:32 2016 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Feb 02 20:53:21 2016 -0800"
      },
      "message": "Handle HSelect in LSE.\n\nHSelect essentially creates an alias which breaks the singleton\nassumption. Need to handle the case in singleton detection.\n\nBug: 26922558\nChange-Id: I259deefe16e1e16c08179a10369cfe5ae23ae155\n"
    },
    {
      "commit": "623a7a29e48b7dfbaa0a0d4561ac6371c2f75032",
      "tree": "1cbfd07473d92eb5010d2a9c4c342f432b8d21ee",
      "parents": [
        "f7b6a3e42b81b2a7934737790c0d45c2cc7ca6bc"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 02 18:14:52 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 02 18:50:12 2016 +0000"
      },
      "message": "MIPS32: Fix codegen register dumps.\n\nDump raw registers instead of managed registers to be\nin line with other architectures. This fixes a checker\nfailure in 510-checker-try-catch where we have previously\nemitted a space that stopped the regexp search. However,\nthere still remains a runtime failure of the 510 test:\n  Exception in thread \"main\" java.lang.Error:\n    Method: \"testCatchPhi_double\",\n    path: ExceptionalFlow1, expected: 3, actual: 0\n\nChange-Id: Ib9ad2c60baf2e322ce1eb58b9dc39feb5ab6f148\n"
    },
    {
      "commit": "ba70200c03f0481543877b218a8626c107edfbf6",
      "tree": "e684332612c43e63b2af2799f2a28b0e9d2c95d5",
      "parents": [
        "85fdcda926fbab0e5a7b3e8b3541f5d225b2bcdb"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Mon Feb 01 18:15:29 2016 +0000"
      },
      "committer": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Tue Feb 02 17:18:59 2016 +0000"
      },
      "message": "Add MIPS floating point register mapping to DWARF.\n\nChange-Id: I88508461412bc166549843744a3c6a4ee925b2c7\n"
    },
    {
      "commit": "5f16c05407ed5f7f72fa761263fd5eac37de0077",
      "tree": "69983c047840a25851ad570eb838675284ccaa56",
      "parents": [
        "b86f963ce95b25bfae892fa425ab02f2fb706f87",
        "4a6a67ca93289b232a620bdf8bf30ff8b7b0b428"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Feb 02 14:36:58 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 02 14:36:58 2016 +0000"
      },
      "message": "Merge \"Remove unused DMB code paths in the ARM64 Optimizing Compiler\""
    },
    {
      "commit": "02fc24ea55aa71a352e64d6878ee3bace6050da1",
      "tree": "21716366702da084a2743a23f20349e33b97e995",
      "parents": [
        "909147a304500737824de5e1feab135560881e86"
      ],
      "author": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Wed Jan 20 16:48:19 2016 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Feb 02 11:51:42 2016 +0000"
      },
      "message": "ARM64: Add direct calls to math intrinsics\n\nThis change mirrors the work that has already been done for x86 and\nx86_64. The following functions are affected: cos, sin, acos, asin,\natan, atan2, cbrt, cosh, exp, expm1, hypot, log, log10, nextafter,\nsinh, tan, tanh.\n\nChange-Id: I0f381bd2c1c4273b243c045107110fed551c6124\nSigned-off-by: Anton Kirilov \u003canton.kirilov@linaro.org\u003e\n"
    },
    {
      "commit": "a9e5521b2ae04a64c5a90be6955fc154d4a5da4e",
      "tree": "04e857c25c1bea2cb962e9ff7a220aba53157461",
      "parents": [
        "7fac3532a836920cf4d478d97b9d67b2bf2aed39",
        "d967266cdfc8011c81ba6e9857a247c4a73bd0fc"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 02 10:39:20 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 02 10:39:20 2016 +0000"
      },
      "message": "Merge \"MIPS64: Remove unaligned memory access from art generated code\""
    },
    {
      "commit": "c3cf1d2e35a45bd2e2c60fbc9c2a1a6a56dfc529",
      "tree": "f896e5dfded012d2fe29cbc81efda527e0aed1be",
      "parents": [
        "fda30a435d672988c3ec1805905b359a5e756bf3",
        "bb24bd0245aefa2f808e4656be01b990abecd80b"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Feb 01 18:32:50 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 01 18:32:50 2016 +0000"
      },
      "message": "Merge \"Implemented signum() on ARM64.\""
    },
    {
      "commit": "bb24bd0245aefa2f808e4656be01b990abecd80b",
      "tree": "53a3f19168e8e20a8fb0f21daec9d4e618126a1e",
      "parents": [
        "7f1551d28b3674799a4bb2b198bf6b16f32082af"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Jan 29 12:54:04 2016 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Feb 01 10:30:15 2016 -0800"
      },
      "message": "Implemented signum() on ARM64.\n\nChange-Id: Ib805e62341f6c5e4fcc35c73d12e217fbae948ce\n"
    },
    {
      "commit": "03196cfae4e8a91ce37d257b315f78a965a79829",
      "tree": "b4cd8397a53e8c0a38ff6211f0ea84841a085602",
      "parents": [
        "7f1551d28b3674799a4bb2b198bf6b16f32082af"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 01 12:23:22 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 01 12:25:24 2016 +0000"
      },
      "message": "Be on the safe side: emit an environment for runtime calls.\n\nEven if those runtime calls don\u0027t throw, they may be interrupted\nand be asked to dump their stack. Since dumping a stack also dumps\nlocked Java objects, we need a DexRegisterMap at these locations\nto know the location of those objects.\n\nAdds 0.05% to boot image code size.\n\nbug:26168076\nChange-Id: I7c3975addea9ddf3123183b07108b0701bb26fc8\n"
    },
    {
      "commit": "7b56502c52271c52ef0232ccd47e96badfe5dba6",
      "tree": "699c5b25bd6670331b1595c4545e253753b81741",
      "parents": [
        "ea3a00744d05bd403f423582bf6dc8462d305b31"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Jan 28 14:36:22 2016 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Jan 29 10:12:50 2016 -0800"
      },
      "message": "Implement compare() on ARM64.\n\nChange-Id: I6b5982aeb7401cd90fc37431a72bdd2b7f3e322b\n"
    },
    {
      "commit": "ea3a00744d05bd403f423582bf6dc8462d305b31",
      "tree": "dbe556dab41ce0d92c7679b2948c23ff0a0effdc",
      "parents": [
        "1c720b7adf51f58248748f7505582349a73a651c",
        "c5d4754198aadb2ada2d3f5daacd10d79bc13f38"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Jan 29 17:43:30 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 29 17:43:30 2016 +0000"
      },
      "message": "Merge \"Implementation of integer intrinsics on x86_64\""
    },
    {
      "commit": "1c720b7adf51f58248748f7505582349a73a651c",
      "tree": "4f50bba057f2a7911574bde6ccb37e993df8c30d",
      "parents": [
        "ba5ea7003f071f85936ee351aff46f64a56ee096",
        "fedd91d50930e160c021d65b3740264f6ffec260"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jan 29 17:38:57 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 29 17:38:57 2016 +0000"
      },
      "message": "Merge \"Optimizing compiler support for directly calling interface methods\""
    },
    {
      "commit": "d967266cdfc8011c81ba6e9857a247c4a73bd0fc",
      "tree": "7bf469b0656c4819921799d814b2ca7a4f1705be",
      "parents": [
        "ba5ea7003f071f85936ee351aff46f64a56ee096"
      ],
      "author": {
        "name": "Lazar Trsic",
        "email": "Lazar.Trsic@imgtec.com",
        "time": "Thu Sep 03 17:33:01 2015 +0200"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Fri Jan 29 17:38:06 2016 +0100"
      },
      "message": "MIPS64: Remove unaligned memory access from art generated code\n\nUnaligned memory access was caused by sd, ld, ldc1 and sdc1\ninstructions. Check if offset is unaligned and replace it\nwith two 32 bit memory accesses, if so.\n\nAdded assembler tests for new instructions, as well as assembler\ntests for LoadFromOffset, LoadFpuFromOffset, StoreToOffset and\nStoreFpuToOffset.\n\nChange-Id: I0228a4a2ce6c801eeb5b46952b8330e14468deb3\n"
    },
    {
      "commit": "87d38b73fefe904feffa2c22036b8e822f1652f6",
      "tree": "b256f7b2e6759c6a456661ccc652695a0e91a9b4",
      "parents": [
        "4cd4c399bf3218c28770e175bb7fed58816b21ca",
        "adda435ebb3b678b1920a99d18d63c78031bee83"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 29 11:08:21 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 29 11:08:21 2016 +0000"
      },
      "message": "Merge \"Optimizing: Use dex pc 0 for pattern substitution-generated IGET.\""
    },
    {
      "commit": "adda435ebb3b678b1920a99d18d63c78031bee83",
      "tree": "1d9ea376c8f8ca72adc92927f5bdaa47e54a132d",
      "parents": [
        "10cd5eec804167dd67b4fd1096108f0837e151c6"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 29 10:24:41 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 29 10:55:13 2016 +0000"
      },
      "message": "Optimizing: Use dex pc 0 for pattern substitution-generated IGET.\n\nIn the read barrier configuration, HInstanceFieldGet needs\na slow-path with a runtime call with an associated stack map\nand we assert that we have a valid dex pc for stack maps.\nFix the pattern substitution-generated HInstanceFieldGet to\nuse the valid, if bogus, dex pc 0.\n\nBug: 26854537\nBug: 12687968\n\nChange-Id: I9f379ea530ce3f89af8db40169a6c41b525abbd7\n"
    },
    {
      "commit": "04d3e87e5ec2ab2f18da937a3d2e864a78fc9813",
      "tree": "fcfcc67c7963dc41c01c6f40dca08c9882fc0a81",
      "parents": [
        "ed1d318eccd3d7e9bc7bdbdf6dbb64e1d0bf6dba"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Jan 29 09:50:09 2016 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Jan 29 09:50:09 2016 +0000"
      },
      "message": "ART: Do not use AT register in MIPS DSS\u003c-\u003eRP swap\n\nLoadFromOffset clobbers AT if stack offset does not fit in int16_t.\nWe should never hit that limit but let\u0027s stay on the safe side.\n\nChange-Id: I77f564dc3edd0b47d06f8fafb5610c7c0205e9b2\n"
    },
    {
      "commit": "fedd91d50930e160c021d65b3740264f6ffec260",
      "tree": "5f356423e51f3bd71020ba0a5f024c54adc959e7",
      "parents": [
        "97f4bc04b61d5cf78b0820dbf18e999b20d7a108"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jan 07 14:49:16 2016 -0800"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Jan 28 15:46:55 2016 -0800"
      },
      "message": "Optimizing compiler support for directly calling interface methods\n\nThis teaches the optimizing compiler how to perform invoke-super on\ninterfaces. This should make the invokes generally faster.\n\nBug: 24618811\n\nChange-Id: I7f9b0fb1209775c1c8837ab5d21f8acba3cc72a5\n"
    },
    {
      "commit": "c5d4754198aadb2ada2d3f5daacd10d79bc13f38",
      "tree": "14a45666039b2312d3903ab62a5293f338dcf5a2",
      "parents": [
        "4047c5b3b00f015b81cb52da0cda545d6a3820c8"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Jan 27 17:00:35 2016 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Jan 28 11:22:30 2016 -0800"
      },
      "message": "Implementation of integer intrinsics on x86_64\n\nRationale:\nEfficient implementations of common integer operations.\nAlready tested in:\n  564-checker-bitcount\n  565-checker-rotate:\n  566-checker-signum\n  567-checker-compare\n  568-checker-onebit  (extended to deal with run-time zero)\n\nChange-Id: Ib48c76eee751e7925056d7f26797e9a9b5ae60dd\n"
    },
    {
      "commit": "be10e8e99a78caae01fb65769218800d465144ae",
      "tree": "cfa5cd3264137febdba6e49cae0393c779c6439c",
      "parents": [
        "fa72bf1823a39b43552fa1b9ae572023830a4ac1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jan 22 12:09:44 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jan 28 18:13:53 2016 +0000"
      },
      "message": "Optimizing: Try pattern substitution when we cannot inline.\n\nChange-Id: I7c01f4494bac8498accc0f087044ec509fee4c98\n"
    },
    {
      "commit": "cc0f31174fe573f25d5952f4d9adaf75220b5a23",
      "tree": "6a560b0f7c18547bb63f4ff29a38b7caf2e9d8ff",
      "parents": [
        "6f06fdb008d8f3d5fca09db5a22b6a2a23eced42"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jan 28 17:14:52 2016 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jan 28 17:36:45 2016 +0000"
      },
      "message": "ART: Add missing swaps to MIPS codegen\n\nChange-Id: I0fb50280ddf43f817d991c15d3b6cdeb4635d6c2\n"
    },
    {
      "commit": "6f06fdb008d8f3d5fca09db5a22b6a2a23eced42",
      "tree": "c2ccdaed8113a303034aca1f13457c0e284a7f2f",
      "parents": [
        "9ff1de06d6ed1da36f7e976224a2d13e5e9882bf",
        "b11b0725d02aafd6e3ea4eb514b215149c893bf0"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jan 28 16:25:00 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 28 16:25:00 2016 +0000"
      },
      "message": "Merge \"ART: Fix gtest after liveness CL\""
    },
    {
      "commit": "b11b0725d02aafd6e3ea4eb514b215149c893bf0",
      "tree": "caa8712fccb1ab63e1951bd9628054a16aeaa71c",
      "parents": [
        "bee600ff66e3e233274faa1391890ff424a8244e"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jan 28 16:22:40 2016 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jan 28 16:24:21 2016 +0000"
      },
      "message": "ART: Fix gtest after liveness CL\n\nChange-Id: I2d029044cebe6e1ee7d7efb2e20541060f88c07c\n"
    },
    {
      "commit": "9ff1de06d6ed1da36f7e976224a2d13e5e9882bf",
      "tree": "9121c384f3e0375fccfa4ca9f71c7d86baf38904",
      "parents": [
        "bee600ff66e3e233274faa1391890ff424a8244e",
        "a42363f79832a6e14f348514664dc6dc3edf9da2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 28 16:09:16 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 28 16:09:16 2016 +0000"
      },
      "message": "Merge \"Implement first kind of polymorphic inlining.\""
    },
    {
      "commit": "a42363f79832a6e14f348514664dc6dc3edf9da2",
      "tree": "bcd43acdf9903a704b566af00b5c740786284b7b",
      "parents": [
        "9cea9139033a4d04437ebc5542e9466fd67137fe"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Dec 17 14:57:09 2015 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 28 15:55:46 2016 +0000"
      },
      "message": "Implement first kind of polymorphic inlining.\n\nAdd HClassTableGet to fetch an ArtMethod from the vtable or imt,\nand compare it to the only method the profiling saw.\n\nChange-Id: I76afd3689178f10e3be048aa3ac9a97c6f63295d\n"
    },
    {
      "commit": "74eb1b264691c4eb399d0858015a7fc13c476ac6",
      "tree": "0b6fc4f3003d50bf6c388601013cdfc606e53859",
      "parents": [
        "75fd2a8ab9b4aff59308034da26eb4986d10fa9e"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Dec 14 11:44:01 2015 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jan 28 15:50:27 2016 +0000"
      },
      "message": "ART: Implement HSelect\n\nThis patch adds a new HIR instruction to Optimizing. HSelect returns\none of two inputs based on the outcome of a condition.\n\nThis is only initial implementation which:\n - defines the new instruction,\n - repurposes BooleanSimplifier to emit it,\n - extends InstructionSimplifier to statically resolve it,\n - updates existing code and tests accordingly.\n\nCode generators currently emit fallback if/then/else code and will be\nupdated in follow-up CLs to use platform-specific conditional moves\nwhen possible.\n\nChange-Id: Ib61b17146487ebe6b55350c2b589f0b971dcaaee\n"
    },
    {
      "commit": "75fd2a8ab9b4aff59308034da26eb4986d10fa9e",
      "tree": "6685693728a44eb1a1424ea836401397618d91a3",
      "parents": [
        "2d36c0ced12435e8dbc216c4ee4ebf32dbe19669",
        "b3e773eea39a156b3eacf915ba84e3af1a5c14fa"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jan 28 15:48:32 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 28 15:48:32 2016 +0000"
      },
      "message": "Merge \"ART: Implement support for instruction inlining\""
    },
    {
      "commit": "b3e773eea39a156b3eacf915ba84e3af1a5c14fa",
      "tree": "6c0d3a748d7b445a0d776ed306c7add43a0e1dd3",
      "parents": [
        "05aeb408f292d8d94af1646a94bc69faf77f0b46"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Jan 26 11:28:37 2016 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jan 28 15:48:00 2016 +0000"
      },
      "message": "ART: Implement support for instruction inlining\n\nOptimizing HIR contains \u0027non-materialized\u0027 instructions which are\nemitted at their use sites rather than their defining sites. This\nwas not properly handled by the liveness analysis which did not\nadjust the use positions of the inputs of such instructions.\nDespite the analysis being incorrect, the current use cases never\nproduce incorrect code.\n\nThis patch generalizes the concept of inlined instructions and\nupdates liveness analysis to set the compute use positions correctly.\n\nChange-Id: Id703c154b20ab861241ae5c715a150385d3ff621\n"
    },
    {
      "commit": "9e485e66b50598a3978b8a010085063edb0feb85",
      "tree": "dd8c473263a63565a42434ab350e5bc9da628725",
      "parents": [
        "05aeb408f292d8d94af1646a94bc69faf77f0b46",
        "2e50ecb95ddf645595491438cf35e79b705ee366"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jan 28 15:33:33 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 28 15:33:33 2016 +0000"
      },
      "message": "Merge \"Fix ARM \u0026 ARM64 UnsafeCASObject intrinsic with heap poisoning.\""
    },
    {
      "commit": "8bfdf83aa73a19233f62b7a8d4761e84b1713db4",
      "tree": "a85606f142e88b4e2de0317af2ba5caec69144f9",
      "parents": [
        "c5a8af76c337b49a05fe647cf2d1a0ceb8da4f76",
        "ad4ed08d557ff24bd7c66d3f36687d2035367ad0"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 28 09:14:04 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jan 28 09:14:04 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Lift the spill at each irreducible loop block restriction.\"\"\""
    },
    {
      "commit": "ad4ed08d557ff24bd7c66d3f36687d2035367ad0",
      "tree": "8322b51a8551c7805427b19f058a68659374b710",
      "parents": [
        "902838d865eaed9fa4df6414c706e5f6787d02ea"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Jan 27 14:15:23 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jan 28 09:11:42 2016 +0000"
      },
      "message": "Revert \"Revert \"Lift the spill at each irreducible loop block restriction.\"\"\n\nThis reverts commit 2818dbcd75ea9beadcba9d18e2f68523108d0cf5.\n\nChange-Id: I92b2b60b4f08f50cacfea4132f1c28cfbd628f1a\n"
    },
    {
      "commit": "4a6a67ca93289b232a620bdf8bf30ff8b7b0b428",
      "tree": "54e8c8fad3de00a8edd2fb8766bdfb0e2b6fc533",
      "parents": [
        "2aaf58e90c9229610b2a16644e9866b6741ce9ca"
      ],
      "author": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@linaro.org",
        "time": "Wed Jan 27 09:19:56 2016 +0000"
      },
      "committer": {
        "name": "Serban Constantinescu",
        "email": "serban.constantinescu@linaro.org",
        "time": "Wed Jan 27 21:24:08 2016 +0000"
      },
      "message": "Remove unused DMB code paths in the ARM64 Optimizing Compiler\n\nCurrently all ARM64 CPUs will be using the acquire-release code paths.\nThis patch removes the instruction set feature PreferAcquireRelease()\nas well as all the unused DMB code paths.\n\nChange-Id: I61c320d6d685f96c9e260f25eac3593907793830\nSigned-off-by: Serban Constantinescu \u003cserban.constantinescu@linaro.org\u003e\n"
    },
    {
      "commit": "30202b2665adbb3c7b88b06adfe96d2f0e159099",
      "tree": "ff925840d3f46d8bfb895bf7fcaf19abd7517fde",
      "parents": [
        "c3a02d2e9a12d1cd085c91cc6c876ae44daee805",
        "5b1c2ca30dad519be285f0a1e839c23cc4e3a51d"
      ],
      "author": {
        "name": "David Srbecky",
        "email": "dsrbecky@google.com",
        "time": "Wed Jan 27 16:31:02 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 27 16:31:02 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Add option to generate compressed backtrace info.\"\"\""
    },
    {
      "commit": "f032f3afe513093c508434b17ff1921a114c4424",
      "tree": "733cb5e9e2451043e4e951077abbce94706fb1e3",
      "parents": [
        "902838d865eaed9fa4df6414c706e5f6787d02ea",
        "7d1fbf38412078090e81e9d9fa502635d8541707"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 27 14:22:37 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 27 14:22:37 2016 +0000"
      },
      "message": "Merge \"Optimizing: Lazy creation of Handle\u003c\u003es in RTP.\""
    },
    {
      "commit": "2e50ecb95ddf645595491438cf35e79b705ee366",
      "tree": "9c526b4d7496ef4b94fef5fda08a34b612e641c8",
      "parents": [
        "902838d865eaed9fa4df6414c706e5f6787d02ea"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jan 27 14:08:33 2016 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jan 27 14:11:12 2016 +0000"
      },
      "message": "Fix ARM \u0026 ARM64 UnsafeCASObject intrinsic with heap poisoning.\n\nEnsure aliasing does not make us poison/unpoison the same\nvalue twice.\n\nAlso extend testing of Unsafe.compareAndSwap* routines.\n\nBug: 26204023\nBug: 12687968\nChange-Id: I29d7e5dd2a969845e054798f77837d20e3c18483\n"
    },
    {
      "commit": "7d1fbf38412078090e81e9d9fa502635d8541707",
      "tree": "1ed94174f9889390e61a8af45e7414efc9ad0c57",
      "parents": [
        "8eb38714be15fd9a129e2ecabc756a121c23f638"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jan 26 15:01:12 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jan 27 13:20:52 2016 +0000"
      },
      "message": "Optimizing: Lazy creation of Handle\u003c\u003es in RTP.\n\nThis reduces the number of StackHandleScope\u003c\u003es that we\nallocate, especially when we\u0027re inlining many methods.\nPreviously, each RTP would create 4 handles in the ctor\nwhich is actually the same as kNumReferencesPerScope.\n\nChange-Id: Ib6767993b1e89913a91275f0ef66dac786bccb6c\n"
    },
    {
      "commit": "b1bd048f569aea0c2e76abd999750add2da6280c",
      "tree": "83f06fcab90e6bec7fe1bca66281eb1b4022ebc3",
      "parents": [
        "1e953c3795f700a573fabfda81493ce22f143922",
        "59c9454b92c2096a30a2bbdffb64edf33dbdd916"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Jan 26 20:22:57 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 26 20:22:57 2016 +0000"
      },
      "message": "Merge \"Recognize common utilities as intrinsics.\""
    },
    {
      "commit": "59c9454b92c2096a30a2bbdffb64edf33dbdd916",
      "tree": "e9063a473e7e96a647917c1365c172d927c7d87b",
      "parents": [
        "8881c422743ac4ffd3d594420fec078d896dd05f"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Jan 25 14:20:58 2016 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Jan 26 10:18:42 2016 -0800"
      },
      "message": "Recognize common utilities as intrinsics.\n\nRationale:\nRecognizing these method calls as intrinsics already has\nmajor advantages (compiler knows about no-side-effects/no-throw\nproperties). Next step is, of course, to implement these\nwith native instructions on each architecture.\n\nChange-Id: I06fd12973238caec00d67b31b195d7f8807a538e\n"
    },
    {
      "commit": "09e8d5ffe52c738c6a74984b1cbc7ad4bc8f5e2c",
      "tree": "c48431e449a0bb23c8959bac451a4ff77d538c16",
      "parents": [
        "8881c422743ac4ffd3d594420fec078d896dd05f"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Jan 22 16:49:55 2016 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Jan 26 10:05:40 2016 -0800"
      },
      "message": "Some minor simplifications in code and tests.\n\nBackground:\nThis is actually a resubmit of an earlier cl that was\nreverted because was test was less robust against\ninlining changes (it assumed a virtual call would\nnever be inlined).\n\noriginal cl: If8ada79dfd70bea991c11d2b18661b951b6c4cd4\nrevert cl:   I739aaaccd0509d02a62ef01e797a6d45bfe941df\n\nChange-Id: I952680d60ff488874907f066bfdf156a45b409ba\n"
    },
    {
      "commit": "8881c422743ac4ffd3d594420fec078d896dd05f",
      "tree": "e2a07e17dc43e46ed3184686828e2fcef6153b20",
      "parents": [
        "a00d5fe43701e5fd876fafee23893bdb0a297251",
        "2818dbcd75ea9beadcba9d18e2f68523108d0cf5"
      ],
      "author": {
        "name": "Bart Sears",
        "email": "bsears@google.com",
        "time": "Tue Jan 26 17:39:16 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 26 17:39:16 2016 +0000"
      },
      "message": "Merge \"Revert \"Lift the spill at each irreducible loop block restriction.\"\""
    },
    {
      "commit": "2818dbcd75ea9beadcba9d18e2f68523108d0cf5",
      "tree": "5e4a1f49fe8e59c105397b53da3a5a963a22a9ff",
      "parents": [
        "79e9f43951c3cfa9ab3b0fea93e5bfdfa7aa5950"
      ],
      "author": {
        "name": "Bart Sears",
        "email": "bsears@google.com",
        "time": "Tue Jan 26 17:38:19 2016 +0000"
      },
      "committer": {
        "name": "Bart Sears",
        "email": "bsears@google.com",
        "time": "Tue Jan 26 17:38:19 2016 +0000"
      },
      "message": "Revert \"Lift the spill at each irreducible loop block restriction.\"\n\nThis reverts commit 79e9f43951c3cfa9ab3b0fea93e5bfdfa7aa5950.\n\nChange-Id: I0670618b4076e06bd3f6bf8c385abfd1b651393c\n"
    },
    {
      "commit": "a00d5fe43701e5fd876fafee23893bdb0a297251",
      "tree": "dad261fd25fbe3a0c2214b6dec7a8ec53aee5e67",
      "parents": [
        "8eb38714be15fd9a129e2ecabc756a121c23f638",
        "79e9f43951c3cfa9ab3b0fea93e5bfdfa7aa5950"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 26 16:36:44 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 26 16:36:44 2016 +0000"
      },
      "message": "Merge \"Lift the spill at each irreducible loop block restriction.\""
    }
  ],
  "next": "79e9f43951c3cfa9ab3b0fea93e5bfdfa7aa5950"
}
