)]}'
{
  "log": [
    {
      "commit": "952dbb19cd094b8bfb01dbb33e0878db429e499a",
      "tree": "82932c2b00245042e2c129f3d4133f6431657da3",
      "parents": [
        "df638c66d1f385d4e217b2ab22c5e48a7eefdef4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 28 12:01:51 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Aug 04 14:51:52 2016 +0100"
      },
      "message": "Change suspend entrypoint to save all registers.\n\nWe avoid the need to save/restore registers in slow paths\nand get significant code size savings. On Nexus 9, AOSP:\n  - 32-bit boot.oat: -1.4MiB (-1.9%)\n  - 64-bit boot.oat: -2.0MiB (-2.3%)\n  - other 32-bit oat files in dalvik-cache: -200KiB (-1.7%)\n  - other 64-bit oat files in dalvik-cache: -2.3MiB (-2.1%)\n\nTest: Run ART test suite on host and Nexus 9 with gc stress.\nBug: 30212852\nChange-Id: I7015afc1e7d30341618c9200a3dc9ae277afd134\n"
    },
    {
      "commit": "df638c66d1f385d4e217b2ab22c5e48a7eefdef4",
      "tree": "f7864dafe9ab48f6a165d0b4bd66018f66999041",
      "parents": [
        "4130c3360e7cce50ece7534bf06e5c165255ba8b",
        "ecf75a6a9396475759c5f8b47cdc1929614b9542"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Aug 01 18:14:07 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 01 18:14:07 2016 +0000"
      },
      "message": "Merge \"ART: remove gcc cruft from the makefiles\""
    },
    {
      "commit": "4130c3360e7cce50ece7534bf06e5c165255ba8b",
      "tree": "456d0d589d7a221da8fdcd83ea786671a2d6b9dc",
      "parents": [
        "6e5e3b2e914cf4bdc5f17a6011fc2b1937eb9641",
        "3c92b129047b12f0887a2068b3800d7a7dcb7d78"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 01 17:46:49 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 01 17:46:50 2016 +0000"
      },
      "message": "Merge \"cpp-define-generator: \"make art-update-cpp-defines\" to regen asm_support\""
    },
    {
      "commit": "a794c26a0909f5d882f236f12d7f5fd30a336f35",
      "tree": "664866998697ba023710234b952e987da6e99f8f",
      "parents": [
        "bffecdbb50c42c775219dfbf32132fe6a9067762"
      ],
      "author": {
        "name": "Przemyslaw Szczepaniak",
        "email": "pszczepaniak@google.com",
        "time": "Mon Jul 25 17:31:06 2016 +0100"
      },
      "committer": {
        "name": "Przemyslaw Szczepaniak",
        "email": "pszczepaniak@google.com",
        "time": "Mon Aug 01 09:32:56 2016 +0000"
      },
      "message": "Fix art::ArchTest::FinalizeSetup not being called.\n\nCommonRuntimeTestImpl::SetUp() is calling FinalizeSetup. Since\nCommonRuntimeTestImpl::FinalizeSetup is not virtual (it\u0027s virtual\none step higher in class hierarchy in CommonRuntimeTestBase), overridden\nversion in ArchTest was never used. This is causing ArchTest to\nfail with openjdk8u60 version of java.lang.reflect (it\u0027s calling\nClass#getDeclaredField in clinit, which fails on 32 bit\nversion because of different pointer sizes [arch_test forces\n64-bit ISA])\n\nBug: 28666126\nTest:  make -j 32 test-art-host-gtest\nChange-Id: Ief370f5b18ef787575ac0f88ecbe17ebbf037542\n"
    },
    {
      "commit": "bffecdbb50c42c775219dfbf32132fe6a9067762",
      "tree": "7fa137d907144f6f114ee8f292b5376846842c07",
      "parents": [
        "0f290d764d7d6f05c4d818e2144858bb5886fc75",
        "0d638bb49054e5278855483290c7a5c7d683e153"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Aug 01 08:39:04 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 01 08:39:05 2016 +0000"
      },
      "message": "Merge \"ART: Fix RegTypeCache for instance field declaring class\""
    },
    {
      "commit": "0f290d764d7d6f05c4d818e2144858bb5886fc75",
      "tree": "abeb862835125df8919fccc162debefd6e727cfd",
      "parents": [
        "0af088d126665257ba55eca44f7644cb6b972a61",
        "db698f1add0bfe5e482b837b8dcf805ee957d694"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Sat Jul 30 02:53:25 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jul 30 02:53:26 2016 +0000"
      },
      "message": "Merge \"Fix for interpreter crash on new instance of class\""
    },
    {
      "commit": "0af088d126665257ba55eca44f7644cb6b972a61",
      "tree": "4c87e5a007cf291967f0b1d6059d5ad466cbc11d",
      "parents": [
        "3d733104c99ce02f5fd042d69c1cecf295208872",
        "4b0ef1c980a1f3b0201d77e33bdb2f7df12c9114"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jul 30 02:10:00 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jul 30 02:10:00 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Use try lock to fix class resolution race\"\"\""
    },
    {
      "commit": "4b0ef1c980a1f3b0201d77e33bdb2f7df12c9114",
      "tree": "4b8891beab013872144d69f97e918f9914aaf8c8",
      "parents": [
        "7707777f064e9e0aa53c40c189045ab2ea4301ee"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jul 29 16:26:01 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jul 29 17:54:09 2016 -0700"
      },
      "message": "Revert \"Revert \"Use try lock to fix class resolution race\"\"\n\nFix possible deadlock in EnsureResolved caused by interaction with\nGC. Since we were sleeping while holding the mutator lock, it could\nblock thread suspension. This would deadlock if the thread that\nhad locked h_class is already suspended since we would spin forever\nand not make progress.\n\nBug: 27417671\nBug: 30500547\n\nTest: test-art-host ART_TEST_GC_STRESS\u003dtrue\n\nThis reverts commit 69bf969c055c31a75d17ea92aeee756042678114.\n\nChange-Id: Id8750df065dc3b9ef7dc874f2eb2cc2c58e5d1eb\n"
    },
    {
      "commit": "3d733104c99ce02f5fd042d69c1cecf295208872",
      "tree": "50a7f30dd4a891c82838e8881c97c60cb0cb149d",
      "parents": [
        "7707777f064e9e0aa53c40c189045ab2ea4301ee",
        "743bf365c02fd182342879b5cf4d97d66d195a3b"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Sat Jul 30 00:10:18 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jul 30 00:10:18 2016 +0000"
      },
      "message": "Merge \"Create OatFileAssistant::OatFileInfo inner class.\""
    },
    {
      "commit": "db698f1add0bfe5e482b837b8dcf805ee957d694",
      "tree": "00071a455b8fe88cf0eeb4dd31f5e2f36a10861a",
      "parents": [
        "85c4a4b8c9eabfe16e4e49f9b4aa78c1bf4be023"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Mon Jul 25 17:52:22 2016 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Fri Jul 29 15:53:18 2016 -0700"
      },
      "message": "Fix for interpreter crash on new instance of class\n\nRationale:\nFuzz testing found divergences between the compiler and interpreter\nwhich turned out to be caused by calling instance on java.lang.Class\n(this worked for compiler but crashed interpeter). Since RI does not\nallow this construct, solution is to force interpreter in this\nunlikely case and throw run time exception like RI. This fixes\ntwo cases found with fuzz testing. CL also includes\nfail-before/pass-after test.\n\nTest: 600-verifier-fails\n\nBUG\u003d29758098\n\nChange-Id: Ie80f7758def44e6655d28fec4c10c34ffa0fd60b\n"
    },
    {
      "commit": "7707777f064e9e0aa53c40c189045ab2ea4301ee",
      "tree": "6544d649172931dd9d419693cf760700323d1799",
      "parents": [
        "ea159431cd5ed83c4bf4571c834aa9bcf9cc3901",
        "69bf969c055c31a75d17ea92aeee756042678114"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 29 21:23:49 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 29 21:23:49 2016 +0000"
      },
      "message": "Merge \"Revert \"Use try lock to fix class resolution race\"\""
    },
    {
      "commit": "69bf969c055c31a75d17ea92aeee756042678114",
      "tree": "3132e2e1e5b1f1af558652d9b39eeb6c994ec256",
      "parents": [
        "a704eda0078989a73cac111ed309aca50d2e289b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jul 29 20:06:45 2016 +0000"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jul 29 20:12:48 2016 +0000"
      },
      "message": "Revert \"Use try lock to fix class resolution race\"\n\nThis reverts commit a704eda0078989a73cac111ed309aca50d2e289b.\n\nBug: 27417671\nBug: 30500547\nChange-Id: Ieea05236b9e61c722660cd9497c9d55d13ccd010\n"
    },
    {
      "commit": "ea159431cd5ed83c4bf4571c834aa9bcf9cc3901",
      "tree": "d132c29d707f2dc86fb98e67ab07c75f42265d7c",
      "parents": [
        "b94ea458e7925d8ded85504941f40b7dd5edf1c2",
        "33ee1205a8c66c36f86378e2cbaec14e9b3097ea"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 29 18:57:26 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 29 18:57:26 2016 +0000"
      },
      "message": "Merge \"Add arena stack and priority queue type aliases\""
    },
    {
      "commit": "b94ea458e7925d8ded85504941f40b7dd5edf1c2",
      "tree": "f3d3dba4a8666c62d2a0221448d6dfbc23366337",
      "parents": [
        "8481f6390ac6ce0e2fda6f7f5beac9810f44899e",
        "ccf7c8a68972f3b7bfa38af0c6b792f712f83765"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 29 18:52:16 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 29 18:52:17 2016 +0000"
      },
      "message": "Merge \"Revert \"Scan immune spaces using mod union tables.\"\""
    },
    {
      "commit": "ccf7c8a68972f3b7bfa38af0c6b792f712f83765",
      "tree": "3132e2e1e5b1f1af558652d9b39eeb6c994ec256",
      "parents": [
        "8256da35feac0ba7589fcd4b692a4b9a936679a4"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Jul 29 17:41:01 2016 +0000"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Fri Jul 29 17:41:01 2016 +0000"
      },
      "message": "Revert \"Scan immune spaces using mod union tables.\"\n\nThis reverts commit 8256da35feac0ba7589fcd4b692a4b9a936679a4.\n\nTest failing.\n\nChange-Id: I391dcbdba19c6f6313e06075b0a69ea406c7c50e\n"
    },
    {
      "commit": "33ee1205a8c66c36f86378e2cbaec14e9b3097ea",
      "tree": "475b1427e95f0592881260b9d1ee465934e05545",
      "parents": [
        "4c4d6f42cff3d9a43db3e44716726c2cd39c23bb"
      ],
      "author": {
        "name": "Matthew Gharrity",
        "email": "gharrma@google.com",
        "time": "Fri Jul 29 09:13:33 2016 -0700"
      },
      "committer": {
        "name": "Matthew Gharrity",
        "email": "gharrma@google.com",
        "time": "Fri Jul 29 10:38:46 2016 -0700"
      },
      "message": "Add arena stack and priority queue type aliases\n\nThese will be used in the graph coloring register allocator.\n\nTest: m test-art-host\n\nChange-Id: I4d3d063ae5a02e697f07fc8212f391b5347270e5\n"
    },
    {
      "commit": "3c92b129047b12f0887a2068b3800d7a7dcb7d78",
      "tree": "7bc782a01f9da093e9a5eed41d7a2c7bc8f570fe",
      "parents": [
        "311fdf52f7d33b988130d07b3d3a86eb148051ca"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Jul 29 09:19:44 2016 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Jul 29 09:19:44 2016 -0700"
      },
      "message": "cpp-define-generator: \"make art-update-cpp-defines\" to regen asm_support\n\nChange-Id: I1a550eda6c77f38e63bb1c8fb943541cbd3f9cdf\n"
    },
    {
      "commit": "ecf75a6a9396475759c5f8b47cdc1929614b9542",
      "tree": "c2816628ca0229ca2da6dde0699eb22f48de3f65",
      "parents": [
        "998bf2b4de04f1664a8ca0085740e266b9e7c4ff"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jul 28 16:01:42 2016 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jul 28 17:12:54 2016 -0700"
      },
      "message": "ART: remove gcc cruft from the makefiles\n\nART only builds with clang now, delete all logic to determine gcc\nvs. clang, and move all LOCAL_CLANG_CFLAGS into LOCAL_CFLAGS.\n\nTest: mma, make test-art-host, make test-art-target\nChange-Id: I578615233ad3e71af18afb47bb11f3be8417216c\n"
    },
    {
      "commit": "743bf365c02fd182342879b5cf4d97d66d195a3b",
      "tree": "c3fa97feacb36b7c6772b09b11ac2b22373a1a2f",
      "parents": [
        "533d684038a72fc5bd3ed352384fc2200bc79c76"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Apr 19 15:39:37 2016 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Thu Jul 28 16:35:13 2016 -0700"
      },
      "message": "Create OatFileAssistant::OatFileInfo inner class.\n\nTo share code reused for getting info about both the odex and oat files.\n\nTest: oat file assistant tests.\nChange-Id: Ifcc48e0ac481899285e39e3b02f3ade180e38728\n"
    },
    {
      "commit": "533d684038a72fc5bd3ed352384fc2200bc79c76",
      "tree": "7c99d89632dffe416e7aaee45b5c66d41dbf4c27",
      "parents": [
        "85c4a4b8c9eabfe16e4e49f9b4aa78c1bf4be023",
        "d6636d3440efc68e1fa43f437ffbe77581096399"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 28 22:27:34 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 28 22:27:34 2016 +0000"
      },
      "message": "Merge \"Avoid read barrier for IntArray::GetArrayClass\""
    },
    {
      "commit": "d6636d3440efc68e1fa43f437ffbe77581096399",
      "tree": "8215236fcbd96189e3686366f352fd1936ad9e2d",
      "parents": [
        "ccee3363e385863de49e1b48a0ab191c94a7b433"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 28 11:02:38 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 28 13:54:46 2016 -0700"
      },
      "message": "Avoid read barrier for IntArray::GetArrayClass\n\nChanged the code use Mark instead of read barrier, this showed an\nexisting lock violation and possible deadlock which was fixed.\nPrevent DCHECK failure from the assert.\n\nBug: 30469265\nTest: test-art-host with CC\n\nChange-Id: I275f953f06f6d13262043fc62eb88dca0356465a\n"
    },
    {
      "commit": "85c4a4b8c9eabfe16e4e49f9b4aa78c1bf4be023",
      "tree": "6da6eb26a1a5683473967f4b11dce6e14e1010d0",
      "parents": [
        "ccee3363e385863de49e1b48a0ab191c94a7b433",
        "a704eda0078989a73cac111ed309aca50d2e289b"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 28 18:12:56 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 28 18:12:56 2016 +0000"
      },
      "message": "Merge \"Use try lock to fix class resolution race\""
    },
    {
      "commit": "ccee3363e385863de49e1b48a0ab191c94a7b433",
      "tree": "0e60d32483e1107adbe467c85d6391678d2b09d8",
      "parents": [
        "5fc9ddef31d9a458a8ffdca35d73802e571a42a2",
        "8256da35feac0ba7589fcd4b692a4b9a936679a4"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Jul 28 17:24:43 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 28 17:24:43 2016 +0000"
      },
      "message": "Merge \"Scan immune spaces using mod union tables.\""
    },
    {
      "commit": "5fc9ddef31d9a458a8ffdca35d73802e571a42a2",
      "tree": "a389b04b78f8a6c20f3947314a5648e4f0335cb1",
      "parents": [
        "d22b69a12777014a92a3551eba65a4c69f2800b2",
        "63b6eb400c9d9052447b213471f90dfa4e6f242c"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jul 28 16:54:49 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 28 16:54:49 2016 +0000"
      },
      "message": "Merge \"Disable CheckSwapUsage test with read barriers on x86.\""
    },
    {
      "commit": "d22b69a12777014a92a3551eba65a4c69f2800b2",
      "tree": "9610ef0db5bdd3b21bfcfa4de2f1f3328b928f5b",
      "parents": [
        "e3051bf60783fa18e6f8c7ac6f73091f05af5665",
        "d549c28cfbddba945cb88857bcca3dce1414fb29"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jul 28 16:20:19 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 28 16:20:19 2016 +0000"
      },
      "message": "Merge \"Remove two ReadBarrierMarkRegX entrypoints.\""
    },
    {
      "commit": "0d638bb49054e5278855483290c7a5c7d683e153",
      "tree": "32bf8600721245dfa498c3eb160e8fc30512c852",
      "parents": [
        "93afc5f20a23ece78d6d6e506ed75775b8ef2113"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jul 27 15:29:25 2016 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jul 28 16:40:31 2016 +0100"
      },
      "message": "ART: Fix RegTypeCache for instance field declaring class\n\nFor bytecode instruction:\n\n  iget(-*) ClassB-\u003efield:type\n\nwhere the resolved field is actually declared in ClassA (ClassB\nextends ClassA), MethodVerifier would create a RegType representing\nClassA but cache it under the descriptor \"ClassB\".\n\nThis is a bug but does not have any implications on correctness\nbecause earlier resolution of ClassB (part of IGET handling) creates\nanother cache entry with the \"ClassB\" descriptor. Because the latter,\nwrong entry is always imprecise (ClassA cannot be final because ClassB\nextends it), either the earlier entry will be discovered or neither\nof them will be a match.\n\nDescriptor was replaced with the correct one and a DCHECK added when\ncreating a RegType to make sure the descriptor matches.\n\nBug: 30458218\nChange-Id: I19e1bdd5dd79e5eac558122a06b9128d0a5c021f\nTest: m test-art-host-run-test\nTest: art/test/run-test --host 800-smali\n"
    },
    {
      "commit": "63b6eb400c9d9052447b213471f90dfa4e6f242c",
      "tree": "e9ede70e0725c85da30c4e87cf00ebe0a0567254",
      "parents": [
        "93afc5f20a23ece78d6d6e506ed75775b8ef2113"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jul 28 16:37:28 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jul 28 16:37:28 2016 +0100"
      },
      "message": "Disable CheckSwapUsage test with read barriers on x86.\n\nThis test does not produce the expected results on\nsome x86 systems when read barriers are enabled.\n\nAlso remove unused TEST_DISABLED_FOR_READ_BARRIER macro\ndefinition.\n\nTest: m test-art-host-gtest\nBug: 29259363\nBug: 12687968\nChange-Id: If7c124226b32c10425725e62bb684150aba108ab\n"
    },
    {
      "commit": "c416502aa801213e3e4f3d863f85f0cdb01b5bd1",
      "tree": "fc55a38361a96f5827cc862d3202c2fd196d08eb",
      "parents": [
        "f9136b631a42531353544791fb79cc9e4c0b321b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 28 14:04:18 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 28 14:09:30 2016 +0100"
      },
      "message": "ARM64: Add comment to mterp int-to-long.\n\nTest: Build for Nexus 9.\nChange-Id: I649e71fc1cdc2a4a103159bf72ceeb005231e66f\n"
    },
    {
      "commit": "f59f59769046932e121864386676205a9ca631e1",
      "tree": "d03c7b2babbabf833d81f0cd5714e6671b132db0",
      "parents": [
        "7cef37575c007beeca82920cb68def39492943e6",
        "20421b91d98b14a630fe49911afdb7512d19965f"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 28 09:00:59 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 28 09:00:59 2016 +0000"
      },
      "message": "Merge \"ARM64: More mterp improvements.\""
    },
    {
      "commit": "74d19f13d22653edfd966a89464fc02a95ea8522",
      "tree": "36a892b8717ccd441f788c0d52cee83408d22288",
      "parents": [
        "1853a70e6e5ce62866761a77ca3ac906c2949542",
        "5ffa0780a2738eed1f86efb967ea99badcbd5d9c"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 28 01:05:07 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 28 01:05:08 2016 +0000"
      },
      "message": "Merge \"Reduce unnecessary read barriers in GC\""
    },
    {
      "commit": "8256da35feac0ba7589fcd4b692a4b9a936679a4",
      "tree": "3b7b51dc3dbe824c5d62f984ece78f96654c1b59",
      "parents": [
        "9755c262df1be7f5d5b98d038c8fd3734e974f9d"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Jul 27 14:08:19 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Jul 27 14:45:53 2016 -0700"
      },
      "message": "Scan immune spaces using mod union tables.\n\nIt\u0027s faster to scan the immune spaces using the mod union tables (gray\nobjects on dirty pages) than the live bitmaps (gray objects).\n\nThe immune space scan time goes from ~13ms down to ~10ms in the\ntestWidgetsContainerFling test on angler at 1 GHz.\n\nChange-Id: I0914d7bdb50cbf8a49c859070a3501b48eb79f3e\nTest: N9 boot, art tests, Ritz EAAC.\nBug: 29516968\nBug: 29517059\nBug: 12687968\n"
    },
    {
      "commit": "a704eda0078989a73cac111ed309aca50d2e289b",
      "tree": "07fd076b3ea6f86bfea71e4c6707fd301f108db5",
      "parents": [
        "9755c262df1be7f5d5b98d038c8fd3734e974f9d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 13 09:53:35 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 27 14:37:42 2016 -0700"
      },
      "message": "Use try lock to fix class resolution race\n\nThere was some possible deadlocks related to EnsureResolved caused by\nacquiring an object lock.\n\nScenario:\nThread 1 acquires lock on obj1\nThread 1 begins to resolve / initialize class1\nThread 1 blocks since it sees that class1 is already being resolved and\ngets preempted before it can acquire the object lock on class1\nThread 2 finishes resolving and initializing class1 and locks class1\nThread 2 blocks attempting to lock obj1\nThread 1 blocks attempting to lock class1\nDeadlock\n\nFixed the deadlock by changing EnsureResolved to use a try lock for the\nunresolved case.\n\nAdded a test.\n\nTest: Device boot, test-art-host, monitor_test\n\nBug: 27417671\nChange-Id: Ic6e1c3ca6f45490cf8a7bf8e137dee71ac83ff64\n"
    },
    {
      "commit": "5ffa0780a2738eed1f86efb967ea99badcbd5d9c",
      "tree": "ee3a4bde21aa03ad564c84877b3cbab3048e6cfd",
      "parents": [
        "93afc5f20a23ece78d6d6e506ed75775b8ef2113"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 27 10:45:47 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 27 13:57:01 2016 -0700"
      },
      "message": "Reduce unnecessary read barriers in GC\n\nRemoved read barrier from IsUnprocessed, DequeuePendingReference,\nEnqueueReference, and a few other places.\n\nHard to tell if GC time goes down.\n\nEAAC:\nBefore GC slow path count: 254857\nAfter GC slow path count: 1005\n\nBug: 30162165\nBug: 12687968\n\nTest: test-art-host, volantis boot with CC\n\nChange-Id: Ic2add3a9b1e1d7561b0b167f2218b10f8dbff76c\n"
    },
    {
      "commit": "20421b91d98b14a630fe49911afdb7512d19965f",
      "tree": "94ef42dc8ed79d61d20e3a28c4bc8a777df1f8dd",
      "parents": [
        "93afc5f20a23ece78d6d6e506ed75775b8ef2113"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Jul 26 16:38:11 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jul 27 19:21:19 2016 +0100"
      },
      "message": "ARM64: More mterp improvements.\n\nSeveral simple improvements:\n  - use EOR for neg-float and neg-double,\n  - use SBFX instead of LSL+ASR for const/4,\n  - handle long-to-int as move,\n  - use LDRSW for int-to-long,\n  - remove bogus CMP from iput-quick,\n  - use indexed load/store for iget/iput-wide-quick,\n  - use CBZ, CBNZ, TBZ, TBNZ for if-eqz, if-nez, if-gez and\n    if-ltz, respectively. (The short range of TBZ/TBNZ\n    requires emitting the footer before alternate stubs.)\n\nTest: Run ART test suite on Nexus 9 with the interpreter.\nChange-Id: I2e65a7cee3d3e2128b870d98cf6157c21f57d607\n"
    },
    {
      "commit": "58d40f3a7245e65d57a5daf6bf27c3b209260044",
      "tree": "3132e2e1e5b1f1af558652d9b39eeb6c994ec256",
      "parents": [
        "93afc5f20a23ece78d6d6e506ed75775b8ef2113"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Jul 27 10:35:03 2016 -0700"
      },
      "committer": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Wed Jul 27 10:35:03 2016 -0700"
      },
      "message": "Fix profiling output to properly display class info.\n\nThe profiler stores class def indexes, not type ids.\n\nChange-Id: Ieec9374a2ba381387ed444f376922478183145f8\n"
    },
    {
      "commit": "10b218d32c0006aab747a53a9867d982cde9c938",
      "tree": "03b668bd44f89da024531145043c04f670363528",
      "parents": [
        "e92730cbc5e05b8057cf103af876927c9c361b73"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jul 25 17:48:52 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jul 26 10:21:34 2016 -0700"
      },
      "message": "Add missing filter cards to zygote mod union table\n\nWithout filtering the cards, every object in the zygote is grayed\nduring the GC. This was deleted in a PS of previous CL.\n\nGrayAllDirtyImmuneObjects goes from 1.974ms to 376.464us for CC on\nN9 maps. This happens during the pause. This CL also fixes regression\nin zygote PSS.\n\nBug: 29516968\nBug: 12687968\n\nChange-Id: I42014e78b1de3ce9b2eefa3bd32f0d24e2ff71c6\n"
    },
    {
      "commit": "e92730cbc5e05b8057cf103af876927c9c361b73",
      "tree": "5575a4ea6474e6cae624115323e4b33aff510d33",
      "parents": [
        "90187c9858fe0377a67fbe46e4160695a1e3b4a8",
        "21328a15e15005815efc843e774ac6974e94d4d8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 25 23:27:42 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 25 23:27:42 2016 +0000"
      },
      "message": "Merge \"Improve CC handling for immune objects\""
    },
    {
      "commit": "10656de47c02be3d87c02f201c781eb43bb69374",
      "tree": "1c1dbdac310e07478cc69eaedf033c2a6a6e1cf6",
      "parents": [
        "3023890d949d8278ffc2c9023217a43108c9e3c2",
        "311fdf52f7d33b988130d07b3d3a86eb148051ca"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 25 23:06:39 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 25 23:06:39 2016 +0000"
      },
      "message": "Merge \"runtime: Refactor asm_support to be auto-generated (mostly)\""
    },
    {
      "commit": "21328a15e15005815efc843e774ac6974e94d4d8",
      "tree": "8072453c0d072ce5be26271e0e97786d4a52626e",
      "parents": [
        "84413a7617602c466e39de8e8897914a6d06779d"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jul 22 10:47:45 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jul 25 15:35:52 2016 -0700"
      },
      "message": "Improve CC handling for immune objects\n\nCurrently we reduce ram for immune objects by racing agianst the\nmutators to try and finish processing them before the mutators\nchange many objects to gray. However there is still a window of time\nwhere the mutator can dirty immune pages by changing the lock words\nto gray. These pages remain dirty for the lifetime of the app.\n\nThis CL changes uses the FlipCallback pause to gray all of the\nimmune objects that have a dirty card. Once these objects are all\ngray we don\u0027t to gray any more objects in the immune spaces since\nthese objects are the only ones that may reference non immune\nobjects.\n\nAlso only scan objects that are gray when scanning immune spaces to\nreduce scanning time.\n\nSystem wide PSS after boot on N9, before:\n61668 kB: .art mmap\n11249 kB: .Zygote\n\nAfter:\n36013 kB: .art mmap\n12251 kB: .Zygote\n\nResults are better than demonstrated since there are more apps\nrunning after.\n\nMaps PSS / Private Dirty, before:\n.art mmap     3703     3116\n  .Zygote      577      480\n\nAfter:\n.art mmap     1655     1092\n  .Zygote      476      392\n\nSystem server before:\n.art mmap     4453     3956\n  .Zygote      849      780\n\nAfter:\n.art mmap     2326     1748\n  .Zygote      640      564\n\nEAAC:\nBefore:\nScanImmuneSpaces takes 669.434ms GC time\nScores: 718, 761, 753 average 744\nGC time: 4.2s, 4.35s, 4.3s average 4.28s\n\nAfter:\nScanImmuneSpaces takes 138.328ms GC time\nScores: 731, 730, 704 average 722\nGC time: 3.92s, 3.83s, 3.85s average 3.87s\n\nAdditional GC pause time is 285us on Maps on N9.\nTODO: Reduce this pause time.\n\nTest: N9 booting, test-art-host, EAAC all run with CC\n\nBug: 29516968\nBug: 12687968\n\nChange-Id: I584b10d017547b321f33eb23fb5d64372af6f69c\n"
    },
    {
      "commit": "3023890d949d8278ffc2c9023217a43108c9e3c2",
      "tree": "354254bf902ae6c9e5996133f4be229d0f29b2d1",
      "parents": [
        "659ad8fe6b657488ad7347113228cc5c431cccbb",
        "e01e3644205c3644546889237c20185391a0092e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 25 22:24:42 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 25 22:24:42 2016 +0000"
      },
      "message": "Merge \"ART: Add pointer-size template to some reflection functions\""
    },
    {
      "commit": "311fdf52f7d33b988130d07b3d3a86eb148051ca",
      "tree": "107308e59eb8cf528ff74029c3c180ca2a7242a6",
      "parents": [
        "a69e790ad9751807d4a660bb4432b7ea79f0ad3b"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Jul 22 15:59:16 2016 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Mon Jul 25 15:15:03 2016 -0700"
      },
      "message": "runtime: Refactor asm_support to be auto-generated (mostly)\n\nUsage:\n\n* If the defines are no longer up to date, re-run generate-asm-support\n\n* To add a new field:\n--- Edit one of the offset_ or constant def files.\n--- Rebuild cpp-define-generator and re-run generate-asm-support\n\nChange-Id: I772430fcf1ad9af40898ebb453848f8412612386\nTODO: Integrate this into the build somehow\nTODO: Account for 32 vs 64-bit and read barrier vs no read barrier\n"
    },
    {
      "commit": "e01e3644205c3644546889237c20185391a0092e",
      "tree": "413fcf279b415a305605a601297e3856f13a2948",
      "parents": [
        "de4cf16f467b531373560ca6eb785f0f36606aae"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 25 13:06:04 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Jul 25 13:09:41 2016 -0700"
      },
      "message": "ART: Add pointer-size template to some reflection functions\n\nThe unstarted runtime may run code for a different pointer size,\neven when no transaction is active (e.g., during startup). To\nretain performance when the runtime is up and executing under\nnormal conditions, add a template parameter and use sizeof(void*)\nin places where it is adequate.\n\nFor maintainability, it is necessary to drop the default for\nthe transaction template parameter. Implicit conversions from\nbool to size_t may lead to incorrect code and hard to diagnose\nproblems. So instead ensure that all callers must give all\ntemplate parameter values.\n\nTest: m test-art-host\nChange-Id: I3076883422c8553ede4de5642409c5684a5a9aa8\n"
    },
    {
      "commit": "38be534337f2e9a41eb23e045038f58043fa1abb",
      "tree": "aadf074bc5ad8970c5adec2ab45840ff5a5c0c9b",
      "parents": [
        "a69e790ad9751807d4a660bb4432b7ea79f0ad3b",
        "0f7e8f59698265d416d40844233bb09d02e7fc33"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 25 18:44:11 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 25 18:44:11 2016 +0000"
      },
      "message": "Merge \"Fix stream-tracing with default methods\""
    },
    {
      "commit": "0f7e8f59698265d416d40844233bb09d02e7fc33",
      "tree": "b701bdd854fe1e0a518c789be32e9c3f01bc9279",
      "parents": [
        "de4cf16f467b531373560ca6eb785f0f36606aae"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jul 19 11:21:32 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jul 25 10:53:50 2016 -0700"
      },
      "message": "Fix stream-tracing with default methods\n\nTest: Ran mma ART_TEST_TRACE\u003dtrue ART_TEST_TRACE_STREAM\u003dtrue -j40 test-art-host\n\nBug: 30102284\nBug: 30286605\n\nChange-Id: I12f2534bc2d42a7504e6c1972c4cfdda2f77286f\n"
    },
    {
      "commit": "a71ad9a2d3171f434e050cea7d5d233c2b6dcc1a",
      "tree": "c124a437662d2bde5c438bcd3388c2a6ca252a2d",
      "parents": [
        "de4cf16f467b531373560ca6eb785f0f36606aae",
        "4b5f7919842ef88526b9237413bb968a5b6dfeed"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jul 25 16:44:33 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 25 16:44:34 2016 +0000"
      },
      "message": "Merge \"Add fast path to arm64 READ_BARRIER macro\""
    },
    {
      "commit": "d549c28cfbddba945cb88857bcca3dce1414fb29",
      "tree": "584d765beea2cd6ceb4d56789ccc5c8f64db967e",
      "parents": [
        "9e27d02040ff87eb8e2d56d21347a77cb800eddf"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jul 25 12:49:15 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jul 25 12:49:15 2016 +0100"
      },
      "message": "Remove two ReadBarrierMarkRegX entrypoints.\n\nAs entry points ReadBarrierMarkReg30 and\nReadBarrierMarkReg31 are undefined on all architectures\nsupporting the read barrier configuration (ARM, ARM64, x86\nand x86-64), remove them from the entry point list.\n\nTest: ART host and target (ARM, ARM64) tests.\nBug: 29506760\nBug: 12687968\nChange-Id: I500626e54f00aebfc095b4ef5f81b49fa43f7768\n"
    },
    {
      "commit": "4b5f7919842ef88526b9237413bb968a5b6dfeed",
      "tree": "0983c949692b909d6b46ec25462d98232909daef",
      "parents": [
        "d8b668fbb6937bcaafaf3129bd01a7372547ab35"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 21 14:59:04 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Jul 22 16:54:21 2016 -0700"
      },
      "message": "Add fast path to arm64 READ_BARRIER macro\n\nEAAC benchmark time from 978.7857143ms to 969.5714286ms on N9 based\non 42 samples. Reduces artReadBarrierSlow calls from 9M to 1M.\n\nNot a huge improvement since we were already checking the lock word in\nReadBarrier::Barrier.\n\nTest: N9 boots, test-art-host, EEAC runs. (All with CC enabled).\n\nBug: 30162165\nBug: 12687968\n\nChange-Id: Ifb97b52ea84e21c7df83addfb91c5f05f41db32d\n"
    },
    {
      "commit": "d9ad357ca598996f7c44727bf6772b74e50e74e9",
      "tree": "8c123c8ae6341357f64e7f423f23fae9027a5cb6",
      "parents": [
        "41c7e2e6ac0a59da2f3e066e20630b295fbe4661"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jul 22 10:52:24 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jul 22 13:36:21 2016 +0100"
      },
      "message": "ARM64/x86-64: Fix mterp fill-array-data-payload pointer calculation.\n\nFix the pointer calculation to sign-extend the offset\ninstead of zero-extending it, just like we do for the switch\ntable pointer calculation. Clean up comments for the switch.\n\nTest: Additional test in 412-new-array.\nChange-Id: Ibb1d2d3fcb109f59280aca08de21e42edc4ce66b\n"
    },
    {
      "commit": "41c7e2e6ac0a59da2f3e066e20630b295fbe4661",
      "tree": "7f05407ba6cc0954c0259d17a3e6077886a3c55b",
      "parents": [
        "84413a7617602c466e39de8e8897914a6d06779d",
        "fb6db3f575c0079f0f5444d16945cb9275c02f6b"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri Jul 22 09:24:41 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 22 09:24:41 2016 +0000"
      },
      "message": "Merge \"ARM64: Improve mterp cmpl/cmpg.\""
    },
    {
      "commit": "84413a7617602c466e39de8e8897914a6d06779d",
      "tree": "0beb127170772d2a6075ea4820bdf0e29de15526",
      "parents": [
        "d4b7ad71359b571d0056a9bcad3811015128cc8f",
        "479b1de64cd7a8c9c8ca182c699cb2048850c35d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 21 23:58:00 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 21 23:58:01 2016 +0000"
      },
      "message": "Merge changes I295c7876,Ib4b84b7b\n\n* changes:\n  ART: Remove PACKED from ArtMethod\u0027s ptr_sized_fields_\n  ART: Rename ArtMethod JNI field\n"
    },
    {
      "commit": "d4b7ad71359b571d0056a9bcad3811015128cc8f",
      "tree": "b203d68312c993c538c4992360d2471304038c44",
      "parents": [
        "a8f4e9061ad2f35904f6bcabbff624e8b498cef3",
        "7e9b257f10ddcb61a169d34b9aabc4b9bc066ed8"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Jul 21 23:24:44 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 21 23:24:44 2016 +0000"
      },
      "message": "Merge \"Use non-CAS thread flip root visitor.\""
    },
    {
      "commit": "479b1de64cd7a8c9c8ca182c699cb2048850c35d",
      "tree": "bca0b26c4e210e56d25baca49f7a25ffe9178813",
      "parents": [
        "75f0885d7c3d72a0351912b6d47682e1c860efdf"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 19 18:27:17 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 21 15:47:35 2016 -0700"
      },
      "message": "ART: Remove PACKED from ArtMethod\u0027s ptr_sized_fields_\n\nRemove the PACKED(4) hack, as it\u0027s highly annoying when debugging\na 64-bit process. Instead, fix the actual offset and size computation\nfor cross-size accesses.\n\nTest: m test-art-host\nChange-Id: I295c78760b74b6a62946e76856f218b4eb159cdc\n"
    },
    {
      "commit": "7e9b257f10ddcb61a169d34b9aabc4b9bc066ed8",
      "tree": "a67563d72ccaec4319cd946e8fe48881314d036b",
      "parents": [
        "e4b1c86d13c3f60362708f4a128b62db156f5fde"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Wed Jul 20 20:25:27 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Thu Jul 21 12:28:50 2016 -0700"
      },
      "message": "Use non-CAS thread flip root visitor.\n\nWe don\u0027t need to use CAS to update the thread-local GC roots for the\nthread flip.\n\nBug: 12687968\nBug: 29517059\nTest: libartd.so boot. ART tests. Ritzperf EAAC.\nChange-Id: Ia2acab824f756bd7d2ad501b2040233e0d394356\n"
    },
    {
      "commit": "75f0885d7c3d72a0351912b6d47682e1c860efdf",
      "tree": "d8a586b205ad3a502d8a007565a0140591d340ce",
      "parents": [
        "27d99ed24328509cd3df7f895ce2696a1884bb21"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 19 08:06:07 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 21 11:26:47 2016 -0700"
      },
      "message": "ART: Rename ArtMethod JNI field\n\nThe field is multi-purpose, rename it to data and clean up\naccessors in preparation of more checks.\n\nTest: m test-art-host\nChange-Id: Ib4b84b7b1a51ca201544bc488ce8770aa858c7fd\n"
    },
    {
      "commit": "d8b668fbb6937bcaafaf3129bd01a7372547ab35",
      "tree": "cca6601b07a46efe317ca2939020a1faf0d88d5a",
      "parents": [
        "b78b3a8d93196db13d19fdac9fafcf6a4312856a",
        "56fe25895e91d34a0a017429468829a20bdd5ae4"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 21 16:52:44 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 21 16:52:45 2016 +0000"
      },
      "message": "Merge \"Add a way to measure read barrier slow paths\""
    },
    {
      "commit": "fb6db3f575c0079f0f5444d16945cb9275c02f6b",
      "tree": "1fe423cd3d340763532735ab3a23f86ee610ab80",
      "parents": [
        "65ad9b3516c4f4bc4e7abf5c6e065a675cf024d8"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 21 12:59:46 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 21 15:55:24 2016 +0100"
      },
      "message": "ARM64: Improve mterp cmpl/cmpg.\n\nUse CSET+CNEG instead of MOV+CNEG+CSEL. Prefer the\nCNEG/CSET alias over the CSNEG/CSINC for readability.\n\nTest: Run ART test suite on Nexus 9 with the interpreter.\nChange-Id: I5c4fb0cf2c053904253e8e82f3e7e05c774b0583\n"
    },
    {
      "commit": "b78b3a8d93196db13d19fdac9fafcf6a4312856a",
      "tree": "657816479a70d6f395d4ecad3bd75c02046b2d83",
      "parents": [
        "ed33b7357c0a2d7388c9da017aea57c1b81521f2",
        "d207b42dda8bb66c1754f4e85c03e354d0d22ff2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 21 14:19:33 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 21 14:19:33 2016 +0000"
      },
      "message": "Merge \"Change return type of artIsAssignableFromCode for MIPS64\""
    },
    {
      "commit": "ed33b7357c0a2d7388c9da017aea57c1b81521f2",
      "tree": "01c187be9729579b83127e32ce5883ef188462a7",
      "parents": [
        "057361ca33625ed14b33ffd8e641e27916fb2fea",
        "cddb9d2f67baa09552710540c77950a1d95a8f90"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jul 21 14:17:40 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 21 14:17:41 2016 +0000"
      },
      "message": "Merge \"Fix the definition of MACRO_LITERAL for OS X on x86-64.\""
    },
    {
      "commit": "cddb9d2f67baa09552710540c77950a1d95a8f90",
      "tree": "decd02a9aaeb3db51057246b349238cd5eeee7de",
      "parents": [
        "74c0d1bb67f9c6ee8306f0318ab7251d56dc99d6"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue Jul 05 18:55:32 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jul 21 13:45:48 2016 +0000"
      },
      "message": "Fix the definition of MACRO_LITERAL for OS X on x86-64.\n\nTest: \"ART_USE_READ_BARRIER\u003dtrue mmma art\" on OS X.\nChange-Id: Ia2d4c7a3eb7fec346ddfa4c7b0f7b700f1137344\n"
    },
    {
      "commit": "d207b42dda8bb66c1754f4e85c03e354d0d22ff2",
      "tree": "ee6d0f2d98c73f7fbb8f83d6dbd2b0f1bf2cff82",
      "parents": [
        "057361ca33625ed14b33ffd8e641e27916fb2fea"
      ],
      "author": {
        "name": "Goran Jakovljevic",
        "email": "Goran.Jakovljevic@imgtec.com",
        "time": "Thu Jul 21 14:21:46 2016 +0200"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 21 13:29:05 2016 +0000"
      },
      "message": "Change return type of artIsAssignableFromCode for MIPS64\n\nThis has been missed by Ic505befc6c94e2dccbc8abf2b13d4c2d662e68d1.\nThis fixes MIPS64 build.\n\nBug: 30232671\nTest: make -j 32 out/target/product/generic_mips64/obj/SHARED_LIBRARIES/libart_intermediates/arch/mips64/entrypoints_init_mips64.o\nChange-Id: Iec89d25e2d38c6efc0d1025767d0ac2a8bdb7dcd\n"
    },
    {
      "commit": "057361ca33625ed14b33ffd8e641e27916fb2fea",
      "tree": "cf13a0b5c0e5504fdcf320ab9a9936d0d489bdf5",
      "parents": [
        "65ad9b3516c4f4bc4e7abf5c6e065a675cf024d8",
        "4359e61927866c254bc2d701e3ea4c48de10b79c"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jul 21 12:11:15 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 21 12:11:15 2016 +0000"
      },
      "message": "Merge \"Move caller-saves saving/restoring to ReadBarrierMarkRegX.\""
    },
    {
      "commit": "65ad9b3516c4f4bc4e7abf5c6e065a675cf024d8",
      "tree": "7650ae342ce201d498526609d506df7f52783d3a",
      "parents": [
        "a92938a17b75eed3213030faaff9cfb321d47f37",
        "bb268b14da040c5df27a413426aa2baab602ed15"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 21 10:33:13 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 21 10:33:13 2016 +0000"
      },
      "message": "Merge \"Clean up Class::FindStaticField().\""
    },
    {
      "commit": "4359e61927866c254bc2d701e3ea4c48de10b79c",
      "tree": "05d274ecd6b5ff6eb890f64cd3bb670c7170bf15",
      "parents": [
        "2be946bbf995496fe56364d9b7c4957fcb6aeec5"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jul 20 11:32:19 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jul 21 11:21:20 2016 +0100"
      },
      "message": "Move caller-saves saving/restoring to ReadBarrierMarkRegX.\n\nInstead of saving/restoring live caller-save registers\nbefore/after the call to read barrier mark entry points\nReadBarrierMarkRegX, have these entry points save/restore\nall the caller-save registers themselves (except register\nrX, which contains the return value).\n\nAlso refactor the assembly code of these entry points\nusing macros.\n\n* Boot image code size variation on Nexus 5X\n  (aosp_bullhead-userdebug build):\n  - total ARM64 framework Oat files size change:\n    119196792 bytes -\u003e 115575920 bytes (-3.04%)\n  - total ARM framework Oat files size change:\n    100435212 bytes -\u003e 97621188 bytes (-2.80%)\n\n* Benchmarks (ARM64) score variations on Nexus 5X\n  (aosp_bullhead-userdebug build):\n  - RitzPerf (lower is better)\n    - average score difference: -2.71%\n  - CaffeineMark (higher is better)\n    - no real difference for most tests\n      (absolute variation lower than 1%)\n    - better score on the \"Method\" benchmark:\n      score variation 41253 -\u003e 44891 (+8.82%)\n\nTest: ART host and target (ARM, ARM64) tests.\nBug: 29506760\nBug: 12687968\nChange-Id: I881bf73139a3f1c2bee9ffc6fc8c00f9a392afa6\n"
    },
    {
      "commit": "89b03e0cfb03e3194e39f07fa8c1bd46e3b28a34",
      "tree": "cd0161981abc76c3940f0f8fac8d121e221ce379",
      "parents": [
        "e4b1c86d13c3f60362708f4a128b62db156f5fde",
        "e6220220cdd20d81da336528d9b1642edf65655a"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu Jul 21 09:15:23 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 21 09:15:23 2016 +0000"
      },
      "message": "Merge changes Ibcc11ce7,I9867dc11\n\n* changes:\n  ARM64: Improve Mterp.\n  ARM64: Fix mterp switch table pointer calculation.\n"
    },
    {
      "commit": "56fe25895e91d34a0a017429468829a20bdd5ae4",
      "tree": "b000aa1b4a54360db45436a9df872b034e36d79f",
      "parents": [
        "dc4f4d42aa1712a7ac2e4c24c0aebe58b71ae2c0"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 14 13:30:03 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 20 18:05:30 2016 -0700"
      },
      "message": "Add a way to measure read barrier slow paths\n\nIf enabled, this option counts number of slow paths, measures the\ntotal slow path time per GC and records the info into a histogram.\nAlso added support for systrace to see which threads are performing\nslow paths.\n\nAdded runtime option -Xgc:measure to enable. The info is dumped\nfor SIGQUIT.\n\nTest: Volantis boot with CC, test-art-host with CC, run EEAC with CC\nand -Xgc:measure\n\nBug: 30162165\n\nChange-Id: I3c2bdb4156065249c45695f13c77c0579bc8e57a\n"
    },
    {
      "commit": "e4b1c86d13c3f60362708f4a128b62db156f5fde",
      "tree": "4920c33f3510a21dba212650659174a7bb44c855",
      "parents": [
        "ce1ba111bfa122247ac186e7d2c6cf5943ba28cd",
        "465ecc86ff65ca546629630c9469deb6d2d8137e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 21 00:04:52 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 21 00:04:52 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Refactor GetIMTIndex\"\"\""
    },
    {
      "commit": "ce1ba111bfa122247ac186e7d2c6cf5943ba28cd",
      "tree": "a9f58b5d2034f3fef0a714460d48f7a338be1d2c",
      "parents": [
        "8a759904d4a3cb5c03b167cf2a60827c7fcd58bb",
        "a344f6a153d84d9adc4f4d3c608538d7741168a9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 20 22:08:47 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 20 22:08:47 2016 +0000"
      },
      "message": "Merge \"Make stream tracing have a higher thread count on host\""
    },
    {
      "commit": "a344f6a153d84d9adc4f4d3c608538d7741168a9",
      "tree": "2912360371e81de3b03015fe409f10ea07974024",
      "parents": [
        "360b4b0137ce5f0bb771e2ddbfd4735cae932565"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jul 20 10:43:39 2016 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jul 20 14:05:22 2016 -0700"
      },
      "message": "Make stream tracing have a higher thread count on host\n\nTest: mma ART_TEST_TRACE_STREAM\u003dtrue -j40 test-art-host-run-test-debug-prebuild-optimizing-relocate-stream-cms-checkjni-image-npictest-ndebuggable-001-HelloWorld32\nBug: 30229615\nChange-Id: Id396f569b9e21ff764562005624aabc964d4e95a\n"
    },
    {
      "commit": "6c81dfeaefefdf3e3f143b37968f4f2e90591f27",
      "tree": "72e3d293f902cacbad923af3e3566a4fc263cb04",
      "parents": [
        "360b4b0137ce5f0bb771e2ddbfd4735cae932565",
        "d684f52a252e2e953401dc1313a9ce7e3d770353"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 20 18:22:10 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 20 18:22:10 2016 +0000"
      },
      "message": "Merge changes I328ea51d,I577c5d02\n\n* changes:\n  Compute oat and odex filenames eagerly.\n  Make a static OatFileAssistant::DexLocationToOatFileName function.\n"
    },
    {
      "commit": "e6220220cdd20d81da336528d9b1642edf65655a",
      "tree": "d48c146e42e3ee0967a1ee3744df26b2591096bb",
      "parents": [
        "5733e98d4889b7a94e4e647fa4033239038e07e8"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jul 20 14:25:30 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jul 20 19:05:07 2016 +0100"
      },
      "message": "ARM64: Improve Mterp.\n\nSeveral straight-forward optimizations:\n  - use ubfx instead of SHR+AND,\n  - do not mask shifting distance,\n  - use 64-bit LDRSH to avoid subsequent sign extension,\n  - use CBNZ instead of CMP+BNE for null checks,\n  - style: use SXTW alias instead of explicit SBFM.\n\nTest: Run ART test suite on Nexus 9 with the interpreter.\nChange-Id: Ibcc11ce7f455432ecb789f727da21f269f8370f0\n"
    },
    {
      "commit": "5733e98d4889b7a94e4e647fa4033239038e07e8",
      "tree": "6e7790cc1c4030fe9d7526097b9847fa6fcd91b7",
      "parents": [
        "360b4b0137ce5f0bb771e2ddbfd4735cae932565"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jul 20 17:52:51 2016 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jul 20 18:19:45 2016 +0100"
      },
      "message": "ARM64: Fix mterp switch table pointer calculation.\n\nDo not mix 32-bit and 64-bit registers with\n    add     x0, xPC, w0, lsl #1\nthat ends up compiled as\n    add     x0, xPC, w0, uxtx #1\ninstead of the required sxtx. Just sing-extend the offset\ncorrectly in previous instructions.\n\nTest: Additional test in 501-regression-packed-switch.\nChange-Id: I9867dc1180743e98f9707a312241d2f5b726ca8c\n"
    },
    {
      "commit": "6740997e6934bbca27d5830a32352d82aabbd38b",
      "tree": "684ab2e46ddeaaf251fb6919bf64295810e46afa",
      "parents": [
        "dc4f4d42aa1712a7ac2e4c24c0aebe58b71ae2c0"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue Jul 19 22:34:53 2016 -0700"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed Jul 20 11:44:25 2016 +0100"
      },
      "message": "ART: Change return types of field access entrypoints\n\nEnsure that return types guarantee full-width data as the compiled\ncode and mterp expect by using size_t and ssize_t.\n\nThis fixes Clang no longer sign-/zero-extending small return types.\n\nBug: 30232671\nTest: m ART_TEST_RUN_TEST_NDEBUG\u003dtrue ART_TEST_INTERPRETER\u003dtrue test-art-host-run-test\nChange-Id: Ic505befc6c94e2dccbc8abf2b13d4c2d662e68d1\n"
    },
    {
      "commit": "465ecc86ff65ca546629630c9469deb6d2d8137e",
      "tree": "3a0ed3f2d3ab9fd2cffec44a659036efab35fb4e",
      "parents": [
        "bae13af2fc2fa89985d0466cedf155cb96767910"
      ],
      "author": {
        "name": "Matthew Gharrity",
        "email": "gharrma@google.com",
        "time": "Tue Jul 19 21:32:52 2016 +0000"
      },
      "committer": {
        "name": "Matthew Gharrity",
        "email": "gharrma@google.com",
        "time": "Tue Jul 19 21:48:06 2016 +0000"
      },
      "message": "Revert \"Revert \"Refactor GetIMTIndex\"\"\n\nOriginally reverted in order to revert\nhttps://android-review.googlesource.com/#/c/244190/\nbut can now be merged again.\n\nThis reverts commit d4ceecc85a5aab2ec23ea1bd010692ba8c8aaa0c.\n\nTest: m test-art-host\n\nChange-Id: Id9205f2b77a378fc0f06088e78c66e81a49f712d\n"
    },
    {
      "commit": "b6bab0f96f7426ca12ba377ec74ff1b62918cd27",
      "tree": "28b9239a4ec2e7d762a034ad98e6d00b264765d2",
      "parents": [
        "2be946bbf995496fe56364d9b7c4957fcb6aeec5"
      ],
      "author": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Mon Jul 18 17:07:26 2016 -0700"
      },
      "committer": {
        "name": "Hiroshi Yamauchi",
        "email": "yamauchi@google.com",
        "time": "Tue Jul 19 13:07:01 2016 -0700"
      },
      "message": "Tune the GC ergnomics for the read barrier config.\n\nAdd 1.0 to the heap growth multiplier for the read barrier config, which\nreduces the GC frequency down to roughly the same as CMS in one of the\njank tests.\n\nBug: 29517059\nBug: 12687968\nTest: ART run-tests.\nChange-Id: I1302a2f17e862f152d2f92bc06a65c9e6defcba0\n"
    },
    {
      "commit": "d684f52a252e2e953401dc1313a9ce7e3d770353",
      "tree": "76a4e2f8e960914f16da62a6444fd0c78c488b09",
      "parents": [
        "b81881dc40fb376844b0f8b38bc6592260b6ad06"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Apr 19 13:24:41 2016 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Jul 19 09:14:47 2016 -0700"
      },
      "message": "Compute oat and odex filenames eagerly.\n\nBecause we almost always need both of them anyway, and they aren\u0027t\nexpensive to compute.\n\nTest: oat file assistant tests.\nChange-Id: I328ea51da6eb8700329f829a0458b02e12d1ee9e\n"
    },
    {
      "commit": "b81881dc40fb376844b0f8b38bc6592260b6ad06",
      "tree": "c6739caeea728ed72a8990ab8ceac6d4fcde6cbe",
      "parents": [
        "bae13af2fc2fa89985d0466cedf155cb96767910"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Apr 19 13:08:04 2016 -0700"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Tue Jul 19 09:12:07 2016 -0700"
      },
      "message": "Make a static OatFileAssistant::DexLocationToOatFileName function.\n\nSo that you can figure out an oat file name without instantiating an\nOatFileAssistant object.\n\nTest: oat file assistant tests.\nChange-Id: I577c5d02225f926086e9833d45b88d8a92db52fa\n"
    },
    {
      "commit": "011dc2c4b9f3a064cba801679aedd3251fe191e3",
      "tree": "08924388d8a91759c8aa7acfc1bc53153605e4df",
      "parents": [
        "4c489f48ef432126b8e7a84b61c1c13a7514c085"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jul 18 11:11:45 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Jul 18 15:02:27 2016 -0700"
      },
      "message": "Do allocation fence before pushing on allocation stack\n\nHeap::VisitObjects relies on having valid classes for objects in\nthe allocation stack. If the writes reorder, the thread calling\nVisitObjects could see the free list pointer instead of the class\nof the object. I believe this is causing crashes in VisitObjects.\n\nBug: 28790624\n\nTest: Volantis booted\n\nChange-Id: I0f2d4097de1ef3f5caf670ecc977d4d6837872ca\n"
    },
    {
      "commit": "5668e58daf0f54d6cc8a6919033acc3506fc86ee",
      "tree": "de19460ff3c2f940ce5b0f7036a4bf756b59ed4e",
      "parents": [
        "24670a7aac24c7a9b661220ab76b36c75f1494c5",
        "97c72b76cf776228196c6abd33973ef751de61ad"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jul 18 14:28:05 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 18 14:28:06 2016 +0000"
      },
      "message": "Merge \"Fixes to build against new VIXL interface.\""
    },
    {
      "commit": "43e10b031e3bb42df54adf8f0525a29d2b308a4e",
      "tree": "ea914f7c0061817f51449d15b900e6c1878e5cc8",
      "parents": [
        "edec0eb18d9a45d994acec9e8e509a1dc05bd5b3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jul 15 17:17:34 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jul 15 20:54:09 2016 -0700"
      },
      "message": "ART: Replace ScopedFd with FdFile\n\nFdFile can now be used like ScopedFd. Remove ScopedFd.\n\nBug: 21192156\nTest: m test-art-host\nTest: m test-art-target (shamu)\nChange-Id: I32115fa8b2b8bb5aa5d1886eae63522f80ce836b\n"
    },
    {
      "commit": "97c72b76cf776228196c6abd33973ef751de61ad",
      "tree": "7a78a2b19b0847281f8cf69af735b30b15732fa8",
      "parents": [
        "1fd347303275a424d114c9833f954e8e27812554"
      ],
      "author": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Fri Jun 24 16:19:36 2016 +0100"
      },
      "committer": {
        "name": "Scott Wakeling",
        "email": "scott.wakeling@linaro.org",
        "time": "Fri Jul 15 09:48:07 2016 +0100"
      },
      "message": "Fixes to build against new VIXL interface.\n\n- Fix namespace usage and use of deprecated functions.\n- Link all dependants to new libvixl-arm64 target for now.\n\nChange-Id: Iee6f299784fd663fc2a759f3ee816fdbc511e509\n"
    },
    {
      "commit": "edec0eb18d9a45d994acec9e8e509a1dc05bd5b3",
      "tree": "f16532ad26bd7e6b81888de3c9402c3e0f6700ed",
      "parents": [
        "05d9a647a66d67b9ef444ba1627f019735cb72d8",
        "09b710c6e3e496edb2ff0312eb59d10ba53f3922"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Jul 15 00:45:22 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 15 00:45:22 2016 +0000"
      },
      "message": "Merge changes from topic \u0027cherry_pinner\u0027\n\n* changes:\n  ART: Fix build break\n  Add API for getting location of odex or oat file\n"
    },
    {
      "commit": "09b710c6e3e496edb2ff0312eb59d10ba53f3922",
      "tree": "59e872a516d8012b704468afd915889d4efa1cbf",
      "parents": [
        "b55ad7c146fbb7ca5995ff54dc655241fc54a3b3"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 14 16:50:52 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 14 16:53:55 2016 -0700"
      },
      "message": "ART: Fix build break\n\nBuild break introduced by mismatch from merges.\n\nBug: 28251566\n\n(cherry picked from commit a472e4fd6260740af230bab7be5740d8c7bac360)\n\nTest: m test-art-host\nChange-Id: I83a333dd7394af630c5a79153d4838eb3a910714\n"
    },
    {
      "commit": "b55ad7c146fbb7ca5995ff54dc655241fc54a3b3",
      "tree": "e7cd025ff1203211f54f8a9baf79b1f92bad6b58",
      "parents": [
        "f18f3cb337161b2cb651cd38642d6f9c06266728"
      ],
      "author": {
        "name": "Philip Cuadra",
        "email": "philipcuadra@google.com",
        "time": "Tue Jul 12 16:37:40 2016 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jul 14 16:53:10 2016 -0700"
      },
      "message": "Add API for getting location of odex or oat file\n\nAdd an API for getting the file path of odex or oat file given a dex\npath.\n\nBug 28251566\n\n(cherry picked from commit b4827ace453b9280060a826e8f22cc8c9b6edb7d)\n\nChange-Id: Ibebaa20f15d8135b25d9eb5927b7979801ebf0b2\n"
    },
    {
      "commit": "05d9a647a66d67b9ef444ba1627f019735cb72d8",
      "tree": "5b3d9e17d6ec22bc8637512e7881aa6577dc4c12",
      "parents": [
        "f18f3cb337161b2cb651cd38642d6f9c06266728",
        "dc00f184b57086263587f1a1c1991336c07a8e4a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 14 21:09:55 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 14 21:09:56 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Dump more dex file data in oatdump\"\"\""
    },
    {
      "commit": "dc00f184b57086263587f1a1c1991336c07a8e4a",
      "tree": "3e4ad30844658b9ccc48f80def1b8de66e2e2622",
      "parents": [
        "2c30a373428b8d19bf97866d5d323c4ca2fbca72"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 14 10:10:44 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Thu Jul 14 13:09:51 2016 -0700"
      },
      "message": "Revert \"Revert \"Dump more dex file data in oatdump\"\"\n\nDelete runtime to fix leak before callin exit.\n\nBug: 29462018\n\nThis reverts commit 9c05578dd2306231437bd290c0f70abc2bb3b6d8.\n\nChange-Id: Ica23ba0f2d07496d0e4a3288329945f612ac3b20\n"
    },
    {
      "commit": "2fce5cf079924c20da8c35e2fd0271715091d97b",
      "tree": "152d049f7ad8e126893ce15515cf2a00a2f91cfd",
      "parents": [
        "2c30a373428b8d19bf97866d5d323c4ca2fbca72",
        "df8789252252c77660daf5d602d425b60b344b08"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jul 14 18:48:03 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 14 18:48:03 2016 +0000"
      },
      "message": "Merge \"ART: Add FdFile constructors\""
    },
    {
      "commit": "2c30a373428b8d19bf97866d5d323c4ca2fbca72",
      "tree": "8927430b0ae7185b0583615e8dbd7481ac13c6c7",
      "parents": [
        "7598736db0647eb963e77fafc22af6c0a5747d20",
        "02b75806a80f8b75c3d6ba2ff97c995117630f36"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu Jul 14 09:32:34 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 14 09:32:34 2016 +0000"
      },
      "message": "Merge \"Introduce more compact ReadBarrierMark slow-paths.\""
    },
    {
      "commit": "9c05578dd2306231437bd290c0f70abc2bb3b6d8",
      "tree": "0f9983cabba29de867051ea990221603f0ff765a",
      "parents": [
        "8e2c56252aa9527bd9a82bdd147fdc46cf5deb9c"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 14 09:24:30 2016 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Jul 14 09:24:30 2016 +0000"
      },
      "message": "Revert \"Dump more dex file data in oatdump\"\n\nBreaks valgrind.\n\nBug: 29462018\n\nThis reverts commit 8e2c56252aa9527bd9a82bdd147fdc46cf5deb9c.\n\nChange-Id: If58cedcee75dd0eda8571e90d63e080a4709d773\n"
    },
    {
      "commit": "df8789252252c77660daf5d602d425b60b344b08",
      "tree": "b393eb58d4a7749d819672d0199f35931a8e945b",
      "parents": [
        "f79c0e6f74dfaf7ca5ba3fbe1c903abd65086a1a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Aug 13 16:44:54 2015 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jul 13 19:48:30 2016 -0700"
      },
      "message": "ART: Add FdFile constructors\n\nMake Open protected, and expose constructors instead. Add a move\nconstructor and move assignment operator.\n\nAdd OS functions that return the FdFile non-pointer version.\n\nAdd tests.\n\nBug: 21192156\nTest: m test-art-host\nTest: m test-art-target (shamu)\nChange-Id: I83e390edde7cd37c900e9d5c3e4d21da22981b3f\n"
    },
    {
      "commit": "8e2c56252aa9527bd9a82bdd147fdc46cf5deb9c",
      "tree": "4b300a176d73caae6c63768e951976a4fde993ef",
      "parents": [
        "633c22de95fe6f80c0dd3176e15de4de3ee4bc79"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Tue Jun 21 15:14:20 2016 -0700"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Jul 13 13:20:55 2016 -0700"
      },
      "message": "Dump more dex file data in oatdump\n\nDump some statistics for each dex file along side with strings loaded\nfrom code and dex code bytes.\n\nSample output:\nCumulative dex file data\nNum string ids: 202809\nNum method ids: 320464\nNum field ids: 162822\nNum type ids: 68151\nNum class defs: 48061\nUnique strings loaded from dex code: 51049\nTotal strings loaded from dex code: 106651\nNumber of unique dex code items: 247929\nTotal number of dex code bytes: 11090574\n\nAdded content testing to oat dump test. No significant slowdown.\n\nTEST: test-art-host\nBug: 29462018\n\nChange-Id: I60effd3087d8c427eda4ee26431d5d77165b3939\n"
    },
    {
      "commit": "c8cbda659671b111e309fe123cb2d4887e4edd10",
      "tree": "281c8fb37ea4878c872005a6d17c1122a5e37c71",
      "parents": [
        "1fd347303275a424d114c9833f954e8e27812554",
        "e8e48aee32bafab22ad97fca3deefa0952f36602"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 13 15:42:18 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 13 15:42:18 2016 +0000"
      },
      "message": "Merge changes I91249ba8,Ic93812d9\n\n* changes:\n  Use \"\" to indicate the oat filename could not be computed.\n  Compute and cache oat file status in OatFileAssistant.\n"
    },
    {
      "commit": "02b75806a80f8b75c3d6ba2ff97c995117630f36",
      "tree": "ecdb1852c3e33f120110091cc2d07a9737fbd3b5",
      "parents": [
        "5f485719b166ceb8e591329d40e76c5e50988022"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jul 13 11:54:35 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed Jul 13 11:54:35 2016 +0100"
      },
      "message": "Introduce more compact ReadBarrierMark slow-paths.\n\nReplace entry point ReadBarrierMark with 32\nReadBarrierMarkRegX entry points, using register\nnumber X as input and output (instead of the standard\nruntime calling convention) to save two moves in Baker\u0027s\nread barrier mark slow-path code.\n\nTest: ART host and target (ARM, ARM64) tests.\nBug: 29506760\nBug: 12687968\nChange-Id: I73cfb82831cf040b8b018e984163c865cc44ed87\n"
    },
    {
      "commit": "e8508094c322a232b89bc835c59ae24c82d735b4",
      "tree": "2716e34943cdb409d64aa05c945437db97562c4c",
      "parents": [
        "0599c5976ada2095142b671e5ad4d7698313849b",
        "03c0134ef033853ce0526cbe8fb7a61a780e5de4"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 13 00:35:48 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 13 00:35:48 2016 +0000"
      },
      "message": "Merge \"Update the get_process_name call.\""
    },
    {
      "commit": "0599c5976ada2095142b671e5ad4d7698313849b",
      "tree": "f5987008eecb5f751f0591f706ea843d402989d8",
      "parents": [
        "058d934b429513380218b029fc2ee562c7f47696",
        "d1472a27e856ec68ab5a27abaaebe9c61d91d343"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jul 12 18:32:29 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 12 18:32:29 2016 +0000"
      },
      "message": "Merge changes Iafd12677,I40595d15\n\n* changes:\n  profile_changed should not effect GetBestOatFile.\n  Make OpenImageSpace static and ArtFileName internal.\n"
    },
    {
      "commit": "03c0134ef033853ce0526cbe8fb7a61a780e5de4",
      "tree": "5d1c09c6e97d2e42bc08955041bd8d7905a3c23a",
      "parents": [
        "dadc075149eb322bf28ba35a75a70157147c1c30"
      ],
      "author": {
        "name": "Dmitriy Filchenko",
        "email": "dmitriyf@google.com",
        "time": "Mon Jul 11 17:41:28 2016 -0700"
      },
      "committer": {
        "name": "Dmitriy Filchenko",
        "email": "dmitriyf@google.com",
        "time": "Mon Jul 11 17:41:28 2016 -0700"
      },
      "message": "Update the get_process_name call.\n\nBUG:29824203\nTest: test-art-host\n\nChange-Id: Iba75b48b836b6ec249e6c77b9895ab3575f1027b"
    },
    {
      "commit": "de9007f60259e9099030cd7a818dc6357a856703",
      "tree": "8f4b2bb6ed017ef99b5162a8e7e278cf63b800c6",
      "parents": [
        "f79c0e6f74dfaf7ca5ba3fbe1c903abd65086a1a"
      ],
      "author": {
        "name": "Oleksiy Vyalov",
        "email": "ovyalov@google.com",
        "time": "Tue Jun 21 16:21:37 2016 -0700"
      },
      "committer": {
        "name": "Oleksiy Vyalov",
        "email": "ovyalov@google.com",
        "time": "Mon Jul 11 14:35:42 2016 -0700"
      },
      "message": "Call prctl(PR_SET_PTRACER, PR_SET_PTRACER_ANY) if app is debuggable.\n\nEnabled Yama security may prevent non-privileged debugger from\nattaching to the app. However, if app is marked is debuggable\nthen it should acceptable to allow debugger with arbitrary pid\nto connect the app.\n\nBug: 29549463\n\nChange-Id: I50c79dbca272dc473e489cc61471628e2fdc4a03\n(cherry picked from commit e21145f6625a7faa939c1ca17fb95285aa245c16)\n"
    },
    {
      "commit": "dedde3f10d7801ad862d1ca1de89135decff6a60",
      "tree": "da68a5a4d91875628c528be3556f5a681d53625f",
      "parents": [
        "a14893e4a95eb4d17759173daf8ebf78fcc28086",
        "b5390f71940f2188da9e093d4130753bfb88e25a"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Jul 11 09:24:43 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 11 09:24:44 2016 +0000"
      },
      "message": "Merge \"Have LOCAL_ASFLAGS honor debug/non-debug configuration.\""
    },
    {
      "commit": "83e4903f9f966b52d758b52ac1d522e13fd43e60",
      "tree": "966df75b9d69f43bb18ece89b1ef16db6c546e45",
      "parents": [
        "dadc075149eb322bf28ba35a75a70157147c1c30",
        "a62cb9bb6cb2278cb41ab0664191623e178c6a4f"
      ],
      "author": {
        "name": "Jeff Hao",
        "email": "jeffhao@google.com",
        "time": "Fri Jul 08 20:06:58 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 08 20:06:58 2016 +0000"
      },
      "message": "Merge \"Revert \"Revert \"Optimize IMT\"\"\""
    },
    {
      "commit": "e6a2d0ff48201990d16bc02c5e40f07a6413e7f9",
      "tree": "9a7668241ff3d3be614fd6b9d324cd1caa645a38",
      "parents": [
        "2e7acaffda05db1df6e0631468f10726e898a20a"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jul 08 14:21:44 2016 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jul 08 14:59:08 2016 +0100"
      },
      "message": "Fix the definition of THREAD_CURRENT_IBASE_OFFSET.\n\nThe difference between between\nart::Thread::tlsPtr_.mterp_current_ibase and\nart::Thread::tlsPtr_.thread_local_objects is sizeof(size_t),\nnot sizeof(void*) (even if they have the same value on all\nsupported platforms/compilers in practice).\n\nTest: ART host tests.\nChange-Id: I70d196732499bd0cd073983de564547d08ee59ef\n"
    },
    {
      "commit": "7d14037d259c4f0adadd97adab11b36cb7f2fd18",
      "tree": "d94443ad3b7ea951335b7db1fc897f2d99e3d392",
      "parents": [
        "59313b203568253eda1f394e5e0d1912e1ff8fb9",
        "0e5ff796e3ab641581aeea4ad53f88594fad7797"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Fri Jul 08 11:19:03 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jul 08 11:19:03 2016 +0000"
      },
      "message": "Merge \"Mark ReadBarrierJni as a direct entry point on MIPS32.\""
    }
  ],
  "next": "e8e48aee32bafab22ad97fca3deefa0952f36602"
}
