)]}'
{
  "log": [
    {
      "commit": "45d3efbc433e321d0fdb3de54b01cf056c3d85ba",
      "tree": "a41e4de262f07eaba0611d23de36407d13ed9686",
      "parents": [
        "d40e416f329fa7d7a3ad9cf1bcfbc5eb8137cbc4",
        "75bb2f3c85330b2aeba9e0a4a25f7eb059bcd754"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Dec 01 18:00:49 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 01 18:00:49 2017 +0000"
      },
      "message": "Merge \"Type conversion elimination of constants\""
    },
    {
      "commit": "75bb2f3c85330b2aeba9e0a4a25f7eb059bcd754",
      "tree": "2e9c2884dc546540c66b057374822a45f7d9a414",
      "parents": [
        "1f541bf57dfdfe4faf169b811aadb91298a886ca"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Nov 30 14:45:44 2017 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Nov 30 14:45:44 2017 -0800"
      },
      "message": "Type conversion elimination of constants\n\nA better way of eliminating type conversion for constants.\n\nTest: run-test on host. 711-checker-type-conversion.\nChange-Id: I457bc091542a5ac4cc4e77cadb012ee7cb040ce8\n"
    },
    {
      "commit": "a43a89470597a1d34a403add4f82cfc155e7bc33",
      "tree": "98f524c6aa848a9fb55485bd8a1df821d9b4aa44",
      "parents": [
        "0b0d03d51483c4c87e5cac4d49044cee245f365c",
        "2196c651ecc77e49992c6c329dfce45f78ff46cb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 30 18:22:13 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 30 18:22:13 2017 +0000"
      },
      "message": "Merge \"Revert^4 \"JIT JNI stubs.\"\""
    },
    {
      "commit": "8fd50150610637dd981bd3610738219c078d0124",
      "tree": "c40a0b6b093cd6bc3838b134a93e8b64725b007e",
      "parents": [
        "dc93cac66f1db225474cec5bf0350fd7a148085e",
        "4e30b902edd68e7008685afe014ba6443b33b7a7"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Nov 30 18:05:40 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 30 18:05:40 2017 +0000"
      },
      "message": "Merge \"Use symbolic rather than duplicate string for pass.\""
    },
    {
      "commit": "2196c651ecc77e49992c6c329dfce45f78ff46cb",
      "tree": "4eb151632fc7b851101b4264286ce5e900fa06b5",
      "parents": [
        "dc93cac66f1db225474cec5bf0350fd7a148085e"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 30 16:16:07 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 30 16:20:39 2017 +0000"
      },
      "message": "Revert^4 \"JIT JNI stubs.\"\n\nThe original CL,\n    https://android-review.googlesource.com/513417 ,\nhas a bug fixed in the Revert^2,\n    https://android-review.googlesource.com/550579 ,\nand this Revert^4 adds two more fixes:\n    - fix obsolete native method getting interpreter\n      entrypoint in 980-redefine-object,\n    - fix random JIT GC flakiness in 667-jit-jni-stub.\n\nTest: testrunner.py --host --prebuild --no-relocate \\\n      --no-image --jit -t 980-redefine-object\nBug: 65574695\nBug: 69843562\n\nThis reverts commit 056d7756152bb3ced81dd57781be5028428ce2bd.\n\nChange-Id: Ic778686168b90e29816fd526e23141dcbe5ea880\n"
    },
    {
      "commit": "8f8bd8bfce0f2433bc66ac90a471e5f58cd2e2cc",
      "tree": "cbcfcee8846c8f9298b64f52e3523d2268e179ca",
      "parents": [
        "111b7d409a3f77cb0d16bc1df74a3a698795c1d1",
        "056d7756152bb3ced81dd57781be5028428ce2bd"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 30 09:12:35 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 30 09:12:35 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Revert \"JIT JNI stubs.\"\"\"\""
    },
    {
      "commit": "056d7756152bb3ced81dd57781be5028428ce2bd",
      "tree": "154ae8968a450a2e02d88207fa09e380fd380553",
      "parents": [
        "e7441631a11e2e07ce863255a59ee4de29c6a56f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 30 09:12:13 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 30 09:12:13 2017 +0000"
      },
      "message": "Revert \"Revert \"Revert \"JIT JNI stubs.\"\"\"\n\nStill seeing occasional failures on 667-jit-jni-stub\n\nBug: 65574695\nBug: 69843562\n\nThis reverts commit e7441631a11e2e07ce863255a59ee4de29c6a56f.\n\nChange-Id: I3db751679ef7bdf31c933208aaffe4fac749a14b\n"
    },
    {
      "commit": "4e30b902edd68e7008685afe014ba6443b33b7a7",
      "tree": "970b12a25170ea3bb23d6c62c304cf1edae61c1d",
      "parents": [
        "1f541bf57dfdfe4faf169b811aadb91298a886ca"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Nov 29 16:53:25 2017 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Nov 29 16:53:57 2017 -0800"
      },
      "message": "Use symbolic rather than duplicate string for pass.\n\nTest: none\n\nChange-Id: Ia912d75e72e7002d098db80ec88f82775d88f6cc\n"
    },
    {
      "commit": "50f90a44f8cd1928054245cab4cd3bd47a1a6347",
      "tree": "a410c463e12d6b99f341ed1c24cd5d3cf0325938",
      "parents": [
        "a602c56ba1a82d70eb40de35e7c716477a46ee28",
        "e7441631a11e2e07ce863255a59ee4de29c6a56f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 29 16:21:58 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 29 16:21:58 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"JIT JNI stubs.\"\"\""
    },
    {
      "commit": "a602c56ba1a82d70eb40de35e7c716477a46ee28",
      "tree": "d0f253b21fc8f792dd09afe58743e9c2f2b5150b",
      "parents": [
        "aa25db7d2a6f7f507c27ce49c99a33daf3059f8f",
        "4c71d00f3bee9ae7a3e14ca6629e9e0cb4e25fd8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 29 15:16:42 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 29 15:16:42 2017 +0000"
      },
      "message": "Merge \"ART: Remove nested SOA in intrinsics code\""
    },
    {
      "commit": "e7441631a11e2e07ce863255a59ee4de29c6a56f",
      "tree": "a0488fac018ea391d01b751b7254719937bdee8f",
      "parents": [
        "aa25db7d2a6f7f507c27ce49c99a33daf3059f8f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 29 13:00:56 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 29 14:04:26 2017 +0000"
      },
      "message": "Revert \"Revert \"JIT JNI stubs.\"\"\n\nThe original CL,\n    https://android-review.googlesource.com/513417 ,\nhad a bug for class unloading where a read barrier was\nexecuted at the wrong time from\n    ConcurrentCopying::MarkingPhase() -\u003e\n    ClassLinker::CleanupClassLoaders() -\u003e\n    ClassLinker::DeleteClassLoader() -\u003e\n    JitCodeCache::RemoveMethodsIn() -\u003e\n    JitCodeCache::JniStubKey::UpdateShorty() -\u003e\n    ArtMethod::GetShorty().\nThis has been fixed by removing sources of the read barrier\nfrom ArtMethod::GetShorty().\n\nTest: testrunner.py --host --prebuild --jit --no-relocate \\\n      --no-image -t 998-redefine-use-after-free\nBug: 65574695\nBug: 69843562\n\nThis reverts commit 47d31853e16a95393d760e6be2ffeeb0193f94a1.\n\nChange-Id: I06e7a15b09d9ff11cde15a7d1529644bfeca15e0\n"
    },
    {
      "commit": "4c71d00f3bee9ae7a3e14ca6629e9e0cb4e25fd8",
      "tree": "82258037251b8e0ae1c70fdb5b517a74f62ae4f7",
      "parents": [
        "299c1e168bde2039586d2486e52c73abbcec93b1"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Nov 29 11:03:25 2017 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Nov 29 11:03:25 2017 +0000"
      },
      "message": "ART: Remove nested SOA in intrinsics code\n\nRemoves a couple of unnecessary SOA instances.\n\nBug: 69622155\nTest: m -j32\nChange-Id: I92e194096faeb4a83e4972d745bd8182ce8f820c\n"
    },
    {
      "commit": "aa25db7d2a6f7f507c27ce49c99a33daf3059f8f",
      "tree": "154ae8968a450a2e02d88207fa09e380fd380553",
      "parents": [
        "299c1e168bde2039586d2486e52c73abbcec93b1",
        "2d8801f7b932496d5c2606294ff8fdea60e05b30"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Nov 29 10:18:30 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 29 10:18:30 2017 +0000"
      },
      "message": "Merge \"Clean some dex2oat options.\""
    },
    {
      "commit": "299c1e168bde2039586d2486e52c73abbcec93b1",
      "tree": "aba3013617f53f93006f4046328263798e522fd0",
      "parents": [
        "abda3861f3f596ebdc9893f783ddac361710ab7b",
        "47d31853e16a95393d760e6be2ffeeb0193f94a1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 28 20:06:01 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 28 20:06:01 2017 +0000"
      },
      "message": "Merge \"Revert \"JIT JNI stubs.\"\""
    },
    {
      "commit": "abda3861f3f596ebdc9893f783ddac361710ab7b",
      "tree": "b9a76a4c2e63d78465a03fabbb929782a0d98a41",
      "parents": [
        "23f8f50ace964ed597261f19e87ac050f415957e",
        "b1b52069dcb1228f89511ffb41592beebe4d8ea3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 28 19:50:14 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 28 19:50:14 2017 +0000"
      },
      "message": "Merge \"ART: Fix invoke-polymorphic compiler warnings\""
    },
    {
      "commit": "47d31853e16a95393d760e6be2ffeeb0193f94a1",
      "tree": "344b0fddbbcc9a64bed2ba20dbe73fb227c2bdf4",
      "parents": [
        "3417eaefe4e714c489a6fb0cb89b4810d81bdf4d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 28 18:36:12 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 28 18:36:12 2017 +0000"
      },
      "message": "Revert \"JIT JNI stubs.\"\n\nSeems to break 998-redefine-use-after-free in\nsome --no-image configuration.\n\nBug: 65574695\nBug: 69843562\n\nThis reverts commit 3417eaefe4e714c489a6fb0cb89b4810d81bdf4d.\n\nChange-Id: I2dd157b931c17c791522ea2544c1982ed3519b86\n"
    },
    {
      "commit": "2d8801f7b932496d5c2606294ff8fdea60e05b30",
      "tree": "8f87764977fb77e3f74c97d5165f36220de42632",
      "parents": [
        "986005c955860a69d788f7ff7d7f28964eb684ad"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 28 15:50:07 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 28 15:55:44 2017 +0000"
      },
      "message": "Clean some dex2oat options.\n\nRemove dump-passes inherited from Quick days,\nand move dump-timings and dump-stats to CompilerStats.\n\nTest: test.py\nChange-Id: Ie79be858a141e59dc0b2a87d8cb5a5248a5bc7af\n"
    },
    {
      "commit": "b1b52069dcb1228f89511ffb41592beebe4d8ea3",
      "tree": "32a9ca9025801fbd24184de84798990992f605f9",
      "parents": [
        "5387bc5979c8984aabde455a80692f080d823c89"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Mon Nov 27 11:51:42 2017 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Nov 28 13:55:22 2017 +0000"
      },
      "message": "ART: Fix invoke-polymorphic compiler warnings\n\nStops recognizing polymorphic signature methods as potential compiler\nintrinsics until implemented.\n\nTest: m -j32\nBug: 69622155\nBug: 65872996\nChange-Id: I1392e7a91dfbb29d526dbe561f3a8c89e3218da8\n"
    },
    {
      "commit": "3417eaefe4e714c489a6fb0cb89b4810d81bdf4d",
      "tree": "fe97f5191d25d26ef4250280f4c599b3a50f2059",
      "parents": [
        "7bdc6e73fd97eb75f30b77f183e4fe6c2c599a09"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Sep 21 18:14:28 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 28 13:00:09 2017 +0000"
      },
      "message": "JIT JNI stubs.\n\nAllow the JIT compiler to compile JNI stubs and make sure\nthey can be collected once they are not in use anymore.\n\nTest: 667-jit-jni-stub\nTest: Pixel 2 XL boots.\nTest: m test-art-host-gtest\nTest: testrunner.py --host --jit\nTest: testrunner.py --target --jit\nBug: 65574695\nChange-Id: Idf81f50bcfa68c0c403ad2b49058be62b21b7b1f\n"
    },
    {
      "commit": "7bdc6e73fd97eb75f30b77f183e4fe6c2c599a09",
      "tree": "344b0fddbbcc9a64bed2ba20dbe73fb227c2bdf4",
      "parents": [
        "5387bc5979c8984aabde455a80692f080d823c89"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 28 12:37:13 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 28 13:00:09 2017 +0000"
      },
      "message": "ART: Minor refactoring of JNI stub compilation.\n\nIntroduce JniCompiledMethod to avoid JNI compiler dependency\non CompiledMethod. This is done in preparation for compiling\nJNI stubs in JIT as the CompiledMethod class should be used\nexclusively for AOT compilation.\n\nTest: m test-art-host-gtest\nBug: 65574695\nChange-Id: I1d047d4aebc55057efb7ed3d39ea65600f5fb6ab\n"
    },
    {
      "commit": "5387bc5979c8984aabde455a80692f080d823c89",
      "tree": "747adadb8f5e9ef014195c783c54e8a317a34769",
      "parents": [
        "e1b6d7b8661f4fcaff7bf49348e8644e4a338166",
        "cd09e1f4f9902b82fa62cb2da984ea499e3b2d70"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 27 21:09:54 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 27 21:09:54 2017 +0000"
      },
      "message": "Merge \"Fix stats reporting over 100% methods compiled.\""
    },
    {
      "commit": "e1b6d7b8661f4fcaff7bf49348e8644e4a338166",
      "tree": "017a220148b6fd7e95fa07cdbb72861e023b3021",
      "parents": [
        "72a3f1da3a300b486626b066e33280108b5ce994",
        "cebb5e709af5ed5b475a56743f984967d991e7b9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 27 19:53:45 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 27 19:53:45 2017 +0000"
      },
      "message": "Merge \"type conversion elimination for constant input\""
    },
    {
      "commit": "cd09e1f4f9902b82fa62cb2da984ea499e3b2d70",
      "tree": "535f7f75849af30b67c560804125ead95909d72b",
      "parents": [
        "72a3f1da3a300b486626b066e33280108b5ce994"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 24 15:02:40 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 27 19:02:34 2017 +0000"
      },
      "message": "Fix stats reporting over 100% methods compiled.\n\nAdd statistics for intrinsic and native stub compilation\nand JIT failing to allocate memory for committing the\ncode. Clean up recording of compilation statistics.\n\nNew statistics when building aosp_taimen-userdebug boot\nimage with --dump-stats:\n  Attempted compilation of 94304 methods: 99.99% (94295) compiled.\n  OptStat#AttemptBytecodeCompilation: 89487\n  OptStat#AttemptIntrinsicCompilation: 160\n  OptStat#CompiledNativeStub: 4733\n  OptStat#CompiledIntrinsic: 84\n  OptStat#CompiledBytecode: 89478\n  ...\nwhere 94304\u003d89487+4733+84 and 94295\u003d89478+4733+84.\n\nTest: testrunner.py -b --host --optimizing\nTest: Manually inspect output of building boot image\n      with --dump-stats.\nBug: 69627511\nChange-Id: I15eb2b062a96f09a7721948bcc77b83ee4f18efd\n"
    },
    {
      "commit": "e60248d87df70f0e7a9496c6b92df022fed532bd",
      "tree": "1589ab9f54ee620c652ca2fea96cad7637bf00f2",
      "parents": [
        "b656fcbc280359872a129446be54a6c3563010b1",
        "f0010dd946b17490d2f792d845ea4f304a0bea28"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 27 16:58:28 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 27 16:58:28 2017 +0000"
      },
      "message": "Merge \"Apply individual intrinsic recognition during inliner.\""
    },
    {
      "commit": "f0010dd946b17490d2f792d845ea4f304a0bea28",
      "tree": "e68b071ef742766090d722129c8c1d04ba2f90b0",
      "parents": [
        "6f99acac2e1d60dfb1ed45ce69ec5a542847687e"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Nov 21 16:31:53 2017 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Nov 24 17:06:40 2017 -0800"
      },
      "message": "Apply individual intrinsic recognition during inliner.\n\nRationale:\nInliner could introduce new method calls, in particular\nit could change invoke-interface to invoke-virtual,\nwhich could expose new intrinsics. This situation\nhappens, for example, in Kotlin generated code where\nString operations first go through the CharSequence\ninterface. Rather than running a full new phase,\nwe just recognize intrinsics when interface calls\nare replaced by virtual calls.\n\nThis optimization boosts KotlinMicroItems by 100%\n\nTest: test-art-host test-art-target\n\nChange-Id: Ibd0519283d67ed6997b056e34b4eafdd49fcbc2d\n"
    },
    {
      "commit": "b4c6acbf281c1cf960444e35bcac254a1f77c3ed",
      "tree": "18f3548e69c0641e220a36012d23b08a4954d0e4",
      "parents": [
        "67ab1c5517c7f6ac485f218c903db8da59f40ed7"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 10 12:48:14 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 23 16:16:34 2017 +0000"
      },
      "message": "Optimize lookup of quickening data.\n\nUse the debug_info_off_ of CodeItem to store the quickening\noffset in the vdex.\n\nImpact:\n- Code size almost unchanged (1 word saved per dex file in a vdex)\n- GetQuickenedInfoOf doesn\u0027t show up in simpleperf during app startup\n\nTest: test.py, run-libcore-tests, run-jdwp-tests\nTest: 628-vdex\nChange-Id: I15c3151feb58980a4c4d7469ca02728e94d36c07\n"
    },
    {
      "commit": "67ab1c5517c7f6ac485f218c903db8da59f40ed7",
      "tree": "927db938f4a5a16c19036809cd19cabad1d667e0",
      "parents": [
        "cf35bb5b2a25764800c1edf61c91ea4d0cd5c718",
        "58cc1cb66c1a96ffba4a314edb2c5b4e8b235d5b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 23 14:14:42 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 23 14:14:42 2017 +0000"
      },
      "message": "Merge \"Pass the debug_info_offset explicitly.\""
    },
    {
      "commit": "58cc1cb66c1a96ffba4a314edb2c5b4e8b235d5b",
      "tree": "ed00c90ab564c54ae4f09a4acbc5f3ffa65b9e71",
      "parents": [
        "65e0432cdaf3ee170045b21943c24eae5d6a0357"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 20 13:27:29 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Nov 23 10:44:47 2017 +0000"
      },
      "message": "Pass the debug_info_offset explicitly.\n\nIn order to use debug_info_offset for encoding implementation details,\nrewrite all indirect users of it to fetch it before calling DexFile\nmethods.\n\nThis allows keeping the DexFile interface clean of runtime\nconsiderations.\n\nTest: test.py\nChange-Id: I4591e0039b5f822f4409aae411071ecbe97082b1\n"
    },
    {
      "commit": "d278cb48e91bf06f325663a14f026608cc904355",
      "tree": "eb8302a386622935268637d9edfff24bf1de5fb5",
      "parents": [
        "71bb96894228c1e2408ccaea0c42159b5f550336"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 22 14:13:00 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 22 14:13:00 2017 -0800"
      },
      "message": "ART: Remove implicit boot image error aborts\n\nThere are now explicit arguments that induce the same invariants.\nMove the configuration to the build system.\n\nThis allows certain configurations to disable these checks.\n\nWARNING: Disabling the checks is highly discouraged.\n\nBug: 69106371\nTest: m\nChange-Id: I63e915005fcda588b223ec60ef8c9db28d42e577\n"
    },
    {
      "commit": "71bb96894228c1e2408ccaea0c42159b5f550336",
      "tree": "6c5e55b147460cb5c614648b11b2f75f06e2d3cc",
      "parents": [
        "6d95c80a221358b4afff4aabf62c7c7dd9de9163",
        "f3c52b42a035902245d00a619fed0275afb063d2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 22 21:14:25 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 22 21:14:25 2017 +0000"
      },
      "message": "Merge \"Fill Class and String .bss slots in runtime.\""
    },
    {
      "commit": "cebb5e709af5ed5b475a56743f984967d991e7b9",
      "tree": "db2b6c243606979c905ec10a5cced999eba0f209",
      "parents": [
        "8cceb1faf894c26b89ceacd3d60599fe0b4b93b7"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Tue Nov 21 14:44:54 2017 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Nov 22 10:46:57 2017 -0800"
      },
      "message": "type conversion elimination for constant input\n\ntype conversion on constant input can be eliminated if the constant\nvalue falls in the result type\u0027s range.\n\nTest: run-test on host, 711-checker-type-conversion\nChange-Id: I372139d681aa06fa6e760d7814c86ac949292813\n"
    },
    {
      "commit": "6d95c80a221358b4afff4aabf62c7c7dd9de9163",
      "tree": "d3f0b37635f62abff2ef4457c004405890362b21",
      "parents": [
        "65e0432cdaf3ee170045b21943c24eae5d6a0357",
        "ceb06932313e5146c39fc80d6c3911daa10c534c"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Nov 22 16:56:50 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 22 16:56:50 2017 +0000"
      },
      "message": "Merge \"Recognize countable \"break\" loops\""
    },
    {
      "commit": "f3c52b42a035902245d00a619fed0275afb063d2",
      "tree": "c46dab07826be55e9ca92ab301eed586c2f307ca",
      "parents": [
        "b360bff818ad0bf59668cd2bebaaeeaa8a3b5dfe"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 17 17:32:12 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 21 17:09:44 2017 +0000"
      },
      "message": "Fill Class and String .bss slots in runtime.\n\nShift the responsibility for filling Class and String .bss\nslots from compiled code to runtime. This reduces the size\nof the compiled code.\n\nMake oatdump list .bss slot mappings (ArtMethod, Class and\nString) for each dex file.\n\naosp_taimen-userdebug boot image size:\n  - before:\n    arm boot*.oat: 36534524\n    arm64 boot*.oat: 42723256\n  - after:\n    arm boot*.oat: 36431448 (-101KiB, -0.3%)\n    arm64 boot*.oat: 42645016 (-76KiB, -0.2%)\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: Pixel 2 XL boots.\nTest: testrunner.py --target --optimizing\nTest: m dump-oat, manually inspect output.\nBug: 65737953\nChange-Id: I1330d070307410107e12c309d4c7f8121baba83c\n"
    },
    {
      "commit": "68351ebf5b44989f7ccd75933f1f4093a8d3b670",
      "tree": "a0716ffc78d9bd115eca545e70c4ada0facbf3a8",
      "parents": [
        "b360bff818ad0bf59668cd2bebaaeeaa8a3b5dfe",
        "cced8ba4245a061ab047a0a6882468d75d619dd9"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Nov 21 16:56:28 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 21 16:56:28 2017 +0000"
      },
      "message": "Merge \"ART: Introduce individual HInstruction cloning.\""
    },
    {
      "commit": "ceb06932313e5146c39fc80d6c3911daa10c534c",
      "tree": "1593fb926606899b7a22399d12e24da5ec6fa018",
      "parents": [
        "cb90e3a29041ea55c4b5eb3d1477aa360381a1f1"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Nov 13 10:31:17 2017 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Nov 20 12:46:37 2017 -0800"
      },
      "message": "Recognize countable \"break\" loops\n\nRationale:\nA particular break loop is generated by e.g. Kotlin\n(or it can be expressed in Java as well) if the upper\n(or lower) bound is inclusive, but a comparison test\nwould be too dangerous. The ART compiler often has\nbetter range analysis (e.g. after inlining) to convert\nsuch constructs back to countable loops, which are\nmore amenable to optimizations. For instance, we get\nmore than 200% improvement on the KotlinMicroLoops\nbenchmark, while close to 70 loops are recognized\nin the Kotlin support library itself.\n\nBug: 67601686\n\nTest: test-art-host test-art-target\nChange-Id: I67e5c832df57e096efe2cf43a8579d9c10ca33e6\n"
    },
    {
      "commit": "2ca10eb3f47ef3c2535c137853f7a63d10bb908b",
      "tree": "3684d1d5ef4791795b64620e97f952896c5a2011",
      "parents": [
        "02f41015a0933f146b886c62bb5b02c322ddf882"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Nov 15 15:17:53 2017 -0800"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Nov 20 10:38:26 2017 -0800"
      },
      "message": "Refactored optimization passes setup.\n\nRationale:\nRefactors the way we set up optimization passes\nin the compiler into a more centralized approach.\nThe refactoring also found some \"holes\" in the\nexisting mechanism (missing string lookup in\nthe debugging mechanism, or inablity to set\nalternative name for optimizations that may repeat).\n\nBug: 64538565\n\nTest: test-art-host test-art-target\nChange-Id: Ie5e0b70f67ac5acc706db91f64612dff0e561f83\n"
    },
    {
      "commit": "5573c37e795668eca81a8488078f798d977685c3",
      "tree": "5e7675d6c1ca9ed1c31834e52282bfb9f73dc2a4",
      "parents": [
        "1598a77ca3559c8a59902f26ee887504b8159859"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Nov 16 13:34:30 2017 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Nov 16 14:42:49 2017 -0800"
      },
      "message": "cpplint: Remove many unnecessary NOLINT\n\nNow that we updated to upstream cpplint, a lot of these NOLINTs are no\nlonger necessary.\n\nBug: 68951293\nChange-Id: If8ed5ffe89727f313f907a214b6d8fd2a2eddbad\n"
    },
    {
      "commit": "1598a77ca3559c8a59902f26ee887504b8159859",
      "tree": "70c18a32da01245cb8362d0cce178096030d681c",
      "parents": [
        "2d774be3d229ece40a2ab3fc49355fea876adcf5",
        "46721ef33e8f5cd405c291d72e3f259e3085fb5f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 16 19:00:29 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 16 19:00:29 2017 +0000"
      },
      "message": "Merge \"Don\u0027t merge values for exit block in LSE.\""
    },
    {
      "commit": "46721ef33e8f5cd405c291d72e3f259e3085fb5f",
      "tree": "88709396bf7439400125f5d5c1883a42826cd5ca",
      "parents": [
        "6b337da6e9498e62b4c3e399366be7ad3b99169e"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Oct 05 14:45:17 2017 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Nov 16 09:10:32 2017 -0800"
      },
      "message": "Don\u0027t merge values for exit block in LSE.\n\nThis enables some additional optimizations since exit block doesn\u0027t\nreally merge values.\n\nTest: run-test on host.\nChange-Id: I21ed7e0e43a3bc5d9ed2dabfad8462129b904eb7\n"
    },
    {
      "commit": "2d774be3d229ece40a2ab3fc49355fea876adcf5",
      "tree": "ff699757aea5d2854227e68c90a553063981812d",
      "parents": [
        "9a38a69725549b605408ceac5c80dfd951775590",
        "92f7f3ce3b01f7c7df1c15b81c900e087248093f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 16 14:21:17 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 16 14:21:17 2017 +0000"
      },
      "message": "Merge \"Use intrinsic codegen for compiling intrinsic methods.\""
    },
    {
      "commit": "92f7f3ce3b01f7c7df1c15b81c900e087248093f",
      "tree": "37647ac824e450f80d752539cabbe631ba795c75",
      "parents": [
        "5dcb0d2cabe9d67987a6a7477fb124cef92abefb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 31 11:38:30 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 15 14:29:52 2017 +0000"
      },
      "message": "Use intrinsic codegen for compiling intrinsic methods.\n\nWhen compiling an intrinsic method, generate a graph that\ninvokes the same method and try to compile it. If the call\nis actually intrinsified (or simplified to other HIR) and\nyields a leaf method, use the result of this compilation\nattempt, otherwise compile the actual code or JNI stub.\n\nNote that CodeGenerator::CreateThrowingSlowPathLocations()\nactually marks the locations as kNoCall if the throw is not\nin a catch block, thus considering some throwing methods\n(for example, String.charAt()) as leaf methods.\n\nWe would ideally want to use the intrinsic codegen for all\nintrinsics that do not generate a slow-path call to the\ndefault implementation. Relying on the leaf method is\nsuboptimal as we\u0027re missing out on methods that do other\ntypes of calls, for example runtime calls. This shall be\nfixed in a subsequent CL.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 67717501\nChange-Id: I640fda7c22d4ff494b5ff77ebec3b7f5f75af652\n"
    },
    {
      "commit": "38e380b3c5139c0993495a7a0f040bfe8aa1e9e9",
      "tree": "6dec57248cda239cd79c81bb44037ed2783a9e48",
      "parents": [
        "1121e0a658be73c5bc494df99ceb84513a65c8a8"
      ],
      "author": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@imgtec.com",
        "time": "Mon Oct 30 16:17:10 2017 +0100"
      },
      "committer": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@mips.com",
        "time": "Wed Nov 15 10:23:29 2017 +0100"
      },
      "message": "MIPS: Implement Sum-of-Abs-Differences\n\nTest: test-art-host test-art-target\n\nChange-Id: I32a3e21f96cdcbab2e108d71746670408deb901a\n"
    },
    {
      "commit": "eab2b429ee036134f85620cac84a18b8df71fded",
      "tree": "9d2c09a0add8781e2bc1c465bfd98e5ab6977dea",
      "parents": [
        "8050453ed536fea8dbcd51a6f882b13d334e60ee",
        "8eaa8e59c95aac26cc072cdbaaccd8f3976f113d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 14 15:38:58 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 14 15:38:58 2017 +0000"
      },
      "message": "Merge \"Remove kIsVdexEnabled.\""
    },
    {
      "commit": "8eaa8e59c95aac26cc072cdbaaccd8f3976f113d",
      "tree": "613ebe58b921780913a417f09b0f2a0f686c89d8",
      "parents": [
        "5552e535951f2feb10bfd492b8abb54bd41a9f4b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 13 17:47:50 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Nov 14 09:48:17 2017 +0000"
      },
      "message": "Remove kIsVdexEnabled.\n\nIt is now always assumed there is one.\n\nTest: test.py\nChange-Id: I8f3f5c722fb8c4a0f9ad8ea685d1a956bd0ac9ae\n"
    },
    {
      "commit": "3da1d0f0881e130ebab95e2d06abe7d2beff57f0",
      "tree": "00b655e97955b317e995e4884ac726a1146b489d",
      "parents": [
        "5552e535951f2feb10bfd492b8abb54bd41a9f4b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 06 20:02:24 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 13 09:18:38 2017 -0800"
      },
      "message": "Use CodeItemAccessor helpers for method verifier\n\nCreate a code_item_accessor_ in the verifier and replace the existing\ncode_item field. Added some handling in DexFile to deal with\ntry/catch items.\n\nBug: 63756964\nTest: test-art-host\nChange-Id: I4e073c9cb29f94518f0016fccbe1628185884df4\n"
    },
    {
      "commit": "5552e535951f2feb10bfd492b8abb54bd41a9f4b",
      "tree": "8765da5ff3881dbbae9542058cdea2df1c1b7038",
      "parents": [
        "7959dc8e63075aa41cfef1db0800f48d5c08c47d",
        "b7c273cb44fcbdab3c17ec69124fe4bbea2696b1"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 13 17:07:04 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 13 17:07:04 2017 +0000"
      },
      "message": "Merge \"Add ClassDataItemIterator::HasNextMethod\""
    },
    {
      "commit": "01354124bcc2d4d4707429cccf241e858f7fcf40",
      "tree": "e14f41ca7ba61d78abd376115cec1865629431af",
      "parents": [
        "52ccbde5d6c3d677d94ea64e6f333522a741f114",
        "8c4ddb242f48dad200fc0a306cb2d97b28b33325"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 13 11:51:09 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 13 11:51:09 2017 +0000"
      },
      "message": "Merge \"Revert \"Support VecLoad and VecStore in LSE.\"\""
    },
    {
      "commit": "8c4ddb242f48dad200fc0a306cb2d97b28b33325",
      "tree": "444da1968d16015cbea9185ccd40a0489e6315aa",
      "parents": [
        "27dae5f3ce2d00b84eabf4cc4b7b2144af37a43a"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 13 11:49:53 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 13 11:49:53 2017 +0000"
      },
      "message": "Revert \"Support VecLoad and VecStore in LSE.\"\n\nSomehow, this breaks:\n./art/test/run-test --optimizing --64 --gcstress 667-checker-simd-alignment\n\nThis reverts commit 27dae5f3ce2d00b84eabf4cc4b7b2144af37a43a.\n\nChange-Id: If552ebd8c14535c2eafbdc2ed0ff1f76ad29da35\n"
    },
    {
      "commit": "52ccbde5d6c3d677d94ea64e6f333522a741f114",
      "tree": "5cc9000b5d5304b39aa0f9d69610a49ccba7f2ce",
      "parents": [
        "784f4d825aaf25c92b8c9955f7c8f78b6ff786e1",
        "3e5fecdeacdacf847d376adb05a9ad5587648139"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 13 10:44:58 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 13 10:44:58 2017 +0000"
      },
      "message": "Merge \"MIPS32: Use conditional moves to compute 64-bit shifts.\""
    },
    {
      "commit": "dd7f2a2436997097e194fd16662941f97278e58d",
      "tree": "8a1bd95c6d43e7acfd8ea5d27a58494bcdf28412",
      "parents": [
        "051f31e9baffffac889135f20b2b3ad517d8e1ae",
        "62a2f27f02e23c28bf010ca22bfd28b36a69c8f2"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 13 09:25:05 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 13 09:25:05 2017 +0000"
      },
      "message": "Merge \"Move code around to fix --inline-max-code-units in JIT.\""
    },
    {
      "commit": "b7c273cb44fcbdab3c17ec69124fe4bbea2696b1",
      "tree": "11242e0bd24427183dd630780825214737ccbda1",
      "parents": [
        "27f5fefeb4a7e87e9537fbdd0ed392d5c1de59df"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 10 18:07:56 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 10 18:07:56 2017 -0800"
      },
      "message": "Add ClassDataItemIterator::HasNextMethod\n\nReturns true if there are either static of virtual methods remaining,\nchanged most places to use this where possible.\n\nSlight behavioral change for duplicate method checking, we not\npersist the method index across the static method / virtual method\nboundary.\n\nMotivation: Generic cleanup to remove copy paste.\n\nTest: test-art-host\nChange-Id: I7a1b507e681b2c40452f8a9913b53a96b181e171\n"
    },
    {
      "commit": "0e3151b70450ce3ed81543c4b22d99069713f979",
      "tree": "a9e1a8667aed657229a14a17b1a138d8d27bc4ea",
      "parents": [
        "6fde072609bd65ee1e8bd71dec9bc5899c99f9d7"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Oct 30 11:19:57 2017 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Nov 10 12:14:57 2017 -0800"
      },
      "message": "Improvement on array element aliasing analysis.\n\nMore robust array element aliasing analysis which covers aliasing\nbetween all heap locations.\n\nTest: run-test on host.\nTest: 530-checker-lse/load_store_analysis_test.cc cover array index aliasing.\nChange-Id: Ie0d1696bedb7811c6a4bc0786ef93ca724493de2\n"
    },
    {
      "commit": "6fde072609bd65ee1e8bd71dec9bc5899c99f9d7",
      "tree": "0f31e14c30cd629d7dfec4238e8e4622889d6f30",
      "parents": [
        "b3e7bcc737a5af57549e47370523912e31e434f7",
        "27dae5f3ce2d00b84eabf4cc4b7b2144af37a43a"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Nov 10 18:15:39 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 10 18:15:39 2017 +0000"
      },
      "message": "Merge \"Support VecLoad and VecStore in LSE.\""
    },
    {
      "commit": "b3e7bcc737a5af57549e47370523912e31e434f7",
      "tree": "5547f785e167696747ae2e0bc2b3ea866e7b9c7f",
      "parents": [
        "a16fec549253638268dda3d83e6e34a500cbfc1c",
        "69147f165efaa9da152bb37da3a16dd5d8c6cf3c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 10 17:03:43 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 10 17:03:43 2017 +0000"
      },
      "message": "Merge \"Add code item accessor helper classes\""
    },
    {
      "commit": "62a2f27f02e23c28bf010ca22bfd28b36a69c8f2",
      "tree": "7a64ae9a28dcfc3c0eb37a8e582b530b392bf180",
      "parents": [
        "a051f29bbbb7f237242e84294b8f2ced5f4b1acc"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 10 16:46:43 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 10 16:48:55 2017 +0000"
      },
      "message": "Move code around to fix --inline-max-code-units in JIT.\n\nTest: set --inline-max-code-units\u003d0 and --verbose:compiler,\nand see all inlining attempts abort.\n\nbug: 65622511\nChange-Id: I11a512cc690a8db3a092962b618d96f64cffd264\n"
    },
    {
      "commit": "e983b1658589e2a3d12620846b7e2351af26afa6",
      "tree": "4a5abce1e079b54262248fd809f02e97d120740a",
      "parents": [
        "77526ffcc5f25ef9c4aa4e87d416c22f2586cf17",
        "b0a6aeee250945b1d156ebab94053380f2e5a3c5"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 10 10:02:44 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 10 10:02:44 2017 +0000"
      },
      "message": "Merge \"Record @{Fast,Critical}Native in method\u0027s access flags.\""
    },
    {
      "commit": "b0a6aeee250945b1d156ebab94053380f2e5a3c5",
      "tree": "7ddb52bb20997b8f1c81be3df2250949a088e697",
      "parents": [
        "0db16e00e3927445585a588499731c58c1ae1bef"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Oct 27 10:34:04 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Nov 10 08:30:36 2017 +0000"
      },
      "message": "Record @{Fast,Critical}Native in method\u0027s access flags.\n\nRepurpose the old kAccFastNative flag (which wasn\u0027t actually\nused for some time) and define a new kAccCriticalNative flag\nto record the native method\u0027s annotation-based kind. This\navoids repeated determination of the kind from GenericJNI.\nAnd making two transitions to runnable and back (using the\nScopedObjectAccess) from GenericJniMethodEnd() for normal\nnative methods just to determine that we need to transition\nto runnable was really weird.\n\nSince the IsFastNative() function now records the presence\nof the @FastNative annotation, synchronized @FastNative\nmethod calls now avoid thread state transitions.\n\nWhen initializing the Runtime without a boot image, the\nWellKnowClasses may not yet be initialized, so relax the\nDCheckNativeAnnotation() to take that into account.\n\nAlso revert\n    https://android-review.googlesource.com/509715\nas the annotation checks are now much faster.\n\nBug: 65574695\nBug: 35644369\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nChange-Id: I2fc5ba192b9ce710a0e9202977b4f9543e387efe\n"
    },
    {
      "commit": "27dae5f3ce2d00b84eabf4cc4b7b2144af37a43a",
      "tree": "9e05c544c7e7fa6f57ac5661657adc6e2ca916db",
      "parents": [
        "43fcb33efaa519f0e19bd1bef74fa59b1d9bf723"
      ],
      "author": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Thu Sep 21 13:48:55 2017 +0100"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Fri Nov 10 06:06:21 2017 +0000"
      },
      "message": "Support VecLoad and VecStore in LSE.\n\nTest: test-art-host\nTest: test-art-target\nTest: load_store_elimination_test\n\nChange-Id: I95ac13207a0f57225bf0bc62b1e57a629ae24e02\n"
    },
    {
      "commit": "69147f165efaa9da152bb37da3a16dd5d8c6cf3c",
      "tree": "25dbec549b8c06cf24729a577c76ef0b6d3d4c7f",
      "parents": [
        "2202d56061941b4fecbdb018d84bcefb05b6c683"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Nov 06 20:02:24 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Nov 09 19:06:10 2017 -0800"
      },
      "message": "Add code item accessor helper classes\n\nAdd classes to abstract accesses to code item data. These classes\nhandle both standard dex and compact dex.\n\nAdded:\n- CodeItemInstructionsAccessor to handle code item instructions.\n- CodeItemDataAccessor to handle code item data excluding debug info.\n\nMoved inline_method_analyzer to use the new classes to test the new\nAPIs.\n\nBug: 63756964\nTest: test-art-host\nChange-Id: I9926acb77b81fa64ed4a3b49b7bed1aab30a0f33\n"
    },
    {
      "commit": "b50b16a68ababbc9acab6102bf0bb63bd5083763",
      "tree": "f440f12f8ab3b14b8c4b02c978561f43356e61b0",
      "parents": [
        "2202d56061941b4fecbdb018d84bcefb05b6c683"
      ],
      "author": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Tue Sep 19 17:43:29 2017 +0100"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Nov 09 15:48:04 2017 -0800"
      },
      "message": "Support VecLoad and VecStore in LSA.\n\nTest: test-art-host\nTest: test-art-target\nTest: load_store_analysis_test\n\nChange-Id: I7d819061ec9ea12f86a926566c3845231fce6e26\n"
    },
    {
      "commit": "3e5fecdeacdacf847d376adb05a9ad5587648139",
      "tree": "5a846ea9547a03a0aa52197058c7fdb5e922c0f6",
      "parents": [
        "2202d56061941b4fecbdb018d84bcefb05b6c683"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@mips.com",
        "time": "Thu Nov 09 14:21:28 2017 -0800"
      },
      "committer": {
        "name": "Chris Larsen",
        "email": "chris.larsen@mips.com",
        "time": "Thu Nov 09 14:24:37 2017 -0800"
      },
      "message": "MIPS32: Use conditional moves to compute 64-bit shifts.\n\nUse conditional moves in\nInstructionCodeGeneratorMIPS::HandleShift()\u0027s 64-bit variable\nshifts to avoid conditional branches (Beqz(TMP, \u0026done)).\n\nAlso, on R6 use Beqzc(TMP, \u0026done, /* is_bare */ true) in place of\nBeqz(TMP, \u0026done).\n\nTest: Boot \u0026 run tests on MIPS32r6 QEMU \u0026 on CI-20 hardware (MIPS32r2).\nTest: test/testrunner/testrunner.py --target --optimizing\n\nChange-Id: I4d34a51cd2397c845f936af853cb5f30e82de438\n"
    },
    {
      "commit": "2202d56061941b4fecbdb018d84bcefb05b6c683",
      "tree": "b6773b2bc1f7e34b7651c547a1a40a53ba8c56ef",
      "parents": [
        "66946a2cbf55d36fa7b9232a8a381a19f65b2fcb",
        "293f1c006cc283345630ea38266f3ee38b624d5d"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Nov 09 18:55:25 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 09 18:55:25 2017 +0000"
      },
      "message": "Merge \"Check invocation\u0027s side effects for LSE.\""
    },
    {
      "commit": "972e654c147b64737bdd242bd18a74429af82bc6",
      "tree": "fd3b46d96073bbf704cafe2216e1266dbc8adad5",
      "parents": [
        "2d8fd9ef390fadf4bb71d9784e3401c7a12bd748",
        "da283050a1a3ddbb7cefae3f36e8c8c1a6acedb7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 09 12:42:34 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 09 12:42:34 2017 +0000"
      },
      "message": "Merge \"Fix String.equals() for moveable String.class.\""
    },
    {
      "commit": "bda66c79fa705a0f74d2233fb75bdde4d8dc5e5f",
      "tree": "f715660e6b0ff00bce89510aa84664493e6547ea",
      "parents": [
        "b2269c1657c78bdeb23e5dd72708d6c0e216b89b",
        "2ffb703bf431d74326c88266b4ddaf225eb3c6ad"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 09 01:31:19 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 09 01:31:19 2017 +0000"
      },
      "message": "Merge \"cpplint: Cleanup errors\""
    },
    {
      "commit": "293f1c006cc283345630ea38266f3ee38b624d5d",
      "tree": "9560d72041ab5dfad71aa38030529997bc528bdc",
      "parents": [
        "3b5df92d613bb72c8e6f8a766c60835d8313414f"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Nov 08 15:22:17 2017 -0800"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Nov 08 15:26:15 2017 -0800"
      },
      "message": "Check invocation\u0027s side effects for LSE.\n\nMore optimization is allowed if an invocation doesn\u0027t do read/write.\n\nTest: run-test on host.\nChange-Id: Id80e2fa90b8c843afd852778e8f7e6c69c765ad5\n"
    },
    {
      "commit": "2ffb703bf431d74326c88266b4ddaf225eb3c6ad",
      "tree": "0552c3c76a42b18f9e7460d501fb71a6dc2e7f33",
      "parents": [
        "c4b6f3116f15c8e4fdf2e4f604ababdee12d8923"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Nov 08 13:35:21 2017 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Nov 08 15:15:52 2017 -0800"
      },
      "message": "cpplint: Cleanup errors\n\nCleanup errors from upstream cpplint in preparation\nfor moving art\u0027s cpplint fork to upstream tip-of-tree cpplint.\n\nTest: cd art \u0026\u0026 mm\nBug: 68951293\nChange-Id: I15faed4594cbcb8399850f8bdee39d42c0c5b956\n"
    },
    {
      "commit": "5d16562752885f93b38d6aa00e01ff930f165849",
      "tree": "32f342e502506591b901734d34cfbe6de293472c",
      "parents": [
        "3b3ecdf4fd2b2d82d2e41fc8c5b2d1ffaf18e712",
        "0021feb36ca7021e2c255e6eaf16b967180290c6"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 08 22:36:45 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 08 22:36:45 2017 +0000"
      },
      "message": "Merge \"Delete CodeItemIterator\""
    },
    {
      "commit": "3b3ecdf4fd2b2d82d2e41fc8c5b2d1ffaf18e712",
      "tree": "9cbf427230d24189092983b9aaad3cdea91e3532",
      "parents": [
        "c4b6f3116f15c8e4fdf2e4f604ababdee12d8923",
        "025c1a69ea548f1477d160bd477364336109078a"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Nov 08 21:22:51 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 08 21:22:51 2017 +0000"
      },
      "message": "Merge \"Simplify handling of finalizable in LSE.\""
    },
    {
      "commit": "c4b6f3116f15c8e4fdf2e4f604ababdee12d8923",
      "tree": "93018c2541834565aa6100dd4bccef07449dfcdd",
      "parents": [
        "16c1f723f1bc0d02e757a6cf2133882dbcb9600e",
        "72aba71d00dd0c420a6ff196066e9378339d46d8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 08 21:00:01 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 08 21:00:01 2017 +0000"
      },
      "message": "Merge \"MIPS: Add asub_s/u.df\""
    },
    {
      "commit": "025c1a69ea548f1477d160bd477364336109078a",
      "tree": "3ad583c8b8ecc76b800b8da6adb70480b29cb865",
      "parents": [
        "3b5df92d613bb72c8e6f8a766c60835d8313414f"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Mon Oct 30 11:19:57 2017 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Nov 08 10:53:10 2017 -0800"
      },
      "message": "Simplify handling of finalizable in LSE.\n\nFinalizable is treated as being returned which simplifies its handling.\n\nTest: run-test on host, 530-checker-lse contains tests on finalizable.\nChange-Id: I492470e4d2ba88865029675c51cf10325af47057\n"
    },
    {
      "commit": "da283050a1a3ddbb7cefae3f36e8c8c1a6acedb7",
      "tree": "b839d69d0bf8d55d89a95b80621fd3f630536531",
      "parents": [
        "72627a5f675b1c664beb2ad33d60a1c8dca80826"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Nov 07 21:17:24 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 08 13:23:03 2017 +0000"
      },
      "message": "Fix String.equals() for moveable String.class.\n\nIf the String.class is moveable (i.e. running without boot\nimage), the instanceof check emitted by the JIT in the\nString.equals() intrinsic would require read barriers.\nAs we do not really care about the performance of running\nwithout the boot image, disable the intrinsic in this case.\n\nTest: 669-moveable-string-class-equals (--jit)\nBug: 68181300\nChange-Id: I39c9f9935e0482b3b30f1ae5cd23515cbda0603b\n"
    },
    {
      "commit": "7a0222e78ca39dc8f8e084b0c84f71a10852d24a",
      "tree": "e52cd11e0080787d9476d74f88571a9497d25b56",
      "parents": [
        "db9f630e2396f1dd0f640b10253230cf966cc526"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "goran.jakovljevic@mips.com",
        "time": "Wed Nov 08 10:16:37 2017 +0100"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "goran.jakovljevic@mips.com",
        "time": "Wed Nov 08 10:27:56 2017 +0100"
      },
      "message": "MIPS32: Don\u0027t leave vector registers in an unpredictable state\n\nDon\u0027t use regular FPU instructions in the Vectorizer because some\nof those (such as mtc1 and mthc1) may leave remaining elements in\nan unpredictable state.\n\nTest: ./testrunner --optimizing --target --32 in QEMU (MIPS32R6)\nChange-Id: I9b082bfd83360374b2f4831ef5f5bd35b00272a5\n"
    },
    {
      "commit": "72aba71d00dd0c420a6ff196066e9378339d46d8",
      "tree": "ebe2840351820f536b11f1c0f4628205cd6c1251",
      "parents": [
        "3b7ce4ecc6994ea73022c1c4d2df7a3f4fc7471c"
      ],
      "author": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@mips.com",
        "time": "Mon Oct 30 15:47:20 2017 +0100"
      },
      "committer": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@mips.com",
        "time": "Wed Nov 08 10:12:18 2017 +0100"
      },
      "message": "MIPS: Add asub_s/u.df\n\nThese instructions are needed for implementing Sum-of-Abs-Differences\nvisitor.\n\nTest: mma test-art-host-gtest\nChange-Id: Ie708f30a450b0558215f59f21bb49b68c852f247\n"
    },
    {
      "commit": "cefd676fb79d225fcd7e8e8c0ef141d70a2f45b8",
      "tree": "be625fa0bc1255cbea5c5066dd878fb0b2a1c454",
      "parents": [
        "dbc26ad5e8ded15688d20a39344c677077311279",
        "86083f7cd118f3d6c757191e83b4e4abaabdc5d7"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 08 03:26:30 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 08 03:26:30 2017 +0000"
      },
      "message": "Merge \"runtime: Bitstring implementation for subtype checking (4/4).\""
    },
    {
      "commit": "86083f7cd118f3d6c757191e83b4e4abaabdc5d7",
      "tree": "8e5b81ae0d09d41bfd90284a1b6b16b2332435e5",
      "parents": [
        "495e783c9180c3fc033ce459ee0a783e633f7754"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Oct 27 10:59:04 2017 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Nov 07 14:47:51 2017 -0800"
      },
      "message": "runtime: Bitstring implementation for subtype checking (4/4).\n\nIntegrate the previous CLs into ART Runtime. Subsequent CLs to add\noptimizing compiler support.\n\nUse spare 24-bits from \"Class#status_\" field to\nimplement faster subtype checking in the runtime. Does not incur any extra memory overhead,\nand (when in compiled code) this is always as fast or faster than the original check.\n\nThe new subtype checking is O(1) of the form:\n\n  src \u003c: target :\u003d\n    (*src).status \u003e\u003e #imm_target_mask \u003d\u003d #imm_target_shifted\n\nBased on the original prototype CL by Zhengkai Wu:\nhttps://android-review.googlesource.com/#/c/platform/art/+/440996/\n\nTest: art/test.py -b -j32 --host\nBug: 64692057\nChange-Id: Iec3c54af529055a7f6147eebe5611d9ecd46942b\n"
    },
    {
      "commit": "0021feb36ca7021e2c255e6eaf16b967180290c6",
      "tree": "43f1ce8f6d91630a831d03b51a465d57c2a47119",
      "parents": [
        "550c0aee52bf8981dfe1d22d3b661d61e80cc7ee"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 07 00:08:52 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Nov 07 13:15:41 2017 -0800"
      },
      "message": "Delete CodeItemIterator\n\nReplace uses with DexInstructionIterator.\n\nBug: 63756964\nTest: test-art-host-gtest\n\nChange-Id: I28c839c372edcb60583867355d46b14f8752d41b\n"
    },
    {
      "commit": "cac31ad4c43a24a959a4d3652b8b46538bdc8c53",
      "tree": "fca3149e0ebf0817c859b9f7faa5098d230608c4",
      "parents": [
        "3b5df92d613bb72c8e6f8a766c60835d8313414f"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 06 20:01:17 2017 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Nov 07 12:20:59 2017 -0800"
      },
      "message": "ART: Add compiler option for code deduplication\n\nAdd --deduplicate-code and --no-deduplicate-code to ease in\nexperiments with deduplication, e.g., profiling.\n\nAdd dex2oat test.\n\nTest: m test-art-host\nChange-Id: Ib6c7fe082f43c5f76c8463cc563e2503c9a50480\n"
    },
    {
      "commit": "cced8ba4245a061ab047a0a6882468d75d619dd9",
      "tree": "b379abfa48689c108e1cacedd2b13d4b5394baf2",
      "parents": [
        "96c76457d5c5af2d4243c78d74ada77de3223d88"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Wed Jul 19 18:18:09 2017 +0100"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Tue Nov 07 12:56:17 2017 +0000"
      },
      "message": "ART: Introduce individual HInstruction cloning.\n\nIntroduce API for HInstruction cloning, support it for a few\ninstructions. add a gtest.\n\nTest: cloner_test.cc, test-art-target, test-art-host.\n\nChange-Id: I8b6299be5d04a26390d9ef13a20ce82ee5ae4afe\n"
    },
    {
      "commit": "4098a7ad22535212c193f5c66eaf8a7387e1b7fc",
      "tree": "b6fbfef133515376185b769ea2c9625a6a637a04",
      "parents": [
        "383684585824efa60350b208b92362efab3962eb"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 06 16:00:51 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Nov 06 16:24:06 2017 +0000"
      },
      "message": "Refactor ArtField::GetType\u003c\u003e() as {Lookup,Resolve}Type().\n\nAnd add no thread suspension assertion to LookupType()\nas well as ArtMethod::LookupResolvedClassFromTypeIndex().\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: If1541ccb0aafeabb6d1dd5566f10afcac98a2ef1\n"
    },
    {
      "commit": "ea604b2a0e2e08c757e509879f6699df8945449d",
      "tree": "9fa1300027a848db5a1af2c9c432851052a8bc60",
      "parents": [
        "71976e21f12d5886990eb40747dbdee778e31fc1",
        "a204591b4537141aa6b0fa01f81cc03d92a90456"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 06 12:02:23 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 06 12:02:23 2017 +0000"
      },
      "message": "Merge \"MIPS: Improve InstructionCodeGeneratorMIPS*::GenerateSuspendCheck().\""
    },
    {
      "commit": "71976e21f12d5886990eb40747dbdee778e31fc1",
      "tree": "824ae7b92d3727dee21af873e5529745fa5c206e",
      "parents": [
        "fd443eb00b2456006f03252ba085c1f851e8adf5",
        "b065b032c1227f66c0c45e8100f987927e31c2d8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 06 11:50:28 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Nov 06 11:50:28 2017 +0000"
      },
      "message": "Merge \"MIPS: java.lang.Thread.interrupted() intrinsic\""
    },
    {
      "commit": "a204591b4537141aa6b0fa01f81cc03d92a90456",
      "tree": "2f08659b74a1c3f76d47fd061837622394f28dd0",
      "parents": [
        "a4d89d9bb911f7f3d0a6e4d3b45372e0aea6476d"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@mips.com",
        "time": "Thu Nov 02 12:39:54 2017 -0700"
      },
      "committer": {
        "name": "Chris Larsen",
        "email": "chris.larsen@mips.com",
        "time": "Fri Nov 03 11:18:47 2017 -0700"
      },
      "message": "MIPS: Improve InstructionCodeGeneratorMIPS*::GenerateSuspendCheck().\n\nRelax the only back-edge restriction. Implement optimization for\nMIPS32/MIPS64 which has already been done for the ARM \u0026 x86\narchitectures in\nhttps://android-review.googlesource.com/#/c/platform/art/+/149370/.\n\nTest: Boot \u0026 run tests on 32- \u0026 64-bit version of QEMU.\nTest: test/testrunner/testrunner.py --target --optimizing\nTest: test-art-host-gtest\nTest: test-art-target-gtest\n\nChange-Id: Ie0a4c19ee50ad532fe53933d5808f9d7a4f89b8e\n"
    },
    {
      "commit": "5f317039d87d74f25d3b0a442072557086742d17",
      "tree": "6beae56f543d234b49a2f973dcbeb5f6f0bd2b90",
      "parents": [
        "72627a5f675b1c664beb2ad33d60a1c8dca80826",
        "2b2bef245d5b2c6faa2d6f36da14866b2d8f5e4f"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Nov 03 15:56:22 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 03 15:56:22 2017 +0000"
      },
      "message": "Merge \"Refactor DexInstructionIterator\""
    },
    {
      "commit": "72627a5f675b1c664beb2ad33d60a1c8dca80826",
      "tree": "03c363a13cfff3e7c7e9feb158cb2ba56c97ff8e",
      "parents": [
        "ab13432123bc22c997f9dbb12596f05ce782561a",
        "e0eb48353ddf0c1b79bfec2ba15c899a413c2c70"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Nov 03 10:16:38 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 03 10:16:38 2017 +0000"
      },
      "message": "Merge \"Fix LSA hunt for original reference bug.\""
    },
    {
      "commit": "36ea6b4a6e76fa0507e81bfad7af311c93cec389",
      "tree": "166fef79d93a5c337bbb22d5306699005c7cbb52",
      "parents": [
        "c2dca98b60427d064a472ed6e21f5bc4dd7627f1",
        "c8b95b2f67d9996a160a8d8467ad2e801b730604"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 02 21:54:19 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 02 21:54:19 2017 +0000"
      },
      "message": "Merge changes Idaefe0af,Ib5c12d46,Ieb28085e,Idffbb7f2\n\n* changes:\n  ART: Clean up global includes - jni headers\n  ART: Clean up global includes - zlib\n  ART: Clean up global includes - lz4\n  ART: Clean up global includes - icu4c\n"
    },
    {
      "commit": "b065b032c1227f66c0c45e8100f987927e31c2d8",
      "tree": "01f0329a4643593892d9ec4ddff25470d538e0bf",
      "parents": [
        "a4d89d9bb911f7f3d0a6e4d3b45372e0aea6476d"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@mips.com",
        "time": "Thu Nov 02 12:13:20 2017 -0700"
      },
      "committer": {
        "name": "Chris Larsen",
        "email": "chris.larsen@mips.com",
        "time": "Thu Nov 02 12:13:20 2017 -0700"
      },
      "message": "MIPS: java.lang.Thread.interrupted() intrinsic\n\nTest: Boot 32-/64-bit QEMU\nTest: testrunner.py --target --optimizing --32 -t 050-sync-test\nTest: testrunner.py --target --optimizing --64 -t 050-sync-test\nTest: testrunner.py --target --optimizing --32 -t 988-method-trace\nTest: testrunner.py --target --optimizing --64 -t 988-method-trace\n\nChange-Id: Ic384a8e9af3b97ae85f5f04a4c114731e83244a6\n"
    },
    {
      "commit": "e0eb48353ddf0c1b79bfec2ba15c899a413c2c70",
      "tree": "71dfe896afa05c39d64373518d1e1e36cb8d8d43",
      "parents": [
        "3e6c13997373efac343a65740da0c4f6e77338b9"
      ],
      "author": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Mon Oct 30 13:43:14 2017 +0000"
      },
      "committer": {
        "name": "xueliang.zhong",
        "email": "xueliang.zhong@linaro.org",
        "time": "Thu Nov 02 16:17:17 2017 +0000"
      },
      "message": "Fix LSA hunt for original reference bug.\n\nFix a bug in LSA where it doesn\u0027t take IntermediateAddress\ninto account during hunting for original reference.\n\nIn following example, original reference i0 can be transformed\nby NullCheck, BoundType, IntermediateAddress, etc.\n  i0 NewArray\n  i1 HInstruction(i0)\n  i2 ArrayGet(i1, index)\n\nTest: test-art-host\nTest: test-art-target\nTest: load_store_analysis_test\nTest: 706-checker-scheduler\n\nChange-Id: I162dd8a86fcd31daee3517357c6af638c950b31b\n"
    },
    {
      "commit": "33bff25bcd7a02d35c54f63740eadb1a4833fc92",
      "tree": "553db4f60878acf2a0fa7036a739d406df9a29b7",
      "parents": [
        "321b3ca9a36d769283c64d4bdee0798db80af524"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Nov 01 14:35:42 2017 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Nov 02 10:11:02 2017 +0000"
      },
      "message": "ART: Make InstructionSet an enum class and add kLast.\n\nAdding InstructionSet::kLast shall make it easier to encode\nthe InstructionSet in fewer bits using BitField\u003c\u003e. However,\nintroducing `kLast` into the `art` namespace is not a good\nidea, so we change the InstructionSet to an enum class.\nThis also uncovered a case of InstructionSet::kNone being\nerroneously used instead of vixl32::Condition::None(), so\nit\u0027s good to remove `kNone` from the `art` namespace.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nChange-Id: I6fa6168dfba4ed6da86d021a69c80224f09997a6\n"
    },
    {
      "commit": "238e8fcd1d37ef75b85b0a84303d70776fe64495",
      "tree": "ae9e770a0db2fd09a6914f4f2dcf4e98bd3041e6",
      "parents": [
        "f24dfb082abc4715024fe7d5e80fdba6b4e08ba2"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 01 17:10:10 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Nov 01 21:08:29 2017 -0700"
      },
      "message": "ART: Clean up global includes - zlib\n\nRemove zlib from the ART-global includes.\n\nTest: mmma art\nChange-Id: Ib5c12d46aae9cc1288c7a4f2f7e0f60444f2c6e0\n"
    },
    {
      "commit": "2b2bef245d5b2c6faa2d6f36da14866b2d8f5e4f",
      "tree": "7948ee1d32e211198a595bb7ed35558d22838da8",
      "parents": [
        "f199f1d3a9816edf9282766a8874d894d7bf87c3"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 26 17:10:19 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 01 15:36:21 2017 -0700"
      },
      "message": "Refactor DexInstructionIterator\n\nAdd a way to get the dex PC for the \"for each\" use case.\n\nBug: 67104794\nTest: test-art-host\nChange-Id: I144c459c9a2a03ec8d56842280338d1f7ce1caf0\n"
    },
    {
      "commit": "13e6f2935d67742e9eec14b412d33bf71b20697b",
      "tree": "a2edd43e564e04f7b948a11e17c9025a0cd82f54",
      "parents": [
        "5804e35269ec247ba794567debdfc7a0c623d919",
        "38a3f21959d5c68d3034d4d3cef0cc231ebce78a"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed Nov 01 18:16:30 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Nov 01 18:16:30 2017 +0000"
      },
      "message": "Merge \"Alignment optimizations in vectorizer.\""
    },
    {
      "commit": "43f0cdbe3281cd5c9a33d5472b1538e5617f6691",
      "tree": "afed702b60c483bd5fa63be7cb3ad866b83d24d1",
      "parents": [
        "26ef34c01ae5db2d3c964844b3717b8974a612c9"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Tue Oct 10 14:47:32 2017 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Nov 01 16:22:45 2017 +0000"
      },
      "message": "ART: Intrinsify polymorphic signature methods\n\nAdds VarHandle accessor method to list of intrinsics.\n\nAdds code to interpreter to ensure intrinsics with polymorphic\nsignatures are initialized.\n\nRename most uses of InvokePolymorphic to InvokeMethodHandle (and\nsimilar changes) to be clear that the particular code path applies to\nMethodHandle instances rather than VarHandle.\n\nChange-Id: Ib74865124a1e986badc0a7c4bb3d782af07225d4\nBug: 65872996\nTest: art/test.py --host\n"
    },
    {
      "commit": "26ef34c01ae5db2d3c964844b3717b8974a612c9",
      "tree": "8470588d8d0601626b3524abb5fbe19386ba7fe4",
      "parents": [
        "62540e3cc58abde95e147210d584614651d858b5"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Nov 01 13:32:41 2017 +0000"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed Nov 01 16:21:52 2017 +0000"
      },
      "message": "ART: Move intrinsics definitions to runtime\n\nBug: 37538194\nTest: art/test.py --host\nChange-Id: Ic7adf5f8b14be0e1880ae898a4e199b4416a4d24\n"
    },
    {
      "commit": "38a3f21959d5c68d3034d4d3cef0cc231ebce78a",
      "tree": "fae9ab2b683bd2494a1480c7453e1beeace0e836",
      "parents": [
        "df12b6fbd98883cc1714f731847b7628f2fb7f11"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Oct 20 17:02:21 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Oct 27 10:50:36 2017 -0700"
      },
      "message": "Alignment optimizations in vectorizer.\n\nRationale:\nSince aligned data access is generally better (enables more efficient\naligned moves and prevents nasty cache line splits), computing and/or\nenforcing alignment has been added to the vectorizer:\n\n  (1) If the initial alignment is known completely and suffices,\n      then a static peeling factor enforces proper alignment.\n  (2) If (1) fails, but the base alignment allows, dynamically peeling\n      until total offset is aligned forces proper aligned access patterns.\n\nBy using ART conventions only, any forced alignment is preserved\nover suspends checks where data may move.\n\nNote 1:\nCurrent allocation convention is just 8 byte alignment on arrays/strings,\nso only ARM32 benefits. However, all optimizations are implemented in\na general way, so moving to a 16 byte alignment will immediately\ntake advantage of any new convention!!\n\nNote 2:\nThis CL also exposes how bad the choice of 12 byte offset of arrays\nreally is. Even though the new optimizations fix the misaligned, it\nrequires peeling for the most common case: 0 indexed loops. Therefore,\nwe may even consider moving to a 16 byte offset. Again the optimizations\nin this CL will immediately take advantage of that new convention!!\n\nTest: test-art-host test-art-target\n\nChange-Id: Ib6cc0fb68c9433d3771bee573603e64a3a9423ee\n"
    },
    {
      "commit": "e434c4f47e30a6440834d14ee060f2879cbc18aa",
      "tree": "fd7ef3045089da9da5671e830edf55114aaf8bf1",
      "parents": [
        "5751dc831ffd8acb089c2aff2e2ddf18f89da975"
      ],
      "author": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@imgtec.com",
        "time": "Mon Oct 23 16:40:22 2017 +0200"
      },
      "committer": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@imgtec.com",
        "time": "Fri Oct 27 12:34:58 2017 +0200"
      },
      "message": "MIPS: Basic SIMD reduction support.\n\nEnables vectorization of x +\u003d .... for very basic (simple, same-type)\nconstructs for MIPS.\n\nNote: Testing is done with checker parts of tests 661 and 665,\n      locally changed to cover MIPS32 cases. These changes can\u0027t\n      be included in this patch since MSA is not a default option.\n\nTest: test-art-host test-art-target\nChange-Id: Ia3b3646afecb76c2f00996a30923ca70302be57e\n"
    },
    {
      "commit": "df12b6fbd98883cc1714f731847b7628f2fb7f11",
      "tree": "ba4aef5d74821791cadb01e94af8833d7c985159",
      "parents": [
        "89ef026f70d9d5afc5ebddc490dbe0c508286e44",
        "c62b7ec6e47148049a2aa986a380dd6e58952d7a"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Thu Oct 26 17:51:18 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 26 17:51:18 2017 +0000"
      },
      "message": "Merge \"Use HGraphDelegateVisitor instead of HGraphVisitor for lse.\""
    },
    {
      "commit": "c62b7ec6e47148049a2aa986a380dd6e58952d7a",
      "tree": "d4e1b648765fc3e924e84e98c85cf010dec611d2",
      "parents": [
        "6479e488e627c0e470e2068422316f6966d254f5"
      ],
      "author": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Oct 25 16:42:15 2017 -0700"
      },
      "committer": {
        "name": "Mingyao Yang",
        "email": "mingyao@google.com",
        "time": "Wed Oct 25 16:48:14 2017 -0700"
      },
      "message": "Use HGraphDelegateVisitor instead of HGraphVisitor for lse.\n\nThis consolidates all VisitInvokeXXX to a single VisitInvoke.\n\nTest: run-test on host.\nChange-Id: I9b4a2ddbc054cdcf60a2e4ab7e28ea2d8e02b902\n"
    },
    {
      "commit": "373a9b5c718a45ac484afcf4fe6ce84f4bb562b3",
      "tree": "52a3e78fa8bc94a76674caaae837c728332d05dc",
      "parents": [
        "d0332e01ac26c2fd0a900de000a55ed5768ff936"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Oct 18 09:01:57 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Oct 25 10:13:59 2017 -0700"
      },
      "message": "ART: Depend on libnativehelper headers only\n\nDepend on header-only versions where possible. Move projects\nexcluding libart to libnativehelper_header_only.\n\nBug: 65522645\nTest: mmma art\nChange-Id: I53dd3b2a97e94ee685f72de007ed3858f7f5c6b6\n"
    },
    {
      "commit": "31275df5ea1b91ed668618d6ec64a76d67cee73c",
      "tree": "bf41e20e1242843dd413a28c79f8b53281bfdd75",
      "parents": [
        "06b9807dfe501f810094df301ae96461ee871cc7",
        "dab690714f88c10bec913e6fd939f3899be4bee2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 25 16:00:37 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 25 16:00:37 2017 +0000"
      },
      "message": "Merge \"Fix type conversion bug\""
    },
    {
      "commit": "dab690714f88c10bec913e6fd939f3899be4bee2",
      "tree": "a1b97a706840df1a0bbeb03f74f2b2f43fb6d32c",
      "parents": [
        "9e842d3e7d6102d964178e36e5d596ca91895147"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Oct 23 13:30:39 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue Oct 24 10:41:33 2017 -0700"
      },
      "message": "Fix type conversion bug\n\nRationale:\nNot simplifying double redundant AND\ncrashes a DCHECK due to order in which\nrewrites are done.\n\nTest: test-art-host test-art-target\n\nBug: 68142795\nChange-Id: Ic14340ed336e6c163f9bd7aebd96f6cf41794c7e\n"
    }
  ],
  "next": "715f43e1553330bc804cea2951be195473dc343d"
}
