)]}'
{
  "log": [
    {
      "commit": "a290160f74ee53c0ffb51c7b3ac916d239c9556a",
      "tree": "0bfc9728ccee68dbd359b023319423f703448aac",
      "parents": [
        "86d244ec33f333b32301a9ee09088300c8544a7b"
      ],
      "author": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@imgtec.com",
        "time": "Thu Sep 21 13:50:52 2017 +0200"
      },
      "committer": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@imgtec.com",
        "time": "Thu Oct 05 11:43:34 2017 +0200"
      },
      "message": "MIPS32R2: Share address computation\n\nFor array accesses the element address has the following structure:\nAddress \u003d CONST_OFFSET + base_addr + index \u003c\u003c ELEM_SHIFT\n\nThe address part (index \u003c\u003c ELEM_SHIFT) can be shared across array\naccesses with the same data type and index.\n\nFor example, in the following loop 5 accesses can share address\ncomputation:\n\nvoid foo(int[] a, int[] b, int[] c) {\n  for (i...) {\n    a[i] \u003d a[i] + 5;\n    b[i] \u003d b[i] + c[i];\n  }\n}\n\nTest: test-art-host, test-art-target\nChange-Id: Id09fa782934aad4ee47669275e7e1a4d7d23b0fa\n"
    },
    {
      "commit": "c8fb211482e27ead6f015faf7e2b02225f728e99",
      "tree": "b9702c99bc3fd2c09e93905b6ea1fdb0d2c9d970",
      "parents": [
        "5adf26c26d6b662d95712f39c40946e23da8b650"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 03 11:37:52 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 03 12:44:47 2017 +0100"
      },
      "message": "ART: Simplify And(TypeConversion\u003cInt64\u003e(x), Const32).\n\nReorder the And and TypeConversion as\n    TypeConversion\u003cInt64\u003e(And(x, Const32))\nfor 32-bit constant Const32.\n\nFor example, java.io.Bits.getLong(byte[] b, int off) yields\nbetter generated code on 32-bit platforms for each of its\neight \"b[off + .] \u0026 0xFFL\" sequences.\n\nAlso remove obsolete \"doThrow\" code that attempts to prevent\ninlining; the $noinline$ tag is now honored by the compiler.\n\nTest: Added tests to 458-checker-instruct-simplification.\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nChange-Id: Ib6e413517daa5206764653ebb6c4687a4c68d02d\n"
    },
    {
      "commit": "5adf26c26d6b662d95712f39c40946e23da8b650",
      "tree": "1c57801b08a66219e30354156b1e5c08c60a0f18",
      "parents": [
        "25ae37970757ab06bb75b63a933926a4db4bb38d",
        "d5d2f2ce627aa0f6920d7ae05197abd1a396e035"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 03 11:32:13 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 03 11:32:13 2017 +0000"
      },
      "message": "Merge \"ART: Introduce Uint8 compiler data type.\""
    },
    {
      "commit": "d5d2f2ce627aa0f6920d7ae05197abd1a396e035",
      "tree": "e8e780780c832e3614a22438a23fb60ee4960ca3",
      "parents": [
        "efac0df8c738764823c637deeca1f3be33912064"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Sep 26 12:37:26 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 03 10:40:51 2017 +0100"
      },
      "message": "ART: Introduce Uint8 compiler data type.\n\nThis CL adds all the necessary codegen for the Uint8 type\nbut does not add code transformations that use that code.\nVectorization codegens are modified to use Uint8 as the\npacked type when appropriate. The side effects are now\ndisconnected from the instruction\u0027s type after the graph has\nbeen built to allow changing HArrayGet/H*FieldGet/HVecLoad\nto use a type different from the underlying field or array.\n\nNote: HArrayGet for String.charAt() is modified to have\nno side effects whatsoever; Strings are immutable.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing --jit\nTest: testrunner.py --target --optimizing on Nexus 6P\nTest: Nexus 6P boots.\nBug: 23964345\nChange-Id: If2dfffedcfb1f50db24570a1e9bd517b3f17bfd0\n"
    },
    {
      "commit": "25ae37970757ab06bb75b63a933926a4db4bb38d",
      "tree": "e2fc24b9b2c809fc4c623d9eb412fa3b82bdc328",
      "parents": [
        "aeafbe4d42b132c8705a364d2f6bde301c3d379f",
        "4a4610a438ff2b836f6fe07839a0689ce618863a"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Oct 03 08:21:38 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 03 08:21:38 2017 +0000"
      },
      "message": "Merge \"ART: Add VarHandle fence intrinsics\""
    },
    {
      "commit": "efac0df8c738764823c637deeca1f3be33912064",
      "tree": "db1b66aee27ca87dceb2e636b113aaf99b71384e",
      "parents": [
        "7ba68c8fa76c9440724996718b8dbc726a2dcd6e",
        "df011c3bc3db8b327f2b2d93e108c3a53a9a4f34"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 02 18:37:19 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 02 18:37:19 2017 +0000"
      },
      "message": "Merge \"Generalized zero/sign-ext analysis. Generalized SAD.\""
    },
    {
      "commit": "df011c3bc3db8b327f2b2d93e108c3a53a9a4f34",
      "tree": "f1674e28d38bb37d81c3ddb58dbe843974852e46",
      "parents": [
        "9c0a6ce0a41eaf78f3fc3224fc34195601b6e0b3"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Sep 28 12:53:04 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Oct 02 09:54:20 2017 -0700"
      },
      "message": "Generalized zero/sign-ext analysis. Generalized SAD.\n\nRationale:\nThe more, the better. Some of the analysis was\noverly conservative (e.g. extension does not\nneed to happen from terminals only as long\nas vectorized guarantees higher order bits\ndon\u0027t contribute). Also, added hidden-SUB for SAD.\n\nTest: test-art-host test-art-target\n\nBug: 64091002\nChange-Id: I66afd8fb4292ce5cf14f98f9c5ce2bf2b8c98488\n"
    },
    {
      "commit": "7ba68c8fa76c9440724996718b8dbc726a2dcd6e",
      "tree": "c88028c241de516f6011c0d0c53f1fd20ee07e0d",
      "parents": [
        "865a0503515f78611dce103bd04b7c66c051d304",
        "0f689e773c49536208d40a2e23410deea4acc184"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 02 13:37:29 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 02 13:37:29 2017 +0000"
      },
      "message": "Merge \"ARM/ARM64: Move simplifier visitors to .cc files.\""
    },
    {
      "commit": "4a4610a438ff2b836f6fe07839a0689ce618863a",
      "tree": "afb5c6303c6c8eb68f81752a642a5b036049b28d",
      "parents": [
        "865a0503515f78611dce103bd04b7c66c051d304"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu Sep 28 16:57:55 2017 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Oct 02 14:09:21 2017 +0100"
      },
      "message": "ART: Add VarHandle fence intrinsics\n\nBug: 65872996\nTest: art/test/run-test --host --64 709\nTest: art/test.py --host -j32\nChange-Id: I6fa399bb00f0c83048ac2b4372b08e4b4b29ce7f\n"
    },
    {
      "commit": "0f689e773c49536208d40a2e23410deea4acc184",
      "tree": "688a08e69ff658719a81a65461019e015ca4b8d8",
      "parents": [
        "cd9903db5d0cdb9664d42c11ab04954a829206c8"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 02 12:38:21 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 02 12:38:21 2017 +0100"
      },
      "message": "ARM/ARM64: Move simplifier visitors to .cc files.\n\nTest: Rely on TreeHugger.\nChange-Id: Ib2cad20a4d6252812aaf6fa09a576bdfca423b70\n"
    },
    {
      "commit": "d7d5ed9531579170e416d5af2625edcb704940b5",
      "tree": "24b8ccf2f8356f28e5bb1d090d6c7424999440c1",
      "parents": [
        "cd9903db5d0cdb9664d42c11ab04954a829206c8",
        "cfcc9cfb44bab79f7381bcc4bfd9bf2d4435f734"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Oct 02 10:56:07 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 02 10:56:07 2017 +0000"
      },
      "message": "Merge \"ART: Increase the number of potential instrinsics\""
    },
    {
      "commit": "cd9903db5d0cdb9664d42c11ab04954a829206c8",
      "tree": "5b0cc2ba94f25617acc634522df6a6a32ee3c2f1",
      "parents": [
        "f67f115423c9ef5aa62a33c12670cd8f89457c9c",
        "7033d49488c75321ff2e40b26447722ae069c726"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 02 09:20:07 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 02 09:20:07 2017 +0000"
      },
      "message": "Merge \"ART: Generalize \"x \u003e\u003e (s \u0026 m)\" simplification.\""
    },
    {
      "commit": "cfcc9cfb44bab79f7381bcc4bfd9bf2d4435f734",
      "tree": "6637daf0cde4f14afd02793ad268f22f9257bd4c",
      "parents": [
        "f67f115423c9ef5aa62a33c12670cd8f89457c9c"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri Sep 29 15:07:27 2017 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Sun Oct 01 12:08:08 2017 +0100"
      },
      "message": "ART: Increase the number of potential instrinsics\n\nThe new limit is 256 intrinsics.\n\nAdds additional sanity checks.\n\nAvoids setting the kAccPreviouslyWarm bit for intrinics (defaults to\ntrue).\n\nBug: 65872996\nTest: art/test.py --host -j32\nChange-Id: I33ea67c9b6b8500b3ceb8a085358f075f6fcbb82\n"
    },
    {
      "commit": "7033d49488c75321ff2e40b26447722ae069c726",
      "tree": "b4474ffba397cbd05bd448e22595c44024a305ca",
      "parents": [
        "6e7e0ddf1dda35570cd9ed23751d9306f7353d7f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 28 16:32:24 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 29 11:24:51 2017 +0100"
      },
      "message": "ART: Generalize \"x \u003e\u003e (s \u0026 m)\" simplification.\n\nExtend the simplification from\n  x SHIFT (s \u0026 mask), mask contains relevant bits\nwhere SHIFT is Shl/Shr/UShr/Ror to\n  x SHIFT (s | mask), mask does not contain relevant bits,\n  x SHIFT (s ^ mask), mask does not contain relevant bits,\n  x SHIFT (s + mask), mask does not contain relevant bits,\n  x SHIFT (s - mask), mask does not contain relevant bits,\n  x SHIFT ((type)s), s is non-64-bit integral type.\n\nThe simplification for the TypeConversion case is motivated\nby the work to introduce Uint8 and convert \u0027\u0026 0xff\u0027 to\nTypeConversion. This CL makes sure the old simplifications\nshall still work. The simplifications for Or/Xor/Add/Sub\nare added just because we can.\n\nTest: Add tests to 548-checker-instruct-simplification.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 23964345\nChange-Id: I71210cb63496fae607a457a627f115260669c2c9\n"
    },
    {
      "commit": "9c0a6ce0a41eaf78f3fc3224fc34195601b6e0b3",
      "tree": "9cc5763a95d8a77a31e57be554388d0d06277ce6",
      "parents": [
        "6e7e0ddf1dda35570cd9ed23751d9306f7353d7f",
        "9e1478795fb0dbb126213311b0b4483898c079e3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 28 14:59:38 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 28 14:59:38 2017 +0000"
      },
      "message": "Merge \"Enables GVN for x86 and x86_64.\""
    },
    {
      "commit": "2a7b84ba85caa95f6bdb9ad5be3f93b2c742d366",
      "tree": "7d84d17a49e121ea8b3a90127d1d5e1322942914",
      "parents": [
        "350546494d6964daee2b9236820b7f85b88dfd59",
        "1d2d4ff8570bb88d9d2d4633706fd7f6fb18d75e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 27 22:53:17 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 27 22:53:17 2017 +0000"
      },
      "message": "Merge \"Add DexInstructionIterator and use it a few places\""
    },
    {
      "commit": "1d2d4ff8570bb88d9d2d4633706fd7f6fb18d75e",
      "tree": "cbe67e8e9214828656314117121e8ce906a762ab",
      "parents": [
        "e5b35ed787fbfb388d162361310bae5b0e7682a7"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sat Sep 23 16:11:06 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Sep 27 11:51:53 2017 -0700"
      },
      "message": "Add DexInstructionIterator and use it a few places\n\nMotivation:\nWant to start abstracting away dex specific functionality to enable\nCompactDex. Adding an iterator will enable CompactDex iteration to\nwork differently than normal dex iteration.\n\nWill eventually replace CodeItemIterator.\n\nBug: 63756964\nTest: test-art-host\n\nChange-Id: I90e67c1a994b7698aaac0523a82816b0a003fbdc\n"
    },
    {
      "commit": "9e1478795fb0dbb126213311b0b4483898c079e3",
      "tree": "f7ed13ffa1fde3e5c31d25419f28ebbbe72d9e4d",
      "parents": [
        "e5b35ed787fbfb388d162361310bae5b0e7682a7"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Sep 27 11:25:01 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Sep 27 11:25:01 2017 -0700"
      },
      "message": "Enables GVN for x86 and x86_64.\n\nRationale:\nAs decided after the MIPS change, this change unifies our\nsix code generators again a bit (we cannot move it into\nthe generic path, since arm likes to run the simplifier\nfirst). Generally the GVN does some last minute cleanup\n(such as finding CSE in the runtime tests generated\nby dynamic BCE). I started a golem run to find impact.\n\nTest: test-art-host test-art-target\nChange-Id: Ib4098c5bae2269e71fee95cc31e3662d3aa47f6a\n"
    },
    {
      "commit": "68ca702c800d40b3e1f9aecdb6d5385b3492fda1",
      "tree": "c0b0fbf453d3d8198e747fa99b4817504f5c16a8",
      "parents": [
        "e5b35ed787fbfb388d162361310bae5b0e7682a7"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Sep 26 16:44:23 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Sep 27 09:27:05 2017 -0700"
      },
      "message": "Added SAD test. Generalized vector analysis of narrow type.\n\nRationale:\nThe new example shows that scalar type of array reference does not\nreflect signed-ness or unsigned-ness of vector operation. Instead\nthe vectorizer\u0027s analysis looks at zero or sign extension to determine\nwhat operation is required and passes this as explicit or implicit\nattribute to the code generator. So don\u0027t use packed data type to\ndecide what operation to perform. This become relevant while switching\nto explicit signed and unsigned data types, where we want to pass the\nright type to make this decision in the future\n\nTest: test-art-host test-art-target\n\nBug: 64091002\n\nChange-Id: I49a8827a13dd703910effcb5a5ebc4b9646cd1e8\n"
    },
    {
      "commit": "e5b35ed787fbfb388d162361310bae5b0e7682a7",
      "tree": "33e6dde28be9579a8a60202a16caa5ba88cd7597",
      "parents": [
        "476fce3434939eadb35e532922b22f1b583aecd5",
        "b8e9c35df4058834afc95e2dbfb0e8114b1991da"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 27 16:04:20 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 27 16:04:20 2017 +0000"
      },
      "message": "Merge \"Enables GVN for MIPS32 and MIPS64.\""
    },
    {
      "commit": "0ebe0d83138bba1996e9c8007969b5381d972b32",
      "tree": "a5ee66ebc5b587ade97e56ac8fc7d832fbbed4af",
      "parents": [
        "e1e347dace0ded83774999bb26c37527dcdb1d5a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 21 22:50:39 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 25 15:45:01 2017 +0100"
      },
      "message": "ART: Introduce compiler data type.\n\nReplace most uses of the runtime\u0027s Primitive in compiler\nwith a new class DataType. This prepares for introducing\nnew types, such as Uint8, that the runtime does not need\nto know about.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nBug: 23964345\nChange-Id: Iec2ad82454eec678fffcd8279a9746b90feb9b0c\n"
    },
    {
      "commit": "994cfb3d1595e28b61b8831264c5fc0ebdb6d156",
      "tree": "701912858cd2e6cca5bae653fcab37d9afb2e0c2",
      "parents": [
        "478abf08c6d2a95eef12e78d3b12857917a91872",
        "debb510e34b844cc6d80d0304db34c7530fbaf44"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 21 21:29:42 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 21 21:29:42 2017 +0000"
      },
      "message": "Merge \"MIPS32R2: Allow all kinds of class/string loads and invokes\""
    },
    {
      "commit": "dbbac8f812a866b1b53f3007721f66038d208549",
      "tree": "05cecd927afccd33fc1c14b39ada47e86873f560",
      "parents": [
        "2406bf17998e15bd40677a907beb3e9c41facce4"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Sep 01 13:06:08 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Sep 21 10:20:55 2017 -0700"
      },
      "message": "Implement Sum-of-Abs-Differences idiom recognition.\n\nRationale:\nCurrently just on ARM64 (x86 lacks proper support),\nusing the SAD idiom yields great speedup on loops\nthat compute the sum-of-abs-difference operation.\nAlso includes some refinements around type conversions.\n\nSpeedup ExoPlayerAudio (golem run):\n1.3x on ARM64\n1.1x on x86\n\nTest: test-art-host test-art-target\n\nBug: 64091002\n\nChange-Id: Ia2b711d2bc23609a2ed50493dfe6719eedfe0130\n"
    },
    {
      "commit": "2406bf17998e15bd40677a907beb3e9c41facce4",
      "tree": "0a62f581bf65b4eaac2f18d4ade0b3050f0b3c5d",
      "parents": [
        "1c8ac50fa9f62c7b78fc04faacbd854eac75c75a",
        "5e3afa950f05bca470ef6b92460940f37831c27f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 21 16:31:32 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 21 16:31:32 2017 +0000"
      },
      "message": "Merge \"Ensure extract is seen as having scalar result.\""
    },
    {
      "commit": "b8e9c35df4058834afc95e2dbfb0e8114b1991da",
      "tree": "461ec732d3f496e492628d5d56df3fd14209edb1",
      "parents": [
        "fa5b9c8469330705cf21e231e9d4d34f79170c21"
      ],
      "author": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@imgtec.com",
        "time": "Wed Sep 20 15:11:13 2017 +0200"
      },
      "committer": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@imgtec.com",
        "time": "Thu Sep 21 16:12:57 2017 +0200"
      },
      "message": "Enables GVN for MIPS32 and MIPS64.\n\nTest: mma test-art-host-gtest\nTest: mma test-art-target-gtest in QEMU\nTest: ./testrunner.py --target --optimizing in QEMU\n\nChange-Id: Ie3c6b29b9125ff8aef888c3574bdb0ab96574bd4\n"
    },
    {
      "commit": "debb510e34b844cc6d80d0304db34c7530fbaf44",
      "tree": "d54afd723f4477a67a5aaef4eb1f639794fd75fe",
      "parents": [
        "5402edd0630cb6f30d98ff712ed914eadce6586c"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Thu Sep 21 14:24:06 2017 +0200"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Thu Sep 21 14:24:06 2017 +0200"
      },
      "message": "MIPS32R2: Allow all kinds of class/string loads and invokes\n\nForce generating nal instruction before PC-relative addressing in the\npresence of irreducible loops (HMipsComputeBaseMethodAddress is not\nused in those situations).\n\nThis patch fixes a lot of JIT tests failures.\n\nTest: ./testrunner.py --target --optimizing --jit (CI20 and QEMU)\nTest: mma test-art-target-gtest (CI20 and QEMU)\n\nChange-Id: I1815a6bb5783f439c8263612abff557f797bfef1\n"
    },
    {
      "commit": "5e3afa950f05bca470ef6b92460940f37831c27f",
      "tree": "3656fb1d9153a87b55b56c71a93833da49c112d4",
      "parents": [
        "b407afe983f8b106a5007d07aa2523ffc6525018"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Sep 20 14:11:11 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Sep 20 14:11:11 2017 -0700"
      },
      "message": "Ensure extract is seen as having scalar result.\n\nRationale:\nExtracting from a vector yields a scalar, yet\nour parallel mover and one DCHECK did not account\nfor that fact (note that moving towards a vector\ntype system will prevent such errors).\n\nRegression test for this is part of the SAD CL.\n\nTest: test-art-host test-art-target\n\nBug: 64091002\nChange-Id: Id154edd1a069c54e7d8da069c368dea0a8f973f4\n"
    },
    {
      "commit": "d8dbc8da0e5cc6b5c2176ce2d3877e6194d72c0c",
      "tree": "af6e9fb02471d75ebdea46190a0aa3e9dbdb892d",
      "parents": [
        "93780a60090356921b844dbefdc13442c9f18b52"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 20 13:37:47 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 20 15:55:10 2017 +0100"
      },
      "message": "Refactor compiled_method.h .\n\nMove LinkerPatch to compiler/linker/linker_patch.h .\nMove SrcMapElem to compiler/debug/src_map_elem.h .\nIntroduce compiled_method-inl.h to reduce the number\nof `#include`s in compiled_method.h .\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nChange-Id: Id211cdf94a63ad265bf4709f1a5e06dffbe30f64\n"
    },
    {
      "commit": "7452797678c4345d4a9e65b03e00af703c2c5fe0",
      "tree": "fd23d118a6317737a692402a648217418c3d7b99",
      "parents": [
        "3c683150bcf2f1cabbe2e5f9d10d8c670b67fb7e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 29 15:57:32 2016 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 20 10:58:42 2017 +0100"
      },
      "message": "Refactor linker files from compiler/ to dex2oat/.\n\nThis shifts some code from the libart-compiler.so to dex2oat\nand reduces memory needed for JIT. We also avoid loading the\nlibart-dexlayout.so for JIT but the memory savings are\nminimal (one shared clean page, two shared dirty pages and\nsome per-app kernel mmap data) as the code has never been\nneeded in memory by JIT.\n\naosp_angler-userdebug file sizes (stripped):\n  lib64/libart-compiler.so: 2989112 -\u003e 2671888 (-310KiB)\n  lib/libart-compiler.so: 2160816 -\u003e 1939276 (-216KiB)\n  bin/dex2oat: 141868 -\u003e 368808 (+222KiB)\nLOAD/executable elf mapping sizes:\n  lib64/libart-compiler.so: 2866308 -\u003e 2555500 (-304KiB)\n  lib/libart-compiler.so: 2050960 -\u003e 1834836 (-211KiB)\n  bin/dex2oat: 129316 -\u003e 345916 (+212KiB)\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: cd art/; mma; cd -\nChange-Id: If62f02847a6cbb208eaf7e1f3e91af4663fa4a5f\n"
    },
    {
      "commit": "0588f3aa446b9eb96ee7452d4a4494684b41d039",
      "tree": "dc1af5168b4b3cf63966aeb2bfd05c9e53d88d0d",
      "parents": [
        "8048bf6d13dd4492df8d59ecb795987558e2e579",
        "4584122ca1ec38e78efb2845375f91ca9e1fc71e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 19 23:39:33 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 19 23:39:33 2017 +0000"
      },
      "message": "Merge changes Ib4459783,Ibb40f919\n\n* changes:\n  ART: Remove suspend-check optimization\n  ART: Remove heap poisoning from globals.h\n"
    },
    {
      "commit": "09659c22dc2f2c85a0ade965d1fc5160944b8692",
      "tree": "66fd5729395d27569c4d9d255a5ce9b44cb000bf",
      "parents": [
        "4d159807a4854caa6396b708a38bbd6fa49d736f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 18 18:23:32 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Sep 19 10:26:51 2017 -0700"
      },
      "message": "ART: Remove heap poisoning from globals.h\n\nRemove mostly-unused include and move it to its users.\n\nTest: m\nChange-Id: Ibb40f919db64a490290c6e18cf1123aaf44199fc\n"
    },
    {
      "commit": "4f7dd346dee85939572d667e204f459c8100e626",
      "tree": "1c69d532adabbca4215de1c2be5b6cbf7df48b3a",
      "parents": [
        "08601a494e87dfba9b06f9fdea37c9342e4896d1"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Sep 12 13:12:57 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Sep 19 09:37:32 2017 -0700"
      },
      "message": "Recognize ABS cases.\n\nRationale:\nenables more optimizations on ABS, such as SIMDization\n\nBackground:\nthis is a breakout CL for SAD\n\nBug: 64091002\n\nTest: test-art-host test-art-target\nChange-Id: I4551c66114a04d51e4140ff222722fdd52ea6e63\n"
    },
    {
      "commit": "08601a494e87dfba9b06f9fdea37c9342e4896d1",
      "tree": "ed88da37b072b8e65d61373068912f00924b1f54",
      "parents": [
        "216ba99075c650822585b92c37161aabd45f74a0",
        "217d6d3cd0b78966178ab93cd221dbb2865048ee"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 19 15:29:07 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 19 15:29:07 2017 +0000"
      },
      "message": "Merge changes I38b16291,I159669ec\n\n* changes:\n  ART: Remove old code\n  ART: Move read barrier config out of globals\n"
    },
    {
      "commit": "dbeacd6f1687439bd391bdd6a66a4b48d7d45ebf",
      "tree": "97ab216c77bd586e93beb5074c558b4729a97cb5",
      "parents": [
        "da6f3eee076aced30fdfdc75604509cde516c307",
        "fc8b422c286501346b5b797420fb616aaa5e952a"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 18 20:03:45 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 18 20:03:45 2017 +0000"
      },
      "message": "Merge \"Clean up AtomicDexRefMap\""
    },
    {
      "commit": "217d6d3cd0b78966178ab93cd221dbb2865048ee",
      "tree": "cbed5f71f5ebfc98044559ec7835bbdd1ddb339f",
      "parents": [
        "217488a9ddf351033c1688198c492b9c40c36d8a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 18 12:48:20 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 18 12:50:43 2017 -0700"
      },
      "message": "ART: Remove old code\n\nRemove unused Quick compiler flag.\n\nRemove support for arm32 soft-float code (which is no longer\nsupported by our compiler).\n\nTest: m\nChange-Id: I38b16291d90094dbf26776923a46afbf8de53f20\n"
    },
    {
      "commit": "217488a9ddf351033c1688198c492b9c40c36d8a",
      "tree": "98dc5553e2538b9b508c1837bc27b383d73b7149",
      "parents": [
        "e16ed6da590e717e28c07e2c9d1b342efc678870"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 18 08:34:42 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 18 12:50:43 2017 -0700"
      },
      "message": "ART: Move read barrier config out of globals\n\nReduce the global dependencies by refactoring where the read\nbarrier constants are defined.\n\nRename read_barier_c.h to read_barier_config.h and ifdef the\nC++ parts to have a common header for both C/asm and C++.\n\nPut heap poisoning configuration into its own minimal header.\n\nFix up transitive includes.\n\nTest: m\nChange-Id: I159669ec61e3d1c4c7ddcd79e63b023a0519717a\n"
    },
    {
      "commit": "e2abbc604ce003c776c00ecf1293796bb4c4ac5a",
      "tree": "f7d124d1861cad2162c30dfe932bb4e1beaf41ef",
      "parents": [
        "7090dfe84f78b1928fcbdfd664d0dd9ea52633ff"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Sep 15 11:59:26 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 18 11:36:24 2017 -0700"
      },
      "message": "ART: Move kDexNoIndex to dex_file_types.h\n\nDefine the constant with the types to allow lowering the dependency\non DexFile.\n\nTest: m\nChange-Id: I3c61421db45be96d2057e01b1a7825883d8bd178\n"
    },
    {
      "commit": "fc8b422c286501346b5b797420fb616aaa5e952a",
      "tree": "61c857a895cdad9ce387a899f92824701259df32",
      "parents": [
        "7090dfe84f78b1928fcbdfd664d0dd9ea52633ff"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Sun Sep 17 13:44:24 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 18 10:57:06 2017 -0700"
      },
      "message": "Clean up AtomicDexRefMap\n\nMake ClassReference, TypeReference, and MethodReference extend\nDexFileReference. This enables using all of these types as the key\nfor AtomicDexRefMap.\n\nTest: test-art-host\nBug: 63851220\nBug: 63756964\n\nChange-Id: Ida3c94cadb53272cb5057e5cebc5971c1ab4d366\n"
    },
    {
      "commit": "1b404a8b34f6fa80342955cb0a61673503328b51",
      "tree": "df0d83903e77c55dcb476a19961ea9cccc13e616",
      "parents": [
        "fe712a8b9c247d66df013f2b4b6faa6009d745bb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 01 13:35:26 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 18 16:53:30 2017 +0100"
      },
      "message": "Add debug info for link-time generated thunks.\n\nAdd debug info for method call thunks (currently unused) and\nBaker read barrier thunks. Refactor debug info generation\nfor trampolines and record their sizes; change their names\nto start with upper-case letters, so that they can be easily\ngenerated as `#fn_name`.\n\nThis improved debug info must be generated by `dex2oat -g`,\nthe debug info generated by `oatdump --symbolize` remains\nthe same as before, except for the renamed trampolines and\nan adjustment for \"code delta\", i.e. the Thumb mode bit.\n\nCortex-A53 erratum 843419 workaround thunks are not covered\nby this CL.\n\nTest: Manual; run-test --gdb -Xcompiler-option -g 160, pull\n      symbols for gdbclient, break in the introspection\n      entrypoint, check that gdb knows the new symbols\n      (and disassembles them) and `backtrace` works when\n      setting $pc to an address in the thunk.\nBug: 36141117\nChange-Id: Id224b72cfa7a0628799c7db65e66e24c8517aabf\n"
    },
    {
      "commit": "3597f51c4af8d5e32c21789ea7b7cd75dc078120",
      "tree": "c85560ba6c023635b53b1a3831935e5943d94a36",
      "parents": [
        "775784beee009bfe125ca9df0c4e2ac7288f2e24",
        "d30f205f128c5ae625642d525e65a7fdd23d47a9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 15 22:56:39 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 15 22:56:39 2017 +0000"
      },
      "message": "Merge \"Bail for SIMD code in LSE.\""
    },
    {
      "commit": "d30f205f128c5ae625642d525e65a7fdd23d47a9",
      "tree": "04dae3aedcb03b11cb2abf066e4ec3dee5c8a205",
      "parents": [
        "6b411fc9fd94da3c552d8b96cee14f6414e7b734"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Sep 12 13:07:00 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Sep 15 08:53:43 2017 -0700"
      },
      "message": "Bail for SIMD code in LSE.\n\nRationale:\nLSE does not look at vector load/stores currently,\nwhich potentially breaks anything containing SIMD.\nThis is a temporary fix to get the mainline clean\nuntil the real solution (looking at simd l/s) goes in.\n\nTest: test-art-host test-art-target\n\nBug: 64091002\nChange-Id: I018685bcd32ab8e0710435bf1d1d95aafd874a33\n"
    },
    {
      "commit": "73b326ea1c1a58a5017f33286e511e1aa020de1c",
      "tree": "b8bb8bc74508f619b7746c0167ae3572a6da2c2f",
      "parents": [
        "6b411fc9fd94da3c552d8b96cee14f6414e7b734"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Sep 12 14:42:29 2017 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Sep 12 17:20:04 2017 -0700"
      },
      "message": "Add a DCHECK for BCE.\n\nA MonotonicValueRange should only be assigned for a loop header phi.\n\nTest: host run-test.\nChange-Id: Idd990670f5449c6b6b9c4a162522e960c34902de\n"
    },
    {
      "commit": "bae9c9ad631576966c82872b32e309dc720b309b",
      "tree": "69704a78f1c5006d0e35e46df2095b4555885dce",
      "parents": [
        "47d00f6c4657af33c3cc29783c0f2eb156aa1449"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Sep 11 14:51:54 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Sep 11 15:24:52 2017 -0700"
      },
      "message": "Fix bug in BCE remainder handling.\n\nRationale:\n(1) code was looking up index in wrong block\n(2) code was merging monotonic (rather than the other way around).\nThis\n(a) caused DCHECK failure, reproduced and fixed with new test\n(b) missed cases, reproduced and fixed with new test\n\nBug: 65551926\n\nTest: test-art-host\nChange-Id: I9991635bf8b04925b6929b73abf659717639a78b\n"
    },
    {
      "commit": "47d00f6c4657af33c3cc29783c0f2eb156aa1449",
      "tree": "5e0d77956ffe8fc6b6b3f70f702bf21f32d67f8f",
      "parents": [
        "1ffbc05e2a2bd70fcf34a2acd88c21fdcf3c56ff",
        "a7c83ac563a8f25174ac8826f7fb87bd0a9da9fb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Sep 11 20:50:21 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 11 20:50:21 2017 +0000"
      },
      "message": "Merge changes I88fd4905,Ib8c0a28c\n\n* changes:\n  ART: Clean up WellKnownClasses include.\n  ART: Clear WellKnownClasses on shutdown\n"
    },
    {
      "commit": "1ffbc05e2a2bd70fcf34a2acd88c21fdcf3c56ff",
      "tree": "65f322fc50014f676150c5a3424f751a27863223",
      "parents": [
        "9d9f2d7782545082a22b3630ec75aa5a7e887582",
        "521b50f58f2af8b5a68f821a6c4eac7d86ec01f5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Sep 11 18:55:05 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 11 18:55:05 2017 +0000"
      },
      "message": "Merge \"No unrolling for large loop bodies.\""
    },
    {
      "commit": "521b50f58f2af8b5a68f821a6c4eac7d86ec01f5",
      "tree": "68e41bad2a2106e27bfd470b627f11706d9b6e92",
      "parents": [
        "d4d11822e349e7e4af0b43cb3fc69e14f1c95475"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Sat Sep 09 10:44:45 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Sep 11 10:02:55 2017 -0700"
      },
      "message": "No unrolling for large loop bodies.\n\nRationale:\nshould yield 1, not 0\n\nTest: test-art-host test-art-target\nChange-Id: I0ca68b2a5a4dba1c3e41248376002d9635716840\n"
    },
    {
      "commit": "9d9f2d7782545082a22b3630ec75aa5a7e887582",
      "tree": "1210668cbd5b35a0d1f6c1f83f766979c7a780b2",
      "parents": [
        "fe30b3e2815c6140471338df5d903a2c1d242414",
        "94ec2db21332ee1dcdbbf254b99a9a999a304fe0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 11 16:55:32 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 11 16:55:32 2017 +0000"
      },
      "message": "Merge \"Use mmapped boot image class table for PIC app HLoadClass.\""
    },
    {
      "commit": "a7c83ac563a8f25174ac8826f7fb87bd0a9da9fb",
      "tree": "23ca6d02cd6fd7054bc4511a3f5ec346c4f9173d",
      "parents": [
        "db48a79e49a900e255c1a472d6436a655016125f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 11 08:14:23 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Sep 11 08:14:23 2017 -0700"
      },
      "message": "ART: Clean up WellKnownClasses include.\n\nDelete an unnecessary include propagating the WellKnownClasses\nfar to widely, and instead fix some transitive users.\n\nTest: m\nChange-Id: I88fd49057afe4ddcc548b979baafb8b8682d78ae\n"
    },
    {
      "commit": "94ec2db21332ee1dcdbbf254b99a9a999a304fe0",
      "tree": "6ced7e596731b61f95a3693f336527f55ea3cf3a",
      "parents": [
        "6cfbdbc359ec5414d3e49f70d28f8c0e65b98d63"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Sep 06 17:21:03 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Sep 11 15:12:51 2017 +0100"
      },
      "message": "Use mmapped boot image class table for PIC app HLoadClass.\n\nImplement new HLoadClass load kind for boot image classes\nreferenced by PIC-compiled apps (i.e. prebuilts) that uses\nPC-relative load from a boot image ClassTable mmapped into\nthe apps .bss. This reduces the size of the PIC prebuilts\nthat reference boot image classes compared to the kBssEntry\nas we can completely avoid the slow path and stack map\nunless we need to do the class initialization check.\n\nPrebuilt services.odex for aosp_angler-userdebug (arm64):\n  - before: 20312800\n  - after: 19775352 (-525KiB)\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: testrunner.py --host --pictest\nTest: testrunner.py --target on Nexus 6P.\nTest: testrunner.py --target --pictest on Nexus 6P.\nTest: Nexus 6P boots.\nBug: 31951624\nChange-Id: I13adb19a1fa7d095a72a41f09daa6101876e77a8\n"
    },
    {
      "commit": "8e9090bd6e3ad7ebde47db9d01701733bbfeb89e",
      "tree": "de85515d5d57c5c335225287f636f432d0ae0ff5",
      "parents": [
        "d4d11822e349e7e4af0b43cb3fc69e14f1c95475"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Sep 08 16:46:50 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Sat Sep 09 10:13:18 2017 -0700"
      },
      "message": "Generalize range analysis.\n\nRationale:\nobvious case x+-1 vs x-1 was missing\n\nTest: test-art-host\nBug: 63631713\nChange-Id: I0a97548a509239bee34a099b1ce9856bac311dba\n"
    },
    {
      "commit": "d4d11822e349e7e4af0b43cb3fc69e14f1c95475",
      "tree": "4182e25cf642e9a6e62c24c3d3561220ffbae30a",
      "parents": [
        "f6dcede6568e3fe71da8db8d1414fab98ce4bec6",
        "f26bb6c74a973fde3d2783ac35324d5ce8def814"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Sep 08 21:10:45 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 08 21:10:45 2017 +0000"
      },
      "message": "Merge \"ARM64: Tune SIMD loop unrolling factor heuristic.\""
    },
    {
      "commit": "dcaf0e5da40dafc51c70d2ce4e23925d30b27374",
      "tree": "265c41e3540238dd129bab8c26a03a738cd881a8",
      "parents": [
        "d2d9171a860f1058d5b609e451a1c7eff9dd57f6"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Sep 08 11:23:31 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Sep 08 11:23:31 2017 -0700"
      },
      "message": "Bug fix on 32-bit vs 64-bit movd/movdq on x86_64.\n\nBug: 65478356\nTest: test-art-host\nChange-Id: I5335225ab8ca40e099c4a6b93cbf58783a6ddd0b\n"
    },
    {
      "commit": "86ce50481f91e3be2e5f2686e18e11babde721ae",
      "tree": "3179155108b883d8c0c4bb3dbac0b70db0d7f698",
      "parents": [
        "88f929ce72a5eabdb1ae1b32e5ec157d0e9f1ef8",
        "dd018df8a00e841fe38fabe38520b7d297a885c1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Sep 08 16:16:46 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 08 16:16:46 2017 +0000"
      },
      "message": "Merge \"optimizing: add block-scoped constructor fence merging pass\""
    },
    {
      "commit": "dd018df8a00e841fe38fabe38520b7d297a885c1",
      "tree": "4974b4f718d9cbb5910df7f476f2581aff1a17e2",
      "parents": [
        "6ef45677305048c2bf0600f1c4b98a11b2cfaffb"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Aug 09 10:38:31 2017 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Sep 08 14:06:32 2017 +0000"
      },
      "message": "optimizing: add block-scoped constructor fence merging pass\n\nIntroduce a new \"Constructor Fence Redundancy Elimination\" pass.\nThe pass currently performs local optimization only, i.e. within instructions\nin the same basic block.\n\nAll constructor fences preceding a publish (e.g. store, invoke) get\nmerged into one instruction.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nOptStat#ConstructorFenceGeneratedNew:   43825\nOptStat#ConstructorFenceGeneratedFinal: 17631  \u003c+++\nOptStat#ConstructorFenceRemovedLSE:     164\nOptStat#ConstructorFenceRemovedPFRA:    9391\nOptStat#ConstructorFenceRemovedCFRE:    16133  \u003c---\n\nRemoves ~91.5% of the \u0027final\u0027 constructor fences in RitzBenchmark:\n\n(We do not distinguish the exact reason that a fence was created, so\nit\u0027s possible some \"new\" fences were also removed.)\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nTest: art/test/run-test --host --optimizing 476-checker-ctor-fence-redun-elim\nBug: 36656456\nChange-Id: I8020217b448ad96ce9b7640aa312ae784690ad99\n"
    },
    {
      "commit": "88f929ce72a5eabdb1ae1b32e5ec157d0e9f1ef8",
      "tree": "6e4c293998044975d91596032d9f193dc41bad8f",
      "parents": [
        "c54e4cfa995fcd5a8457b3424fada36c560c9789",
        "6cfbdbc359ec5414d3e49f70d28f8c0e65b98d63"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Sep 08 11:27:33 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Sep 08 11:27:33 2017 +0000"
      },
      "message": "Merge \"Use mmapped boot image intern table for PIC app HLoadString.\""
    },
    {
      "commit": "f26bb6c74a973fde3d2783ac35324d5ce8def814",
      "tree": "70149908a20503dfaf1276d04d561024f3441c6f",
      "parents": [
        "66e3af9ce5b3aaa43e5ce3bce8233235af139072"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Fri Sep 01 10:59:03 2017 +0100"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Thu Sep 07 21:29:41 2017 +0100"
      },
      "message": "ARM64: Tune SIMD loop unrolling factor heuristic.\n\nImprove SIMD loop unrolling factor heuristic for ARM64 by\naccounting for max desired loop size, trip_count, etc. The\nfollowing example shows 21% perf increase:\n\n  for (int i \u003d 0; i \u003c LENGTH; i++) {\n    bc[i] \u003d ba[i];  // Byte arrays\n  }\n\nTest: test-art-host, test-art-target.\nChange-Id: Ic587759c51aa4354df621ffb1c7ce4ebd798dfc1\n"
    },
    {
      "commit": "6cfbdbc359ec5414d3e49f70d28f8c0e65b98d63",
      "tree": "f92b309ddc43c2254b6067346a653170fbbf7316",
      "parents": [
        "0f3c7003e08a42a4ed8c9f8dfffb1bee1118de59"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 25 13:26:39 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 07 17:52:35 2017 +0100"
      },
      "message": "Use mmapped boot image intern table for PIC app HLoadString.\n\nImplement new HLoadString load kind for boot image strings\nreferenced by PIC-compiled apps (i.e. prebuilts) that uses\nPC-relative load from a boot image InternTable mmapped into\nthe apps .bss. This reduces the size of the PIC prebuilts\nthat reference boot image strings compared to the kBssEntry\nas we can completely avoid the slow path and stack map.\n\nWe separate the InternedStrings and ClassTable sections of\nthe boot image (.art) file from the rest, aligning the\nstart of the InternedStrings section to a page boundary.\nThis may actually increase the size of the boot image file\nby a page but it also allows mprotecting() these tables as\nread-only. The ClassTable section is included in\nanticipation of a similar load kind for HLoadClass.\n\nPrebuilt services.odex for aosp_angler-userdebug (arm64):\n  - before: 20862776\n  - after: 20308512 (-541KiB)\nNote that 92KiB savings could have been achieved by simply\navoiding the read barrier, similar to the HLoadClass flag\nIsInBootImage(). Such flag is now unnecessary.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: testrunner.py --host --pictest\nTest: testrunner.py --target on Nexus 6P.\nTest: testrunner.py --target --pictest on Nexus 6P.\nTest: Nexus 6P boots.\nBug: 31951624\nChange-Id: I5f2bf1fc0bb36a8483244317cfdfa69e192ef6c5\n"
    },
    {
      "commit": "b92cc33a7a6a827da577627dc274440ac29652a8",
      "tree": "9fbc71433d4ea89be61aec6de0d33d142c11f039",
      "parents": [
        "f56311a966a9e8e476287cd47d615a91a83c1d04"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Sep 06 15:53:17 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Sep 06 15:53:17 2017 -0700"
      },
      "message": "Pass stats into the loop optimization phase.\n\nTest: market scan.\nChange-Id: I58b23b8d254883f30619ea3602d34bf93618d432\n"
    },
    {
      "commit": "21b859210d690d25563423eeed5fd630023d23cc",
      "tree": "61a28428b0375458d8ed83e42cf7d05ad0976630",
      "parents": [
        "ac8a2a76e34d0ec0bfc10e067eafbd8a87ea4446"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Sep 06 13:29:16 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Sep 06 13:29:16 2017 -0700"
      },
      "message": "Added vectorization stats.\n\nRationale:\nProvides a (somewhat crude) quantative way to detect changes in\nloop vectorization and idiom recognition (e.g. by means of market\nscans, or just inspecting the same application before/after a change).\n\nTest: market scan\nChange-Id: Ic85938ba2b33c967de3159742c60301454a152a0\n"
    },
    {
      "commit": "0148de41a5c77c2f61252c219f1a02413c7c4a32",
      "tree": "91736a82a7e98721a44879b6597b5aea386e8e3b",
      "parents": [
        "c101222c854a0c476f5b6ae64e20adbd38126a3c"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Sep 05 09:25:01 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Sep 05 10:20:09 2017 -0700"
      },
      "message": "Basic SIMD reduction support.\n\nRationale:\nEnables vectorization of x +\u003d .... for very basic (simple, same-type)\nconstructs. Paves the way for more complex (narrower and/or mixed-type)\nconstructs, which will be handled by the next CL.\n\nThis is  a revert   of Icb5d6c805516db0a1d911c3ede9a246ccef89a22\nand thus a revert^2 of I2454778dd0ef1da915c178c7274e1cf33e271d0f\nand thus a revert^3 of I1c1c87b6323e01442e8fbd94869ddc9e760ea1fc\nand thus a revert^4 of I7880c135aee3ed0a39da9ae5b468cbf80e613766\n\nPS1-2 shows what needed to change\n\nTest: test-art-host test-art-target\n\nBug: 64091002\nChange-Id: I647889e0da0959ca405b70081b79c7d3c9bcb2e9\n"
    },
    {
      "commit": "982334cef17d47ef2477d88a97203a9587a4b86f",
      "tree": "7e65d03a4533f21286cf68e66696bd0a7a54ef54",
      "parents": [
        "cfa59b49cde265dc5329a7e6956445f9f7a75f15"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Sep 02 12:54:16 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Sat Sep 02 12:54:16 2017 +0000"
      },
      "message": "Revert \"Basic SIMD reduction support.\"\n\nFails 530-checker-lse on arm64.\n\nBug: 64091002, 65212948\n\nThis reverts commit cfa59b49cde265dc5329a7e6956445f9f7a75f15.\n\nChange-Id: Icb5d6c805516db0a1d911c3ede9a246ccef89a22\n"
    },
    {
      "commit": "cfa59b49cde265dc5329a7e6956445f9f7a75f15",
      "tree": "eed953f62e796f7e64252520a40d7e77d1f117af",
      "parents": [
        "82a63734d3067ea0c96f8ba15bc40caaf798c625"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Aug 31 09:08:13 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Sep 01 10:32:50 2017 -0700"
      },
      "message": "Basic SIMD reduction support.\n\nRationale:\nEnables vectorization of x +\u003d .... for very basic (simple, same-type)\nconstructs. Paves the way for more complex (narrower and/or mixed-type)\nconstructs, which will be handled by the next CL.\n\nThis is a revert^2 of I7880c135aee3ed0a39da9ae5b468cbf80e613766\nand thus a revert  of I1c1c87b6323e01442e8fbd94869ddc9e760ea1fc\n\nPS1-2 shows what needed to change, with regression tests\n\nTest: test-art-host test-art-target\n\nBug: 64091002, 65212948\nChange-Id: I2454778dd0ef1da915c178c7274e1cf33e271d0f\n"
    },
    {
      "commit": "fa830aa33e767420dcf705beb18c458df702502b",
      "tree": "292d53714591fc18617cfb5f0797feb4ec70af69",
      "parents": [
        "9c4feaa082d8e8c00611a0657c3f80b1c1179a6f",
        "a57b4ee7b15ce6abfb5fa88c8dc8a516fe40e0d9"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Aug 30 23:13:11 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 30 23:13:11 2017 +0000"
      },
      "message": "Merge \"Revert \"Basic SIMD reduction support.\"\""
    },
    {
      "commit": "a57b4ee7b15ce6abfb5fa88c8dc8a516fe40e0d9",
      "tree": "c7ed7e8cb7439a8e689e399e34559aa46a97cdbd",
      "parents": [
        "9879d0eac8fe2aae19ca6a4a2a83222d6383afc2"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Aug 30 21:21:41 2017 +0000"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Aug 30 21:21:41 2017 +0000"
      },
      "message": "Revert \"Basic SIMD reduction support.\"\n\nThis reverts commit 9879d0eac8fe2aae19ca6a4a2a83222d6383afc2.\n\nGetting these type check failures in some builds. Need time to look at this better, so reverting for now :-(\n\n\ndex2oatd F 08-30 21:14:29 210122 226218 \ncode_generator.cc:115] Check failed: CheckType(instruction-\u003eGetType(), locations-\u003eInAt(0)) PrimDouble C\n\nChange-Id: I1c1c87b6323e01442e8fbd94869ddc9e760ea1fc\n"
    },
    {
      "commit": "cdb15e45ce283104a801b6ade0a5a3c4aca9c667",
      "tree": "ce21dc89f5b123679e2fee8a8c95fe69ccc5042b",
      "parents": [
        "d0b08252a508ad86780e494462cbf005718f1c2b",
        "7f56ff42ac663ccfa62034ed22297bd7d9bce2f6"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Aug 30 20:04:25 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 30 20:04:25 2017 +0000"
      },
      "message": "Merge \"Refined range rule for ABS(x)\""
    },
    {
      "commit": "af1a686e8138da4aeb6991bd978a8e00d2575d4e",
      "tree": "cf5a308e5a03c369f9d0d5c28c70ca07085e299a",
      "parents": [
        "29e13122aa43f3c8fef9ed749b8fb35d17adf90c",
        "9879d0eac8fe2aae19ca6a4a2a83222d6383afc2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 30 17:53:45 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 30 17:53:45 2017 +0000"
      },
      "message": "Merge \"Basic SIMD reduction support.\""
    },
    {
      "commit": "7f56ff42ac663ccfa62034ed22297bd7d9bce2f6",
      "tree": "257b52e881647dc28be8999ecdcc38bc4ec7052a",
      "parents": [
        "bdd827280a787c359961caf990f4a2c6e57810c1"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Aug 30 10:20:47 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Aug 30 10:52:33 2017 -0700"
      },
      "message": "Refined range rule for ABS(x)\n\nRationale;\nABS(minint) \u003d minint prevents assuming \u003e\u003d0 always.\nWith a fail-before(sig11)/pass-after regression test.\n\nTest: 623\nChange-Id: If5fb1580b207c7cdd964f7498849d1768bb1589d\n"
    },
    {
      "commit": "9879d0eac8fe2aae19ca6a4a2a83222d6383afc2",
      "tree": "c75ab69be15630f86824bb202577eaa1ff91c4ee",
      "parents": [
        "60f734443d54d48fad86dce6d80d8cef22a134d0"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Aug 15 10:51:25 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Aug 30 09:10:40 2017 -0700"
      },
      "message": "Basic SIMD reduction support.\n\nRationale:\nEnables vectorization of x +\u003d .... for very basic (simple, same-type)\nconstructs. Paves the way for more complex (narrower and/or mixed-type)\nconstructs, which will be handled by the next CL.\n\nTest: test-art-host test-art-target\n\nBug: 64091002\n\nChange-Id: I7880c135aee3ed0a39da9ae5b468cbf80e613766\n"
    },
    {
      "commit": "d2198243234d6820b9bdf2ac4f7276fe8149d51f",
      "tree": "698b56566edbefc68e1947bc624d99206c8efdd8",
      "parents": [
        "80be041454871a9b72c39790a10954595d721a63",
        "bf3243b6150337d47b8238b484858062d7d1c1e6"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 30 14:59:16 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 30 14:59:16 2017 +0000"
      },
      "message": "Merge \"ART: Describe static fields in GraphVisualizer.\""
    },
    {
      "commit": "bf3243b6150337d47b8238b484858062d7d1c1e6",
      "tree": "b8697eb5e235f86cf1c6c5798d254b49d2425b4c",
      "parents": [
        "60f734443d54d48fad86dce6d80d8cef22a134d0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 30 14:06:54 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 30 14:18:36 2017 +0100"
      },
      "message": "ART: Describe static fields in GraphVisualizer.\n\nTest: Rely on TreeHugger.\nChange-Id: I3388a469a96c665abc51abe2cf7d2b2004db7d78\n"
    },
    {
      "commit": "8ee58600c368b7b00e54aff09c575d4e2904316e",
      "tree": "bc1e0cdda54e4c2230efd7f95490c7ef125540cc",
      "parents": [
        "4ec99d1e710649fb56f03d216cb6a5d69e7ecd7d",
        "1819e4174bda5eb540886669beee043095955fb7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 30 09:09:46 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 30 09:09:46 2017 +0000"
      },
      "message": "Merge \"ARM: Clean up LocationSummary creation for Long intrinsics.\""
    },
    {
      "commit": "8920835161a359ce45250d04890bb054a3832977",
      "tree": "9dae098363aab38bf331009cd0c3f6179f49465f",
      "parents": [
        "60f734443d54d48fad86dce6d80d8cef22a134d0",
        "fef2884b18bcc01cc40edb2ae809d42b5a510c33"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Aug 29 18:55:36 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 29 18:55:36 2017 +0000"
      },
      "message": "Merge \"Simplify CreateReferenceInfoForReferenceType() in load-store-analysis\""
    },
    {
      "commit": "1819e4174bda5eb540886669beee043095955fb7",
      "tree": "7dd01861daebe8afaa9c3613c01e6aa6e1117b24",
      "parents": [
        "49376a9d4483f073aa1fe2b30806e5b31a14a034"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 29 17:02:56 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 29 17:17:54 2017 +0100"
      },
      "message": "ARM: Clean up LocationSummary creation for Long intrinsics.\n\nTest: Rely on TreeHugger.\nChange-Id: I99373fac545b9a82ec96662ff5a5882444091642\n"
    },
    {
      "commit": "60f734443d54d48fad86dce6d80d8cef22a134d0",
      "tree": "c7ed7e8cb7439a8e689e399e34559aa46a97cdbd",
      "parents": [
        "78e1e045dbdcbad89ed178f921ce68ef0520480f",
        "984519c67073b304c0e8bde1728de89d6fef98c1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 29 16:08:39 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 29 16:08:39 2017 +0000"
      },
      "message": "Merge \"ARM: Improve String.equals() intrinsic for const strings.\""
    },
    {
      "commit": "78e1e045dbdcbad89ed178f921ce68ef0520480f",
      "tree": "f59d5ad9ee65548ee1bdeb1bb55a8208ea3e1f1e",
      "parents": [
        "bdd827280a787c359961caf990f4a2c6e57810c1",
        "4fae4fb8b379442a470695dc72af3372fceb92cd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 29 16:08:35 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 29 16:08:35 2017 +0000"
      },
      "message": "Merge \"ARM64: Remove duplicate helper for intrinsic locations.\""
    },
    {
      "commit": "49376a9d4483f073aa1fe2b30806e5b31a14a034",
      "tree": "7f7d5bd13d4c167a709ebbcc3eaaebce7a841b11",
      "parents": [
        "02cb397857c979dffae95e2db2678a72ec407cf0",
        "27292e64b312007cd301fed8aa96ed7c0215b231"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 29 15:44:07 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 29 15:44:07 2017 +0000"
      },
      "message": "Merge \"ARM: Implement one-bit intrinsics.\""
    },
    {
      "commit": "4fae4fb8b379442a470695dc72af3372fceb92cd",
      "tree": "0f0ace479842b1b97e1dbff25f98bc451618904c",
      "parents": [
        "02cb397857c979dffae95e2db2678a72ec407cf0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 29 12:00:09 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 29 12:00:09 2017 +0100"
      },
      "message": "ARM64: Remove duplicate helper for intrinsic locations.\n\nTest: Rely on TreeHugger.\nChange-Id: Ib5e80aa3dee78b0d1f65694de01303f214d32881\n"
    },
    {
      "commit": "27292e64b312007cd301fed8aa96ed7c0215b231",
      "tree": "4d653ff959b7f2179bb7d93c479cfc063661afab",
      "parents": [
        "86d1db15332571f21bd588efed0de3384269a1c5"
      ],
      "author": {
        "name": "Petre-Ionut Tudor",
        "email": "petre-ionut.tudor@linaro.org",
        "time": "Fri Aug 04 16:06:45 2017 +0100"
      },
      "committer": {
        "name": "Petre-Ionut Tudor",
        "email": "petre-ionut.tudor@linaro.org",
        "time": "Tue Aug 29 11:47:47 2017 +0100"
      },
      "message": "ARM: Implement one-bit intrinsics.\n\nImplement intrinsics for Integer and Long OneBit methods\nfor aarch32.\n\nTest: 568-checker-onebit, test-art-target, test-art-host.\nChange-Id: I34b878f9883569cfef10dfecd8cb99d7e452277b\n"
    },
    {
      "commit": "984519c67073b304c0e8bde1728de89d6fef98c1",
      "tree": "c1efdab0c409d97b95002fe9a696a00e3c05cc1c",
      "parents": [
        "02cb397857c979dffae95e2db2678a72ec407cf0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Aug 23 10:45:29 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Aug 29 10:28:30 2017 +0100"
      },
      "message": "ARM: Improve String.equals() intrinsic for const strings.\n\nAnd add tests for the relevant string lengths to 021-string2\nand remove obsolete inlining-prevention code from that test.\nAlso a minor fix of the cutoff check for arm64.\n\nThis is a follow-up to the ARM64 change\n    https://android-review.googlesource.com/336648 .\n\naosp_angler-userdebug:\n  before:\n    arm boot*.oat: 34153044\n    arm boot*.oat/no string compression: 34107776\n  after:\n    arm boot*.oat: 34132740 (−20304)\n    arm boot*.oat/no string compression: 34099508 (−8268)\n\nThe string compression code size difference drops from\n45268 to 33232.\n\nTest: m test-art-target on Nexus 6P\nTest: m test-art-target on Nexus 6P with string compression disabled.\nBug: 31040547\nChange-Id: I4ec73d444d9f56aaf8aa08369c830f398df2168a\n"
    },
    {
      "commit": "fef2884b18bcc01cc40edb2ae809d42b5a510c33",
      "tree": "8649630bb875a85aeb0086fafc25fcf43fbc703c",
      "parents": [
        "02cb397857c979dffae95e2db2678a72ec407cf0"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Aug 28 15:20:57 2017 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Aug 28 16:33:04 2017 -0700"
      },
      "message": "Simplify CreateReferenceInfoForReferenceType() in load-store-analysis\n\nWe now do CreateReferenceInfoForReferenceType() in VisitInstruction()\nwhich catches all cases where a reference value is created.\n\nTest: run-test on hosts\nChange-Id: I14ce59ba44558e3e800fc2543f4e190cbb2fd75e\n"
    },
    {
      "commit": "641a473912b3bcaaff2c71070611490b7c547cfc",
      "tree": "67bf5b2eaaeaf19c6cebac29984b49c19f172f9b",
      "parents": [
        "5555dd1df3c7f3aaea548c3b657b9325538e9780"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Aug 24 13:21:35 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Aug 25 08:59:29 2017 -0700"
      },
      "message": "ART: Fix reference-related warnings\n\nMake some parameters and locals references to avoid unnecessary\ncopies.\n\nBug: 32619234\nTest: m test-art-host\nChange-Id: Idfed600c7c5492a80f72f51424253bcbea824a94\n"
    },
    {
      "commit": "3ed4a4018ad11ea292cd1e04b0dfe005195d1e3c",
      "tree": "5b74f3191cf4f4470faf7dab814eb798372f5ad4",
      "parents": [
        "d98350db5c8b1ffc4e63132a40da7943a3dd0ca6",
        "da483164bac6a630bcdbdd020ca5dec7b131daae"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 24 17:37:04 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 24 17:37:04 2017 +0000"
      },
      "message": "Merge \"Implement OneBit intrinsics for arm64.\""
    },
    {
      "commit": "da483164bac6a630bcdbdd020ca5dec7b131daae",
      "tree": "9490be50c37b617e18c2cce61544ff95f24ee0c2",
      "parents": [
        "86d1db15332571f21bd588efed0de3384269a1c5"
      ],
      "author": {
        "name": "Petre-Ionut Tudor",
        "email": "petre-ionut.tudor@linaro.org",
        "time": "Mon Aug 14 13:54:31 2017 +0100"
      },
      "committer": {
        "name": "Petre-Ionut Tudor",
        "email": "petre-ionut.tudor@linaro.org",
        "time": "Thu Aug 24 13:48:30 2017 +0100"
      },
      "message": "Implement OneBit intrinsics for arm64.\n\nImplemement intrinsics for highestOneBit and lowestOneBit for\njava.lang.Integer and java.lang.Long.\n\nTest: 568-checker-onebit, test_art_target, test_art_host.\nChange-Id: I9d2bd04cb28b739c29811c73939fdbc25007f15a\n"
    },
    {
      "commit": "23b752b2496536d39b5132ded2c64f48b2891a0d",
      "tree": "c047c3091af3a36ab18b269f7b1a422c36a8613a",
      "parents": [
        "ae53f10531e559fbbdbe390316b092c6a9c5df39"
      ],
      "author": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Thu Jul 20 14:40:44 2017 +0100"
      },
      "committer": {
        "name": "Anton Kirilov",
        "email": "anton.kirilov@linaro.org",
        "time": "Mon Aug 21 11:50:24 2017 +0100"
      },
      "message": "Remove obsolete code paths from the ARM code generator\n\nAfter the last changes to the ARM code generator, several code paths\nthat handle some HCondition corner cases are rarely executed and are,\nstrictly speaking, unnecessary because the rest of the compiler can do\ntheir job with minimal modifications (and even generate better code),\nbut have been kept in order to minimize the differences with the\nprevious ARM code generator. Now that the latter has been removed, the\nobsolete code paths can be deleted as well (practically without any\nchange in behaviour).\n\nFurthermore, this commit contains a preliminary improved fix for the\nissue checked by the 657-branches test. The proper fix, however, should\nbe in the instruction simplifier or another compiler pass before code\ngeneration.\n\nTest: 657-branches\nTest: test-art-target\nChange-Id: I7d785a1607bc99bff0bfc33050b567a9cf6925c9\n"
    },
    {
      "commit": "ae53f10531e559fbbdbe390316b092c6a9c5df39",
      "tree": "14abcc3ef1b8232c662a095736707765b2359ad5",
      "parents": [
        "b28118c74a61b8d1ff9432e753f1f11a72ce049c",
        "a663d9d5b32a525794a2b98fa43da54dd7c79e3b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Aug 19 11:52:43 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Aug 19 11:52:43 2017 +0000"
      },
      "message": "Merge \"MIPS32: Allow some patched instructions in delay slots\""
    },
    {
      "commit": "a663d9d5b32a525794a2b98fa43da54dd7c79e3b",
      "tree": "88c643ca5ebfb0dfe11f45a9b232f9a2592fb043",
      "parents": [
        "b9463674919ba91fe131e65785ad67b4202e86b9"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Mon Jul 31 18:43:18 2017 -0700"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Fri Aug 18 15:29:31 2017 -0700"
      },
      "message": "MIPS32: Allow some patched instructions in delay slots\n\nTest: test-art-host-gtest\nTest: booted MIPS64 (with 2nd arch MIPS32R6) in QEMU\nTest: test-art-target-gtest32\nTest: testrunner.py --target --optimizing --32\nTest: same tests as above on CI20\nTest: booted MIPS32R2 in QEMU\n\nChange-Id: I7e1ba59993008014d0115ae20c56e0a71fef0fb0\n"
    },
    {
      "commit": "5011149cbb1dddf7161ef294b8ed265862ae6d91",
      "tree": "e420ba6336d69308e73ead7ff7984d4c08e7bcf8",
      "parents": [
        "65ee0f086581a8fbaa18473e8bac7ff9372cff0a",
        "2dec927e60395210946e5b9dbaa03111dad2466a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Aug 18 11:59:14 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 18 11:59:14 2017 +0000"
      },
      "message": "Merge \"MIPS64: Implement HSelect\""
    },
    {
      "commit": "f708c9a39240716eb3df024ec67bbcb9b3883f61",
      "tree": "00d78ed6994c79e08c829416fe0ea03dc145b6f0",
      "parents": [
        "2ade881db8642f10007c1c46b5e7f073d463c2d3",
        "0cab65610a6a984a94ef4c3f232fe0273e78d95b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 17 14:40:46 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 17 14:40:46 2017 +0000"
      },
      "message": "Merge \"MIPS: Eliminate hard-coded offsets in branches\""
    },
    {
      "commit": "5bfead584f56b2a1cfb69f78c385965ec57f7e8b",
      "tree": "e349bd5c78599475a07f463bd7aca0d68c0a495e",
      "parents": [
        "6b1382dcb24a44e552daaa8dca82eb63d8bf6b11",
        "bc5460b850a0fa2d8dcf6c8d36b0eb86f8fe46a8"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Aug 14 22:46:20 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 14 22:46:20 2017 +0000"
      },
      "message": "Merge \"MIPS: Support MultiplyAccumulate for SIMD.\""
    },
    {
      "commit": "4ec14ff3d6126750de753f7d162df408f278e825",
      "tree": "9f37b3881e615211a4fd458ee36d67939c6da514",
      "parents": [
        "c1bb1cd339b2ebea9c4770fb4d61bacd7d77746f",
        "16e528957869c7debb1f6758c9a364819e15ee1a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Aug 14 09:19:03 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 14 09:19:03 2017 +0000"
      },
      "message": "Merge \"RFC: Generate select instruction for conditional returns.\""
    },
    {
      "commit": "bc5460b850a0fa2d8dcf6c8d36b0eb86f8fe46a8",
      "tree": "0db1314987cd0f24c7294c4ad540c7f28e2739d9",
      "parents": [
        "c1bb1cd339b2ebea9c4770fb4d61bacd7d77746f"
      ],
      "author": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@imgtec.com",
        "time": "Thu Jul 20 16:07:36 2017 +0200"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Mon Aug 14 10:16:34 2017 +0200"
      },
      "message": "MIPS: Support MultiplyAccumulate for SIMD.\n\nMoved support for multiply accumulate from arm64-specific to\ngeneral instruction simplification.\nAlso extended 550-checker-multiply-accumulate test.\n\nTest: test-art-host, test-art-target\n\nChange-Id: If113f0f0d5cb48e8a76273c919cfa2f49fce667d\n"
    },
    {
      "commit": "e9b61bac34bea439d8ce39592973a66a32f43fb7",
      "tree": "aa0043f331844ba6083b764c7bce8c2a81671058",
      "parents": [
        "675c779cb046bca49229e1e5268d0eb622159214",
        "6ef45677305048c2bf0600f1c4b98a11b2cfaffb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Aug 11 19:29:31 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 11 19:29:31 2017 +0000"
      },
      "message": "Merge changes Ic119441c,I83b96b41\n\n* changes:\n  optimizing: Add statistics for # of constructor fences added/removed\n  optimizing: Refactor statistics to use OptimizingCompilerStats helper\n"
    },
    {
      "commit": "6ef45677305048c2bf0600f1c4b98a11b2cfaffb",
      "tree": "9a8df6a3bebe4a6120403562c21817d775a6ef36",
      "parents": [
        "1e065a54845da12541572f4f149e6ab0dcd20180"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Aug 08 13:59:55 2017 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Aug 11 10:23:30 2017 -0700"
      },
      "message": "optimizing: Add statistics for # of constructor fences added/removed\n\nStatistics are attributed as follows:\n\nAdded because:\n* HNewInstances requires a HConstructorFence following it.\n* HReturn requires a HConstructorFence (for final fields) preceding it.\n\nRemoved because:\n* Optimized in Load-Store-Elimination.\n* Optimized in Prepare-For-Register-Allocation.\n\nTest: art/test.py\nBug: 36656456\nChange-Id: Ic119441c5151a5a840fc6532b411340e2d68e5eb\n"
    },
    {
      "commit": "1e065a54845da12541572f4f149e6ab0dcd20180",
      "tree": "061d28c8905c7bc8ac50c8c86f4073034afb5ba2",
      "parents": [
        "f573972a087b798f74bf5404e271355a2805e100"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Aug 09 13:20:34 2017 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Aug 11 10:23:07 2017 -0700"
      },
      "message": "optimizing: Refactor statistics to use OptimizingCompilerStats helper\n\nRemove all copies of \u0027MaybeRecordStat\u0027, replacing them with a single\nOptimizingCompilerStats::MaybeRecordStat helper.\n\nChange-Id: I83b96b41439dccece3eee2e159b18c95336ea933\n"
    },
    {
      "commit": "52b450bd928a4096e7d9bed768757b41f4ed82e1",
      "tree": "e198348e61668e7ec54f8e67d9d8aee10cb5c75e",
      "parents": [
        "54636c0e85ad1bcd5798324c0484122364e99298",
        "5daa4950038a4329ac745059f1ad0927d4a60166"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Aug 11 13:34:55 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 11 13:34:55 2017 +0000"
      },
      "message": "Merge \"Instrument ARM generated code to check the Marking Register.\""
    },
    {
      "commit": "5daa4950038a4329ac745059f1ad0927d4a60166",
      "tree": "48fdf4d85953e931bd455ede290e769979e3906c",
      "parents": [
        "2b03a1f24600c8c9558fb13d3f8bca1ef0f8ee40"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jul 03 17:23:56 2017 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Aug 11 11:44:50 2017 +0100"
      },
      "message": "Instrument ARM generated code to check the Marking Register.\n\nGenerate run-time code in the Optimizing compiler checking that\nthe Marking Register\u0027s value matches `self.tls32_.is.gc_marking`\nin debug mode (on target; and on host with JIT, or with AOT when\ncompiling the core image). If a check fails, abort.\n\nTest: m test-art-target\nTest: m test-art-target with tree built with ART_USE_READ_BARRIER\u003dfalse\nTest: ARM device/emulator boot test with libartd\nBug: 37707231\nChange-Id: I903f44d385d66ff74d65aa09d7113aa9cb7b9f24\n"
    },
    {
      "commit": "54636c0e85ad1bcd5798324c0484122364e99298",
      "tree": "6ec47505bdb6dd232cf43b86eb9d2c438d2f052f",
      "parents": [
        "abafaf83838301b83832c33324d683e7f77aff76",
        "2b03a1f24600c8c9558fb13d3f8bca1ef0f8ee40"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Aug 11 10:26:39 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 11 10:26:39 2017 +0000"
      },
      "message": "Merge \"Instrument ARM64 generated code to check the Marking Register.\""
    },
    {
      "commit": "eac21ef2617cc02e6a093d811a926115fb69bd05",
      "tree": "b9ea86a35a870669029e6375e2a01e5f90297212",
      "parents": [
        "73de4a8f0936bfb8b74db0465f277a2b68d16905",
        "1545ccc4852255870b5c4676203fc7c2f2fa393f"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Aug 10 22:45:45 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 10 22:45:45 2017 +0000"
      },
      "message": "Merge \"scheduler should not schedule volatile field accesses.\""
    },
    {
      "commit": "1545ccc4852255870b5c4676203fc7c2f2fa393f",
      "tree": "5e983b1ece6e6d7af3cd2d476bdbcac6ebb49631",
      "parents": [
        "3b21019edb5586a73516833482fc203e75309dbe"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Aug 08 15:24:26 2017 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Aug 10 14:10:06 2017 -0700"
      },
      "message": "scheduler should not schedule volatile field accesses.\n\nUnresolved field accesses are not scheduled either since it\u0027s not know\nwhether they are volatile or not, and they are already expensive anyway.\n\nTest: 706-checker-scheduler\nChange-Id: Ie736542590a2459ee9b597e090fbedd4b527782a\n"
    },
    {
      "commit": "73de4a8f0936bfb8b74db0465f277a2b68d16905",
      "tree": "76ad27c460c92ea15cc6a55ce1d770d7b58ef3a8",
      "parents": [
        "461ec567f16039374dff35e2f3b808986c100249",
        "671e48a4895cc1a0b7a1458d608f8c4f9b5cf85c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 10 19:42:31 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 10 19:42:31 2017 +0000"
      },
      "message": "Merge \"Fix performance regression.\""
    }
  ],
  "next": "671e48a4895cc1a0b7a1458d608f8c4f9b5cf85c"
}
