)]}'
{
  "log": [
    {
      "commit": "c70d1d99654b25491997589b6ecfa431679ea2e3",
      "tree": "a6cac410c977ba669b666853b799075eabaab98a",
      "parents": [
        "ae60e48f1077a2221549c733623c25f79733caf0"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Mar 27 18:10:04 2017 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Mar 27 18:10:04 2017 -0700"
      },
      "message": "Fix arm64 and x86_64 code generator assertion\n\nTest: m test-art-host\nChange-Id: I273d2dab079b60707a8ffb72227cac5788d1a3bc\n"
    },
    {
      "commit": "d94562d281811389eb9d3edbf5e656a22ff715cc",
      "tree": "bdb42b58fe998eea2773fce85a05752f24ce8623",
      "parents": [
        "d5482fe89a407225339297f259312512257259fe",
        "5576f3741c58cb8b5fb2f68f3b3a9415efe05f4f"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Mar 24 17:02:49 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 24 17:02:49 2017 +0000"
      },
      "message": "Merge \"Implement a SIMD spilling slot.\""
    },
    {
      "commit": "a6cefa7de1b2712680396a1c7efb25851b8d7bac",
      "tree": "5789070aa220f2ac2763aef5c2969bec658969d0",
      "parents": [
        "fc01c0ff87170ac2da9fe981bacabdce078f563e",
        "f25cc730ff70f085daf527f69a02fdee69aee16b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Mar 24 15:57:02 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 24 15:57:04 2017 +0000"
      },
      "message": "Merge \"Deterministic DexCache in heap images.\""
    },
    {
      "commit": "0bbb750f6ff9a52bc4649995fc78ebea87e31dd1",
      "tree": "a969d676ff3c5d269ebcbd8fa509e146400c49f0",
      "parents": [
        "3d6194fcfa8272c8fa4d3bae952c5944f9e812b8",
        "366d43387f8e31fb64b31419126c88d36b6ca491"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 24 11:49:55 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 24 11:49:56 2017 +0000"
      },
      "message": "Merge \"MIPS64: Remove memcpy() from java.lang.String.getChars intrinsic.\""
    },
    {
      "commit": "3d6194fcfa8272c8fa4d3bae952c5944f9e812b8",
      "tree": "1910f293bf0b82e78f9aebbb21fdf9d8fdd7ad32",
      "parents": [
        "da9f7eb3e7734b58576f71bad6d90aeea112f408",
        "fe4ff44798b92a2ed8738ce2466cacb97c87f1d5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 24 11:46:55 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 24 11:46:57 2017 +0000"
      },
      "message": "Merge \"MIPS32: Remove memcpy() from java.lang.String.getChars intrinsic.\""
    },
    {
      "commit": "da9f7eb3e7734b58576f71bad6d90aeea112f408",
      "tree": "cd837794175dee75b2c5dd253b20daac9efba25d",
      "parents": [
        "ca32c317eeb989d9cbe330bab6ea35a8fd2ca18f",
        "27ef25f084017421ca05508208f436b5fc11df73"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 24 08:59:45 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 24 08:59:46 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert^4 \"CHA for interface method.\"\"\""
    },
    {
      "commit": "27ef25f084017421ca05508208f436b5fc11df73",
      "tree": "2059bf861c7992cfa195e7301451b98908c8abc6",
      "parents": [
        "fb185130f35bbfe2ba1875974ed39ef0b3c7a77f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 24 08:59:22 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Mar 24 08:59:22 2017 +0000"
      },
      "message": "Revert \"Revert^4 \"CHA for interface method.\"\"\n\nStill failing on the bots.\n\nThis reverts commit fb185130f35bbfe2ba1875974ed39ef0b3c7a77f.\n\nChange-Id: I1629e237dd41ce4784ccadbfc346352dfcbdb137\n"
    },
    {
      "commit": "5576f3741c58cb8b5fb2f68f3b3a9415efe05f4f",
      "tree": "2187c109d24ae3634416b551e83fef310e975a74",
      "parents": [
        "6efac9929f8952e4871e8c423c923989fc6f2ad2"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Mar 23 16:17:37 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Mar 23 16:51:52 2017 -0700"
      },
      "message": "Implement a SIMD spilling slot.\n\nRationale:\nThe last ART vectorizer break-out CL    \\O/\nThis ensures spilling on x86 and x86_4 is correct.\nAlso, it paves the way to wider SIMD on ARM and MIPS.\n\nTest: test-art-host\nBug: 34083438\n\nChange-Id: I5b27d18c2045f3ab70b64c335423b3ff2a507ac2\n"
    },
    {
      "commit": "366d43387f8e31fb64b31419126c88d36b6ca491",
      "tree": "4e5418aa66702b448ef46681d30bfc39b5af1145",
      "parents": [
        "51e5474b7b8e4e80e791403e937470f575340dc1"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Thu Mar 23 09:02:56 2017 -0700"
      },
      "committer": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Thu Mar 23 12:39:58 2017 -0700"
      },
      "message": "MIPS64: Remove memcpy() from java.lang.String.getChars intrinsic.\n\nTest: run-test --64 --optimizing 020-string\nTest: run-test --64 020-string\nTest: run-test --64 --no-prebuild --optimizing 020-string\nTest: run-test --64 --no-prebuild 020-string\nTest: mma -j2 ART_TEST_OPTIMIZING\u003dtrue test-art-target-run-test\nTest: mma test-art-target-gtest -j2\nTest: booted MIPS64R6 emulator.\n\nNote: All tests run against MIPS64 QEMU.\n\nChange-Id: I8ad3e39c66a489779476f7e9f9f88cd0c6270c20\n"
    },
    {
      "commit": "fe4ff44798b92a2ed8738ce2466cacb97c87f1d5",
      "tree": "bee2b02d524a51a04f0d946a293f2c47b5c330a5",
      "parents": [
        "51e5474b7b8e4e80e791403e937470f575340dc1"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Thu Mar 23 11:25:12 2017 -0700"
      },
      "committer": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Thu Mar 23 12:37:37 2017 -0700"
      },
      "message": "MIPS32: Remove memcpy() from java.lang.String.getChars intrinsic.\n\nTest: run-test --optimizing 020-string\nTest: run-test 020-string\nTest: run-test --no-prebuild --optimizing 020-string\nTest: run-test --no-prebuild 020-string\nTest: mma -j2 ART_TEST_OPTIMIZING\u003dtrue test-art-target-run-test\nTest: booted MIPS32R2 emulator.\n\nNote: Tested against both the MIPS32R2, and MIPS64R6 emulators.\n\nChange-Id: I3219bc47a3657b82c82b6ac94d0b8c82eb6f9bb9\n"
    },
    {
      "commit": "f13821e90275f90279a4211891102237f89f8415",
      "tree": "4ff3b08d082eb283bf5978f363a8a1de10f30ef0",
      "parents": [
        "594e8b13a6b9aca4670b819b3fb6e59fbaf6ddb4",
        "fb185130f35bbfe2ba1875974ed39ef0b3c7a77f"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Mar 23 19:26:50 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 23 19:26:51 2017 +0000"
      },
      "message": "Merge \"Revert^4 \"CHA for interface method.\"\""
    },
    {
      "commit": "594e8b13a6b9aca4670b819b3fb6e59fbaf6ddb4",
      "tree": "2fd838360396930bc6a10e483eb835c67b2d0a9e",
      "parents": [
        "af818fab0a861899c8b932fab4c9eacaf92c6ba1",
        "b13c65bb46544821a84ff2106d0710d77b0fb463"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Mar 23 16:00:04 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 23 16:00:04 2017 +0000"
      },
      "message": "Merge \"Saves full XMM state along suspend check\u0027s slow path.\""
    },
    {
      "commit": "f25cc730ff70f085daf527f69a02fdee69aee16b",
      "tree": "2f36f61990add16e7519d8b93506d6049dd7764c",
      "parents": [
        "7591bdadf72a2fe155f937b8dc66f6249cedd014"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Mar 16 16:18:15 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Mar 23 15:25:27 2017 +0000"
      },
      "message": "Deterministic DexCache in heap images.\n\nPreload each slot in dex cache arrays with the candidate\nentry with the lowest index.\n\nAlso fix a discrepancy where we used to keep an ArtField*\nin the DexCache if we kept the declaring class rather than\nbased on the class referenced in the corresponding FieldId.\nThis can result in accessing a field through a FieldId with\nan unresolved class as demonstrated by the regression test.\n\nTest: 159-app-image-fields\nTest: testrunner.py --host\nBug: 30627598\nChange-Id: I34735047cb064ff462cd9859e86a61ddf8615ecd\n"
    },
    {
      "commit": "cc89525c13894247cb82a1973617da6cba286f0c",
      "tree": "dc67bee8e66f9b34f979fae67624336a0ece3753",
      "parents": [
        "2b864659d4399de6c17e93b8df8cdbf08c6a7ac9"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Mar 21 10:55:15 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Mar 22 23:41:21 2017 +0000"
      },
      "message": "Change 1/2 spill slots to more general number of spill slots.\n\nRationale:\nThis prepares requesting a different number of spill slots\nduring SIMD vectorization.\n\nBug: 34083438\nTest: test-art-host, test-art-host-gtest-register_allocator_test\nChange-Id: I6d22966ba483deec72b5eea5061c403c12b2ada7\n"
    },
    {
      "commit": "fb185130f35bbfe2ba1875974ed39ef0b3c7a77f",
      "tree": "47cab7e151d7de2d86d9499e264273f7262699b9",
      "parents": [
        "a861b0daacd508dacfdac6c337c1128904e5b386"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Mar 16 16:19:15 2017 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Mar 22 14:26:20 2017 -0700"
      },
      "message": "Revert^4 \"CHA for interface method.\"\n\nThis reverts commit 43e99be9db10111a2d6e094882cd06c248c69e11.\n\nAlso fix the issue that tries to change invoke-interface to\nan invoke-virtual of a cross-dexfile proxy method. Added a\ntestcase.\n\nTest: run-libcore-tests.sh --mode\u003dhost --variant\u003dX64 --debug\nTest: ART_TEST_JIT\u003dtrue m -j20 test-art-host-run-test\nChange-Id: Iacdf9d7ad93590e8163ed59d5838d70700a69018\n"
    },
    {
      "commit": "b13c65bb46544821a84ff2106d0710d77b0fb463",
      "tree": "46ef54ce881e32c80901528cf21a7951cf219023",
      "parents": [
        "2b864659d4399de6c17e93b8df8cdbf08c6a7ac9"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Mar 21 20:14:07 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Mar 22 20:11:05 2017 +0000"
      },
      "message": "Saves full XMM state along suspend check\u0027s slow path.\n\nRationale:\nBreak-out CL of ART Vectorizer. We need to save 128-bit\nof data (default ABI of ART runtime only saves 64-bit)\nNote that this is *only* done for xmm registers that\nare live, so overhead is not too big.\n\nBug: 34083438\nTest: test-art-host\nChange-Id: Ic89988b0acb0c104634271d0c6c3e29b6596d59b\n"
    },
    {
      "commit": "e21c9af9a8e3493411e718ad1499e1f247f69178",
      "tree": "8c1f74c37394881b862151a69ab114e81aac36eb",
      "parents": [
        "48f7a5b08583e2917d66f8dede909f48c6410b78",
        "6f64420701c1e1af3bb51bce6a9b608b5bb79fb5"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 22 10:26:17 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 22 10:26:17 2017 +0000"
      },
      "message": "Merge \"ARM: Avoid branches to branches\""
    },
    {
      "commit": "e2492d43bfff9123de843fd3e424da438e33d793",
      "tree": "c0adf4a913138e0566f265cbe6936ffb87f19ade",
      "parents": [
        "f9806373ca50896ac54cb9da49a030c13ec14769"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Mar 20 11:42:13 2017 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Mar 20 11:47:52 2017 -0700"
      },
      "message": "Disable the use of inline caches in AOT mode\n\nUntil we figure out why we see the crashes in b/36371709.\n\nTest: m test-art-host\nBug: 36371709\nChange-Id: If47f917373d26825f0b8121bb8b5e0b77ff83c01\n"
    },
    {
      "commit": "211d0cdee08c7fe98ea64d6c5f117859fda8bde0",
      "tree": "caaba85d8f2adb51fda90762b1288359be80c5a4",
      "parents": [
        "414c5c1158a796c55f898821904575bd25a2b7b2",
        "1663d16e87f35246a2858e5ef1237b9907edbe6f"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Sun Mar 19 16:15:33 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Mar 19 16:15:35 2017 +0000"
      },
      "message": "Merge \"Fix the artificial dependency in ARM/ARM64 SystemArrayCopy intrinsics.\""
    },
    {
      "commit": "414c5c1158a796c55f898821904575bd25a2b7b2",
      "tree": "b6d2693605fb9adff9f616ebeddfd015f8439e8f",
      "parents": [
        "c4861e63558839391f868e24cbb1f3a710148f6c",
        "9cc0ea8140e0106e132efc3c1c5c458fa196ae41"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Sat Mar 18 23:42:14 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Mar 18 23:42:15 2017 +0000"
      },
      "message": "Merge \"Refactor SystemArrayCopy intrinsics.\""
    },
    {
      "commit": "1663d16e87f35246a2858e5ef1237b9907edbe6f",
      "tree": "5f1cfb67ca08e7cadff0a2bd5ee8ca6539df076f",
      "parents": [
        "9cc0ea8140e0106e132efc3c1c5c458fa196ae41"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Mar 17 15:15:21 2017 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Mar 17 18:25:48 2017 +0000"
      },
      "message": "Fix the artificial dependency in ARM/ARM64 SystemArrayCopy intrinsics.\n\nEnsure that the base source address register (`src_curr_addr`) is\nassigned from the `src` register after `src` is made dependent on the\nlock word of `src`.\n\nBefore this CL, the artificial (or \"fake\") dependency of `src` on\n`tmp` was present, but because `src_curr_addr` was computed from `src`\n*before* that artificial dependency, it meant that it was basically\nuseless. This could explain some stale reference bugs.\n\nAfter this CL, `src_curr_addr` is computed from `src` *after* the\nartificial dependency.\n\nTest: m test-art-target on Baker read barrier configuration.\nBug: 12687968\nChange-Id: If30a2e35ca04b0b6d054e2a6c6b1e9c6879cf4a9\n"
    },
    {
      "commit": "9cc0ea8140e0106e132efc3c1c5c458fa196ae41",
      "tree": "ff150a59096800e503073926dd56b9b4470db490",
      "parents": [
        "41e604aac001ef023ad61f672239b76ccf33489b"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Mar 16 11:25:59 2017 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Mar 17 18:20:41 2017 +0000"
      },
      "message": "Refactor SystemArrayCopy intrinsics.\n\nTest: m test-art-host\nTest: m test-art-target\nChange-Id: I2f9ccdbb831030e670996b97e0c422f505b3abf6\n"
    },
    {
      "commit": "6f64420701c1e1af3bb51bce6a9b608b5bb79fb5",
      "tree": "e26bb484c2376f62700708d0527706bb8c54ae39",
      "parents": [
        "8f2b925473cfdc7650cef407102957befe0c6bb5"
      ],
      "author": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Mon Feb 27 18:29:45 2017 +0000"
      },
      "committer": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Fri Mar 17 10:33:31 2017 +0000"
      },
      "message": "ARM: Avoid branches to branches\n\nGenerally speaking, this optimization applies to all code\ngeneration visitors ending with a call to Bind(), which\nincludes intrinsics with kNoCall CallKind. However, no\nchanges are done for slow paths (which frequently end with\na branch to an exit label that is bound at the end of a\nvisitor).\n\nTest: m test-art-target\nChange-Id: Ie1a0c8c54ef76b01e7f0b23962c56c29ca8984a9\n"
    },
    {
      "commit": "9bb8928a8e0b04e530e49315009725f73aceb762",
      "tree": "9d8421100a8f1cf3ec20906402842abbef601a47",
      "parents": [
        "f0323ecd08b5867af656ae817ab021664a9065b1",
        "0bd97173fab66572c95ce18fa785e00271adc014"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Mar 16 22:58:49 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 16 22:58:49 2017 +0000"
      },
      "message": "Merge \"Fix sign extension issues in x86_64 code generation\""
    },
    {
      "commit": "051071718085ce807a2e7c55278a8d723e238e86",
      "tree": "396c41b8b887544f2905c5f97055e2f123c67730",
      "parents": [
        "ed883a11b8cd7f3712bd30fca1e2b0fb641bff63"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 16 13:17:50 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 16 13:25:00 2017 -0700"
      },
      "message": "Delete SrcMap\n\nNo longer used. SrcMapElem is still used by elf_debug_line_writer.h.\n\nAddress previous comments from aog/351387.\n\nTest: make\n\nChange-Id: Ib1525168b14889abbdc78ba20c64f3223b140a51\n"
    },
    {
      "commit": "ed883a11b8cd7f3712bd30fca1e2b0fb641bff63",
      "tree": "b13ca4ec329595953d3aa3b04b0323f2dee173ca",
      "parents": [
        "f0502d990265253992a54567bcd3ce5c8aa0ce59",
        "cbcedbf9382bc773713cd3552ed96f417bf1daeb"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 16 19:56:10 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 16 19:56:10 2017 +0000"
      },
      "message": "Merge \"Add method info to oat files\""
    },
    {
      "commit": "f0502d990265253992a54567bcd3ce5c8aa0ce59",
      "tree": "b4cc0667112e191304d348bce4a65cd29b77adbe",
      "parents": [
        "dae1744676f20300d3ac8eef49f9dc10dfbe8e2f",
        "2d73f3368dd3e5411d9455e3c64df62e8b9ba04c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 16 18:29:50 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 16 18:29:51 2017 +0000"
      },
      "message": "Merge \"x86-64: Code size improvement for MethodLoadKind::kDirectAddress.\""
    },
    {
      "commit": "cbcedbf9382bc773713cd3552ed96f417bf1daeb",
      "tree": "58eed766a69ddddbc41d21624244e14547fa1dff",
      "parents": [
        "ef62210a1466c133056c4bfdae9f8f5417065eff"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Mar 12 22:24:50 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Mar 16 10:20:34 2017 -0700"
      },
      "message": "Add method info to oat files\n\nThe method info data is stored separately from the code info to\nreduce oat size by improving deduplication of stack maps.\n\nTo reduce code size, this moves the invoke info and inline info\nmethod indices to this table.\n\nOat size for a large app (arm64): 77746816 -\u003e 74023552 (-4.8%)\nAverage oat size reduction for golem (arm64): 2%\n\nRepurposed unused SrcMapElem deduping to be for MethodInfo.\nTODO: Delete SrcMapElem in a follow up CL.\n\nBug: 36124906\n\nTest: clean-oat-host \u0026\u0026 test-art-host-run-test\n\nChange-Id: I2241362e728389030b959f42161ce817cf6e2009\n"
    },
    {
      "commit": "0bd97173fab66572c95ce18fa785e00271adc014",
      "tree": "f7cdfe3627cbac27d6c0c2b857df4eb7f70a767f",
      "parents": [
        "32f53883993fbed5f08c1e13606e91acb3715d5d"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Mar 15 16:33:27 2017 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Mar 16 09:44:56 2017 -0700"
      },
      "message": "Fix sign extension issues in x86_64 code generation\n\nmovl expects an Immediate int64_t that is in the range -2GB to\n2GB.  Cast uint32_t addresses to int32_t before passing as an\nImmediate to movl.\n\nIn VisitIntegerValueOf, the base address may not fit in the disp32\nfield.  Fall back to storing the base address in a temporary\nregister if it is larger than 2GB.\n\nBug: 36281983\nTest: m -j test-art-host with LibartImgHostBaseAddress \u003d\u003d 0xa0000000\nChange-Id: I5f8cc4f5a6220afc577707e3831113b0ead1d2b2\n"
    },
    {
      "commit": "2d73f3368dd3e5411d9455e3c64df62e8b9ba04c",
      "tree": "45d1debacf05fd77100bfd6def7fd97c8a24b08b",
      "parents": [
        "fbe1516b91f2117bb9c7282aaea5537572f62dd7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Mar 16 15:55:49 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Mar 16 16:26:02 2017 +0000"
      },
      "message": "x86-64: Code size improvement for MethodLoadKind::kDirectAddress.\n\nInstead of movq(), use Load64BitValue() which uses MOVL\nfor 32-bit unsigned values. For pointers to low 2GiB,\nthis saves 2 bytes, for pointers to high 2GiB (of 32-bit\nrange) it saves 5 bytes.\n\nTest: testrunner.py --host\nChange-Id: I437be6e7486329da53674b051f48a0afc4b3a5a5\n"
    },
    {
      "commit": "a70b683cd796f7e5bb50d8d282f72c50c89af250",
      "tree": "5db2cb848bf248c5ecf5103e7a4aa075dcea4d6b",
      "parents": [
        "e0abec751ce81b14a57522b51d43138fa1541d33",
        "467d94a3d926620b01b034eff68fdcaf2b5fb579"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 16 12:55:57 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 16 12:55:57 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"ARM: VIXL32: Use VIXL backend by default.\"\"\""
    },
    {
      "commit": "e0abec751ce81b14a57522b51d43138fa1541d33",
      "tree": "621b29f3c328197daf68af3e68379a4194387070",
      "parents": [
        "9d619c9555ba8232d4307ca28f750ac170afef92",
        "13a797bc53596af3d68eeb9721a8d76c23710ce9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 16 12:55:19 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 16 12:55:20 2017 +0000"
      },
      "message": "Merge \"vixl32: do not use D14 as a temporary.\""
    },
    {
      "commit": "aa313b1dfadd8ea9d9830b4bd02f5917bca8534b",
      "tree": "7b8b3117091762d338cfd9f4b92b62cf7f341456",
      "parents": [
        "f83f3f6ecb1153d96cc8007e8a0d1e35af4d3f38",
        "c9905a6f5908022d74b7a8f4f8fa9240743fdeaa"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 16 11:51:30 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 16 11:51:31 2017 +0000"
      },
      "message": "Merge \"MIPS64: Inline polymorphic method calls.\""
    },
    {
      "commit": "13a797bc53596af3d68eeb9721a8d76c23710ce9",
      "tree": "b2d2b68a1a60215c7e10ac0821c1c761cebda787",
      "parents": [
        "0a1f0798176250853c1fb83f00a436a183d2bfc1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 15 16:41:31 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 16 11:12:56 2017 +0000"
      },
      "message": "vixl32: do not use D14 as a temporary.\n\nD14 is a callee-save register, which means we would need to\nsave it in the prologue, but at the point we\u0027re using it\nthe prologue has already been generated.\n\nbug: 35977033\ntest: m ART_USE_VIXL_ARM_BACKEND\u003dtrue test-art-target\nChange-Id: Id7340ad9e87a9e527ce0989f45aae0b3a0963206\n"
    },
    {
      "commit": "467d94a3d926620b01b034eff68fdcaf2b5fb579",
      "tree": "64f16e96e416902e5a203eb94fb33e09f9d3a4e8",
      "parents": [
        "25275bef429dc6a48b79411e0d0b32207294523b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 16 10:24:17 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 16 10:24:17 2017 +0000"
      },
      "message": "Revert \"Revert \"ARM: VIXL32: Use VIXL backend by default.\"\"\n\nbug:35977033\n\nThis reverts commit 25275bef429dc6a48b79411e0d0b32207294523b.\n\nChange-Id: I440bf8415e2bf550607595499701fb3e7c33b37e\n"
    },
    {
      "commit": "0a1f0798176250853c1fb83f00a436a183d2bfc1",
      "tree": "9e641adf978acb661cdf805b3e62503685438abc",
      "parents": [
        "60afd6fe2858c211890845380cd81d4f113bbf2e",
        "ba89c34e94a82f0a6904dcc62caa6aa7bb14c12c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 15 12:41:15 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 15 12:41:16 2017 +0000"
      },
      "message": "Merge \"MIPS64: Improve storing of constants in fields and array elements\""
    },
    {
      "commit": "60afd6fe2858c211890845380cd81d4f113bbf2e",
      "tree": "99ba909eea08ca036e05a10dee33e8f29eac23dd",
      "parents": [
        "99d035fa0f6915d011d2be9ab2303266ec2fee34",
        "87c9705263d2421607b58a0f1ed397371154fd84"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 15 10:37:59 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 15 10:38:01 2017 +0000"
      },
      "message": "Merge \"ARM64: Improve LocationBuilder for Shifts and IntermediateAddress.\""
    },
    {
      "commit": "99d035fa0f6915d011d2be9ab2303266ec2fee34",
      "tree": "bfe29e3e50b339fdb393f84e27f651235eb8c427",
      "parents": [
        "31c6ea571197d227fa62ee563461f35ec10ca838",
        "f44d36c8423f81cbb5e9f55d8813e26ffa1a7f3b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 15 10:33:16 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 15 10:33:18 2017 +0000"
      },
      "message": "Merge \"Revert^2 \"Hash-based DexCache field array.\"\""
    },
    {
      "commit": "bfe66b01844328bab508f305df3b5d46ca6798a7",
      "tree": "de590d9346e3b7ffe3725b36792264dc28d5f4f4",
      "parents": [
        "9f2498c21a7d02605e61c5b2145ba55abf1c3703",
        "43e99be9db10111a2d6e094882cd06c248c69e11"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 15 06:29:09 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 15 06:29:10 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"CHA for interface method.\"\"\"\""
    },
    {
      "commit": "43e99be9db10111a2d6e094882cd06c248c69e11",
      "tree": "fb4d9ed1e6a5230c3a54e07157f017cf60167e51",
      "parents": [
        "8f301e26943c53485abc2da5ff1907f7c2e0ff0c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 15 06:28:52 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 15 06:28:52 2017 +0000"
      },
      "message": "Revert \"Revert \"Revert \"CHA for interface method.\"\"\"\n\nBreaks libcore tests.\n\nThis reverts commit 8f301e26943c53485abc2da5ff1907f7c2e0ff0c.\n\nChange-Id: Iea46176118be9e05aceb06f2d290961bb1f38265\n"
    },
    {
      "commit": "bff6bac661d05ad184c831a2b0b224260f2e2956",
      "tree": "adac7f929e38eb1c572c2eceffaea789a471e566",
      "parents": [
        "b43836abb325f15790f279632931419cd32fdb4d",
        "bd68e975538738cbfff14bba75fd9ee7d3fe9ccb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 14 20:02:10 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 14 20:02:10 2017 +0000"
      },
      "message": "Merge \"Fix SSA liveness analysis test.\""
    },
    {
      "commit": "f44d36c8423f81cbb5e9f55d8813e26ffa1a7f3b",
      "tree": "324b41485ce6c414c1a006c72cbcc5ed9f466138",
      "parents": [
        "8d6768d47b66a688d35399d524ad5a5450e9d9d4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 14 14:18:46 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 14 19:03:20 2017 +0000"
      },
      "message": "Revert^2 \"Hash-based DexCache field array.\"\n\nTest: testrunner.py --host --interpreter\nBug: 30627598\n\nThis reverts commit 6374c58f2ea403b3a05fb27376110fe4d0fc8e3f.\n\nChange-Id: I275508e288a85d3aa08f7405a1a4f362af43b775\n"
    },
    {
      "commit": "c1af10e85eb517de8794eb11dbde7d464eac4220",
      "tree": "38e0bc379435cc5de2252b57e8bb1692b370c5f6",
      "parents": [
        "b6b76e47720336c25812688c286853caa71894df",
        "8d6768d47b66a688d35399d524ad5a5450e9d9d4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 14 19:01:01 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 14 19:01:02 2017 +0000"
      },
      "message": "Merge \"Revert^6 \"Hash-based dex cache type array.\"\""
    },
    {
      "commit": "bd68e975538738cbfff14bba75fd9ee7d3fe9ccb",
      "tree": "0c5dc54bab54cfdf5e589e4f4bc1f30f00b29045",
      "parents": [
        "fbe1516b91f2117bb9c7282aaea5537572f62dd7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 14 18:07:35 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 14 18:07:35 2017 +0000"
      },
      "message": "Fix SSA liveness analysis test.\n\nCreate a persistent CompilerOptions object instead of\npassing a temporary to the codegen.\n\nTest: m valgrind-test-art-host-gtest-ssa_liveness_analysis_test\nChange-Id: Icccf6aec0d024917aa1895d0804a79866f3cae43\n"
    },
    {
      "commit": "7f4e4281f8889511a9d641ed1eb47f92692efbb1",
      "tree": "c0c708ef2de16e0c2936e120e72d107044d47d60",
      "parents": [
        "8ae7a8f8bbe3677594a89836431e2cc31f267fb6",
        "8f301e26943c53485abc2da5ff1907f7c2e0ff0c"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Mar 14 17:31:33 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 14 17:31:34 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"CHA for interface method.\"\"\""
    },
    {
      "commit": "c9905a6f5908022d74b7a8f4f8fa9240743fdeaa",
      "tree": "4882b5eeb7bc424e7fb26cb6ddc7ec4ad08b34ea",
      "parents": [
        "8ae7a8f8bbe3677594a89836431e2cc31f267fb6"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Mon Mar 13 17:06:18 2017 -0700"
      },
      "committer": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Tue Mar 14 09:48:16 2017 -0700"
      },
      "message": "MIPS64: Inline polymorphic method calls.\n\nTest: 566-polymorphic-inlining\nTest: Boot MIPS64R6 QEMU\n\nChange-Id: I92ca53ebd173c0b3a5d5910678b78bc114502b93\n"
    },
    {
      "commit": "26ec3cad4968ae32ce9d04c3046f766df46d9bd7",
      "tree": "0ba845434b3b5679ee62b099c42ad455b4dcc37d",
      "parents": [
        "fbe1516b91f2117bb9c7282aaea5537572f62dd7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 14 13:37:14 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 14 14:02:46 2017 +0000"
      },
      "message": "ARM64: Fix lack of scratch registers in String.equals() intrinsic.\n\nTest: testrunner.py --target -t 021-string2 (on Nexus 6P)\nBug: 36127106\nChange-Id: I1e46af69a80b7025931be662cbafa10165f9c47e\n"
    },
    {
      "commit": "8d6768d47b66a688d35399d524ad5a5450e9d9d4",
      "tree": "0b8733baef378d9e060c8e74319a3846489590b2",
      "parents": [
        "fbe1516b91f2117bb9c7282aaea5537572f62dd7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 14 10:13:21 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 14 13:55:13 2017 +0000"
      },
      "message": "Revert^6 \"Hash-based dex cache type array.\"\n\nFixed ImageWriter to write class table also if it contains\nonly boot class loader classes. Added a regression test and\nadded extra checks for debug-build to verify that dex cache\ntypes from app image are also in the class table. Removed\nsome unnecessary debug output.\n\nTest: 158-app-image-class-table\nBug: 34839984\nBug: 30627598\nBug: 34659969\n\nThis reverts commit 0b66d6174bf1f6023f9d36dda8538490b79c2e9f.\n\nChange-Id: I6a747904940c6ebc297f4946feef99dc0adf930c\n"
    },
    {
      "commit": "fbe1516b91f2117bb9c7282aaea5537572f62dd7",
      "tree": "82671f25af9a829d7a994d0694c996b5d46935d1",
      "parents": [
        "8a78a77b12862af650dab978c4d5e642a4409187",
        "356bd28feeedeb24e1f458492fdc5ecaef39c1eb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Mar 14 10:11:18 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 14 10:11:18 2017 +0000"
      },
      "message": "Merge \"Introduce EnvUsePosition for liveness analysis.\""
    },
    {
      "commit": "8a78a77b12862af650dab978c4d5e642a4409187",
      "tree": "9a28fa3bee9a395718093e1a86a97fed47553e83",
      "parents": [
        "224f6ab7620ddbc20a338e56ccf9952d86b08b51",
        "25275bef429dc6a48b79411e0d0b32207294523b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 14 09:10:41 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 14 09:10:42 2017 +0000"
      },
      "message": "Merge \"Revert \"ARM: VIXL32: Use VIXL backend by default.\"\""
    },
    {
      "commit": "25275bef429dc6a48b79411e0d0b32207294523b",
      "tree": "90a96d151b5f01c5fd5961a67b2368175074c091",
      "parents": [
        "e6316892821287b1d1906b9962eae129fbdc37be"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 14 08:57:02 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 14 08:57:02 2017 +0000"
      },
      "message": "Revert \"ARM: VIXL32: Use VIXL backend by default.\"\n\nRevert while investigating.\n\nbug:35977033\n\nThis reverts commit e6316892821287b1d1906b9962eae129fbdc37be.\n\nChange-Id: I51e24a6e539072a6d0d470dfe41855a4847f3e96\n"
    },
    {
      "commit": "ba89c34e94a82f0a6904dcc62caa6aa7bb14c12c",
      "tree": "a10992eabb2aade0c97e283038873a6c36d05132",
      "parents": [
        "224f6ab7620ddbc20a338e56ccf9952d86b08b51"
      ],
      "author": {
        "name": "Tijana Jakovljevic",
        "email": "tijana.jakovljevic@imgtec.com",
        "time": "Fri Mar 10 13:36:08 2017 +0100"
      },
      "committer": {
        "name": "Tijana Jakovljevic",
        "email": "tijana.jakovljevic@imgtec.com",
        "time": "Tue Mar 14 07:40:59 2017 +0100"
      },
      "message": "MIPS64: Improve storing of constants in fields and array elements\n\nTest: booted MIPS64 in QEMU\nTest: mma test-art-target-run-test\nTest: mma test-art-host-gtest-assembler_mips64_test\n\nChange-Id: I8e0002166174eebea1309358eb9d96f34eee3225\n"
    },
    {
      "commit": "356bd28feeedeb24e1f458492fdc5ecaef39c1eb",
      "tree": "e68b917d6c7ae3347baa74dea279a8681b0626a7",
      "parents": [
        "d1d4530ffa97729aa8944932a7ac2009ae51c7e3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Mar 01 12:01:11 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 13 18:05:45 2017 +0000"
      },
      "message": "Introduce EnvUsePosition for liveness analysis.\n\nNormal and environment use positions are held in separate\nlists and the code never mixes them together. By using two\nseparate classes, we can reduce complexity and avoid an\nunnecesary data member, reducing the memory usage.\n\nTracking allocations for a certain big app, the peak arena\nmemory usage is\n  before:\n    MEM: used: 79245960, ...\n    SsaLiveness    31221600\n  after:\n    MEM: used: 78754024, ...\n    SsaLiveness    30729664\n\nTest: testrunner.py --host\nBug: 34053922\nChange-Id: I02d3c9f564bbe3b1da0e03c33cf7c0f810f235dc\n"
    },
    {
      "commit": "0b66d6174bf1f6023f9d36dda8538490b79c2e9f",
      "tree": "1cc4d2ae868745a65fd0489a6fb2f5f2fc9e880f",
      "parents": [
        "6374c58f2ea403b3a05fb27376110fe4d0fc8e3f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 13 14:50:04 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 13 16:08:01 2017 +0000"
      },
      "message": "Revert^5 \"Hash-based dex cache type array.\"\n\nFor app images, ImageWriter does not add boot image\nclasses to the app image class table even though it\nkeeps them in the dex caches. The reason for that is\nunknown, the code looks OK.\n\nBug: 34839984\nBug: 30627598\nBug: 34659969\n\nAlso reverts \"Improve debugging output for a crash.\"\n\nThis reverts commits\n    bfb80d25eaeb7a604d5dd25a370e3869e96a33ab,\n    8dd56fcb3196f466ecaffd445397cb11ef85f89f.\n\nTest: testrunner.py --host\nChange-Id: Ic8db128207c07588c7f11563208ae1e85c8b0e84\n"
    },
    {
      "commit": "6374c58f2ea403b3a05fb27376110fe4d0fc8e3f",
      "tree": "0aacaaf1f193e96b55e0b203b678ae724c0fb6f5",
      "parents": [
        "8f323e09e692ff4f95f40300391fe41fb96a6c49"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 13 14:51:19 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Mar 13 14:52:17 2017 +0000"
      },
      "message": "Revert \"Hash-based DexCache field array.\"\n\nReverting to allow rebasing the revert\n    https://android-review.googlesource.com/351689\nwithout too many conflicts.\n\nBug: 30627598\n\nThis reverts commit 1aea3510b8dd0c512cec61c91c5ef1f1e5d53d64.\n\nChange-Id: I4af65e9f41c8bad8106c028947eca7c5a9534c53\n"
    },
    {
      "commit": "2a2b4f63f484bd3d6d318d13fe3abf0701d33c08",
      "tree": "bb189e554ba08c268f21b3758167de2cb4d8e800",
      "parents": [
        "bd40af72aac39c53fadca6fe2e8d90f2ba2c4502",
        "2dd053d61c3971fa5b5e179e0a2b5368409c9ba3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 10 18:23:15 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 10 18:23:16 2017 +0000"
      },
      "message": "Merge \"ARM: VIXL32: Improve BoundsCheck for constant inputs.\""
    },
    {
      "commit": "1352e02ceeb30a3191809df4a7ee9fd711962f30",
      "tree": "85b70916f2369af2c30c8ac82734e37b6a847649",
      "parents": [
        "939e71a4f40496ffe770c80e81d6fe4a99d979e9",
        "effd5bfa62fa3065a8386b192bf60d41c320f6e4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 10 17:23:46 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 10 17:23:47 2017 +0000"
      },
      "message": "Merge \"ARM: Generate UBFX for HAnd\""
    },
    {
      "commit": "effd5bfa62fa3065a8386b192bf60d41c320f6e4",
      "tree": "7bd021367a3e6b0cfd9cd3bf08fb5bd5c177c666",
      "parents": [
        "f92e179efdd070c4d54633ac305199b10f957bd7"
      ],
      "author": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Tue Feb 28 16:59:15 2017 +0000"
      },
      "committer": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Fri Mar 10 15:15:15 2017 +0000"
      },
      "message": "ARM: Generate UBFX for HAnd\n\nTest: m test-art-target-run-test-538-checker-embed-constants\nChange-Id: I8e6af76b99543331e8ffec01bd8df3f09890708e\n"
    },
    {
      "commit": "939e71a4f40496ffe770c80e81d6fe4a99d979e9",
      "tree": "4203578687db372598bffaeb81feb221a461305f",
      "parents": [
        "f92e179efdd070c4d54633ac305199b10f957bd7",
        "1aea3510b8dd0c512cec61c91c5ef1f1e5d53d64"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 10 15:13:31 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 10 15:13:31 2017 +0000"
      },
      "message": "Merge \"Hash-based DexCache field array.\""
    },
    {
      "commit": "2dd053d61c3971fa5b5e179e0a2b5368409c9ba3",
      "tree": "42e13945e6e3bcb4205c4b4794094710e9c58274",
      "parents": [
        "f92e179efdd070c4d54633ac305199b10f957bd7"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Wed Mar 08 14:54:06 2017 +0000"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Mar 10 14:29:12 2017 +0000"
      },
      "message": "ARM: VIXL32: Improve BoundsCheck for constant inputs.\n\nTest: mma test-art-host \u0026\u0026 mma test-art-target\n\nChange-Id: I05051c03dbd3684c674096def84020494d28364b\n"
    },
    {
      "commit": "1aea3510b8dd0c512cec61c91c5ef1f1e5d53d64",
      "tree": "94cbab7c3097ce7d3a1feb1a69f28406644af085",
      "parents": [
        "d1d4530ffa97729aa8944932a7ac2009ae51c7e3"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Dec 08 11:39:42 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Mar 10 12:59:37 2017 +0000"
      },
      "message": "Hash-based DexCache field array.\n\nTest: m test-art-host, both AOT and interpreter\nTest: m test-art-target, both AOT and interpreter\nTest: m valgrind-test-art-host\nBug: 30627598\nChange-Id: If992f091aadd862d17b09928d21659573dd285a0\n"
    },
    {
      "commit": "13439f0c4769a0768cf1bbaa7b3f2f9ee5a317c5",
      "tree": "a5d52373571fad4249544a7b27c8009233d69f9d",
      "parents": [
        "74f94dd8edb4a6070f6f7bfef6d28a8b4a21fc30"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Feb 21 01:17:21 2017 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Mar 09 17:14:02 2017 -0800"
      },
      "message": "Use offline inline caches during AOT compilation\n\nAlso:\n- extend the testing script to understand profile when --profile is\npassed\n- filter inline cache types which are not loaded by the caller class\nloader\n\nTest: m test-art-host-run-test-638-checker-inline-caches\nBug: 32434870\nChange-Id: Ifcc27b3cebc79b84617412aaae64a73324151b55\n"
    },
    {
      "commit": "d1d4530ffa97729aa8944932a7ac2009ae51c7e3",
      "tree": "b544c9de6459c97b3e51d3984b2348cb0c48df4a",
      "parents": [
        "5ed51e3176f3dc4ff2e50ba4bf52743d404b5b4f",
        "426b49c45d8088ff3114d3fbcec26db4e00c9324"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 09 15:11:23 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 09 15:11:24 2017 +0000"
      },
      "message": "Merge \"ARM(64): Improve the code generated for HSelect\""
    },
    {
      "commit": "87c9705263d2421607b58a0f1ed397371154fd84",
      "tree": "51eb5d6a033938c74b8f4f1a719475069651ef3d",
      "parents": [
        "335f644f617d9837bc44219c70a2943f36c3f496"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Sep 23 13:34:31 2016 +0100"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Thu Mar 09 13:29:26 2017 +0000"
      },
      "message": "ARM64: Improve LocationBuilder for Shifts and IntermediateAddress.\n\nAdd Location::kNoOutputOverlap for OutRegister.\n\nTest: m test-art-target; m test-art-host\n\nChange-Id: Ic8e2f3088427b96a16fcd97b8f5fa6f19325e127\n"
    },
    {
      "commit": "5ed51e3176f3dc4ff2e50ba4bf52743d404b5b4f",
      "tree": "1638115757601e4d41d1dc3f3cb9045f5d3d6dd9",
      "parents": [
        "079f5fd58799a23aa5d60a5f85008a4663a33f2a",
        "54f869ed3c7910e6eb7bade924d41570e9a4cb14"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Mar 09 13:02:12 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 09 13:02:12 2017 +0000"
      },
      "message": "Merge changes Ia26b07f0,Id3d2758c\n\n* changes:\n  Revert \"Revert \"Use the holder\u0027s gray bit in Baker read barrier slow paths (ARM, ARM64).\"\"\n  Revert \"Revert \"Use the \"GC is marking\" information in compiler read barriers (ARM, ARM64).\"\"\n"
    },
    {
      "commit": "426b49c45d8088ff3114d3fbcec26db4e00c9324",
      "tree": "446ae3073d93e2771882885423c0e290f19d44fa",
      "parents": [
        "c02fe5f31d487765a8c59922c46d459ba6ebf939"
      ],
      "author": {
        "name": "Donghui Bai",
        "email": "donghui.bai@linaro.org",
        "time": "Tue Nov 08 14:55:38 2016 +0800"
      },
      "committer": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Thu Mar 09 12:57:41 2017 +0000"
      },
      "message": "ARM(64): Improve the code generated for HSelect\n\nTest: m test-art-target-run-test-566-checker-codegen-select\nTest: m test-art-target-run-test-570-checker-select\nChange-Id: If0140892303490701782df9a818e6d8346bf3d6c\nSigned-off-by: Anton Kirilov \u003canton.kirilov@linaro.org\u003e\n"
    },
    {
      "commit": "2c3fc44464d261c8ae285abbd140b4523dba005c",
      "tree": "e64872f57c330e17ee814c47f12c49fec0b4b406",
      "parents": [
        "2e5a2e2183a8392a7a768f0b7aa70f6ff4cd0cad",
        "1eede6ae9b08d305d0c1123284ff958373916474"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 09 11:15:34 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 09 11:15:34 2017 +0000"
      },
      "message": "Merge \"Don\u0027t inline methods that throw in graph with irreducible loops.\""
    },
    {
      "commit": "68fdd5a22024f70a65159bcb8929296fc93b807d",
      "tree": "d0d5256fde2f91b61bde97d0632436cabb0b23db",
      "parents": [
        "02a4d7ff633e67d0a5113f0fc742116dcdc5b7f6",
        "c52f3034b06c03632e937aff07d46c2bdcadfef5"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Mar 09 08:33:03 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 09 08:33:04 2017 +0000"
      },
      "message": "Merge \"Remove --include-patch-information option from dex2oat.\""
    },
    {
      "commit": "f02253d12be42a5b980791265f0eb61d875396e3",
      "tree": "1f908e9a9523658bf2e244b90508852e1885a222",
      "parents": [
        "d419beb312816edbf2186c12b15321d11c29996d",
        "66b69ad6d1a2ddd38bf533a3c887c5cdaf512634"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 08 23:58:25 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 08 23:58:25 2017 +0000"
      },
      "message": "Merge \"MIPS: Optimize code generation of check-cast and instance-of.\""
    },
    {
      "commit": "eb2d2d346e9506e5fe2c8e1e72a146821192b973",
      "tree": "3c7b7f1cac227248aaf9ac313825a6a71ae4c66e",
      "parents": [
        "caa348cee1312150a957bd308ce77ad406f3eb64"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Mar 02 13:26:17 2017 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Mar 08 12:56:41 2017 -0800"
      },
      "message": "Allow store elimination for singleton that\u0027s returned\n\nAllow store elimination for singleton that\u0027s visible after method return\nor deoptimization. Add additional detection for keeping stores for such\nsingletons at block merge/deoptimization point.\n\nBug: 35745320\nTest: m test-art-host\nChange-Id: I8a75a304491dafaeb689787402afa3d7468e3789\n"
    },
    {
      "commit": "caa348cee1312150a957bd308ce77ad406f3eb64",
      "tree": "575f0b062f8adb1b8fc7ebc5f6ef18bea5ae1db7",
      "parents": [
        "c02fe5f31d487765a8c59922c46d459ba6ebf939",
        "01b47b046b01ec68696f8ff61b5326cdd3af348e"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Mar 08 20:29:49 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 08 20:29:51 2017 +0000"
      },
      "message": "Merge \"Inlining a few small methods based on profiling dex2oat with perf.\""
    },
    {
      "commit": "01b47b046b01ec68696f8ff61b5326cdd3af348e",
      "tree": "e526306fc89bf6fb04ff914e24343dde0369e98c",
      "parents": [
        "dcab11d06860ae1e23d03926adb6c31f75404032"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Feb 03 12:09:57 2017 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Mar 08 10:15:06 2017 -0800"
      },
      "message": "Inlining a few small methods based on profiling dex2oat with perf.\n\nTest: m test-art-host\nChange-Id: I6313158e59592d8d132154523be9c82dda3c7eb8\n"
    },
    {
      "commit": "68948e01f56ad1996af77f4c0aab721940b0e18d",
      "tree": "0091c82b4f3b239b6b28418062954b9a0583261d",
      "parents": [
        "0c742e4a5c8d91df5d36204a6d77f1e77c7dbcbe",
        "7adb688fe1213c6dcaf4d2adae3d8b7decf7c28a"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Mar 08 16:56:07 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 08 16:56:08 2017 +0000"
      },
      "message": "Merge \"Improve isunit computation, some tests edits needed for SIMD.\""
    },
    {
      "commit": "c52f3034b06c03632e937aff07d46c2bdcadfef5",
      "tree": "031e4d1b2ca0961014e57e4987d80d7aa2c435b0",
      "parents": [
        "ef81e988d0eb4db390e576aac346701b2d820916"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Mar 02 13:45:45 2017 +0000"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Wed Mar 08 10:55:17 2017 +0000"
      },
      "message": "Remove --include-patch-information option from dex2oat.\n\nBecause we no longer support running patchoat on npic oat files, which\nmeans the included patch information is unused .\n\nBug: 33192586\nTest: m test-art-host\n\nChange-Id: I9e100c4e47dc24d91cd74226c84025e961d30f67\n"
    },
    {
      "commit": "1eede6ae9b08d305d0c1123284ff958373916474",
      "tree": "7827df0c9fd45bfe68e29b4105ad0b16f0076662",
      "parents": [
        "48b795efcb504b71fbf038fabdd3d05366793197"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Mar 02 16:14:53 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 08 10:17:57 2017 +0000"
      },
      "message": "Don\u0027t inline methods that throw in graph with irreducible loops.\n\nRe-computing the loop information is not supported in graphs\nwith irreducible loops, as it is not deterministic, and the\nloop header of a loop could change. That would lead to having the\nsuspend check in the wrong block.\n\nTest: test-art-host\nTest: 641-irreducible-inline\nbug: 35757766\nChange-Id: I6a435885461fbeca035e4f5d94f055fc3262adca\n"
    },
    {
      "commit": "335f644f617d9837bc44219c70a2943f36c3f496",
      "tree": "359199d431816cd84d4ffa3491850e8b60b62ecf",
      "parents": [
        "742bc41f754e77a528f859babec4dfea179ca96e",
        "c4aa82c5b0aa921c51eaf6f6bbaff36501ea2cee"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 08 10:14:54 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 08 10:14:54 2017 +0000"
      },
      "message": "Merge \"Invoke typed arraycopy for primitive arrays.\""
    },
    {
      "commit": "8f301e26943c53485abc2da5ff1907f7c2e0ff0c",
      "tree": "e255d1ce3041dff95d2cd2b6bf1b1474962d811e",
      "parents": [
        "dcab11d06860ae1e23d03926adb6c31f75404032"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Feb 27 16:23:51 2017 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Mar 07 16:47:13 2017 -0800"
      },
      "message": "Revert \"Revert \"CHA for interface method.\"\"\n\nThis reverts commit 85a1ec1347c8117365632dcaaa648ebb0a8691f5.\n\nIt also fixed the issue that\u0027s caused by changing an invokeinterface\nto an invokevirtual, when the method is the original default interface\nmethod. Since the default interface method is not in any vtable, unless\nit\u0027s copied and becomes a virtual method.\n\nTest: ART_TEST_JIT\u003dtrue m -j20 test-art-host-run-test\nChange-Id: I627616978690485c66cfca47c234f1504066ea1d\n"
    },
    {
      "commit": "7adb688fe1213c6dcaf4d2adae3d8b7decf7c28a",
      "tree": "fdafea7c8cdcf9c44825a630e4b1229ece444cd9",
      "parents": [
        "e6a60bff7a78efe7c2c4365984f1f7f036c12158"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Mar 07 13:28:51 2017 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Mar 07 13:28:51 2017 -0800"
      },
      "message": "Improve isunit computation, some tests edits needed for SIMD.\n\nRationale:\nBreak-out CL of ART Vectorizer: number 4.\nThe purpose is making the original CL smaller\nand easier to review.\n\nBug: 34083438\nTest: test-art-host\nChange-Id: I62a174944bbbe1e08f631f322c513eeaea14de26\n"
    },
    {
      "commit": "e6a60bff7a78efe7c2c4365984f1f7f036c12158",
      "tree": "04a83a2361a9103f2968c8f608980563cadcc343",
      "parents": [
        "7ba6ed786aa21257cfeefb917157d7d4768b9501",
        "b603a5cdff7c1fb300b83175bfb3cd990fdd6265"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Mar 07 21:22:58 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 07 21:23:00 2017 +0000"
      },
      "message": "Merge \"Bug fix in overflow detection on pow. With regression test.\""
    },
    {
      "commit": "b603a5cdff7c1fb300b83175bfb3cd990fdd6265",
      "tree": "523f82d02727bd095c650463e0087af3853f59df",
      "parents": [
        "d88663823f75dbd68cace178ddca4767775d97a1"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Mar 06 18:29:39 2017 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Mar 07 08:59:08 2017 -0800"
      },
      "message": "Bug fix in overflow detection on pow. With regression test.\n\nRationale:\nMissed potential overflow in base update.\n\nTest: test-art-host\nBug: 35706963\nChange-Id: I117d96c1fa95dde37f5676f9dc750f0a71becafa\n"
    },
    {
      "commit": "c4aa82c5b0aa921c51eaf6f6bbaff36501ea2cee",
      "tree": "0da77f4e4a0fca7577f4c4c709353465d46c8581",
      "parents": [
        "3a791cee90451dc32d46f1b0a85fecc6f22f62bf"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Mar 06 14:38:52 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Mar 07 14:32:54 2017 +0000"
      },
      "message": "Invoke typed arraycopy for primitive arrays.\n\nApps will always call the Object version of arraycopy. When\nwe can infer the types of the passed arrays, replace the method\nbeing called to be the typed System.arraycopy one.\n\n10% improvement on ExoPlayerBench.\n\nTest: 641-checker-arraycopy\nbug: 7103825\nChange-Id: I872d7a6e163a4614510ef04ae582eb90ec48b5fa\n"
    },
    {
      "commit": "87425ed396e42bec87adc562fb4a623c0e451b53",
      "tree": "48f916fdfbf99f245ae7ad0cb31d51a880d4016d",
      "parents": [
        "acd764a6f196a6704553d3db66fc3e2281879637"
      ],
      "author": {
        "name": "Tijana Jakovljevic",
        "email": "tijana.jakovljevic@imgtec.com",
        "time": "Tue Mar 07 09:43:31 2017 +0100"
      },
      "committer": {
        "name": "Tijana Jakovljevic",
        "email": "tijana.jakovljevic@imgtec.com",
        "time": "Tue Mar 07 10:28:09 2017 +0100"
      },
      "message": "MIPS64: Removal of unnecessary null check\n\nUnintentionally left in https://android-review.googlesource.com/#/c/321427/.\n\nTest: booted MIPS64 in QEMU\nChange-Id: Idf9c7301f1881ca4cd427a3ef4beffae6022f339\n"
    },
    {
      "commit": "d88663823f75dbd68cace178ddca4767775d97a1",
      "tree": "c166773bb9b6406b712d8b6387a94f03c2394aae",
      "parents": [
        "f9d80d72a686048200bcf6a7f37192f9eb75d5bd",
        "92685a8a56fba7191612cf210f9c667b5ceda2af"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 07 01:01:43 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 07 01:01:43 2017 +0000"
      },
      "message": "Merge \"Pass driver to loop opt. Add new side_effects phase.\""
    },
    {
      "commit": "92685a8a56fba7191612cf210f9c667b5ceda2af",
      "tree": "563009abe4387cb83c63320504148cedfc764bc3",
      "parents": [
        "5c90d0b0f332436f7ca5c028256bf5e91e9023d4"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Mar 06 11:13:43 2017 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Mar 06 15:20:04 2017 -0800"
      },
      "message": "Pass driver to loop opt. Add new side_effects phase.\n\nRationale:\nBreak-out CL of ART Vectorizer: number 3.\nThe purpose is making the original CL smaller\nand easier to review.\n\nBug: 34083438\nTest: test-art-host\nChange-Id: I7cece807ee4f5fcaeae41f1deed33ac263447b77\n"
    },
    {
      "commit": "dcab11d06860ae1e23d03926adb6c31f75404032",
      "tree": "fb4d9ed1e6a5230c3a54e07157f017cf60167e51",
      "parents": [
        "5c90d0b0f332436f7ca5c028256bf5e91e9023d4",
        "86974900268b1d903d74b39a32746d60c77d21f3"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Mar 06 20:05:03 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 06 20:05:04 2017 +0000"
      },
      "message": "Merge \"Array store/allocation elimination\""
    },
    {
      "commit": "86974900268b1d903d74b39a32746d60c77d21f3",
      "tree": "de0ef3b3499611fa07a6989462ed60400c15a588",
      "parents": [
        "b2a6d1218c527a685c421984292c47d241cf4a11"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Mar 01 14:03:51 2017 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Mar 06 10:22:17 2017 -0800"
      },
      "message": "Array store/allocation elimination\n\nAllow array store/allocation elimination if it\u0027s only accessed\nby constant index, so that there is no index-aliasing.\n\nBug: 35634932\nTest: m -j20 test-art-host-run-test\nChange-Id: Ief6e27f5bdbb30988ff4f318a34b4251c93865fa\n"
    },
    {
      "commit": "5c90d0b0f332436f7ca5c028256bf5e91e9023d4",
      "tree": "dcd7e2f6eee9bb06edab9e340dbe16532282b6c9",
      "parents": [
        "ef81e988d0eb4db390e576aac346701b2d820916",
        "5743386b4d161f3884275c66b0783bd3cc3a8050"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 06 17:33:34 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 06 17:33:36 2017 +0000"
      },
      "message": "Merge \"MIPS64: Refactor implicit null checks in array/field get/set\""
    },
    {
      "commit": "54f869ed3c7910e6eb7bade924d41570e9a4cb14",
      "tree": "668545b4100216adfa3db98635473d26306f9561",
      "parents": [
        "ba650a4d5a0a82c6c88d6546b6111013c2ee8072"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Mar 06 13:54:11 2017 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Mar 06 14:05:15 2017 +0000"
      },
      "message": "Revert \"Revert \"Use the holder\u0027s gray bit in Baker read barrier slow paths (ARM, ARM64).\"\"\n\nThis reverts commit 47b3ab2fd83aaa530b7d2c62bfc024209b8b6923.\n\nIn compiler-generated code, when deciding whether to mark\na heap reference or not in a read barrier, after checking\nwhether the GC is currently marking, also check (in the\nslow path) whether the lock word of the reference\u0027s holder\nis gray, before actually marking the reference.\n\nThis change is only for ARM and ARM64, as it does not\nbenefit x86 nor x86-64.\n\nChange-Id: Ia26b07f0485e23589bfc0e65f83852f2795688c0\nTest: Run ART tests in Baker read barrier configuration.\nTest: Boot a device in Baker read barrier configuration.\nBug: 35780827\nBug: 29516974\n"
    },
    {
      "commit": "ba650a4d5a0a82c6c88d6546b6111013c2ee8072",
      "tree": "cc3046a30aab382cc9c346391ca7cc22f3bf11ad",
      "parents": [
        "ef81e988d0eb4db390e576aac346701b2d820916"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Mar 06 13:52:32 2017 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Mar 06 13:57:15 2017 +0000"
      },
      "message": "Revert \"Revert \"Use the \"GC is marking\" information in compiler read barriers (ARM, ARM64).\"\"\n\nThis reverts commit 35345a555bd7928582a7ffa6369b374b3ddc379d.\n\nIn compiler-generated code, when deciding whether to mark\na heap reference or not in a read barrier, check whether\nthe GC is currently marking, instead of checking the gray\nbit in the reference\u0027s holder\u0027s lock word.\n\nThis change is only for ARM and ARM64, as it does not\nbenefit x86 nor x86-64.\n\nChange-Id: Id3d2758c600115b2f07d345442cfa87edfc2792c\nTest: Run ART tests in Baker read barrier configuration.\nTest: Boot a device in Baker read barrier configuration.\nBug: 35780827\nBug: 29516974\n"
    },
    {
      "commit": "e0ac1151b360be7147fa20320c0b427688b1424f",
      "tree": "c33419b00c47b731075bcfd7b75b81f366beda91",
      "parents": [
        "425b5d23e2c60d295471817a75b1b554481c5334"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 13 19:03:47 2017 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Mar 03 13:12:31 2017 -0800"
      },
      "message": "Extend profman to generate profiles with inline caches\n\nExtend profman logic to generate profiles based on a simple textual\nrespresentation. This will help writing tests for profile guided\ncompilation.\n\nBefore this CL, profman was able to generate profiles based on a list of\nclasses like:\njava.lang.Comparable\njava.lang.Math\njava.lang.Object\n\nThis CL, enables profman to understand methods and classes alike. The\nnew format is:\n\n# Classes\nLjava/lang/Comparable;\nLjava/lang/Math;\n# Methods with inline caches\nLTestInline;-\u003einlinePolymorhic(LSuper;)I+LSubA;,LSubB;,LSubC;\nLTestInline;-\u003enoInlineCache(LSuper;)I\n\n\"LTestInline;-\u003einlinePolymorhic(LSuper;)I+LSubA;,LSubB;,LSubC;\"\nmeans that method `int inlineMonomorphicSubA(Super)` from class Main\nwill be added to the profile with the inline cache (SubA,SubB) for its\none and only invoke virtual.\n\n@Main#noInlineCache:(LSuper;)I+;\nmeaning that method `int noInlineCache\u0027 from class Main will be added\nto the profile with no inline cache.\n\nNote that the methods are allowed to have a single invoke virtual in\ntheir dex bytecode. That is to keep the parsing the file format\nsimple and easy to use.\n\nAlso, add a few more tests for profiles and fix an issue caused by\nwriting the dex files in a possibly wrong order.\n\nTest: m run-test-host-gtest-profile_assistant_test\nBug: 32434870\nChange-Id: I6b7340cf613007117d9818be206ccb3a27b815bf\n"
    },
    {
      "commit": "5743386b4d161f3884275c66b0783bd3cc3a8050",
      "tree": "6794f8047586e7bc02702cc560bca51d1ab5bcc3",
      "parents": [
        "425b5d23e2c60d295471817a75b1b554481c5334"
      ],
      "author": {
        "name": "Tijana Jakovljevic",
        "email": "tijana.jakovljevic@imgtec.com",
        "time": "Tue Jan 17 16:59:03 2017 +0100"
      },
      "committer": {
        "name": "Tijana Jakovljevic",
        "email": "tijana.jakovljevic@imgtec.com",
        "time": "Fri Mar 03 09:36:43 2017 +0100"
      },
      "message": "MIPS64: Refactor implicit null checks in array/field get/set\n\nRationale: on MIPS64 64-bit loads and stores may be performed\nas pairs of 32-bit loads/stores. Implicit null checks must be\nassociated with the first 32-bit load/store in a pair and not\nthe last. This change ensures proper association of said checks\n(a few were done after the last 32-bit load/store in a pair)\nand lays ground for further improvements in array/field get/set.\n\nAdditionally ported to MIPS32.\n\nTest: mma test-art-target-run-test in QEMU\nTest: mma test-art-host-gtest\n\nChange-Id: If2612df62c21522959e69c637a36cc4ea962a32e\n"
    },
    {
      "commit": "f040eca7329382d48dc2b8bfc228ee3f27c9f13d",
      "tree": "1e30f1a97c9f3cda709ce327b07454e66e885faa",
      "parents": [
        "48b795efcb504b71fbf038fabdd3d05366793197",
        "8e02e3e77ff8ac7a80e25689750b4d329593e12a"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Mar 02 17:07:01 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 02 17:07:02 2017 +0000"
      },
      "message": "Merge \"New utilities for induction variables.\""
    },
    {
      "commit": "66b69ad6d1a2ddd38bf533a3c887c5cdaf512634",
      "tree": "d4462b96af0f0f2b28207dc6533a2b83e9b5e434",
      "parents": [
        "fddc19338d9fdee24c4e10b758db1a6997004e2e"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Fri Feb 24 00:51:44 2017 -0800"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Wed Mar 01 12:25:19 2017 -0800"
      },
      "message": "MIPS: Optimize code generation of check-cast and instance-of.\n\nThis is in preparation for read barrier support.\n\nTest: test-art-host-gtest\nTest: booted MIPS32R2 in QEMU\nTest: test-art-target\nTest: booted MIPS64 (with 2nd arch MIPS32R2) in QEMU\nTest: test-art-target (MIPS64R6 only)\n\nNote: built with ART_HEAP_POISONING\u003dtrue.\n\nChange-Id: I072ad41944a5ef390c81458c0ba49a71684cb2a9\n"
    },
    {
      "commit": "8e02e3e77ff8ac7a80e25689750b4d329593e12a",
      "tree": "f8201a2def0d3f9c05b05ddcb8ab338f84169ab7",
      "parents": [
        "e0aa5beef7419b8c9ab5d3dc93553ef2b30d126c"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Feb 28 14:41:55 2017 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Mar 01 11:14:05 2017 -0800"
      },
      "message": "New utilities for induction variables.\n\nRationale:\nBreak-out CL of ART Vectorizer: 2 OF many.\nThe purpose is making the original CL smaller\nand easier to review.\n\nBug: 34083438\nTest: test-art-host\nChange-Id: I46d297eba504af3850a5998ee279ea9f7b38bed8\n"
    },
    {
      "commit": "41ee103aadadfd71193157a1b850adbb91ac0d27",
      "tree": "ed73fb0cbc734c6dd3f6a35b82d8683bcda251d3",
      "parents": [
        "0058a5487cf210abbe60840e732fdc9d81f1c1e1",
        "c061de1236e98fdd34d0214a9bbcc0e2149ff226"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Mar 01 13:16:48 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 01 13:16:48 2017 +0000"
      },
      "message": "Merge \"MIPS: Implement heap poisoning in ART\u0027s Optimizing compiler.\""
    },
    {
      "commit": "331605a7ba842573b3876e14c933175382b923c8",
      "tree": "8a660cc7d1563272e747ac051b3e3e3dd2b90070",
      "parents": [
        "ec280c9a8f9c192eb6ea74fba40bfa1b668c14c1"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 01 11:01:41 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Mar 01 11:32:02 2017 +0000"
      },
      "message": "Revert \"Revert \"Intrinsify Integer.valueOf.\"\"\n\nFix heap poisoning.\nLOG INFO instead of ERROR to avoid run-test failures with --no-image.\n\nbug:30933338\nTest: ART_HEAP_POISONING\u003dtrue test-art-host test-art-target\n\nThis reverts commit db7b44ac3ea80a722aaed12e913ebc1661a57998.\n\nChange-Id: I0b7d4f1eb11c62c9a3df8e0de0b1a5d8af760181\n"
    },
    {
      "commit": "64fa84fba1d46afd5a2dc7dc3cc1de77461888bc",
      "tree": "30700997eddea7282e07520da9821e84e5e837b7",
      "parents": [
        "69dcdead8a6271587e0686798a26f95e92629fc1"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Mon Feb 27 13:14:57 2017 +0100"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Tue Feb 28 13:38:10 2017 +0100"
      },
      "message": "Apply String.equals() optimizations on MIPS32 and MIPS64\n\nAlso extended test 536-checker-intrinsic-optimization.\n\nTest: mma test-art-target-run-test in QEMU (MIPS64R6 and MIPS32R6)\nTest: mma test-art-target-run-test on CI20 (MIPS32R2)\n\nChange-Id: I6bff42f81dcb05094ac698181df16c56193bb4a8\n"
    },
    {
      "commit": "35345a555bd7928582a7ffa6369b374b3ddc379d",
      "tree": "ef5e6236203e04b59151b2e1b1529f9b389957b4",
      "parents": [
        "e25fc07d3d3b31fe46cb02a3ed0933c7af3999fd"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Feb 27 14:32:08 2017 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Feb 27 14:33:37 2017 +0000"
      },
      "message": "Revert \"Use the \"GC is marking\" information in compiler read barriers (ARM, ARM64).\"\n\nThis reverts commit 1372c9f40df1e47bf775f1466bbb96f472b6b9ed.\n\nThis change (along with https://android-review.googlesource.com/#/c/342429/)\ncreates null pointer dereferences.\n\nBug: 35780827\nBug: 29516974\nChange-Id: I2a9c4d0ad8d2ab870c2e0ddbff32152933c77abe\n"
    },
    {
      "commit": "e25fc07d3d3b31fe46cb02a3ed0933c7af3999fd",
      "tree": "8befb161fb3d0b57db8a0300d4d2b3e6133f8ce1",
      "parents": [
        "993f7c6e256918574a9f6aae6df4c0b87e2d9f8a",
        "47b3ab2fd83aaa530b7d2c62bfc024209b8b6923"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Feb 27 14:33:09 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 27 14:33:10 2017 +0000"
      },
      "message": "Merge \"Revert \"Use the holder\u0027s gray bit in Baker read barrier slow paths (ARM, ARM64).\"\""
    },
    {
      "commit": "47b3ab2fd83aaa530b7d2c62bfc024209b8b6923",
      "tree": "d00923d1045ab66c6aa07ed5a42a69899580d210",
      "parents": [
        "27b1f9cbfc1409418eee4b0e22f29f033e10b64d"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Feb 27 14:31:35 2017 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Feb 27 14:31:35 2017 +0000"
      },
      "message": "Revert \"Use the holder\u0027s gray bit in Baker read barrier slow paths (ARM, ARM64).\"\n\nThis reverts commit 27b1f9cbfc1409418eee4b0e22f29f033e10b64d.\n\nThis change (along with https://android-review.googlesource.com/#/c/342428/)\ncreates null pointer dereferences.\n\nBug: 35780827\nBug: 29516974\nChange-Id: If731960a405f9b89528f3daaf235da57cabc5c11\n"
    }
  ],
  "next": "43e07b6b16d3a84014bb4747211635b9ef3d1801"
}
