)]}'
{
  "log": [
    {
      "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": "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": "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"
    },
    {
      "commit": "43e07b6b16d3a84014bb4747211635b9ef3d1801",
      "tree": "8ff46f842ae839906ed2f746d8e962f4e37c808e",
      "parents": [
        "2666b11c0d9d7fd22279a7d26338084daf608166",
        "b813ca14be33f7db8b7049c3b08a1eb776f25d1b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 27 12:30:19 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 27 12:30:21 2017 +0000"
      },
      "message": "Merge \"Implement code sinking.\""
    },
    {
      "commit": "b813ca14be33f7db8b7049c3b08a1eb776f25d1b",
      "tree": "4757b96eb5efd3a0e992f7f399ea479e7b5426c8",
      "parents": [
        "30e015c442c8033390c30d2f293604723c29bc75"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Feb 16 22:08:29 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Feb 27 10:27:42 2017 +0000"
      },
      "message": "Implement code sinking.\n\nSmall example of what the optimization does:\n\nObject o \u003d new Object();\nif (test) {\n  throw new Error(o.toString());\n}\n\nwill be turned into (note that the first user of \u0027o\u0027\nis the \u0027new Error\u0027 allocation which has \u0027o\u0027 in its\nenvironment):\nif (test) {\n  Object o \u003d new Obect();\n  throw new Error(o.toString());\n}\n\nThere are other examples in 639-checker-code-sinking.\n\nRitz individual benchmarks improve on art-jit-cc from\n5% (EvaluateComplexFormulas) to 23% (MoveFunctionColumn)\non all platforms.\n\nTest: 639-checker-code-sinking\nTest: test-art-host\nTest: borg job run\nTest: libcore + jdwp\n\nbug:35634932\nbug:30933338\n\nChange-Id: Ib99c00c93fe76ffffb17afffb5a0e30a14310652\n"
    },
    {
      "commit": "0c95c12a102cb8c1514410be6e264f9730d847a7",
      "tree": "30c5f581ee7dd3186a9498f9fdc527aa0c31edc7",
      "parents": [
        "5e2227b961980c69361050a4396763937285af9b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sun Feb 26 14:10:28 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sun Feb 26 14:12:02 2017 -0800"
      },
      "message": "ART: Fix underflow in codegen\n\nCheck for count \u003d\u003d 0 first before accessing non-existent stack map.\n\nTest: m ART_TEST_JIT\u003dtrue test-art-host\nTest: m ART_TEST_JIT\u003dtrue test-art-host-run-test-913-heaps\nChange-Id: Id4cad8e791d731147860b8a9a0d90cc893cc6972\n"
    },
    {
      "commit": "69c4c27cc965620511e876248f679bbcf4fde646",
      "tree": "72d0489bbde88059e79f1d8d9119853c02e93e76",
      "parents": [
        "6f80f9e0adca93d1927d7d435e08e308d6e46040",
        "27b1f9cbfc1409418eee4b0e22f29f033e10b64d"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Sat Feb 25 11:11:18 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Feb 25 11:11:19 2017 +0000"
      },
      "message": "Merge changes I60595a8f,Ia5d90286\n\n* changes:\n  Use the holder\u0027s gray bit in Baker read barrier slow paths (ARM, ARM64).\n  Use the \"GC is marking\" information in compiler read barriers (ARM, ARM64).\n"
    },
    {
      "commit": "ff754d19946de43bfd2fc04adcd430459cac1f16",
      "tree": "d16b694f243e3e1dfb631594181c0ae6db48d592",
      "parents": [
        "438709f4f2454854f09a3b5c058834bbf772aaa8"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 24 15:01:41 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 24 15:18:57 2017 +0000"
      },
      "message": "Fix initialization of OptimizingCompilerStats.\n\nThis is a follow-up to\n    https://android-review.googlesource.com/343265\nwhere we replaced Atomic\u003c\u003e with std::atomic\u003c\u003e because\nAtomic\u003c\u003e was hiding std::atomic\u003c\u003e::operator\u003d(). However,\nwhile the default constructor of Atomic\u003c\u003e initializes the\nvalue, the default constructor of std::atomic\u003c\u003e does not.\n\nTest: m valgrind-test-art-host\nBug: 34053922\nChange-Id: Iff2b38a7b28ee2d114991b60e3c40a33425bfc48\n"
    },
    {
      "commit": "438709f4f2454854f09a3b5c058834bbf772aaa8",
      "tree": "1663b23c67e3eb10e4d91b5d8a63be9239faa20f",
      "parents": [
        "f773e851c620d253d02e81a3e2ae115c5862d73c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 23 18:56:13 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 23 19:06:46 2017 +0000"
      },
      "message": "Fix compilation statistics collection in inliner.\n\nStats from callee graph builder were not merged into main\nstats and stats for callee graph optimizations were counted\neven when the callee graph was eventually rejected.\n\nAllocate the callee graph statistics on the arena.\nMeasured compilation of a big app using heaptrack:\n  bytes allocated in total (ignoring deallocations): 3.77GB -\u003e 3.37GB\n  calls to allocation functions: 10650510 -\u003e 8203129\n\nTest: testrunner.py --host\nTest: Stats change in the expected direction for an app.\nBug: 34053922\nChange-Id: I605280d262b86af14b847acf3bb6dc077b749cc0\n"
    },
    {
      "commit": "27b1f9cbfc1409418eee4b0e22f29f033e10b64d",
      "tree": "07e101c30d024d436086056768fc383d405cd8af",
      "parents": [
        "1372c9f40df1e47bf775f1466bbb96f472b6b9ed"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jan 17 16:56:34 2017 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Feb 23 14:27:50 2017 +0000"
      },
      "message": "Use the holder\u0027s gray bit in Baker read barrier slow paths (ARM, ARM64).\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\nTest: Run ART tests in Baker read barrier configuration.\nTest: Boot a device in Baker read barrier configuration.\nBug: 29516974\nChange-Id: I60595a8f4987747faeaa359ad873e9758c1ded75\n"
    },
    {
      "commit": "1372c9f40df1e47bf775f1466bbb96f472b6b9ed",
      "tree": "d00923d1045ab66c6aa07ed5a42a69899580d210",
      "parents": [
        "6cc0250f1d1507957fc2fe1543179eab5a8b53f9"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jan 13 11:47:39 2017 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Feb 23 13:50:11 2017 +0000"
      },
      "message": "Use the \"GC is marking\" information in compiler read barriers (ARM, ARM64).\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\nTest: Run ART tests in Baker read barrier configuration.\nTest: Boot a device in Baker read barrier configuration.\nBug: 29516974\nChange-Id: Ia5d90286bb9f753f3bbcb3a6254eb166523a2ff5\n"
    },
    {
      "commit": "c061de1236e98fdd34d0214a9bbcc0e2149ff226",
      "tree": "31f6644cf080613d8493db8f510810a89cc6a718",
      "parents": [
        "4c9c57054578022d9ab8442264fbc661769f97f5"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Tue Feb 14 13:27:23 2017 -0800"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Wed Feb 22 14:10:59 2017 -0800"
      },
      "message": "MIPS: Implement heap poisoning in ART\u0027s Optimizing compiler.\n\nThis is in preparation for read barrier support.\n\nBug: 12687968\n\nTest: test-art-host-gtest\nTest: booted MIPS32R2 in QEMU\nTest: test-art-target\nTest: booted MIPS64 (with 2nd arch MIPS32R6) in QEMU\nTest: test-art-target (both MIPS64R6 and MIPS32R6)\n\nNote: built with ART_HEAP_POISONING\u003dtrue.\n\nChange-Id: I0e6e04ff8de2fc8ca6126388409fa218e6920734\n"
    },
    {
      "commit": "9c57113ab1469a65cea2c0ec48dae2fdce9a8f19",
      "tree": "d8c9e1808631812cc16b2b438e73cea0c490017e",
      "parents": [
        "30e015c442c8033390c30d2f293604723c29bc75"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 22 11:59:57 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Feb 22 12:40:40 2017 +0000"
      },
      "message": "Move StackMapStream deduplication maps to arena.\n\nMeasured compilation of a big app using heap track:\n  bytes allocated in total (ignoring deallocations): 4.14GB -\u003e 3.98GB\n  calls to allocation functions: 21662554 -\u003e 1016606\n\nTest: testrunner.py --host\nBug: 34053922\nChange-Id: I0b1c4b5273daa2bc35e039df246bafad417b9b2b\n"
    },
    {
      "commit": "30e015c442c8033390c30d2f293604723c29bc75",
      "tree": "c71324e48fe026cbd11119ef43f44da7ae134093",
      "parents": [
        "e78fc52ca379493801c749a44093f72906abe1e6",
        "e6316892821287b1d1906b9962eae129fbdc37be"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 21 13:00:35 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 21 13:00:35 2017 +0000"
      },
      "message": "Merge \"ARM: VIXL32: Use VIXL backend by default.\""
    },
    {
      "commit": "8ca86eae1f6030782b2646b5b5b0976e06227233",
      "tree": "a56c9ce9f501d2fbf636093c7155d2743dd4416a",
      "parents": [
        "dfe9c30c7214c0874edacfd3bb602df86369c7e0",
        "74234daabb28a4b9c804bf8bf908e7334bd4d400"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 21 10:47:06 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 21 10:47:07 2017 +0000"
      },
      "message": "Merge \"ARM: Merge data-processing instructions and shifts/(un)signed extensions\""
    },
    {
      "commit": "e6316892821287b1d1906b9962eae129fbdc37be",
      "tree": "64f16e96e416902e5a203eb94fb33e09f9d3a4e8",
      "parents": [
        "dfe9c30c7214c0874edacfd3bb602df86369c7e0"
      ],
      "author": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Tue Dec 20 15:46:34 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 21 09:39:32 2017 +0000"
      },
      "message": "ARM: VIXL32: Use VIXL backend by default.\n\nexport ART_USE_OLD_ARM_BACKEND\u003dtrue to use the previous backend.\n\nTest: mma test-art-host \u0026\u0026 mma test-art-target\n\nChange-Id: I4024a4ea15fa8ce1269c0837f6ea001b6c809df5\n"
    },
    {
      "commit": "bfb80d25eaeb7a604d5dd25a370e3869e96a33ab",
      "tree": "96068dd9b9b3bc2e1bcc25d38bbd2420d5b0f1bb",
      "parents": [
        "7a49d93ee265b978ab29cae659e46d41da78459a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 14 14:08:12 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 20 14:13:14 2017 +0000"
      },
      "message": "Revert^4 \"Hash-based dex cache type array.\"\n\nAdded extra output to the abort message to collect more data\nwhen we hit the crash. Added extra check when loading an app\nimage to verify that the class table isn\u0027t already broken.\n\nTest: testrunner.py --host\nBug: 34839984\nBug: 30627598\nBug: 34659969\n\nThis reverts commit 5812e20ff7cbc8efa0b8d7486ada2f58840a6ad5.\n\nChange-Id: I9bb442a184c236dcb75b3e42a095f39cd6bee59d\n"
    },
    {
      "commit": "0f44de8616000962b6ff45dbb50c0cdf34521707",
      "tree": "45d129227a8e5ddcfe64eaa6662e14af9ef97eff",
      "parents": [
        "ee883219e329571b9e487b94dc6a675095d088bf",
        "69d75ffac23fe1e655b7e81f0454c2841280dc1f"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Feb 17 21:53:42 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 17 21:53:43 2017 +0000"
      },
      "message": "Merge \"Skip loop optimization if there is no loop in the graph.\""
    },
    {
      "commit": "69d75ffac23fe1e655b7e81f0454c2841280dc1f",
      "tree": "88432364dd096bdd5674f48fb26e77f08cbf0dc6",
      "parents": [
        "d8a16ba050978e4fe1447089002040a0047a5b3a"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Feb 07 13:06:06 2017 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Feb 17 12:21:46 2017 -0800"
      },
      "message": "Skip loop optimization if there is no loop in the graph.\n\nLinearizeGraph() does quite some allocations.\nAlso add some comments on the possible false positives of\nsome flags.\n\nTest: m test-art-host\nChange-Id: I80ef89a2dc031d601e7621d0b22060cd8c17fae3\n"
    },
    {
      "commit": "74234daabb28a4b9c804bf8bf908e7334bd4d400",
      "tree": "0b60cb00ab117c1a9a4b92983514962198b548bf",
      "parents": [
        "a7e9bfafeb64b1142433a41b05ddc263cadc61e3"
      ],
      "author": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Fri Jan 13 14:42:47 2017 +0000"
      },
      "committer": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Fri Feb 17 14:59:27 2017 +0000"
      },
      "message": "ARM: Merge data-processing instructions and shifts/(un)signed extensions\n\nThis commit mirrors the work that has already been done for ARM64.\n\nTest: m test-art-target-run-test-551-checker-shifter-operand\nChange-Id: Iec8c1563b035f40f0e18dcffde28d91dc21922f8\n"
    },
    {
      "commit": "3c89d4234589816fb7dafb5215543f2cf023ce6c",
      "tree": "a9f6429ffd6625203bdba9c01520b6a5e64ac539",
      "parents": [
        "1fed1dc7b1ea75b0465c0b2b3457718aab5a0f34"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 17 11:30:23 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 17 11:32:59 2017 +0000"
      },
      "message": "x86/string compression: Use TESTB instead of TESTL in String.charAt().\n\nAnd fix disassembly of the now unused TESTL.\n\nTest: testrunner.py --host with string compression enabled.\nTest: Manual inspection of dump-oat output.\nBug: 35433135\nBug: 31040547\nChange-Id: I36c955bc1f2243954ecc315266a2f3fce5d87693\n"
    },
    {
      "commit": "d776ff08e07494327716f0d2ea1a774b2ebfbca9",
      "tree": "cedf874dd494d881adc572a10a9d14bca852add6",
      "parents": [
        "3fb852a88d2a8ffaa87089752f4b1d5f9d6ce3c1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jan 17 09:32:18 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Feb 15 14:46:15 2017 -0800"
      },
      "message": "Add invoke infos to stack maps\n\nInvoke info records the invoke type and dex method index for invokes\nthat may reach artQuickResolutionTrampoline. Having this information\nrecorded allows the runtime to avoid reading the dex code and pulling\nin extra pages.\n\nCode size increase for a large app:\n93886360 -\u003e 95811480 (2.05% increase)\n\n1/2 of the code size increase is from making less stack maps deduped.\nI suspect there is less deduping because of the invoke info method\nindex.\n\nMerged disabled until we measure the RAM savings.\n\nTest: test-art-host, N6P boots\n\nBug: 34109702\n\nChange-Id: I6c5e4a60675a1d7c76dee0561a12909e4ab6d5d9\n"
    },
    {
      "commit": "fdb7d638c17dab47984e1d325d04796bb426d9b3",
      "tree": "a352c1d8e52e18551c16bfea5bb9c564695b5239",
      "parents": [
        "8dc12b1546c7409be19a7b5dc48932011db13067"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 08 15:07:18 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 15 10:25:54 2017 +0000"
      },
      "message": "Inline methods that throw.\n\nForked from https://android-review.googlesource.com/214292\n\ntest: 637-checker-throw-inline\nbug: 30933338\nChange-Id: I184be82dfab0710af3f3796e9e486c7817fa9c60\n"
    },
    {
      "commit": "e92ba687f9ab2a3cd9724f494b6899e8e6e472ec",
      "tree": "895843c819cd8d456492034bf7c3786aea6730f3",
      "parents": [
        "f39d42255214cf5e7297889e237a1917f2f5a963",
        "b703d184603dc25f35da98b6be43054e1594e33b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Feb 15 09:06:26 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 15 09:06:28 2017 +0000"
      },
      "message": "Merge \"Change behavior of $noinline$ to now force not inlining.\""
    },
    {
      "commit": "b703d184603dc25f35da98b6be43054e1594e33b",
      "tree": "e226855ba24664c17beca8c2dfeac837455883fe",
      "parents": [
        "2d98ba68f13dc219c088a12f369c5778bf398f14"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 14 18:05:28 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Feb 14 22:16:09 2017 +0000"
      },
      "message": "Change behavior of $noinline$ to now force not inlining.\n\nIn order to start supporting more inlining, like inlining\nmethods that have a throwing branch, we need to change our\ntesting strategy.\n\ntest: test-art-host\nChange-Id: I65354884898d86a18e78b96b7c21a8728c83f86d\n"
    },
    {
      "commit": "fa4333dcb481e564f54726b4e6f8153612df835e",
      "tree": "ae597c7587dc214434a180962c4373d3748f51ab",
      "parents": [
        "2d98ba68f13dc219c088a12f369c5778bf398f14"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 14 11:10:34 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Feb 14 11:44:48 2017 -0800"
      },
      "message": "ART: Add operator \u003d\u003d and !\u003d with nullptr to Handle\n\nGet it in line with ObjPtr and prettify our code.\n\nTest: m\nChange-Id: I1322e2a9bc7a85d7f2441034a19bf4d807b81a0e\n"
    },
    {
      "commit": "2d98ba68f13dc219c088a12f369c5778bf398f14",
      "tree": "af94d7fc529953701e1231a8ddc453221c414596",
      "parents": [
        "582fc0501bbdbb538cafdf36aec3e142e390688f",
        "e39f14ff4e0d7c70016874cff24863b912d40bf1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 14 15:43:22 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 14 15:43:23 2017 +0000"
      },
      "message": "Merge \"ARM64: Improve String.equals() intrinsic for const strings.\""
    },
    {
      "commit": "e39f14ff4e0d7c70016874cff24863b912d40bf1",
      "tree": "57588025e96e01ac2998cbdcf0ff12a822fdcd4e",
      "parents": [
        "4e4b62e21672dbacf5d5abb688a126aabad29269"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 10 15:44:25 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Feb 14 13:25:05 2017 +0000"
      },
      "message": "ARM64: Improve String.equals() intrinsic for const strings.\n\nAnd add additional tests to 021-string2.\n\naosp_angler-userdebug:\n  before:\n    arm64 boot*.oat: 43324664\n    arm64 boot*.oat/string compression: 43411112\n  after:\n    arm64 boot*.oat: 43300136 (-24528)\n    arm64 boot*.oat/string compression: 43345464 (-65648)\n\nThe string compression code size difference drops from\n86448 to 45328.\n\nTest: m test-art-target on Nexus 6P\nTest: m test-art-target on Nexus 6P with string compression enabled.\nBug: 31040547\nChange-Id: I99a3777b91b248da2b0ac25abd260f9e5abb2c09\n"
    },
    {
      "commit": "5812e20ff7cbc8efa0b8d7486ada2f58840a6ad5",
      "tree": "be0e9fdeb90bcbad76b17b3aae4e746d977d80ee",
      "parents": [
        "518f373324f355f8e58440dfbc3f5a1f2244bde7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 13 18:32:04 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 13 19:34:54 2017 -0800"
      },
      "message": "Revert^3 \"Hash-based dex cache type array.\"\n\nAssert failing for \"earchbox:search\":\nF zygote64: class_linker.cc:4612] Check failed: handle_scope_iface.Get() !\u003d nullptr\n\nTest: m test-art-host\nBug: 34839984\nBug: 30627598\nBug: 34659969\n\nThis reverts commit 85c0f2ac03417f5125bc2ff1dab8109859c67d5c.\n\nChange-Id: I39846c20295af5875b0f945be7035c73ded23135\n"
    },
    {
      "commit": "3228908337fdfe851223f8ae374538de25cb5ad1",
      "tree": "8aeb504fe0ae10e1970201b0b326c3f82cfdc1ff",
      "parents": [
        "7a2a3407a8c0832a4683e103c8d9a7f0ddcb8d51"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Feb 09 15:57:37 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Feb 13 15:37:04 2017 -0800"
      },
      "message": "Deduplicate register maps for both inline and normal stack maps\n\nBefore it only deduplicated the normal stack map dex register maps.\nCode size for a large app: 93341616 -\u003e 92678040 (-0.7%)\n\nAdded test.\n\nBug: 34621054\n\nTest: test-art-host\n\nChange-Id: I4fab4e40915bfa12cb978edbb3cbc19e2cf00954\n"
    },
    {
      "commit": "71953d82e802d8e8e1619562aea26ed3204bafd7",
      "tree": "2e06989273e3a8e98ccf6c3a40b431d5e05f20f8",
      "parents": [
        "ab58a629d6cfe75f0ed34326c2ca6364b2203885",
        "85c0f2ac03417f5125bc2ff1dab8109859c67d5c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Feb 13 16:53:03 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 13 16:53:04 2017 +0000"
      },
      "message": "Merge \"Revert^2 \"Hash-based dex cache type array.\"\""
    },
    {
      "commit": "ab58a629d6cfe75f0ed34326c2ca6364b2203885",
      "tree": "abba45a6314d4b83a1e1d004019b5c9bc360b34d",
      "parents": [
        "47bad4dc4d400ce51ba9d5640ae34b28360d9b85",
        "f94fa81e20d00929ef52707cd577353b95d40284"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 13 12:41:55 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 13 12:41:55 2017 +0000"
      },
      "message": "Merge \"String Compression for MIPS32 and MIPS64\""
    },
    {
      "commit": "47bad4dc4d400ce51ba9d5640ae34b28360d9b85",
      "tree": "5a32492b80c504023f6487eb74f800a91e8c47d6",
      "parents": [
        "4ab54e1935677102c7bec6ec174c7438d89fcd86",
        "64be0070b3e54454683ad049ae653ee7a91c0076"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Feb 13 11:58:38 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 13 11:58:39 2017 +0000"
      },
      "message": "Merge changes I425a7d61,I30365ad6\n\n* changes:\n  Regression test for issue with VIXL AArch64 veneer pool.\n  ARM64: Remove all uses of BlockPoolsScope.\n"
    },
    {
      "commit": "f94fa81e20d00929ef52707cd577353b95d40284",
      "tree": "cb79d0e0610775a41f0511b4cacfe87136bbba60",
      "parents": [
        "806ac631e53f12061cb0ae7640aa9cd0dd79243d"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Fri Feb 10 17:48:52 2017 +0100"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Mon Feb 13 09:05:26 2017 +0000"
      },
      "message": "String Compression for MIPS32 and MIPS64\n\nChanges on intrinsics and Code Generation on MIPS32 and MIPS64 for\nstring compression feature.\n\nTesting is done with STRING_COMPRESSION_ENABLED \u003d true (in libcore),\nmirror::kUseStringCompression \u003d true and STRING_COMPRESSION_FEATURE set\nto 1.\n\nTest: booted MIPS32 and MIPS64 in QEMU\nTest: mma test-art-target-run-test on CI20 (MIPS32R2)\nTest: mma test-art-target-run-test in QEMU (MIPS64R6)\n\nChange-Id: If50a6b6c0792bfa34d4fdff6bf2c7542211d2689\n"
    },
    {
      "commit": "914d7a8fca1184837475016d186585d863e81830",
      "tree": "e0b2ea229d4071d3d1149aa3c60307b75e350d6c",
      "parents": [
        "4e4b62e21672dbacf5d5abb688a126aabad29269"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Tue Feb 07 14:33:49 2017 +0000"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Feb 10 15:12:36 2017 +0000"
      },
      "message": "ARM64: Remove all uses of BlockPoolsScope.\n\nBlockPoolsScope should not be used because it is a VIXL scope\nfor VIXL internal usage only. In arm64 backend the intent was to\nblock pools between a particular instruction (Ldr, Str, Blr, etc)\nand a subsequent MaybeRecordImplicitNullCheck or RecordPcInfo call.\nHowever pools should be emitted at the opening of a scope if this\nis required to satisfy branch/ldr ranges. This is not done by the\nBlockPoolsScope, so proper scopes are now used now:\nExactAssemblyScope and EmissionCheckScope.\n\nTest: test-art-host\nTest: test-art-target\n\nBug: 34850123\n\nChange-Id: I30365ad63c644cf9dd85d5a3c2118f9c57be9d20\n"
    },
    {
      "commit": "ffa5130425d582ecaa10b6f93bb5fa632fcd93af",
      "tree": "cbe451cded4fb1d404256fae6c74f6e057c7ea75",
      "parents": [
        "1c66504e0613bdf02dd15e15cd7e5167a4569d19",
        "d966ce7739bebbdce5481900a1b3220b31f3f3ad"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Feb 10 14:15:33 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 10 14:15:34 2017 +0000"
      },
      "message": "Merge \"Use entrypoint switching on x86 \u0026 x86-64 for GC root read barriers.\""
    },
    {
      "commit": "1c66504e0613bdf02dd15e15cd7e5167a4569d19",
      "tree": "ab01d21a1ab960e02e09ba040ee52ed0d3dc3a80",
      "parents": [
        "11be69af1546bf66fa63ec13c250e4d28087b64e",
        "ea4c126a0165c5a4b997986e6e01c7f975642167"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 10 13:11:42 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 10 13:11:42 2017 +0000"
      },
      "message": "Merge \"Change type initialization entrypoints to kSaveEverything.\""
    },
    {
      "commit": "85c0f2ac03417f5125bc2ff1dab8109859c67d5c",
      "tree": "844952d237e35faa5c5a2357ab037366c8397115",
      "parents": [
        "8d4b1189639f0d8982bde681ccbdd7c03fe6ddbf"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Feb 02 16:42:38 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Feb 10 11:23:11 2017 +0000"
      },
      "message": "Revert^2 \"Hash-based dex cache type array.\"\n\nThe reason for the revert was fixed by\n    https://android-review.googlesource.com/332666 .\nWe now enable clearing dex cache types in test 155 from that\nCL. Also avoid an unnecessary store in LookupResolvedTypes()\nand prevent verifier from messing up the dex cache types.\n\nTest: m test-art-host\nBug: 34839984\nBug: 30627598\nBug: 34659969\n\nThis reverts commit d16363a93053de0f32252c7897d839a46aff14ae.\n\nChange-Id: Ie8603cfa772e78e648d005b0b6eae59062ae729d\n"
    }
  ],
  "next": "d966ce7739bebbdce5481900a1b3220b31f3f3ad"
}
