)]}'
{
  "log": [
    {
      "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": "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"
    },
    {
      "commit": "715f43e1553330bc804cea2951be195473dc343d",
      "tree": "55e143005efe10e8448c91eff6b88a635af2a3f6",
      "parents": [
        "9e842d3e7d6102d964178e36e5d596ca91895147"
      ],
      "author": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Mon Oct 23 11:00:32 2017 -0700"
      },
      "committer": {
        "name": "Chris Larsen",
        "email": "chris.larsen@imgtec.com",
        "time": "Mon Oct 23 11:00:32 2017 -0700"
      },
      "message": "MIPS32: Improve stack alignment, use sdc1/ldc1, where possible.\n\n- Ensure that SP is a multiple of 16 at all times, and\n- Use ldc1/sdc1 to load/store FPU registers from/to 8-byte-aligned\n  locations wherever possible.\n\nUse `export ART_MIPS32_CHECK_ALIGNMENT\u003dtrue` when building Android\nto enable the new runtime alignment checks.\n\nTest: Boot \u0026 run tests on 32-bit version of QEMU, and CI-20.\nTest: test/testrunner/testrunner.py --target --optimizing --32\nTest: test-art-host-gtest\nTest: test-art-target-gtest\n\nChange-Id: Ia667004573f419fd006098fcfadf5834239cb485\n"
    },
    {
      "commit": "e4df8d98afd512e8ed0b7664b31856ab49edb13a",
      "tree": "a4845205d4b46da4c4f29ee720c7e0164e75c4a3",
      "parents": [
        "716f34dd5517d348fe7ce6626d1250c8853083c6",
        "4d1a9d4b01ef0bbea3b7dfa9f31420d6e1d0ac83"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 23 15:56:55 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 23 15:56:55 2017 +0000"
      },
      "message": "Merge \"Improve sign and zero extension analysis.\""
    },
    {
      "commit": "2e61a57988a9172d446a1638bbd61d94c86ed4d9",
      "tree": "d39b3405dcfadeb19e2c8cf64c082e2b9a693013",
      "parents": [
        "59c5dfe792d3288c5df75a035f6614cb228d7352"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Mon Oct 23 08:58:15 2017 +0200"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Mon Oct 23 08:58:15 2017 +0200"
      },
      "message": "MIPS32: Do implicit null check properly\n\nThis fixes 122-npe test failure in debuggable mode for MIPS32.\n\nTest: ./testrunner.py --target --optimizing --debuggable --ndebuggable on CI20\nChange-Id: I7c5c1e72a92f29e750265b612079ab0bac2a1dc0\n"
    },
    {
      "commit": "a59820dc247b220640a738ae7cb3803a4d89829c",
      "tree": "81cb732e658ec1f836b11e6b3562b50f4899800e",
      "parents": [
        "a30af1640a882924e57dd9a474797c07d7202a36",
        "3309c01e55821f693e3b9cec0ef24969edf2528f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 20 20:38:22 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 20 20:38:22 2017 +0000"
      },
      "message": "Merge \"MIPS: Introduce a few MSA instructions\""
    },
    {
      "commit": "4d1a9d4b01ef0bbea3b7dfa9f31420d6e1d0ac83",
      "tree": "dd60bed0d302987c2a8f766d58fc855f510183c5",
      "parents": [
        "758aeab86b79369f9dfc6ae5d3bd98232f5b9c40"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Oct 19 14:40:55 2017 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Oct 20 11:10:52 2017 -0700"
      },
      "message": "Improve sign and zero extension analysis.\n\nRationale:\nThis was needed to fix the regression introduced by\na prior type based cl. With the new type system ramping\nup, however, this is actually more  simplification (remove\nthe And recognition for example) than new code!\n\nTest: test-art-host test-art-target\n\nBug: 67935418\nChange-Id: I4284f8f29f3d26e4033a3014d0c697677cc0d795\n"
    },
    {
      "commit": "2f707787e60d74a187c570d6b47a5a14036e09ba",
      "tree": "7e50caf2df0ce6556585a21c044572f4d2f7ed61",
      "parents": [
        "71ae03b7a56ddb9c45e3a7edd690fe919af9f17a",
        "f39208f6787928151153795a3cdae28cba964df6"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 20 15:38:14 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 20 15:38:14 2017 +0000"
      },
      "message": "Merge \"ART: Add abort-on-soft-verifier-error\""
    },
    {
      "commit": "96b7474ebf313abdaf99e657e4ba9758e2467fb1",
      "tree": "175c7a007ef033c3fccc1e74da2e4424e74da336",
      "parents": [
        "6247604714ae7fb2b64451b225cc0ecd3d4b716f",
        "174b2e27ebf933b80f4e8b64b4b024ab4306aaac"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Oct 20 10:31:25 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 20 10:31:25 2017 +0000"
      },
      "message": "Merge \"Use ScopedArenaAllocator for code generation.\""
    },
    {
      "commit": "f39208f6787928151153795a3cdae28cba964df6",
      "tree": "59ea0bc7ddf2b20ecf501e3ddca7d71ebb9df851",
      "parents": [
        "5ef8128014b1796ae56dba3031f64ce6bfef4496"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 19 15:06:59 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Oct 19 18:01:03 2017 -0700"
      },
      "message": "ART: Add abort-on-soft-verifier-error\n\nAdd an option to abort compilation if any class fails compile-time\nverification.\n\nBug: 65318848\nBug: 67358823\nTest: m test-art-host-gtest-dex2oat_test\nChange-Id: I5d2a7cd1d2ed048ab39d6f787ecc9eb2f41d3d77\n"
    },
    {
      "commit": "3309c01e55821f693e3b9cec0ef24969edf2528f",
      "tree": "cacb4a3775166297b1c9bb9e6236ab901ad725d4",
      "parents": [
        "24276374dcaf95bfc52be2b8193eb4e337de62e4"
      ],
      "author": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@imgtec.com",
        "time": "Fri Oct 13 14:34:32 2017 +0200"
      },
      "committer": {
        "name": "Lena Djokic",
        "email": "Lena.Djokic@imgtec.com",
        "time": "Thu Oct 19 11:24:55 2017 +0200"
      },
      "message": "MIPS: Introduce a few MSA instructions\n\nThese instructions are needed for SIMD reduction.\nAlso added assembler tests for each instruction.\n\nTest: mma test-art-host-gtest\n\nChange-Id: I0f02618a14b4cbcc3b81ce51dd2586fa4cdbfd18\n"
    },
    {
      "commit": "b277aa1385f7f4593c9978d8106669142d158f4f",
      "tree": "02b4919913ca6193db721f486062b949efb1fbfc",
      "parents": [
        "dfce43569a32ed7da881796713647cd8051d0d4e",
        "61b922847403ac0e74b6477114c81a28ac2e01a0"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 19 09:21:21 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 19 09:21:21 2017 +0000"
      },
      "message": "Merge \"ART: Introduce Uint8 loads in compiled code.\""
    },
    {
      "commit": "2b51edd7918d6a70fd335cdc5af50e9513aab1cf",
      "tree": "e2e57953d38318df3b7d32ca707fa07093fb16d7",
      "parents": [
        "d6947136eab2fcefb1a9195110b9195aabaf469e"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Oct 18 13:15:02 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Oct 18 13:27:12 2017 -0700"
      },
      "message": "ART: Fix includes\n\nAdd missing libnativehelper dependencies. Remove superfluous\nScopedLocalRef includes.\n\nTest: mmma art\nChange-Id: Ic2ecbcc1d205500307f0ef5b2859c60d3fc336f3\n"
    },
    {
      "commit": "61b922847403ac0e74b6477114c81a28ac2e01a0",
      "tree": "02674602fb2592f758f51389b3c7b276ab4df3ee",
      "parents": [
        "6783118d2ad9d759f0617b1219a9e29a10a569f7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 11 13:23:17 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 18 15:52:51 2017 +0100"
      },
      "message": "ART: Introduce Uint8 loads in compiled code.\n\nSome vectorization patterns are not recognized anymore.\nThis shall be fixed later.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nTest: testrunner.py --target --optimizing on Nexus 5X\nTest: Nexus 5X boots.\nBug: 23964345\nBug: 67935418\nChange-Id: I587a328d4799529949c86fa8045c6df21e3a8617\n"
    },
    {
      "commit": "ce20f2ff0123f30533f5a1da518e1a5298b1c138",
      "tree": "4dbeb08ea5be88734e75fb083b9f0dde935f9bf6",
      "parents": [
        "28d3cda54c9a6026e75b5f6dc0b41d868c8e0681",
        "1949baf64471241cb9bd59ca2b61be24b4320528"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 17 16:29:04 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 17 16:29:04 2017 +0000"
      },
      "message": "Merge \"Revert \"Force OSR compilation on all compilations.\"\""
    },
    {
      "commit": "1949baf64471241cb9bd59ca2b61be24b4320528",
      "tree": "cdfb4fcf6b9ad60d441a4def9b505d355ffbacce",
      "parents": [
        "c2176669b4c8ee7622609d07ccca0524e6628471"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 17 12:14:53 2017 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 17 12:14:53 2017 +0000"
      },
      "message": "Revert \"Force OSR compilation on all compilations.\"\n\nChange was temporary.\n\nThis reverts commit c2176669b4c8ee7622609d07ccca0524e6628471.\n\nChange-Id: Iaa039c166827da983f757acc168e0c0f49daec4e\n"
    },
    {
      "commit": "28d3cda54c9a6026e75b5f6dc0b41d868c8e0681",
      "tree": "5a209ab58a117958a896890f3f74433ea321b6af",
      "parents": [
        "e4311fcc6b49a032c47f7d59b3cac55139426909",
        "c2176669b4c8ee7622609d07ccca0524e6628471"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 17 12:14:31 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 17 12:14:31 2017 +0000"
      },
      "message": "Merge \"Force OSR compilation on all compilations.\""
    },
    {
      "commit": "e4311fcc6b49a032c47f7d59b3cac55139426909",
      "tree": "4dbeb08ea5be88734e75fb083b9f0dde935f9bf6",
      "parents": [
        "a1268f4cde5555b1cabf492671d962999ef43505",
        "003444a288ea73812fad96fda09b7592f283ec80"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 17 11:52:28 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 17 11:52:28 2017 +0000"
      },
      "message": "Merge \"Fix braino in BoundsCheckSlowPathX86_64.\""
    },
    {
      "commit": "174b2e27ebf933b80f4e8b64b4b024ab4306aaac",
      "tree": "968cdd8d7fd68571115db77cc288807c3b257911",
      "parents": [
        "6783118d2ad9d759f0617b1219a9e29a10a569f7"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 12 13:34:49 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 17 11:12:08 2017 +0100"
      },
      "message": "Use ScopedArenaAllocator for code generation.\n\nReuse the memory previously allocated on the ArenaStack by\noptimization passes.\n\nThis CL handles only the architecture-independent codegen\nand slow paths, architecture-dependent codegen allocations\nshall be moved to the ScopedArenaAllocator in a follow-up.\n\nMemory needed to compile the two most expensive methods for\naosp_angler-userdebug boot image:\n  BatteryStats.dumpCheckinLocked() : 19.6MiB -\u003e 18.5MiB (-1189KiB)\n  BatteryStats.dumpLocked(): 39.3MiB -\u003e 37.0MiB (-2379KiB)\n\nAlso move definitions of functions that use bit_vector-inl.h\nfrom bit_vector.h also to bit_vector-inl.h .\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 64312607\nChange-Id: I84688c3a5a95bf90f56bd3a150bc31fedc95f29c\n"
    },
    {
      "commit": "c2176669b4c8ee7622609d07ccca0524e6628471",
      "tree": "1bcc30e005054118c5d37b2cb792b39038afa34b",
      "parents": [
        "b73cc5dece8bf95935e03ff86b9a314872886299"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Oct 12 11:11:01 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 17 10:00:35 2017 +0000"
      },
      "message": "Force OSR compilation on all compilations.\n\nTemporary change to trigger tests. Will revert once enough\nbuilds have been triggered.\n\nAlso disable checker tests and $noinline$ checks.\n\nbug: b/66752868\nTest: test.py\nChange-Id: Idee456fea4c9e43dfc52e766bbd98408e0bbd4e8\n"
    },
    {
      "commit": "003444a288ea73812fad96fda09b7592f283ec80",
      "tree": "512f3fae1083a482d553b931ffa62fa452b46d64",
      "parents": [
        "b73cc5dece8bf95935e03ff86b9a314872886299"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 17 10:58:42 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Oct 17 10:58:42 2017 +0100"
      },
      "message": "Fix braino in BoundsCheckSlowPathX86_64.\n\nNo need to call AsArrayLength again.\n\nTest: build\nChange-Id: Id8dac5903646a2491d67f361ca8b384092a51e0f\n"
    },
    {
      "commit": "3b8c82f4864624da8a1efd09f02bfec754413a20",
      "tree": "175a5835f4f62f539b5ae457a9e62ec3dcb91d13",
      "parents": [
        "26d46e51a8c387d26e7971857e26f4582b936204"
      ],
      "author": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Tue Oct 10 23:01:34 2017 -0700"
      },
      "committer": {
        "name": "Alexey Frunze",
        "email": "Alexey.Frunze@imgtec.com",
        "time": "Mon Oct 16 17:06:21 2017 -0700"
      },
      "message": "MIPS32R2: Enable table-based switch in presence of irreducible loops\n\nTest: test-art-host-gtest\nTest: booted MIPS32R2 in QEMU\nTest: testrunner.py --target --optimizing --32\nTest: repeat all of the above with suppressed generation\n      of HMipsPackedSwitch\n\nChange-Id: Ic8a27d88cd2d7eebaf5826ce8fd1a5607a024844\n"
    },
    {
      "commit": "4054e74d66b7c6e0d17f651fa97dd4ce492797c2",
      "tree": "683ec32ff853adba22f82aab6500f764c0dc3266",
      "parents": [
        "6cee5e402cb206f0c0878e999f885a7206dcbb09",
        "0aff3a8a5a001b5a07c720ffb6b651aa44b26483"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 16 14:33:04 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 16 14:33:04 2017 +0000"
      },
      "message": "Merge \"Fix wrong length passed to AAIOBE on x86/x64.\""
    },
    {
      "commit": "0aff3a8a5a001b5a07c720ffb6b651aa44b26483",
      "tree": "1e2c2df682f29c67071d9edeb2bc7b76c04fa093",
      "parents": [
        "e384c3bbbd23b00c6e991bf1aa8fa1deeac179d4"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Oct 13 13:12:36 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Oct 16 13:48:32 2017 +0100"
      },
      "message": "Fix wrong length passed to AAIOBE on x86/x64.\n\nWhen getting the length of an array from memory (optimization\ndone by x86_memory_gen.cc), the slow path was incorrectly\nunconditionnally treating the array as a string array, needing\nto shr the length value.\n\nTest: 667-out-of-bounds.\nChange-Id: I274e68ecf63a70344c4f47db8431425433010283\n"
    },
    {
      "commit": "89b8df04fb1a2f10ab011e0b7d813098e095fbb9",
      "tree": "0b3f39060d69ab0d6409a57b29a632f9ed44b917",
      "parents": [
        "e478ed98446bff1ede5084c755313ee84afc036f"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Fri Oct 13 08:33:17 2017 +0200"
      },
      "committer": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Fri Oct 13 08:35:24 2017 +0200"
      },
      "message": "Fix min/max SIMD reduction\n\nUse HVecReplicateScalar instead of HVecSetScalars when creating an\ninitial vector for min/max. This way we are preventing that zeroes\nfrom the initial vector are taken into account for min/max\ncalculations. Otherwise, min(MAX_INT, x[0],.., x[n-1]) \u003d 0 if each\nx[i] is positive which is incorrect.\n\nAdded regression test cases in 661-checker-simd-reduc.\n\nTest: ./testrunner.py --target --optimizing in QEMU (arm64)\n\nChange-Id: I1779eefc7f2ab9971dec561b2e1fbf262652410e\n"
    },
    {
      "commit": "e5172c1362054e29477acd39d5aacf22fea7e608",
      "tree": "4df22abd76dc5d359a12c379cb9f15ec274767aa",
      "parents": [
        "d9f97406f6b4bfa86b635b0d00e7623a1fa58f81",
        "292567ee71a20bfc59513c6af290495e4b92b2cb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 12 23:27:29 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 12 23:27:29 2017 +0000"
      },
      "message": "Merge \"Rename NativeDexFile -\u003e StandardDexFile\""
    },
    {
      "commit": "292567ee71a20bfc59513c6af290495e4b92b2cb",
      "tree": "6f2fb5ed3caec12b2193b179864dcd87578d2f52",
      "parents": [
        "b95f45e67a3e4a14aab63b19f101547658d7514b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 12 13:24:38 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Oct 12 13:48:31 2017 -0700"
      },
      "message": "Rename NativeDexFile -\u003e StandardDexFile\n\nMotivation: The new name is cleaner.\n\nBug: 63756964\nTest: test-art-host\nChange-Id: I0e52015dbd929fe247305070cef03d86bcdeb54b\n"
    },
    {
      "commit": "6ee6d226f80be742b426620e0f98089417cc1cdd",
      "tree": "d6b2417850fd2ab5fd2a5b121267d8f9cbccb87e",
      "parents": [
        "b95f45e67a3e4a14aab63b19f101547658d7514b",
        "6e9b137f0439b3ceedb8114bd93fa9fb746e42fa"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu Oct 12 20:12:39 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 12 20:12:39 2017 +0000"
      },
      "message": "Merge \"ARM: Support SIMD reduction for 32-bit backend.\""
    },
    {
      "commit": "6e9b137f0439b3ceedb8114bd93fa9fb746e42fa",
      "tree": "1fc138f4f0727fe4e78141fb2979c665d1fe157b",
      "parents": [
        "4c3682649ebcaef4ab237f523f8e39ebd65e4f8d"
      ],
      "author": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Thu Oct 05 16:48:30 2017 +0100"
      },
      "committer": {
        "name": "Artem Serov",
        "email": "artem.serov@linaro.org",
        "time": "Thu Oct 12 18:04:48 2017 +0100"
      },
      "message": "ARM: Support SIMD reduction for 32-bit backend.\n\nSupport SIMD reduction (add, min, max) and SAD (for int-\u003eint only)\nidioms for arm (32-bit) backend.\n\nTest: test-art-target, test-art-host\nTest: 661-checker-simd-reduc, 660-checker-simd-sad-int\n\nChange-Id: Ic6121f5d781a9bcedc33041b6c4ecafad9b0420a\n"
    },
    {
      "commit": "37c7405977f88a4f45887178948b27490e8ebfc9",
      "tree": "6173564d8bab17c37ab1cdb989e326dcf1f17823",
      "parents": [
        "387c28110e562a11cc27448472f2031251a9ded4",
        "bea75ff0835324076fed6ff5d443b9e02c65d223"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 12 11:35:46 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 12 11:35:46 2017 +0000"
      },
      "message": "Merge \"Fix using LiveIntervals beyond their lifetime.\""
    },
    {
      "commit": "387c28110e562a11cc27448472f2031251a9ded4",
      "tree": "9dc69f88cf59703d24537fe8d23ef89373c76bfd",
      "parents": [
        "0284f43d625f0776ee0586a7cc321e11f5405e8c",
        "009d166842195711eca4d5768c59a8f7404e6875"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 12 11:19:47 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 12 11:19:47 2017 +0000"
      },
      "message": "Merge \"Use ScopedArenaAllocator in BCE, DCE, LSE, ...\""
    },
    {
      "commit": "bea75ff0835324076fed6ff5d443b9e02c65d223",
      "tree": "61ae2e8fe552938fcae1e277f51823ba2a4f6e74",
      "parents": [
        "567563a9c6ccc06c2c9889d1c3c4feaa3c2b2dab"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 11 20:39:54 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 12 10:58:02 2017 +0100"
      },
      "message": "Fix using LiveIntervals beyond their lifetime.\n\nFixes a bug introduced by\n    https://android-review.googlesource.com/504041\n\nTest: test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 64312607\nChange-Id: I7fd2d55c2a657f736eaed7c94c41d1237ae2ec0b\n"
    },
    {
      "commit": "009d166842195711eca4d5768c59a8f7404e6875",
      "tree": "297cbed4084e905767bd979d54697693fd0c7262",
      "parents": [
        "52d52f5dc3e005829926e68c656fb27e8b008ae9"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 10 13:21:15 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 12 10:43:29 2017 +0100"
      },
      "message": "Use ScopedArenaAllocator in BCE, DCE, LSE, ...\n\n... ReferenceTypePropagation and GraphChecker.\n\nDefine and use a new allocation kind for LoadStoreAnalysis.\n\nMemory needed to compile the two most expensive methods for\naosp_angler-userdebug boot image:\n  BatteryStats.dumpCheckinLocked() : 19.7MiB -\u003e 19.6MiB (-79KiB)\n  BatteryStats.dumpLocked(): 39.4MiB -\u003e 39.3MiB (-120KiB)\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 64312607\nChange-Id: Ib0cf074ac21ab67d8f8f2efabbdfb84cce9cae8e\n"
    },
    {
      "commit": "0284f43d625f0776ee0586a7cc321e11f5405e8c",
      "tree": "983c86ff79f2a5a089bfa44ec27a5f2c5d6206b6",
      "parents": [
        "128acd4b5b34cdd51328de03df085deaa040b864",
        "52d52f5dc3e005829926e68c656fb27e8b008ae9"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 12 09:05:08 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 12 09:05:08 2017 +0000"
      },
      "message": "Merge changes I4bbb21bf,Ie79b46cd,Ia50aafc8\n\n* changes:\n  Use ScopedArenaAllocator in GVN.\n  Use ScopedArenaAllocator for Phi elimination pass.\n  Use ScopedArenaAllocator for building HGraph.\n"
    },
    {
      "commit": "79c87da9d4698ec58ece65af0065eebd55a1cfe0",
      "tree": "399797f37712da9d20829d5b5059b6c84943cb02",
      "parents": [
        "656e97f949df4081fba908113406b32915174502"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Oct 10 11:54:29 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 11 14:47:06 2017 -0700"
      },
      "message": "Add DexFileLoader class\n\nAdded DexFileLoader class, moved functionality from DexFile there:\n- Multidex loading logic\n- DexFile opening logic for Zip and etc\n- Some other helpers\n\nBug: 63756964\nTest: test-art-host\n\nChange-Id: Ic3dfa458947d4b69912dea5cdd836e7e8f55061c\n"
    },
    {
      "commit": "7b074bf1ce559541d0c19ef793d9702a415ff74d",
      "tree": "acaf022c330649de7a1a4b372308132f44091c70",
      "parents": [
        "432d91004b79c79deebeee6f6197e43adf6caafd"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Sep 25 16:22:36 2017 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Oct 11 11:30:11 2017 -0700"
      },
      "message": "Add a shared interface for different types of dex files\n\nRepurposed DexFile to be the shared API. Will be used for abstracting\naccesses to original dex files and CompactDex files.\n\nAs implementation diverges, functionality will be moved from DexFile\naccordingly.\n\nWill consider renaming DexFile -\u003e IDexFile in a follow up CL.\n\nBug: 63756964\nTest: test-art-host\n\nChange-Id: Iad2508c2b9a7b6e0669fca5f7d10299a9b1541a2\n"
    },
    {
      "commit": "52d52f5dc3e005829926e68c656fb27e8b008ae9",
      "tree": "7def4120d6dfa068ee8bd42c20e58a33898a923d",
      "parents": [
        "f361267ff86e775ed146138220c5a2f70b4a4b3d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 10 11:04:48 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 11 15:05:20 2017 +0100"
      },
      "message": "Use ScopedArenaAllocator in GVN.\n\nMemory needed to compile the two most expensive methods for\naosp_angler-userdebug boot image:\n  BatteryStats.dumpCheckinLocked() : 20.0MiB -\u003e 19.7MiB (-331KiB)\n  BatteryStats.dumpLocked(): 39.9MiB -\u003e 39.4MiB (-458KiB)\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 64312607\nChange-Id: I4bbb21bf3ecc4b91db7c374737c5f0e0cb7fa462\n"
    },
    {
      "commit": "f361267ff86e775ed146138220c5a2f70b4a4b3d",
      "tree": "964329e03ad010a58124e6332e3d5d3487b8fc25",
      "parents": [
        "69d310e0317e2fce97bf8c9c133c5c2c0332e61d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 10 10:38:16 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 11 14:42:18 2017 +0100"
      },
      "message": "Use ScopedArenaAllocator for Phi elimination pass.\n\nMemory needed to compile the two most expensive methods for\naosp_angler-userdebug boot image:\n  BatteryStats.dumpCheckinLocked() : 20.2MiB -\u003e 20.0MiB (-195KiB)\n  BatteryStats.dumpLocked(): 40.3MiB -\u003e 39.9MiB (-458KiB)\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host --optimizing\nBug: 64312607\nChange-Id: Ie79b46cd42df476c2f66c6f869b1dd810ff15963\n"
    },
    {
      "commit": "69d310e0317e2fce97bf8c9c133c5c2c0332e61d",
      "tree": "fba05a1530e6fc4a2e6950303c1f7c6b0ffbb936",
      "parents": [
        "e764d2e50c544c2cb98ee61a15d613161ac6bd17"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 09 14:12:23 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Oct 11 09:44:26 2017 +0100"
      },
      "message": "Use ScopedArenaAllocator for building HGraph.\n\nMemory needed to compile the two most expensive methods for\naosp_angler-userdebug boot image:\n  BatteryStats.dumpCheckinLocked() : 21.1MiB -\u003e 20.2MiB\n  BatteryStats.dumpLocked(): 42.0MiB -\u003e 40.3MiB\nThis is because all the memory previously used by the graph\nbuilder is reused by later passes.\n\nAnd finish the \"arena\"-\u003e\"allocator\" renaming; make renamed\nallocator pointers that are members of classes const when\nappropriate (and make a few more members around them const).\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nBug: 64312607\nChange-Id: Ia50aafc80c05941ae5b96984ba4f31ed4c78255e\n"
    },
    {
      "commit": "0967cd94860178a5809a9678d005b18c20c24707",
      "tree": "f9e0c97fc7efbdbd8236b1f280227f1c9457d089",
      "parents": [
        "464f8cd7385a9958c3171e2feaa93c726043bbf8",
        "e764d2e50c544c2cb98ee61a15d613161ac6bd17"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 09 12:58:04 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 09 12:58:04 2017 +0000"
      },
      "message": "Merge \"Use ScopedArenaAllocator for register allocation.\""
    },
    {
      "commit": "464f8cd7385a9958c3171e2feaa93c726043bbf8",
      "tree": "3ad72d1411c91c68361a1179581decc0e4d96f03",
      "parents": [
        "e4c00b3af3ccf460e4b0332a04dc9eaeffee5c7a",
        "ca6fff898afcb62491458ae8bcd428bfb3043da1"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 09 10:24:27 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 09 10:24:27 2017 +0000"
      },
      "message": "Merge \"ART: Use ScopedArenaAllocator for pass-local data.\""
    },
    {
      "commit": "e764d2e50c544c2cb98ee61a15d613161ac6bd17",
      "tree": "112aa7ca459d2edb4f800897060a2407fcc622c7",
      "parents": [
        "ca6fff898afcb62491458ae8bcd428bfb3043da1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Oct 05 14:35:55 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Mon Oct 09 10:39:22 2017 +0100"
      },
      "message": "Use ScopedArenaAllocator for register allocation.\n\nMemory needed to compile the two most expensive methods for\naosp_angler-userdebug boot image:\n  BatteryStats.dumpCheckinLocked() : 25.1MiB -\u003e 21.1MiB\n  BatteryStats.dumpLocked(): 49.6MiB -\u003e 42.0MiB\nThis is because all the memory previously used by Scheduler\nis reused by the register allocator; the register allocator\nhas a higher peak usage of the ArenaStack.\n\nAnd continue the \"arena\"-\u003e\"allocator\" renaming.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nBug: 64312607\nChange-Id: Idfd79a9901552b5147ec0bf591cb38120de86b01\n"
    },
    {
      "commit": "097f34cc09caf46945ec17e198f57ac9c156e904",
      "tree": "2f478bcc58ac21017431505ca87e83f4606355b4",
      "parents": [
        "42e482f0615bd935d1426a749a413be2c3f79114"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Aug 23 08:57:51 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Oct 06 13:22:08 2017 -0700"
      },
      "message": "ART: Use CmdlineParser in dex2oat\n\nRefactor dex2oat and the compiler to use the cmdline parser. In\nan effort to standardize command-line parsing and make it easier\nto add new properties in a principled manner.\n\nTest: m test-art-host\nChange-Id: Ia077a56234dbf579d7ca3430fef325b57aa06333\n"
    },
    {
      "commit": "ca6fff898afcb62491458ae8bcd428bfb3043da1",
      "tree": "195a6b16d3a4b34acc2faf91ce56f448efb15e07",
      "parents": [
        "aa7273e56fbafc2692c8d20a31b50d2f4bdd2aa1"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 03 14:49:14 2017 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Oct 06 17:53:50 2017 +0100"
      },
      "message": "ART: Use ScopedArenaAllocator for pass-local data.\n\nPasses using local ArenaAllocator were hiding their memory\nusage from the allocation counting, making it difficult to\ntrack down where memory was used. Using ScopedArenaAllocator\nreveals the memory usage.\n\nThis changes the HGraph constructor which requires a lot of\nchanges in tests. Refactor these tests to limit the amount\nof work needed the next time we change that constructor.\n\nTest: m test-art-host-gtest\nTest: testrunner.py --host\nTest: Build with kArenaAllocatorCountAllocations \u003d true.\nBug: 64312607\nChange-Id: I34939e4086b500d6e827ff3ef2211d1a421ac91a\n"
    },
    {
      "commit": "a820ff736a2907b6e7421ca2a26e6d7af9a7c84d",
      "tree": "c350e7bcddf36f2aef9cdba26b4de028a2ce829f",
      "parents": [
        "aa7273e56fbafc2692c8d20a31b50d2f4bdd2aa1"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Oct 05 19:18:25 2017 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Oct 06 16:38:01 2017 +0100"
      },
      "message": "Instrument code generated by JNI compiler to check the Marking Register.\n\nGenerate run-time code in the JNI compiler checking that the\nMarking Register\u0027s value matches `self.tls32_.is_gc_marking` in\ndebug mode (on target; and on host with AOT when compiling the\ncore 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: ARM64 device boot test\nTest: ARM64 device boot test with libartd.\nBug: 37707231\nChange-Id: I6494b5f34a1b43d7b0102c52fd8e4a7c9f32b34f\n"
    },
    {
      "commit": "aa7273e56fbafc2692c8d20a31b50d2f4bdd2aa1",
      "tree": "31af8697c08958ad9cde4cf4619f075e9d593a45",
      "parents": [
        "8c5e25b1a00a3b286bc00a9a7da10bb58c7bfe09",
        "0d127e10de0b06ec22d8e855d1d62773c4ede101"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Oct 06 09:38:00 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 06 09:38:00 2017 +0000"
      },
      "message": "Merge \"Do not refresh the Marking Register in CriticalNative methods.\""
    },
    {
      "commit": "85eda8b927b2d12c49537b0d9d60b5c416f5fd77",
      "tree": "f021d73c9d2ca7654b1a7674621ff408141a1894",
      "parents": [
        "1863dd6179f37611205f4e7106c005289a160bfa",
        "46b6dbcd18df0cb5915ca906fefd9f0b0a1af6a2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 05 19:10:05 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 05 19:10:05 2017 +0000"
      },
      "message": "Merge \"Try to preserve dex pc better in vector code.\""
    }
  ],
  "next": "46b6dbcd18df0cb5915ca906fefd9f0b0a1af6a2"
}
